diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 219df3897a0a..67cf17fb9a69 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -29,8 +29,8 @@ qiskit/utils/ @Qiskit/terra-core @manoelmarques @woodsp-ibm providers/ @Qiskit/terra-core @jyu00 quantum_info/ @Qiskit/terra-core @ikkoham qpy/ @Qiskit/terra-core @nkanazawa1989 -pulse/ @Qiskit/terra-core @eggerdj @nkanazawa1989 @danpuzzuoli -scheduler/ @Qiskit/terra-core @eggerdj @nkanazawa1989 @danpuzzuoli +pulse/ @Qiskit/terra-core @eggerdj @nkanazawa1989 @wshanks +scheduler/ @Qiskit/terra-core @eggerdj @nkanazawa1989 @wshanks visualization/ @Qiskit/terra-core @nonhermitian @nkanazawa1989 primitives/ @Qiskit/terra-core @ikkoham @t-imamichi # Override the release notes directories to have _no_ code owners, so any review diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 08861cb1def9..f0c957994ccb 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -16,14 +16,56 @@ jobs: name: Install Python with: python-version: '3.8' + - name: Install Rust toolchain + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + profile: default + components: llvm-tools-preview - name: Install dependencies - run: pip install tox coveragepy-lcov - - name: Run coverage report - run: tox -ecoverage + run: | + pip install coveragepy-lcov + sudo apt-get install lcov + - name: Download grcov for rust coverage + run: curl -L https://github.com/mozilla/grcov/releases/download/v0.8.11/grcov-x86_64-unknown-linux-gnu.tar.bz2 | tar xj + - name: Build and install qiskit-terra + run: pip install -e . env: + CARGO_INCREMENTAL: 0 + RUSTFLAGS: "-Cinstrument-coverage" + LLVM_PROFILE_FILE: "qiskit-%p-%m.profraw" SETUPTOOLS_ENABLE_FEATURES: "legacy-editable" - - name: Convert to lcov - run: coveragepy-lcov --output_file_path coveralls.info + - name: Generate unittest coverage report + run: | + set -e + pip install -r requirements-dev.txt qiskit-aer + stestr run + ./grcov . --binary-path ./target/debug/ -s . --llvm --parallel -t lcov --branch --ignore-not-existing --ignore "/*" -o ./rust_unittest.info + mkdir rust_lcov + mv ./rust_unittest.info rust_lcov/. + rm *profraw + env: + QISKIT_TEST_CAPTURE_STREAMS: 1 + QISKIT_PARALLEL: FALSE + PYTHON: "coverage3 run --source qiskit --parallel-mode" + - name: Generate parallel_map test + run: | + set -e + coverage3 run --source qiskit --parallel-mode ./tools/verify_parallel_map.py + ./grcov . --binary-path ./target/debug/ -s . --llvm --parallel -t lcov --branch --ignore-not-existing --ignore "/*" -o ./rust_parallel_map.info + mv rust_lcov/rust_unittest.info . + env: + QISKIT_TEST_CAPTURE_STREAMS: 1 + QISKIT_PARALLEL: FALSE + PYTHON: "coverage3 run --source qiskit --parallel-mode" + - name: Convert to lcov and combine data + run: | + set -e + coverage3 combine + coveragepy-lcov --output_file_path python.info + lcov --add-tracefile python.info -a rust_unittest.info -a rust_parallel_map.info -o combined.info + lcov --remove combined.info "target/*" -o coveralls.info - name: Coveralls uses: coverallsapp/github-action@master with: diff --git a/qiskit/algorithms/__init__.py b/qiskit/algorithms/__init__.py index c13f00cb1e60..55648a040aa4 100644 --- a/qiskit/algorithms/__init__.py +++ b/qiskit/algorithms/__init__.py @@ -94,20 +94,14 @@ VQD -Variational Quantum Time Evolution ----------------------------------- - -Classes used by variational quantum time evolution algorithms - VarQITE and VarQRTE. - -.. autosummary:: - :toctree: ../stubs/ - - evolvers.variational - - Evolvers -------- +Pending deprecation: This package has been superseded by the package below. It will be +deprecated in a future release and subsequently removed after that: + +`Time Evolvers`_ + Algorithms to evolve quantum states in time. Both real and imaginary time evolution is possible with algorithms that support them. For machine learning, Quantum Imaginary Time Evolution might be used to train Quantum Boltzmann Machine Neural Networks for example. @@ -119,14 +113,40 @@ RealEvolver ImaginaryEvolver TrotterQRTE - VarQITE - VarQRTE - PVQD - PVQDResult EvolutionResult EvolutionProblem +Time Evolvers +------------- + +Primitives-enabled algorithms to evolve quantum states in time. Both real and imaginary time +evolution is possible with algorithms that support them. For machine learning, Quantum Imaginary +Time Evolution might be used to train Quantum Boltzmann Machine Neural Networks for example. + +.. autosummary:: + :toctree: ../stubs/ + :nosignatures: + + RealTimeEvolver + ImaginaryTimeEvolver + PVQD + PVQDResult + TimeEvolutionResult + TimeEvolutionProblem + + +Trotterization-based Quantum Real Time Evolution +------------------------------------------------ + +Package for primitives-enabled Trotterization-based quantum time evolution algorithm - TrotterQRTE. + +.. autosummary:: + :toctree: ../stubs/ + + time_evolvers.trotterization + + Factorizers ----------- @@ -163,10 +183,12 @@ linear_solvers -Minimum Eigensolvers --------------------- +Minimum Eigen Solvers +--------------------- Algorithms that can find the minimum eigenvalue of an operator. +These algorithms are pending depreciation. One should instead make use of the +Minimum Eigensolver classes in the section below, which leverage Runtime primitives. .. autosummary:: :toctree: ../stubs/ @@ -183,6 +205,16 @@ QAOA VQE +Minimum Eigensolvers +-------------------- + +Algorithms that can find the minimum eigenvalue of an operator and leverage primitives. + +.. autosummary:: + :toctree: ../stubs/ + + minimum_eigensolvers + Optimizers ---------- @@ -222,6 +254,7 @@ state_fidelities + Exceptions ---------- @@ -240,6 +273,8 @@ :toctree: ../stubs/ eval_observables + estimate_observables + Utility classes --------------- @@ -257,6 +292,10 @@ from .evolvers import EvolutionResult, EvolutionProblem from .evolvers.real_evolver import RealEvolver from .evolvers.imaginary_evolver import ImaginaryEvolver +from .time_evolvers.imaginary_time_evolver import ImaginaryTimeEvolver +from .time_evolvers.real_time_evolver import RealTimeEvolver +from .time_evolvers.time_evolution_problem import TimeEvolutionProblem +from .time_evolvers.time_evolution_result import TimeEvolutionResult from .variational_algorithm import VariationalAlgorithm, VariationalResult from .amplitude_amplifiers import Grover, GroverResult, AmplificationProblem, AmplitudeAmplifier from .amplitude_estimators import ( @@ -293,11 +332,10 @@ ) from .exceptions import AlgorithmError from .aux_ops_evaluator import eval_observables +from .observables_evaluator import estimate_observables from .evolvers.trotterization import TrotterQRTE -from .evolvers.variational.var_qite import VarQITE -from .evolvers.variational.var_qrte import VarQRTE -from .evolvers.pvqd import PVQD, PVQDResult +from .time_evolvers.pvqd import PVQD, PVQDResult __all__ = [ "AlgorithmJob", @@ -322,11 +360,13 @@ "NumPyEigensolver", "RealEvolver", "ImaginaryEvolver", + "RealTimeEvolver", + "ImaginaryTimeEvolver", "TrotterQRTE", - "VarQITE", - "VarQRTE", "EvolutionResult", "EvolutionProblem", + "TimeEvolutionResult", + "TimeEvolutionProblem", "LinearSolverResult", "Eigensolver", "EigensolverResult", @@ -352,4 +392,5 @@ "IterativePhaseEstimation", "AlgorithmError", "eval_observables", + "estimate_observables", ] diff --git a/qiskit/algorithms/amplitude_amplifiers/amplitude_amplifier.py b/qiskit/algorithms/amplitude_amplifiers/amplitude_amplifier.py index 5759fe377f3b..dd32dc96ec47 100644 --- a/qiskit/algorithms/amplitude_amplifiers/amplitude_amplifier.py +++ b/qiskit/algorithms/amplitude_amplifiers/amplitude_amplifier.py @@ -46,6 +46,8 @@ def __init__(self) -> None: self._top_measurement = None self._assignment = None self._oracle_evaluation = None + self._circuit_results = None + self._max_probability = None @property def top_measurement(self) -> Optional[str]: diff --git a/qiskit/algorithms/amplitude_amplifiers/grover.py b/qiskit/algorithms/amplitude_amplifiers/grover.py index bc9a729a691b..17dd9f00952a 100644 --- a/qiskit/algorithms/amplitude_amplifiers/grover.py +++ b/qiskit/algorithms/amplitude_amplifiers/grover.py @@ -1,6 +1,6 @@ # This code is part of Qiskit. # -# (C) Copyright IBM 2018, 2021. +# (C) Copyright IBM 2018, 2022. # # This code is licensed under the Apache License, Version 2.0. You may # obtain a copy of this license in the LICENSE.txt file in the root directory @@ -15,13 +15,17 @@ import itertools import operator from typing import Iterator, List, Optional, Union +import warnings import numpy as np from qiskit import ClassicalRegister, QuantumCircuit +from qiskit.algorithms.exceptions import AlgorithmError +from qiskit.primitives import BaseSampler from qiskit.providers import Backend from qiskit.quantum_info import partial_trace from qiskit.utils import QuantumInstance +from qiskit.utils.deprecation import deprecate_function from .amplification_problem import AmplificationProblem from .amplitude_amplifier import AmplitudeAmplifier, AmplitudeAmplifierResult @@ -113,6 +117,7 @@ def __init__( growth_rate: Optional[float] = None, sample_from_iterations: bool = False, quantum_instance: Optional[Union[QuantumInstance, Backend]] = None, + sampler: Optional[BaseSampler] = None, ) -> None: r""" Args: @@ -131,7 +136,8 @@ def __init__( sample_from_iterations: If True, instead of taking the values in ``iterations`` as powers of the Grover operator, a random integer sample between 0 and smaller value than the iteration is used as a power, see [1], Section 4. - quantum_instance: A Quantum Instance or Backend to run the circuits. + quantum_instance: Pending deprecation: A Quantum Instance or Backend to run the circuits. + sampler: A Sampler to use for sampling the results of the circuits. Raises: ValueError: If ``growth_rate`` is a float but not larger than 1. @@ -156,24 +162,58 @@ def __init__( else: self._iterations = iterations + if quantum_instance is not None and sampler is not None: + raise ValueError("Only one of quantum_instance or sampler can be passed, not both!") + + # check positionally passing the sampler in the place of quantum_instance + # which will be removed in future + if isinstance(quantum_instance, BaseSampler): + sampler = quantum_instance + quantum_instance = None + self._quantum_instance = None if quantum_instance is not None: - self.quantum_instance = quantum_instance + warnings.warn( + "The quantum_instance argument has been superseded by the sampler argument. " + "This argument will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + stacklevel=2, + ) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", category=PendingDeprecationWarning) + self.quantum_instance = quantum_instance + + self._sampler = sampler self._sample_from_iterations = sample_from_iterations self._iterations_arg = iterations @property + @deprecate_function( + "The Grover.quantum_instance getter is pending deprecation. " + "This property will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) def quantum_instance(self) -> Optional[QuantumInstance]: - """Get the quantum instance. + r"""Pending deprecation\; Get the quantum instance. + Returns: The quantum instance used to run this algorithm. """ return self._quantum_instance @quantum_instance.setter + @deprecate_function( + "The Grover.quantum_instance setter is pending deprecation. " + "This property will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) def quantum_instance(self, quantum_instance: Union[QuantumInstance, Backend]) -> None: - """Set quantum instance. + r"""Pending deprecation\; Set quantum instance. + Args: quantum_instance: The quantum instance used to run this algorithm. """ @@ -181,6 +221,24 @@ def quantum_instance(self, quantum_instance: Union[QuantumInstance, Backend]) -> quantum_instance = QuantumInstance(quantum_instance) self._quantum_instance = quantum_instance + @property + def sampler(self) -> Optional[BaseSampler]: + """Get the sampler. + + Returns: + The sampler used to run this algorithm. + """ + return self._sampler + + @sampler.setter + def sampler(self, sampler: BaseSampler) -> None: + """Set the sampler. + + Args: + sampler: The sampler used to run this algorithm. + """ + self._sampler = sampler + def amplify(self, amplification_problem: AmplificationProblem) -> "GroverResult": """Run the Grover algorithm. @@ -192,9 +250,17 @@ def amplify(self, amplification_problem: AmplificationProblem) -> "GroverResult" as ``result.top_measurement``. Raises: + ValueError: If a quantum instance or sampler is not set. + AlgorithmError: If a sampler job fails. TypeError: If ``is_good_state`` is not provided and is required (i.e. when iterations is ``None`` or a ``list``) """ + if self._sampler is None and self._quantum_instance is None: + raise ValueError("A quantum instance or sampler must be provided.") + + if self._quantum_instance is not None and self._sampler is not None: + raise ValueError("Only one of quantum_instance or sampler can be passed, not both!") + if isinstance(self._iterations, list): max_iterations = len(self._iterations) max_power = np.inf # no cap on the power @@ -228,34 +294,50 @@ def amplify(self, amplification_problem: AmplificationProblem) -> "GroverResult" if self._sample_from_iterations: power = np.random.randint(power) # Run a grover experiment for a given power of the Grover operator. - if self._quantum_instance.is_statevector: - qc = self.construct_circuit(amplification_problem, power, measurement=False) - circuit_results = self._quantum_instance.execute(qc).get_statevector() + if self._sampler is not None: + qc = self.construct_circuit(amplification_problem, power, measurement=True) + job = self._sampler.run([qc]) + + try: + results = job.result() + except Exception as exc: + raise AlgorithmError("Sampler job failed.") from exc + num_bits = len(amplification_problem.objective_qubits) + circuit_results = { + np.binary_repr(k, num_bits): v for k, v in results.quasi_dists[0].items() + } + top_measurement, max_probability = max(circuit_results.items(), key=lambda x: x[1]) - # trace out work qubits - if qc.width() != num_bits: - indices = [ - i - for i in range(qc.num_qubits) - if i not in amplification_problem.objective_qubits - ] - rho = partial_trace(circuit_results, indices) - circuit_results = np.diag(rho.data) - - max_amplitude = max(circuit_results.max(), circuit_results.min(), key=abs) - max_amplitude_idx = np.where(circuit_results == max_amplitude)[0][0] - top_measurement = np.binary_repr(max_amplitude_idx, num_bits) - max_probability = np.abs(max_amplitude) ** 2 - shots = 1 else: - qc = self.construct_circuit(amplification_problem, power, measurement=True) - circuit_results = self._quantum_instance.execute(qc).get_counts(qc) - top_measurement = max(circuit_results.items(), key=operator.itemgetter(1))[0] - shots = sum(circuit_results.values()) - max_probability = ( - max(circuit_results.items(), key=operator.itemgetter(1))[1] / shots - ) + if self._quantum_instance.is_statevector: + qc = self.construct_circuit(amplification_problem, power, measurement=False) + circuit_results = self._quantum_instance.execute(qc).get_statevector() + num_bits = len(amplification_problem.objective_qubits) + + # trace out work qubits + if qc.width() != num_bits: + indices = [ + i + for i in range(qc.num_qubits) + if i not in amplification_problem.objective_qubits + ] + rho = partial_trace(circuit_results, indices) + circuit_results = np.diag(rho.data) + + max_amplitude = max(circuit_results.max(), circuit_results.min(), key=abs) + max_amplitude_idx = np.where(circuit_results == max_amplitude)[0][0] + top_measurement = np.binary_repr(max_amplitude_idx, num_bits) + max_probability = np.abs(max_amplitude) ** 2 + shots = 1 + else: + qc = self.construct_circuit(amplification_problem, power, measurement=True) + circuit_results = self._quantum_instance.execute(qc).get_counts(qc) + top_measurement = max(circuit_results.items(), key=operator.itemgetter(1))[0] + shots = sum(circuit_results.values()) + max_probability = ( + max(circuit_results.items(), key=operator.itemgetter(1))[1] / shots + ) all_circuit_results.append(circuit_results) @@ -341,8 +423,6 @@ class GroverResult(AmplitudeAmplifierResult): def __init__(self) -> None: super().__init__() self._iterations = None - self._circuit_results = None - self._shots = None @property def iterations(self) -> List[int]: diff --git a/qiskit/algorithms/amplitude_estimators/ae.py b/qiskit/algorithms/amplitude_estimators/ae.py index 4d4c89873235..512405f19c9f 100644 --- a/qiskit/algorithms/amplitude_estimators/ae.py +++ b/qiskit/algorithms/amplitude_estimators/ae.py @@ -1,6 +1,6 @@ # This code is part of Qiskit. # -# (C) Copyright IBM 2018, 2020. +# (C) Copyright IBM 2018, 2022. # # This code is licensed under the Apache License, Version 2.0. You may # obtain a copy of this license in the LICENSE.txt file in the root directory @@ -12,18 +12,22 @@ """The Quantum Phase Estimation-based Amplitude Estimation algorithm.""" -from typing import Optional, Union, List, Tuple, Dict +from __future__ import annotations from collections import OrderedDict +import warnings import numpy as np from scipy.stats import chi2, norm from scipy.optimize import bisect from qiskit import QuantumCircuit, ClassicalRegister from qiskit.providers import Backend +from qiskit.primitives import BaseSampler from qiskit.utils import QuantumInstance +from qiskit.utils.deprecation import deprecate_function from .amplitude_estimator import AmplitudeEstimator, AmplitudeEstimatorResult from .ae_utils import pdf_a, derivative_log_pdf_a, bisect_max from .estimation_problem import EstimationProblem +from ..exceptions import AlgorithmError class AmplitudeEstimation(AmplitudeEstimator): @@ -56,9 +60,10 @@ class AmplitudeEstimation(AmplitudeEstimator): def __init__( self, num_eval_qubits: int, - phase_estimation_circuit: Optional[QuantumCircuit] = None, - iqft: Optional[QuantumCircuit] = None, - quantum_instance: Optional[Union[QuantumInstance, Backend]] = None, + phase_estimation_circuit: QuantumCircuit | None = None, + iqft: QuantumCircuit | None = None, + quantum_instance: QuantumInstance | Backend | None = None, + sampler: BaseSampler | None = None, ) -> None: r""" Args: @@ -68,7 +73,9 @@ def __init__( `qiskit.circuit.library.PhaseEstimation` when None. iqft: The inverse quantum Fourier transform component, defaults to using a standard implementation from `qiskit.circuit.library.QFT` when None. - quantum_instance: The backend (or `QuantumInstance`) to execute the circuits on. + quantum_instance: Pending deprecation\: The backend (or `QuantumInstance`) to execute + the circuits on. + sampler: A sampler primitive to evaluate the circuits. Raises: ValueError: If the number of evaluation qubits is smaller than 1. @@ -79,7 +86,16 @@ def __init__( super().__init__() # set quantum instance - self.quantum_instance = quantum_instance + if quantum_instance is not None: + warnings.warn( + "The quantum_instance argument has been superseded by the sampler argument. " + "This argument will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + self.quantum_instance = quantum_instance # get parameters self._m = num_eval_qubits # pylint: disable=invalid-name @@ -87,10 +103,35 @@ def __init__( self._iqft = iqft self._pec = phase_estimation_circuit + self._sampler = sampler + + @property + def sampler(self) -> BaseSampler | None: + """Get the sampler primitive. + + Returns: + The sampler primitive to evaluate the circuits. + """ + return self._sampler + + @sampler.setter + def sampler(self, sampler: BaseSampler) -> None: + """Set sampler primitive. + + Args: + sampler: A sampler primitive to evaluate the circuits. + """ + self._sampler = sampler @property - def quantum_instance(self) -> Optional[QuantumInstance]: - """Get the quantum instance. + @deprecate_function( + "The AmplitudeEstimation.quantum_instance getter is pending deprecation. " + "This property will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) + def quantum_instance(self) -> QuantumInstance | None: + """Pending deprecation; Get the quantum instance. Returns: The quantum instance used to run this algorithm. @@ -98,8 +139,14 @@ def quantum_instance(self) -> Optional[QuantumInstance]: return self._quantum_instance @quantum_instance.setter - def quantum_instance(self, quantum_instance: Union[QuantumInstance, Backend]) -> None: - """Set quantum instance. + @deprecate_function( + "The AmplitudeEstimation.quantum_instance setter is pending deprecation. " + "This property will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) + def quantum_instance(self, quantum_instance: QuantumInstance | Backend) -> None: + """Pending deprecation; Set quantum instance. Args: quantum_instance: The quantum instance used to run this algorithm. @@ -149,9 +196,9 @@ def construct_circuit( def evaluate_measurements( self, - circuit_results: Union[Dict[str, int], np.ndarray], + circuit_results: dict[str, int] | np.ndarray, threshold: float = 1e-6, - ) -> Tuple[Dict[int, float], Dict[float, float]]: + ) -> tuple[dict[int, float], dict[float, float]]: """Evaluate the results from the circuit simulation. Given the probabilities from statevector simulation of the QAE circuit, compute the @@ -159,7 +206,7 @@ def evaluate_measurements( Args: circuit_results: The circuit result from the QAE circuit. Can be either a counts dict - or a statevector. + or a statevector or a quasi-probabilities dict. threshold: Measurements with probabilities below the threshold are discarded. Returns: @@ -168,7 +215,10 @@ def evaluate_measurements( """ # compute grid sample and measurement dicts if isinstance(circuit_results, dict): - samples, measurements = self._evaluate_count_results(circuit_results) + if set(map(type, circuit_results.values())) == {int}: + samples, measurements = self._evaluate_count_results(circuit_results) + else: + samples, measurements = self._evaluate_quasi_probabilities_results(circuit_results) else: samples, measurements = self._evaluate_statevector_results(circuit_results) @@ -197,12 +247,24 @@ def _evaluate_statevector_results(self, statevector): return samples, measurements - def _evaluate_count_results(self, counts): + def _evaluate_quasi_probabilities_results(self, circuit_results): # construct probabilities measurements = OrderedDict() samples = OrderedDict() - shots = self._quantum_instance._run_config.shots + for state, probability in circuit_results.items(): + # reverts the last _m items + y = int(state[: -self._m - 1 : -1], 2) + measurements[y] = probability + a = np.round(np.power(np.sin(y * np.pi / 2**self._m), 2), decimals=7) + samples[a] = samples.get(a, 0.0) + probability + + return samples, measurements + def _evaluate_count_results(self, counts): + # construct probabilities + measurements = OrderedDict() + samples = OrderedDict() + shots = sum(counts.values()) for state, count in counts.items(): y = int(state.replace(" ", "")[: self._m][::-1], 2) probability = count / shots @@ -283,12 +345,16 @@ def estimate(self, estimation_problem: EstimationProblem) -> "AmplitudeEstimatio Raises: ValueError: If `state_preparation` or `objective_qubits` are not set in the `estimation_problem`. + ValueError: A quantum instance or sampler must be provided. + AlgorithmError: Sampler job run error. """ # check if A factory or state_preparation has been set if estimation_problem.state_preparation is None: raise ValueError( "The state_preparation property of the estimation problem must be set." ) + if self._quantum_instance is None and self._sampler is None: + raise ValueError("A quantum instance or sampler must be provided.") if estimation_problem.objective_qubits is None: raise ValueError("The objective_qubits property of the estimation problem must be set.") @@ -297,24 +363,43 @@ def estimate(self, estimation_problem: EstimationProblem) -> "AmplitudeEstimatio result.num_evaluation_qubits = self._m result.post_processing = estimation_problem.post_processing - if self._quantum_instance.is_statevector: + shots = 0 + if self._quantum_instance is not None and self._quantum_instance.is_statevector: circuit = self.construct_circuit(estimation_problem, measurement=False) # run circuit on statevector simulator statevector = self._quantum_instance.execute(circuit).get_statevector() result.circuit_results = statevector - # store number of shots: convention is 1 shot for statevector, # needed so that MLE works! - result.shots = 1 + shots = 1 else: - # run circuit on QASM simulator circuit = self.construct_circuit(estimation_problem, measurement=True) - counts = self._quantum_instance.execute(circuit).get_counts() - result.circuit_results = counts - - # store shots - result.shots = sum(counts.values()) - + if self._quantum_instance is not None: + # run circuit on QASM simulator + result.circuit_results = self._quantum_instance.execute(circuit).get_counts() + shots = sum(result.circuit_results.values()) + else: + try: + job = self._sampler.run([circuit]) + ret = job.result() + except Exception as exc: + raise AlgorithmError("The job was not completed successfully. ") from exc + + shots = ret.metadata[0].get("shots") + if shots is None: + result.circuit_results = { + np.binary_repr(k, circuit.num_qubits): v + for k, v in ret.quasi_dists[0].items() + } + shots = 1 + else: + result.circuit_results = { + np.binary_repr(k, circuit.num_qubits): round(v * shots) + for k, v in ret.quasi_dists[0].items() + } + + # store shots + result.shots = shots samples, measurements = self.evaluate_measurements(result.circuit_results) result.samples = samples @@ -349,7 +434,7 @@ def estimate(self, estimation_problem: EstimationProblem) -> "AmplitudeEstimatio @staticmethod def compute_confidence_interval( result: "AmplitudeEstimationResult", alpha: float = 0.05, kind: str = "likelihood_ratio" - ) -> Tuple[float, float]: + ) -> tuple[float, float]: """Compute the (1 - alpha) confidence interval. Args: @@ -415,12 +500,12 @@ def mle_processed(self, value: float) -> None: self._mle_processed = value @property - def samples_processed(self) -> Dict[float, float]: + def samples_processed(self) -> dict[float, float]: """Return the post-processed measurement samples with their measurement probability.""" return self._samples_processed @samples_processed.setter - def samples_processed(self, value: Dict[float, float]) -> None: + def samples_processed(self, value: dict[float, float]) -> None: """Set the post-processed measurement samples.""" self._samples_processed = value @@ -435,22 +520,22 @@ def mle(self, value: float) -> None: self._mle = value @property - def samples(self) -> Dict[float, float]: + def samples(self) -> dict[float, float]: """Return the measurement samples with their measurement probability.""" return self._samples @samples.setter - def samples(self, value: Dict[float, float]) -> None: + def samples(self, value: dict[float, float]) -> None: """Set the measurement samples with their measurement probability.""" self._samples = value @property - def measurements(self) -> Dict[int, float]: + def measurements(self) -> dict[int, float]: """Return the measurements as integers with their measurement probability.""" return self._y_measurements @measurements.setter - def measurements(self, value: Dict[int, float]) -> None: + def measurements(self, value: dict[int, float]) -> None: """Set the measurements as integers with their measurement probability.""" self._y_measurements = value @@ -500,7 +585,7 @@ def integrand(x): def _fisher_confint( result: AmplitudeEstimationResult, alpha: float, observed: bool = False -) -> List[float]: +) -> list[float]: """Compute the Fisher information confidence interval for the MLE of the previous run. Args: @@ -520,7 +605,7 @@ def _fisher_confint( return tuple(result.post_processing(bound) for bound in confint) -def _likelihood_ratio_confint(result: AmplitudeEstimationResult, alpha: float) -> List[float]: +def _likelihood_ratio_confint(result: AmplitudeEstimationResult, alpha: float) -> list[float]: """Compute the likelihood ratio confidence interval for the MLE of the previous run. Args: diff --git a/qiskit/algorithms/amplitude_estimators/ae_utils.py b/qiskit/algorithms/amplitude_estimators/ae_utils.py index bd695be45a63..87ce83a9cc42 100644 --- a/qiskit/algorithms/amplitude_estimators/ae_utils.py +++ b/qiskit/algorithms/amplitude_estimators/ae_utils.py @@ -20,6 +20,22 @@ # pylint: disable=invalid-name +def _probabilities_from_sampler_result(num_qubits, result, estimation_problem): + """calculate probabilities from sampler result""" + prob = 0 + for bit, probabilities in result.quasi_dists[0].items(): + i = int(bit) + # get bitstring of objective qubits + full_state = bin(i)[2:].zfill(num_qubits)[::-1] + state = "".join([full_state[i] for i in estimation_problem.objective_qubits]) + + # check if it is a good state + if estimation_problem.is_good_state(state[::-1]): + prob += probabilities + + return prob + + def bisect_max(f, a, b, steps=50, minwidth=1e-12, retval=False): """Find the maximum of the real-valued function f in the interval [a, b] using bisection. diff --git a/qiskit/algorithms/amplitude_estimators/amplitude_estimator.py b/qiskit/algorithms/amplitude_estimators/amplitude_estimator.py index 93136b034737..eb2e5a7f4f67 100644 --- a/qiskit/algorithms/amplitude_estimators/amplitude_estimator.py +++ b/qiskit/algorithms/amplitude_estimators/amplitude_estimator.py @@ -12,8 +12,9 @@ """The Amplitude Estimation interface.""" +from __future__ import annotations from abc import abstractmethod, ABC -from typing import Union, Optional, Dict, Callable, Tuple +from typing import Callable import numpy as np from .estimation_problem import EstimationProblem @@ -49,12 +50,12 @@ def __init__(self) -> None: self._confidence_interval_processed = None @property - def circuit_results(self) -> Optional[Union[np.ndarray, Dict[str, int]]]: + def circuit_results(self) -> np.ndarray | dict[str, int] | None: """Return the circuit results. Can be a statevector or counts dictionary.""" return self._circuit_results @circuit_results.setter - def circuit_results(self, value: Union[np.ndarray, Dict[str, int]]) -> None: + def circuit_results(self, value: np.ndarray | dict[str, int]) -> None: """Set the circuit results.""" self._circuit_results = value @@ -109,21 +110,21 @@ def post_processing(self, post_processing: Callable[[float], float]) -> None: self._post_processing = post_processing @property - def confidence_interval(self) -> Tuple[float, float]: + def confidence_interval(self) -> tuple[float, float]: """Return the confidence interval for the amplitude (95% interval by default).""" return self._confidence_interval @confidence_interval.setter - def confidence_interval(self, confidence_interval: Tuple[float, float]) -> None: + def confidence_interval(self, confidence_interval: tuple[float, float]) -> None: """Set the confidence interval for the amplitude (95% interval by default).""" self._confidence_interval = confidence_interval @property - def confidence_interval_processed(self) -> Tuple[float, float]: + def confidence_interval_processed(self) -> tuple[float, float]: """Return the post-processed confidence interval (95% interval by default).""" return self._confidence_interval_processed @confidence_interval_processed.setter - def confidence_interval_processed(self, confidence_interval: Tuple[float, float]) -> None: + def confidence_interval_processed(self, confidence_interval: tuple[float, float]) -> None: """Set the post-processed confidence interval (95% interval by default).""" self._confidence_interval_processed = confidence_interval diff --git a/qiskit/algorithms/amplitude_estimators/estimation_problem.py b/qiskit/algorithms/amplitude_estimators/estimation_problem.py index be563614809b..d38c3c0e2f3c 100644 --- a/qiskit/algorithms/amplitude_estimators/estimation_problem.py +++ b/qiskit/algorithms/amplitude_estimators/estimation_problem.py @@ -12,8 +12,9 @@ """The Estimation problem class.""" +from __future__ import annotations import warnings -from typing import Optional, List, Callable, Union +from typing import Callable import numpy from qiskit.circuit import QuantumCircuit, QuantumRegister @@ -32,10 +33,10 @@ class EstimationProblem: def __init__( self, state_preparation: QuantumCircuit, - objective_qubits: Union[int, List[int]], - grover_operator: Optional[QuantumCircuit] = None, - post_processing: Optional[Callable[[float], float]] = None, - is_good_state: Optional[Callable[[str], bool]] = None, + objective_qubits: int | list[int], + grover_operator: QuantumCircuit | None = None, + post_processing: Callable[[float], float] | None = None, + is_good_state: Callable[[str], bool] | None = None, ) -> None: r""" Args: @@ -59,7 +60,7 @@ def __init__( self._is_good_state = is_good_state @property - def state_preparation(self) -> Optional[QuantumCircuit]: + def state_preparation(self) -> QuantumCircuit | None: r"""Get the :math:`\mathcal{A}` operator encoding the amplitude :math:`a`. Returns: @@ -77,7 +78,7 @@ def state_preparation(self, state_preparation: QuantumCircuit) -> None: self._state_preparation = state_preparation @property - def objective_qubits(self) -> List[int]: + def objective_qubits(self) -> list[int]: """Get the criterion for a measurement outcome to be in a 'good' state. Returns: @@ -89,7 +90,7 @@ def objective_qubits(self) -> List[int]: return self._objective_qubits @objective_qubits.setter - def objective_qubits(self, objective_qubits: Union[int, List[int]]) -> None: + def objective_qubits(self, objective_qubits: int | list[int]) -> None: """Set the criterion for a measurement outcome to be in a 'good' state. Args: @@ -110,7 +111,7 @@ def post_processing(self) -> Callable[[float], float]: return self._post_processing @post_processing.setter - def post_processing(self, post_processing: Optional[Callable[[float], float]]) -> None: + def post_processing(self, post_processing: Callable[[float], float] | None) -> None: """Set the post processing function. Args: @@ -132,7 +133,7 @@ def is_good_state(self) -> Callable[[str], bool]: return self._is_good_state @is_good_state.setter - def is_good_state(self, is_good_state: Optional[Callable[[str], bool]]) -> None: + def is_good_state(self, is_good_state: Callable[[str], bool] | None) -> None: """Set the ``is_good_state`` function. Args: @@ -142,7 +143,7 @@ def is_good_state(self, is_good_state: Optional[Callable[[str], bool]]) -> None: self._is_good_state = is_good_state @property - def grover_operator(self) -> Optional[QuantumCircuit]: + def grover_operator(self) -> QuantumCircuit | None: r"""Get the :math:`\mathcal{Q}` operator, or Grover operator. If the Grover operator is not set, we try to build it from the :math:`\mathcal{A}` operator @@ -172,7 +173,7 @@ def grover_operator(self) -> Optional[QuantumCircuit]: return GroverOperator(oracle, self.state_preparation) @grover_operator.setter - def grover_operator(self, grover_operator: Optional[QuantumCircuit]) -> None: + def grover_operator(self, grover_operator: QuantumCircuit | None) -> None: r"""Set the :math:`\mathcal{Q}` operator. Args: diff --git a/qiskit/algorithms/amplitude_estimators/fae.py b/qiskit/algorithms/amplitude_estimators/fae.py index db8ee9151d50..697556840df0 100644 --- a/qiskit/algorithms/amplitude_estimators/fae.py +++ b/qiskit/algorithms/amplitude_estimators/fae.py @@ -1,6 +1,6 @@ # This code is part of Qiskit. # -# (C) Copyright IBM 2017, 2020. +# (C) Copyright IBM 2017, 2022. # # This code is licensed under the Apache License, Version 2.0. You may # obtain a copy of this license in the LICENSE.txt file in the root directory @@ -12,16 +12,20 @@ """Faster Amplitude Estimation.""" -from typing import Optional, Union, List, Tuple +from __future__ import annotations +import warnings import numpy as np from qiskit.circuit import QuantumCircuit, ClassicalRegister from qiskit.providers import Backend +from qiskit.primitives import BaseSampler from qiskit.utils import QuantumInstance +from qiskit.utils.deprecation import deprecate_function from qiskit.algorithms.exceptions import AlgorithmError from .amplitude_estimator import AmplitudeEstimator, AmplitudeEstimatorResult from .estimation_problem import EstimationProblem +from .ae_utils import _probabilities_from_sampler_result class FasterAmplitudeEstimation(AmplitudeEstimator): @@ -50,14 +54,17 @@ def __init__( delta: float, maxiter: int, rescale: bool = True, - quantum_instance: Optional[Union[QuantumInstance, Backend]] = None, + quantum_instance: QuantumInstance | Backend | None = None, + sampler: BaseSampler | None = None, ) -> None: r""" Args: delta: The probability that the true value is outside of the final confidence interval. maxiter: The number of iterations, the maximal power of Q is `2 ** (maxiter - 1)`. rescale: Whether to rescale the problem passed to `estimate`. - quantum_instance: The quantum instance or backend to run the circuits. + quantum_instance: Pending deprecation\: The quantum instance or backend + to run the circuits. + sampler: A sampler primitive to evaluate the circuits. .. note:: @@ -66,16 +73,51 @@ def __init__( """ super().__init__() - self.quantum_instance = quantum_instance + # set quantum instance + if quantum_instance is not None: + warnings.warn( + "The quantum_instance argument has been superseded by the sampler argument. " + "This argument will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + self.quantum_instance = quantum_instance self._shots = (int(1944 * np.log(2 / delta)), int(972 * np.log(2 / delta))) self._rescale = rescale self._delta = delta self._maxiter = maxiter self._num_oracle_calls = 0 + self._sampler = sampler @property - def quantum_instance(self) -> Optional[QuantumInstance]: - """Get the quantum instance. + def sampler(self) -> BaseSampler | None: + """Get the sampler primitive. + + Returns: + The sampler primitive to evaluate the circuits. + """ + return self._sampler + + @sampler.setter + def sampler(self, sampler: BaseSampler) -> None: + """Set sampler primitive. + + Args: + sampler: A sampler primitive to evaluate the circuits. + """ + self._sampler = sampler + + @property + @deprecate_function( + "The FasterAmplitudeEstimation.quantum_instance getter is pending deprecation. " + "This property will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) + def quantum_instance(self) -> QuantumInstance | None: + """Pending deprecation; Get the quantum instance. Returns: The quantum instance used to run this algorithm. @@ -83,8 +125,14 @@ def quantum_instance(self) -> Optional[QuantumInstance]: return self._quantum_instance @quantum_instance.setter - def quantum_instance(self, quantum_instance: Union[QuantumInstance, Backend]) -> None: - """Set quantum instance. + @deprecate_function( + "The FasterAmplitudeEstimation.quantum_instance setter is pending deprecation. " + "This property will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) + def quantum_instance(self, quantum_instance: QuantumInstance | Backend) -> None: + """Pending deprecation; Set quantum instance. Args: quantum_instance: The quantum instance used to run this algorithm. @@ -94,10 +142,26 @@ def quantum_instance(self, quantum_instance: Union[QuantumInstance, Backend]) -> self._quantum_instance = quantum_instance def _cos_estimate(self, estimation_problem, k, shots): - if self._quantum_instance is None: - raise AlgorithmError("Quantum instance must be set.") + if self._quantum_instance is None and self._sampler is None: + raise ValueError("A quantum instance or sampler must be provided.") - if self._quantum_instance.is_statevector: + if self._sampler is not None: + circuit = self.construct_circuit(estimation_problem, k, measurement=True) + try: + job = self._sampler.run([circuit], shots=shots) + result = job.result() + except Exception as exc: + raise AlgorithmError("The job was not completed successfully. ") from exc + + if shots is None: + shots = 1 + self._num_oracle_calls += (2 * k + 1) * shots + # sum over all probabilities where the objective qubits are 1 + prob = _probabilities_from_sampler_result( + circuit.num_qubits, result, estimation_problem + ) + cos_estimate = 1 - 2 * prob + elif self._quantum_instance.is_statevector: circuit = self.construct_circuit(estimation_problem, k, measurement=False) statevector = self._quantum_instance.execute(circuit).get_statevector() @@ -136,7 +200,7 @@ def _chernoff(self, cos, shots): def construct_circuit( self, estimation_problem: EstimationProblem, k: int, measurement: bool = False - ) -> Union[QuantumCircuit, Tuple[QuantumCircuit, List[int]]]: + ) -> QuantumCircuit | tuple[QuantumCircuit, list[int]]: r"""Construct the circuit :math:`Q^k X |0\rangle>`. The A operator is the unitary specifying the QAE problem and Q the associated Grover @@ -179,21 +243,37 @@ def construct_circuit( return circuit def estimate(self, estimation_problem: EstimationProblem) -> "FasterAmplitudeEstimationResult": + """Run the amplitude estimation algorithm on provided estimation problem. + + Args: + estimation_problem: The estimation problem. + + Returns: + An amplitude estimation results object. + + Raises: + ValueError: A quantum instance or Sampler must be provided. + AlgorithmError: Sampler run error. + """ + if self._quantum_instance is None and self._sampler is None: + raise ValueError("A quantum instance or sampler must be provided.") + self._num_oracle_calls = 0 - user_defined_shots = self.quantum_instance._run_config.shots + user_defined_shots = ( + self._quantum_instance._run_config.shots if self._quantum_instance is not None else None + ) if self._rescale: problem = estimation_problem.rescale(0.25) else: problem = estimation_problem - if self._quantum_instance.is_statevector: + if self._quantum_instance is not None and self._quantum_instance.is_statevector: cos = self._cos_estimate(problem, k=0, shots=1) theta = np.arccos(cos) / 2 theta_ci = [theta, theta] theta_cis = [theta_ci] num_steps = num_first_stage_steps = 1 - else: theta_ci = [0, np.arcsin(0.25)] first_stage = True @@ -240,7 +320,7 @@ def cos_estimate(power, shots): result.num_oracle_queries = self._num_oracle_calls result.num_steps = num_steps result.num_first_state_steps = num_first_stage_steps - if self._quantum_instance.is_statevector: + if self._quantum_instance is not None and self._quantum_instance.is_statevector: result.success_probability = 1 else: result.success_probability = 1 - (2 * self._maxiter - j_0) * self._delta @@ -252,7 +332,9 @@ def cos_estimate(power, shots): result.theta_intervals = theta_cis # reset shots to what the user had defined - self.quantum_instance._run_config.shots = user_defined_shots + if self._quantum_instance is not None: + self._quantum_instance._run_config.shots = user_defined_shots + return result @@ -297,11 +379,11 @@ def num_first_state_steps(self, num_steps: int) -> None: self._num_first_state_steps = num_steps @property - def theta_intervals(self) -> List[List[float]]: + def theta_intervals(self) -> list[list[float]]: """Return the confidence intervals for the angles in each iteration.""" return self._theta_intervals @theta_intervals.setter - def theta_intervals(self, value: List[List[float]]) -> None: + def theta_intervals(self, value: list[list[float]]) -> None: """Set the confidence intervals for the angles in each iteration.""" self._theta_intervals = value diff --git a/qiskit/algorithms/amplitude_estimators/iae.py b/qiskit/algorithms/amplitude_estimators/iae.py index 42727cc5aea0..59a4429d0bf4 100644 --- a/qiskit/algorithms/amplitude_estimators/iae.py +++ b/qiskit/algorithms/amplitude_estimators/iae.py @@ -1,6 +1,6 @@ # This code is part of Qiskit. # -# (C) Copyright IBM 2018, 2020. +# (C) Copyright IBM 2018, 2022. # # This code is licensed under the Apache License, Version 2.0. You may # obtain a copy of this license in the LICENSE.txt file in the root directory @@ -12,16 +12,21 @@ """The Iterative Quantum Amplitude Estimation Algorithm.""" -from typing import Optional, Union, List, Tuple, Dict, cast +from __future__ import annotations +from typing import cast +import warnings import numpy as np from scipy.stats import beta from qiskit import ClassicalRegister, QuantumCircuit from qiskit.providers import Backend +from qiskit.primitives import BaseSampler from qiskit.utils import QuantumInstance +from qiskit.utils.deprecation import deprecate_function from .amplitude_estimator import AmplitudeEstimator, AmplitudeEstimatorResult from .estimation_problem import EstimationProblem +from .ae_utils import _probabilities_from_sampler_result from ..exceptions import AlgorithmError @@ -52,7 +57,8 @@ def __init__( alpha: float, confint_method: str = "beta", min_ratio: float = 2, - quantum_instance: Optional[Union[QuantumInstance, Backend]] = None, + quantum_instance: QuantumInstance | Backend | None = None, + sampler: BaseSampler | None = None, ) -> None: r""" The output of the algorithm is an estimate for the amplitude `a`, that with at least @@ -66,7 +72,8 @@ def __init__( each iteration, can be 'chernoff' for the Chernoff intervals or 'beta' for the Clopper-Pearson intervals (default) min_ratio: Minimal q-ratio (:math:`K_{i+1} / K_i`) for FindNextK - quantum_instance: Quantum Instance or Backend + quantum_instance: Pending deprecation\: Quantum Instance or Backend + sampler: A sampler primitive to evaluate the circuits. Raises: AlgorithmError: if the method to compute the confidence intervals is not supported @@ -89,17 +96,51 @@ def __init__( super().__init__() # set quantum instance - self.quantum_instance = quantum_instance + if quantum_instance is not None: + warnings.warn( + "The quantum_instance argument has been superseded by the sampler argument. " + "This argument will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + self.quantum_instance = quantum_instance # store parameters self._epsilon = epsilon_target self._alpha = alpha self._min_ratio = min_ratio self._confint_method = confint_method + self._sampler = sampler @property - def quantum_instance(self) -> Optional[QuantumInstance]: - """Get the quantum instance. + def sampler(self) -> BaseSampler | None: + """Get the sampler primitive. + + Returns: + The sampler primitive to evaluate the circuits. + """ + return self._sampler + + @sampler.setter + def sampler(self, sampler: BaseSampler) -> None: + """Set sampler primitive. + + Args: + sampler: A sampler primitive to evaluate the circuits. + """ + self._sampler = sampler + + @property + @deprecate_function( + "The IterativeAmplitudeEstimation.quantum_instance getter is pending deprecation. " + "This property will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) + def quantum_instance(self) -> QuantumInstance | None: + """Pending deprecation; Get the quantum instance. Returns: The quantum instance used to run this algorithm. @@ -107,8 +148,14 @@ def quantum_instance(self) -> Optional[QuantumInstance]: return self._quantum_instance @quantum_instance.setter - def quantum_instance(self, quantum_instance: Union[QuantumInstance, Backend]) -> None: - """Set quantum instance. + @deprecate_function( + "The IterativeAmplitudeEstimation.quantum_instance setter is pending deprecation. " + "This property will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) + def quantum_instance(self, quantum_instance: QuantumInstance | Backend) -> None: + """Pending deprecation; Set quantum instance. Args: quantum_instance: The quantum instance used to run this algorithm. @@ -139,9 +186,9 @@ def _find_next_k( self, k: int, upper_half_circle: bool, - theta_interval: Tuple[float, float], + theta_interval: tuple[float, float], min_ratio: float = 2.0, - ) -> Tuple[int, bool]: + ) -> tuple[int, bool]: """Find the largest integer k_next, such that the interval (4 * k_next + 2)*theta_interval lies completely in [0, pi] or [pi, 2pi], for theta_interval = (theta_lower, theta_upper). @@ -238,9 +285,9 @@ def construct_circuit( def _good_state_probability( self, problem: EstimationProblem, - counts_or_statevector: Union[Dict[str, int], np.ndarray], + counts_or_statevector: dict[str, int] | np.ndarray, num_state_qubits: int, - ) -> Union[Tuple[int, float], float]: + ) -> tuple[int, float] | float: """Get the probability to measure '1' in the last qubit. Args: @@ -279,6 +326,21 @@ def _good_state_probability( def estimate( self, estimation_problem: EstimationProblem ) -> "IterativeAmplitudeEstimationResult": + """Run the amplitude estimation algorithm on provided estimation problem. + + Args: + estimation_problem: The estimation problem. + + Returns: + An amplitude estimation results object. + + Raises: + ValueError: A quantum instance or Sampler must be provided. + AlgorithmError: Sampler job run error. + """ + if self._quantum_instance is None and self._sampler is None: + raise ValueError("A quantum instance or sampler must be provided.") + # initialize memory variables powers = [0] # list of powers k: Q^k, (called 'k' in paper) ratios = [] # list of multiplication factors (called 'q' in paper) @@ -293,9 +355,9 @@ def estimate( ) upper_half_circle = True # initially theta is in the upper half-circle - # for statevector we can directly return the probability to measure 1 - # note, that no iterations here are necessary - if self._quantum_instance.is_statevector: + if self._quantum_instance is not None and self._quantum_instance.is_statevector: + # for statevector we can directly return the probability to measure 1 + # note, that no iterations here are necessary # simulate circuit circuit = self.construct_circuit(estimation_problem, k=0, measurement=False) ret = self._quantum_instance.execute(circuit) @@ -308,7 +370,7 @@ def estimate( prob = self._good_state_probability(estimation_problem, statevector, num_qubits) prob = cast(float, prob) # tell MyPy it's a float and not Tuple[int, float ] - a_confidence_interval = [prob, prob] # type: List[float] + a_confidence_interval = [prob, prob] # type: list[float] a_intervals.append(a_confidence_interval) theta_i_interval = [ @@ -319,8 +381,8 @@ def estimate( else: num_iterations = 0 # keep track of the number of iterations - shots = self._quantum_instance._run_config.shots # number of shots per iteration - + # number of shots per iteration + shots = 0 # do while loop, keep in mind that we scaled theta mod 2pi such that it lies in [0,1] while theta_intervals[-1][1] - theta_intervals[-1][0] > self._epsilon / np.pi: num_iterations += 1 @@ -339,10 +401,52 @@ def estimate( # run measurements for Q^k A|0> circuit circuit = self.construct_circuit(estimation_problem, k, measurement=True) - ret = self._quantum_instance.execute(circuit) - - # get the counts and store them - counts = ret.get_counts(circuit) + counts = {} + if self._quantum_instance is not None: + ret = self._quantum_instance.execute(circuit) + # get the counts and store them + counts = ret.get_counts(circuit) + shots = self._quantum_instance._run_config.shots + else: + try: + job = self._sampler.run([circuit]) + ret = job.result() + except Exception as exc: + raise AlgorithmError("The job was not completed successfully. ") from exc + + shots = ret.metadata[0].get("shots") + if shots is None: + circuit = self.construct_circuit(estimation_problem, k=0, measurement=True) + try: + job = self._sampler.run([circuit]) + ret = job.result() + except Exception as exc: + raise AlgorithmError( + "The job was not completed successfully. " + ) from exc + + # calculate the probability of measuring '1' + prob = _probabilities_from_sampler_result( + circuit.num_qubits, ret, estimation_problem + ) + prob = cast( + float, prob + ) # tell MyPy it's a float and not Tuple[int, float ] + + a_confidence_interval = [prob, prob] # type: list[float] + a_intervals.append(a_confidence_interval) + + theta_i_interval = [ + np.arccos(1 - 2 * a_i) / 2 / np.pi for a_i in a_confidence_interval + ] + theta_intervals.append(theta_i_interval) + num_oracle_queries = 0 # no Q-oracle call, only a single one to A + break + + counts = { + np.binary_repr(k, circuit.num_qubits): round(v * shots) + for k, v in ret.quasi_dists[0].items() + } # calculate the probability of measuring '1', 'prob' is a_i in the paper num_qubits = circuit.num_qubits - circuit.num_ancillas @@ -483,59 +587,59 @@ def epsilon_estimated_processed(self, value: float) -> None: self._epsilon_estimated_processed = value @property - def estimate_intervals(self) -> List[List[float]]: + def estimate_intervals(self) -> list[list[float]]: """Return the confidence intervals for the estimate in each iteration.""" return self._estimate_intervals @estimate_intervals.setter - def estimate_intervals(self, value: List[List[float]]) -> None: + def estimate_intervals(self, value: list[list[float]]) -> None: """Set the confidence intervals for the estimate in each iteration.""" self._estimate_intervals = value @property - def theta_intervals(self) -> List[List[float]]: + def theta_intervals(self) -> list[list[float]]: """Return the confidence intervals for the angles in each iteration.""" return self._theta_intervals @theta_intervals.setter - def theta_intervals(self, value: List[List[float]]) -> None: + def theta_intervals(self, value: list[list[float]]) -> None: """Set the confidence intervals for the angles in each iteration.""" self._theta_intervals = value @property - def powers(self) -> List[int]: + def powers(self) -> list[int]: """Return the powers of the Grover operator in each iteration.""" return self._powers @powers.setter - def powers(self, value: List[int]) -> None: + def powers(self, value: list[int]) -> None: """Set the powers of the Grover operator in each iteration.""" self._powers = value @property - def ratios(self) -> List[float]: + def ratios(self) -> list[float]: r"""Return the ratios :math:`K_{i+1}/K_{i}` for each iteration :math:`i`.""" return self._ratios @ratios.setter - def ratios(self, value: List[float]) -> None: + def ratios(self, value: list[float]) -> None: r"""Set the ratios :math:`K_{i+1}/K_{i}` for each iteration :math:`i`.""" self._ratios = value @property - def confidence_interval_processed(self) -> Tuple[float, float]: + def confidence_interval_processed(self) -> tuple[float, float]: """Return the post-processed confidence interval.""" return self._confidence_interval_processed @confidence_interval_processed.setter - def confidence_interval_processed(self, value: Tuple[float, float]) -> None: + def confidence_interval_processed(self, value: tuple[float, float]) -> None: """Set the post-processed confidence interval.""" self._confidence_interval_processed = value def _chernoff_confint( value: float, shots: int, max_rounds: int, alpha: float -) -> Tuple[float, float]: +) -> tuple[float, float]: """Compute the Chernoff confidence interval for `shots` i.i.d. Bernoulli trials. The confidence interval is @@ -559,7 +663,7 @@ def _chernoff_confint( return lower, upper -def _clopper_pearson_confint(counts: int, shots: int, alpha: float) -> Tuple[float, float]: +def _clopper_pearson_confint(counts: int, shots: int, alpha: float) -> tuple[float, float]: """Compute the Clopper-Pearson confidence interval for `shots` i.i.d. Bernoulli trials. Args: diff --git a/qiskit/algorithms/amplitude_estimators/mlae.py b/qiskit/algorithms/amplitude_estimators/mlae.py index 21ca0cb35d1a..8d46e1a2c21e 100644 --- a/qiskit/algorithms/amplitude_estimators/mlae.py +++ b/qiskit/algorithms/amplitude_estimators/mlae.py @@ -1,6 +1,6 @@ # This code is part of Qiskit. # -# (C) Copyright IBM 2018, 2020. +# (C) Copyright IBM 2018, 2022. # # This code is licensed under the Apache License, Version 2.0. You may # obtain a copy of this license in the LICENSE.txt file in the root directory @@ -12,7 +12,9 @@ """The Maximum Likelihood Amplitude Estimation algorithm.""" -from typing import Optional, List, Union, Tuple, Dict, Callable +from __future__ import annotations +import typing +import warnings import numpy as np from scipy.optimize import brute from scipy.stats import norm, chi2 @@ -20,12 +22,16 @@ from qiskit.providers import Backend from qiskit import ClassicalRegister, QuantumRegister, QuantumCircuit from qiskit.utils import QuantumInstance +from qiskit.primitives import BaseSampler +from qiskit.utils.deprecation import deprecate_function from .amplitude_estimator import AmplitudeEstimator, AmplitudeEstimatorResult from .estimation_problem import EstimationProblem from ..exceptions import AlgorithmError -MINIMIZER = Callable[[Callable[[float], float], List[Tuple[float, float]]], float] +MINIMIZER = typing.Callable[ + [typing.Callable[[float], float], typing.List[typing.Tuple[float, float]]], float +] class MaximumLikelihoodAmplitudeEstimation(AmplitudeEstimator): @@ -49,9 +55,10 @@ class in named ``MaximumLikelihoodAmplitudeEstimation``. def __init__( self, - evaluation_schedule: Union[List[int], int], - minimizer: Optional[MINIMIZER] = None, - quantum_instance: Optional[Union[QuantumInstance, Backend]] = None, + evaluation_schedule: list[int] | int, + minimizer: MINIMIZER | None = None, + quantum_instance: QuantumInstance | Backend | None = None, + sampler: BaseSampler | None = None, ) -> None: r""" Args: @@ -64,7 +71,8 @@ def __init__( according to ``evaluation_schedule``. The minimizer takes a function as first argument and a list of (float, float) tuples (as bounds) as second argument and returns a single float which is the found minimum. - quantum_instance: Quantum Instance or Backend + quantum_instance: Pending deprecation\: Quantum Instance or Backend + sampler: A sampler primitive to evaluate the circuits. Raises: ValueError: If the number of oracle circuits is smaller than 1. @@ -73,7 +81,16 @@ def __init__( super().__init__() # set quantum instance - self.quantum_instance = quantum_instance + if quantum_instance is not None: + warnings.warn( + "The quantum_instance argument has been superseded by the sampler argument. " + "This argument will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + self.quantum_instance = quantum_instance # get parameters if isinstance(evaluation_schedule, int): @@ -98,9 +115,35 @@ def default_minimizer(objective_fn, bounds): else: self._minimizer = minimizer + self._sampler = sampler + + @property + def sampler(self) -> BaseSampler | None: + """Get the sampler primitive. + + Returns: + The sampler primitive to evaluate the circuits. + """ + return self._sampler + + @sampler.setter + def sampler(self, sampler: BaseSampler) -> None: + """Set sampler primitive. + + Args: + sampler: A sampler primitive to evaluate the circuits. + """ + self._sampler = sampler + @property - def quantum_instance(self) -> Optional[QuantumInstance]: - """Get the quantum instance. + @deprecate_function( + "The MaximumLikelihoodAmplitudeEstimation.quantum_instance getter is pending deprecation. " + "This property will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) + def quantum_instance(self) -> QuantumInstance | None: + """Pending deprecation; Get the quantum instance. Returns: The quantum instance used to run this algorithm. @@ -108,8 +151,14 @@ def quantum_instance(self) -> Optional[QuantumInstance]: return self._quantum_instance @quantum_instance.setter - def quantum_instance(self, quantum_instance: Union[QuantumInstance, Backend]) -> None: - """Set quantum instance. + @deprecate_function( + "The MaximumLikelihoodAmplitudeEstimation.quantum_instance setter is pending deprecation. " + "This property will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) + def quantum_instance(self, quantum_instance: QuantumInstance | Backend) -> None: + """Pending deprecation; Set quantum instance. Args: quantum_instance: The quantum instance used to run this algorithm. @@ -120,7 +169,7 @@ def quantum_instance(self, quantum_instance: Union[QuantumInstance, Backend]) -> def construct_circuits( self, estimation_problem: EstimationProblem, measurement: bool = False - ) -> List[QuantumCircuit]: + ) -> list[QuantumCircuit]: """Construct the Amplitude Estimation w/o QPE quantum circuits. Args: @@ -148,7 +197,7 @@ def construct_circuits( qc_0.compose(estimation_problem.state_preparation, inplace=True) for k in self._evaluation_schedule: - qc_k = qc_0.copy(name="qc_a_q_%s" % k) + qc_k = qc_0.copy(name=f"qc_a_q_{k}") if k != 0: qc_k.compose(estimation_problem.grover_operator.power(k), inplace=True) @@ -170,7 +219,7 @@ def compute_confidence_interval( alpha: float, kind: str = "fisher", apply_post_processing: bool = False, - ) -> Tuple[float, float]: + ) -> tuple[float, float]: """Compute the `alpha` confidence interval using the method `kind`. The confidence level is (1 - `alpha`) and supported kinds are 'fisher', @@ -216,11 +265,11 @@ def compute_confidence_interval( def compute_mle( self, - circuit_results: Union[List[Dict[str, int]], List[np.ndarray]], + circuit_results: list[dict[str, int]] | list[np.ndarray], estimation_problem: EstimationProblem, - num_state_qubits: Optional[int] = None, + num_state_qubits: int | None = None, return_counts: bool = False, - ) -> Union[float, Tuple[float, List[float]]]: + ) -> float | tuple[float, list[float]]: """Compute the MLE via a grid-search. This is a stable approach if sufficient gridpoints are used. @@ -259,10 +308,25 @@ def loglikelihood(theta): def estimate( self, estimation_problem: EstimationProblem ) -> "MaximumLikelihoodAmplitudeEstimationResult": + """Run the amplitude estimation algorithm on provided estimation problem. + + Args: + estimation_problem: The estimation problem. + + Returns: + An amplitude estimation results object. + + Raises: + ValueError: A quantum instance or Sampler must be provided. + AlgorithmError: If `state_preparation` is not set in + `estimation_problem`. + AlgorithmError: Sampler job run error + """ + if self._quantum_instance is None and self._sampler is None: + raise ValueError("A quantum instance or sampler must be provided.") if estimation_problem.state_preparation is None: raise AlgorithmError( - "Either the state_preparation variable or the a_factory " - "(deprecated) must be set to run the algorithm." + "The state_preparation property of the estimation problem must be set." ) result = MaximumLikelihoodAmplitudeEstimationResult() @@ -270,7 +334,8 @@ def estimate( result.minimizer = self._minimizer result.post_processing = estimation_problem.post_processing - if self._quantum_instance.is_statevector: + shots = 0 + if self._quantum_instance is not None and self._quantum_instance.is_statevector: # run circuit on statevector simulator circuits = self.construct_circuits(estimation_problem, measurement=False) ret = self._quantum_instance.execute(circuits) @@ -281,17 +346,41 @@ def estimate( # to count the number of Q-oracle calls (don't count shots) result.shots = 1 - else: - # run circuit on QASM simulator circuits = self.construct_circuits(estimation_problem, measurement=True) - ret = self._quantum_instance.execute(circuits) - - # get counts and construct MLE input - result.circuit_results = [ret.get_counts(circuit) for circuit in circuits] - - # to count the number of Q-oracle calls - result.shots = self._quantum_instance._run_config.shots + if self._quantum_instance is not None: + # run circuit on QASM simulator + ret = self._quantum_instance.execute(circuits) + # get counts and construct MLE input + result.circuit_results = [ret.get_counts(circuit) for circuit in circuits] + shots = self._quantum_instance._run_config.shots + else: + try: + job = self._sampler.run(circuits) + ret = job.result() + except Exception as exc: + raise AlgorithmError("The job was not completed successfully. ") from exc + + result.circuit_results = [] + shots = ret.metadata[0].get("shots") + if shots is None: + for i, quasi_dist in enumerate(ret.quasi_dists): + circuit_result = { + np.binary_repr(k, circuits[i].num_qubits): v + for k, v in quasi_dist.items() + } + result.circuit_results.append(circuit_result) + shots = 1 + else: + # get counts and construct MLE input + for circuit in circuits: + counts = { + np.binary_repr(k, circuit.num_qubits): round(v * shots) + for k, v in ret.quasi_dists[0].items() + } + result.circuit_results.append(counts) + + result.shots = shots # run maximum likelihood estimation num_state_qubits = circuits[0].num_qubits - circuits[0].num_ancillas @@ -353,22 +442,22 @@ def minimizer(self, value: callable) -> None: self._minimizer = value @property - def good_counts(self) -> List[float]: + def good_counts(self) -> list[float]: """Return the percentage of good counts per circuit power.""" return self._good_counts @good_counts.setter - def good_counts(self, counts: List[float]) -> None: + def good_counts(self, counts: list[float]) -> None: """Set the percentage of good counts per circuit power.""" self._good_counts = counts @property - def evaluation_schedule(self) -> List[int]: + def evaluation_schedule(self) -> list[int]: """Return the evaluation schedule for the powers of the Grover operator.""" return self._evaluation_schedule @evaluation_schedule.setter - def evaluation_schedule(self, evaluation_schedule: List[int]) -> None: + def evaluation_schedule(self, evaluation_schedule: list[int]) -> None: """Set the evaluation schedule for the powers of the Grover operator.""" self._evaluation_schedule = evaluation_schedule @@ -397,7 +486,7 @@ def _safe_max(array, default=(np.pi / 2)): def _compute_fisher_information( result: "MaximumLikelihoodAmplitudeEstimationResult", - num_sum_terms: Optional[int] = None, + num_sum_terms: int | None = None, observed: bool = False, ) -> float: """Compute the Fisher information. @@ -455,7 +544,7 @@ def _compute_fisher_information( def _fisher_confint( result: MaximumLikelihoodAmplitudeEstimationResult, alpha: float = 0.05, observed: bool = False -) -> Tuple[float, float]: +) -> tuple[float, float]: """Compute the `alpha` confidence interval based on the Fisher information. Args: @@ -489,8 +578,8 @@ def _fisher_confint( def _likelihood_ratio_confint( result: MaximumLikelihoodAmplitudeEstimationResult, alpha: float = 0.05, - nevals: Optional[int] = None, -) -> List[float]: + nevals: int | None = None, +) -> list[float]: """Compute the likelihood-ratio confidence interval. Args: @@ -538,10 +627,10 @@ def loglikelihood(theta, one_counts, all_counts): def _get_counts( - circuit_results: List[Union[np.ndarray, List[float], Dict[str, int]]], + circuit_results: list[np.ndarray | list[float], dict[str, int]], estimation_problem: EstimationProblem, num_state_qubits: int, -) -> Tuple[List[float], List[int]]: +) -> tuple[list[float], list[int]]: """Get the good and total counts. Returns: diff --git a/qiskit/algorithms/aux_ops_evaluator.py b/qiskit/algorithms/aux_ops_evaluator.py index dded8f80645b..9ce9349a7de8 100644 --- a/qiskit/algorithms/aux_ops_evaluator.py +++ b/qiskit/algorithms/aux_ops_evaluator.py @@ -26,10 +26,18 @@ from qiskit.providers import Backend from qiskit.quantum_info import Statevector from qiskit.utils import QuantumInstance +from qiskit.utils.deprecation import deprecate_function from .list_or_dict import ListOrDict +@deprecate_function( + "The eval_observables function has been superseded by the " + "qiskit.algorithms.observables_evaluator.estimate_observables function. " + "This function will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, +) def eval_observables( quantum_instance: Union[QuantumInstance, Backend], quantum_state: Union[ @@ -42,10 +50,16 @@ def eval_observables( threshold: float = 1e-12, ) -> ListOrDict[Tuple[complex, complex]]: """ - Accepts a list or a dictionary of operators and calculates their expectation values - means + Pending deprecation: Accepts a list or a dictionary of operators and calculates + their expectation values - means and standard deviations. They are calculated with respect to a quantum state provided. A user can optionally provide a threshold value which filters mean values falling below the threshold. + This function has been superseded by the + :func:`qiskit.algorithms.observables_evaluator.eval_observables` function. + It will be deprecated in a future release and subsequently + removed after that. + Args: quantum_instance: A quantum instance used for calculations. quantum_state: An unparametrized quantum circuit representing a quantum state that diff --git a/qiskit/algorithms/evolvers/evolution_problem.py b/qiskit/algorithms/evolvers/evolution_problem.py index 175beecd6bf6..cd34c5a34f8a 100644 --- a/qiskit/algorithms/evolvers/evolution_problem.py +++ b/qiskit/algorithms/evolvers/evolution_problem.py @@ -17,16 +17,29 @@ from qiskit import QuantumCircuit from qiskit.circuit import Parameter from qiskit.opflow import OperatorBase, StateFn +from qiskit.utils.deprecation import deprecate_function from ..list_or_dict import ListOrDict class EvolutionProblem: - """Evolution problem class. + """Pending deprecation: Evolution problem class. + + The EvolutionProblem class has been superseded by the + :class:`qiskit.algorithms.time_evolvers.TimeEvolutionProblem` class. + This class will be deprecated in a future release and subsequently + removed after that. This class is the input to time evolution algorithms and must contain information on the total evolution time, a quantum state to be evolved and under which Hamiltonian the state is evolved. """ + @deprecate_function( + "The EvolutionProblem class has been superseded by the " + "qiskit.algorithms.time_evolvers.TimeEvolutionProblem class. " + "This class will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) def __init__( self, hamiltonian: OperatorBase, diff --git a/qiskit/algorithms/evolvers/evolution_result.py b/qiskit/algorithms/evolvers/evolution_result.py index 1dd91d705d28..9ae567ca91c9 100644 --- a/qiskit/algorithms/evolvers/evolution_result.py +++ b/qiskit/algorithms/evolvers/evolution_result.py @@ -17,12 +17,27 @@ from qiskit import QuantumCircuit from qiskit.algorithms.list_or_dict import ListOrDict from qiskit.opflow import StateFn, OperatorBase +from qiskit.utils.deprecation import deprecate_function from ..algorithm_result import AlgorithmResult class EvolutionResult(AlgorithmResult): - """Class for holding evolution result.""" + """Pending deprecation: Class for holding evolution result. + The EvolutionResult class has been superseded by the + :class:`qiskit.algorithms.time_evolvers.TimeEvolutionResult` class. + This class will be deprecated in a future release and subsequently + removed after that. + + """ + + @deprecate_function( + "The EvolutionResult class has been superseded by the " + "qiskit.algorithms.time_evolvers.TimeEvolutionResult class. " + "This class will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) def __init__( self, evolved_state: Union[StateFn, QuantumCircuit, OperatorBase], diff --git a/qiskit/algorithms/evolvers/imaginary_evolver.py b/qiskit/algorithms/evolvers/imaginary_evolver.py index 309bb73b08af..37a24d266a30 100644 --- a/qiskit/algorithms/evolvers/imaginary_evolver.py +++ b/qiskit/algorithms/evolvers/imaginary_evolver.py @@ -14,12 +14,30 @@ from abc import ABC, abstractmethod +from qiskit.utils.deprecation import deprecate_function from .evolution_problem import EvolutionProblem from .evolution_result import EvolutionResult class ImaginaryEvolver(ABC): - """Interface for Quantum Imaginary Time Evolution.""" + """Pending deprecation: Interface for Quantum Imaginary Time Evolution. + + The ImaginaryEvolver interface has been superseded by the + :class:`qiskit.algorithms.time_evolvers.ImaginaryTimeEvolver` interface. + This interface will be deprecated in a future release and subsequently + removed after that. + + """ + + @deprecate_function( + "The ImaginaryEvolver interface has been superseded by the " + "qiskit.algorithms.time_evolvers.ImaginaryTimeEvolver interface. " + "This interface will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) + def __init__(self) -> None: + pass @abstractmethod def evolve(self, evolution_problem: EvolutionProblem) -> EvolutionResult: diff --git a/qiskit/algorithms/evolvers/real_evolver.py b/qiskit/algorithms/evolvers/real_evolver.py index 6107facfe542..c869344a19ba 100644 --- a/qiskit/algorithms/evolvers/real_evolver.py +++ b/qiskit/algorithms/evolvers/real_evolver.py @@ -13,13 +13,31 @@ """Interface for Quantum Real Time Evolution.""" from abc import ABC, abstractmethod +from qiskit.utils.deprecation import deprecate_function from .evolution_problem import EvolutionProblem from .evolution_result import EvolutionResult class RealEvolver(ABC): - """Interface for Quantum Real Time Evolution.""" + """Pending deprecation: Interface for Quantum Real Time Evolution. + + The RealEvolver interface has been superseded by the + :class:`qiskit.algorithms.time_evolvers.RealTimeEvolver` interface. + This interface will be deprecated in a future release and subsequently + removed after that. + + """ + + @deprecate_function( + "The RealEvolver interface has been superseded by the " + "qiskit.algorithms.time_evolvers.RealTimeEvolver interface. " + "This interface will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) + def __init__(self) -> None: + pass @abstractmethod def evolve(self, evolution_problem: EvolutionProblem) -> EvolutionResult: diff --git a/qiskit/algorithms/evolvers/trotterization/trotter_qrte.py b/qiskit/algorithms/evolvers/trotterization/trotter_qrte.py index 05b8266605b7..e91793570d51 100644 --- a/qiskit/algorithms/evolvers/trotterization/trotter_qrte.py +++ b/qiskit/algorithms/evolvers/trotterization/trotter_qrte.py @@ -13,6 +13,7 @@ """An algorithm to implement a Trotterization real time-evolution.""" from typing import Union, Optional +import warnings from qiskit import QuantumCircuit from qiskit.algorithms.aux_ops_evaluator import eval_observables @@ -32,10 +33,17 @@ from qiskit.providers import Backend from qiskit.synthesis import ProductFormula, LieTrotter from qiskit.utils import QuantumInstance +from qiskit.utils.deprecation import deprecate_function class TrotterQRTE(RealEvolver): - """Quantum Real Time Evolution using Trotterization. + """Pending deprecation: Quantum Real Time Evolution using Trotterization. + + The TrotterQRTE class has been superseded by the + :class:`qiskit.algorithms.time_evolvers.trotterization.TrotterQRTE` class. + This class will be deprecated in a future release and subsequently + removed after that. + Type of Trotterization is defined by a ProductFormula provided. Examples: @@ -58,6 +66,13 @@ class TrotterQRTE(RealEvolver): evolved_state = trotter_qrte.evolve(evolution_problem).evolved_state """ + @deprecate_function( + "The TrotterQRTE class has been superseded by the " + "qiskit.algorithms.time_evolvers.trotterization.TrotterQRTE class. " + "This class will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) def __init__( self, product_formula: Optional[ProductFormula] = None, @@ -73,6 +88,9 @@ def __init__( quantum_instance: A quantum instance used for calculating expectation values of EvolutionProblem.aux_operators. """ + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + super().__init__() if product_formula is None: product_formula = LieTrotter() self._product_formula = product_formula diff --git a/qiskit/algorithms/evolvers/variational/__init__.py b/qiskit/algorithms/evolvers/variational/__init__.py deleted file mode 100644 index 8936d9030853..000000000000 --- a/qiskit/algorithms/evolvers/variational/__init__.py +++ /dev/null @@ -1,139 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. -""" -Variational Quantum Time Evolutions (:mod:`qiskit.algorithms.evolvers.variational`) -=================================================================================== - -Algorithms for performing Variational Quantum Time Evolution of quantum states, -which can be tailored to near-term devices. -:class:`~qiskit.algorithms.evolvers.variational.VarQTE` base class exposes an interface, compliant -with the Quantum Time Evolution Framework in Qiskit Terra, that is implemented by -:class:`~qiskit.algorithms.VarQRTE` and :class:`~qiskit.algorithms.VarQITE` classes for real and -imaginary time evolution respectively. The variational approach is taken according to a variational -principle chosen by a user. - -Examples: - -.. code-block:: - - from qiskit import BasicAer - from qiskit.circuit.library import EfficientSU2 - from qiskit.opflow import SummedOp, I, Z, Y, X - from qiskit.algorithms.evolvers.variational import ( - ImaginaryMcLachlanPrinciple, - ) - from qiskit.algorithms import EvolutionProblem - from qiskit.algorithms import VarQITE - - # define a Hamiltonian - observable = SummedOp( - [ - 0.2252 * (I ^ I), - 0.5716 * (Z ^ Z), - 0.3435 * (I ^ Z), - -0.4347 * (Z ^ I), - 0.091 * (Y ^ Y), - 0.091 * (X ^ X), - ] - ).reduce() - - # define a parametrized initial state to be evolved - - ansatz = EfficientSU2(observable.num_qubits, reps=1) - parameters = ansatz.parameters - - # define values of initial parameters - init_param_values = np.zeros(len(ansatz.parameters)) - for i in range(len(ansatz.parameters)): - init_param_values[i] = np.pi / 2 - param_dict = dict(zip(parameters, init_param_values)) - - # define a variational principle - var_principle = ImaginaryMcLachlanPrinciple() - - # optionally define a backend - backend = BasicAer.get_backend("statevector_simulator") - - # define evolution time - time = 1 - - # define evolution problem - evolution_problem = EvolutionProblem(observable, time) - - # instantiate the algorithm - var_qite = VarQITE(ansatz, var_principle, param_dict, quantum_instance=backend) - - # run the algorithm/evolve the state - evolution_result = var_qite.evolve(evolution_problem) - -.. currentmodule:: qiskit.algorithms.evolvers.variational - -Variational Principles ----------------------- - -Variational principles can be used to simulate quantum time evolution by propagating the parameters -of a parameterized quantum circuit. - -They can be divided into two categories: - - 1) Variational Quantum Imaginary Time Evolution - Given a Hamiltonian, a time and a variational ansatz, the variational principle describes a - variational principle according to the normalized Wick-rotated Schroedinger equation. - - 2) Variational Quantum Real Time Evolution - Given a Hamiltonian, a time and a variational ansatz, the variational principle describes a - variational principle according to the Schroedinger equation. - -.. autosummary:: - :toctree: ../stubs/ - :template: autosummary/class_no_inherited_members.rst - - VariationalPrinciple - RealVariationalPrinciple - ImaginaryVariationalPrinciple - RealMcLachlanPrinciple - ImaginaryMcLachlanPrinciple - -ODE solvers ------------ -ODE solvers that implement the SciPy ODE Solver interface. The Forward Euler Solver is -a preferred choice in the presence of noise. One might also use solvers provided by SciPy directly, -e.g. RK45. - -.. autosummary:: - :toctree: ../stubs/ - :template: autosummary/class_no_inherited_members.rst - - ForwardEulerSolver - -""" -from .solvers.ode.forward_euler_solver import ForwardEulerSolver -from .var_qte import VarQTE -from .variational_principles.variational_principle import VariationalPrinciple -from .variational_principles import RealVariationalPrinciple, ImaginaryVariationalPrinciple -from .variational_principles.imaginary_mc_lachlan_principle import ( - ImaginaryMcLachlanPrinciple, -) -from .variational_principles.real_mc_lachlan_principle import ( - RealMcLachlanPrinciple, -) - - -__all__ = [ - "ForwardEulerSolver", - "VarQTE", - "VariationalPrinciple", - "RealVariationalPrinciple", - "ImaginaryVariationalPrinciple", - "RealMcLachlanPrinciple", - "ImaginaryMcLachlanPrinciple", -] diff --git a/qiskit/algorithms/evolvers/variational/solvers/__init__.py b/qiskit/algorithms/evolvers/variational/solvers/__init__.py deleted file mode 100644 index 6d273c0618c9..000000000000 --- a/qiskit/algorithms/evolvers/variational/solvers/__init__.py +++ /dev/null @@ -1,44 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. - -""" -Solvers (:mod:`qiskit.algorithms.evolvers.variational.solvers`) -=============================================================== - -This package contains the necessary classes to solve systems of equations arising in the -Variational Quantum Time Evolution. They include ordinary differential equations (ODE) which -describe ansatz parameter propagation and systems of linear equations. - - -Systems of Linear Equations Solver ----------------------------------- - -.. autosummary:: - :toctree: ../stubs/ - :template: autosummary/class_no_inherited_members.rst - - VarQTELinearSolver - - -ODE Solver ----------- -.. autosummary:: - :toctree: ../stubs/ - :template: autosummary/class_no_inherited_members.rst - - VarQTEOdeSolver -""" - -from qiskit.algorithms.evolvers.variational.solvers.ode.var_qte_ode_solver import VarQTEOdeSolver -from qiskit.algorithms.evolvers.variational.solvers.var_qte_linear_solver import VarQTELinearSolver - -__all__ = ["VarQTELinearSolver", "VarQTEOdeSolver"] diff --git a/qiskit/algorithms/evolvers/variational/solvers/ode/abstract_ode_function.py b/qiskit/algorithms/evolvers/variational/solvers/ode/abstract_ode_function.py deleted file mode 100644 index a443a26d1888..000000000000 --- a/qiskit/algorithms/evolvers/variational/solvers/ode/abstract_ode_function.py +++ /dev/null @@ -1,52 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. - -"""Abstract class for generating ODE functions.""" - -from abc import ABC, abstractmethod -from typing import Iterable, Dict, Optional -from qiskit.circuit import Parameter -from ..var_qte_linear_solver import ( - VarQTELinearSolver, -) - - -class AbstractOdeFunction(ABC): - """Abstract class for generating ODE functions.""" - - def __init__( - self, - varqte_linear_solver: VarQTELinearSolver, - error_calculator, - param_dict: Dict[Parameter, complex], - t_param: Optional[Parameter] = None, - ) -> None: - - self._varqte_linear_solver = varqte_linear_solver - self._error_calculator = error_calculator - self._param_dict = param_dict - self._t_param = t_param - - @abstractmethod - def var_qte_ode_function(self, time: float, parameters_values: Iterable) -> Iterable: - """ - Evaluates an ODE function for a given time and parameter values. It is used by an ODE - solver. - - Args: - time: Current time of evolution. - parameters_values: Current values of parameters. - - Returns: - ODE gradient arising from solving a system of linear equations. - """ - pass diff --git a/qiskit/algorithms/evolvers/variational/solvers/ode/forward_euler_solver.py b/qiskit/algorithms/evolvers/variational/solvers/ode/forward_euler_solver.py deleted file mode 100644 index 284b3106fa8a..000000000000 --- a/qiskit/algorithms/evolvers/variational/solvers/ode/forward_euler_solver.py +++ /dev/null @@ -1,73 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. -"""Forward Euler ODE solver.""" - -from typing import Sequence - -import numpy as np -from scipy.integrate import OdeSolver -from scipy.integrate._ivp.base import ConstantDenseOutput - - -class ForwardEulerSolver(OdeSolver): - """Forward Euler ODE solver.""" - - def __init__( - self, - function: callable, - t0: float, - y0: Sequence, - t_bound: float, - vectorized: bool = False, - support_complex: bool = False, - num_t_steps: int = 15, - ): - """ - Forward Euler ODE solver that implements an interface from SciPy. - - Args: - function: Right-hand side of the system. The calling signature is ``fun(t, y)``. Here - ``t`` is a scalar, and there are two options for the ndarray ``y``: - It can either have shape (n,); then ``fun`` must return array_like with - shape (n,). Alternatively it can have shape (n, k); then ``fun`` - must return an array_like with shape (n, k), i.e., each column - corresponds to a single column in ``y``. The choice between the two - options is determined by `vectorized` argument (see below). The - vectorized implementation allows a faster approximation of the Jacobian - by finite differences (required for this solver). - t0: Initial time. - y0: Initial state. - t_bound: Boundary time - the integration won't continue beyond it. It also determines - the direction of the integration. - vectorized: Whether ``fun`` is implemented in a vectorized fashion. Default is False. - support_complex: Whether integration in a complex domain should be supported. - Generally determined by a derived solver class capabilities. Default is False. - num_t_steps: Number of time steps for the forward Euler method. - """ - self.y_old = None - self.step_length = (t_bound - t0) / num_t_steps - super().__init__(function, t0, y0, t_bound, vectorized, support_complex) - - def _step_impl(self): - """ - Takes an Euler step. - """ - try: - self.y_old = self.y - self.y = list(np.add(self.y, self.step_length * self.fun(self.t, self.y))) - self.t += self.step_length - return True, None - except Exception as ex: # pylint: disable=broad-except - return False, f"Unknown ODE solver error: {str(ex)}." - - def _dense_output_impl(self): - return ConstantDenseOutput(self.t_old, self.t, self.y_old) diff --git a/qiskit/algorithms/evolvers/variational/solvers/ode/ode_function.py b/qiskit/algorithms/evolvers/variational/solvers/ode/ode_function.py deleted file mode 100644 index 0d142262868c..000000000000 --- a/qiskit/algorithms/evolvers/variational/solvers/ode/ode_function.py +++ /dev/null @@ -1,43 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. - -"""Class for generating ODE functions based on ODE gradients.""" -from typing import Iterable - -from ..ode.abstract_ode_function import ( - AbstractOdeFunction, -) - - -class OdeFunction(AbstractOdeFunction): - """Class for generating ODE functions based on ODE gradients.""" - - def var_qte_ode_function(self, time: float, parameters_values: Iterable) -> Iterable: - """ - Evaluates an ODE function for a given time and parameter values. It is used by an ODE - solver. - - Args: - time: Current time of evolution. - parameters_values: Current values of parameters. - - Returns: - ODE gradient arising from solving a system of linear equations. - """ - current_param_dict = dict(zip(self._param_dict.keys(), parameters_values)) - - ode_grad_res, _, _ = self._varqte_linear_solver.solve_lse( - current_param_dict, - time, - ) - - return ode_grad_res diff --git a/qiskit/algorithms/evolvers/variational/solvers/ode/ode_function_factory.py b/qiskit/algorithms/evolvers/variational/solvers/ode/ode_function_factory.py deleted file mode 100644 index 2dce88a817b1..000000000000 --- a/qiskit/algorithms/evolvers/variational/solvers/ode/ode_function_factory.py +++ /dev/null @@ -1,83 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. - -"""Abstract class for generating ODE functions.""" - -from abc import ABC -from enum import Enum -from typing import Dict, Any, Optional, Callable - -import numpy as np - -from qiskit.circuit import Parameter -from .abstract_ode_function import AbstractOdeFunction -from .ode_function import OdeFunction -from ..var_qte_linear_solver import ( - VarQTELinearSolver, -) - - -class OdeFunctionType(Enum): - """Types of ODE functions for VatQTE algorithms.""" - - # more will be supported in the near future - STANDARD_ODE = "STANDARD_ODE" - - -class OdeFunctionFactory(ABC): - """Factory for building ODE functions.""" - - def __init__( - self, - ode_function_type: OdeFunctionType = OdeFunctionType.STANDARD_ODE, - lse_solver: Optional[Callable[[np.ndarray, np.ndarray], np.ndarray]] = None, - ) -> None: - """ - Args: - ode_function_type: An Enum that defines a type of an ODE function to be built. If - not provided, a default ``STANDARD_ODE`` is used. - lse_solver: Linear system of equations solver callable. It accepts ``A`` and ``b`` to - solve ``Ax=b`` and returns ``x``. If ``None``, the default ``np.linalg.lstsq`` - solver is used. - """ - self.ode_function_type = ode_function_type - self.lse_solver = lse_solver - - def _build( - self, - varqte_linear_solver: VarQTELinearSolver, - error_calculator: Any, - param_dict: Dict[Parameter, complex], - t_param: Optional[Parameter] = None, - ) -> AbstractOdeFunction: - """ - Initializes an ODE function specified in the class. - - Args: - varqte_linear_solver: Solver of LSE for the VarQTE algorithm. - error_calculator: Calculator of errors for error-based ODE functions. - param_dict: Dictionary which relates parameter values to the parameters in the ansatz. - t_param: Time parameter in case of a time-dependent Hamiltonian. - - Returns: - An ODE function. - - Raises: - ValueError: If unsupported ODE function provided. - - """ - if self.ode_function_type == OdeFunctionType.STANDARD_ODE: - return OdeFunction(varqte_linear_solver, error_calculator, param_dict, t_param) - raise ValueError( - f"Unsupported ODE function provided: {self.ode_function_type}." - f" Only {[tp.value for tp in OdeFunctionType]} are supported." - ) diff --git a/qiskit/algorithms/evolvers/variational/solvers/ode/var_qte_ode_solver.py b/qiskit/algorithms/evolvers/variational/solvers/ode/var_qte_ode_solver.py deleted file mode 100644 index 525769ddc96c..000000000000 --- a/qiskit/algorithms/evolvers/variational/solvers/ode/var_qte_ode_solver.py +++ /dev/null @@ -1,83 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. - -"""Class for solving ODEs for Quantum Time Evolution.""" -from functools import partial -from typing import List, Union, Type, Optional - -import numpy as np -from scipy.integrate import OdeSolver, solve_ivp - -from .abstract_ode_function import ( - AbstractOdeFunction, -) -from .forward_euler_solver import ForwardEulerSolver - - -class VarQTEOdeSolver: - """Class for solving ODEs for Quantum Time Evolution.""" - - def __init__( - self, - init_params: List[complex], - ode_function: AbstractOdeFunction, - ode_solver: Union[Type[OdeSolver], str] = ForwardEulerSolver, - num_timesteps: Optional[int] = None, - ) -> None: - """ - Initialize ODE Solver. - - Args: - init_params: Set of initial parameters for time 0. - ode_function: Generates the ODE function. - ode_solver: ODE solver callable that implements a SciPy ``OdeSolver`` interface or a - string indicating a valid method offered by SciPy. - num_timesteps: The number of timesteps to take. If None, it is - automatically selected to achieve a timestep of approximately 0.01. Only - relevant in case of the ``ForwardEulerSolver``. - """ - self._init_params = init_params - self._ode_function = ode_function.var_qte_ode_function - self._ode_solver = ode_solver - self._num_timesteps = num_timesteps - - def run(self, evolution_time: float) -> List[complex]: - """ - Finds numerical solution with ODE Solver. - - Args: - evolution_time: Evolution time. - - Returns: - List of parameters found by an ODE solver for a given ODE function callable. - """ - # determine the number of timesteps and set the timestep - num_timesteps = ( - int(np.ceil(evolution_time / 0.01)) - if self._num_timesteps is None - else self._num_timesteps - ) - - if self._ode_solver == ForwardEulerSolver: - solve = partial(solve_ivp, num_t_steps=num_timesteps) - else: - solve = solve_ivp - - sol = solve( - self._ode_function, - (0, evolution_time), - self._init_params, - method=self._ode_solver, - ) - final_params_vals = [lst[-1] for lst in sol.y] - - return final_params_vals diff --git a/qiskit/algorithms/evolvers/variational/solvers/var_qte_linear_solver.py b/qiskit/algorithms/evolvers/variational/solvers/var_qte_linear_solver.py deleted file mode 100644 index 1c4a61963374..000000000000 --- a/qiskit/algorithms/evolvers/variational/solvers/var_qte_linear_solver.py +++ /dev/null @@ -1,160 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. - -"""Class for solving linear equations for Quantum Time Evolution.""" - -from typing import Union, List, Dict, Optional, Callable - -import numpy as np - -from qiskit import QuantumCircuit -from qiskit.algorithms.evolvers.variational.variational_principles.variational_principle import ( - VariationalPrinciple, -) -from qiskit.circuit import Parameter -from qiskit.opflow import ( - CircuitSampler, - OperatorBase, - ExpectationBase, -) -from qiskit.providers import Backend -from qiskit.utils import QuantumInstance -from qiskit.utils.backend_utils import is_aer_provider - - -class VarQTELinearSolver: - """Class for solving linear equations for Quantum Time Evolution.""" - - def __init__( - self, - var_principle: VariationalPrinciple, - hamiltonian: OperatorBase, - ansatz: QuantumCircuit, - gradient_params: List[Parameter], - t_param: Optional[Parameter] = None, - lse_solver: Optional[Callable[[np.ndarray, np.ndarray], np.ndarray]] = None, - imag_part_tol: float = 1e-7, - expectation: Optional[ExpectationBase] = None, - quantum_instance: Optional[QuantumInstance] = None, - ) -> None: - """ - Args: - var_principle: Variational Principle to be used. - hamiltonian: - Operator used for Variational Quantum Time Evolution. - The operator may be given either as a composed op consisting of a Hermitian - observable and a ``CircuitStateFn`` or a ``ListOp`` of a ``CircuitStateFn`` with a - ``ComboFn``. - The latter case enables the evaluation of a Quantum Natural Gradient. - ansatz: Quantum state in the form of a parametrized quantum circuit. - gradient_params: List of parameters with respect to which gradients should be computed. - t_param: Time parameter in case of a time-dependent Hamiltonian. - lse_solver: Linear system of equations solver callable. It accepts ``A`` and ``b`` to - solve ``Ax=b`` and returns ``x``. If ``None``, the default ``np.linalg.lstsq`` - solver is used. - imag_part_tol: Allowed value of an imaginary part that can be neglected if no - imaginary part is expected. - expectation: An instance of ``ExpectationBase`` used for calculating a metric tensor - and an evolution gradient. If ``None`` provided, a ``PauliExpectation`` is used. - quantum_instance: Backend used to evaluate the quantum circuit outputs. If ``None`` - provided, everything will be evaluated based on matrix multiplication (which is - slow). - """ - self._var_principle = var_principle - self._hamiltonian = hamiltonian - self._ansatz = ansatz - self._gradient_params = gradient_params - self._bind_params = gradient_params + [t_param] if t_param else gradient_params - self._time_param = t_param - self.lse_solver = lse_solver - self._quantum_instance = None - self._circuit_sampler = None - self._imag_part_tol = imag_part_tol - self._expectation = expectation - if quantum_instance is not None: - self.quantum_instance = quantum_instance - - @property - def lse_solver(self) -> Callable[[np.ndarray, np.ndarray], np.ndarray]: - """Returns an LSE solver callable.""" - return self._lse_solver - - @lse_solver.setter - def lse_solver( - self, lse_solver: Optional[Callable[[np.ndarray, np.ndarray], np.ndarray]] - ) -> None: - """Sets an LSE solver. Uses a ``np.linalg.lstsq`` callable if ``None`` provided.""" - if lse_solver is None: - lse_solver = lambda a, b: np.linalg.lstsq(a, b, rcond=1e-2)[0] - - self._lse_solver = lse_solver - - @property - def quantum_instance(self) -> Optional[QuantumInstance]: - """Returns quantum instance.""" - return self._quantum_instance - - @quantum_instance.setter - def quantum_instance(self, quantum_instance: Union[QuantumInstance, Backend]) -> None: - """Sets quantum_instance""" - if not isinstance(quantum_instance, QuantumInstance): - quantum_instance = QuantumInstance(quantum_instance) - - self._quantum_instance = quantum_instance - self._circuit_sampler = CircuitSampler( - quantum_instance, param_qobj=is_aer_provider(quantum_instance.backend) - ) - - def solve_lse( - self, - param_dict: Dict[Parameter, complex], - time_value: Optional[float] = None, - ) -> (Union[List, np.ndarray], Union[List, np.ndarray], np.ndarray): - """ - Solve the system of linear equations underlying McLachlan's variational principle for the - calculation without error bounds. - - Args: - param_dict: Dictionary which relates parameter values to the parameters in the ansatz. - time_value: Time value that will be bound to ``t_param``. It is required if ``t_param`` - is not ``None``. - - Returns: - Solution to the LSE, A from Ax=b, b from Ax=b. - """ - param_values = list(param_dict.values()) - if self._time_param is not None: - param_values.append(time_value) - - metric_tensor_lse_lhs = self._var_principle.metric_tensor( - self._ansatz, - self._bind_params, - self._gradient_params, - param_values, - self._expectation, - self._quantum_instance, - ) - evolution_grad_lse_rhs = self._var_principle.evolution_grad( - self._hamiltonian, - self._ansatz, - self._circuit_sampler, - param_dict, - self._bind_params, - self._gradient_params, - param_values, - self._expectation, - self._quantum_instance, - ) - - x = self._lse_solver(metric_tensor_lse_lhs, evolution_grad_lse_rhs) - - return np.real(x), metric_tensor_lse_lhs, evolution_grad_lse_rhs diff --git a/qiskit/algorithms/evolvers/variational/var_qite.py b/qiskit/algorithms/evolvers/variational/var_qite.py deleted file mode 100644 index 5d53cc1eef63..000000000000 --- a/qiskit/algorithms/evolvers/variational/var_qite.py +++ /dev/null @@ -1,125 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. - -"""Variational Quantum Imaginary Time Evolution algorithm.""" -from typing import Optional, Union, Type, Callable, List, Dict - -import numpy as np -from scipy.integrate import OdeSolver - -from qiskit import QuantumCircuit -from qiskit.circuit import Parameter -from qiskit.opflow import ExpectationBase, OperatorBase -from qiskit.algorithms.evolvers.imaginary_evolver import ImaginaryEvolver -from qiskit.utils import QuantumInstance -from . import ImaginaryMcLachlanPrinciple -from .solvers.ode.forward_euler_solver import ForwardEulerSolver -from .variational_principles import ImaginaryVariationalPrinciple -from .var_qte import VarQTE - - -class VarQITE(VarQTE, ImaginaryEvolver): - """Variational Quantum Imaginary Time Evolution algorithm. - - .. code-block::python - - from qiskit.algorithms import EvolutionProblem - from qiskit.algorithms import VarQITE - from qiskit import BasicAer - from qiskit.circuit.library import EfficientSU2 - from qiskit.opflow import SummedOp, I, Z, Y, X - from qiskit.algorithms.evolvers.variational import ( - ImaginaryMcLachlanPrinciple, - ) - from qiskit.algorithms import EvolutionProblem - import numpy as np - - observable = SummedOp( - [ - 0.2252 * (I ^ I), - 0.5716 * (Z ^ Z), - 0.3435 * (I ^ Z), - -0.4347 * (Z ^ I), - 0.091 * (Y ^ Y), - 0.091 * (X ^ X), - ] - ).reduce() - - ansatz = EfficientSU2(observable.num_qubits, reps=1) - parameters = ansatz.parameters - init_param_values = np.zeros(len(ansatz.parameters)) - for i in range(len(ansatz.ordered_parameters)): - init_param_values[i] = np.pi / 2 - param_dict = dict(zip(parameters, init_param_values)) - var_principle = ImaginaryMcLachlanPrinciple() - backend = BasicAer.get_backend("statevector_simulator") - time = 1 - evolution_problem = EvolutionProblem(observable, time) - var_qite = VarQITE(ansatz, var_principle, param_dict, quantum_instance=backend) - evolution_result = var_qite.evolve(evolution_problem) - """ - - def __init__( - self, - ansatz: Union[OperatorBase, QuantumCircuit], - variational_principle: Optional[ImaginaryVariationalPrinciple] = None, - initial_parameters: Optional[ - Union[Dict[Parameter, complex], List[complex], np.ndarray] - ] = None, - ode_solver: Union[Type[OdeSolver], str] = ForwardEulerSolver, - lse_solver: Optional[Callable[[np.ndarray, np.ndarray], np.ndarray]] = None, - num_timesteps: Optional[int] = None, - expectation: Optional[ExpectationBase] = None, - imag_part_tol: float = 1e-7, - num_instability_tol: float = 1e-7, - quantum_instance: Optional[QuantumInstance] = None, - ) -> None: - r""" - Args: - ansatz: Ansatz to be used for variational time evolution. - variational_principle: Variational Principle to be used. Defaults to - ``ImaginaryMcLachlanPrinciple``. - initial_parameters: Initial parameter values for an ansatz. If ``None`` provided, - they are initialized uniformly at random. - ode_solver: ODE solver callable that implements a SciPy ``OdeSolver`` interface or a - string indicating a valid method offered by SciPy. - lse_solver: Linear system of equations solver callable. It accepts ``A`` and ``b`` to - solve ``Ax=b`` and returns ``x``. If ``None``, the default ``np.linalg.lstsq`` - solver is used. - num_timesteps: The number of timesteps to take. If None, it is - automatically selected to achieve a timestep of approximately 0.01. Only - relevant in case of the ``ForwardEulerSolver``. - expectation: An instance of ``ExpectationBase`` which defines a method for calculating - a metric tensor and an evolution gradient and, if provided, expectation values of - ``EvolutionProblem.aux_operators``. - imag_part_tol: Allowed value of an imaginary part that can be neglected if no - imaginary part is expected. - num_instability_tol: The amount of negative value that is allowed to be - rounded up to 0 for quantities that are expected to be non-negative. - quantum_instance: Backend used to evaluate the quantum circuit outputs. If ``None`` - provided, everything will be evaluated based on NumPy matrix multiplication - (which might be slow for larger numbers of qubits). - """ - if variational_principle is None: - variational_principle = ImaginaryMcLachlanPrinciple() - super().__init__( - ansatz, - variational_principle, - initial_parameters, - ode_solver, - lse_solver=lse_solver, - num_timesteps=num_timesteps, - expectation=expectation, - imag_part_tol=imag_part_tol, - num_instability_tol=num_instability_tol, - quantum_instance=quantum_instance, - ) diff --git a/qiskit/algorithms/evolvers/variational/var_qrte.py b/qiskit/algorithms/evolvers/variational/var_qrte.py deleted file mode 100644 index c0846a7159b7..000000000000 --- a/qiskit/algorithms/evolvers/variational/var_qrte.py +++ /dev/null @@ -1,126 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. - -"""Variational Quantum Real Time Evolution algorithm.""" -from typing import Optional, Union, Type, Callable, List, Dict - -import numpy as np -from scipy.integrate import OdeSolver - -from qiskit import QuantumCircuit -from qiskit.algorithms.evolvers.real_evolver import RealEvolver -from qiskit.circuit import Parameter -from qiskit.opflow import ExpectationBase, OperatorBase -from qiskit.utils import QuantumInstance -from . import RealMcLachlanPrinciple -from .solvers.ode.forward_euler_solver import ForwardEulerSolver -from .variational_principles import RealVariationalPrinciple -from .var_qte import VarQTE - - -class VarQRTE(VarQTE, RealEvolver): - """Variational Quantum Real Time Evolution algorithm. - - .. code-block::python - - from qiskit.algorithms import EvolutionProblem - from qiskit.algorithms import VarQITE - from qiskit import BasicAer - from qiskit.circuit.library import EfficientSU2 - from qiskit.opflow import SummedOp, I, Z, Y, X - from qiskit.algorithms.evolvers.variational import ( - RealMcLachlanPrinciple, - ) - from qiskit.algorithms import EvolutionProblem - import numpy as np - - observable = SummedOp( - [ - 0.2252 * (I ^ I), - 0.5716 * (Z ^ Z), - 0.3435 * (I ^ Z), - -0.4347 * (Z ^ I), - 0.091 * (Y ^ Y), - 0.091 * (X ^ X), - ] - ).reduce() - - ansatz = EfficientSU2(observable.num_qubits, reps=1) - parameters = ansatz.parameters - init_param_values = np.zeros(len(ansatz.parameters)) - for i in range(len(ansatz.parameters)): - init_param_values[i] = np.pi / 2 - param_dict = dict(zip(parameters, init_param_values)) - var_principle = RealMcLachlanPrinciple() - backend = BasicAer.get_backend("statevector_simulator") - time = 1 - evolution_problem = EvolutionProblem(observable, time) - var_qrte = VarQRTE(ansatz, var_principle, param_dict, quantum_instance=backend) - evolution_result = var_qite.evolve(evolution_problem) - """ - - def __init__( - self, - ansatz: Union[OperatorBase, QuantumCircuit], - variational_principle: Optional[RealVariationalPrinciple] = None, - initial_parameters: Optional[ - Union[Dict[Parameter, complex], List[complex], np.ndarray] - ] = None, - ode_solver: Union[Type[OdeSolver], str] = ForwardEulerSolver, - lse_solver: Optional[Callable[[np.ndarray, np.ndarray], np.ndarray]] = None, - num_timesteps: Optional[int] = None, - expectation: Optional[ExpectationBase] = None, - imag_part_tol: float = 1e-7, - num_instability_tol: float = 1e-7, - quantum_instance: Optional[QuantumInstance] = None, - ) -> None: - r""" - Args: - ansatz: Ansatz to be used for variational time evolution. - variational_principle: Variational Principle to be used. Defaults to - ``RealMcLachlanPrinciple``. - initial_parameters: Initial parameter values for an ansatz. If ``None`` provided, - they are initialized uniformly at random. - ode_solver: ODE solver callable that implements a SciPy ``OdeSolver`` interface or a - string indicating a valid method offered by SciPy. - lse_solver: Linear system of equations solver callable. It accepts ``A`` and ``b`` to - solve ``Ax=b`` and returns ``x``. If ``None``, the default ``np.linalg.lstsq`` - solver is used. - num_timesteps: The number of timesteps to take. If None, it is - automatically selected to achieve a timestep of approximately 0.01. Only - relevant in case of the ``ForwardEulerSolver``. - expectation: An instance of ``ExpectationBase`` which defines a method for calculating - a metric tensor and an evolution gradient and, if provided, expectation values of - ``EvolutionProblem.aux_operators``. - imag_part_tol: Allowed value of an imaginary part that can be neglected if no - imaginary part is expected. - num_instability_tol: The amount of negative value that is allowed to be - rounded up to 0 for quantities that are expected to be - non-negative. - quantum_instance: Backend used to evaluate the quantum circuit outputs. If ``None`` - provided, everything will be evaluated based on matrix multiplication (which is - slow). - """ - if variational_principle is None: - variational_principle = RealMcLachlanPrinciple() - super().__init__( - ansatz, - variational_principle, - initial_parameters, - ode_solver, - lse_solver=lse_solver, - num_timesteps=num_timesteps, - expectation=expectation, - imag_part_tol=imag_part_tol, - num_instability_tol=num_instability_tol, - quantum_instance=quantum_instance, - ) diff --git a/qiskit/algorithms/evolvers/variational/var_qte.py b/qiskit/algorithms/evolvers/variational/var_qte.py deleted file mode 100644 index 7edc898037e0..000000000000 --- a/qiskit/algorithms/evolvers/variational/var_qte.py +++ /dev/null @@ -1,303 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. - -"""The Variational Quantum Time Evolution Interface""" -from abc import ABC -from typing import Optional, Union, Dict, List, Any, Type, Callable - -import numpy as np -from scipy.integrate import OdeSolver - -from qiskit import QuantumCircuit -from qiskit.algorithms.aux_ops_evaluator import eval_observables -from qiskit.algorithms.evolvers.evolution_problem import EvolutionProblem -from qiskit.algorithms.evolvers.evolution_result import EvolutionResult -from qiskit.circuit import Parameter -from qiskit.providers import Backend -from qiskit.utils import QuantumInstance -from qiskit.opflow import ( - CircuitSampler, - OperatorBase, - ExpectationBase, -) -from qiskit.utils.backend_utils import is_aer_provider -from .solvers.ode.forward_euler_solver import ForwardEulerSolver -from .solvers.ode.ode_function_factory import OdeFunctionFactory -from .solvers.var_qte_linear_solver import ( - VarQTELinearSolver, -) -from .variational_principles.variational_principle import ( - VariationalPrinciple, -) -from .solvers.ode.var_qte_ode_solver import ( - VarQTEOdeSolver, -) - - -class VarQTE(ABC): - """Variational Quantum Time Evolution. - - Algorithms that use variational principles to compute a time evolution for a given - Hermitian operator (Hamiltonian) and a quantum state prepared by a parameterized quantum circuit. - - References: - - [1] Benjamin, Simon C. et al. (2019). - Theory of variational quantum simulation. ``_ - """ - - def __init__( - self, - ansatz: Union[OperatorBase, QuantumCircuit], - variational_principle: VariationalPrinciple, - initial_parameters: Optional[ - Union[Dict[Parameter, complex], List[complex], np.ndarray] - ] = None, - ode_solver: Union[Type[OdeSolver], str] = ForwardEulerSolver, - lse_solver: Optional[Callable[[np.ndarray, np.ndarray], np.ndarray]] = None, - num_timesteps: Optional[int] = None, - expectation: Optional[ExpectationBase] = None, - imag_part_tol: float = 1e-7, - num_instability_tol: float = 1e-7, - quantum_instance: Optional[QuantumInstance] = None, - ) -> None: - r""" - Args: - ansatz: Ansatz to be used for variational time evolution. - variational_principle: Variational Principle to be used. - initial_parameters: Initial parameter values for an ansatz. If ``None`` provided, - they are initialized uniformly at random. - ode_solver: ODE solver callable that implements a SciPy ``OdeSolver`` interface or a - string indicating a valid method offered by SciPy. - lse_solver: Linear system of equations solver callable. It accepts ``A`` and ``b`` to - solve ``Ax=b`` and returns ``x``. If ``None``, the default ``np.linalg.lstsq`` - solver is used. - num_timesteps: The number of timesteps to take. If None, it is - automatically selected to achieve a timestep of approximately 0.01. Only - relevant in case of the ``ForwardEulerSolver``. - expectation: An instance of ``ExpectationBase`` which defines a method for calculating - a metric tensor and an evolution gradient and, if provided, expectation values of - ``EvolutionProblem.aux_operators``. - imag_part_tol: Allowed value of an imaginary part that can be neglected if no - imaginary part is expected. - num_instability_tol: The amount of negative value that is allowed to be - rounded up to 0 for quantities that are expected to be - non-negative. - quantum_instance: Backend used to evaluate the quantum circuit outputs. If ``None`` - provided, everything will be evaluated based on matrix multiplication (which is - slow). - """ - super().__init__() - self.ansatz = ansatz - self.variational_principle = variational_principle - self.initial_parameters = initial_parameters - self._quantum_instance = None - if quantum_instance is not None: - self.quantum_instance = quantum_instance - self.expectation = expectation - self.num_timesteps = num_timesteps - self.lse_solver = lse_solver - # OdeFunction abstraction kept for potential extensions - unclear at the moment; - # currently hidden from the user - self._ode_function_factory = OdeFunctionFactory(lse_solver=lse_solver) - self.ode_solver = ode_solver - self.imag_part_tol = imag_part_tol - self.num_instability_tol = num_instability_tol - - @property - def quantum_instance(self) -> Optional[QuantumInstance]: - """Returns quantum instance.""" - return self._quantum_instance - - @quantum_instance.setter - def quantum_instance(self, quantum_instance: Union[QuantumInstance, Backend]) -> None: - """Sets quantum_instance""" - if not isinstance(quantum_instance, QuantumInstance): - quantum_instance = QuantumInstance(quantum_instance) - - self._quantum_instance = quantum_instance - self._circuit_sampler = CircuitSampler( - quantum_instance, param_qobj=is_aer_provider(quantum_instance.backend) - ) - - def evolve(self, evolution_problem: EvolutionProblem) -> EvolutionResult: - """ - Apply Variational Quantum Imaginary Time Evolution (VarQITE) w.r.t. the given - operator. - - Args: - evolution_problem: Instance defining an evolution problem. - Returns: - Result of the evolution which includes a quantum circuit with bound parameters as an - evolved state and, if provided, observables evaluated on the evolved state using - a ``quantum_instance`` and ``expectation`` provided. - - Raises: - ValueError: If no ``initial_state`` is included in the ``evolution_problem``. - """ - self._validate_aux_ops(evolution_problem) - - if evolution_problem.initial_state is not None: - raise ValueError("initial_state provided but not applicable to VarQTE.") - - init_state_param_dict = self._create_init_state_param_dict( - self.initial_parameters, self.ansatz.parameters - ) - - error_calculator = None # TODO will be supported in another PR - - evolved_state = self._evolve( - init_state_param_dict, - evolution_problem.hamiltonian, - evolution_problem.time, - evolution_problem.t_param, - error_calculator, - ) - - evaluated_aux_ops = None - if evolution_problem.aux_operators is not None: - evaluated_aux_ops = eval_observables( - self.quantum_instance, - evolved_state, - evolution_problem.aux_operators, - self.expectation, - ) - - return EvolutionResult(evolved_state, evaluated_aux_ops) - - def _evolve( - self, - init_state_param_dict: Dict[Parameter, complex], - hamiltonian: OperatorBase, - time: float, - t_param: Optional[Parameter] = None, - error_calculator: Any = None, - ) -> OperatorBase: - r""" - Helper method for performing time evolution. Works both for imaginary and real case. - - Args: - init_state_param_dict: Parameter dictionary with initial values for a given - parametrized state/ansatz. If no initial parameter values are provided, they are - initialized uniformly at random. - hamiltonian: - Operator used for Variational Quantum Imaginary Time Evolution (VarQTE). - The operator may be given either as a composed op consisting of a Hermitian - observable and a ``CircuitStateFn`` or a ``ListOp`` of a ``CircuitStateFn`` with a - ``ComboFn``. - The latter case enables the evaluation of a Quantum Natural Gradient. - time: Total time of evolution. - t_param: Time parameter in case of a time-dependent Hamiltonian. - error_calculator: Not yet supported. Calculator of errors for error-based ODE functions. - - Returns: - Result of the evolution which is a quantum circuit with bound parameters as an - evolved state. - """ - - init_state_parameters = list(init_state_param_dict.keys()) - init_state_parameters_values = list(init_state_param_dict.values()) - - linear_solver = VarQTELinearSolver( - self.variational_principle, - hamiltonian, - self.ansatz, - init_state_parameters, - t_param, - self._ode_function_factory.lse_solver, - self.imag_part_tol, - self.expectation, - self._quantum_instance, - ) - - # Convert the operator that holds the Hamiltonian and ansatz into a NaturalGradient operator - ode_function = self._ode_function_factory._build( - linear_solver, error_calculator, init_state_param_dict, t_param - ) - - ode_solver = VarQTEOdeSolver( - init_state_parameters_values, ode_function, self.ode_solver, self.num_timesteps - ) - parameter_values = ode_solver.run(time) - param_dict_from_ode = dict(zip(init_state_parameters, parameter_values)) - - return self.ansatz.assign_parameters(param_dict_from_ode) - - @staticmethod - def _create_init_state_param_dict( - param_values: Union[Dict[Parameter, complex], List[complex], np.ndarray], - init_state_parameters: List[Parameter], - ) -> Dict[Parameter, complex]: - r""" - If ``param_values`` is a dictionary, it looks for parameters present in an initial state - (an ansatz) in a ``param_values``. Based on that, it creates a new dictionary containing - only parameters present in an initial state and their respective values. - If ``param_values`` is a list of values, it creates a new dictionary containing - parameters present in an initial state and their respective values. - If no ``param_values`` is provided, parameter values are chosen uniformly at random. - - Args: - param_values: Dictionary which relates parameter values to the parameters or a list of - values. - init_state_parameters: Parameters present in a quantum state. - - Returns: - Dictionary that maps parameters of an initial state to some values. - - Raises: - ValueError: If the dictionary with parameter values provided does not include all - parameters present in the initial state or if the list of values provided is not the - same length as the list of parameters. - TypeError: If an unsupported type of ``param_values`` provided. - """ - if param_values is None: - init_state_parameter_values = np.random.random(len(init_state_parameters)) - elif isinstance(param_values, dict): - init_state_parameter_values = [] - for param in init_state_parameters: - if param in param_values.keys(): - init_state_parameter_values.append(param_values[param]) - else: - raise ValueError( - f"The dictionary with parameter values provided does not " - f"include all parameters present in the initial state." - f"Parameters present in the state: {init_state_parameters}, " - f"parameters in the dictionary: " - f"{list(param_values.keys())}." - ) - elif isinstance(param_values, (list, np.ndarray)): - if len(init_state_parameters) != len(param_values): - raise ValueError( - f"Initial state has {len(init_state_parameters)} parameters and the" - f" list of values has {len(param_values)} elements. They should be" - f"equal in length." - ) - init_state_parameter_values = param_values - else: - raise TypeError(f"Unsupported type of param_values provided: {type(param_values)}.") - - init_state_param_dict = dict(zip(init_state_parameters, init_state_parameter_values)) - return init_state_param_dict - - def _validate_aux_ops(self, evolution_problem: EvolutionProblem) -> None: - if evolution_problem.aux_operators is not None: - if self.quantum_instance is None: - raise ValueError( - "aux_operators where provided for evaluations but no ``quantum_instance`` " - "was provided." - ) - - if self.expectation is None: - raise ValueError( - "aux_operators where provided for evaluations but no ``expectation`` " - "was provided." - ) diff --git a/qiskit/algorithms/evolvers/variational/variational_principles/__init__.py b/qiskit/algorithms/evolvers/variational/variational_principles/__init__.py deleted file mode 100644 index 7c508f3921de..000000000000 --- a/qiskit/algorithms/evolvers/variational/variational_principles/__init__.py +++ /dev/null @@ -1,25 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. - -"""Variational Principles""" - -from .imaginary_mc_lachlan_principle import ImaginaryMcLachlanPrinciple -from .imaginary_variational_principle import ImaginaryVariationalPrinciple -from .real_mc_lachlan_principle import RealMcLachlanPrinciple -from .real_variational_principle import RealVariationalPrinciple - -__all__ = [ - "ImaginaryMcLachlanPrinciple", - "ImaginaryVariationalPrinciple", - "RealMcLachlanPrinciple", - "RealVariationalPrinciple", -] diff --git a/qiskit/algorithms/evolvers/variational/variational_principles/imaginary_mc_lachlan_principle.py b/qiskit/algorithms/evolvers/variational/variational_principles/imaginary_mc_lachlan_principle.py deleted file mode 100644 index 7a0c46b794f2..000000000000 --- a/qiskit/algorithms/evolvers/variational/variational_principles/imaginary_mc_lachlan_principle.py +++ /dev/null @@ -1,76 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. - -"""Class for an Imaginary McLachlan's Variational Principle.""" -from typing import Dict, List, Optional - -import numpy as np - -from qiskit import QuantumCircuit -from qiskit.circuit import Parameter -from qiskit.opflow import StateFn, OperatorBase, CircuitSampler, ExpectationBase -from qiskit.utils import QuantumInstance -from .imaginary_variational_principle import ( - ImaginaryVariationalPrinciple, -) - - -class ImaginaryMcLachlanPrinciple(ImaginaryVariationalPrinciple): - """Class for an Imaginary McLachlan's Variational Principle. It aims to minimize the distance - between both sides of the Wick-rotated Schrödinger equation with a quantum state given as a - parametrized trial state. The principle leads to a system of linear equations handled by a - linear solver. The imaginary variant means that we consider imaginary time dynamics. - """ - - def evolution_grad( - self, - hamiltonian: OperatorBase, - ansatz: QuantumCircuit, - circuit_sampler: CircuitSampler, - param_dict: Dict[Parameter, complex], - bind_params: List[Parameter], - gradient_params: List[Parameter], - param_values: List[complex], - expectation: Optional[ExpectationBase] = None, - quantum_instance: Optional[QuantumInstance] = None, - ) -> np.ndarray: - """ - Calculates an evolution gradient according to the rules of this variational principle. - - Args: - hamiltonian: Operator used for Variational Quantum Time Evolution. The operator may be - given either as a composed op consisting of a Hermitian observable and a - ``CircuitStateFn`` or a ``ListOp`` of a ``CircuitStateFn`` with a ``ComboFn``. The - latter case enables the evaluation of a Quantum Natural Gradient. - ansatz: Quantum state in the form of a parametrized quantum circuit. - circuit_sampler: A circuit sampler. - param_dict: Dictionary which relates parameter values to the parameters in the ansatz. - bind_params: List of parameters that are supposed to be bound. - gradient_params: List of parameters with respect to which gradients should be computed. - param_values: Values of parameters to be bound. - expectation: An instance of ``ExpectationBase`` used for calculating an evolution - gradient. If ``None`` provided, a ``PauliExpectation`` is used. - quantum_instance: Backend used to evaluate the quantum circuit outputs. If ``None`` - provided, everything will be evaluated based on matrix multiplication (which is - slow). - - Returns: - An evolution gradient. - """ - if self._evolution_gradient_callable is None: - operator = StateFn(hamiltonian, is_measurement=True) @ StateFn(ansatz) - self._evolution_gradient_callable = self._evolution_gradient.gradient_wrapper( - operator, bind_params, gradient_params, quantum_instance, expectation - ) - evolution_grad_lse_rhs = -0.5 * self._evolution_gradient_callable(param_values) - - return evolution_grad_lse_rhs diff --git a/qiskit/algorithms/evolvers/variational/variational_principles/real_mc_lachlan_principle.py b/qiskit/algorithms/evolvers/variational/variational_principles/real_mc_lachlan_principle.py deleted file mode 100644 index ddc6a17ed879..000000000000 --- a/qiskit/algorithms/evolvers/variational/variational_principles/real_mc_lachlan_principle.py +++ /dev/null @@ -1,150 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. - -"""Class for a Real McLachlan's Variational Principle.""" -from typing import Union, Dict, List, Optional - -import numpy as np -from numpy import real - -from qiskit import QuantumCircuit -from qiskit.circuit import Parameter -from qiskit.opflow import ( - StateFn, - SummedOp, - Y, - I, - PauliExpectation, - CircuitQFI, - CircuitSampler, - OperatorBase, - ExpectationBase, -) -from qiskit.opflow.gradients.circuit_gradients import LinComb -from qiskit.utils import QuantumInstance -from .real_variational_principle import ( - RealVariationalPrinciple, -) - - -class RealMcLachlanPrinciple(RealVariationalPrinciple): - """Class for a Real McLachlan's Variational Principle. It aims to minimize the distance - between both sides of the Schrödinger equation with a quantum state given as a parametrized - trial state. The principle leads to a system of linear equations handled by a linear solver. - The real variant means that we consider real time dynamics. - """ - - def __init__( - self, - qfi_method: Union[str, CircuitQFI] = "lin_comb_full", - ) -> None: - """ - Args: - qfi_method: The method used to compute the QFI. Can be either - ``'lin_comb_full'`` or ``'overlap_block_diag'`` or ``'overlap_diag'`` or - ``CircuitQFI``. - """ - self._grad_method = LinComb(aux_meas_op=-Y) - self._energy_param = None - self._energy = None - - super().__init__(qfi_method) - - def evolution_grad( - self, - hamiltonian: OperatorBase, - ansatz: QuantumCircuit, - circuit_sampler: CircuitSampler, - param_dict: Dict[Parameter, complex], - bind_params: List[Parameter], - gradient_params: List[Parameter], - param_values: List[complex], - expectation: Optional[ExpectationBase] = None, - quantum_instance: Optional[QuantumInstance] = None, - ) -> np.ndarray: - """ - Calculates an evolution gradient according to the rules of this variational principle. - - Args: - hamiltonian: Operator used for Variational Quantum Time Evolution. The operator may be - given either as a composed op consisting of a Hermitian observable and a - ``CircuitStateFn`` or a ``ListOp`` of a ``CircuitStateFn`` with a ``ComboFn``. The - latter case enables the evaluation of a Quantum Natural Gradient. - ansatz: Quantum state in the form of a parametrized quantum circuit. - circuit_sampler: A circuit sampler. - param_dict: Dictionary which relates parameter values to the parameters in the ansatz. - bind_params: List of parameters that are supposed to be bound. - gradient_params: List of parameters with respect to which gradients should be computed. - param_values: Values of parameters to be bound. - expectation: An instance of ``ExpectationBase`` used for calculating an evolution - gradient. If ``None`` provided, a ``PauliExpectation`` is used. - quantum_instance: Backend used to evaluate the quantum circuit outputs. If ``None`` - provided, everything will be evaluated based on matrix multiplication (which is - slow). - - Returns: - An evolution gradient. - """ - if self._evolution_gradient_callable is None: - self._energy_param = Parameter("alpha") - modified_hamiltonian = self._construct_expectation( - hamiltonian, ansatz, self._energy_param - ) - - self._evolution_gradient_callable = self._evolution_gradient.gradient_wrapper( - modified_hamiltonian, - bind_params + [self._energy_param], - gradient_params, - quantum_instance, - expectation, - ) - - energy = StateFn(hamiltonian, is_measurement=True) @ StateFn(ansatz) - if expectation is None: - expectation = PauliExpectation() - self._energy = expectation.convert(energy) - - if circuit_sampler is not None: - energy = circuit_sampler.convert(self._energy, param_dict).eval() - else: - energy = self._energy.assign_parameters(param_dict).eval() - - param_values.append(real(energy)) - evolution_grad = 0.5 * self._evolution_gradient_callable(param_values) - - # quick fix due to an error on opflow; to be addressed in a separate PR - evolution_grad = (-1) * evolution_grad - return evolution_grad - - @staticmethod - def _construct_expectation( - hamiltonian: OperatorBase, ansatz: QuantumCircuit, energy_param: Parameter - ) -> OperatorBase: - """ - Modifies a Hamiltonian according to the rules of this variational principle. - - Args: - hamiltonian: Operator used for Variational Quantum Time Evolution. The operator may be - given either as a composed op consisting of a Hermitian observable and a - ``CircuitStateFn`` or a ``ListOp`` of a ``CircuitStateFn`` with a ``ComboFn``. The - latter case enables the evaluation of a Quantum Natural Gradient. - ansatz: Quantum state in the form of a parametrized quantum circuit. - energy_param: Parameter for energy correction. - - Returns: - An modified Hamiltonian composed with an ansatz. - """ - energy_term = I ^ hamiltonian.num_qubits - energy_term *= -1 - energy_term *= energy_param - modified_hamiltonian = SummedOp([hamiltonian, energy_term]).reduce() - return StateFn(modified_hamiltonian, is_measurement=True) @ StateFn(ansatz) diff --git a/qiskit/algorithms/evolvers/variational/variational_principles/real_variational_principle.py b/qiskit/algorithms/evolvers/variational/variational_principles/real_variational_principle.py deleted file mode 100644 index 881e1f3827c7..000000000000 --- a/qiskit/algorithms/evolvers/variational/variational_principles/real_variational_principle.py +++ /dev/null @@ -1,42 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. - -"""Class for a Real Variational Principle.""" - -from abc import ABC -from typing import Union - -from qiskit.opflow import ( - CircuitQFI, -) -from .variational_principle import ( - VariationalPrinciple, -) - - -class RealVariationalPrinciple(VariationalPrinciple, ABC): - """Class for a Real Variational Principle. The real variant means that we consider real time - dynamics.""" - - def __init__( - self, - qfi_method: Union[str, CircuitQFI] = "lin_comb_full", - ) -> None: - """ - Args: - qfi_method: The method used to compute the QFI. Can be either ``'lin_comb_full'`` or - ``'overlap_block_diag'`` or ``'overlap_diag'`` or ``CircuitQFI``. - """ - super().__init__( - qfi_method, - self._grad_method, - ) diff --git a/qiskit/algorithms/evolvers/variational/variational_principles/variational_principle.py b/qiskit/algorithms/evolvers/variational/variational_principles/variational_principle.py deleted file mode 100644 index d3d6cbc20b67..000000000000 --- a/qiskit/algorithms/evolvers/variational/variational_principles/variational_principle.py +++ /dev/null @@ -1,129 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. - -"""Class for a Variational Principle.""" - -from abc import ABC, abstractmethod -from typing import Union, List, Optional, Dict - -import numpy as np - -from qiskit import QuantumCircuit -from qiskit.circuit import Parameter -from qiskit.opflow import ( - CircuitQFI, - CircuitGradient, - QFI, - Gradient, - CircuitStateFn, - CircuitSampler, - OperatorBase, - ExpectationBase, -) -from qiskit.utils import QuantumInstance - - -class VariationalPrinciple(ABC): - """A Variational Principle class. It determines the time propagation of parameters in a - quantum state provided as a parametrized quantum circuit (ansatz).""" - - def __init__( - self, - qfi_method: Union[str, CircuitQFI] = "lin_comb_full", - grad_method: Union[str, CircuitGradient] = "lin_comb", - ) -> None: - """ - Args: - grad_method: The method used to compute the state gradient. Can be either - ``'param_shift'`` or ``'lin_comb'`` or ``'fin_diff'`` or ``CircuitGradient``. - qfi_method: The method used to compute the QFI. Can be either - ``'lin_comb_full'`` or ``'overlap_block_diag'`` or ``'overlap_diag'`` or - ``CircuitQFI``. - """ - self._qfi_method = qfi_method - self.qfi = QFI(qfi_method) - self._grad_method = grad_method - self._evolution_gradient = Gradient(self._grad_method) - self._qfi_gradient_callable = None - self._evolution_gradient_callable = None - - def metric_tensor( - self, - ansatz: QuantumCircuit, - bind_params: List[Parameter], - gradient_params: List[Parameter], - param_values: List[complex], - expectation: Optional[ExpectationBase] = None, - quantum_instance: Optional[QuantumInstance] = None, - ) -> np.ndarray: - """ - Calculates a metric tensor according to the rules of this variational principle. - - Args: - ansatz: Quantum state in the form of a parametrized quantum circuit. - bind_params: List of parameters that are supposed to be bound. - gradient_params: List of parameters with respect to which gradients should be computed. - param_values: Values of parameters to be bound. - expectation: An instance of ``ExpectationBase`` used for calculating a metric tensor. - If ``None`` provided, a ``PauliExpectation`` is used. - quantum_instance: Backend used to evaluate the quantum circuit outputs. If ``None`` - provided, everything will be evaluated based on matrix multiplication (which is - slow). - - Returns: - Metric tensor. - """ - if self._qfi_gradient_callable is None: - self._qfi_gradient_callable = self.qfi.gradient_wrapper( - CircuitStateFn(ansatz), bind_params, gradient_params, quantum_instance, expectation - ) - metric_tensor = 0.25 * self._qfi_gradient_callable(param_values) - - return metric_tensor - - @abstractmethod - def evolution_grad( - self, - hamiltonian: OperatorBase, - ansatz: QuantumCircuit, - circuit_sampler: CircuitSampler, - param_dict: Dict[Parameter, complex], - bind_params: List[Parameter], - gradient_params: List[Parameter], - param_values: List[complex], - expectation: Optional[ExpectationBase] = None, - quantum_instance: Optional[QuantumInstance] = None, - ) -> np.ndarray: - """ - Calculates an evolution gradient according to the rules of this variational principle. - - Args: - hamiltonian: Operator used for Variational Quantum Time Evolution. The operator may be - given either as a composed op consisting of a Hermitian observable and a - ``CircuitStateFn`` or a ``ListOp`` of a ``CircuitStateFn`` with a ``ComboFn``. The - latter case enables the evaluation of a Quantum Natural Gradient. - ansatz: Quantum state in the form of a parametrized quantum circuit. - circuit_sampler: A circuit sampler. - param_dict: Dictionary which relates parameter values to the parameters in the ansatz. - bind_params: List of parameters that are supposed to be bound. - gradient_params: List of parameters with respect to which gradients should be computed. - param_values: Values of parameters to be bound. - expectation: An instance of ``ExpectationBase`` used for calculating an evolution - gradient. If ``None`` provided, a ``PauliExpectation`` is used. - quantum_instance: Backend used to evaluate the quantum circuit outputs. If ``None`` - provided, everything will be evaluated based on matrix multiplication (which is - slow). - - Returns: - An evolution gradient. - """ - pass diff --git a/qiskit/algorithms/gradients/base_estimator_gradient.py b/qiskit/algorithms/gradients/base_estimator_gradient.py index fe71441b45d0..44143de2d1b3 100644 --- a/qiskit/algorithms/gradients/base_estimator_gradient.py +++ b/qiskit/algorithms/gradients/base_estimator_gradient.py @@ -36,19 +36,20 @@ class BaseEstimatorGradient(ABC): def __init__( self, estimator: BaseEstimator, - run_options: dict | None = None, + options: Options | None = None, ): """ Args: estimator: The estimator used to compute the gradients. - run_options: Backend runtime options used for circuit execution. The order of priority is: - run_options in ``run`` method > gradient's default run_options > primitive's default - setting. Higher priority setting overrides lower priority setting. + options: Primitive backend runtime options used for circuit execution. + The order of priority is: options in ``run`` method > gradient's + default options > primitive's default setting. + Higher priority setting overrides lower priority setting """ self._estimator: BaseEstimator = estimator - self._default_run_options = Options() - if run_options is not None: - self._default_run_options.update_options(**run_options) + self._default_options = Options() + if options is not None: + self._default_options.update_options(**options) def run( self, @@ -56,7 +57,7 @@ def run( observables: Sequence[BaseOperator | PauliSumOp], parameter_values: Sequence[Sequence[float]], parameters: Sequence[Sequence[Parameter] | None] | None = None, - **run_options, + **options, ) -> AlgorithmJob: """Run the job of the estimator gradient on the given circuits. @@ -68,9 +69,10 @@ def run( the specified parameters. Each sequence of parameters corresponds to a circuit in ``circuits``. Defaults to None, which means that the gradients of all parameters in each circuit are calculated. - run_options: Backend runtime options used for circuit execution. The order of priority is: - run_options in ``run`` method > gradient's default run_options > primitive's default - setting. Higher priority setting overrides lower priority setting. + options: Primitive backend runtime options used for circuit execution. + The order of priority is: options in ``run`` method > gradient's + default options > primitive's default setting. + Higher priority setting overrides lower priority setting Returns: The job object of the gradients of the expectation values. The i-th result corresponds to @@ -87,11 +89,11 @@ def run( # Validate the arguments. self._validate_arguments(circuits, observables, parameter_values, parameters) # The priority of run option is as follows: - # run_options in ``run`` method > gradient's default run_options > primitive's default setting. - run_opts = copy(self._default_run_options) - run_opts.update_options(**run_options) + # options in ``run`` method > gradient's default options > primitive's default setting. + opts = copy(self._default_options) + opts.update_options(**options) job = AlgorithmJob( - self._run, circuits, observables, parameter_values, parameters, **run_opts.__dict__ + self._run, circuits, observables, parameter_values, parameters, **opts.__dict__ ) job.submit() return job @@ -103,7 +105,7 @@ def _run( observables: Sequence[BaseOperator | PauliSumOp], parameter_values: Sequence[Sequence[float]], parameters: Sequence[Sequence[Parameter] | None], - **run_options, + **options, ) -> EstimatorGradientResult: """Compute the estimator gradients on the given circuits.""" raise NotImplementedError() @@ -166,15 +168,38 @@ def _validate_arguments( f"({observable.num_qubits})." ) - def _get_local_run_options(self, run_options: dict) -> Options: - """Update the run options in the results. + @property + def options(self) -> Options: + """Return the union of estimator options setting and gradient default options, + where, if the same field is set in both, the gradient's default options override + the primitive's default setting. + + Returns: + The gradient default + estimator options. + """ + return self._get_local_options(self._default_options.__dict__) + + def update_default_options(self, **options): + """Update the gradient's default options setting. + + Args: + **options: The fields to update the default options. + """ + + self._default_options.update_options(**options) + + def _get_local_options(self, options: Options) -> Options: + """Return the union of the primitive's default setting, + the gradient default options, and the options in the ``run`` method. + The order of priority is: options in ``run`` method > gradient's + default options > primitive's default setting. Args: - run_options: The run options to update. + options: The fields to update the options Returns: - The updated run options. + The gradient default + estimator + run options. """ - run_opts = copy(self._estimator.run_options) - run_opts.update_options(**run_options) - return run_opts + opts = copy(self._estimator.options) + opts.update_options(**options) + return opts diff --git a/qiskit/algorithms/gradients/base_sampler_gradient.py b/qiskit/algorithms/gradients/base_sampler_gradient.py index 91e3ca23f8fa..8812b0d16493 100644 --- a/qiskit/algorithms/gradients/base_sampler_gradient.py +++ b/qiskit/algorithms/gradients/base_sampler_gradient.py @@ -30,25 +30,26 @@ class BaseSamplerGradient(ABC): """Base class for a ``SamplerGradient`` to compute the gradients of the sampling probability.""" - def __init__(self, sampler: BaseSampler, run_options: dict | None = None): + def __init__(self, sampler: BaseSampler, options: Options | None = None): """ Args: sampler: The sampler used to compute the gradients. - run_options: Backend runtime options used for circuit execution. The order of priority is: - run_options in `run` method > gradient's default run_options > primitive's default - setting. Higher priority setting overrides lower priority setting. + options: Primitive backend runtime options used for circuit execution. + The order of priority is: options in ``run`` method > gradient's + default options > primitive's default setting. + Higher priority setting overrides lower priority setting """ self._sampler: BaseSampler = sampler - self._default_run_options = Options() - if run_options is not None: - self._default_run_options.update_options(**run_options) + self._default_options = Options() + if options is not None: + self._default_options.update_options(**options) def run( self, circuits: Sequence[QuantumCircuit], parameter_values: Sequence[Sequence[float]], parameters: Sequence[Sequence[Parameter] | None] | None = None, - **run_options, + **options, ) -> AlgorithmJob: """Run the job of the sampler gradient on the given circuits. @@ -59,10 +60,10 @@ def run( the specified parameters. Each sequence of parameters corresponds to a circuit in ``circuits``. Defaults to None, which means that the gradients of all parameters in each circuit are calculated. - run_options: Backend runtime options used for circuit execution. The order of priority is: - run_options in ``run`` method > gradient's default run_options > primitive's default - setting. Higher priority setting overrides lower priority setting. - + options: Primitive backend runtime options used for circuit execution. + The order of priority is: options in ``run`` method > gradient's + default options > primitive's default setting. + Higher priority setting overrides lower priority setting Returns: The job object of the gradients of the sampling probability. The i-th result corresponds to ``circuits[i]`` evaluated with parameters bound as ``parameter_values[i]``. @@ -78,10 +79,10 @@ def run( # Validate the arguments. self._validate_arguments(circuits, parameter_values, parameters) # The priority of run option is as follows: - # run_options in `run` method > gradient's default run_options > primitive's default run_options. - run_opts = copy(self._default_run_options) - run_opts.update_options(**run_options) - job = AlgorithmJob(self._run, circuits, parameter_values, parameters, **run_opts.__dict__) + # options in `run` method > gradient's default options > primitive's default options. + opts = copy(self._default_options) + opts.update_options(**options) + job = AlgorithmJob(self._run, circuits, parameter_values, parameters, **opts.__dict__) job.submit() return job @@ -91,7 +92,7 @@ def _run( circuits: Sequence[QuantumCircuit], parameter_values: Sequence[Sequence[float]], parameters: Sequence[Sequence[Parameter] | None], - **run_options, + **options, ) -> SamplerGradientResult: """Compute the sampler gradients on the given circuits.""" raise NotImplementedError() @@ -138,15 +139,38 @@ def _validate_arguments( f"the number of parameters ({circuit.num_parameters}) for the {i}-th circuit." ) - def _get_local_run_options(self, run_options: dict) -> dict: - """Update the run options in the results. + @property + def options(self) -> Options: + """Return the union of sampler options setting and gradient default options, + where, if the same field is set in both, the gradient's default options override + the primitive's default setting. + + Returns: + The gradient default + sampler options. + """ + return self._get_local_options(self._default_options.__dict__) + + def update_default_options(self, **options): + """Update the gradient's default options setting. + + Args: + **options: The fields to update the default options. + """ + + self._default_options.update_options(**options) + + def _get_local_options(self, options: Options) -> Options: + """Return the union of the primitive's default setting, + the gradient default options, and the options in the ``run`` method. + The order of priority is: options in ``run`` method > gradient's + default options > primitive's default setting. Args: - run_options: The run options to update. + options: The fields to update the options Returns: - The updated run options. + The gradient default + sampler + run options. """ - run_opts = copy(self._sampler.run_options) - run_opts.update_options(**run_options) - return run_opts + opts = copy(self._sampler.options) + opts.update_options(**options) + return opts diff --git a/qiskit/algorithms/gradients/estimator_gradient_result.py b/qiskit/algorithms/gradients/estimator_gradient_result.py index 910e64e69122..ada3bdb2b7bf 100644 --- a/qiskit/algorithms/gradients/estimator_gradient_result.py +++ b/qiskit/algorithms/gradients/estimator_gradient_result.py @@ -31,5 +31,5 @@ class EstimatorGradientResult: """The gradients of the expectation values.""" metadata: list[dict[str, Any]] """Additional information about the job.""" - run_options: Options - """run_options for the job.""" + options: Options + """Primitive runtime options for the execution of the job.""" diff --git a/qiskit/algorithms/gradients/finite_diff_estimator_gradient.py b/qiskit/algorithms/gradients/finite_diff_estimator_gradient.py index a2a52446e4ae..98c955f587a0 100644 --- a/qiskit/algorithms/gradients/finite_diff_estimator_gradient.py +++ b/qiskit/algorithms/gradients/finite_diff_estimator_gradient.py @@ -33,14 +33,15 @@ class FiniteDiffEstimatorGradient(BaseEstimatorGradient): Compute the gradients of the expectation values by finite difference method. """ - def __init__(self, estimator: BaseEstimator, epsilon: float, **run_options): + def __init__(self, estimator: BaseEstimator, epsilon: float, **options): """ Args: estimator: The estimator used to compute the gradients. epsilon: The offset size for the finite difference gradients. - run_options: Backend runtime options used for circuit execution. The order of priority is: - run_options in ``run`` method > gradient's default run_options > primitive's default - setting. Higher priority setting overrides lower priority setting. + options: Primitive backend runtime options used for circuit execution. + The order of priority is: options in ``run`` method > gradient's + default options > primitive's default setting. + Higher priority setting overrides lower priority setting Raises: ValueError: If ``epsilon`` is not positive. @@ -49,7 +50,7 @@ def __init__(self, estimator: BaseEstimator, epsilon: float, **run_options): raise ValueError(f"epsilon ({epsilon}) should be positive.") self._epsilon = epsilon self._base_parameter_values_dict = {} - super().__init__(estimator, **run_options) + super().__init__(estimator, **options) def _run( self, @@ -57,7 +58,7 @@ def _run( observables: Sequence[BaseOperator | PauliSumOp], parameter_values: Sequence[Sequence[float]], parameters: Sequence[Sequence[Parameter] | None], - **run_options, + **options, ) -> EstimatorGradientResult: """Compute the estimator gradients on the given circuits.""" jobs, metadata_ = [], [] @@ -76,7 +77,7 @@ def _run( minus = parameter_values_ - self._epsilon * offset n = 2 * len(indices) job = self._estimator.run( - [circuit] * n, [observable] * n, plus.tolist() + minus.tolist(), **run_options + [circuit] * n, [observable] * n, plus.tolist() + minus.tolist(), **options ) jobs.append(job) @@ -91,5 +92,5 @@ def _run( n = len(result.values) // 2 # is always a multiple of 2 gradient_ = (result.values[:n] - result.values[n:]) / (2 * self._epsilon) gradients.append(gradient_) - run_opt = self._get_local_run_options(run_options) - return EstimatorGradientResult(gradients=gradients, metadata=metadata_, run_options=run_opt) + opt = self._get_local_options(options) + return EstimatorGradientResult(gradients=gradients, metadata=metadata_, options=opt) diff --git a/qiskit/algorithms/gradients/finite_diff_sampler_gradient.py b/qiskit/algorithms/gradients/finite_diff_sampler_gradient.py index bdf79cbf382c..d64cad851c94 100644 --- a/qiskit/algorithms/gradients/finite_diff_sampler_gradient.py +++ b/qiskit/algorithms/gradients/finite_diff_sampler_gradient.py @@ -33,15 +33,16 @@ def __init__( self, sampler: BaseSampler, epsilon: float, - **run_options, + **options, ): """ Args: sampler: The sampler used to compute the gradients. epsilon: The offset size for the finite difference gradients. - run_options: Backend runtime options used for circuit execution. The order of priority is: - run_options in ``run`` method > gradient's default run_options > primitive's default - setting. Higher priority setting overrides lower priority setting. + options: Primitive backend runtime options used for circuit execution. + The order of priority is: options in ``run`` method > gradient's + default options > primitive's default setting. + Higher priority setting overrides lower priority setting Raises: ValueError: If ``epsilon`` is not positive. @@ -49,14 +50,14 @@ def __init__( if epsilon <= 0: raise ValueError(f"epsilon ({epsilon}) should be positive.") self._epsilon = epsilon - super().__init__(sampler, **run_options) + super().__init__(sampler, **options) def _run( self, circuits: Sequence[QuantumCircuit], parameter_values: Sequence[Sequence[float]], parameters: Sequence[Sequence[Parameter] | None], - **run_options, + **options, ) -> SamplerGradientResult: """Compute the sampler gradients on the given circuits.""" jobs, metadata_ = [], [] @@ -71,7 +72,7 @@ def _run( plus = parameter_values_ + self._epsilon * offset minus = parameter_values_ - self._epsilon * offset n = 2 * len(indices) - job = self._sampler.run([circuit] * n, plus.tolist() + minus.tolist(), **run_options) + job = self._sampler.run([circuit] * n, plus.tolist() + minus.tolist(), **options) jobs.append(job) # combine the results @@ -92,5 +93,5 @@ def _run( gradient_.append(dict(enumerate(grad_dist))) gradients.append(gradient_) - run_opt = self._get_local_run_options(run_options) - return SamplerGradientResult(gradients=gradients, metadata=metadata_, run_options=run_opt) + opt = self._get_local_options(options) + return SamplerGradientResult(gradients=gradients, metadata=metadata_, options=opt) diff --git a/qiskit/algorithms/gradients/lin_comb_estimator_gradient.py b/qiskit/algorithms/gradients/lin_comb_estimator_gradient.py index 357db3c602bc..80567ab89728 100644 --- a/qiskit/algorithms/gradients/lin_comb_estimator_gradient.py +++ b/qiskit/algorithms/gradients/lin_comb_estimator_gradient.py @@ -44,16 +44,17 @@ class LinCombEstimatorGradient(BaseEstimatorGradient): `arXiv:1811.11184 `_ """ - def __init__(self, estimator: BaseEstimator, **run_options): + def __init__(self, estimator: BaseEstimator, **options): """ Args: estimator: The estimator used to compute the gradients. - run_options: Backend runtime options used for circuit execution. The order of priority is: - run_options in ``run`` method > gradient's default run_options > primitive's default - setting. Higher priority setting overrides lower priority setting. + options: Primitive backend runtime options used for circuit execution. + The order of priority is: options in ``run`` method > gradient's + default options > primitive's default setting. + Higher priority setting overrides lower priority setting """ self._gradient_circuits = {} - super().__init__(estimator, **run_options) + super().__init__(estimator, **options) def _run( self, @@ -61,14 +62,14 @@ def _run( observables: Sequence[BaseOperator | PauliSumOp], parameter_values: Sequence[Sequence[float]], parameters: Sequence[Sequence[Parameter] | None], - **run_options, + **options, ) -> EstimatorGradientResult: """Compute the estimator gradients on the given circuits.""" jobs, result_indices_all, coeffs_all, metadata_ = [], [], [], [] for circuit, observable, parameter_values_, parameters_ in zip( circuits, observables, parameter_values, parameters ): - # Make the observable as observable as :class:`~qiskit.quantum_info.SparsePauliOp`. + # Make the observable as :class:`~qiskit.quantum_info.SparsePauliOp`. observable = init_observable(observable) # a set of parameters to be differentiated if parameters_ is None: @@ -110,7 +111,7 @@ def _run( n = len(gradient_circuits) job = self._estimator.run( - gradient_circuits, [observable_] * n, [parameter_values_] * n, **run_options + gradient_circuits, [observable_] * n, [parameter_values_] * n, **options ) jobs.append(job) result_indices_all.append(result_indices) @@ -129,5 +130,5 @@ def _run( gradient_[idx] += coeff * grad_ gradients.append(gradient_) - run_opt = self._get_local_run_options(run_options) - return EstimatorGradientResult(gradients=gradients, metadata=metadata_, run_options=run_opt) + opt = self._get_local_options(options) + return EstimatorGradientResult(gradients=gradients, metadata=metadata_, options=opt) diff --git a/qiskit/algorithms/gradients/lin_comb_sampler_gradient.py b/qiskit/algorithms/gradients/lin_comb_sampler_gradient.py index 440e083dda50..37f4df7a5591 100644 --- a/qiskit/algorithms/gradients/lin_comb_sampler_gradient.py +++ b/qiskit/algorithms/gradients/lin_comb_sampler_gradient.py @@ -37,24 +37,25 @@ class LinCombSamplerGradient(BaseSamplerGradient): `arXiv:1811.11184 `_ """ - def __init__(self, sampler: BaseSampler, **run_options): + def __init__(self, sampler: BaseSampler, **options): """ Args: sampler: The sampler used to compute the gradients. - run_options: Backend runtime options used for circuit execution. The order of priority is: - run_options in ``run`` method > gradient's default run_options > primitive's default - setting. Higher priority setting overrides lower priority setting. + options: Primitive backend runtime options used for circuit execution. + The order of priority is: options in ``run`` method > gradient's + default options > primitive's default setting. + Higher priority setting overrides lower priority setting """ self._gradient_circuits = {} - super().__init__(sampler, **run_options) + super().__init__(sampler, **options) def _run( self, circuits: Sequence[QuantumCircuit], parameter_values: Sequence[Sequence[float]], parameters: Sequence[Sequence[Parameter] | None], - **run_options, + **options, ) -> SamplerGradientResult: """Compute the sampler gradients on the given circuits.""" jobs, result_indices_all, coeffs_all, metadata_ = [], [], [], [] @@ -96,7 +97,7 @@ def _run( coeffs.append(bound_coeff) n = len(gradient_circuits) - job = self._sampler.run(gradient_circuits, [parameter_values_] * n, **run_options) + job = self._sampler.run(gradient_circuits, [parameter_values_] * n, **options) jobs.append(job) result_indices_all.append(result_indices) coeffs_all.append(coeffs) @@ -120,5 +121,5 @@ def _run( gradient_.append(dict(enumerate(grad_dist))) gradients.append(gradient_) - run_opt = self._get_local_run_options(run_options) - return SamplerGradientResult(gradients=gradients, metadata=metadata_, run_options=run_opt) + opt = self._get_local_options(options) + return SamplerGradientResult(gradients=gradients, metadata=metadata_, options=opt) diff --git a/qiskit/algorithms/gradients/param_shift_estimator_gradient.py b/qiskit/algorithms/gradients/param_shift_estimator_gradient.py index e1a6d300385b..e1c25ad3aa35 100644 --- a/qiskit/algorithms/gradients/param_shift_estimator_gradient.py +++ b/qiskit/algorithms/gradients/param_shift_estimator_gradient.py @@ -33,16 +33,17 @@ class ParamShiftEstimatorGradient(BaseEstimatorGradient): """Compute the gradients of the expectation values by the parameter shift rule""" - def __init__(self, estimator: BaseEstimator, **run_options): + def __init__(self, estimator: BaseEstimator, **options): """ Args: estimator: The estimator used to compute the gradients. - run_options: Backend runtime options used for circuit execution. The order of priority is: - run_options in ``run`` method > gradient's default run_options > primitive's default - setting. Higher priority setting overrides lower priority setting. + options: Primitive backend runtime options used for circuit execution. + The order of priority is: options in ``run`` method > gradient's + default options > primitive's default setting. + Higher priority setting overrides lower priority setting """ self._gradient_circuits = {} - super().__init__(estimator, **run_options) + super().__init__(estimator, **options) def _run( self, @@ -50,7 +51,7 @@ def _run( observables: Sequence[BaseOperator | PauliSumOp], parameter_values: Sequence[Sequence[float]], parameters: Sequence[Sequence[Parameter] | None], - **run_options, + **options, ) -> EstimatorGradientResult: """Compute the estimator gradients on the given circuits.""" jobs, result_indices_all, coeffs_all, metadata_ = [], [], [], [] @@ -89,7 +90,7 @@ def _run( [gradient_circuit.gradient_circuit] * n, [observable] * n, gradient_parameter_values_plus + gradient_parameter_values_minus, - **run_options, + **options, ) jobs.append(job) result_indices_all.append(result_indices) @@ -110,5 +111,5 @@ def _run( values[idx] += coeff * grad_ gradients.append(values) - run_opt = self._get_local_run_options(run_options) - return EstimatorGradientResult(gradients=gradients, metadata=metadata_, run_options=run_opt) + opt = self._get_local_options(options) + return EstimatorGradientResult(gradients=gradients, metadata=metadata_, options=opt) diff --git a/qiskit/algorithms/gradients/param_shift_sampler_gradient.py b/qiskit/algorithms/gradients/param_shift_sampler_gradient.py index 1f0e254b2b0f..a55e372b623b 100644 --- a/qiskit/algorithms/gradients/param_shift_sampler_gradient.py +++ b/qiskit/algorithms/gradients/param_shift_sampler_gradient.py @@ -31,23 +31,24 @@ class ParamShiftSamplerGradient(BaseSamplerGradient): """Compute the gradients of the sampling probability by the parameter shift rule.""" - def __init__(self, sampler: BaseSampler, **run_options): + def __init__(self, sampler: BaseSampler, **options): """ Args: sampler: The sampler used to compute the gradients. - run_options: Backend runtime options used for circuit execution. The order of priority is: - run_options in ``run`` method > gradient's default run_options > primitive's default - setting. Higher priority setting overrides lower priority setting. + options: Primitive backend runtime options used for circuit execution. + The order of priority is: options in ``run`` method > gradient's + default options > primitive's default setting. + Higher priority setting overrides lower priority setting """ self._gradient_circuits = {} - super().__init__(sampler, **run_options) + super().__init__(sampler, **options) def _run( self, circuits: Sequence[QuantumCircuit], parameter_values: Sequence[Sequence[float]], parameters: Sequence[Sequence[Parameter] | None], - **run_options, + **options, ) -> SamplerGradientResult: """Compute the sampler gradients on the given circuits.""" jobs, result_indices_all, coeffs_all, metadata_ = [], [], [], [] @@ -84,7 +85,7 @@ def _run( job = self._sampler.run( [gradient_circuit.gradient_circuit] * n, gradient_parameter_values_plus + gradient_parameter_values_minus, - **run_options, + **options, ) jobs.append(job) result_indices_all.append(result_indices) @@ -115,5 +116,5 @@ def _run( gradient_.append(dict(enumerate(grad_dist))) gradients.append(gradient_) - run_opt = self._get_local_run_options(run_options) - return SamplerGradientResult(gradients=gradients, metadata=metadata_, run_options=run_opt) + opt = self._get_local_options(options) + return SamplerGradientResult(gradients=gradients, metadata=metadata_, options=opt) diff --git a/qiskit/algorithms/gradients/sampler_gradient_result.py b/qiskit/algorithms/gradients/sampler_gradient_result.py index 89b94bf10bf7..b78b468f1b9f 100644 --- a/qiskit/algorithms/gradients/sampler_gradient_result.py +++ b/qiskit/algorithms/gradients/sampler_gradient_result.py @@ -29,5 +29,5 @@ class SamplerGradientResult: """The gradients of the sample probabilities.""" metadata: list[dict[str, Any]] """Additional information about the job.""" - run_options: Options - """run_options for the job.""" + options: Options + """Primitive runtime options for the execution of the job.""" diff --git a/qiskit/algorithms/gradients/spsa_estimator_gradient.py b/qiskit/algorithms/gradients/spsa_estimator_gradient.py index 84681dfb3634..89e7d0639e72 100644 --- a/qiskit/algorithms/gradients/spsa_estimator_gradient.py +++ b/qiskit/algorithms/gradients/spsa_estimator_gradient.py @@ -40,7 +40,7 @@ def __init__( epsilon: float, batch_size: int = 1, seed: int | None = None, - **run_options, + **options, ): """ Args: @@ -48,9 +48,10 @@ def __init__( epsilon: The offset size for the SPSA gradients. batch_size: The number of gradients to average. seed: The seed for a random perturbation vector. - run_options: Backend runtime options used for circuit execution. The order of priority is: - run_options in ``run`` method > gradient's default run_options > primitive's default - setting. Higher priority setting overrides lower priority setting. + options: Primitive backend runtime options used for circuit execution. + The order of priority is: options in ``run`` method > gradient's + default options > primitive's default setting. + Higher priority setting overrides lower priority setting Raises: ValueError: If ``epsilon`` is not positive. @@ -61,7 +62,7 @@ def __init__( self._batch_size = batch_size self._seed = np.random.default_rng(seed) - super().__init__(estimator, **run_options) + super().__init__(estimator, **options) def _run( self, @@ -69,7 +70,7 @@ def _run( observables: Sequence[BaseOperator | PauliSumOp], parameter_values: Sequence[Sequence[float]], parameters: Sequence[Sequence[Parameter] | None], - **run_options, + **options, ) -> EstimatorGradientResult: """Compute the estimator gradients on the given circuits.""" jobs, offsets, metadata_ = [], [], [] @@ -96,7 +97,7 @@ def _run( [circuit] * 2 * self._batch_size, [observable] * 2 * self._batch_size, plus + minus, - **run_options, + **options, ) jobs.append(job) @@ -119,5 +120,5 @@ def _run( indices = [circuits[i].parameters.data.index(p) for p in metadata_[i]["parameters"]] gradients.append(gradient[indices]) - run_opt = self._get_local_run_options(run_options) - return EstimatorGradientResult(gradients=gradients, metadata=metadata_, run_options=run_opt) + opt = self._get_local_options(options) + return EstimatorGradientResult(gradients=gradients, metadata=metadata_, options=opt) diff --git a/qiskit/algorithms/gradients/spsa_sampler_gradient.py b/qiskit/algorithms/gradients/spsa_sampler_gradient.py index b5426b0b3221..94a359a8509e 100644 --- a/qiskit/algorithms/gradients/spsa_sampler_gradient.py +++ b/qiskit/algorithms/gradients/spsa_sampler_gradient.py @@ -38,7 +38,7 @@ def __init__( epsilon: float, batch_size: int = 1, seed: int | None = None, - **run_options, + **options, ): """ Args: @@ -46,9 +46,10 @@ def __init__( epsilon: The offset size for the SPSA gradients. batch_size: number of gradients to average. seed: The seed for a random perturbation vector. - run_options: Backend runtime options used for circuit execution. The order of priority is: - run_options in `run` method > gradient's default run_options > primitive's default - setting. Higher priority setting overrides lower priority setting. + options: Primitive backend runtime options used for circuit execution. + The order of priority is: options in ``run`` method > gradient's + default options > primitive's default setting. + Higher priority setting overrides lower priority setting Raises: ValueError: If ``epsilon`` is not positive. @@ -59,14 +60,14 @@ def __init__( self._epsilon = epsilon self._seed = np.random.default_rng(seed) - super().__init__(sampler, **run_options) + super().__init__(sampler, **options) def _run( self, circuits: Sequence[QuantumCircuit], parameter_values: Sequence[Sequence[float]], parameters: Sequence[Sequence[Parameter] | None], - **run_options, + **options, ) -> SamplerGradientResult: """Compute the sampler gradients on the given circuits.""" jobs, offsets, metadata_ = [], [], [] @@ -88,7 +89,7 @@ def _run( minus = [parameter_values_ - self._epsilon * offset_ for offset_ in offset] offsets.append(offset) - job = self._sampler.run([circuit] * 2 * self._batch_size, plus + minus, **run_options) + job = self._sampler.run([circuit] * 2 * self._batch_size, plus + minus, **options) jobs.append(job) # combine the results @@ -120,5 +121,5 @@ def _run( gradient.append(dict(enumerate(gradient_j))) gradients.append(gradient) - run_opt = self._get_local_run_options(run_options) - return SamplerGradientResult(gradients=gradients, metadata=metadata_, run_options=run_opt) + opt = self._get_local_options(options) + return SamplerGradientResult(gradients=gradients, metadata=metadata_, options=opt) diff --git a/qiskit/algorithms/minimum_eigen_solvers/minimum_eigen_solver.py b/qiskit/algorithms/minimum_eigen_solvers/minimum_eigen_solver.py index 7cdd245b7076..373876a9e046 100644 --- a/qiskit/algorithms/minimum_eigen_solvers/minimum_eigen_solver.py +++ b/qiskit/algorithms/minimum_eigen_solvers/minimum_eigen_solver.py @@ -1,6 +1,6 @@ # This code is part of Qiskit. # -# (C) Copyright IBM 2020. +# (C) Copyright IBM 2020, 2022. # # This code is licensed under the Apache License, Version 2.0. You may # obtain a copy of this license in the LICENSE.txt file in the root directory @@ -18,18 +18,34 @@ import numpy as np from qiskit.opflow import OperatorBase +from qiskit.utils.deprecation import deprecate_function from ..algorithm_result import AlgorithmResult from ..list_or_dict import ListOrDict class MinimumEigensolver(ABC): - """The Minimum Eigensolver Interface. + """Pending deprecation: Minimum Eigensolver Interface. + + The Minimum Eigensolver interface has been superseded by the + :class:`qiskit.algorithms.minimum_eigensolvers.MinimumEigensolver` interface. + This interface will be deprecated in a future release and subsequently + removed after that. Algorithms that can compute a minimum eigenvalue for an operator may implement this interface to allow different algorithms to be used interchangeably. """ + @deprecate_function( + "The Minimum Eigensolver interface has been superseded by the " + "qiskit.algorithms.minimum_eigensolvers.MinimumEigensolver interface. " + "This interface will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) + def __init__(self) -> None: + pass + @abstractmethod def compute_minimum_eigenvalue( self, operator: OperatorBase, aux_operators: Optional[ListOrDict[OperatorBase]] = None @@ -67,8 +83,22 @@ def supports_aux_operators(cls) -> bool: class MinimumEigensolverResult(AlgorithmResult): - """Minimum Eigensolver Result.""" + """Pending deprecation: Minimum Eigensolver Result. + + The MinimumEigensolverResult class has been superseded by the + :class:`qiskit.algorithms.minimum_eigensolvers.MinimumEigensolverResult` class. + This class will be deprecated in a future release and subsequently + removed after that. + + """ + @deprecate_function( + "The MinimumEigensolverResult class has been superseded by the " + "qiskit.algorithms.minimum_eigensolvers.MinimumEigensolverResult class. " + "This class will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) def __init__(self) -> None: super().__init__() self._eigenvalue = None diff --git a/qiskit/algorithms/minimum_eigen_solvers/numpy_minimum_eigen_solver.py b/qiskit/algorithms/minimum_eigen_solvers/numpy_minimum_eigen_solver.py index 5515ba92d745..191a130a0163 100644 --- a/qiskit/algorithms/minimum_eigen_solvers/numpy_minimum_eigen_solver.py +++ b/qiskit/algorithms/minimum_eigen_solvers/numpy_minimum_eigen_solver.py @@ -1,6 +1,6 @@ # This code is part of Qiskit. # -# (C) Copyright IBM 2020. +# (C) Copyright IBM 2020, 2022. # # This code is licensed under the Apache License, Version 2.0. You may # obtain a copy of this license in the LICENSE.txt file in the root directory @@ -14,9 +14,11 @@ from typing import List, Optional, Union, Callable import logging +import warnings import numpy as np from qiskit.opflow import OperatorBase +from qiskit.utils.deprecation import deprecate_function from ..eigen_solvers.numpy_eigen_solver import NumPyEigensolver from .minimum_eigen_solver import MinimumEigensolver, MinimumEigensolverResult from ..list_or_dict import ListOrDict @@ -26,9 +28,22 @@ class NumPyMinimumEigensolver(MinimumEigensolver): """ - The Numpy Minimum Eigensolver algorithm. + Pending deprecation: Numpy Minimum Eigensolver algorithm. + + The NumPyMinimumEigensolver class has been superseded by the + :class:`qiskit.algorithms.minimum_eigensolvers.NumPyMinimumEigensolver` class. + This class will be deprecated in a future release and subsequently + removed after that. + """ + @deprecate_function( + "The NumPyMinimumEigensolver class has been superseded by the " + "qiskit.algorithms.minimum_eigensolvers.NumPyMinimumEigensolver class. " + "This class will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) def __init__( self, filter_criterion: Callable[ @@ -44,6 +59,9 @@ def __init__( whether to consider this value or not. If there is no feasible element, the result can even be empty. """ + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + super().__init__() self._ces = NumPyEigensolver(filter_criterion=filter_criterion) self._ret = MinimumEigensolverResult() diff --git a/qiskit/algorithms/minimum_eigen_solvers/qaoa.py b/qiskit/algorithms/minimum_eigen_solvers/qaoa.py index d537f5a892e7..e650ee349cb1 100644 --- a/qiskit/algorithms/minimum_eigen_solvers/qaoa.py +++ b/qiskit/algorithms/minimum_eigen_solvers/qaoa.py @@ -13,6 +13,7 @@ """ The Quantum Approximate Optimization Algorithm. """ from typing import List, Callable, Optional, Union +import warnings import numpy as np from qiskit.algorithms.optimizers import Minimizer, Optimizer @@ -22,13 +23,19 @@ from qiskit.providers import Backend from qiskit.utils.quantum_instance import QuantumInstance from qiskit.utils.validation import validate_min +from qiskit.utils.deprecation import deprecate_function from qiskit.circuit.library.n_local.qaoa_ansatz import QAOAAnsatz from qiskit.algorithms.minimum_eigen_solvers.vqe import VQE class QAOA(VQE): """ - The Quantum Approximate Optimization Algorithm. + Pending deprecation: Quantum Approximate Optimization Algorithm. + + The QAOA class has been superseded by the + :class:`qiskit.algorithms.minimum_eigensolvers.QAOA` class. + This class will be deprecated in a future release and subsequently + removed after that. `QAOA `__ is a well-known algorithm for finding approximate solutions to combinatorial-optimization problems. @@ -52,6 +59,13 @@ class QAOA(VQE): the evolution to a feasible subspace of the full Hilbert space. """ + @deprecate_function( + "The QAOA class has been superseded by the " + "qiskit.algorithms.minimum_eigensolvers.QAOA class. " + "This class will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) def __init__( self, optimizer: Optional[Union[Optimizer, Minimizer]] = None, @@ -114,17 +128,19 @@ def __init__( self._initial_state = initial_state self._cost_operator = None - super().__init__( - ansatz=None, - optimizer=optimizer, - initial_point=initial_point, - gradient=gradient, - expectation=expectation, - include_custom=include_custom, - max_evals_grouped=max_evals_grouped, - callback=callback, - quantum_instance=quantum_instance, - ) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + super().__init__( + ansatz=None, + optimizer=optimizer, + initial_point=initial_point, + gradient=gradient, + expectation=expectation, + include_custom=include_custom, + max_evals_grouped=max_evals_grouped, + callback=callback, + quantum_instance=quantum_instance, + ) def _check_operator_ansatz(self, operator: OperatorBase) -> OperatorBase: # Recreates a circuit based on operator parameter. diff --git a/qiskit/algorithms/minimum_eigen_solvers/vqe.py b/qiskit/algorithms/minimum_eigen_solvers/vqe.py index 87ab8707b0f1..286298620420 100755 --- a/qiskit/algorithms/minimum_eigen_solvers/vqe.py +++ b/qiskit/algorithms/minimum_eigen_solvers/vqe.py @@ -18,6 +18,7 @@ from __future__ import annotations import logging +import warnings from time import time from typing import Callable, Dict, List, Optional, Tuple, Union @@ -40,6 +41,7 @@ from qiskit.utils import QuantumInstance, algorithm_globals from qiskit.utils.backend_utils import is_aer_provider from qiskit.utils.validation import validate_min +from qiskit.utils.deprecation import deprecate_function from ..aux_ops_evaluator import eval_observables from ..exceptions import AlgorithmError @@ -52,7 +54,12 @@ class VQE(VariationalAlgorithm, MinimumEigensolver): - r"""The Variational Quantum Eigensolver algorithm. + r"""Pending deprecation: Variational Quantum Eigensolver algorithm. + + The VQE class has been superseded by the + :class:`qiskit.algorithms.minimum_eigensolvers.VQE` class. + This class will be deprecated in a future release and subsequently + removed after that. `VQE `__ is a quantum algorithm that uses a variational technique to find @@ -120,6 +127,13 @@ def my_minimizer(fun, x0, jac=None, bounds=None) -> OptimizerResult: """ + @deprecate_function( + "The VQE class has been superseded by the " + "qiskit.algorithms.minimum_eigensolvers.VQE class. " + "This class will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) def __init__( self, ansatz: Optional[QuantumCircuit] = None, @@ -171,7 +185,9 @@ def __init__( """ validate_min("max_evals_grouped", max_evals_grouped, 1) - super().__init__() + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + super().__init__() self._max_evals_grouped = max_evals_grouped self._circuit_sampler = None # type: Optional[CircuitSampler] @@ -641,10 +657,26 @@ def _get_eigenstate(self, optimal_parameters) -> Union[List[float], Dict[str, in class VQEResult(VariationalResult, MinimumEigensolverResult): - """VQE Result.""" + """Pending deprecation: VQE Result. + + The VQEResult class has been superseded by the + :class:`qiskit.algorithms.minimum_eigensolvers.VQEResult` class. + This class will be deprecated in a future release and subsequently + removed after that. + + """ + @deprecate_function( + "The VQEResult class has been superseded by the " + "qiskit.algorithms.minimum_eigensolvers.VQEResult class. " + "This class will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) def __init__(self) -> None: - super().__init__() + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + super().__init__() self._cost_function_evals = None @property diff --git a/qiskit/algorithms/minimum_eigensolvers/__init__.py b/qiskit/algorithms/minimum_eigensolvers/__init__.py new file mode 100644 index 000000000000..9da052fab6ff --- /dev/null +++ b/qiskit/algorithms/minimum_eigensolvers/__init__.py @@ -0,0 +1,48 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +""" +============================================================================ +Minimum Eigensolvers Package (:mod:`qiskit.algorithms.minimum_eigensolvers`) +============================================================================ + +.. currentmodule:: qiskit.algorithms.minimum_eigensolvers + +Minimum Eigensolvers +==================== +.. autosummary:: + :toctree: ../stubs/ + + MinimumEigensolver + NumPyMinimumEigensolver + VQE + +.. autosummary:: + :toctree: ../stubs/ + + MinimumEigensolverResult + NumPyMinimumEigensolverResult + VQEResult +""" + +from .minimum_eigensolver import MinimumEigensolver, MinimumEigensolverResult +from .numpy_minimum_eigensolver import NumPyMinimumEigensolver, NumPyMinimumEigensolverResult +from .vqe import VQE, VQEResult + +__all__ = [ + "MinimumEigensolver", + "MinimumEigensolverResult", + "NumPyMinimumEigensolver", + "NumPyMinimumEigensolverResult", + "VQE", + "VQEResult", +] diff --git a/qiskit/algorithms/minimum_eigensolvers/minimum_eigensolver.py b/qiskit/algorithms/minimum_eigensolvers/minimum_eigensolver.py new file mode 100644 index 000000000000..30d3b49ce463 --- /dev/null +++ b/qiskit/algorithms/minimum_eigensolvers/minimum_eigensolver.py @@ -0,0 +1,99 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""The minimum eigensolver interface and result.""" + +from __future__ import annotations + +from abc import ABC, abstractmethod +from typing import Any + +from qiskit.opflow import PauliSumOp +from qiskit.quantum_info.operators.base_operator import BaseOperator + +from ..algorithm_result import AlgorithmResult +from ..list_or_dict import ListOrDict + + +class MinimumEigensolver(ABC): + """The minimum eigensolver interface. + + Algorithms that can compute a minimum eigenvalue for an operator may implement this interface to + allow different algorithms to be used interchangeably. + """ + + @abstractmethod + def compute_minimum_eigenvalue( + self, + operator: BaseOperator | PauliSumOp, + aux_operators: ListOrDict[BaseOperator | PauliSumOp] | None = None, + ) -> "MinimumEigensolverResult": + """ + Computes the minimum eigenvalue. The ``operator`` and ``aux_operators`` can be supplied here + and if not ``None`` will override any already set into algorithm so it can be reused with + different operators. While an ``operator`` is required by algorithms, ``aux_operators`` are + optional. + + Args: + operator: Qubit operator of the observable. + aux_operators: Optional list of auxiliary operators to be evaluated with the + parameters of the minimum eigenvalue main result and their expectation values + returned. For instance in chemistry these can be dipole operators and total particle + count operators, so we can get values for these at the ground state. + + Returns: + A minimum eigensolver result. + """ + return MinimumEigensolverResult() + + @classmethod + def supports_aux_operators(cls) -> bool: + """Whether computing the expectation value of auxiliary operators is supported. + + If the minimum eigensolver computes an eigenvalue of the main ``operator`` then it can + compute the expectation value of the ``aux_operators`` for that state. Otherwise they will + be ignored. + + Returns: + True if aux_operator expectations can be evaluated, False otherwise + """ + return False + + +class MinimumEigensolverResult(AlgorithmResult): + """Minimum eigensolver result.""" + + def __init__(self) -> None: + super().__init__() + self._eigenvalue = None + self._aux_operators_evaluated = None + + @property + def eigenvalue(self) -> complex | None: + """The computed minimum eigenvalue.""" + return self._eigenvalue + + @eigenvalue.setter + def eigenvalue(self, value: complex) -> None: + self._eigenvalue = value + + @property + def aux_operators_evaluated(self) -> ListOrDict[tuple[complex, dict[str, Any]]] | None: + """The aux operator expectation values. + + These values are in fact tuples formatted as (mean, (variance, shots)). + """ + return self._aux_operators_evaluated + + @aux_operators_evaluated.setter + def aux_operators_evaluated(self, value: ListOrDict[tuple[complex, dict[str, Any]]]) -> None: + self._aux_operators_evaluated = value diff --git a/qiskit/algorithms/minimum_eigensolvers/numpy_minimum_eigensolver.py b/qiskit/algorithms/minimum_eigensolvers/numpy_minimum_eigensolver.py new file mode 100644 index 000000000000..ec11f27eb2b0 --- /dev/null +++ b/qiskit/algorithms/minimum_eigensolvers/numpy_minimum_eigensolver.py @@ -0,0 +1,106 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""The NumPy minimum eigensolver algorithm and result.""" + +from __future__ import annotations + +from typing import Callable, List, Union, Optional +import logging +import numpy as np + +from qiskit.opflow import PauliSumOp +from qiskit.quantum_info.operators.base_operator import BaseOperator + +# TODO this path will need updating when VQD is merged +from ..eigen_solvers.numpy_eigen_solver import NumPyEigensolver +from .minimum_eigensolver import MinimumEigensolver, MinimumEigensolverResult +from ..list_or_dict import ListOrDict + +logger = logging.getLogger(__name__) + +# future type annotations not supported in type aliases in 3.8 +FilterType = Callable[[Union[List, np.ndarray], float, Optional[ListOrDict[float]]], bool] + + +class NumPyMinimumEigensolver(MinimumEigensolver): + """ + The NumPy minimum eigensolver algorithm. + """ + + def __init__( + self, + filter_criterion: FilterType | None = None, + ) -> None: + """ + Args: + filter_criterion: callable that allows to filter eigenvalues/eigenstates. The minimum + eigensolver is only searching over feasible states and returns an eigenstate that + has the smallest eigenvalue among feasible states. The callable has the signature + ``filter(eigenstate, eigenvalue, aux_values)`` and must return a boolean to indicate + whether to consider this value or not. If there is no feasible element, the result + can even be empty. + """ + self._eigensolver = NumPyEigensolver(filter_criterion=filter_criterion) + + @property + def filter_criterion( + self, + ) -> FilterType | None: + """Returns the criterion for filtering eigenstates/eigenvalues.""" + return self._eigensolver.filter_criterion + + @filter_criterion.setter + def filter_criterion( + self, + filter_criterion: FilterType, + ) -> None: + self._eigensolver.filter_criterion = filter_criterion + + @classmethod + def supports_aux_operators(cls) -> bool: + return NumPyEigensolver.supports_aux_operators() + + def compute_minimum_eigenvalue( + self, + operator: BaseOperator | PauliSumOp, + aux_operators: ListOrDict[BaseOperator | PauliSumOp] | None = None, + ) -> NumPyMinimumEigensolverResult: + super().compute_minimum_eigenvalue(operator, aux_operators) + eigensolver_result = self._eigensolver.compute_eigenvalues(operator, aux_operators) + result = NumPyMinimumEigensolverResult() + if eigensolver_result.eigenvalues is not None and len(eigensolver_result.eigenvalues) > 0: + result.eigenvalue = eigensolver_result.eigenvalues[0] + result.eigenstate = eigensolver_result.eigenstates[0] + if eigensolver_result.aux_operator_eigenvalues: + result.aux_operators_evaluated = eigensolver_result.aux_operator_eigenvalues[0] + + logger.debug("NumPy minimum eigensolver result: %s", result) + + return result + + +class NumPyMinimumEigensolverResult(MinimumEigensolverResult): + """NumPy minimum eigensolver result.""" + + def __init__(self) -> None: + super().__init__() + self._eigenstate = None + + @property + def eigenstate(self) -> np.ndarray | None: + """Returns the eigenstate corresponding to the computed minimum eigenvalue.""" + return self._eigenstate + + @eigenstate.setter + def eigenstate(self, value: np.ndarray) -> None: + self._eigenstate = value diff --git a/qiskit/algorithms/minimum_eigensolvers/vqe.py b/qiskit/algorithms/minimum_eigensolvers/vqe.py new file mode 100644 index 000000000000..7d4c76d98160 --- /dev/null +++ b/qiskit/algorithms/minimum_eigensolvers/vqe.py @@ -0,0 +1,341 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""The variational quantum eigensolver algorithm.""" + +from __future__ import annotations + +import logging +from time import time +from collections.abc import Callable, Sequence +from typing import Any + +import numpy as np + +from qiskit.algorithms.gradients import BaseEstimatorGradient +from qiskit.circuit import QuantumCircuit +from qiskit.opflow import PauliSumOp +from qiskit.primitives import BaseEstimator +from qiskit.quantum_info.operators.base_operator import BaseOperator + +from ..exceptions import AlgorithmError +from ..list_or_dict import ListOrDict +from ..optimizers import Optimizer, Minimizer, OptimizerResult +from ..variational_algorithm import VariationalAlgorithm, VariationalResult +from .minimum_eigensolver import MinimumEigensolver, MinimumEigensolverResult +from ..observables_evaluator import estimate_observables +from ..utils import validate_initial_point, validate_bounds + +logger = logging.getLogger(__name__) + + +class VQE(VariationalAlgorithm, MinimumEigensolver): + r"""The variational quantum eigensolver (VQE) algorithm. + + VQE is a hybrid quantum-classical algorithm that uses a variational technique to find the + minimum eigenvalue of a given Hamiltonian operator :math:`H`. + + The ``VQE`` algorithm is executed using an :attr:`estimator` primitive, which computes + expectation values of operators (observables). + + An instance of ``VQE`` also requires an :attr:`ansatz`, a parameterized + :class:`.QuantumCircuit`, to prepare the trial state :math:`|\psi(\vec\theta)\rangle`. It also + needs a classical :attr:`optimizer` which varies the circuit parameters :math:`\vec\theta` such + that the expectation value of the operator on the corresponding state approaches a minimum, + + .. math:: + + \min_{\vec\theta} \langle\psi(\vec\theta)|H|\psi(\vec\theta)\rangle. + + The :attr:`estimator` is used to compute this expectation value for every optimization step. + + The optimizer can either be one of Qiskit's optimizers, such as + :class:`~qiskit.algorithms.optimizers.SPSA` or a callable with the following signature: + + .. code-block:: python + + from qiskit.algorithms.optimizers import OptimizerResult + + def my_minimizer(fun, x0, jac=None, bounds=None) -> OptimizerResult: + # Note that the callable *must* have these argument names! + # Args: + # fun (callable): the function to minimize + # x0 (np.ndarray): the initial point for the optimization + # jac (callable, optional): the gradient of the objective function + # bounds (list, optional): a list of tuples specifying the parameter bounds + + result = OptimizerResult() + result.x = # optimal parameters + result.fun = # optimal function value + return result + + The above signature also allows one to use any SciPy minimizer, for instance as + + .. code-block:: python + + from functools import partial + from scipy.optimize import minimize + + optimizer = partial(minimize, method="L-BFGS-B") + + The following attributes can be set via the initializer but can also be read and updated once + the VQE object has been constructed. + + Attributes: + estimator (BaseEstimator): The estimator primitive to compute the expectation value of the + Hamiltonian operator. + ansatz (QuantumCircuit): A parameterized quantum circuit to prepare the trial state. + optimizer (Optimizer | Minimizer): A classical optimizer to find the minimum energy. This + can either be a Qiskit :class:`.Optimizer` or a callable implementing the + :class:`.Minimizer` protocol. + gradient (BaseEstimatorGradient | None): An optional estimator gradient to be used with the + optimizer. + callback (Callable[[int, np.ndarray, float, dict[str, Any]], None] | None): A callback that + can access the intermediate data at each optimization step. These data are: the + evaluation count, the optimizer parameters for the ansatz, the evaluated mean, and the + metadata dictionary. + + References: + [1] Peruzzo et al, "A variational eigenvalue solver on a quantum processor" + `arXiv:1304.3061 `__ + """ + + def __init__( + self, + estimator: BaseEstimator, + ansatz: QuantumCircuit, + optimizer: Optimizer | Minimizer, + *, + gradient: BaseEstimatorGradient | None = None, + initial_point: Sequence[float] | None = None, + callback: Callable[[int, np.ndarray, float, dict[str, Any]], None] | None = None, + ) -> None: + r""" + Args: + estimator: The estimator primitive to compute the expectation value of the + Hamiltonian operator. + ansatz: A parameterized quantum circuit to prepare the trial state. + optimizer: A classical optimizer to find the minimum energy. This + can either be a Qiskit :class:`.Optimizer` or a callable implementing the + :class:`.Minimizer` protocol. + gradient: An optional estimator gradient to be used with the optimizer. + initial_point: An optional initial point (i.e. initial parameter values) for the + optimizer. The length of the initial point must match the number of :attr:`ansatz` + parameters. If ``None``, a random point will be generated within certain parameter + bounds. ``VQE`` will look to the ansatz for these bounds. If the ansatz does not + specify bounds, bounds of :math:`-2\pi`, :math:`2\pi` will be used. + callback: A callback that can access the intermediate data at each optimization step. + These data are: the evaluation count, the optimizer parameters for the ansatz, the + estimated value, and the metadata dictionary. + """ + super().__init__() + + self.estimator = estimator + self.ansatz = ansatz + self.optimizer = optimizer + self.gradient = gradient + # this has to go via getters and setters due to the VariationalAlgorithm interface + self.initial_point = initial_point + self.callback = callback + + @property + def initial_point(self) -> Sequence[float] | None: + return self._initial_point + + @initial_point.setter + def initial_point(self, value: Sequence[float] | None) -> None: + self._initial_point = value + + def compute_minimum_eigenvalue( + self, + operator: BaseOperator | PauliSumOp, + aux_operators: ListOrDict[BaseOperator | PauliSumOp] | None = None, + ) -> VQEResult: + self._check_operator_ansatz(operator) + + initial_point = validate_initial_point(self.initial_point, self.ansatz) + + bounds = validate_bounds(self.ansatz) + + start_time = time() + + evaluate_energy = self._get_evaluate_energy(self.ansatz, operator) + + if self.gradient is not None: + evaluate_gradient = self._get_evaluate_gradient(self.ansatz, operator) + else: + evaluate_gradient = None + + # perform optimization + if callable(self.optimizer): + optimizer_result = self.optimizer( + fun=evaluate_energy, x0=initial_point, jac=evaluate_gradient, bounds=bounds + ) + else: + optimizer_result = self.optimizer.minimize( + fun=evaluate_energy, x0=initial_point, jac=evaluate_gradient, bounds=bounds + ) + + optimizer_time = time() - start_time + + logger.info( + "Optimization complete in %s seconds.\nFound optimal point %s", + optimizer_time, + optimizer_result.x, + ) + + if aux_operators is not None: + aux_operators_evaluated = estimate_observables( + self.estimator, self.ansatz, aux_operators, optimizer_result.x + ) + else: + aux_operators_evaluated = None + + return self._build_vqe_result(optimizer_result, aux_operators_evaluated, optimizer_time) + + @classmethod + def supports_aux_operators(cls) -> bool: + return True + + def _get_evaluate_energy( + self, + ansatz: QuantumCircuit, + operator: BaseOperator | PauliSumOp, + ) -> Callable[[np.ndarray], np.ndarray | float]: + """Returns a function handle to evaluate the energy at given parameters for the ansatz. + This is the objective function to be passed to the optimizer that is used for evaluation. + + Args: + ansatz: The ansatz preparing the quantum state. + operator: The operator whose energy to evaluate. + + Returns: + A callable that computes and returns the energy of the hamiltonian of each parameter. + + Raises: + AlgorithmError: If the primitive job to evaluate the energy fails. + """ + num_parameters = ansatz.num_parameters + + # avoid creating an instance variable to remain stateless regarding results + eval_count = 0 + + def evaluate_energy(parameters: np.ndarray) -> np.ndarray | float: + nonlocal eval_count + + # handle broadcasting: ensure parameters is of shape [array, array, ...] + parameters = np.reshape(parameters, (-1, num_parameters)).tolist() + batch_size = len(parameters) + + try: + job = self.estimator.run(batch_size * [ansatz], batch_size * [operator], parameters) + estimator_result = job.result() + except Exception as exc: + raise AlgorithmError("The primitive job to evaluate the energy failed!") from exc + + values = estimator_result.values + + if self.callback is not None: + metadata = estimator_result.metadata + for params, value, meta in zip(parameters, values, metadata): + eval_count += 1 + self.callback(eval_count, params, value, meta) + + energy = values[0] if len(values) == 1 else values + + return energy + + return evaluate_energy + + def _get_evaluate_gradient( + self, + ansatz: QuantumCircuit, + operator: BaseOperator | PauliSumOp, + ) -> Callable[[np.ndarray], np.ndarray]: + """Get a function handle to evaluate the gradient at given parameters for the ansatz. + + Args: + ansatz: The ansatz preparing the quantum state. + operator: The operator whose energy to evaluate. + + Returns: + A function handle to evaluate the gradient at given parameters for the ansatz. + + Raises: + AlgorithmError: If the primitive job to evaluate the gradient fails. + """ + + def evaluate_gradient(parameters: np.ndarray) -> np.ndarray: + # broadcasting not required for the estimator gradients + try: + job = self.gradient.run([ansatz], [operator], [parameters]) + gradients = job.result().gradients + except Exception as exc: + raise AlgorithmError("The primitive job to evaluate the gradient failed!") from exc + + return gradients[0] + + return evaluate_gradient + + def _check_operator_ansatz(self, operator: BaseOperator | PauliSumOp): + """Check that the number of qubits of operator and ansatz match and that the ansatz is + parameterized. + """ + if operator.num_qubits != self.ansatz.num_qubits: + try: + logger.info( + "Trying to resize ansatz to match operator on %s qubits.", operator.num_qubits + ) + self.ansatz.num_qubits = operator.num_qubits + except AttributeError as error: + raise AlgorithmError( + "The number of qubits of the ansatz does not match the " + "operator, and the ansatz does not allow setting the " + "number of qubits using `num_qubits`." + ) from error + + if self.ansatz.num_parameters == 0: + raise AlgorithmError("The ansatz must be parameterized, but has no free parameters.") + + def _build_vqe_result( + self, + optimizer_result: OptimizerResult, + aux_operators_evaluated: ListOrDict[tuple[complex, tuple[complex, int]]], + optimizer_time: float, + ) -> VQEResult: + result = VQEResult() + result.eigenvalue = optimizer_result.fun + result.cost_function_evals = optimizer_result.nfev + result.optimal_point = optimizer_result.x + result.optimal_parameters = dict(zip(self.ansatz.parameters, optimizer_result.x)) + result.optimal_value = optimizer_result.fun + result.optimizer_time = optimizer_time + result.aux_operators_evaluated = aux_operators_evaluated + result.optimizer_result = optimizer_result + return result + + +class VQEResult(VariationalResult, MinimumEigensolverResult): + """Variational quantum eigensolver result.""" + + def __init__(self) -> None: + super().__init__() + self._cost_function_evals = None + + @property + def cost_function_evals(self) -> int | None: + """The number of cost optimizer evaluations.""" + return self._cost_function_evals + + @cost_function_evals.setter + def cost_function_evals(self, value: int) -> None: + self._cost_function_evals = value diff --git a/qiskit/algorithms/observables_evaluator.py b/qiskit/algorithms/observables_evaluator.py new file mode 100644 index 000000000000..f1ca00c4b5d2 --- /dev/null +++ b/qiskit/algorithms/observables_evaluator.py @@ -0,0 +1,122 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2021, 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""Evaluator of observables for algorithms.""" + +from __future__ import annotations +from collections.abc import Sequence +from typing import Any + +import numpy as np + +from qiskit import QuantumCircuit +from qiskit.opflow import PauliSumOp +from .exceptions import AlgorithmError +from .list_or_dict import ListOrDict +from ..primitives import BaseEstimator +from ..quantum_info.operators.base_operator import BaseOperator + + +def estimate_observables( + estimator: BaseEstimator, + quantum_state: QuantumCircuit, + observables: ListOrDict[BaseOperator | PauliSumOp], + parameter_values: Sequence[float] | None = None, + threshold: float = 1e-12, +) -> ListOrDict[tuple[complex, dict[str, Any]]]: + """ + Accepts a sequence of operators and calculates their expectation values - means + and metadata. They are calculated with respect to a quantum state provided. A user + can optionally provide a threshold value which filters mean values falling below the threshold. + + Args: + estimator: An estimator primitive used for calculations. + quantum_state: A (parameterized) quantum circuit preparing a quantum state that expectation + values are computed against. + observables: A list or a dictionary of operators whose expectation values are to be + calculated. + parameter_values: Optional list of parameters values to evaluate the quantum circuit on. + threshold: A threshold value that defines which mean values should be neglected (helpful for + ignoring numerical instabilities close to 0). + + Returns: + A list or a dictionary of tuples (mean, metadata). + + Raises: + AlgorithmError: If a primitive job is not successful. + """ + + if isinstance(observables, dict): + observables_list = list(observables.values()) + else: + observables_list = observables + + observables_list = _handle_zero_ops(observables_list) + quantum_state = [quantum_state] * len(observables) + if parameter_values is not None: + parameter_values = [parameter_values] * len(observables) + try: + estimator_job = estimator.run(quantum_state, observables_list, parameter_values) + expectation_values = estimator_job.result().values + except Exception as exc: + raise AlgorithmError("The primitive job failed!") from exc + + metadata = estimator_job.result().metadata + # Discard values below threshold + observables_means = expectation_values * (np.abs(expectation_values) > threshold) + # zip means and metadata into tuples + observables_results = list(zip(observables_means, metadata)) + + return _prepare_result(observables_results, observables) + + +def _handle_zero_ops( + observables_list: list[BaseOperator | PauliSumOp], +) -> list[BaseOperator | PauliSumOp]: + """Replaces all occurrence of operators equal to 0 in the list with an equivalent ``PauliSumOp`` + operator.""" + if observables_list: + zero_op = PauliSumOp.from_list([("I" * observables_list[0].num_qubits, 0)]) + for ind, observable in enumerate(observables_list): + if observable == 0: + observables_list[ind] = zero_op + return observables_list + + +def _prepare_result( + observables_results: list[tuple[complex, dict]], + observables: ListOrDict[BaseOperator | PauliSumOp], +) -> ListOrDict[tuple[complex, dict[str, Any]]]: + """ + Prepares a list of tuples of eigenvalues and metadata tuples from + ``observables_results`` and ``observables``. + + Args: + observables_results: A list of tuples (mean, metadata). + observables: A list or a dictionary of operators whose expectation values are to be + calculated. + + Returns: + A list or a dictionary of tuples (mean, metadata). + """ + + if isinstance(observables, list): + # by construction, all None values will be overwritten + observables_eigenvalues = [None] * len(observables) + key_value_iterator = enumerate(observables_results) + else: + observables_eigenvalues = {} + key_value_iterator = zip(observables.keys(), observables_results) + + for key, value in key_value_iterator: + observables_eigenvalues[key] = value + return observables_eigenvalues diff --git a/qiskit/algorithms/optimizers/qnspsa.py b/qiskit/algorithms/optimizers/qnspsa.py index f74f91e51f19..42296f9ddf7a 100644 --- a/qiskit/algorithms/optimizers/qnspsa.py +++ b/qiskit/algorithms/optimizers/qnspsa.py @@ -187,7 +187,9 @@ def _point_sample(self, loss, x, eps, delta1, delta2): self._nfev += 6 loss_values = _batch_evaluate(loss, loss_points, self._max_evals_grouped) - fidelity_values = _batch_evaluate(self.fidelity, fidelity_points, self._max_evals_grouped) + fidelity_values = _batch_evaluate( + self.fidelity, fidelity_points, self._max_evals_grouped, unpack_points=True + ) # compute the gradient approximation and additionally return the loss function evaluations gradient_estimate = (loss_values[0] - loss_values[1]) / (2 * eps) * delta1 @@ -268,11 +270,13 @@ def fidelity(values_x, values_y): sampler = CircuitSampler(backend) def fidelity(values_x, values_y=None): - if values_y is not None: # no batches + # no batches + if isinstance(values_x, np.ndarray) and isinstance(values_y, np.ndarray): value_dict = dict( zip(params_x[:] + params_y[:], values_x.tolist() + values_y.tolist()) ) - else: + # legacy batching -- remove once QNSPSA.get_fidelity is only supported with sampler + elif values_y is None: value_dict = {p: [] for p in params_x[:] + params_y[:]} for values_xy in values_x: for value_x, param_x in zip(values_xy[0, :], params_x): @@ -280,6 +284,14 @@ def fidelity(values_x, values_y=None): for value_y, param_y in zip(values_xy[1, :], params_y): value_dict[param_y].append(value_y) + else: + value_dict = {p: [] for p in params_x[:] + params_y[:]} + for values_i_x, values_i_y in zip(values_x, values_y): + for value_x, param_x in zip(values_i_x, params_x): + value_dict[param_x].append(value_x) + + for value_y, param_y in zip(values_i_y, params_y): + value_dict[param_y].append(value_y) return np.abs(sampler.convert(expression, params=value_dict).eval()) ** 2 diff --git a/qiskit/algorithms/optimizers/snobfit.py b/qiskit/algorithms/optimizers/snobfit.py index f1bd12faff36..f74d8ca85153 100644 --- a/qiskit/algorithms/optimizers/snobfit.py +++ b/qiskit/algorithms/optimizers/snobfit.py @@ -84,6 +84,9 @@ def minimize( import skquant.opt as skq from SQSnobFit import optset + if bounds is None or any(None in bound_tuple for bound_tuple in bounds): + raise ValueError("Optimizer SNOBFIT requires bounds for all parameters.") + snobfit_settings = { "maxmp": self._maxmp, "maxfail": self._maxfail, diff --git a/qiskit/algorithms/optimizers/spsa.py b/qiskit/algorithms/optimizers/spsa.py index 10d81dfdd41c..f12945762cbf 100644 --- a/qiskit/algorithms/optimizers/spsa.py +++ b/qiskit/algorithms/optimizers/spsa.py @@ -711,7 +711,7 @@ def constant(eta=0.01): yield eta -def _batch_evaluate(function, points, max_evals_grouped): +def _batch_evaluate(function, points, max_evals_grouped, unpack_points=False): # if the function cannot handle lists of points as input, cover this case immediately if max_evals_grouped == 1: # support functions with multiple arguments where the points are given in a tuple @@ -731,11 +731,32 @@ def _batch_evaluate(function, points, max_evals_grouped): results = [] for batch in batched_points: - results += function(batch).tolist() + if unpack_points: + batch = _repack_points(batch) + results += _as_list(function(*batch)) + else: + results += _as_list(function(batch)) return results +def _as_list(obj): + """Convert a list or numpy array into a list.""" + return obj.tolist() if isinstance(obj, np.ndarray) else obj + + +def _repack_points(points): + """Turn a list of tuples of points into a tuple of lists of points. + E.g. turns + [(a1, a2, a3), (b1, b2, b3)] + into + ([a1, b1], [a2, b2], [a3, b3]) + where all elements are np.ndarray. + """ + num_sets = len(points[0]) # length of (a1, a2, a3) + return ([x[i] for x in points] for i in range(num_sets)) + + def _make_spd(matrix, bias=0.01): identity = np.identity(matrix.shape[0]) psd = scipy.linalg.sqrtm(matrix.dot(matrix)) diff --git a/qiskit/algorithms/phase_estimators/hamiltonian_phase_estimation.py b/qiskit/algorithms/phase_estimators/hamiltonian_phase_estimation.py index d84d262249a6..0dcc4deb87ec 100644 --- a/qiskit/algorithms/phase_estimators/hamiltonian_phase_estimation.py +++ b/qiskit/algorithms/phase_estimators/hamiltonian_phase_estimation.py @@ -1,6 +1,6 @@ # This code is part of Qiskit. # -# (C) Copyright IBM 2020. +# (C) Copyright IBM 2020, 2022. # # This code is licensed under the Apache License, Version 2.0. You may # obtain a copy of this license in the LICENSE.txt file in the root directory @@ -12,23 +12,30 @@ """Phase estimation for the spectrum of a Hamiltonian""" -from typing import Optional, Union +from __future__ import annotations + +import warnings + from qiskit import QuantumCircuit from qiskit.utils import QuantumInstance from qiskit.opflow import ( - EvolutionBase, - PauliTrotterEvolution, - OperatorBase, SummedOp, PauliOp, MatrixOp, PauliSumOp, StateFn, + EvolutionBase, + PauliTrotterEvolution, + I, ) from qiskit.providers import Backend from .phase_estimation import PhaseEstimation from .hamiltonian_phase_estimation_result import HamiltonianPhaseEstimationResult from .phase_estimation_scale import PhaseEstimationScale +from ...circuit.library import PauliEvolutionGate +from ...primitives import BaseSampler +from ...quantum_info import SparsePauliOp, Statevector, Pauli +from ...synthesis import EvolutionSynthesis class HamiltonianPhaseEstimation: @@ -70,7 +77,7 @@ class HamiltonianPhaseEstimation: bound to obtain a scale factor, scaling the operator, and shifting and scaling the measured phases to recover the eigenvalues. - Note that, although we speak of "evolving" the state according the the Hamiltonian, in the + Note that, although we speak of "evolving" the state according the Hamiltonian, in the present algorithm, we are not actually considering time evolution. Rather, the role of time is played by the scaling factor, which is chosen to best extract the eigenvalues of the Hamiltonian. @@ -88,54 +95,79 @@ class HamiltonianPhaseEstimation: def __init__( self, num_evaluation_qubits: int, - quantum_instance: Optional[Union[QuantumInstance, Backend]] = None, + quantum_instance: QuantumInstance | Backend | None = None, + sampler: BaseSampler | None = None, ) -> None: - """ + r""" Args: num_evaluation_qubits: The number of qubits used in estimating the phase. The phase will be estimated as a binary string with this many bits. - quantum_instance: The quantum instance on which the circuit will be run. + quantum_instance: Pending deprecation\: The quantum instance on which + the circuit will be run. + sampler: The sampler primitive on which the circuit will be sampled. """ + if quantum_instance is not None: + warnings.warn( + "The quantum_instance argument has been superseded by the sampler argument. " + "This argument will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) self._phase_estimation = PhaseEstimation( - num_evaluation_qubits=num_evaluation_qubits, quantum_instance=quantum_instance + num_evaluation_qubits=num_evaluation_qubits, + quantum_instance=quantum_instance, + sampler=sampler, ) - def _get_scale(self, hamiltonian, bound=None) -> None: + def _get_scale(self, hamiltonian, bound=None) -> PhaseEstimationScale: if bound is None: return PhaseEstimationScale.from_pauli_sum(hamiltonian) return PhaseEstimationScale(bound) - def _get_unitary(self, hamiltonian, pe_scale, evolution) -> QuantumCircuit: + def _get_unitary( + self, hamiltonian, pe_scale, evolution: EvolutionSynthesis | EvolutionBase + ) -> QuantumCircuit: """Evolve the Hamiltonian to obtain a unitary. Apply the scaling to the Hamiltonian that has been computed from an eigenvalue bound and compute the unitary by applying the evolution object. """ - # scale so that phase does not wrap. - scaled_hamiltonian = -pe_scale.scale * hamiltonian - unitary = evolution.convert(scaled_hamiltonian.exp_i()) - if not isinstance(unitary, QuantumCircuit): - unitary_circuit = unitary.to_circuit() + + if self._phase_estimation._sampler is not None: + + evo = PauliEvolutionGate(hamiltonian, -pe_scale.scale, synthesis=evolution) + unitary = QuantumCircuit(evo.num_qubits) + unitary.append(evo, unitary.qubits) + + return unitary.decompose().decompose() else: - unitary_circuit = unitary + # scale so that phase does not wrap. + scaled_hamiltonian = -pe_scale.scale * hamiltonian + unitary = evolution.convert(scaled_hamiltonian.exp_i()) + if not isinstance(unitary, QuantumCircuit): + unitary = unitary.to_circuit() + + return unitary.decompose().decompose() # Decomposing twice allows some 1Q Hamiltonians to give correct results # when using MatrixEvolution(), that otherwise would give incorrect results. # It does not break any others that we tested. - return unitary_circuit.decompose().decompose() def estimate( self, - hamiltonian: OperatorBase, - state_preparation: Optional[StateFn] = None, - evolution: Optional[EvolutionBase] = None, - bound: Optional[float] = None, + hamiltonian: PauliOp | MatrixOp | SummedOp | Pauli | SparsePauliOp | PauliSumOp, + state_preparation: StateFn | QuantumCircuit | Statevector | None = None, + evolution: EvolutionSynthesis | EvolutionBase | None = None, + bound: float | None = None, ) -> HamiltonianPhaseEstimationResult: """Run the Hamiltonian phase estimation algorithm. Args: - hamiltonian: A Hermitian operator. + hamiltonian: A Hermitian operator. If the algorithm is used with a ``Sampler`` + primitive, the allowed types are ``Pauli``, ``SparsePauliOp``, and ``PauliSumOp``. + If the algorithm is used with a ``QuantumInstance``, ``PauliOp, ``MatrixOp``, + ``PauliSumOp``, and ``SummedOp`` types are allowed. state_preparation: The ``StateFn`` to be prepared, whose eigenphase will be measured. If this parameter is omitted, no preparation circuit will be run and input state will be the all-zero state in the computational basis. @@ -148,60 +180,84 @@ def estimate( the higher the resolution of computed phases. Returns: - HamiltonianPhaseEstimationResult instance containing the result of the estimation + ``HamiltonianPhaseEstimationResult`` instance containing the result of the estimation and diagnostic information. Raises: + TypeError: If ``evolution`` is not of type ``EvolutionSynthesis`` when a ``Sampler`` is + provided. + TypeError: If ``hamiltonian`` type is not ``Pauli`` or ``SparsePauliOp`` or + ``PauliSumOp`` when a ``Sampler`` is provided. ValueError: If ``bound`` is ``None`` and ``hamiltonian`` is not a Pauli sum, i.e. a ``PauliSumOp`` or a ``SummedOp`` whose terms are of type ``PauliOp``. - TypeError: If ``evolution`` is not of type ``EvolutionBase``. + TypeError: If ``evolution`` is not of type ``EvolutionBase`` when no ``Sampler`` is + provided. """ - if evolution is None: - evolution = PauliTrotterEvolution() - elif not isinstance(evolution, EvolutionBase): - raise TypeError(f"Expecting type EvolutionBase, got {type(evolution)}") - - if isinstance(hamiltonian, PauliSumOp): - hamiltonian = hamiltonian.to_pauli_op() - elif isinstance(hamiltonian, PauliOp): - hamiltonian = SummedOp([hamiltonian]) - - if isinstance(hamiltonian, SummedOp): - # remove identitiy terms - # The term propto the identity is removed from hamiltonian. - # This is done for three reasons: - # 1. Work around an unknown bug that otherwise causes the energies to be wrong in some - # cases. - # 2. Allow working with a simpler Hamiltonian, one with fewer terms. - # 3. Tighten the bound on the eigenvalues so that the spectrum is better resolved, i.e. - # occupies more of the range of values representable by the qubit register. - # The coefficient of this term will be added to the eigenvalues. - id_coefficient, hamiltonian_no_id = _remove_identity(hamiltonian) - - # get the rescaling object + if self._phase_estimation._sampler is not None: + if evolution is not None and not isinstance(evolution, EvolutionSynthesis): + raise TypeError(f"Expecting type EvolutionSynthesis, got {type(evolution)}") + if not isinstance(hamiltonian, (Pauli, SparsePauliOp, PauliSumOp)): + raise TypeError( + f"Expecting Hamiltonian type Pauli, SparsePauliOp or PauliSumOp, " + f"got {type(hamiltonian)}." + ) + + if isinstance(state_preparation, Statevector): + circuit = QuantumCircuit(state_preparation.num_qubits) + circuit.prepare_state(state_preparation.data) + state_preparation = circuit + if isinstance(hamiltonian, PauliSumOp): + id_coefficient, hamiltonian_no_id = _remove_identity_pauli_sum_op(hamiltonian) + else: + id_coefficient = 0.0 + hamiltonian_no_id = hamiltonian pe_scale = self._get_scale(hamiltonian_no_id, bound) - - # get the unitary unitary = self._get_unitary(hamiltonian_no_id, pe_scale, evolution) - - elif isinstance(hamiltonian, MatrixOp): - if bound is None: - raise ValueError("bound must be specified if Hermitian operator is MatrixOp") - - # Do not subtract an identity term from the matrix, so do not compensate. - id_coefficient = 0.0 - pe_scale = self._get_scale(hamiltonian, bound) - unitary = self._get_unitary(hamiltonian, pe_scale, evolution) else: - raise TypeError(f"Hermitian operator of type {type(hamiltonian)} not supported.") - - if state_preparation is not None: + if evolution is None: + evolution = PauliTrotterEvolution() + elif not isinstance(evolution, EvolutionBase): + raise TypeError(f"Expecting type EvolutionBase, got {type(evolution)}") + + if isinstance(hamiltonian, PauliSumOp): + hamiltonian = hamiltonian.to_pauli_op() + elif isinstance(hamiltonian, PauliOp): + hamiltonian = SummedOp([hamiltonian]) + + if isinstance(hamiltonian, SummedOp): + # remove identitiy terms + # The term prop to the identity is removed from hamiltonian. + # This is done for three reasons: + # 1. Work around an unknown bug that otherwise causes the energies to be wrong in some + # cases. + # 2. Allow working with a simpler Hamiltonian, one with fewer terms. + # 3. Tighten the bound on the eigenvalues so that the spectrum is better resolved, i.e. + # occupies more of the range of values representable by the qubit register. + # The coefficient of this term will be added to the eigenvalues. + id_coefficient, hamiltonian_no_id = _remove_identity(hamiltonian) + # get the rescaling object + pe_scale = self._get_scale(hamiltonian_no_id, bound) + + # get the unitary + unitary = self._get_unitary(hamiltonian_no_id, pe_scale, evolution) + + elif isinstance(hamiltonian, MatrixOp): + if bound is None: + raise ValueError("bound must be specified if Hermitian operator is MatrixOp") + + # Do not subtract an identity term from the matrix, so do not compensate. + id_coefficient = 0.0 + pe_scale = self._get_scale(hamiltonian, bound) + unitary = self._get_unitary(hamiltonian, pe_scale, evolution) + else: + raise TypeError(f"Hermitian operator of type {type(hamiltonian)} not supported.") + + if state_preparation is not None and isinstance(state_preparation, StateFn): state_preparation = state_preparation.to_circuit_op().to_circuit() # run phase estimation phase_estimation_result = self._phase_estimation.estimate( unitary=unitary, state_preparation=state_preparation ) - return HamiltonianPhaseEstimationResult( phase_estimation_result=phase_estimation_result, id_coefficient=id_coefficient, @@ -209,7 +265,7 @@ def estimate( ) -def _remove_identity(pauli_sum): +def _remove_identity(pauli_sum: SummedOp): """Remove any identity operators from `pauli_sum`. Return the sum of the coefficients of the identities and the new operator. """ @@ -223,3 +279,26 @@ def _remove_identity(pauli_sum): idcoeff += op.coeff return idcoeff, SummedOp(ops) + + +def _remove_identity_pauli_sum_op(pauli_sum: PauliSumOp | SparsePauliOp): + """Remove any identity operators from ``pauli_sum``. Return + the sum of the coefficients of the identities and the new operator. + """ + + def _get_identity(size): + identity = I + for _ in range(size - 1): + identity = identity ^ I + return identity + + idcoeff = 0.0 + if isinstance(pauli_sum, PauliSumOp): + for operator in pauli_sum: + if operator.primitive.paulis == ["I" * pauli_sum.num_qubits]: + idcoeff += operator.primitive.coeffs[0] + pauli_sum = pauli_sum - operator.primitive.coeffs[0] * _get_identity( + pauli_sum.num_qubits + ) + + return idcoeff, pauli_sum.reduce() diff --git a/qiskit/algorithms/phase_estimators/hamiltonian_phase_estimation_result.py b/qiskit/algorithms/phase_estimators/hamiltonian_phase_estimation_result.py index 2ece1b12a8fc..b76924fcd2e5 100644 --- a/qiskit/algorithms/phase_estimators/hamiltonian_phase_estimation_result.py +++ b/qiskit/algorithms/phase_estimators/hamiltonian_phase_estimation_result.py @@ -12,8 +12,8 @@ """Result from running HamiltonianPhaseEstimation""" - -from typing import Dict, Union, cast +from __future__ import annotations +from typing import cast, Mapping from qiskit.algorithms.algorithm_result import AlgorithmResult from .phase_estimation_result import PhaseEstimationResult from .phase_estimation_scale import PhaseEstimationScale @@ -53,7 +53,7 @@ def __init__( def filter_phases( self, cutoff: float = 0.0, scaled: bool = True, as_float: bool = True - ) -> Dict[Union[str, float], float]: + ) -> Mapping[str | float, float]: """Filter phases as does `PhaseEstimatorResult.filter_phases`, with the addition that `phi` is shifted and translated to return eigenvalues of the Hamiltonian. @@ -78,10 +78,10 @@ def filter_phases( phases = self._phase_estimation_result.filter_phases(cutoff, as_float=as_float) if scaled: return cast( - Dict, self._phase_estimation_scale.scale_phases(phases, self._id_coefficient) + dict, self._phase_estimation_scale.scale_phases(phases, self._id_coefficient) ) else: - return cast(Dict, phases) + return cast(dict, phases) @property def phase(self) -> float: diff --git a/qiskit/algorithms/phase_estimators/ipe.py b/qiskit/algorithms/phase_estimators/ipe.py index 67236617a9c3..276fb096c783 100644 --- a/qiskit/algorithms/phase_estimators/ipe.py +++ b/qiskit/algorithms/phase_estimators/ipe.py @@ -1,6 +1,6 @@ # This code is part of Qiskit. # -# (C) Copyright IBM 2021. +# (C) Copyright IBM 2021, 2022. # # This code is licensed under the Apache License, Version 2.0. You may # obtain a copy of this license in the LICENSE.txt file in the root directory @@ -13,16 +13,21 @@ """The Iterative Quantum Phase Estimation Algorithm.""" +from __future__ import annotations + +import warnings -from typing import Optional, Union import numpy + import qiskit from qiskit.circuit import QuantumCircuit, QuantumRegister from qiskit.circuit.classicalregister import ClassicalRegister from qiskit.providers import Backend from qiskit.utils import QuantumInstance +from qiskit.algorithms.exceptions import AlgorithmError from .phase_estimator import PhaseEstimator from .phase_estimator import PhaseEstimatorResult +from ...primitives import BaseSampler class IterativePhaseEstimation(PhaseEstimator): @@ -38,29 +43,44 @@ class IterativePhaseEstimation(PhaseEstimator): def __init__( self, num_iterations: int, - quantum_instance: Optional[Union[QuantumInstance, Backend]] = None, + quantum_instance: QuantumInstance | Backend | None = None, + sampler: BaseSampler | None = None, ) -> None: - - """Args: - num_iterations: The number of iterations (rounds) of the phase estimation to run. - quantum_instance: The quantum instance on which the circuit will be run. + r"""Args: + num_iterations: The number of iterations (rounds) of the phase estimation to run. + quantum_instance: Pending deprecation\: The quantum instance on which the + circuit will be run. + sampler: The sampler primitive on which the circuit will be sampled. Raises: - ValueError: if num_iterations is not greater than zero. + ValueError: if num_iterations is not greater than zero. + AlgorithmError: If neither sampler nor quantum instance is provided. """ + if sampler is None and quantum_instance is None: + raise AlgorithmError( + "Neither a sampler nor a quantum instance was provided. Please provide one of them." + ) + if quantum_instance is not None: + warnings.warn( + "The quantum_instance argument has been superseded by the sampler argument. " + "This argument will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) if isinstance(quantum_instance, Backend): quantum_instance = QuantumInstance(quantum_instance) self._quantum_instance = quantum_instance if num_iterations <= 0: raise ValueError("`num_iterations` must be greater than zero.") self._num_iterations = num_iterations + self._sampler = sampler def construct_circuit( self, unitary: QuantumCircuit, state_preparation: QuantumCircuit, k: int, - omega: float = 0, + omega: float = 0.0, measurement: bool = False, ) -> QuantumCircuit: """Construct the kth iteration Quantum Phase Estimation circuit. @@ -69,15 +89,15 @@ def construct_circuit( Args: unitary: The circuit representing the unitary operator whose eigenvalue (via phase) - will be measured. + will be measured. state_preparation: The circuit that prepares the state whose eigenphase will be - measured. If this parameter is omitted, no preparation circuit - will be run and input state will be the all-zero state in the - computational basis. + measured. If this parameter is omitted, no preparation circuit + will be run and input state will be the all-zero state in the + computational basis. k: the iteration idx. omega: the feedback angle. measurement: Boolean flag to indicate if measurement should - be included in the circuit. + be included in the circuit. Returns: QuantumCircuit: the quantum circuit per iteration @@ -117,7 +137,20 @@ def _estimate_phase_iteratively(self, unitary, state_preparation): # k runs from the number of iterations back to 1 for k in range(self._num_iterations, 0, -1): omega_coef /= 2 - if self._quantum_instance.is_statevector: + + if self._sampler is not None: + + qc = self.construct_circuit( + unitary, state_preparation, k, -2 * numpy.pi * omega_coef, True + ) + try: + sampler_job = self._sampler.run([qc]) + result = sampler_job.result().quasi_dists[0] + except Exception as exc: + raise AlgorithmError("The primitive job failed!") from exc + x = 1 if result.get(1, 0) > result.get(0, 0) else 0 + + elif self._quantum_instance.is_statevector: qc = self.construct_circuit( unitary, state_preparation, k, -2 * numpy.pi * omega_coef, measurement=False ) @@ -140,7 +173,7 @@ def _estimate_phase_iteratively(self, unitary, state_preparation): omega_coef = omega_coef + x / 2 return omega_coef - # pylint: disable=arguments-differ + # pylint: disable=signature-differs def estimate( self, unitary: QuantumCircuit, state_preparation: QuantumCircuit ) -> "IterativePhaseEstimationResult": @@ -157,8 +190,10 @@ def estimate( Returns: Estimated phase in an IterativePhaseEstimationResult object. - """ + Raises: + AlgorithmError: If neither sampler nor quantum instance is provided. + """ phase = self._estimate_phase_iteratively(unitary, state_preparation) return IterativePhaseEstimationResult(self._num_iterations, phase) diff --git a/qiskit/algorithms/phase_estimators/phase_estimation.py b/qiskit/algorithms/phase_estimators/phase_estimation.py index a833152f6c14..bf18efcdcf95 100644 --- a/qiskit/algorithms/phase_estimators/phase_estimation.py +++ b/qiskit/algorithms/phase_estimators/phase_estimation.py @@ -1,6 +1,6 @@ # This code is part of Qiskit. # -# (C) Copyright IBM 2020. +# (C) Copyright IBM 2020, 2022. # # This code is licensed under the Apache License, Version 2.0. You may # obtain a copy of this license in the LICENSE.txt file in the root directory @@ -13,10 +13,11 @@ """The Quantum Phase Estimation Algorithm.""" - +from __future__ import annotations import warnings -from typing import Optional, Union + import numpy + from qiskit.circuit import QuantumCircuit import qiskit from qiskit import circuit @@ -24,8 +25,10 @@ from qiskit.providers import Backend from qiskit.utils import QuantumInstance from qiskit.result import Result +from qiskit.algorithms.exceptions import AlgorithmError from .phase_estimation_result import PhaseEstimationResult, _sort_phases from .phase_estimator import PhaseEstimator +from ...primitives import BaseSampler class PhaseEstimation(PhaseEstimator): @@ -59,7 +62,7 @@ class PhaseEstimation(PhaseEstimator): For phase estimation, there are two methods: first. `estimate`, which takes a state preparation circuit to prepare an input state, and - a unitary that will act on the the input state. In this case, an instance of + a unitary that will act on the input state. In this case, an instance of :class:`qiskit.circuit.PhaseEstimation`, a QPE circuit, containing the state preparation and input unitary will be constructed. second. `estimate_from_pe_circuit`, which takes a quantum-phase-estimation circuit in which @@ -81,15 +84,31 @@ class PhaseEstimation(PhaseEstimator): def __init__( self, num_evaluation_qubits: int, - quantum_instance: Optional[Union[QuantumInstance, Backend]] = None, + quantum_instance: QuantumInstance | Backend | None = None, + sampler: BaseSampler | None = None, ) -> None: - """ + r""" Args: num_evaluation_qubits: The number of qubits used in estimating the phase. The phase will be estimated as a binary string with this many bits. - quantum_instance: The quantum instance on which the circuit will be run. - """ + quantum_instance: Pending deprecation\: The quantum instance on which the + circuit will be run. + sampler: The sampler primitive on which the circuit will be sampled. + Raises: + AlgorithmError: If neither sampler nor quantum instance is provided. + """ + if sampler is None and quantum_instance is None: + raise AlgorithmError( + "Neither a sampler nor a quantum instance was provided. Please provide one of them." + ) + if quantum_instance is not None: + warnings.warn( + "The quantum_instance argument has been superseded by the sampler argument. " + "This argument will be deprecated in a future release and subsequently " + "removed after that.", + category=PendingDeprecationWarning, + ) self._measurements_added = False if num_evaluation_qubits is not None: self._num_evaluation_qubits = num_evaluation_qubits @@ -97,9 +116,10 @@ def __init__( if isinstance(quantum_instance, Backend): quantum_instance = QuantumInstance(quantum_instance) self._quantum_instance = quantum_instance + self._sampler = sampler def construct_circuit( - self, unitary: QuantumCircuit, state_preparation: Optional[QuantumCircuit] = None + self, unitary: QuantumCircuit, state_preparation: QuantumCircuit | None = None ) -> QuantumCircuit: """Return the circuit to be executed to estimate phases. @@ -122,7 +142,7 @@ def construct_circuit( return pe_circuit def _add_measurement_if_required(self, pe_circuit): - if not self._quantum_instance.is_statevector: + if self._sampler is not None or not self._quantum_instance.is_statevector: # Measure only the evaluation qubits. regname = "meas" creg = ClassicalRegister(self._num_evaluation_qubits, regname) @@ -136,7 +156,7 @@ def _add_measurement_if_required(self, pe_circuit): def _compute_phases( self, num_unitary_qubits: int, circuit_result: Result - ) -> Union[numpy.ndarray, qiskit.result.Counts]: + ) -> numpy.ndarray | qiskit.result.Counts: """Compute frequencies/counts of phases from the result of running the QPE circuit. How the frequencies are computed depends on whether the backend computes amplitude or @@ -188,7 +208,7 @@ def _compute_phases( def estimate_from_pe_circuit( self, pe_circuit: QuantumCircuit, num_unitary_qubits: int ) -> PhaseEstimationResult: - """Run the the phase estimation algorithm on a phase estimation circuit + """Run the phase estimation algorithm on a phase estimation circuit Args: pe_circuit: The phase estimation circuit. @@ -196,22 +216,38 @@ def estimate_from_pe_circuit( Returns: An instance of qiskit.algorithms.phase_estimator_result.PhaseEstimationResult. + + Raises: + AlgorithmError: Primitive job failed. """ + self._add_measurement_if_required(pe_circuit) - circuit_result = self._quantum_instance.execute(pe_circuit) - phases = self._compute_phases(num_unitary_qubits, circuit_result) + + if self._sampler is not None: + try: + circuit_job = self._sampler.run([pe_circuit]) + circuit_result = circuit_job.result() + except Exception as exc: + raise AlgorithmError("The primitive job failed!") from exc + phases = circuit_result.quasi_dists[0] + phases_bitstrings = {} + for key, phase in phases.items(): + bitstring_key = self._get_reversed_bitstring(self._num_evaluation_qubits, key) + phases_bitstrings[bitstring_key] = phase + phases = phases_bitstrings + + else: + circuit_result = self._quantum_instance.execute(pe_circuit) + phases = self._compute_phases(num_unitary_qubits, circuit_result) return PhaseEstimationResult( self._num_evaluation_qubits, circuit_result=circuit_result, phases=phases ) - # pylint: disable=missing-raises-doc # pylint: disable=missing-param-doc def estimate( self, - unitary: Optional[QuantumCircuit] = None, - state_preparation: Optional[QuantumCircuit] = None, - pe_circuit: Optional[QuantumCircuit] = None, - num_unitary_qubits: Optional[int] = None, + unitary: QuantumCircuit, + state_preparation: QuantumCircuit | None = None, ) -> PhaseEstimationResult: """Build a phase estimation circuit and run the corresponding algorithm. @@ -226,24 +262,7 @@ def estimate( Returns: An instance of qiskit.algorithms.phase_estimator_result.PhaseEstimationResult. """ - if unitary is not None: - if pe_circuit is not None: - raise ValueError("Only one of `pe_circuit` and `unitary` may be passed.") - pe_circuit = self.construct_circuit(unitary, state_preparation) - num_unitary_qubits = unitary.num_qubits - - elif pe_circuit is not None: - warnings.warn( - "Passing `pe_circuit` to the PhaseEstimation.estimate() method " - "is deprecated as of 0.18, and will be removed no earlier than " - "3 months after that release date. " - "You should use the PhaseEstimation.estimate_from_pe_circuit() method " - "instead.", - DeprecationWarning, - stacklevel=2, - ) - - else: - raise ValueError("One of `pe_circuit` and `unitary` must be passed.") + pe_circuit = self.construct_circuit(unitary, state_preparation) + num_unitary_qubits = unitary.num_qubits return self.estimate_from_pe_circuit(pe_circuit, num_unitary_qubits) diff --git a/qiskit/algorithms/phase_estimators/phase_estimation_result.py b/qiskit/algorithms/phase_estimators/phase_estimation_result.py index d9606fe03f65..0a9b8299758b 100644 --- a/qiskit/algorithms/phase_estimators/phase_estimation_result.py +++ b/qiskit/algorithms/phase_estimators/phase_estimation_result.py @@ -11,8 +11,7 @@ # that they have been altered from the originals. """Result of running PhaseEstimation""" - -from typing import Dict, Union +from __future__ import annotations import numpy from qiskit.utils.deprecation import deprecate_function @@ -36,7 +35,7 @@ def __init__( self, num_evaluation_qubits: int, circuit_result: Result, - phases: Union[numpy.ndarray, Dict[str, float]], + phases: numpy.ndarray | dict[str, float], ) -> None: """ Args: @@ -52,7 +51,7 @@ def __init__( self._circuit_result = circuit_result @property - def phases(self) -> Union[numpy.ndarray, dict]: + def phases(self) -> numpy.ndarray | dict: """Return all phases and their frequencies computed by QPE. This is an array or dict whose values correspond to weights on bit strings. @@ -97,7 +96,7 @@ def phase(self) -> float: phase = _bit_string_to_phase(binary_phase_string) return phase - def filter_phases(self, cutoff: float = 0.0, as_float: bool = True) -> Dict: + def filter_phases(self, cutoff: float = 0.0, as_float: bool = True) -> dict: """Return a filtered dict of phases (keys) and frequencies (values). Only phases with frequencies (counts) larger than `cutoff` are included. @@ -163,7 +162,7 @@ def _bit_string_to_phase(binary_string: str) -> float: return int(binary_string, 2) / (2**n_qubits) -def _sort_phases(phases: Dict) -> Dict: +def _sort_phases(phases: dict) -> dict: """Sort a dict of bit strings representing phases (keys) and frequencies (values) by bit string. The bit strings are sorted according to increasing phase. This relies on Python diff --git a/qiskit/algorithms/phase_estimators/phase_estimation_scale.py b/qiskit/algorithms/phase_estimators/phase_estimation_scale.py index 53e612d53eb8..268f1a9aae31 100644 --- a/qiskit/algorithms/phase_estimators/phase_estimation_scale.py +++ b/qiskit/algorithms/phase_estimators/phase_estimation_scale.py @@ -11,10 +11,12 @@ # that they have been altered from the originals. """Scaling for Hamiltonian and eigenvalues to avoid phase wrapping""" +from __future__ import annotations +import numpy as np -from typing import Union, Dict, List -import numpy -from qiskit.opflow import SummedOp +from qiskit.opflow import SummedOp, PauliSumOp +from qiskit.quantum_info import SparsePauliOp, Operator +from qiskit.quantum_info.operators.base_operator import BaseOperator class PhaseEstimationScale: @@ -62,7 +64,7 @@ def scale(self) -> float: Returns: The scale factor. """ - return numpy.pi / self._bound + return np.pi / self._bound def scale_phase(self, phi: float, id_coefficient: float = 0.0) -> float: r"""Convert a phase into an eigenvalue. @@ -91,9 +93,7 @@ def scale_phase(self, phi: float, id_coefficient: float = 0.0) -> float: else: return (phi - 1) * w + id_coefficient - def scale_phases( - self, phases: Union[List, Dict], id_coefficient: float = 0.0 - ) -> Union[Dict, List]: + def scale_phases(self, phases: list | dict, id_coefficient: float = 0.0) -> dict | list: """Convert a list or dict of phases to eigenvalues. The values in the list, or keys in the dict, are values of ``phi` and @@ -115,7 +115,9 @@ def scale_phases( return phases @classmethod - def from_pauli_sum(cls, pauli_sum: SummedOp) -> "PhaseEstimationScale": + def from_pauli_sum( + cls, pauli_sum: SummedOp | PauliSumOp | SparsePauliOp | Operator + ) -> "PhaseEstimationScale" | float: """Create a PhaseEstimationScale from a `SummedOp` representing a sum of Pauli Operators. It is assumed that the ``pauli_sum`` is the sum of ``PauliOp`` objects. The bound on @@ -132,12 +134,27 @@ def from_pauli_sum(cls, pauli_sum: SummedOp) -> "PhaseEstimationScale": Returns: A ``PhaseEstimationScale`` object """ - if pauli_sum.primitive_strings() != {"Pauli"}: + if isinstance(pauli_sum, PauliSumOp): + bound = abs(pauli_sum.coeff) * sum(abs(coeff) for coeff in pauli_sum.coeffs) + return PhaseEstimationScale(bound) + elif isinstance(pauli_sum, SparsePauliOp): + bound = sum(abs(coeff) for coeff in pauli_sum.coeffs) + return PhaseEstimationScale(bound) + elif isinstance(pauli_sum, Operator): + bound = np.sum(np.abs(np.eigvalsh(pauli_sum))) + return PhaseEstimationScale(bound) + elif isinstance(pauli_sum, BaseOperator): raise ValueError( - "`pauli_sum` must be a sum of Pauli operators. Got primitives {}.".format( - pauli_sum.primitive_strings() - ) + f"For the operator of type {type(pauli_sum)} the bound needs to be provided in the " + f"algorithm." ) + else: + if pauli_sum.primitive_strings() != {"Pauli"}: + raise ValueError( + "`pauli_sum` must be a sum of Pauli operators. Got primitives {}.".format( + pauli_sum.primitive_strings() + ) + ) - bound = abs(pauli_sum.coeff) * sum(abs(pauli.coeff) for pauli in pauli_sum) + bound = abs(pauli_sum.coeff) * sum(abs(pauli.coeff) for pauli in pauli_sum) return PhaseEstimationScale(bound) diff --git a/qiskit/algorithms/phase_estimators/phase_estimator.py b/qiskit/algorithms/phase_estimators/phase_estimator.py index 3ea7618b5046..09f8113e5f4a 100644 --- a/qiskit/algorithms/phase_estimators/phase_estimator.py +++ b/qiskit/algorithms/phase_estimators/phase_estimator.py @@ -1,6 +1,6 @@ # This code is part of Qiskit. # -# (C) Copyright IBM 2020. +# (C) Copyright IBM 2020, 2022. # # This code is licensed under the Apache License, Version 2.0. You may # obtain a copy of this license in the LICENSE.txt file in the root directory @@ -12,7 +12,7 @@ """The Phase Estimator interface.""" -from typing import Optional +from __future__ import annotations from abc import ABC, abstractmethod from qiskit.circuit import QuantumCircuit from qiskit.algorithms.algorithm_result import AlgorithmResult @@ -32,14 +32,16 @@ class PhaseEstimator(ABC): @abstractmethod def estimate( self, - unitary: Optional[QuantumCircuit] = None, - state_preparation: Optional[QuantumCircuit] = None, - pe_circuit: Optional[QuantumCircuit] = None, - num_unitary_qubits: Optional[int] = None, + unitary: QuantumCircuit, + state_preparation: QuantumCircuit | None = None, ) -> "PhaseEstimatorResult": """Estimate the phase.""" raise NotImplementedError + @staticmethod + def _get_reversed_bitstring(length: int, number: int) -> str: + return f"{number:b}".zfill(length)[::-1] + class PhaseEstimatorResult(AlgorithmResult): """Phase Estimator Result.""" diff --git a/qiskit/algorithms/state_fidelities/base_state_fidelity.py b/qiskit/algorithms/state_fidelities/base_state_fidelity.py index 75f4d632396d..cec48e3c6051 100644 --- a/qiskit/algorithms/state_fidelities/base_state_fidelity.py +++ b/qiskit/algorithms/state_fidelities/base_state_fidelity.py @@ -19,7 +19,7 @@ import numpy as np from qiskit import QuantumCircuit -from qiskit.algorithms import AlgorithmJob +from qiskit.algorithms.algorithm_job import AlgorithmJob from qiskit.circuit import ParameterVector from .state_fidelity_result import StateFidelityResult @@ -94,8 +94,9 @@ def _preprocess_values( ) # ensure 2d - if len(values) > 0 and not isinstance(values[0], Sequence): + if len(values) > 0 and not isinstance(values[0], Sequence) or len(values) == 0: values = [values] + return values def _check_qubits_match(self, circuit_1: QuantumCircuit, circuit_2: QuantumCircuit) -> None: @@ -236,7 +237,7 @@ def _run( circuits_2: QuantumCircuit | Sequence[QuantumCircuit], values_1: Sequence[float] | Sequence[Sequence[float]] | None = None, values_2: Sequence[float] | Sequence[Sequence[float]] | None = None, - **run_options, + **options, ) -> StateFidelityResult: r""" Computes the state overlap (fidelity) calculation between two @@ -248,9 +249,9 @@ def _run( circuits_2: (Parametrized) quantum circuits preparing :math:`|\phi\rangle`. values_1: Numerical parameters to be bound to the first set of circuits values_2: Numerical parameters to be bound to the second set of circuits. - run_options: Backend runtime options used for circuit execution. The order - of priority is\: run_options in ``run`` method > fidelity's default - run_options > primitive's default setting. + options: Primitive backend runtime options used for circuit execution. The order + of priority is\: options in ``run`` method > fidelity's default + options > primitive's default setting. Higher priority setting overrides lower priority setting. Returns: @@ -264,7 +265,7 @@ def run( circuits_2: QuantumCircuit | Sequence[QuantumCircuit], values_1: Sequence[float] | Sequence[Sequence[float]] | None = None, values_2: Sequence[float] | Sequence[Sequence[float]] | None = None, - **run_options, + **options, ) -> AlgorithmJob: r""" Runs asynchronously the state overlap (fidelity) calculation between two @@ -277,9 +278,9 @@ def run( circuits_2: (Parametrized) quantum circuits preparing :math:`|\phi\rangle`. values_1: Numerical parameters to be bound to the first set of circuits. values_2: Numerical parameters to be bound to the second set of circuits. - run_options: Backend runtime options used for circuit execution. The order - of priority is\: run_options in ``run`` method > fidelity's default - run_options > primitive's default setting. + options: Primitive backend runtime options used for circuit execution. The order + of priority is\: options in ``run`` method > fidelity's default + options > primitive's default setting. Higher priority setting overrides lower priority setting. Returns: @@ -287,7 +288,7 @@ def run( The job's result is an instance of ``StateFidelityResult``. """ - job = AlgorithmJob(self._run, circuits_1, circuits_2, values_1, values_2, **run_options) + job = AlgorithmJob(self._run, circuits_1, circuits_2, values_1, values_2, **options) job.submit() return job diff --git a/qiskit/algorithms/state_fidelities/compute_uncompute.py b/qiskit/algorithms/state_fidelities/compute_uncompute.py index ff9080e5d3ba..e2798fcc2fe7 100644 --- a/qiskit/algorithms/state_fidelities/compute_uncompute.py +++ b/qiskit/algorithms/state_fidelities/compute_uncompute.py @@ -20,6 +20,7 @@ from qiskit import QuantumCircuit from qiskit.algorithms import AlgorithmError from qiskit.primitives import BaseSampler +from qiskit.providers import Options from .base_state_fidelity import BaseStateFidelity from .state_fidelity_result import StateFidelityResult @@ -48,11 +49,14 @@ class ComputeUncompute(BaseStateFidelity): """ - def __init__(self, sampler: BaseSampler, **run_options) -> None: + def __init__(self, sampler: BaseSampler, options: Options | None = None) -> None: """ Args: sampler: Sampler primitive instance. - run_options: Backend runtime options used for circuit execution. + options: Primitive backend runtime options used for circuit execution. + The order of priority is: options in ``run`` method > fidelity's + default options > primitive's default setting. + Higher priority setting overrides lower priority setting. Raises: ValueError: If the sampler is not an instance of ``BaseSampler``. @@ -62,7 +66,9 @@ def __init__(self, sampler: BaseSampler, **run_options) -> None: f"The sampler should be an instance of BaseSampler, " f"but got {type(sampler)}" ) self._sampler: BaseSampler = sampler - self._default_run_options = run_options + self._default_options = Options() + if options is not None: + self._default_options.update_options(**options) super().__init__() def create_fidelity_circuit( @@ -79,6 +85,11 @@ def create_fidelity_circuit( Returns: The fidelity quantum circuit corresponding to circuit_1 and circuit_2. """ + if len(circuit_1.clbits) > 0: + circuit_1.remove_final_measurements() + if len(circuit_2.clbits) > 0: + circuit_2.remove_final_measurements() + circuit = circuit_1.compose(circuit_2.inverse()) circuit.measure_all() return circuit @@ -89,7 +100,7 @@ def _run( circuits_2: QuantumCircuit | Sequence[QuantumCircuit], values_1: Sequence[float] | Sequence[Sequence[float]] | None = None, values_2: Sequence[float] | Sequence[Sequence[float]] | None = None, - **run_options, + **options, ) -> StateFidelityResult: r""" Computes the state overlap (fidelity) calculation between two @@ -101,10 +112,10 @@ def _run( circuits_2: (Parametrized) quantum circuits preparing :math:`|\phi\rangle`. values_1: Numerical parameters to be bound to the first circuits. values_2: Numerical parameters to be bound to the second circuits. - run_options: Backend runtime options used for circuit execution. The order - of priority is\: run_options in ``run`` method > fidelity's default - run_options > primitive's default setting. - Higher priority setting overrides lower priority setting. + options: Primitive backend runtime options used for circuit execution. + The order of priority is: options in ``run`` method > fidelity's + default options > primitive's default setting. + Higher priority setting overrides lower priority setting. Returns: The result of the fidelity calculation. @@ -122,12 +133,12 @@ def _run( values = self._construct_value_list(circuits_1, circuits_2, values_1, values_2) # The priority of run options is as follows: - # run_options in `evaluate` method > fidelity's default run_options > - # primitive's default run_options. - run_opts = copy(self._default_run_options) - run_opts.update(**run_options) + # options in `evaluate` method > fidelity's default options > + # primitive's default options. + opts = copy(self._default_options) + opts.update_options(**options) - job = self._sampler.run(circuits=circuits, parameter_values=values, **run_opts) + job = self._sampler.run(circuits=circuits, parameter_values=values, **opts.__dict__) try: result = job.result() @@ -141,5 +152,41 @@ def _run( fidelities=fidelities, raw_fidelities=raw_fidelities, metadata=result.metadata, - run_options=run_opts, + options=self._get_local_options(opts.__dict__), ) + + @property + def options(self) -> Options: + """Return the union of estimator options setting and fidelity default options, + where, if the same field is set in both, the fidelity's default options override + the primitive's default setting. + + Returns: + The fidelity default + estimator options. + """ + return self._get_local_options(self._default_options.__dict__) + + def update_default_options(self, **options): + """Update the fidelity's default options setting. + + Args: + **options: The fields to update the default options. + """ + + self._default_options.update_options(**options) + + def _get_local_options(self, options: Options) -> Options: + """Return the union of the primitive's default setting, + the fidelity default options, and the options in the ``run`` method. + The order of priority is: options in ``run`` method > fidelity's + default options > primitive's default setting. + + Args: + options: The fields to update the options + + Returns: + The fidelity default + estimator + run options. + """ + opts = copy(self._sampler.options) + opts.update_options(**options) + return opts diff --git a/qiskit/algorithms/state_fidelities/state_fidelity_result.py b/qiskit/algorithms/state_fidelities/state_fidelity_result.py index 04d4aa0ca411..88dca035f94c 100644 --- a/qiskit/algorithms/state_fidelities/state_fidelity_result.py +++ b/qiskit/algorithms/state_fidelities/state_fidelity_result.py @@ -19,6 +19,8 @@ from typing import Any from dataclasses import dataclass +from qiskit.providers import Options + @dataclass(frozen=True) class StateFidelityResult: @@ -31,5 +33,5 @@ class StateFidelityResult: depending on the error mitigation method used.""" metadata: Sequence[Mapping[str, Any]] """Additional information about the fidelity calculation.""" - run_options: Mapping[str, Any] - """Runtime options for the execution of the fidelity job.""" + options: Options + """Primitive runtime options for the execution of the fidelity job.""" diff --git a/test/python/algorithms/evolvers/variational/variational_principles/__init__.py b/qiskit/algorithms/time_evolvers/__init__.py similarity index 93% rename from test/python/algorithms/evolvers/variational/variational_principles/__init__.py rename to qiskit/algorithms/time_evolvers/__init__.py index b3ac36d2a6d9..fdb172d367f0 100644 --- a/test/python/algorithms/evolvers/variational/variational_principles/__init__.py +++ b/qiskit/algorithms/time_evolvers/__init__.py @@ -1,6 +1,6 @@ # This code is part of Qiskit. # -# (C) Copyright IBM 2021, 2022. +# (C) Copyright IBM 2022. # # This code is licensed under the Apache License, Version 2.0. You may # obtain a copy of this license in the LICENSE.txt file in the root directory diff --git a/qiskit/algorithms/time_evolvers/imaginary_time_evolver.py b/qiskit/algorithms/time_evolvers/imaginary_time_evolver.py new file mode 100644 index 000000000000..e62d02e5ab9c --- /dev/null +++ b/qiskit/algorithms/time_evolvers/imaginary_time_evolver.py @@ -0,0 +1,37 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2021, 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""Interface for Quantum Imaginary Time Evolution.""" + +from abc import ABC, abstractmethod + +from .time_evolution_problem import TimeEvolutionProblem +from .time_evolution_result import TimeEvolutionResult + + +class ImaginaryTimeEvolver(ABC): + """Interface for Quantum Imaginary Time Evolution.""" + + @abstractmethod + def evolve(self, evolution_problem: TimeEvolutionProblem) -> TimeEvolutionResult: + r"""Perform imaginary time evolution :math:`\exp(-\tau H)|\Psi\rangle`. + + Evolves an initial state :math:`|\Psi\rangle` for an imaginary time :math:`\tau` + under a Hamiltonian :math:`H`, as provided in the ``evolution_problem``. + + Args: + evolution_problem: The definition of the evolution problem. + + Returns: + Evolution result which includes an evolved quantum state. + """ + raise NotImplementedError() diff --git a/qiskit/algorithms/evolvers/pvqd/__init__.py b/qiskit/algorithms/time_evolvers/pvqd/__init__.py similarity index 100% rename from qiskit/algorithms/evolvers/pvqd/__init__.py rename to qiskit/algorithms/time_evolvers/pvqd/__init__.py diff --git a/qiskit/algorithms/evolvers/pvqd/pvqd.py b/qiskit/algorithms/time_evolvers/pvqd/pvqd.py similarity index 74% rename from qiskit/algorithms/evolvers/pvqd/pvqd.py rename to qiskit/algorithms/time_evolvers/pvqd/pvqd.py index e4a1d5893bb5..bb2418640e8d 100644 --- a/qiskit/algorithms/evolvers/pvqd/pvqd.py +++ b/qiskit/algorithms/time_evolvers/pvqd/pvqd.py @@ -11,33 +11,32 @@ # that they have been altered from the originals. """The projected Variational Quantum Dynamics Algorithm.""" - -from typing import Optional, Union, List, Tuple, Callable +from __future__ import annotations import logging +from typing import Callable + import numpy as np -from qiskit import QiskitError -from qiskit.algorithms.optimizers import Optimizer, Minimizer -from qiskit.circuit import QuantumCircuit, ParameterVector +from qiskit.circuit import QuantumCircuit, ParameterVector, Parameter from qiskit.circuit.library import PauliEvolutionGate -from qiskit.extensions import HamiltonianGate -from qiskit.providers import Backend -from qiskit.opflow import OperatorBase, CircuitSampler, ExpectationBase, StateFn, MatrixOp +from qiskit.opflow import PauliSumOp +from qiskit.primitives import BaseEstimator +from qiskit.quantum_info.operators.base_operator import BaseOperator from qiskit.synthesis import EvolutionSynthesis, LieTrotter -from qiskit.utils import QuantumInstance - +from ...exceptions import AlgorithmError, QiskitError from .pvqd_result import PVQDResult from .utils import _get_observable_evaluator, _is_gradient_supported - -from ..evolution_problem import EvolutionProblem -from ..evolution_result import EvolutionResult -from ..real_evolver import RealEvolver +from ..time_evolution_problem import TimeEvolutionProblem +from ..time_evolution_result import TimeEvolutionResult +from ..real_time_evolver import RealTimeEvolver +from ...state_fidelities.base_state_fidelity import BaseStateFidelity +from ...optimizers import Optimizer, Minimizer logger = logging.getLogger(__name__) -class PVQD(RealEvolver): +class PVQD(RealTimeEvolver): """The projected Variational Quantum Dynamics (p-VQD) Algorithm. In each timestep, this algorithm computes the next state with a Trotter formula @@ -52,7 +51,6 @@ class PVQD(RealEvolver): ansatz (QuantumCircuit): The parameterized circuit representing the time-evolved state. initial_parameters (np.ndarray): The parameters of the ansatz at time 0. - expectation (ExpectationBase): The method to compute expectation values. optimizer (Optional[Union[Optimizer, Minimizer]]): The classical optimization routine used to maximize the fidelity of the Trotter step and ansatz. num_timesteps (Optional[int]): The number of timesteps to take. If None, it is automatically @@ -73,14 +71,19 @@ class PVQD(RealEvolver): import numpy as np + from qiskit.algorithms.state_fidelities import ComputeUncompute + from qiskit.algorithms.time_evolvers.pvqd import PVQD + from qiskit.primitives import Estimator from qiskit import BasicAer from qiskit.circuit.library import EfficientSU2 - from qiskit.opflow import X, Z, I, MatrixExpectation - - backend = BasicAer.get_backend("statevector_simulator") - expectation = MatrixExpectation() - hamiltonian = 0.1 * (Z ^ Z) + (I ^ X) + (X ^ I) - observable = Z ^ Z + from qiskit.quantum_info import Pauli, SparsePauliOp + from qiskit.algorithms.optimizers import L_BFGS_B + + sampler = Sampler() + fidelity = ComputeUncompute(sampler) + estimator = Estimator() + hamiltonian = 0.1 * SparsePauliOp([Pauli("ZZ"), Pauli("IX"), Pauli("XI")]) + observable = Pauli("ZZ") ansatz = EfficientSU2(2, reps=1) initial_parameters = np.zeros(ansatz.num_parameters) @@ -89,12 +92,12 @@ class PVQD(RealEvolver): # setup the algorithm pvqd = PVQD( + fidelity, ansatz, + estimator, initial_parameters, num_timesteps=100, optimizer=optimizer, - quantum_instance=backend, - expectation=expectation ) # specify the evolution problem @@ -114,30 +117,32 @@ class PVQD(RealEvolver): def __init__( self, + fidelity: BaseStateFidelity, ansatz: QuantumCircuit, initial_parameters: np.ndarray, - expectation: ExpectationBase, - optimizer: Optional[Union[Optimizer, Minimizer]] = None, - num_timesteps: Optional[int] = None, - evolution: Optional[EvolutionSynthesis] = None, + estimator: BaseEstimator | None = None, + optimizer: Optimizer | Minimizer | None = None, + num_timesteps: int | None = None, + evolution: EvolutionSynthesis | None = None, use_parameter_shift: bool = True, - initial_guess: Optional[np.ndarray] = None, - quantum_instance: Optional[Union[Backend, QuantumInstance]] = None, + initial_guess: np.ndarray | None = None, ) -> None: """ Args: + fidelity: A fidelity primitive used by the algorithm. ansatz: A parameterized circuit preparing the variational ansatz to model the time evolved quantum state. initial_parameters: The initial parameters for the ansatz. Together with the ansatz, these define the initial state of the time evolution. - expectation: The expectation converter to evaluate expectation values. + estimator: An estimator primitive used for calculating expected values of auxiliary + operators (if provided via the problem). optimizer: The classical optimizers used to minimize the overlap between Trotterization and ansatz. Can be either a :class:`.Optimizer` or a callable using the :class:`.Minimizer` protocol. This argument is optional since it is not required for :meth:`get_loss`, but it has to be set before :meth:`evolve` is called. - num_timestep: The number of time steps. If ``None`` it will be set such that the timestep - is close to 0.01. + num_timesteps: The number of time steps. If ``None`` it will be set such that the + timestep is close to 0.01. evolution: The evolution synthesis to use for the construction of the Trotter step. Defaults to first-order Lie-Trotter decomposition, see also :mod:`~qiskit.synthesis.evolution` for different options. @@ -147,8 +152,8 @@ def __init__( initial_guess: The initial guess for the first VQE optimization. Afterwards the previous iteration result is used as initial guess. If None, this is set to a random vector with elements in the interval :math:`[-0.01, 0.01]`. - quantum_instance: The backend or quantum instance used to evaluate the circuits. """ + super().__init__() if evolution is None: evolution = LieTrotter() @@ -157,36 +162,19 @@ def __init__( self.num_timesteps = num_timesteps self.optimizer = optimizer self.initial_guess = initial_guess - self.expectation = expectation + self.estimator = estimator + self.fidelity_primitive = fidelity self.evolution = evolution self.use_parameter_shift = use_parameter_shift - self._sampler = None - self.quantum_instance = quantum_instance - - @property - def quantum_instance(self) -> Optional[QuantumInstance]: - """Return the current quantum instance.""" - return self._quantum_instance - - @quantum_instance.setter - def quantum_instance(self, quantum_instance: Optional[Union[Backend, QuantumInstance]]) -> None: - """Set the quantum instance and circuit sampler.""" - if quantum_instance is not None: - if not isinstance(quantum_instance, QuantumInstance): - quantum_instance = QuantumInstance(quantum_instance) - self._sampler = CircuitSampler(quantum_instance) - - self._quantum_instance = quantum_instance - def step( self, - hamiltonian: OperatorBase, + hamiltonian: BaseOperator | PauliSumOp, ansatz: QuantumCircuit, theta: np.ndarray, dt: float, initial_guess: np.ndarray, - ) -> Tuple[np.ndarray, float]: + ) -> tuple[np.ndarray, float]: """Perform a single time step. Args: @@ -222,11 +210,11 @@ def step( def get_loss( self, - hamiltonian: OperatorBase, + hamiltonian: BaseOperator | PauliSumOp, ansatz: QuantumCircuit, dt: float, current_parameters: np.ndarray, - ) -> Tuple[Callable[[np.ndarray], float], Optional[Callable[[np.ndarray], np.ndarray]]]: + ) -> tuple[Callable[[np.ndarray], float], Callable[[np.ndarray], np.ndarray]] | None: """Get a function to evaluate the infidelity between Trotter step and ansatz. @@ -246,23 +234,15 @@ def get_loss( # use Trotterization to evolve the current state trotterized = ansatz.bind_parameters(current_parameters) - if isinstance(hamiltonian, MatrixOp): - evolution_gate = HamiltonianGate(hamiltonian.primitive, time=dt) - else: - evolution_gate = PauliEvolutionGate(hamiltonian, time=dt, synthesis=self.evolution) + evolution_gate = PauliEvolutionGate(hamiltonian, time=dt, synthesis=self.evolution) trotterized.append(evolution_gate, ansatz.qubits) # define the overlap of the Trotterized state and the ansatz x = ParameterVector("w", ansatz.num_parameters) shifted = ansatz.assign_parameters(current_parameters + x) - overlap = StateFn(trotterized).adjoint() @ StateFn(shifted) - converted = self.expectation.convert(overlap) - - def evaluate_loss( - displacement: Union[np.ndarray, List[np.ndarray]] - ) -> Union[float, List[float]]: + def evaluate_loss(displacement: np.ndarray | list[np.ndarray]) -> float | list[float]: """Evaluate the overlap of the ansatz with the Trotterized evolution. Args: @@ -270,6 +250,9 @@ def evaluate_loss( Returns: The fidelity of the ansatz with parameters ``theta`` and the Trotterized evolution. + + Raises: + AlgorithmError: If a primitive job fails. """ if isinstance(displacement, list): displacement = np.asarray(displacement) @@ -277,11 +260,24 @@ def evaluate_loss( else: value_dict = dict(zip(x, displacement)) - sampled = self._sampler.convert(converted, params=value_dict) - - # in principle we could add different loss functions here, but we're currently + param_dicts = self._transpose_param_dicts(value_dict) + num_of_param_sets = len(param_dicts) + states1 = [trotterized] * num_of_param_sets + states2 = [shifted] * num_of_param_sets + param_dicts2 = [list(param_dict.values()) for param_dict in param_dicts] + # the first state does not have free parameters so values_1 will be None by default + try: + job = self.fidelity_primitive.run(states1, states2, values_2=param_dicts2) + fidelities = job.result().fidelities + except Exception as exc: + raise AlgorithmError("The primitive job failed!") from exc + + if len(fidelities) == 1: + fidelities = fidelities[0] + + # in principle, we could add different loss functions here, but we're currently # not aware of a use-case for a different one than in the paper - return 1 - np.abs(sampled.eval()) ** 2 + return 1 - np.abs(fidelities) ** 2 if _is_gradient_supported(ansatz) and self.use_parameter_shift: @@ -313,8 +309,25 @@ def evaluate_gradient(displacement: np.ndarray) -> np.ndarray: return evaluate_loss, evaluate_gradient - def evolve(self, evolution_problem: EvolutionProblem) -> EvolutionResult: - """ + def _transpose_param_dicts(self, params: dict) -> list[dict[Parameter, float]]: + p_0 = list(params.values())[0] + if isinstance(p_0, (list, np.ndarray)): + num_parameterizations = len(p_0) + param_bindings = [ + {param: value_list[i] for param, value_list in params.items()} # type: ignore + for i in range(num_parameterizations) + ] + else: + param_bindings = [params] + + return param_bindings + + def evolve(self, evolution_problem: TimeEvolutionProblem) -> TimeEvolutionResult: + r"""Perform real time evolution :math:`\exp(-i t H)|\Psi\rangle`. + + Evolves an initial state :math:`|\Psi\rangle` for a time :math:`t` + under a Hamiltonian :math:`H`, as provided in the ``evolution_problem``. + Args: evolution_problem: The evolution problem containing the hamiltonian, total evolution time and observables to evaluate. @@ -323,7 +336,8 @@ def evolve(self, evolution_problem: EvolutionProblem) -> EvolutionResult: A result object containing the evolution information and evaluated observables. Raises: - ValueError: If the evolution time is not positive or the timestep is too small. + ValueError: If ``aux_operators`` provided in the time evolution problem but no estimator + provided to the algorithm. NotImplementedError: If the evolution problem contains an initial state. """ self._validate_setup() @@ -345,8 +359,12 @@ def evolve(self, evolution_problem: EvolutionProblem) -> EvolutionResult: # get the function to evaluate the observables for a given set of ansatz parameters if observables is not None: + if self.estimator is None: + raise ValueError( + "The evolution problem contained aux_operators but no estimator was provided. " + ) evaluate_observables = _get_observable_evaluator( - self.ansatz, observables, self.expectation, self._sampler + self.ansatz, observables, self.estimator ) observable_values = [evaluate_observables(self.initial_parameters)] @@ -391,7 +409,7 @@ def _validate_setup(self, skip=None): if skip is None: skip = {} - required_attributes = {"quantum_instance", "optimizer"}.difference(skip) + required_attributes = {"optimizer"}.difference(skip) for attr in required_attributes: if getattr(self, attr, None) is None: diff --git a/qiskit/algorithms/evolvers/pvqd/pvqd_result.py b/qiskit/algorithms/time_evolvers/pvqd/pvqd_result.py similarity index 74% rename from qiskit/algorithms/evolvers/pvqd/pvqd_result.py rename to qiskit/algorithms/time_evolvers/pvqd/pvqd_result.py index e14e7a0c9db5..6f8a34cb89a9 100644 --- a/qiskit/algorithms/evolvers/pvqd/pvqd_result.py +++ b/qiskit/algorithms/time_evolvers/pvqd/pvqd_result.py @@ -11,28 +11,26 @@ # that they have been altered from the originals. """Result object for p-VQD.""" +from __future__ import annotations -from typing import Union, Optional, List, Tuple import numpy as np from qiskit.circuit import QuantumCircuit -from qiskit.opflow import StateFn, OperatorBase +from ..time_evolution_result import TimeEvolutionResult -from ..evolution_result import EvolutionResult - -class PVQDResult(EvolutionResult): +class PVQDResult(TimeEvolutionResult): """The result object for the p-VQD algorithm.""" def __init__( self, - evolved_state: Union[StateFn, QuantumCircuit, OperatorBase], - aux_ops_evaluated: Optional[List[Tuple[complex, complex]]] = None, - times: Optional[List[float]] = None, - parameters: Optional[List[np.ndarray]] = None, - fidelities: Optional[List[float]] = None, - estimated_error: Optional[float] = None, - observables: Optional[List[List[float]]] = None, + evolved_state: QuantumCircuit, + aux_ops_evaluated: list[tuple[complex, complex]] | None = None, + times: list[float] | None = None, + parameters: list[np.ndarray] | None = None, + fidelities: list[float] | None = None, + estimated_error: float | None = None, + observables: list[list[float]] | None = None, ): """ Args: diff --git a/qiskit/algorithms/evolvers/pvqd/utils.py b/qiskit/algorithms/time_evolvers/pvqd/utils.py similarity index 72% rename from qiskit/algorithms/evolvers/pvqd/utils.py rename to qiskit/algorithms/time_evolvers/pvqd/utils.py index 589f12005de8..47e638d97011 100644 --- a/qiskit/algorithms/evolvers/pvqd/utils.py +++ b/qiskit/algorithms/time_evolvers/pvqd/utils.py @@ -12,17 +12,19 @@ """Utilities for p-VQD.""" - -from typing import Union, List, Callable +from __future__ import annotations import logging +from typing import Callable import numpy as np from qiskit.circuit import QuantumCircuit, Parameter, ParameterExpression from qiskit.compiler import transpile from qiskit.exceptions import QiskitError -from qiskit.opflow import ListOp, CircuitSampler, ExpectationBase, StateFn, OperatorBase from qiskit.opflow.gradients.circuit_gradients import ParamShift +from qiskit.primitives import BaseEstimator +from qiskit.quantum_info.operators.base_operator import BaseOperator +from ...exceptions import AlgorithmError logger = logging.getLogger(__name__) @@ -70,21 +72,12 @@ def _is_gradient_supported(ansatz: QuantumCircuit) -> bool: def _get_observable_evaluator( ansatz: QuantumCircuit, - observables: Union[OperatorBase, List[OperatorBase]], - expectation: ExpectationBase, - sampler: CircuitSampler, -) -> Callable[[np.ndarray], Union[float, List[float]]]: + observables: BaseOperator | list[BaseOperator], + estimator: BaseEstimator, +) -> Callable[[np.ndarray], float | list[float]]: """Get a callable to evaluate a (list of) observable(s) for given circuit parameters.""" - if isinstance(observables, list): - observables = ListOp(observables) - - expectation_value = StateFn(observables, is_measurement=True) @ StateFn(ansatz) - converted = expectation.convert(expectation_value) - - ansatz_parameters = ansatz.parameters - - def evaluate_observables(theta: np.ndarray) -> Union[float, List[float]]: + def evaluate_observables(theta: np.ndarray) -> float | list[float]: """Evaluate the observables for the ansatz parameters ``theta``. Args: @@ -92,9 +85,25 @@ def evaluate_observables(theta: np.ndarray) -> Union[float, List[float]]: Returns: The observables evaluated at the ansatz parameters. + + Raises: + AlgorithmError: If a primitive job fails. """ - value_dict = dict(zip(ansatz_parameters, theta)) - sampled = sampler.convert(converted, params=value_dict) - return sampled.eval() + if isinstance(observables, list): + num_observables = len(observables) + obs = observables + else: + num_observables = 1 + obs = [observables] + states = [ansatz] * num_observables + parameter_values = [theta] * num_observables + + try: + estimator_job = estimator.run(states, obs, parameter_values=parameter_values) + results = estimator_job.result().values + except Exception as exc: + raise AlgorithmError("The primitive job failed!") from exc + + return results return evaluate_observables diff --git a/qiskit/algorithms/time_evolvers/real_time_evolver.py b/qiskit/algorithms/time_evolvers/real_time_evolver.py new file mode 100644 index 000000000000..587f85d436e2 --- /dev/null +++ b/qiskit/algorithms/time_evolvers/real_time_evolver.py @@ -0,0 +1,37 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2021, 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""Interface for Quantum Real Time Evolution.""" + +from abc import ABC, abstractmethod + +from .time_evolution_problem import TimeEvolutionProblem +from .time_evolution_result import TimeEvolutionResult + + +class RealTimeEvolver(ABC): + """Interface for Quantum Real Time Evolution.""" + + @abstractmethod + def evolve(self, evolution_problem: TimeEvolutionProblem) -> TimeEvolutionResult: + r"""Perform real time evolution :math:`\exp(-i t H)|\Psi\rangle`. + + Evolves an initial state :math:`|\Psi\rangle` for a time :math:`t` + under a Hamiltonian :math:`H`, as provided in the ``evolution_problem``. + + Args: + evolution_problem: The definition of the evolution problem. + + Returns: + Evolution result which includes an evolved quantum state. + """ + raise NotImplementedError() diff --git a/qiskit/algorithms/time_evolvers/time_evolution_problem.py b/qiskit/algorithms/time_evolvers/time_evolution_problem.py new file mode 100644 index 000000000000..9b2226f4764f --- /dev/null +++ b/qiskit/algorithms/time_evolvers/time_evolution_problem.py @@ -0,0 +1,119 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""Time evolution problem class.""" +from __future__ import annotations + +from collections.abc import Mapping + +from qiskit import QuantumCircuit +from qiskit.circuit import Parameter, ParameterExpression +from qiskit.opflow import PauliSumOp +from ..list_or_dict import ListOrDict +from ...quantum_info import Statevector +from ...quantum_info.operators.base_operator import BaseOperator + + +class TimeEvolutionProblem: + """Time evolution problem class. + + This class is the input to time evolution algorithms and must contain information on the total + evolution time, a quantum state to be evolved and under which Hamiltonian the state is evolved. + + Attributes: + hamiltonian (BaseOperator | PauliSumOp): The Hamiltonian under which to evolve the system. + initial_state (QuantumCircuit | Statevector | None): The quantum state to be evolved for + methods like Trotterization. For variational time evolutions, where the evolution + happens in an ansatz, this argument is not required. + aux_operators (ListOrDict[BaseOperator | PauliSumOp] | None): Optional list of auxiliary + operators to be evaluated with the evolved ``initial_state`` and their expectation + values returned. + truncation_threshold (float): Defines a threshold under which values can be assumed to be 0. + Used when ``aux_operators`` is provided. + t_param (Parameter | None): Time parameter in case of a time-dependent Hamiltonian. This + free parameter must be within the ``hamiltonian``. + param_value_map (dict[Parameter, complex] | None): Maps free parameters in the problem to + values. Depending on the algorithm, it might refer to e.g. a Hamiltonian or an initial + state. + """ + + def __init__( + self, + hamiltonian: BaseOperator | PauliSumOp, + time: float, + initial_state: QuantumCircuit | Statevector | None = None, + aux_operators: ListOrDict[BaseOperator | PauliSumOp] | None = None, + truncation_threshold: float = 1e-12, + t_param: Parameter | None = None, + param_value_map: Mapping[Parameter, complex] | None = None, + ): + """ + Args: + hamiltonian: The Hamiltonian under which to evolve the system. + time: Total time of evolution. + initial_state: The quantum state to be evolved for methods like Trotterization. + For variational time evolutions, where the evolution happens in an ansatz, + this argument is not required. + aux_operators: Optional list of auxiliary operators to be evaluated with the + evolved ``initial_state`` and their expectation values returned. + truncation_threshold: Defines a threshold under which values can be assumed to be 0. + Used when ``aux_operators`` is provided. + t_param: Time parameter in case of a time-dependent Hamiltonian. This + free parameter must be within the ``hamiltonian``. + param_value_map: Maps free parameters in the problem to values. Depending on the + algorithm, it might refer to e.g. a Hamiltonian or an initial state. + + Raises: + ValueError: If non-positive time of evolution is provided. + """ + + self.t_param = t_param + self.param_value_map = param_value_map + self.hamiltonian = hamiltonian + self.time = time + if isinstance(initial_state, Statevector): + circuit = QuantumCircuit(initial_state.num_qubits) + circuit.prepare_state(initial_state.data) + initial_state = circuit + self.initial_state = initial_state + self.aux_operators = aux_operators + self.truncation_threshold = truncation_threshold + + @property + def time(self) -> float: + """Returns time.""" + return self._time + + @time.setter + def time(self, time: float) -> None: + """ + Sets time and validates it. + + Raises: + ValueError: If time is not positive. + """ + if time <= 0: + raise ValueError(f"Evolution time must be > 0 but was {time}.") + self._time = time + + def validate_params(self) -> None: + """ + Checks if all parameters present in the Hamiltonian are also present in the dictionary + that maps them to values. + + Raises: + ValueError: If Hamiltonian parameters cannot be bound with data provided. + """ + if isinstance(self.hamiltonian, PauliSumOp) and isinstance( + self.hamiltonian.coeff, ParameterExpression + ): + raise ValueError("A global parametrized coefficient for PauliSumOp is not allowed.") diff --git a/qiskit/algorithms/time_evolvers/time_evolution_result.py b/qiskit/algorithms/time_evolvers/time_evolution_result.py new file mode 100644 index 000000000000..60c900945543 --- /dev/null +++ b/qiskit/algorithms/time_evolvers/time_evolution_result.py @@ -0,0 +1,46 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2021, 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""Class for holding time evolution result.""" +from __future__ import annotations + +from qiskit import QuantumCircuit +from qiskit.algorithms.list_or_dict import ListOrDict +from ..algorithm_result import AlgorithmResult + + +class TimeEvolutionResult(AlgorithmResult): + """ + Class for holding time evolution result. + + Attributes: + evolved_state (QuantumCircuit): An evolved quantum state. + aux_ops_evaluated (ListOrDict[tuple[complex, complex]] | None): Optional list of + observables for which expected values on an evolved state are calculated. These values + are in fact tuples formatted as (mean, standard deviation). + """ + + def __init__( + self, + evolved_state: QuantumCircuit, + aux_ops_evaluated: ListOrDict[tuple[complex, complex]] | None = None, + ): + """ + Args: + evolved_state: An evolved quantum state. + aux_ops_evaluated: Optional list of observables for which expected values on an evolved + state are calculated. These values are in fact tuples formatted as (mean, standard + deviation). + """ + + self.evolved_state = evolved_state + self.aux_ops_evaluated = aux_ops_evaluated diff --git a/qiskit/algorithms/time_evolvers/trotterization/__init__.py b/qiskit/algorithms/time_evolvers/trotterization/__init__.py new file mode 100644 index 000000000000..c5e7e128728d --- /dev/null +++ b/qiskit/algorithms/time_evolvers/trotterization/__init__.py @@ -0,0 +1,29 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. +"""This package contains Trotterization-based Quantum Real Time Evolution algorithm. +It is compliant with the new Quantum Time Evolution Framework and makes use of +:class:`qiskit.synthesis.evolution.ProductFormula` and +:class:`~qiskit.circuit.library.PauliEvolutionGate` implementations. + +Trotterization-based Quantum Real Time Evolution +------------------------------------------------ + +.. autosummary:: + :toctree: ../stubs/ + :nosignatures: + + TrotterQRTE +""" + +from qiskit.algorithms.time_evolvers.trotterization.trotter_qrte import TrotterQRTE + +__all__ = ["TrotterQRTE"] diff --git a/qiskit/algorithms/time_evolvers/trotterization/trotter_qrte.py b/qiskit/algorithms/time_evolvers/trotterization/trotter_qrte.py new file mode 100644 index 000000000000..8ee855d60c40 --- /dev/null +++ b/qiskit/algorithms/time_evolvers/trotterization/trotter_qrte.py @@ -0,0 +1,175 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2021, 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""An algorithm to implement a Trotterization real time-evolution.""" + +from __future__ import annotations + +from qiskit import QuantumCircuit +from qiskit.algorithms.time_evolvers.time_evolution_problem import TimeEvolutionProblem +from qiskit.algorithms.time_evolvers.time_evolution_result import TimeEvolutionResult +from qiskit.algorithms.time_evolvers.real_time_evolver import RealTimeEvolver +from qiskit.algorithms.observables_evaluator import estimate_observables +from qiskit.opflow import PauliSumOp +from qiskit.circuit.library import PauliEvolutionGate +from qiskit.primitives import BaseEstimator +from qiskit.quantum_info import Pauli +from qiskit.synthesis import ProductFormula, LieTrotter + + +class TrotterQRTE(RealTimeEvolver): + """Quantum Real Time Evolution using Trotterization. + Type of Trotterization is defined by a ``ProductFormula`` provided. + + Examples: + + .. code-block:: python + + from qiskit.opflow import PauliSumOp + from qiskit.quantum_info import Pauli, SparsePauliOp + from qiskit import QuantumCircuit + from qiskit.algorithms import TimeEvolutionProblem + from qiskit.algorithms.time_evolvers import TrotterQRTE + from qiskit.primitives import Estimator + + operator = PauliSumOp(SparsePauliOp([Pauli("X"), Pauli("Z")])) + initial_state = QuantumCircuit(1) + time = 1 + evolution_problem = TimeEvolutionProblem(operator, time, initial_state) + # LieTrotter with 1 rep + estimator = Estimator() + trotter_qrte = TrotterQRTE(estimator=estimator) + evolved_state = trotter_qrte.evolve(evolution_problem).evolved_state + """ + + def __init__( + self, + product_formula: ProductFormula | None = None, + estimator: BaseEstimator | None = None, + ) -> None: + """ + Args: + product_formula: A Lie-Trotter-Suzuki product formula. If ``None`` provided, the + Lie-Trotter first order product formula with a single repetition is used. + estimator: An estimator primitive used for calculating expectation values of + ``TimeEvolutionProblem.aux_operators``. + """ + + self.product_formula = product_formula + self.estimator = estimator + + @property + def product_formula(self) -> ProductFormula: + """Returns a product formula.""" + return self._product_formula + + @product_formula.setter + def product_formula(self, product_formula: ProductFormula | None): + """Sets a product formula. If ``None`` provided, sets the Lie-Trotter first order product + formula with a single repetition.""" + if product_formula is None: + product_formula = LieTrotter() + self._product_formula = product_formula + + @property + def estimator(self) -> BaseEstimator | None: + """ + Returns an estimator. + """ + return self._estimator + + @estimator.setter + def estimator(self, estimator: BaseEstimator) -> None: + """ + Sets an estimator. + """ + self._estimator = estimator + + @classmethod + def supports_aux_operators(cls) -> bool: + """ + Whether computing the expectation value of auxiliary operators is supported. + + Returns: + ``True`` if ``aux_operators`` expectations in the ``TimeEvolutionProblem`` can be + evaluated, ``False`` otherwise. + """ + return True + + def evolve(self, evolution_problem: TimeEvolutionProblem) -> TimeEvolutionResult: + """ + Evolves a quantum state for a given time using the Trotterization method + based on a product formula provided. The result is provided in the form of a quantum + circuit. If auxiliary operators are included in the ``evolution_problem``, they are + evaluated on an evolved state using an estimator primitive provided. + + .. note:: + Time-dependent Hamiltonians are not supported. + + Args: + evolution_problem: Instance defining evolution problem. For the included Hamiltonian, + ``Pauli`` or ``PauliSumOp`` are supported by TrotterQRTE. + + Returns: + Evolution result that includes an evolved state as a quantum circuit and, optionally, + auxiliary operators evaluated for a resulting state on an estimator primitive. + + Raises: + ValueError: If ``t_param`` is not set to ``None`` in the ``TimeEvolutionProblem`` + (feature not currently supported). + ValueError: If ``aux_operators`` provided in the time evolution problem but no estimator + provided to the algorithm. + ValueError: If the ``initial_state`` is not provided in the ``TimeEvolutionProblem``. + ValueError: If an unsupported Hamiltonian type is provided. + """ + evolution_problem.validate_params() + if evolution_problem.t_param is not None: + raise ValueError( + "TrotterQRTE does not accept a time dependent Hamiltonian," + "``t_param`` from the ``TimeEvolutionProblem`` should be set to ``None``." + ) + + if evolution_problem.aux_operators is not None and self.estimator is None: + raise ValueError( + "The time evolution problem contained ``aux_operators`` but no estimator was " + "provided. The algorithm continues without calculating these quantities. " + ) + hamiltonian = evolution_problem.hamiltonian + if not isinstance(hamiltonian, (Pauli, PauliSumOp)): + raise ValueError( + f"TrotterQRTE only accepts Pauli | PauliSumOp, {type(hamiltonian)} provided." + ) + # the evolution gate + evolution_gate = PauliEvolutionGate( + hamiltonian, evolution_problem.time, synthesis=self.product_formula + ) + + if evolution_problem.initial_state is not None: + initial_state = evolution_problem.initial_state + evolved_state = QuantumCircuit(initial_state.num_qubits) + evolved_state.append(initial_state, evolved_state.qubits) + evolved_state.append(evolution_gate, evolved_state.qubits) + + else: + raise ValueError("``initial_state`` must be provided in the ``TimeEvolutionProblem``.") + + evaluated_aux_ops = None + if evolution_problem.aux_operators is not None: + evaluated_aux_ops = estimate_observables( + self.estimator, + evolved_state, + evolution_problem.aux_operators, + None, + evolution_problem.truncation_threshold, + ) + + return TimeEvolutionResult(evolved_state, evaluated_aux_ops) diff --git a/qiskit/algorithms/utils/__init__.py b/qiskit/algorithms/utils/__init__.py new file mode 100644 index 000000000000..2b49396270c7 --- /dev/null +++ b/qiskit/algorithms/utils/__init__.py @@ -0,0 +1,21 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""Common Qiskit algorithms utility functions.""" + +from .validate_initial_point import validate_initial_point +from .validate_bounds import validate_bounds + +__all__ = [ + "validate_initial_point", + "validate_bounds", +] diff --git a/qiskit/algorithms/utils/validate_bounds.py b/qiskit/algorithms/utils/validate_bounds.py new file mode 100644 index 000000000000..65f00cfcbd79 --- /dev/null +++ b/qiskit/algorithms/utils/validate_bounds.py @@ -0,0 +1,44 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""Validate parameter bounds.""" + +from __future__ import annotations + +from qiskit.circuit import QuantumCircuit + + +def validate_bounds(circuit: QuantumCircuit) -> list[tuple(float | None, float | None)]: + """ + Validate the bounds provided by a quantum circuit against its number of parameters. + If no bounds are obtained, return ``None`` for all lower and upper bounds. + + Args: + circuit: A parameterized quantum circuit. + + Returns: + A list of tuples (lower_bound, upper_bound)). + + Raises: + ValueError: If the number of bounds does not the match the number of circuit parameters. + """ + if hasattr(circuit, "parameter_bounds") and circuit.parameter_bounds is not None: + bounds = circuit.parameter_bounds + if len(bounds) != circuit.num_parameters: + raise ValueError( + f"The number of bounds ({len(bounds)}) does not match the number of " + f"parameters in the circuit ({circuit.num_parameters})." + ) + else: + bounds = [(None, None)] * circuit.num_parameters + + return bounds diff --git a/qiskit/algorithms/utils/validate_initial_point.py b/qiskit/algorithms/utils/validate_initial_point.py new file mode 100644 index 000000000000..15e871cdd473 --- /dev/null +++ b/qiskit/algorithms/utils/validate_initial_point.py @@ -0,0 +1,69 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""Validate an initial point.""" + +from __future__ import annotations + +from collections.abc import Sequence + +import numpy as np + +from qiskit.circuit import QuantumCircuit +from qiskit.utils import algorithm_globals + + +def validate_initial_point( + point: Sequence[float] | None, circuit: QuantumCircuit +) -> Sequence[float]: + r""" + Validate a choice of initial point against a choice of circuit. If no point is provided, a + random point will be generated within certain parameter bounds. It will first look to the + circuit for these bounds. If the circuit does not specify bounds, bounds of :math:`-2\pi`, + :math:`2\pi` will be used. + + Args: + point: An initial point. + circuit: A parameterized quantum circuit. + + Returns: + A validated initial point. + + Raises: + ValueError: If the dimension of the initial point does not match the number of circuit + parameters. + """ + expected_size = circuit.num_parameters + + if point is None: + # get bounds if circuit has them set, otherwise use [-2pi, 2pi] for each parameter + bounds = getattr(circuit, "parameter_bounds", None) + if bounds is None: + bounds = [(-2 * np.pi, 2 * np.pi)] * expected_size + + # replace all Nones by [-2pi, 2pi] + lower_bounds = [] + upper_bounds = [] + for lower, upper in bounds: + lower_bounds.append(lower if lower is not None else -2 * np.pi) + upper_bounds.append(upper if upper is not None else 2 * np.pi) + + # sample from within bounds + point = algorithm_globals.random.uniform(lower_bounds, upper_bounds) + + elif len(point) != expected_size: + raise ValueError( + f"The dimension of the initial point ({len(point)}) does not match the " + f"number of parameters in the circuit ({expected_size})." + ) + + return point diff --git a/qiskit/algorithms/variational_algorithm.py b/qiskit/algorithms/variational_algorithm.py index 92d8976ffc9f..0be89abf6bef 100644 --- a/qiskit/algorithms/variational_algorithm.py +++ b/qiskit/algorithms/variational_algorithm.py @@ -31,6 +31,7 @@ import numpy as np from .algorithm_result import AlgorithmResult +from .optimizers import OptimizerResult class VariationalAlgorithm(ABC): @@ -109,3 +110,13 @@ def optimal_parameters(self) -> Optional[Dict]: def optimal_parameters(self, value: Dict) -> None: """Sets optimal parameters""" self._optimal_parameters = value + + @property + def optimizer_result(self) -> Optional[OptimizerResult]: + """Returns the optimizer result""" + return self._optimizer_result + + @optimizer_result.setter + def optimizer_result(self, value: OptimizerResult) -> None: + """Sets optimizer result""" + self._optimizer_result = value diff --git a/qiskit/assembler/assemble_schedules.py b/qiskit/assembler/assemble_schedules.py index 7987c92d3f73..6482dabbefd4 100644 --- a/qiskit/assembler/assemble_schedules.py +++ b/qiskit/assembler/assemble_schedules.py @@ -191,7 +191,7 @@ def _assemble_instructions( if isinstance(instruction.pulse, (library.ParametricPulse, library.SymbolicPulse)): is_backend_supported = True try: - pulse_shape = ParametricPulseShapes(type(instruction.pulse)).name + pulse_shape = ParametricPulseShapes.from_instance(instruction.pulse).name if pulse_shape not in run_config.parametric_pulses: is_backend_supported = False except ValueError: diff --git a/qiskit/circuit/__init__.py b/qiskit/circuit/__init__.py index bea6c844ebf7..dccdcf5b4572 100644 --- a/qiskit/circuit/__init__.py +++ b/qiskit/circuit/__init__.py @@ -56,6 +56,56 @@ Supplementary Information ========================= +.. dropdown:: Quantum Circuit with conditionals + :animate: fade-in-slide-down + + When building a quantum circuit, there can be interest in applying a certain gate only + if a classical register has a specific value. This can be done with the + :meth:`InstructionSet.c_if` method. + + In the following example, we start with a single-qubit circuit formed by only a Hadamard gate + (:class:`~.HGate`), in which we expect to get :math:`|0\\rangle` and :math:`|1\\rangle` + with equal probability. + + .. jupyter-execute:: + + from qiskit import BasicAer, transpile, QuantumRegister, ClassicalRegister + + qr = QuantumRegister(1) + cr = ClassicalRegister(1) + qc = QuantumCircuit(qr, cr) + qc.h(0) + qc.measure(0, 0) + qc.draw('mpl') + + .. jupyter-execute:: + + backend = BasicAer.get_backend('qasm_simulator') + tqc = transpile(qc, backend) + counts = backend.run(tqc).result().get_counts() + + print(counts) + + Now, we add an :class:`~.XGate` only if the value of the :class:`~.ClassicalRegister` is 0. + That way, if the state is :math:`|0\\rangle`, it will be changed to :math:`|1\\rangle` and + if the state is :math:`|1\\rangle`, it will not be changed at all, so the final state will + always be :math:`|1\\rangle`. + + .. jupyter-execute:: + + qc.x(0).c_if(cr, 0) + qc.measure(0, 0) + + qc.draw('mpl') + + .. jupyter-execute:: + + tqc = transpile(qc, backend) + counts = backend.run(tqc).result().get_counts() + + print(counts) + + .. dropdown:: Quantum Circuit Properties :animate: fade-in-slide-down @@ -243,8 +293,7 @@ from .parameterexpression import ParameterExpression from .quantumcircuitdata import CircuitInstruction from .equivalence import EquivalenceLibrary -from .classicalfunction.types import Int1, Int2 -from .classicalfunction import classical_function, BooleanExpression +from . import library from .commutation_checker import CommutationChecker from .controlflow import ( @@ -255,3 +304,28 @@ BreakLoopOp, ContinueLoopOp, ) + + +_DEPRECATED_NAMES = { + "Int1": "qiskit.circuit.classicalfunction.types", + "Int2": "qiskit.circuit.classicalfunction.types", + "classical_function": "qiskit.circuit.classicalfunction", + "BooleanExpression": "qiskit.circuit.classicalfunction", +} + + +def __getattr__(name): + if name in _DEPRECATED_NAMES: + import importlib + import warnings + + module_name = _DEPRECATED_NAMES[name] + warnings.warn( + f"Accessing '{name}' from '{__name__}' is deprecated since Qiskit Terra 0.22 " + f"and will be removed in 0.23. Import from '{module_name}' instead. " + "This will require installing 'tweedledum' as an optional dependency from Terra 0.23.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(importlib.import_module(module_name), name) + raise AttributeError(f"module '{__name__}' has no attribute '{name}'") diff --git a/qiskit/circuit/classicalfunction/__init__.py b/qiskit/circuit/classicalfunction/__init__.py index ed5f7749f2cc..0e51e3ad547c 100644 --- a/qiskit/circuit/classicalfunction/__init__.py +++ b/qiskit/circuit/classicalfunction/__init__.py @@ -26,7 +26,8 @@ .. jupyter-execute:: - from qiskit.circuit import classical_function, Int1 + from qiskit.circuit.classicalfunction import classical_function + from qiskit.circuit.classicalfunction.types import Int1 @classical_function def grover_oracle(a: Int1, b: Int1, c: Int1, d: Int1) -> Int1: diff --git a/qiskit/circuit/instructionset.py b/qiskit/circuit/instructionset.py index 5163b4146082..851a7034e1ab 100644 --- a/qiskit/circuit/instructionset.py +++ b/qiskit/circuit/instructionset.py @@ -186,6 +186,26 @@ def c_if(self, classical: Union[Clbit, ClassicalRegister, int], val: int) -> "In Raises: CircuitError: if the passed classical resource is invalid, or otherwise not resolvable to a concrete resource that these instructions are permitted to access. + + Example: + .. jupyter-execute:: + + from qiskit import ClassicalRegister, QuantumRegister, QuantumCircuit + + qr = QuantumRegister(2) + cr = ClassicalRegister(2) + qc = QuantumCircuit(qr, cr) + qc.h(range(2)) + qc.measure(range(2), range(2)) + + # apply x gate if the classical register has the value 2 (10 in binary) + qc.x(0).c_if(cr, 2) + + # apply y gate if bit 0 is set to 1 + qc.y(1).c_if(0, 1) + + qc.draw() + """ if self._requester is None and not isinstance(classical, (Clbit, ClassicalRegister)): raise CircuitError( diff --git a/qiskit/circuit/library/phase_oracle.py b/qiskit/circuit/library/phase_oracle.py index 3ba10f5138f1..91d85e7670a5 100644 --- a/qiskit/circuit/library/phase_oracle.py +++ b/qiskit/circuit/library/phase_oracle.py @@ -12,13 +12,20 @@ """Phase Oracle object.""" -from typing import Union, Callable, Optional +# Needed to avoid type hints from erroring when `classicalfunction` might not be available. +from __future__ import annotations + +from typing import Union, Callable, Optional, TYPE_CHECKING from qiskit.circuit import QuantumCircuit -from qiskit.circuit.classicalfunction.boolean_expression import BooleanExpression -from qiskit.circuit.classicalfunction.classical_element import ClassicalElement +from qiskit.utils import optionals as _optionals + +if TYPE_CHECKING: + from qiskit.circuit.classicalfunction.boolean_expression import BooleanExpression + from qiskit.circuit.classicalfunction.classical_element import ClassicalElement +@_optionals.HAS_TWEEDLEDUM.require_in_instance class PhaseOracle(QuantumCircuit): r"""Phase Oracle. @@ -53,6 +60,9 @@ def __init__( synthesizer: Optional. A function to convert a BooleanExpression into a QuantumCircuit If None is provided, Tweedledum's `pkrm_synth` with `phase_esop` will be used. """ + from qiskit.circuit.classicalfunction.boolean_expression import BooleanExpression + from qiskit.circuit.classicalfunction.classical_element import ClassicalElement + if not isinstance(expression, ClassicalElement): expression = BooleanExpression(expression) @@ -134,5 +144,7 @@ def from_dimacs_file(cls, filename: str): Returns: PhaseOracle: A quantum circuit with a phase oracle. """ + from qiskit.circuit.classicalfunction.boolean_expression import BooleanExpression + expr = BooleanExpression.from_dimacs_file(filename) return cls(expr) diff --git a/qiskit/circuit/library/standard_gates/__init__.py b/qiskit/circuit/library/standard_gates/__init__.py index d1345e13d8f2..3dca1abb6201 100644 --- a/qiskit/circuit/library/standard_gates/__init__.py +++ b/qiskit/circuit/library/standard_gates/__init__.py @@ -103,3 +103,72 @@ from .z import ZGate, CZGate, CCZGate from .multi_control_rotation_gates import mcrx, mcry, mcrz + + +def get_standard_gate_name_mapping(): + """Return a dictionary mapping the name of standard gates and instructions to an object for + that name.""" + from qiskit.circuit.parameter import Parameter + from qiskit.circuit.measure import Measure + from qiskit.circuit.delay import Delay + from qiskit.circuit.reset import Reset + + # Standard gates library mapping, multicontrolled gates not included since they're + # variable width + gates = [ + IGate(), + SXGate(), + XGate(), + CXGate(), + RZGate(Parameter("λ")), + RGate(Parameter("ϴ"), Parameter("φ")), + Reset(), + C3SXGate(), + CCXGate(), + DCXGate(), + CHGate(), + CPhaseGate(Parameter("ϴ")), + CRXGate(Parameter("ϴ")), + CRYGate(Parameter("ϴ")), + CRZGate(Parameter("ϴ")), + CSwapGate(), + CSXGate(), + CUGate(Parameter("ϴ"), Parameter("φ"), Parameter("λ"), Parameter("γ")), + CU1Gate(Parameter("λ")), + CU3Gate(Parameter("ϴ"), Parameter("φ"), Parameter("λ")), + CYGate(), + CZGate(), + CCZGate(), + HGate(), + PhaseGate(Parameter("ϴ")), + RCCXGate(), + RC3XGate(), + RXGate(Parameter("ϴ")), + RXXGate(Parameter("ϴ")), + RYGate(Parameter("ϴ")), + RYYGate(Parameter("ϴ")), + RZZGate(Parameter("ϴ")), + RZXGate(Parameter("ϴ")), + XXMinusYYGate(Parameter("ϴ")), + XXPlusYYGate(Parameter("ϴ")), + ECRGate(), + SGate(), + SdgGate(), + CSGate(), + CSdgGate(), + SwapGate(), + iSwapGate(), + SXdgGate(), + TGate(), + TdgGate(), + UGate(Parameter("ϴ"), Parameter("φ"), Parameter("λ")), + U1Gate(Parameter("λ")), + U2Gate(Parameter("φ"), Parameter("λ")), + U3Gate(Parameter("ϴ"), Parameter("φ"), Parameter("λ")), + YGate(), + ZGate(), + Delay(Parameter("t")), + Measure(), + ] + name_mapping = {gate.name: gate for gate in gates} + return name_mapping diff --git a/qiskit/compiler/transpiler.py b/qiskit/compiler/transpiler.py index d5545e9fdda6..3e2b7127a6f5 100644 --- a/qiskit/compiler/transpiler.py +++ b/qiskit/compiler/transpiler.py @@ -71,7 +71,7 @@ def transpile( scheduling_method: Optional[str] = None, instruction_durations: Optional[InstructionDurationsType] = None, dt: Optional[float] = None, - approximation_degree: Optional[float] = None, + approximation_degree: Optional[float] = 1.0, timing_constraints: Optional[Dict[str, int]] = None, seed_transpiler: Optional[int] = None, optimization_level: Optional[int] = None, diff --git a/qiskit/converters/circuit_to_dagdependency.py b/qiskit/converters/circuit_to_dagdependency.py index c941c9c91563..17c9de10ef55 100644 --- a/qiskit/converters/circuit_to_dagdependency.py +++ b/qiskit/converters/circuit_to_dagdependency.py @@ -15,11 +15,13 @@ from qiskit.dagcircuit.dagdependency import DAGDependency -def circuit_to_dagdependency(circuit): +def circuit_to_dagdependency(circuit, create_preds_and_succs=True): """Build a ``DAGDependency`` object from a ``QuantumCircuit``. Args: - circuit (QuantumCircuit): the input circuits. + circuit (QuantumCircuit): the input circuit. + create_preds_and_succs (bool): whether to construct lists of + predecessors and successors for every node. Return: DAGDependency: the DAG representing the input circuit as a dag dependency. @@ -40,7 +42,9 @@ def circuit_to_dagdependency(circuit): for instruction in circuit.data: dagdependency.add_op_node(instruction.operation, instruction.qubits, instruction.clbits) - dagdependency._add_successors() + if create_preds_and_succs: + dagdependency._add_predecessors() + dagdependency._add_successors() dagdependency.calibrations = circuit.calibrations diff --git a/qiskit/converters/dag_to_dagdependency.py b/qiskit/converters/dag_to_dagdependency.py index ed420454ce01..dc0c3c289842 100644 --- a/qiskit/converters/dag_to_dagdependency.py +++ b/qiskit/converters/dag_to_dagdependency.py @@ -14,11 +14,13 @@ from qiskit.dagcircuit.dagdependency import DAGDependency -def dag_to_dagdependency(dag): +def dag_to_dagdependency(dag, create_preds_and_succs=True): """Build a ``DAGDependency`` object from a ``DAGCircuit``. Args: dag (DAGCircuit): the input dag. + create_preds_and_succs (bool): whether to construct lists of + predecessors and successors for every node. Return: DAGDependency: the DAG representing the input circuit as a dag dependency. @@ -42,7 +44,9 @@ def dag_to_dagdependency(dag): inst = node.op.copy() dagdependency.add_op_node(inst, node.qargs, node.cargs) - dagdependency._add_successors() + if create_preds_and_succs: + dagdependency._add_predecessors() + dagdependency._add_successors() # copy metadata dagdependency.global_phase = dag.global_phase diff --git a/qiskit/dagcircuit/dagcircuit.py b/qiskit/dagcircuit/dagcircuit.py index d46fd9b44cf6..507e069267fc 100644 --- a/qiskit/dagcircuit/dagcircuit.py +++ b/qiskit/dagcircuit/dagcircuit.py @@ -605,75 +605,6 @@ def apply_operation_front(self, op, qargs=(), cargs=()): ) return self._multi_graph[node_index] - def _check_edgemap_registers(self, inbound_wires, inbound_regs): - """Check that wiremap neither fragments nor leaves duplicate registers. - - 1. There are no fragmented registers. A register in keyregs - is fragmented if not all of its (qu)bits are renamed by edge_map. - 2. There are no duplicate registers. A register is duplicate if - it appears in both self and keyregs but not in edge_map. - - Args: - inbound_wires (list): a list of wires being mapped from the inbound dag - inbound_regs (list): a list from registers from the inbound dag - - Returns: - set(Register): the set of regs to add to self - - Raises: - DAGCircuitError: if the wiremap fragments, or duplicates exist - """ - add_regs = set() - reg_frag_chk = {} - - for inbound_reg in inbound_regs: - reg_frag_chk[inbound_reg] = {reg_bit: False for reg_bit in inbound_reg} - - for inbound_bit in inbound_wires: - for inbound_reg in inbound_regs: - if inbound_bit in inbound_reg: - reg_frag_chk[inbound_reg][inbound_bit] = True - break - - for inbound_reg, v in reg_frag_chk.items(): - s = set(v.values()) - if len(s) == 2: - raise DAGCircuitError("inbound_wires fragments reg %s" % inbound_reg) - if s == {False}: - if inbound_reg.name in self.qregs or inbound_reg.name in self.cregs: - raise DAGCircuitError("unmapped duplicate reg %s" % inbound_reg) - - # Add registers that appear only in inbound_regs - add_regs.add(inbound_reg) - - return add_regs - - def _check_wiremap_validity(self, wire_map, keymap, valmap): - """Check that the wiremap is consistent. - - Check that the wiremap refers to valid wires and that - those wires have consistent types. - - Args: - wire_map (dict): map from Bit in keymap to Bit in valmap - keymap (list): a list of wire_map keys - valmap (dict): a map whose keys are wire_map values - - Raises: - DAGCircuitError: if wire_map not valid - """ - for k, v in wire_map.items(): - - if k not in keymap: - raise DAGCircuitError("invalid wire mapping key %s" % k) - if v not in valmap: - raise DAGCircuitError("invalid wire mapping value %s" % v) - # TODO Support mapping from AncillaQubit to Qubit, since AncillaQubits are mapped to - # Qubits upon being converted to an Instruction. Until this translation is fixed - # and Instructions have a concept of ancilla qubits, this fix is required. - if not (isinstance(k, type(v)) or isinstance(v, type(k))): - raise DAGCircuitError(f"inconsistent wire_map at ({k},{v})") - @staticmethod def _map_condition(wire_map, condition, target_cregs): """Use the wire_map dict to change the condition tuple's creg name. @@ -743,6 +674,39 @@ def _map_condition(wire_map, condition, target_cregs): new_condition = (new_creg, new_cond_val) return new_condition + def _map_condition_with_import(self, op, wire_map, creg_map): + """Map the condition in ``op`` to its counterpart in ``self`` using ``wire_map`` and + ``creg_map`` as lookup caches. All single-bit conditions should have a cache hit in the + ``wire_map``, but registers may involve a full linear search the first time they are + encountered. ``creg_map`` is mutated by this function. ``wire_map`` is not; it is an error + if a wire is not in the map. + + This is different to ``_map_condition`` because it always succeeds; since the mapping for + all wires in the condition is assumed to exist, there can be no fragmented registers. If + there is no matching register (has the same bits in the same order) in ``self``, a new + register alias is added to represent the condition. This does not change the bits available + to ``self``, it just adds a new aliased grouping of them.""" + op_condition = getattr(op, "condition", None) + if op_condition is None: + return op + new_op = copy.copy(op) + target, value = op_condition + if isinstance(target, Clbit): + new_op.condition = (wire_map[target], value) + else: + if target.name not in creg_map: + mapped_bits = [wire_map[bit] for bit in target] + for our_creg in self.cregs.values(): + if mapped_bits == list(our_creg): + new_target = our_creg + break + else: + new_target = ClassicalRegister(bits=[wire_map[bit] for bit in target]) + self.add_creg(new_target) + creg_map[target.name] = new_target + new_op.condition = (creg_map[target.name], value) + return new_op + def compose(self, other, qubits=None, clbits=None, front=False, inplace=True): """Compose the ``other`` circuit onto the output of this circuit. @@ -941,31 +905,6 @@ def num_tensor_factors(self): """Compute how many components the circuit can decompose into.""" return rx.number_weakly_connected_components(self._multi_graph) - def _check_wires_list(self, wires, node): - """Check that a list of wires is compatible with a node to be replaced. - - - no duplicate names - - correct length for operation - Raise an exception otherwise. - - Args: - wires (list[Bit]): gives an order for (qu)bits - in the input circuit that is replacing the node. - node (DAGOpNode): a node in the dag - - Raises: - DAGCircuitError: if check doesn't pass. - """ - if len(set(wires)) != len(wires): - raise DAGCircuitError("duplicate wires") - - wire_tot = len(node.qargs) + len(node.cargs) - if getattr(node.op, "condition", None) is not None: - wire_tot += getattr(node.op, "condition", None)[0].size - - if len(wires) != wire_tot: - raise DAGCircuitError("expected %d wires, got %d" % (wire_tot, len(wires))) - def __eq__(self, other): # Try to convert to float, but in case of unbound ParameterExpressions # a TypeError will be raise, fallback to normal equality in those @@ -986,21 +925,19 @@ def __eq__(self, other): self_bit_indices = {bit: idx for idx, bit in enumerate(self.qubits + self.clbits)} other_bit_indices = {bit: idx for idx, bit in enumerate(other.qubits + other.clbits)} - self_qreg_indices = [ - (regname, [self_bit_indices[bit] for bit in reg]) for regname, reg in self.qregs.items() - ] - self_creg_indices = [ - (regname, [self_bit_indices[bit] for bit in reg]) for regname, reg in self.cregs.items() - ] - - other_qreg_indices = [ - (regname, [other_bit_indices[bit] for bit in reg]) - for regname, reg in other.qregs.items() - ] - other_creg_indices = [ - (regname, [other_bit_indices[bit] for bit in reg]) - for regname, reg in other.cregs.items() - ] + self_qreg_indices = { + regname: [self_bit_indices[bit] for bit in reg] for regname, reg in self.qregs.items() + } + self_creg_indices = { + regname: [self_bit_indices[bit] for bit in reg] for regname, reg in self.cregs.items() + } + + other_qreg_indices = { + regname: [other_bit_indices[bit] for bit in reg] for regname, reg in other.qregs.items() + } + other_creg_indices = { + regname: [other_bit_indices[bit] for bit in reg] for regname, reg in other.cregs.items() + } if self_qreg_indices != other_qreg_indices or self_creg_indices != other_creg_indices: return False @@ -1113,15 +1050,21 @@ def replace_block_with_op(self, node_block, op, wire_pos_map, cycle_check=True): for nd in node_block: self._decrement_op(nd.op) - def substitute_node_with_dag(self, node, input_dag, wires=None): + def substitute_node_with_dag(self, node, input_dag, wires=None, propagate_condition=True): """Replace one node with dag. Args: node (DAGOpNode): node to substitute input_dag (DAGCircuit): circuit that will substitute the node - wires (list[Bit]): gives an order for (qu)bits - in the input circuit. This order gets matched to the node wires - by qargs first, then cargs, then conditions. + wires (list[Bit] | Dict[Bit, Bit]): gives an order for (qu)bits + in the input circuit. If a list, then the bits refer to those in the ``input_dag``, + and the order gets matched to the node wires by qargs first, then cargs, then + conditions. If a dictionary, then a mapping of bits in the ``input_dag`` to those + that the ``node`` acts on. + propagate_condition (bool): If ``True`` (default), then any ``condition`` attribute on + the operation within ``node`` is propagated to each node in the ``input_dag``. If + ``False``, then the ``input_dag`` is assumed to faithfully implement suitable + conditional logic already. Returns: dict: maps node IDs from `input_dag` to their new node incarnations in `self`. @@ -1129,77 +1072,84 @@ def substitute_node_with_dag(self, node, input_dag, wires=None): Raises: DAGCircuitError: if met with unexpected predecessor/successors """ - in_dag = input_dag - - # the dag must be amended if used in a - # conditional context. delete the op nodes and replay - # them with the condition. - if getattr(node.op, "condition", None): - in_dag = copy.deepcopy(input_dag) - in_dag.add_creg(getattr(node.op, "condition", None)[0]) - to_replay = [] - for sorted_node in in_dag.topological_nodes(): - if isinstance(sorted_node, DAGOpNode): - if getattr(node.op, "condition", None) and not isinstance( - sorted_node.op, Instruction - ): - raise DAGCircuitError("Cannot add a condition on a generic Operation.") - sorted_node.op.condition = getattr(node.op, "condition", None) - to_replay.append(sorted_node) - for input_node in in_dag.op_nodes(): - in_dag.remove_op_node(input_node) - for replay_node in to_replay: - in_dag.apply_operation_back(replay_node.op, replay_node.qargs, replay_node.cargs) - - if in_dag.global_phase: - self.global_phase += in_dag.global_phase - - if wires is None: - wires = in_dag.wires - wire_set = set(wires) - self._check_wires_list(wires, node) - - # Create a proxy wire_map to identify fragments and duplicates - # and determine what registers need to be added to self - add_qregs = self._check_edgemap_registers(wires, in_dag.qregs.values()) - for qreg in add_qregs: - self.add_qreg(qreg) - - add_cregs = self._check_edgemap_registers(wires, in_dag.cregs.values()) - for creg in add_cregs: - self.add_creg(creg) - - # Replace the node by iterating through the input_circuit. - # Constructing and checking the validity of the wire_map. - # If a gate is conditioned, we expect the replacement subcircuit - # to depend on those condition bits as well. if not isinstance(node, DAGOpNode): - raise DAGCircuitError("expected node DAGOpNode, got %s" % type(node)) - - condition_bit_list = self._bits_in_condition(getattr(node.op, "condition", None)) + raise DAGCircuitError(f"expected node DAGOpNode, got {type(node)}") - new_wires = list(node.qargs) + list(node.cargs) + list(condition_bit_list) - - wire_map = {} - reverse_wire_map = {} - for wire, new_wire in zip(wires, new_wires): - wire_map[wire] = new_wire - reverse_wire_map[new_wire] = wire - self._check_wiremap_validity(wire_map, wires, self.input_map) - - if condition_bit_list: - # If we are replacing a conditional node, map input dag through - # wire_map to verify that it will not modify any of the conditioning - # bits. - condition_bits = set(condition_bit_list) - - for op_node in in_dag.op_nodes(): - mapped_cargs = {wire_map[carg] for carg in op_node.cargs} + if isinstance(wires, dict): + wire_map = wires + else: + wires = input_dag.wires if wires is None else wires + node_cargs = set(node.cargs) + node_wire_order = list(node.qargs) + list(node.cargs) + # If we're not propagating it, the number of wires in the input DAG should include the + # condition as well. + if not propagate_condition: + node_wire_order += [ + bit + for bit in self._bits_in_condition(getattr(node.op, "condition", None)) + if bit not in node_cargs + ] + if len(wires) != len(node_wire_order): + raise DAGCircuitError( + f"bit mapping invalid: expected {len(node_wire_order)}, got {len(wires)}" + ) + wire_map = dict(zip(wires, node_wire_order)) + if len(wire_map) != len(node_wire_order): + raise DAGCircuitError("bit mapping invalid: some bits have duplicate entries") + for input_dag_wire, our_wire in wire_map.items(): + if our_wire not in self.input_map: + raise DAGCircuitError(f"bit mapping invalid: {our_wire} is not in this DAG") + # Support mapping indiscriminately between Qubit and AncillaQubit, etc. + check_type = Qubit if isinstance(our_wire, Qubit) else Clbit + if not isinstance(input_dag_wire, check_type): + raise DAGCircuitError( + f"bit mapping invalid: {input_dag_wire} and {our_wire} are different bit types" + ) - if condition_bits & mapped_cargs: + reverse_wire_map = {b: a for a, b in wire_map.items()} + creg_map = {} + op_condition = getattr(node.op, "condition", None) + if propagate_condition and op_condition is not None: + in_dag = input_dag.copy_empty_like() + target, value = op_condition + if isinstance(target, Clbit): + new_target = reverse_wire_map.get(target, Clbit()) + if new_target not in wire_map: + in_dag.add_clbits([new_target]) + wire_map[new_target], reverse_wire_map[target] = target, new_target + target_cargs = {new_target} + else: # ClassicalRegister + mapped_bits = [reverse_wire_map.get(bit, Clbit()) for bit in target] + for ours, theirs in zip(target, mapped_bits): + # Update to any new dummy bits we just created to the wire maps. + wire_map[theirs], reverse_wire_map[ours] = ours, theirs + new_target = ClassicalRegister(bits=mapped_bits) + creg_map[new_target.name] = target + in_dag.add_creg(new_target) + target_cargs = set(new_target) + new_condition = (new_target, value) + for in_node in input_dag.topological_op_nodes(): + if getattr(in_node.op, "condition", None) is not None: + raise DAGCircuitError( + "cannot propagate a condition to an element that already has one" + ) + if target_cargs.intersection(in_node.cargs): + # This is for backwards compatibility with early versions of the method, as it is + # a tested part of the API. In the newer model of a condition being an integral + # part of the operation (not a separate property to be copied over), this error + # is overzealous, because it forbids a custom instruction from implementing the + # condition within its definition rather than at the top level. raise DAGCircuitError( - "Mapped DAG would alter clbits on which it would be conditioned." + "cannot propagate a condition to an element that acts on those bits" ) + new_op = copy.copy(in_node.op) + new_op.condition = new_condition + in_dag.apply_operation_back(new_op, in_node.qargs, in_node.cargs) + else: + in_dag = input_dag + + if in_dag.global_phase: + self.global_phase += in_dag.global_phase # Add wire from pred to succ if no ops on mapped wire on ``in_dag`` # retworkx's substitute_node_with_subgraph lacks the DAGCircuit @@ -1208,11 +1158,10 @@ def substitute_node_with_dag(self, node, input_dag, wires=None): # edges prior to calling substitute_node_with_subgraph and set the # edge_map_fn callback kwarg to skip these edges when they're # encountered. - for wire in wires: - input_node = in_dag.input_map[wire] - output_node = in_dag.output_map[wire] + for in_dag_wire, self_wire in wire_map.items(): + input_node = in_dag.input_map[in_dag_wire] + output_node = in_dag.output_map[in_dag_wire] if in_dag._multi_graph.has_edge(input_node._node_id, output_node._node_id): - self_wire = wire_map[wire] pred = self._multi_graph.find_predecessors_by_edge( node._node_id, lambda edge, wire=self_wire: edge == wire )[0] @@ -1227,7 +1176,7 @@ def filter_fn(node): if not isinstance(node, DAGOpNode): return False for qarg in node.qargs: - if qarg not in wire_set: + if qarg not in wire_map: return False return True @@ -1268,16 +1217,11 @@ def edge_weight_map(wire): for old_node_index, new_node_index in node_map.items(): # update node attributes old_node = in_dag._multi_graph[old_node_index] - condition = self._map_condition( - wire_map, getattr(old_node.op, "condition", None), self.cregs.values() - ) - m_qargs = [wire_map.get(x, x) for x in old_node.qargs] - m_cargs = [wire_map.get(x, x) for x in old_node.cargs] - new_node = DAGOpNode(old_node.op, qargs=m_qargs, cargs=m_cargs) + m_op = self._map_condition_with_import(old_node.op, wire_map, creg_map) + m_qargs = [wire_map[x] for x in old_node.qargs] + m_cargs = [wire_map[x] for x in old_node.cargs] + new_node = DAGOpNode(m_op, qargs=m_qargs, cargs=m_cargs) new_node._node_id = new_node_index - if condition and not isinstance(new_node.op, Instruction): - raise DAGCircuitError("Cannot add a condition on a generic Operation.") - new_node.op.condition = condition self._multi_graph[new_node_index] = new_node self._increment_op(new_node.op) diff --git a/qiskit/dagcircuit/dagdependency.py b/qiskit/dagcircuit/dagdependency.py index 5ed41ca6f800..f9fb8b758ef3 100644 --- a/qiskit/dagcircuit/dagdependency.py +++ b/qiskit/dagcircuit/dagdependency.py @@ -28,6 +28,24 @@ from qiskit.circuit.commutation_checker import CommutationChecker +# ToDo: DagDependency needs to be refactored: +# - Removing redundant and template-optimization-specific fields from DAGDepNode: +# As a minimum, we should remove direct predecessors and direct successors, +# as these can be queried directly from the underlying graph data structure. +# We should also remove fields that are specific to template-optimization pass. +# for instance lists of transitive predecessors and successors (moreover, we +# should investigate the possibility of using rx.descendants() instead of caching). +# - We should rethink the API of DAGDependency: +# Currently, most of the functions (such as "add_op_node", "_update_edges", etc.) +# are only used when creating a new DAGDependency from another representation of a circuit. +# A part of the reason is that doing local changes to DAGDependency is tricky: +# as an example, suppose that DAGDependency contains a gate A such that A = B * C; +# in general we cannot simply replace A by the pair B, C, as there may be +# other nodes that commute with A but do not commute with B or C, so we would need to +# change DAGDependency more globally to support that. In other words, we should rethink +# what DAGDependency can be good for and rethink that API accordingly. + + class DAGDependency: """Object to represent a quantum circuit as a directed acyclic graph via operation dependencies (i.e. lack of commutation). @@ -454,6 +472,7 @@ def _gather_succ(self, node_id, direct_succ): the lists of direct successors are put into a single one """ gather = self._multi_graph + gather.get_node_data(node_id).successors = [] for d_succ in direct_succ: gather.get_node_data(node_id).successors.append([d_succ]) succ = gather.get_node_data(d_succ).successors @@ -476,32 +495,52 @@ def _list_pred(self, node_id): def _update_edges(self): """ - Function to verify the commutation relation and reachability - for predecessors, the nodes do not commute and - if the predecessor is reachable. Update the DAGDependency by - introducing edges and predecessors(attribute) + Updates DagDependency by adding edges to the newly added node (max_node) + from the previously added nodes. + For each previously added node (prev_node), an edge from prev_node to max_node + is added if max_node is "reachable" from prev_node (this means that the two + nodes can be made adjacent by commuting them with other nodes), but the two nodes + themselves do not commute. + + Currently. this function is only used when creating a new DAGDependency from another + representation of a circuit, and hence there are no removed nodes (this is why + iterating over all nodes is fine). """ max_node_id = len(self._multi_graph) - 1 - max_node = self._multi_graph.get_node_data(max_node_id) + max_node = self.get_node(max_node_id) - for current_node_id in range(0, max_node_id): - self._multi_graph.get_node_data(current_node_id).reachable = True - # Check the commutation relation with reachable node, it adds edges if it does not commute + reachable = [True] * max_node_id + + # Analyze nodes in the reverse topological order. + # An improvement to the original algorithm is to consider only direct predecessors + # and to avoid constructing the lists of forward and backward reachable predecessors + # for every node when not required. for prev_node_id in range(max_node_id - 1, -1, -1): - prev_node = self._multi_graph.get_node_data(prev_node_id) - if prev_node.reachable and not self.comm_checker.commute( - prev_node.op, - prev_node.qargs, - prev_node.cargs, - max_node.op, - max_node.qargs, - max_node.cargs, - ): - self._multi_graph.add_edge(prev_node_id, max_node_id, {"commute": False}) - self._list_pred(max_node_id) - list_predecessors = self._multi_graph.get_node_data(max_node_id).predecessors - for pred_id in list_predecessors: - self._multi_graph.get_node_data(pred_id).reachable = False + if reachable[prev_node_id]: + prev_node = self.get_node(prev_node_id) + + if not self.comm_checker.commute( + prev_node.op, + prev_node.qargs, + prev_node.cargs, + max_node.op, + max_node.qargs, + max_node.cargs, + ): + # If prev_node and max_node do not commute, then we add an edge + # between the two, and mark all direct predecessors of prev_node + # as not reaching max_node. + self._multi_graph.add_edge(prev_node_id, max_node_id, {"commute": False}) + + predecessor_ids = self._multi_graph.predecessor_indices(prev_node_id) + for predecessor_id in predecessor_ids: + reachable[predecessor_id] = False + else: + # If prev_node cannot reach max_node, then none of its predecessors can + # reach max_node either. + predecessor_ids = self._multi_graph.predecessor_indices(prev_node_id) + for predecessor_id in predecessor_ids: + reachable[predecessor_id] = False def _add_successors(self): """ @@ -518,6 +557,21 @@ def _add_successors(self): merge_no_duplicates(*self._multi_graph.get_node_data(node_id).successors) ) + def _add_predecessors(self): + """ + Use _gather_pred and merge_no_duplicates to create the list of predecessors + for each node. Update DAGDependency 'predecessors' attribute. It has to + be used when the DAGDependency() object is complete (i.e. converters). + """ + for node_id in range(0, len(self._multi_graph)): + direct_predecessors = self.direct_predecessors(node_id) + + self._multi_graph = self._gather_pred(node_id, direct_predecessors) + + self._multi_graph.get_node_data(node_id).predecessors = list( + merge_no_duplicates(*self._multi_graph.get_node_data(node_id).predecessors) + ) + def copy(self): """ Function to copy a DAGDependency object. diff --git a/qiskit/extensions/unitary.py b/qiskit/extensions/unitary.py index b47bd80c7017..60f62f674a38 100644 --- a/qiskit/extensions/unitary.py +++ b/qiskit/extensions/unitary.py @@ -27,7 +27,6 @@ from qiskit.quantum_info.operators.predicates import matrix_equal from qiskit.quantum_info.operators.predicates import is_unitary_matrix from qiskit.quantum_info.synthesis.one_qubit_decompose import OneQubitEulerDecomposer -from qiskit.quantum_info.synthesis.qsd import qs_decomposition from qiskit.quantum_info.synthesis.two_qubit_decompose import two_qubit_cnot_decompose from qiskit.extensions.exceptions import ExtensionError @@ -135,6 +134,10 @@ def _define(self): elif self.num_qubits == 2: self.definition = two_qubit_cnot_decompose(self.to_matrix()) else: + from qiskit.quantum_info.synthesis.qsd import ( # pylint: disable=cyclic-import + qs_decomposition, + ) + self.definition = qs_decomposition(self.to_matrix()) def control(self, num_ctrl_qubits=1, label=None, ctrl_state=None): diff --git a/qiskit/primitives/__init__.py b/qiskit/primitives/__init__.py index bd00dedc711f..58ee1f41d27d 100644 --- a/qiskit/primitives/__init__.py +++ b/qiskit/primitives/__init__.py @@ -46,11 +46,13 @@ .. autosummary:: :toctree: ../stubs/ + BasePrimitiveResult EstimatorResult SamplerResult """ from .base_estimator import BaseEstimator +from .base_result import BasePrimitiveResult from .base_sampler import BaseSampler from .estimator import Estimator from .estimator_result import EstimatorResult diff --git a/qiskit/primitives/base_estimator.py b/qiskit/primitives/base_estimator.py index 10be880f3f37..53e8d3e97792 100644 --- a/qiskit/primitives/base_estimator.py +++ b/qiskit/primitives/base_estimator.py @@ -19,57 +19,41 @@ Estimator class estimates expectation values of quantum circuits and observables. -An estimator object is initialized with multiple quantum circuits and observables -and users can specify pairs of quantum circuits and observables -to estimate the expectation values. - -An estimator is initialized with the following elements. +An estimator is initialized with an empty parameter set. The estimator is used to +create a :class:`~qiskit.providers.JobV1`, via the +:meth:`qiskit.primitives.Estimator.run()` method. This method is called +with the following parameters * quantum circuits (:math:`\psi_i(\theta)`): list of (parameterized) quantum circuits - (a list of :class:`~qiskit.circuit.QuantumCircuit`)) - -* observables (:math:`H_j`): a list of :class:`~qiskit.quantum_info.SparsePauliOp`. - -The estimator is called with the following inputs. - -* circuits: a list of the quantum circuits. + (a list of :class:`~qiskit.circuit.QuantumCircuit` objects). -* observables: a list of the observables. - -* parameters: a list of parameters of the quantum circuits. - (:class:`~qiskit.circuit.parametertable.ParameterView` or - a list of :class:`~qiskit.circuit.Parameter`). +* observables (:math:`H_j`): a list of :class:`~qiskit.quantum_info.SparsePauliOp` + objects. * parameter values (:math:`\theta_k`): list of sets of values - to be bound to the parameters of the quantum circuits. - (list of list of float) + to be bound to the parameters of the quantum circuits + (list of list of float). -The output is an :class:`~qiskit.primitives.EstimatorResult` which contains a list of -expectation values plus optional metadata like confidence intervals for the estimation. +The method returns a :class:`~qiskit.providers.JobV1` object, calling +:meth:`qiskit.providers.JobV1.result()` yields the +a list of expectation values plus optional metadata like confidence intervals for +the estimation. .. math:: \langle\psi_i(\theta_k)|H_j|\psi_i(\theta_k)\rangle - -The estimator object is expected to be ``close()`` d after use or -accessed inside "with" context -and the objects are called with parameter values and run options -(e.g., ``shots`` or number of shots). - -Here is an example of how estimator is used. +Here is an example of how the estimator is used. .. code-block:: python + from qiskit.primitives import Estimator from qiskit.circuit.library import RealAmplitudes from qiskit.quantum_info import SparsePauliOp psi1 = RealAmplitudes(num_qubits=2, reps=2) psi2 = RealAmplitudes(num_qubits=2, reps=3) - params1 = psi1.parameters - params2 = psi2.parameters - H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)]) H2 = SparsePauliOp.from_list([("IZ", 1)]) H3 = SparsePauliOp.from_list([("ZI", 1), ("ZZ", 1)]) @@ -81,22 +65,16 @@ estimator = Estimator() # calculate [ ] - result = estimator.run([psi1], [H1], [theta1]).result() - print(result) - - # calculate [ ] - result2 = estimator.run([psi2], [H1], [theta2]).result() - print(result2) - - # calculate [ , ] - result3 = estimator.run([psi1, psi1], [H2, H3], [theta1]*2).result() - print(result3) + job = estimator.run([psi1], [H1], [theta1]) + job_result = job.result() # It will block until the job finishes. + print(f"The primitive-job finished with result {job_result}")) # calculate [ , # , # ] - result4 = estimator.run([psi1, psi2, psi1], [H1, H2, H3], [theta1, theta2, theta3]).result() - print(result4) + job2 = estimator.run([psi1, psi2, psi1], [H1, H2, H3], [theta1, theta2, theta3]) + job_result = job2.result() + print(f"The primitive-job finished with result {job_result}") """ from __future__ import annotations @@ -110,7 +88,6 @@ from qiskit.circuit import Parameter, QuantumCircuit from qiskit.circuit.parametertable import ParameterView -from qiskit.exceptions import QiskitError from qiskit.opflow import PauliSumOp from qiskit.providers import JobV1 as Job from qiskit.providers import Options @@ -119,6 +96,7 @@ from qiskit.utils.deprecation import deprecate_arguments, deprecate_function from .estimator_result import EstimatorResult +from .utils import _circuit_key class BaseEstimator(ABC): @@ -134,7 +112,7 @@ def __init__( circuits: Iterable[QuantumCircuit] | QuantumCircuit | None = None, observables: Iterable[SparsePauliOp] | SparsePauliOp | None = None, parameters: Iterable[Iterable[Parameter]] | None = None, - run_options: dict | None = None, + options: dict | None = None, ): """ Creating an instance of an Estimator, or using one in a ``with`` context opens a session that @@ -147,10 +125,10 @@ def __init__( will be bound. Defaults to ``[circ.parameters for circ in circuits]`` The indexing is such that ``parameters[i, j]`` is the j-th formal parameter of ``circuits[i]``. - run_options: runtime options. + options: Default options. Raises: - QiskitError: For mismatch of circuits and parameters list. + ValueError: For mismatch of circuits and parameters list. """ if circuits is not None or observables is not None or parameters is not None: warn( @@ -170,7 +148,7 @@ def __init__( # To guarantee that they exist as instance variable. # With only dynamic set, the python will not know if the attribute exists or not. - self._circuit_ids: dict[int, int] = self._circuit_ids + self._circuit_ids: dict[tuple, int] = self._circuit_ids self._observable_ids: dict[int, int] = self._observable_ids if parameters is None: @@ -178,19 +156,19 @@ def __init__( else: self._parameters = [ParameterView(par) for par in parameters] if len(self._parameters) != len(self._circuits): - raise QiskitError( + raise ValueError( f"Different number of parameters ({len(self._parameters)}) and " f"circuits ({len(self._circuits)})" ) for i, (circ, params) in enumerate(zip(self._circuits, self._parameters)): if circ.num_parameters != len(params): - raise QiskitError( + raise ValueError( f"Different numbers of parameters of {i}-th circuit: " f"expected {circ.num_parameters}, actual {len(params)}." ) self._run_options = Options() - if run_options is not None: - self._run_options.update_options(**run_options) + if options is not None: + self._run_options.update_options(**options) def __new__( cls, @@ -205,9 +183,9 @@ def __new__( self._circuit_ids = {} elif isinstance(circuits, Iterable): circuits = copy(circuits) - self._circuit_ids = {id(circuit): i for i, circuit in enumerate(circuits)} + self._circuit_ids = {_circuit_key(circuit): i for i, circuit in enumerate(circuits)} else: - self._circuit_ids = {id(circuits): 0} + self._circuit_ids = {_circuit_key(circuits): 0} if observables is None: self._observable_ids = {} elif isinstance(observables, Iterable): @@ -265,15 +243,15 @@ def parameters(self) -> tuple[ParameterView, ...]: return tuple(self._parameters) @property - def run_options(self) -> Options: + def options(self) -> Options: """Return options values for the estimator. Returns: - run_options + options """ return self._run_options - def set_run_options(self, **fields) -> BaseEstimator: + def set_options(self, **fields) -> BaseEstimator: """Set options values for the estimator. Args: @@ -325,8 +303,8 @@ def __call__( EstimatorResult: The result of the estimator. Raises: - QiskitError: For mismatch of object id. - QiskitError: For mismatch of length of Sequence. + ValueError: For mismatch of object id. + ValueError: For mismatch of length of Sequence. """ # Support ndarray @@ -335,13 +313,13 @@ def __call__( # Allow objects circuits = [ - self._circuit_ids.get(id(circuit)) + self._circuit_ids.get(_circuit_key(circuit)) if not isinstance(circuit, (int, np.integer)) else circuit for circuit in circuits ] if any(circuit is None for circuit in circuits): - raise QiskitError( + raise ValueError( "The circuits passed when calling estimator is not one of the circuits used to " "initialize the session." ) @@ -352,7 +330,7 @@ def __call__( for observable in observables ] if any(observable is None for observable in observables): - raise QiskitError( + raise ValueError( "The observables passed when calling estimator is not one of the observables used to " "initialize the session." ) @@ -364,7 +342,7 @@ def __call__( if parameter_values is None: for i in circuits: if len(self._circuits[i].parameters) != 0: - raise QiskitError( + raise ValueError( f"The {i}-th circuit is parameterised," "but parameter values are not given." ) @@ -372,19 +350,19 @@ def __call__( # Validation if len(circuits) != len(observables): - raise QiskitError( + raise ValueError( f"The number of circuits ({len(circuits)}) does not match " f"the number of observables ({len(observables)})." ) if len(circuits) != len(parameter_values): - raise QiskitError( + raise ValueError( f"The number of circuits ({len(circuits)}) does not match " f"the number of parameter value sets ({len(parameter_values)})." ) for i, value in zip(circuits, parameter_values): if len(value) != len(self._parameters[i]): - raise QiskitError( + raise ValueError( f"The number of values ({len(value)}) does not match " f"the number of parameters ({len(self._parameters[i])}) for the {i}-th circuit." ) @@ -393,23 +371,23 @@ def __call__( circuit_num_qubits = self.circuits[circ_i].num_qubits observable_num_qubits = self.observables[obs_i].num_qubits if circuit_num_qubits != observable_num_qubits: - raise QiskitError( + raise ValueError( f"The number of qubits of the {circ_i}-th circuit ({circuit_num_qubits}) does " f"not match the number of qubits of the {obs_i}-th observable " f"({observable_num_qubits})." ) if max(circuits) >= len(self.circuits): - raise QiskitError( + raise ValueError( f"The number of circuits is {len(self.circuits)}, " f"but the index {max(circuits)} is given." ) if max(observables) >= len(self.observables): - raise QiskitError( + raise ValueError( f"The number of circuits is {len(self.observables)}, " f"but the index {max(observables)} is given." ) - run_opts = copy(self.run_options) + run_opts = copy(self.options) run_opts.update_options(**run_options) return self._call( @@ -424,7 +402,6 @@ def run( circuits: Sequence[QuantumCircuit], observables: Sequence[BaseOperator | PauliSumOp], parameter_values: Sequence[Sequence[float]] | None = None, - parameters: Sequence[Sequence[Parameter]] | None = None, **run_options, ) -> Job: """Run the job of the estimation of expectation value(s). @@ -452,17 +429,13 @@ def run( circuits: the list of circuit objects. observables: the list of observable objects. parameter_values: concrete parameters to be bound. - parameters: Parameters of quantum circuits, specifying the order in which values - will be bound. Defaults to ``[circ.parameters for circ in circuits]`` - The indexing is such that ``parameters[i, j]`` is the j-th formal parameter of - ``circuits[i]``. run_options: runtime options used for circuit execution. Returns: The job object of EstimatorResult. Raises: - QiskitError: Invalid arguments are given. + ValueError: Invalid arguments are given. """ # Support ndarray if isinstance(parameter_values, np.ndarray): @@ -472,62 +445,45 @@ def run( if parameter_values is None: for i, circuit in enumerate(circuits): if circuit.num_parameters != 0: - raise QiskitError( + raise ValueError( f"The {i}-th circuit is parameterised," "but parameter values are not given." ) parameter_values = [[]] * len(circuits) - if parameters is None: - parameter_views = [circ.parameters for circ in circuits] - else: - parameter_views = [ParameterView(par) for par in parameters] - if len(self._parameters) != len(self._circuits): - raise QiskitError( - f"Different number of parameters ({len(self._parameters)}) and " - f"circuits ({len(self._circuits)})" - ) - for i, (circ, params) in enumerate(zip(self._circuits, self._parameters)): - if circ.num_parameters != len(params): - raise QiskitError( - f"Different numbers of parameters of {i}-th circuit: " - f"expected {circ.num_parameters}, actual {len(params)}." - ) - # Validation if len(circuits) != len(observables): - raise QiskitError( + raise ValueError( f"The number of circuits ({len(circuits)}) does not match " f"the number of observables ({len(observables)})." ) if len(circuits) != len(parameter_values): - raise QiskitError( + raise ValueError( f"The number of circuits ({len(circuits)}) does not match " f"the number of parameter value sets ({len(parameter_values)})." ) for i, (circuit, parameter_value) in enumerate(zip(circuits, parameter_values)): if len(parameter_value) != circuit.num_parameters: - raise QiskitError( + raise ValueError( f"The number of values ({len(parameter_value)}) does not match " f"the number of parameters ({circuit.num_parameters}) for the {i}-th circuit." ) for i, (circuit, observable) in enumerate(zip(circuits, observables)): if circuit.num_qubits != observable.num_qubits: - raise QiskitError( + raise ValueError( f"The number of qubits of the {i}-th circuit ({circuit.num_qubits}) does " f"not match the number of qubits of the {i}-th observable " f"({observable.num_qubits})." ) - run_opts = copy(self.run_options) + run_opts = copy(self.options) run_opts.update_options(**run_options) return self._run( circuits, observables, parameter_values, - parameter_views, **run_opts.__dict__, ) @@ -548,7 +504,6 @@ def _run( circuits: Sequence[QuantumCircuit], observables: Sequence[BaseOperator | PauliSumOp], parameter_values: Sequence[Sequence[float]], - parameters: list[ParameterView], **run_options, ) -> Job: raise NotImplementedError( diff --git a/qiskit/primitives/base_result.py b/qiskit/primitives/base_result.py new file mode 100644 index 000000000000..2c23ea1d7b59 --- /dev/null +++ b/qiskit/primitives/base_result.py @@ -0,0 +1,87 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. +""" +Primitive result abstract base class +""" + +from __future__ import annotations + +from abc import ABC +from collections.abc import Iterator, Sequence +from dataclasses import fields +from typing import Any, Dict + +from numpy import ndarray + + +ExperimentData = Dict[str, Any] + + +class BasePrimitiveResult(ABC): + """Primitive result abstract base class. + + Base class for Primitive results meant to provide common functionality to all inheriting + result dataclasses. + """ + + def __post_init__(self) -> None: + """ + Verify that all fields in any inheriting result dataclass are consistent, after + instantiation, with the number of experiments being represented. + + This magic method is specific of `dataclasses.dataclass`, therefore all inheriting + classes must have this decorator. + + Raises: + TypeError: If one of the data fields is not a Sequence or ``numpy.ndarray``. + ValueError: Inconsistent number of experiments across data fields. + """ + for value in self._field_values: # type: Sequence + # TODO: enforce all data fields to be tuples instead of sequences + if not isinstance(value, (Sequence, ndarray)) or isinstance(value, (str, bytes)): + raise TypeError( + f"Expected sequence or `numpy.ndarray`, provided {type(value)} instead." + ) + if len(value) != self.num_experiments: + raise ValueError("Inconsistent number of experiments across data fields.") + + @property # TODO: functools.cached_property when py37 is droppped + def num_experiments(self) -> int: + """Number of experiments in any inheriting result dataclass.""" + value: Sequence = self._field_values[0] + return len(value) + + @property # TODO: functools.cached_property when py37 is droppped + def experiments(self) -> tuple[ExperimentData, ...]: + """Experiment data dicts in any inheriting result dataclass.""" + return tuple(self._generate_experiments()) + + def _generate_experiments(self) -> Iterator[ExperimentData]: + """Generate experiment data dicts in any inheriting result dataclass.""" + names: tuple[str, ...] = self._field_names + for values in zip(*self._field_values): + yield dict(zip(names, values)) + + def decompose(self) -> Iterator[BasePrimitiveResult]: + """Generate single experiment result objects from self.""" + for values in zip(*self._field_values): + yield self.__class__(*[(v,) for v in values]) + + @property # TODO: functools.cached_property when py37 is droppped + def _field_names(self) -> tuple[str, ...]: + """Tuple of field names in any inheriting result dataclass.""" + return tuple(field.name for field in fields(self)) + + @property # TODO: functools.cached_property when py37 is droppped + def _field_values(self) -> tuple: + """Tuple of field values in any inheriting result dataclass.""" + return tuple(getattr(self, name) for name in self._field_names) diff --git a/qiskit/primitives/base_sampler.py b/qiskit/primitives/base_sampler.py index 1cb8da2a39dc..f6eb3380da6f 100644 --- a/qiskit/primitives/base_sampler.py +++ b/qiskit/primitives/base_sampler.py @@ -16,76 +16,60 @@ Sampler class calculates probabilities or quasi-probabilities of bitstrings from quantum circuits. -A sampler is initialized with the following elements. +A sampler is initialized with an empty parameter set. The sampler is used to +create a :class:`~qiskit.providers.JobV1`, via the :meth:`qiskit.primitives.Sampler.run()` +method. This method is called with the following parameters * quantum circuits (:math:`\psi_i(\theta)`): list of (parameterized) quantum circuits. - (a list of :class:`~qiskit.circuit.QuantumCircuit`)) - -* parameters: a list of parameters of the quantum circuits. - (:class:`~qiskit.circuit.parametertable.ParameterView` or - a list of :class:`~qiskit.circuit.Parameter`). - -The sampler is run with the following inputs. - -* circuits: a list of QuantumCircuit objects to evaluate. + (a list of :class:`~qiskit.circuit.QuantumCircuit` objects) * parameter values (:math:`\theta_k`): list of sets of parameter values to be bound to the parameters of the quantum circuits. (list of list of float) -The output is a :class:`~qiskit.primitives.SamplerResult` which contains probabilities -or quasi-probabilities of bitstrings, +The method returns a :class:`~qiskit.providers.JobV1` object, calling +:meth:`qiskit.providers.JobV1.result()` yields a :class:`~qiskit.primitives.SamplerResult` +object, which contains probabilities or quasi-probabilities of bitstrings, plus optional metadata like error bars in the samples. -The sampler object is expected to be closed after use or -accessed within "with" context -and the objects are called with parameter values and run options -(e.g., ``shots`` or number of shots). - Here is an example of how sampler is used. .. code-block:: python + from qiskit.primitives import Sampler from qiskit import QuantumCircuit from qiskit.circuit.library import RealAmplitudes + # a Bell circuit bell = QuantumCircuit(2) bell.h(0) bell.cx(0, 1) bell.measure_all() - # executes a Bell circuit - sampler = Sampler() - result = sampler.run(circuits=[bell]).result() - print([q.binary_probabilities() for q in result.quasi_dists]) - - # executes three Bell circuits - # Argument `parameters` is optional. - sampler = Sampler() - result = sampler.run([bell, bell, bell]).result() - print([q.binary_probabilities() for q in result.quasi_dists]) - - # parameterized circuit + # two parameterized circuits pqc = RealAmplitudes(num_qubits=2, reps=2) pqc.measure_all() pqc2 = RealAmplitudes(num_qubits=2, reps=3) pqc2.measure_all() theta1 = [0, 1, 1, 2, 3, 5] - theta2 = [1, 2, 3, 4, 5, 6] - theta3 = [0, 1, 2, 3, 4, 5, 6, 7] + theta2 = [0, 1, 2, 3, 4, 5, 6, 7] + # initialization of the sampler sampler = Sampler() - result = sampler.run([pqc, pqc, pqc2], [theta1, theta2, theta3]).result() - - # result of pqc(theta1) - print(result.quasi_dists[0].binary_probabilities()) - # result of pqc(theta2) - print(result.quasi_dists[1].binary_probabilities()) - - # result of pqc2(theta3) - print(result.quasi_dists[2].binary_probabilities()) + # Sampler runs a job on the Bell circuit + job = sampler.run(circuits=[bell], parameter_values=[[]], parameters=[[]]) + job_result = job.result() + print([q.binary_probabilities() for q in job_result.quasi_dists]) + + # Sampler runs a job on the parameterized circuits + job2 = sampler.run( + circuits=[pqc, pqc2], + parameter_values=[theta1, theta2], + parameters=[pqc.parameters, pqc2.parameters]) + job_result = job2.result() + print([q.binary_probabilities() for q in job_result.quasi_dists]) """ from __future__ import annotations @@ -99,13 +83,12 @@ from qiskit.circuit import Parameter, QuantumCircuit from qiskit.circuit.parametertable import ParameterView -from qiskit.exceptions import QiskitError from qiskit.providers import JobV1 as Job from qiskit.providers import Options from qiskit.utils.deprecation import deprecate_arguments, deprecate_function from .sampler_result import SamplerResult -from .utils import final_measurement_mapping +from .utils import _circuit_key, final_measurement_mapping class BaseSampler(ABC): @@ -120,17 +103,17 @@ def __init__( self, circuits: Iterable[QuantumCircuit] | QuantumCircuit | None = None, parameters: Iterable[Iterable[Parameter]] | None = None, - run_options: dict | None = None, + options: dict | None = None, ): """ Args: circuits: Quantum circuits to be executed. parameters: Parameters of each of the quantum circuits. Defaults to ``[circ.parameters for circ in circuits]``. - run_options: Default runtime options. + options: Default options. Raises: - QiskitError: For mismatch of circuits and parameters list. + ValueError: For mismatch of circuits and parameters list. """ if circuits is not None or parameters is not None: warn( @@ -146,20 +129,20 @@ def __init__( # To guarantee that they exist as instance variable. # With only dynamic set, the python will not know if the attribute exists or not. - self._circuit_ids: dict[int, int] = self._circuit_ids + self._circuit_ids: dict[tuple, int] = self._circuit_ids if parameters is None: self._parameters = [circ.parameters for circ in self._circuits] else: self._parameters = [ParameterView(par) for par in parameters] if len(self._parameters) != len(self._circuits): - raise QiskitError( + raise ValueError( f"Different number of parameters ({len(self._parameters)}) " f"and circuits ({len(self._circuits)})" ) self._run_options = Options() - if run_options is not None: - self._run_options.update_options(**run_options) + if options is not None: + self._run_options.update_options(**options) def __new__( cls, @@ -173,9 +156,9 @@ def __new__( self._circuit_ids = {} elif isinstance(circuits, Iterable): circuits = copy(circuits) - self._circuit_ids = {id(circuit): i for i, circuit in enumerate(circuits)} + self._circuit_ids = {_circuit_key(circuit): i for i, circuit in enumerate(circuits)} else: - self._circuit_ids = {id(circuits): 0} + self._circuit_ids = {_circuit_key(circuits): 0} return self @deprecate_function( @@ -217,15 +200,15 @@ def parameters(self) -> tuple[ParameterView, ...]: return tuple(self._parameters) @property - def run_options(self) -> Options: + def options(self) -> Options: """Return options values for the estimator. Returns: - run_options + options """ return self._run_options - def set_run_options(self, **fields) -> BaseSampler: + def set_options(self, **fields): """Set options values for the estimator. Args: @@ -258,8 +241,8 @@ def __call__( ``parameter_values[i]``. Raises: - QiskitError: For mismatch of object id. - QiskitError: For mismatch of length of Sequence. + ValueError: For mismatch of object id. + ValueError: For mismatch of length of Sequence. """ # Support ndarray if isinstance(parameter_values, np.ndarray): @@ -267,13 +250,13 @@ def __call__( # Allow objects circuits = [ - self._circuit_ids.get(id(circuit)) + self._circuit_ids.get(_circuit_key(circuit)) if not isinstance(circuit, (int, np.integer)) else circuit for circuit in circuits ] if any(circuit is None for circuit in circuits): - raise QiskitError( + raise ValueError( "The circuits passed when calling sampler is not one of the circuits used to " "initialize the session." ) @@ -284,7 +267,7 @@ def __call__( if parameter_values is None: for i in circuits: if len(self._circuits[i].parameters) != 0: - raise QiskitError( + raise ValueError( f"The {i}-th circuit ({len(circuits)}) is parameterised," "but parameter values are not given." ) @@ -292,24 +275,24 @@ def __call__( # Validation if len(circuits) != len(parameter_values): - raise QiskitError( + raise ValueError( f"The number of circuits ({len(circuits)}) does not match " f"the number of parameter value sets ({len(parameter_values)})." ) for i, value in zip(circuits, parameter_values): if len(value) != len(self._parameters[i]): - raise QiskitError( + raise ValueError( f"The number of values ({len(value)}) does not match " f"the number of parameters ({len(self._parameters[i])}) for the {i}-th circuit." ) if max(circuits) >= len(self.circuits): - raise QiskitError( + raise ValueError( f"The number of circuits is {len(self.circuits)}, " f"but the index {max(circuits)} is given." ) - run_opts = copy(self.run_options) + run_opts = copy(self.options) run_opts.update_options(**run_options) return self._call( @@ -322,7 +305,6 @@ def run( self, circuits: Sequence[QuantumCircuit], parameter_values: Sequence[Sequence[float]] | None = None, - parameters: Sequence[Sequence[Parameter]] | None = None, **run_options, ) -> Job: """Run the job of the sampling of bitstrings. @@ -330,8 +312,6 @@ def run( Args: circuits: the list of circuit objects. parameter_values: Parameters to be bound to the circuit. - parameters: Parameters of each of the quantum circuits. - Defaults to ``[circ.parameters for circ in circuits]``. run_options: Backend runtime options used for circuit execution. Returns: @@ -339,7 +319,7 @@ def run( ``circuits[i]`` evaluated with parameters bound as ``parameter_values[i]``. Raises: - QiskitError: Invalid arguments are given. + ValueError: Invalid arguments are given. """ # Support ndarray if isinstance(parameter_values, np.ndarray): @@ -349,45 +329,29 @@ def run( if parameter_values is None: for i, circuit in enumerate(circuits): if circuit.num_parameters != 0: - raise QiskitError( + raise ValueError( f"The {i}-th circuit ({len(circuits)}) is parameterised," "but parameter values are not given." ) parameter_values = [[]] * len(circuits) - if parameters is None: - parameter_views = [circ.parameters for circ in circuits] - else: - parameter_views = [ParameterView(par) for par in parameters] - if len(self._parameters) != len(self._circuits): - raise QiskitError( - f"Different number of parameters ({len(self._parameters)}) and " - f"circuits ({len(self._circuits)})" - ) - for i, (circ, params) in enumerate(zip(self._circuits, self._parameters)): - if circ.num_parameters != len(params): - raise QiskitError( - f"Different numbers of parameters of {i}-th circuit: " - f"expected {circ.num_parameters}, actual {len(params)}." - ) - # Validation if len(circuits) != len(parameter_values): - raise QiskitError( + raise ValueError( f"The number of circuits ({len(circuits)}) does not match " f"the number of parameter value sets ({len(parameter_values)})." ) for i, (circuit, parameter_value) in enumerate(zip(circuits, parameter_values)): if len(parameter_value) != circuit.num_parameters: - raise QiskitError( + raise ValueError( f"The number of values ({len(parameter_value)}) does not match " f"the number of parameters ({circuit.num_parameters}) for the {i}-th circuit." ) for i, circuit in enumerate(circuits): if circuit.num_clbits == 0: - raise QiskitError( + raise ValueError( f"The {i}-th circuit does not have any classical bit. " "Sampler requires classical bits, plus measurements " "on the desired qubits." @@ -395,19 +359,18 @@ def run( mapping = final_measurement_mapping(circuit) if set(range(circuit.num_clbits)) != set(mapping.values()): - raise QiskitError( + raise ValueError( f"Some classical bits of the {i}-th circuit are not used for measurements." f" the number of classical bits ({circuit.num_clbits})," f" the used classical bits ({set(mapping.values())})." ) - run_opts = copy(self.run_options) + run_opts = copy(self.options) run_opts.update_options(**run_options) return self._run( circuits, parameter_values, - parameter_views, **run_opts.__dict__, ) @@ -426,7 +389,6 @@ def _run( self, circuits: Sequence[QuantumCircuit], parameter_values: Sequence[Sequence[float]], - parameters: Sequence[ParameterView], **run_options, ) -> Job: raise NotImplementedError( diff --git a/qiskit/primitives/estimator.py b/qiskit/primitives/estimator.py index 5fa73e00e27f..121b12abee09 100644 --- a/qiskit/primitives/estimator.py +++ b/qiskit/primitives/estimator.py @@ -21,7 +21,6 @@ import numpy as np from qiskit.circuit import Parameter, QuantumCircuit -from qiskit.circuit.parametertable import ParameterView from qiskit.exceptions import QiskitError from qiskit.opflow import PauliSumOp from qiskit.quantum_info import Statevector @@ -30,7 +29,7 @@ from .base_estimator import BaseEstimator from .estimator_result import EstimatorResult from .primitive_job import PrimitiveJob -from .utils import bound_circuit_to_instruction, init_circuit, init_observable +from .utils import _circuit_key, bound_circuit_to_instruction, init_circuit, init_observable class Estimator(BaseEstimator): @@ -54,7 +53,7 @@ def __init__( circuits: QuantumCircuit | Iterable[QuantumCircuit] | None = None, observables: BaseOperator | PauliSumOp | Iterable[BaseOperator | PauliSumOp] | None = None, parameters: Iterable[Iterable[Parameter]] | None = None, - run_options: dict | None = None, + options: dict | None = None, ): """ Args: @@ -62,7 +61,7 @@ def __init__( observables: observables to be estimated. parameters: Parameters of each of the quantum circuits. Defaults to ``[circ.parameters for circ in circuits]``. - run_options: Default runtime options. + options: Default options. Raises: QiskitError: if some classical bits are not used for measurements. @@ -81,7 +80,7 @@ def __init__( circuits=circuits, observables=observables, # type: ignore parameters=parameters, - run_options=run_options, + options=options, ) self._is_closed = False @@ -152,19 +151,19 @@ def _run( circuits: Sequence[QuantumCircuit], observables: Sequence[BaseOperator | PauliSumOp], parameter_values: Sequence[Sequence[float]], - parameters: Sequence[ParameterView], **run_options, ) -> PrimitiveJob: circuit_indices = [] - for i, circuit in enumerate(circuits): - index = self._circuit_ids.get(id(circuit)) + for circuit in circuits: + key = _circuit_key(circuit) + index = self._circuit_ids.get(key) if index is not None: circuit_indices.append(index) else: circuit_indices.append(len(self._circuits)) - self._circuit_ids[id(circuit)] = len(self._circuits) + self._circuit_ids[key] = len(self._circuits) self._circuits.append(circuit) - self._parameters.append(parameters[i]) + self._parameters.append(circuit.parameters) observable_indices = [] for observable in observables: index = self._observable_ids.get(id(observable)) diff --git a/qiskit/primitives/estimator_result.py b/qiskit/primitives/estimator_result.py index 46ea00447acc..9ac811fb6f17 100644 --- a/qiskit/primitives/estimator_result.py +++ b/qiskit/primitives/estimator_result.py @@ -18,12 +18,14 @@ from dataclasses import dataclass from typing import TYPE_CHECKING, Any +from .base_result import BasePrimitiveResult + if TYPE_CHECKING: import numpy as np @dataclass(frozen=True) -class EstimatorResult: +class EstimatorResult(BasePrimitiveResult): """Result of Estimator. .. code-block:: python diff --git a/qiskit/primitives/sampler.py b/qiskit/primitives/sampler.py index b071e6d01d90..306adecef742 100644 --- a/qiskit/primitives/sampler.py +++ b/qiskit/primitives/sampler.py @@ -21,7 +21,6 @@ import numpy as np from qiskit.circuit import Parameter, QuantumCircuit -from qiskit.circuit.parametertable import ParameterView from qiskit.exceptions import QiskitError from qiskit.quantum_info import Statevector from qiskit.result import QuasiDistribution @@ -29,7 +28,12 @@ from .base_sampler import BaseSampler from .primitive_job import PrimitiveJob from .sampler_result import SamplerResult -from .utils import bound_circuit_to_instruction, final_measurement_mapping, init_circuit +from .utils import ( + _circuit_key, + bound_circuit_to_instruction, + final_measurement_mapping, + init_circuit, +) class Sampler(BaseSampler): @@ -53,14 +57,14 @@ def __init__( self, circuits: QuantumCircuit | Iterable[QuantumCircuit] | None = None, parameters: Iterable[Iterable[Parameter]] | None = None, - run_options: dict | None = None, + options: dict | None = None, ): """ Args: circuits: circuits to be executed parameters: Parameters of each of the quantum circuits. Defaults to ``[circ.parameters for circ in circuits]``. - run_options: Default runtime options. + options: Default options. Raises: QiskitError: if some classical bits are not used for measurements. @@ -76,7 +80,7 @@ def __init__( preprocessed_circuits.append(circuit) else: preprocessed_circuits = None - super().__init__(preprocessed_circuits, parameters, run_options) + super().__init__(preprocessed_circuits, parameters, options) self._is_closed = False def _call( @@ -135,21 +139,21 @@ def _run( self, circuits: Sequence[QuantumCircuit], parameter_values: Sequence[Sequence[float]], - parameters: Sequence[ParameterView], **run_options, ) -> PrimitiveJob: circuit_indices = [] - for i, circuit in enumerate(circuits): - index = self._circuit_ids.get(id(circuit)) + for circuit in circuits: + key = _circuit_key(circuit) + index = self._circuit_ids.get(key) if index is not None: circuit_indices.append(index) else: circuit_indices.append(len(self._circuits)) - self._circuit_ids[id(circuit)] = len(self._circuits) + self._circuit_ids[key] = len(self._circuits) circuit, qargs = self._preprocess_circuit(circuit) self._circuits.append(circuit) self._qargs_list.append(qargs) - self._parameters.append(parameters[i]) + self._parameters.append(circuit.parameters) job = PrimitiveJob(self._call, circuit_indices, parameter_values, **run_options) job.submit() return job diff --git a/qiskit/primitives/sampler_result.py b/qiskit/primitives/sampler_result.py index 9581e951dc04..5dbb12d20898 100644 --- a/qiskit/primitives/sampler_result.py +++ b/qiskit/primitives/sampler_result.py @@ -20,9 +20,11 @@ from qiskit.result import QuasiDistribution +from .base_result import BasePrimitiveResult + @dataclass(frozen=True) -class SamplerResult: +class SamplerResult(BasePrimitiveResult): """Result of Sampler. .. code-block:: python diff --git a/qiskit/primitives/utils.py b/qiskit/primitives/utils.py index 36fbae8f15f9..e12e342862bf 100644 --- a/qiskit/primitives/utils.py +++ b/qiskit/primitives/utils.py @@ -15,7 +15,7 @@ from __future__ import annotations -from qiskit.circuit import ParameterExpression, QuantumCircuit, Instruction +from qiskit.circuit import Instruction, ParameterExpression, QuantumCircuit from qiskit.extensions.quantum_initializer.initializer import Initialize from qiskit.opflow import PauliSumOp from qiskit.quantum_info import SparsePauliOp, Statevector @@ -113,6 +113,36 @@ def final_measurement_mapping(circuit: QuantumCircuit) -> dict[int, int]: return mapping +def _circuit_key(circuit: QuantumCircuit, functional: bool = True) -> tuple: + """Private key function for QuantumCircuit. + + This is the workaround until :meth:`QuantumCircuit.__hash__` will be introduced. + If key collision is found, please add elements to avoid it. + + Args: + circuit: Input quantum circuit. + functional: If True, the returned key only includes functional data (i.e. execution related). + + Returns: + Composite key for circuit. + """ + functional_key: tuple = ( + circuit.num_qubits, + circuit.num_clbits, + circuit.num_parameters, + tuple( + (d.qubits, d.clbits, d.operation.name, tuple(d.operation.params)) for d in circuit.data + ), + None if circuit._op_start_times is None else tuple(circuit._op_start_times), + ) + if functional: + return functional_key + return ( + circuit.name, + *functional_key, + ) + + def bound_circuit_to_instruction(circuit: QuantumCircuit) -> Instruction: """Build an :class:`~qiskit.circuit.Instruction` object from a :class:`~qiskit.circuit.QuantumCircuit` diff --git a/qiskit/providers/__init__.py b/qiskit/providers/__init__.py index e83b145b2f5a..e96d5635fe00 100644 --- a/qiskit/providers/__init__.py +++ b/qiskit/providers/__init__.py @@ -94,6 +94,8 @@ BackendV1 BackendV2 QubitProperties + BackendV2Converter + convert_to_target Options ------- @@ -666,6 +668,9 @@ def status(self): operation on a given qubit is used to model the readout length. However, a :obj:`~BackendV2` can implement multiple measurement types and list them separately in a :class:`~qiskit.transpiler.Target`. + +There is also a :class:`~.BackendV2Converter` class available that enables you +to wrap a :class:`~.BackendV1` object with a :class:`~.BackendV2` interface. """ import pkgutil @@ -677,6 +682,8 @@ def status(self): from qiskit.providers.backend import BackendV1 from qiskit.providers.backend import BackendV2 from qiskit.providers.backend import QubitProperties +from qiskit.providers.backend_compat import BackendV2Converter +from qiskit.providers.backend_compat import convert_to_target from qiskit.providers.options import Options from qiskit.providers.job import Job from qiskit.providers.job import JobV1 diff --git a/qiskit/providers/backend_compat.py b/qiskit/providers/backend_compat.py new file mode 100644 index 000000000000..60889ff22c70 --- /dev/null +++ b/qiskit/providers/backend_compat.py @@ -0,0 +1,282 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2020. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""Backend abstract interface for providers.""" + +from __future__ import annotations + +from typing import List, Iterable, Any, Dict, Optional + +from qiskit.exceptions import QiskitError + +from qiskit.providers.backend import BackendV1, BackendV2 +from qiskit.providers.backend import QubitProperties +from qiskit.utils.units import apply_prefix +from qiskit.circuit.library.standard_gates import get_standard_gate_name_mapping +from qiskit.circuit.measure import Measure +from qiskit.providers.models.backendconfiguration import BackendConfiguration +from qiskit.providers.models.backendproperties import BackendProperties +from qiskit.providers.models.pulsedefaults import PulseDefaults +from qiskit.providers.options import Options +from qiskit.providers.exceptions import BackendPropertyError + + +def convert_to_target( + configuration: BackendConfiguration, + properties: BackendProperties = None, + defaults: PulseDefaults = None, + custom_name_mapping: Optional[Dict[str, Any]] = None, + add_delay: bool = False, +): + """Uses configuration, properties and pulse defaults + to construct and return Target class. + """ + # pylint: disable=cyclic-import + from qiskit.transpiler.target import ( + Target, + InstructionProperties, + ) + + # Standard gates library mapping, multicontrolled gates not included since they're + # variable width + name_mapping = get_standard_gate_name_mapping() + target = None + if custom_name_mapping is not None: + name_mapping.update(custom_name_mapping) + # Parse from properties if it exsits + if properties is not None: + qubit_properties = qubit_props_list_from_props(properties=properties) + target = Target(num_qubits=configuration.n_qubits, qubit_properties=qubit_properties) + # Parse instructions + gates: Dict[str, Any] = {} + for gate in properties.gates: + name = gate.gate + if name in name_mapping: + if name not in gates: + gates[name] = {} + else: + raise QiskitError( + f"Operation name {name} does not have a known mapping. Use " + "custom_name_mapping to map this name to an Operation object" + ) + + qubits = tuple(gate.qubits) + gate_props = {} + for param in gate.parameters: + if param.name == "gate_error": + gate_props["error"] = param.value + if param.name == "gate_length": + gate_props["duration"] = apply_prefix(param.value, param.unit) + gates[name][qubits] = InstructionProperties(**gate_props) + for gate, props in gates.items(): + inst = name_mapping[gate] + target.add_instruction(inst, props) + # Create measurement instructions: + measure_props = {} + for qubit, _ in enumerate(properties.qubits): + measure_props[(qubit,)] = InstructionProperties( + duration=properties.readout_length(qubit), + error=properties.readout_error(qubit), + ) + target.add_instruction(Measure(), measure_props) + # Parse from configuration because properties doesn't exist + else: + target = Target(num_qubits=configuration.n_qubits) + for gate in configuration.gates: + name = gate.name + gate_props = ( + {tuple(x): None for x in gate.coupling_map} # type: ignore[misc] + if hasattr(gate, "coupling_map") + else {None: None} + ) + if name in name_mapping: + target.add_instruction(name_mapping[name], gate_props) + else: + raise QiskitError( + f"Operation name {name} does not have a known mapping. " + "Use custom_name_mapping to map this name to an Operation object" + ) + target.add_instruction(Measure()) + # parse global configuration properties + if hasattr(configuration, "dt"): + target.dt = configuration.dt + if hasattr(configuration, "timing_constraints"): + target.granularity = configuration.timing_constraints.get("granularity") + target.min_length = configuration.timing_constraints.get("min_length") + target.pulse_alignment = configuration.timing_constraints.get("pulse_alignment") + target.aquire_alignment = configuration.timing_constraints.get("acquire_alignment") + # If a pulse defaults exists use that as the source of truth + if defaults is not None: + inst_map = defaults.instruction_schedule_map + for inst in inst_map.instructions: + for qarg in inst_map.qubits_with_instruction(inst): + sched = inst_map.get(inst, qarg) + if inst in target: + try: + qarg = tuple(qarg) + except TypeError: + qarg = (qarg,) + if inst == "measure": + for qubit in qarg: + target[inst][(qubit,)].calibration = sched + elif qarg in target[inst]: + target[inst][qarg].calibration = sched + combined_global_ops = set() + if configuration.basis_gates: + combined_global_ops.update(configuration.basis_gates) + for op in combined_global_ops: + if op not in target: + if op in name_mapping: + target.add_instruction( + name_mapping[op], {(bit,): None for bit in range(target.num_qubits)} + ) + else: + raise QiskitError( + f"Operation name '{op}' does not have a known mapping. Use " + "custom_name_mapping to map this name to an Operation object" + ) + if add_delay and "delay" not in target: + target.add_instruction( + name_mapping["delay"], {(bit,): None for bit in range(target.num_qubits)} + ) + return target + + +def qubit_props_list_from_props( + properties: BackendProperties, +) -> List[QubitProperties]: + """Uses BackendProperties to construct + and return a list of QubitProperties. + """ + qubit_props: List[QubitProperties] = [] + for qubit, _ in enumerate(properties.qubits): + try: + t_1 = properties.t1(qubit) + except BackendPropertyError: + t_1 = None + try: + t_2 = properties.t2(qubit) + except BackendPropertyError: + t_2 = None + try: + frequency = properties.frequency(qubit) + except BackendPropertyError: + frequency = None + qubit_props.append( + QubitProperties( # type: ignore[no-untyped-call] + t1=t_1, + t2=t_2, + frequency=frequency, + ) + ) + return qubit_props + + +class BackendV2Converter(BackendV2): + """A converter class that takes a :class:`~.BackendV1` instance and wraps it in a + :class:`~.BackendV2` interface. + + This class implements the :class:`~.BackendV2` interface and is used to enable + common access patterns between :class:`~.BackendV1` and :class:`~.BackendV2`. This + class should only be used if you need a :class:`~.BackendV2` and still need + compatibility with :class:`~.BackendV1`. + """ + + def __init__( + self, + backend: BackendV1, + name_mapping: Optional[Dict[str, Any]] = None, + add_delay: bool = False, + ): + """Initialize a BackendV2 converter instance based on a BackendV1 instance. + + Args: + backend: The input :class:`~.BackendV1` based backend to wrap in a + :class:`~.BackendV2` interface + name_mapping: An optional dictionary that maps custom gate/operation names in + ``backend`` to an :class:`~.Operation` object representing that + gate/operation. By default most standard gates names are mapped to the + standard gate object from :mod:`qiskit.circuit.library` this only needs + to be specified if the input ``backend`` defines gates in names outside + that set. + add_delay: If set to true a :class:`~qiskit.circuit.Delay` operation + will be added to the target as a supported operation for all + qubits + """ + self._backend = backend + self._config = self._backend.configuration() + super().__init__( + provider=backend.provider, + name=backend.name(), + description=self._config.description, + online_date=self._config.online_date, + backend_version=self._config.backend_version, + ) + self._options = self._backend._options + self._properties = None + if hasattr(self._backend, "properties"): + self._properties = self._backend.properties() + self._defaults = None + self._target = None + self._name_mapping = name_mapping + self._add_delay = add_delay + + @property + def target(self): + """A :class:`qiskit.transpiler.Target` object for the backend. + + :rtype: Target + """ + if self._target is None: + if self._defaults is None and hasattr(self._backend, "defaults"): + self._defaults = self._backend.defaults() + if self._properties is None and hasattr(self._backend, "properties"): + self._properties = self._backend.properties() + self._target = convert_to_target( + self._config, + self._properties, + self._defaults, + custom_name_mapping=self._name_mapping, + add_delay=self._add_delay, + ) + return self._target + + @property + def max_circuits(self): + return self._config.max_experiments + + @classmethod + def _default_options(cls): + return Options() + + @property + def dtm(self) -> float: + return self._config.dtm + + @property + def meas_map(self) -> List[List[int]]: + return self._config.dt + + def drive_channel(self, qubit: int): + self._config.drive(qubit) + + def measure_channel(self, qubit: int): + self._config.measure(qubit) + + def acquire_channel(self, qubit: int): + self._config.acquire(qubit) + + def control_channel(self, qubits: Iterable[int]): + self._config.control(qubits) + + def run(self, run_input, **options): + return self._backend.run(run_input, **options) diff --git a/qiskit/providers/fake_provider/__init__.py b/qiskit/providers/fake_provider/__init__.py index 680583677a60..6885a958f609 100644 --- a/qiskit/providers/fake_provider/__init__.py +++ b/qiskit/providers/fake_provider/__init__.py @@ -111,6 +111,7 @@ FakeAlmadenV2 FakeArmonkV2 FakeAthensV2 + FakeAuckland FakeBelemV2 FakeBoeblingenV2 FakeBogotaV2 @@ -120,6 +121,7 @@ FakeCambridgeV2 FakeCasablancaV2 FakeEssexV2 + FakeGeneva FakeGuadalupeV2 FakeHanoiV2 FakeJakartaV2 @@ -134,8 +136,10 @@ FakeMontrealV2 FakeMumbaiV2 FakeNairobiV2 + FakeOslo FakeOurenseV2 FakeParisV2 + FakePerth FakePoughkeepsieV2 FakeQuitoV2 FakeRochesterV2 diff --git a/qiskit/providers/fake_provider/backends/__init__.py b/qiskit/providers/fake_provider/backends/__init__.py index 2b85aac04439..fda30423f93b 100644 --- a/qiskit/providers/fake_provider/backends/__init__.py +++ b/qiskit/providers/fake_provider/backends/__init__.py @@ -19,6 +19,7 @@ from .almaden import FakeAlmadenV2 from .armonk import FakeArmonkV2 from .athens import FakeAthensV2 +from .auckland import FakeAuckland from .belem import FakeBelemV2 from .boeblingen import FakeBoeblingenV2 from .bogota import FakeBogotaV2 @@ -28,6 +29,7 @@ from .cambridge import FakeCambridgeV2 from .casablanca import FakeCasablancaV2 from .essex import FakeEssexV2 +from .geneva import FakeGeneva from .guadalupe import FakeGuadalupeV2 from .hanoi import FakeHanoiV2 from .jakarta import FakeJakartaV2 @@ -42,8 +44,10 @@ from .montreal import FakeMontrealV2 from .mumbai import FakeMumbaiV2 from .nairobi import FakeNairobiV2 +from .oslo import FakeOslo from .ourense import FakeOurenseV2 from .paris import FakeParisV2 +from .perth import FakePerth from .poughkeepsie import FakePoughkeepsieV2 from .quito import FakeQuitoV2 from .rochester import FakeRochesterV2 diff --git a/qiskit/providers/fake_provider/backends/auckland/__init__.py b/qiskit/providers/fake_provider/backends/auckland/__init__.py new file mode 100644 index 000000000000..d2c4388d5b4d --- /dev/null +++ b/qiskit/providers/fake_provider/backends/auckland/__init__.py @@ -0,0 +1,15 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""Fake Auckland device (27 qubits)""" + +from .fake_auckland import FakeAuckland diff --git a/qiskit/providers/fake_provider/backends/auckland/conf_auckland.json b/qiskit/providers/fake_provider/backends/auckland/conf_auckland.json new file mode 100644 index 000000000000..101694237071 --- /dev/null +++ b/qiskit/providers/fake_provider/backends/auckland/conf_auckland.json @@ -0,0 +1 @@ +{"backend_name": "ibm_auckland", "backend_version": "1.2.13", "n_qubits": 27, "basis_gates": ["id", "rz", "sx", "x", "cx", "reset"], "gates": [{"name": "id", "parameters": [], "qasm_def": "gate id q { U(0, 0, 0) q; }", "coupling_map": [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20], [21], [22], [23], [24], [25], [26]]}, {"name": "rz", "parameters": ["theta"], "qasm_def": "gate rz(theta) q { U(0, 0, theta) q; }", "coupling_map": [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20], [21], [22], [23], [24], [25], [26]]}, {"name": "sx", "parameters": [], "qasm_def": "gate sx q { U(pi/2, 3*pi/2, pi/2) q; }", "coupling_map": [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20], [21], [22], [23], [24], [25], [26]]}, {"name": "x", "parameters": [], "qasm_def": "gate x q { U(pi, 0, pi) q; }", "coupling_map": [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20], [21], [22], [23], [24], [25], [26]]}, {"name": "cx", "parameters": [], "qasm_def": "gate cx q0, q1 { CX q0, q1; }", "coupling_map": [[0, 1], [1, 0], [1, 2], [1, 4], [2, 1], [2, 3], [3, 2], [3, 5], [4, 1], [4, 7], [5, 3], [5, 8], [6, 7], [7, 4], [7, 6], [7, 10], [8, 5], [8, 9], [8, 11], [9, 8], [10, 7], [10, 12], [11, 8], [11, 14], [12, 10], [12, 13], [12, 15], [13, 12], [13, 14], [14, 11], [14, 13], [14, 16], [15, 12], [15, 18], [16, 14], [16, 19], [17, 18], [18, 15], [18, 17], [18, 21], [19, 16], [19, 20], [19, 22], [20, 19], [21, 18], [21, 23], [22, 19], [22, 25], [23, 21], [23, 24], [24, 23], [24, 25], [25, 22], [25, 24], [25, 26], [26, 25]]}, {"name": "reset", "parameters": null, "qasm_def": null}], "local": false, "simulator": false, "conditional": false, "open_pulse": true, "memory": true, "max_shots": 100000, "coupling_map": [[0, 1], [1, 0], [1, 2], [1, 4], [2, 1], [2, 3], [3, 2], [3, 5], [4, 1], [4, 7], [5, 3], [5, 8], [6, 7], [7, 4], [7, 6], [7, 10], [8, 5], [8, 9], [8, 11], [9, 8], [10, 7], [10, 12], [11, 8], [11, 14], [12, 10], [12, 13], [12, 15], [13, 12], [13, 14], [14, 11], [14, 13], [14, 16], [15, 12], [15, 18], [16, 14], [16, 19], [17, 18], [18, 15], [18, 17], [18, 21], [19, 16], [19, 20], [19, 22], [20, 19], [21, 18], [21, 23], [22, 19], [22, 25], [23, 21], [23, 24], [24, 23], [24, 25], [25, 22], [25, 24], [25, 26], [26, 25]], "dynamic_reprate_enabled": true, "supported_instructions": ["play", "x", "acquire", "cx", "u1", "rz", "u2", "shiftf", "u3", "sx", "id", "setf", "measure", "reset", "delay"], "rep_delay_range": [0.0, 500.0], "default_rep_delay": 250.0, "max_experiments": 300, "sample_name": "family: Falcon, revision: 5.11", "n_registers": 1, "credits_required": true, "online_date": "2021-07-22T04:00:00+00:00", "description": "27 qubit device", "dt": 0.2222222222222222, "dtm": 0.2222222222222222, "processor_type": {"family": "Falcon", "revision": "5.11"}, "parametric_pulses": ["gaussian", "gaussian_square", "drag", "constant"], "allow_q_object": true, "clops": 2419, "measure_esp_enabled": false, "multi_meas_enabled": true, "parallel_compilation": false, "quantum_volume": 64, "qubit_channel_mapping": [["u1", "m0", "d0", "u0"], ["m1", "u0", "u4", "u1", "u2", "d1", "u3", "u8"], ["m2", "u4", "u6", "u5", "u2", "d2"], ["m3", "u6", "u5", "u10", "u7", "d3"], ["d4", "u13", "u9", "u3", "u8", "m4"], ["d5", "u11", "u10", "u16", "u7", "m5"], ["u12", "d6", "u14", "m6"], ["u12", "u20", "u15", "u13", "u9", "d7", "u14", "m7"], ["d8", "u19", "u11", "m8", "u16", "u18", "u17", "u22"], ["u19", "m9", "u17", "d9"], ["d10", "u20", "u15", "u21", "u24", "m10"], ["m11", "u29", "d11", "u18", "u22", "u23"], ["m12", "u21", "u26", "u24", "u32", "u27", "d12", "u25"], ["m13", "u30", "u28", "u27", "d13", "u25"], ["u29", "u30", "u34", "u28", "u31", "m14", "u23", "d14"], ["m15", "d15", "u26", "u33", "u32", "u37"], ["d16", "u40", "u34", "u35", "u31", "m16"], ["u38", "d17", "u36", "m17"], ["u38", "u33", "m18", "u36", "d18", "u44", "u39", "u37"], ["u42", "u40", "u43", "m19", "u46", "d19", "u35", "u41"], ["m20", "u41", "u43", "d20"], ["m21", "d21", "u45", "u44", "u48", "u39"], ["u52", "u42", "u47", "u46", "m22", "d22"], ["d23", "m23", "u45", "u48", "u49", "u50"], ["u53", "u51", "d24", "m24", "u49", "u50"], ["u52", "m25", "u53", "u54", "u51", "u47", "u55", "d25"], ["u54", "d26", "m26", "u55"]], "supported_features": ["qobj"], "timing_constraints": {"acquire_alignment": 16, "granularity": 16, "min_length": 64, "pulse_alignment": 16}, "uchannels_enabled": true, "url": "None", "input_allowed": ["job", "runtime"], "allow_object_storage": true, "pulse_num_channels": 9, "pulse_num_qubits": 3, "live_data": false, "n_uchannels": 56, "u_channel_lo": [[{"q": 1, "scale": [1.0, 0.0]}], [{"q": 0, "scale": [1.0, 0.0]}], [{"q": 2, "scale": [1.0, 0.0]}], [{"q": 4, "scale": [1.0, 0.0]}], [{"q": 1, "scale": [1.0, 0.0]}], [{"q": 3, "scale": [1.0, 0.0]}], [{"q": 2, "scale": [1.0, 0.0]}], [{"q": 5, "scale": [1.0, 0.0]}], [{"q": 1, "scale": [1.0, 0.0]}], [{"q": 7, "scale": [1.0, 0.0]}], [{"q": 3, "scale": [1.0, 0.0]}], [{"q": 8, "scale": [1.0, 0.0]}], [{"q": 7, "scale": [1.0, 0.0]}], [{"q": 4, "scale": [1.0, 0.0]}], [{"q": 6, "scale": [1.0, 0.0]}], [{"q": 10, "scale": [1.0, 0.0]}], [{"q": 5, "scale": [1.0, 0.0]}], [{"q": 9, "scale": [1.0, 0.0]}], [{"q": 11, "scale": [1.0, 0.0]}], [{"q": 8, "scale": [1.0, 0.0]}], [{"q": 7, "scale": [1.0, 0.0]}], [{"q": 12, "scale": [1.0, 0.0]}], [{"q": 8, "scale": [1.0, 0.0]}], [{"q": 14, "scale": [1.0, 0.0]}], [{"q": 10, "scale": [1.0, 0.0]}], [{"q": 13, "scale": [1.0, 0.0]}], [{"q": 15, "scale": [1.0, 0.0]}], [{"q": 12, "scale": [1.0, 0.0]}], [{"q": 14, "scale": [1.0, 0.0]}], [{"q": 11, "scale": [1.0, 0.0]}], [{"q": 13, "scale": [1.0, 0.0]}], [{"q": 16, "scale": [1.0, 0.0]}], [{"q": 12, "scale": [1.0, 0.0]}], [{"q": 18, "scale": [1.0, 0.0]}], [{"q": 14, "scale": [1.0, 0.0]}], [{"q": 19, "scale": [1.0, 0.0]}], [{"q": 18, "scale": [1.0, 0.0]}], [{"q": 15, "scale": [1.0, 0.0]}], [{"q": 17, "scale": [1.0, 0.0]}], [{"q": 21, "scale": [1.0, 0.0]}], [{"q": 16, "scale": [1.0, 0.0]}], [{"q": 20, "scale": [1.0, 0.0]}], [{"q": 22, "scale": [1.0, 0.0]}], [{"q": 19, "scale": [1.0, 0.0]}], [{"q": 18, "scale": [1.0, 0.0]}], [{"q": 23, "scale": [1.0, 0.0]}], [{"q": 19, "scale": [1.0, 0.0]}], [{"q": 25, "scale": [1.0, 0.0]}], [{"q": 21, "scale": [1.0, 0.0]}], [{"q": 24, "scale": [1.0, 0.0]}], [{"q": 23, "scale": [1.0, 0.0]}], [{"q": 25, "scale": [1.0, 0.0]}], [{"q": 22, "scale": [1.0, 0.0]}], [{"q": 24, "scale": [1.0, 0.0]}], [{"q": 26, "scale": [1.0, 0.0]}], [{"q": 25, "scale": [1.0, 0.0]}]], "meas_levels": [1, 2], "qubit_lo_range": [[4.432969834248503, 5.432969834248503], [4.573818830016074, 5.573818830016074], [4.505777359770017, 5.505777359770017], [4.397239837230424, 5.397239837230424], [4.420152233814071, 5.420152233814071], [4.492825135169386, 5.492825135169387], [4.5065195107816765, 5.5065195107816765], [4.328442195456001, 5.328442195456001], [4.7036046150867605, 5.7036046150867605], [4.588380267158975, 5.588380267158975], [4.226887639697103, 5.226887639697103], [4.555185858571019, 5.555185858571019], [4.389585658090766, 5.389585658090766], [4.51677642329182, 5.516776423291821], [4.667086880807076, 5.667086880807076], [4.488481466676313, 5.488481466676313], [4.469574668860307, 5.469574668860307], [4.52539334125041, 5.52539334125041], [4.287951526032317, 5.287951526032318], [4.306272301305039, 5.306272301305039], [4.191888528568098, 5.191888528568098], [4.546314506003484, 5.546314506003484], [4.468365240399085, 5.468365240399085], [4.367905152838581, 5.367905152838581], [4.456013065298386, 5.456013065298386], [4.5769938518234765, 5.5769938518234765], [4.355869381199309, 5.355869381199309]], "meas_lo_range": [[6.666366149000001, 7.666366149000001], [6.790036566, 7.790036566], [6.66720936, 7.66720936], [6.789866161000001, 7.789866161000001], [6.730809514000001, 7.730809514000001], [6.725718035000001, 7.725718035000001], [6.84053597, 7.84053597], [6.608269204000001, 7.608269204000001], [6.611764947, 7.611764947], [6.837737400000001, 7.837737400000001], [6.670815005000001, 7.670815005000001], [6.735435442, 7.735435442000001], [6.834726981, 7.834726981], [6.723992816, 7.723992816000001], [6.785324461, 7.785324461], [6.783573103, 7.783573103], [6.663917049, 7.663917049], [6.8411595080000005, 7.8411595080000005], [6.614430141000001, 7.614430141000001], [6.611011042, 7.611011042], [6.833417041000001, 7.833417041000001], [6.7305351170000005, 7.7305351170000005], [6.727873898, 7.727873898], [6.772084477000001, 7.772084477000001], [6.665657706, 7.665657706], [6.789157489000001, 7.789157489000001], [6.6592788270000005, 7.6592788270000005]], "meas_kernels": ["hw_qmfk"], "discriminators": ["hw_qmfk", "linear_discriminator", "quadratic_discriminator"], "rep_times": [1000.0], "meas_map": [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]], "acquisition_latency": [], "conditional_latency": [], "hamiltonian": {"description": "Qubits are modeled as Duffing oscillators. In this case, the system includes higher energy states, i.e. not just |0> and |1>. The Pauli operators are generalized via the following set of transformations:\n\n$(\\mathbb{I}-\\sigma_{i}^z)/2 \\rightarrow O_i \\equiv b^\\dagger_{i} b_{i}$,\n\n$\\sigma_{+} \\rightarrow b^\\dagger$,\n\n$\\sigma_{-} \\rightarrow b$,\n\n$\\sigma_{i}^X \\rightarrow b^\\dagger_{i} + b_{i}$.\n\nQubits are coupled through resonator buses. The provided Hamiltonian has been projected into the zero excitation subspace of the resonator buses leading to an effective qubit-qubit flip-flop interaction. The qubit resonance frequencies in the Hamiltonian are the cavity dressed frequencies and not exactly what is returned by the backend defaults, which also includes the dressing due to the qubit-qubit interactions.\n\nQuantities are returned in angular frequencies, with units 2*pi*GHz.\n\nWARNING: Currently not all system Hamiltonian information is available to the public, missing values have been replaced with 0.\n", "h_latex": "\\begin{align} \\mathcal{H}/\\hbar = & \\sum_{i=0}^{26}\\left(\\frac{\\omega_{q,i}}{2}(\\mathbb{I}-\\sigma_i^{z})+\\frac{\\Delta_{i}}{2}(O_i^2-O_i)+\\Omega_{d,i}D_i(t)\\sigma_i^{X}\\right) \\\\ & + J_{12,13}(\\sigma_{12}^{+}\\sigma_{13}^{-}+\\sigma_{12}^{-}\\sigma_{13}^{+}) + J_{14,16}(\\sigma_{14}^{+}\\sigma_{16}^{-}+\\sigma_{14}^{-}\\sigma_{16}^{+}) + J_{8,9}(\\sigma_{8}^{+}\\sigma_{9}^{-}+\\sigma_{8}^{-}\\sigma_{9}^{+}) + J_{17,18}(\\sigma_{17}^{+}\\sigma_{18}^{-}+\\sigma_{17}^{-}\\sigma_{18}^{+}) \\\\ & + J_{11,14}(\\sigma_{11}^{+}\\sigma_{14}^{-}+\\sigma_{11}^{-}\\sigma_{14}^{+}) + J_{10,12}(\\sigma_{10}^{+}\\sigma_{12}^{-}+\\sigma_{10}^{-}\\sigma_{12}^{+}) + J_{13,14}(\\sigma_{13}^{+}\\sigma_{14}^{-}+\\sigma_{13}^{-}\\sigma_{14}^{+}) + J_{7,10}(\\sigma_{7}^{+}\\sigma_{10}^{-}+\\sigma_{7}^{-}\\sigma_{10}^{+}) \\\\ & + J_{16,19}(\\sigma_{16}^{+}\\sigma_{19}^{-}+\\sigma_{16}^{-}\\sigma_{19}^{+}) + J_{12,15}(\\sigma_{12}^{+}\\sigma_{15}^{-}+\\sigma_{12}^{-}\\sigma_{15}^{+}) + J_{22,25}(\\sigma_{22}^{+}\\sigma_{25}^{-}+\\sigma_{22}^{-}\\sigma_{25}^{+}) + J_{23,24}(\\sigma_{23}^{+}\\sigma_{24}^{-}+\\sigma_{23}^{-}\\sigma_{24}^{+}) \\\\ & + J_{8,11}(\\sigma_{8}^{+}\\sigma_{11}^{-}+\\sigma_{8}^{-}\\sigma_{11}^{+}) + J_{0,1}(\\sigma_{0}^{+}\\sigma_{1}^{-}+\\sigma_{0}^{-}\\sigma_{1}^{+}) + J_{1,2}(\\sigma_{1}^{+}\\sigma_{2}^{-}+\\sigma_{1}^{-}\\sigma_{2}^{+}) + J_{19,20}(\\sigma_{19}^{+}\\sigma_{20}^{-}+\\sigma_{19}^{-}\\sigma_{20}^{+}) \\\\ & + J_{6,7}(\\sigma_{6}^{+}\\sigma_{7}^{-}+\\sigma_{6}^{-}\\sigma_{7}^{+}) + J_{24,25}(\\sigma_{24}^{+}\\sigma_{25}^{-}+\\sigma_{24}^{-}\\sigma_{25}^{+}) + J_{18,21}(\\sigma_{18}^{+}\\sigma_{21}^{-}+\\sigma_{18}^{-}\\sigma_{21}^{+}) + J_{4,7}(\\sigma_{4}^{+}\\sigma_{7}^{-}+\\sigma_{4}^{-}\\sigma_{7}^{+}) \\\\ & + J_{3,5}(\\sigma_{3}^{+}\\sigma_{5}^{-}+\\sigma_{3}^{-}\\sigma_{5}^{+}) + J_{21,23}(\\sigma_{21}^{+}\\sigma_{23}^{-}+\\sigma_{21}^{-}\\sigma_{23}^{+}) + J_{5,8}(\\sigma_{5}^{+}\\sigma_{8}^{-}+\\sigma_{5}^{-}\\sigma_{8}^{+}) + J_{1,4}(\\sigma_{1}^{+}\\sigma_{4}^{-}+\\sigma_{1}^{-}\\sigma_{4}^{+}) \\\\ & + J_{2,3}(\\sigma_{2}^{+}\\sigma_{3}^{-}+\\sigma_{2}^{-}\\sigma_{3}^{+}) + J_{19,22}(\\sigma_{19}^{+}\\sigma_{22}^{-}+\\sigma_{19}^{-}\\sigma_{22}^{+}) + J_{15,18}(\\sigma_{15}^{+}\\sigma_{18}^{-}+\\sigma_{15}^{-}\\sigma_{18}^{+}) + J_{25,26}(\\sigma_{25}^{+}\\sigma_{26}^{-}+\\sigma_{25}^{-}\\sigma_{26}^{+}) \\\\ & + \\Omega_{d,0}(U_{0}^{(0,1)}(t))\\sigma_{0}^{X} + \\Omega_{d,1}(U_{1}^{(1,0)}(t)+U_{3}^{(1,4)}(t)+U_{2}^{(1,2)}(t))\\sigma_{1}^{X} \\\\ & + \\Omega_{d,2}(U_{5}^{(2,3)}(t)+U_{4}^{(2,1)}(t))\\sigma_{2}^{X} + \\Omega_{d,3}(U_{6}^{(3,2)}(t)+U_{7}^{(3,5)}(t))\\sigma_{3}^{X} \\\\ & + \\Omega_{d,4}(U_{9}^{(4,7)}(t)+U_{8}^{(4,1)}(t))\\sigma_{4}^{X} + \\Omega_{d,5}(U_{11}^{(5,8)}(t)+U_{10}^{(5,3)}(t))\\sigma_{5}^{X} \\\\ & + \\Omega_{d,6}(U_{12}^{(6,7)}(t))\\sigma_{6}^{X} + \\Omega_{d,7}(U_{14}^{(7,6)}(t)+U_{13}^{(7,4)}(t)+U_{15}^{(7,10)}(t))\\sigma_{7}^{X} \\\\ & + \\Omega_{d,8}(U_{18}^{(8,11)}(t)+U_{16}^{(8,5)}(t)+U_{17}^{(8,9)}(t))\\sigma_{8}^{X} + \\Omega_{d,9}(U_{19}^{(9,8)}(t))\\sigma_{9}^{X} \\\\ & + \\Omega_{d,10}(U_{20}^{(10,7)}(t)+U_{21}^{(10,12)}(t))\\sigma_{10}^{X} + \\Omega_{d,11}(U_{22}^{(11,8)}(t)+U_{23}^{(11,14)}(t))\\sigma_{11}^{X} \\\\ & + \\Omega_{d,12}(U_{24}^{(12,10)}(t)+U_{25}^{(12,13)}(t)+U_{26}^{(12,15)}(t))\\sigma_{12}^{X} + \\Omega_{d,13}(U_{28}^{(13,14)}(t)+U_{27}^{(13,12)}(t))\\sigma_{13}^{X} \\\\ & + \\Omega_{d,14}(U_{31}^{(14,16)}(t)+U_{30}^{(14,13)}(t)+U_{29}^{(14,11)}(t))\\sigma_{14}^{X} + \\Omega_{d,15}(U_{33}^{(15,18)}(t)+U_{32}^{(15,12)}(t))\\sigma_{15}^{X} \\\\ & + \\Omega_{d,16}(U_{35}^{(16,19)}(t)+U_{34}^{(16,14)}(t))\\sigma_{16}^{X} + \\Omega_{d,17}(U_{36}^{(17,18)}(t))\\sigma_{17}^{X} \\\\ & + \\Omega_{d,18}(U_{37}^{(18,15)}(t)+U_{39}^{(18,21)}(t)+U_{38}^{(18,17)}(t))\\sigma_{18}^{X} + \\Omega_{d,19}(U_{42}^{(19,22)}(t)+U_{40}^{(19,16)}(t)+U_{41}^{(19,20)}(t))\\sigma_{19}^{X} \\\\ & + \\Omega_{d,20}(U_{43}^{(20,19)}(t))\\sigma_{20}^{X} + \\Omega_{d,21}(U_{44}^{(21,18)}(t)+U_{45}^{(21,23)}(t))\\sigma_{21}^{X} \\\\ & + \\Omega_{d,22}(U_{46}^{(22,19)}(t)+U_{47}^{(22,25)}(t))\\sigma_{22}^{X} + \\Omega_{d,23}(U_{49}^{(23,24)}(t)+U_{48}^{(23,21)}(t))\\sigma_{23}^{X} \\\\ & + \\Omega_{d,24}(U_{50}^{(24,23)}(t)+U_{51}^{(24,25)}(t))\\sigma_{24}^{X} + \\Omega_{d,25}(U_{54}^{(25,26)}(t)+U_{53}^{(25,24)}(t)+U_{52}^{(25,22)}(t))\\sigma_{25}^{X} \\\\ & + \\Omega_{d,26}(U_{55}^{(26,25)}(t))\\sigma_{26}^{X} \\\\ \\end{align}", "h_str": ["_SUM[i,0,26,wq{i}/2*(I{i}-Z{i})]", "_SUM[i,0,26,delta{i}/2*O{i}*O{i}]", "_SUM[i,0,26,-delta{i}/2*O{i}]", "_SUM[i,0,26,omegad{i}*X{i}||D{i}]", "jq12q13*Sp12*Sm13", "jq12q13*Sm12*Sp13", "jq14q16*Sp14*Sm16", "jq14q16*Sm14*Sp16", "jq8q9*Sp8*Sm9", "jq8q9*Sm8*Sp9", "jq17q18*Sp17*Sm18", "jq17q18*Sm17*Sp18", "jq11q14*Sp11*Sm14", "jq11q14*Sm11*Sp14", "jq10q12*Sp10*Sm12", "jq10q12*Sm10*Sp12", "jq13q14*Sp13*Sm14", "jq13q14*Sm13*Sp14", "jq7q10*Sp7*Sm10", "jq7q10*Sm7*Sp10", "jq16q19*Sp16*Sm19", "jq16q19*Sm16*Sp19", "jq12q15*Sp12*Sm15", "jq12q15*Sm12*Sp15", "jq22q25*Sp22*Sm25", "jq22q25*Sm22*Sp25", "jq23q24*Sp23*Sm24", "jq23q24*Sm23*Sp24", "jq8q11*Sp8*Sm11", "jq8q11*Sm8*Sp11", "jq0q1*Sp0*Sm1", "jq0q1*Sm0*Sp1", "jq1q2*Sp1*Sm2", "jq1q2*Sm1*Sp2", "jq19q20*Sp19*Sm20", "jq19q20*Sm19*Sp20", "jq6q7*Sp6*Sm7", "jq6q7*Sm6*Sp7", "jq24q25*Sp24*Sm25", "jq24q25*Sm24*Sp25", "jq18q21*Sp18*Sm21", "jq18q21*Sm18*Sp21", "jq4q7*Sp4*Sm7", "jq4q7*Sm4*Sp7", "jq3q5*Sp3*Sm5", "jq3q5*Sm3*Sp5", "jq21q23*Sp21*Sm23", "jq21q23*Sm21*Sp23", "jq5q8*Sp5*Sm8", "jq5q8*Sm5*Sp8", "jq1q4*Sp1*Sm4", "jq1q4*Sm1*Sp4", "jq2q3*Sp2*Sm3", "jq2q3*Sm2*Sp3", "jq19q22*Sp19*Sm22", "jq19q22*Sm19*Sp22", "jq15q18*Sp15*Sm18", "jq15q18*Sm15*Sp18", "jq25q26*Sp25*Sm26", "jq25q26*Sm25*Sp26", "omegad1*X0||U0", "omegad0*X1||U1", "omegad4*X1||U3", "omegad2*X1||U2", "omegad3*X2||U5", "omegad1*X2||U4", "omegad2*X3||U6", "omegad5*X3||U7", "omegad7*X4||U9", "omegad1*X4||U8", "omegad8*X5||U11", "omegad3*X5||U10", "omegad7*X6||U12", "omegad6*X7||U14", "omegad4*X7||U13", "omegad10*X7||U15", "omegad11*X8||U18", "omegad5*X8||U16", "omegad9*X8||U17", "omegad8*X9||U19", "omegad7*X10||U20", "omegad12*X10||U21", "omegad8*X11||U22", "omegad14*X11||U23", "omegad10*X12||U24", "omegad13*X12||U25", "omegad15*X12||U26", "omegad14*X13||U28", "omegad12*X13||U27", "omegad16*X14||U31", "omegad13*X14||U30", "omegad11*X14||U29", "omegad18*X15||U33", "omegad12*X15||U32", "omegad19*X16||U35", "omegad14*X16||U34", "omegad18*X17||U36", "omegad15*X18||U37", "omegad21*X18||U39", "omegad17*X18||U38", "omegad22*X19||U42", "omegad16*X19||U40", "omegad20*X19||U41", "omegad19*X20||U43", "omegad18*X21||U44", "omegad23*X21||U45", "omegad19*X22||U46", "omegad25*X22||U47", "omegad24*X23||U49", "omegad21*X23||U48", "omegad23*X24||U50", "omegad25*X24||U51", "omegad26*X25||U54", "omegad24*X25||U53", "omegad22*X25||U52", "omegad25*X26||U55"], "osc": {}, "qub": {"0": 3, "1": 3, "2": 3, "3": 3, "4": 3, "5": 3, "6": 3, "7": 3, "8": 3, "9": 3, "10": 3, "11": 3, "12": 3, "13": 3, "14": 3, "15": 3, "16": 3, "17": 3, "18": 3, "19": 3, "20": 3, "21": 3, "22": 3, "23": 3, "24": 3, "25": 3, "26": 3}, "vars": {"delta0": -2.158684308046893, "delta1": -2.1530657984756614, "delta10": -2.179337968217314, "delta11": -2.1509694035052966, "delta12": -2.1830486136854597, "delta13": -2.1540627246004536, "delta14": -2.1445012142144435, "delta15": -2.149066552418238, "delta16": -2.159099516425758, "delta17": -2.1514877260680683, "delta18": -2.185141537139927, "delta19": -2.1727956284580405, "delta2": -2.161451126468108, "delta20": -2.209546956876913, "delta21": -2.151664356551376, "delta22": -2.168850638695307, "delta23": -2.1730168477635647, "delta24": -2.1655528488320694, "delta25": -2.148658601101429, "delta26": -2.1688030952712993, "delta3": -2.1709211542397715, "delta4": -2.161766358670777, "delta5": -2.1641239354790245, "delta6": -2.156367555640658, "delta7": -2.17184752769289, "delta8": -2.141181696936328, "delta9": -2.1439754867526406, "jq0q1": 0.012344036004184312, "jq10q12": 0.011681916379002354, "jq11q14": 0.012366057535308974, "jq12q13": 0.012224608841799052, "jq12q15": 0.011149014666899425, "jq13q14": 0.012860067005229741, "jq14q16": 0.012309040937075836, "jq15q18": 0.011650709504714885, "jq16q19": 0.011761170836224884, "jq17q18": 0.012084452094488898, "jq18q21": 0.012332712711424238, "jq19q20": 0.010869894641070596, "jq19q22": 0.012150397235277013, "jq1q2": 0.012363567124722748, "jq1q4": 0.011977484112529689, "jq21q23": 0.012441611415734072, "jq22q25": 0.012235288814365189, "jq23q24": 0.012008911587624984, "jq24q25": 0.012540607131958892, "jq25q26": 0.01215052474293462, "jq2q3": 0.012192411638943383, "jq3q5": 0.012409307027553721, "jq4q7": 0.012080619891474494, "jq5q8": 0.012996016493178318, "jq6q7": 0.012104788821551757, "jq7q10": 0.011259137058131734, "jq8q11": 0.01255224919037635, "jq8q9": 0.012833830966588723, "omegad0": 0.9933360746197181, "omegad1": 0.9823935292572705, "omegad10": 0.9528883808037366, "omegad11": 0.9570830633493299, "omegad12": 0.993748201314793, "omegad13": 0.9634587560457126, "omegad14": 0.9908259688686702, "omegad15": 0.9886888862135653, "omegad16": 0.9184736055593311, "omegad17": 0.9814578979746276, "omegad18": 0.9676714203596005, "omegad19": 0.986284529851992, "omegad2": 0.9734294645027696, "omegad20": 1.0246576221750912, "omegad21": 1.0111071820490611, "omegad22": 0.958346721287621, "omegad23": 0.9787556194329787, "omegad24": 0.9686913857135017, "omegad25": 0.9678238043064792, "omegad26": 1.008363131580873, "omegad3": 0.9738016296242488, "omegad4": 0.9782017273386752, "omegad5": 0.94157840020516, "omegad6": 1.0063864285733488, "omegad7": 1.024149623809381, "omegad8": 1.0125507576792812, "omegad9": 0.9979150241064154, "wq0": 30.994763583310316, "wq1": 31.879743924048118, "wq10": 29.699910966433634, "wq11": 31.762669511635455, "wq12": 30.722172765111928, "wq13": 31.521335912232125, "wq14": 32.46576437040741, "wq15": 31.343553456558283, "wq16": 31.224758542314945, "wq17": 31.575477604542712, "wq18": 30.08358667985434, "wq19": 30.198699505864038, "wq2": 31.452226757919195, "wq20": 29.48000506562353, "wq21": 31.706929159528308, "wq22": 31.217159479177305, "wq23": 30.58595013305917, "wq24": 31.139548474072885, "wq25": 31.899693174418363, "wq26": 30.51032714953473, "wq3": 30.770265391020754, "wq4": 30.914228224587397, "wq5": 31.370845530613224, "wq6": 31.45688983025136, "wq7": 30.33799705905509, "wq8": 32.69521206188502, "wq9": 31.971236131955813}}, "channels": {"acquire0": {"operates": {"qubits": [0]}, "purpose": "acquire", "type": "acquire"}, "acquire1": {"operates": {"qubits": [1]}, "purpose": "acquire", "type": "acquire"}, "acquire10": {"operates": {"qubits": [10]}, "purpose": "acquire", "type": "acquire"}, "acquire11": {"operates": {"qubits": [11]}, "purpose": "acquire", "type": "acquire"}, "acquire12": {"operates": {"qubits": [12]}, "purpose": "acquire", "type": "acquire"}, "acquire13": {"operates": {"qubits": [13]}, "purpose": "acquire", "type": "acquire"}, "acquire14": {"operates": {"qubits": [14]}, "purpose": "acquire", "type": "acquire"}, "acquire15": {"operates": {"qubits": [15]}, "purpose": "acquire", "type": "acquire"}, "acquire16": {"operates": {"qubits": [16]}, "purpose": "acquire", "type": "acquire"}, "acquire17": {"operates": {"qubits": [17]}, "purpose": "acquire", "type": "acquire"}, "acquire18": {"operates": {"qubits": [18]}, "purpose": "acquire", "type": "acquire"}, "acquire19": {"operates": {"qubits": [19]}, "purpose": "acquire", "type": "acquire"}, "acquire2": {"operates": {"qubits": [2]}, "purpose": "acquire", "type": "acquire"}, "acquire20": {"operates": {"qubits": [20]}, "purpose": "acquire", "type": "acquire"}, "acquire21": {"operates": {"qubits": [21]}, "purpose": "acquire", "type": "acquire"}, "acquire22": {"operates": {"qubits": [22]}, "purpose": "acquire", "type": "acquire"}, "acquire23": {"operates": {"qubits": [23]}, "purpose": "acquire", "type": "acquire"}, "acquire24": {"operates": {"qubits": [24]}, "purpose": "acquire", "type": "acquire"}, "acquire25": {"operates": {"qubits": [25]}, "purpose": "acquire", "type": "acquire"}, "acquire26": {"operates": {"qubits": [26]}, "purpose": "acquire", "type": "acquire"}, "acquire3": {"operates": {"qubits": [3]}, "purpose": "acquire", "type": "acquire"}, "acquire4": {"operates": {"qubits": [4]}, "purpose": "acquire", "type": "acquire"}, "acquire5": {"operates": {"qubits": [5]}, "purpose": "acquire", "type": "acquire"}, "acquire6": {"operates": {"qubits": [6]}, "purpose": "acquire", "type": "acquire"}, "acquire7": {"operates": {"qubits": [7]}, "purpose": "acquire", "type": "acquire"}, "acquire8": {"operates": {"qubits": [8]}, "purpose": "acquire", "type": "acquire"}, "acquire9": {"operates": {"qubits": [9]}, "purpose": "acquire", "type": "acquire"}, "d0": {"operates": {"qubits": [0]}, "purpose": "drive", "type": "drive"}, "d1": {"operates": {"qubits": [1]}, "purpose": "drive", "type": "drive"}, "d10": {"operates": {"qubits": [10]}, "purpose": "drive", "type": "drive"}, "d11": {"operates": {"qubits": [11]}, "purpose": "drive", "type": "drive"}, "d12": {"operates": {"qubits": [12]}, "purpose": "drive", "type": "drive"}, "d13": {"operates": {"qubits": [13]}, "purpose": "drive", "type": "drive"}, "d14": {"operates": {"qubits": [14]}, "purpose": "drive", "type": "drive"}, "d15": {"operates": {"qubits": [15]}, "purpose": "drive", "type": "drive"}, "d16": {"operates": {"qubits": [16]}, "purpose": "drive", "type": "drive"}, "d17": {"operates": {"qubits": [17]}, "purpose": "drive", "type": "drive"}, "d18": {"operates": {"qubits": [18]}, "purpose": "drive", "type": "drive"}, "d19": {"operates": {"qubits": [19]}, "purpose": "drive", "type": "drive"}, "d2": {"operates": {"qubits": [2]}, "purpose": "drive", "type": "drive"}, "d20": {"operates": {"qubits": [20]}, "purpose": "drive", "type": "drive"}, "d21": {"operates": {"qubits": [21]}, "purpose": "drive", "type": "drive"}, "d22": {"operates": {"qubits": [22]}, "purpose": "drive", "type": "drive"}, "d23": {"operates": {"qubits": [23]}, "purpose": "drive", "type": "drive"}, "d24": {"operates": {"qubits": [24]}, "purpose": "drive", "type": "drive"}, "d25": {"operates": {"qubits": [25]}, "purpose": "drive", "type": "drive"}, "d26": {"operates": {"qubits": [26]}, "purpose": "drive", "type": "drive"}, "d3": {"operates": {"qubits": [3]}, "purpose": "drive", "type": "drive"}, "d4": {"operates": {"qubits": [4]}, "purpose": "drive", "type": "drive"}, "d5": {"operates": {"qubits": [5]}, "purpose": "drive", "type": "drive"}, "d6": {"operates": {"qubits": [6]}, "purpose": "drive", "type": "drive"}, "d7": {"operates": {"qubits": [7]}, "purpose": "drive", "type": "drive"}, "d8": {"operates": {"qubits": [8]}, "purpose": "drive", "type": "drive"}, "d9": {"operates": {"qubits": [9]}, "purpose": "drive", "type": "drive"}, "m0": {"operates": {"qubits": [0]}, "purpose": "measure", "type": "measure"}, "m1": {"operates": {"qubits": [1]}, "purpose": "measure", "type": "measure"}, "m10": {"operates": {"qubits": [10]}, "purpose": "measure", "type": "measure"}, "m11": {"operates": {"qubits": [11]}, "purpose": "measure", "type": "measure"}, "m12": {"operates": {"qubits": [12]}, "purpose": "measure", "type": "measure"}, "m13": {"operates": {"qubits": [13]}, "purpose": "measure", "type": "measure"}, "m14": {"operates": {"qubits": [14]}, "purpose": "measure", "type": "measure"}, "m15": {"operates": {"qubits": [15]}, "purpose": "measure", "type": "measure"}, "m16": {"operates": {"qubits": [16]}, "purpose": "measure", "type": "measure"}, "m17": {"operates": {"qubits": [17]}, "purpose": "measure", "type": "measure"}, "m18": {"operates": {"qubits": [18]}, "purpose": "measure", "type": "measure"}, "m19": {"operates": {"qubits": [19]}, "purpose": "measure", "type": "measure"}, "m2": {"operates": {"qubits": [2]}, "purpose": "measure", "type": "measure"}, "m20": {"operates": {"qubits": [20]}, "purpose": "measure", "type": "measure"}, "m21": {"operates": {"qubits": [21]}, "purpose": "measure", "type": "measure"}, "m22": {"operates": {"qubits": [22]}, "purpose": "measure", "type": "measure"}, "m23": {"operates": {"qubits": [23]}, "purpose": "measure", "type": "measure"}, "m24": {"operates": {"qubits": [24]}, "purpose": "measure", "type": "measure"}, "m25": {"operates": {"qubits": [25]}, "purpose": "measure", "type": "measure"}, "m26": {"operates": {"qubits": [26]}, "purpose": "measure", "type": "measure"}, "m3": {"operates": {"qubits": [3]}, "purpose": "measure", "type": "measure"}, "m4": {"operates": {"qubits": [4]}, "purpose": "measure", "type": "measure"}, "m5": {"operates": {"qubits": [5]}, "purpose": "measure", "type": "measure"}, "m6": {"operates": {"qubits": [6]}, "purpose": "measure", "type": "measure"}, "m7": {"operates": {"qubits": [7]}, "purpose": "measure", "type": "measure"}, "m8": {"operates": {"qubits": [8]}, "purpose": "measure", "type": "measure"}, "m9": {"operates": {"qubits": [9]}, "purpose": "measure", "type": "measure"}, "u0": {"operates": {"qubits": [0, 1]}, "purpose": "cross-resonance", "type": "control"}, "u1": {"operates": {"qubits": [1, 0]}, "purpose": "cross-resonance", "type": "control"}, "u10": {"operates": {"qubits": [5, 3]}, "purpose": "cross-resonance", "type": "control"}, "u11": {"operates": {"qubits": [5, 8]}, "purpose": "cross-resonance", "type": "control"}, "u12": {"operates": {"qubits": [6, 7]}, "purpose": "cross-resonance", "type": "control"}, "u13": {"operates": {"qubits": [7, 4]}, "purpose": "cross-resonance", "type": "control"}, "u14": {"operates": {"qubits": [7, 6]}, "purpose": "cross-resonance", "type": "control"}, "u15": {"operates": {"qubits": [7, 10]}, "purpose": "cross-resonance", "type": "control"}, "u16": {"operates": {"qubits": [8, 5]}, "purpose": "cross-resonance", "type": "control"}, "u17": {"operates": {"qubits": [8, 9]}, "purpose": "cross-resonance", "type": "control"}, "u18": {"operates": {"qubits": [8, 11]}, "purpose": "cross-resonance", "type": "control"}, "u19": {"operates": {"qubits": [9, 8]}, "purpose": "cross-resonance", "type": "control"}, "u2": {"operates": {"qubits": [1, 2]}, "purpose": "cross-resonance", "type": "control"}, "u20": {"operates": {"qubits": [10, 7]}, "purpose": "cross-resonance", "type": "control"}, "u21": {"operates": {"qubits": [10, 12]}, "purpose": "cross-resonance", "type": "control"}, "u22": {"operates": {"qubits": [11, 8]}, "purpose": "cross-resonance", "type": "control"}, "u23": {"operates": {"qubits": [11, 14]}, "purpose": "cross-resonance", "type": "control"}, "u24": {"operates": {"qubits": [12, 10]}, "purpose": "cross-resonance", "type": "control"}, "u25": {"operates": {"qubits": [12, 13]}, "purpose": "cross-resonance", "type": "control"}, "u26": {"operates": {"qubits": [12, 15]}, "purpose": "cross-resonance", "type": "control"}, "u27": {"operates": {"qubits": [13, 12]}, "purpose": "cross-resonance", "type": "control"}, "u28": {"operates": {"qubits": [13, 14]}, "purpose": "cross-resonance", "type": "control"}, "u29": {"operates": {"qubits": [14, 11]}, "purpose": "cross-resonance", "type": "control"}, "u3": {"operates": {"qubits": [1, 4]}, "purpose": "cross-resonance", "type": "control"}, "u30": {"operates": {"qubits": [14, 13]}, "purpose": "cross-resonance", "type": "control"}, "u31": {"operates": {"qubits": [14, 16]}, "purpose": "cross-resonance", "type": "control"}, "u32": {"operates": {"qubits": [15, 12]}, "purpose": "cross-resonance", "type": "control"}, "u33": {"operates": {"qubits": [15, 18]}, "purpose": "cross-resonance", "type": "control"}, "u34": {"operates": {"qubits": [16, 14]}, "purpose": "cross-resonance", "type": "control"}, "u35": {"operates": {"qubits": [16, 19]}, "purpose": "cross-resonance", "type": "control"}, "u36": {"operates": {"qubits": [17, 18]}, "purpose": "cross-resonance", "type": "control"}, "u37": {"operates": {"qubits": [18, 15]}, "purpose": "cross-resonance", "type": "control"}, "u38": {"operates": {"qubits": [18, 17]}, "purpose": "cross-resonance", "type": "control"}, "u39": {"operates": {"qubits": [18, 21]}, "purpose": "cross-resonance", "type": "control"}, "u4": {"operates": {"qubits": [2, 1]}, "purpose": "cross-resonance", "type": "control"}, "u40": {"operates": {"qubits": [19, 16]}, "purpose": "cross-resonance", "type": "control"}, "u41": {"operates": {"qubits": [19, 20]}, "purpose": "cross-resonance", "type": "control"}, "u42": {"operates": {"qubits": [19, 22]}, "purpose": "cross-resonance", "type": "control"}, "u43": {"operates": {"qubits": [20, 19]}, "purpose": "cross-resonance", "type": "control"}, "u44": {"operates": {"qubits": [21, 18]}, "purpose": "cross-resonance", "type": "control"}, "u45": {"operates": {"qubits": [21, 23]}, "purpose": "cross-resonance", "type": "control"}, "u46": {"operates": {"qubits": [22, 19]}, "purpose": "cross-resonance", "type": "control"}, "u47": {"operates": {"qubits": [22, 25]}, "purpose": "cross-resonance", "type": "control"}, "u48": {"operates": {"qubits": [23, 21]}, "purpose": "cross-resonance", "type": "control"}, "u49": {"operates": {"qubits": [23, 24]}, "purpose": "cross-resonance", "type": "control"}, "u5": {"operates": {"qubits": [2, 3]}, "purpose": "cross-resonance", "type": "control"}, "u50": {"operates": {"qubits": [24, 23]}, "purpose": "cross-resonance", "type": "control"}, "u51": {"operates": {"qubits": [24, 25]}, "purpose": "cross-resonance", "type": "control"}, "u52": {"operates": {"qubits": [25, 22]}, "purpose": "cross-resonance", "type": "control"}, "u53": {"operates": {"qubits": [25, 24]}, "purpose": "cross-resonance", "type": "control"}, "u54": {"operates": {"qubits": [25, 26]}, "purpose": "cross-resonance", "type": "control"}, "u55": {"operates": {"qubits": [26, 25]}, "purpose": "cross-resonance", "type": "control"}, "u6": {"operates": {"qubits": [3, 2]}, "purpose": "cross-resonance", "type": "control"}, "u7": {"operates": {"qubits": [3, 5]}, "purpose": "cross-resonance", "type": "control"}, "u8": {"operates": {"qubits": [4, 1]}, "purpose": "cross-resonance", "type": "control"}, "u9": {"operates": {"qubits": [4, 7]}, "purpose": "cross-resonance", "type": "control"}}} \ No newline at end of file diff --git a/qiskit/providers/fake_provider/backends/auckland/defs_auckland.json b/qiskit/providers/fake_provider/backends/auckland/defs_auckland.json new file mode 100644 index 000000000000..b70b37b449e5 --- /dev/null +++ b/qiskit/providers/fake_provider/backends/auckland/defs_auckland.json @@ -0,0 +1 @@ +{"qubit_freq_est": [4.932969834248503, 5.073818830016074, 5.005777359770017, 4.897239837230424, 4.920152233814071, 4.992825135169387, 5.0065195107816765, 4.828442195456001, 5.2036046150867605, 5.088380267158975, 4.726887639697103, 5.055185858571019, 4.889585658090766, 5.016776423291821, 5.167086880807076, 4.988481466676313, 4.969574668860307, 5.02539334125041, 4.787951526032318, 4.806272301305039, 4.691888528568098, 5.046314506003484, 4.968365240399085, 4.867905152838581, 4.956013065298386, 5.0769938518234765, 4.855869381199309], "meas_freq_est": [7.166366149000001, 7.290036566, 7.16720936, 7.289866161000001, 7.230809514000001, 7.225718035000001, 7.34053597, 7.108269204000001, 7.111764947, 7.337737400000001, 7.170815005000001, 7.235435442000001, 7.334726981, 7.223992816000001, 7.285324461, 7.283573103, 7.163917049, 7.3411595080000005, 7.114430141000001, 7.111011042, 7.333417041000001, 7.2305351170000005, 7.227873898, 7.272084477000001, 7.165657706, 7.289157489000001, 7.1592788270000005], "buffer": 0, "pulse_library": [{"name": "CX_d10_u15", "samples": [[-7.739331340417266e-05, -4.208877271594247e-06], [-0.00015660980716347694, -8.516904017596971e-06], [-0.0002376676129642874, -1.2925066585012246e-05], [-0.0003205840475857258, -1.743430766509846e-05], [-0.00040537561289966106, -2.2045524019631557e-05], [-0.0004920579376630485, -2.6759562388178892e-05], [-0.0005806456319987774, -3.1577223126078025e-05], [-0.0006711524329148233, -3.64992483810056e-05], [-0.0007635909714736044, -4.152633118792437e-05], [-0.0008579730056226254, -4.665910455514677e-05], [-0.0009543089545331895, -5.189813964534551e-05], [-0.001052608247846365, -5.7243945775553584e-05], [-0.0011528790928423405, -6.269697041716427e-05], [-0.0012551284162327647, -6.825759191997349e-05], [-0.001359362038783729, -7.392612315015867e-05], [-0.0014655842678621411, -7.970279693836346e-05], [-0.0015737981302663684, -8.55877879075706e-05], [-0.0016840052558109164, -9.158117609331384e-05], [-0.0017962059937417507, -9.768298332346603e-05], [-0.0019103989470750093, -0.00010389313683845103], [-0.0020265814382582903, -0.00011021147656720132], [-0.0021447488106787205, -0.00011663777695503086], [-0.002264895709231496, -0.00012317171785980463], [-0.002387014217674732, -0.000129812877275981], [-0.002511095255613327, -0.00013656077499035746], [-0.0026371278800070286, -0.0001434147998224944], [-0.0027650995180010796, -0.0001503742823842913], [-0.0028949957340955734, -0.0001574384223204106], [-0.003026800462976098, -0.00016460634651593864], [-0.003160495776683092, -0.00017187707999255508], [-0.0032960616517812014, -0.00017924956046044827], [-0.003433476435020566, -0.00018672258011065423], [-0.003572716610506177, -0.00019429487292654812], [-0.0037137565668672323, -0.00020196505647618324], [-0.0038565692957490683, -0.00020973161736037582], [-0.004001124761998653, -0.00021759298397228122], [-0.0041473922319710255, -0.00022554742463398725], [-0.004295337945222855, -0.00023359314945992082], [-0.0044449265114963055, -0.00024172822304535657], [-0.004596121143549681, -0.00024995062267407775], [-0.004748881794512272, -0.000258258223766461], [-0.004903167486190796, -0.00026664871256798506], [-0.005058934912085533, -0.00027511981897987425], [-0.00521613797172904, -0.0002836689818650484], [-0.005374730098992586, -0.00029229369829408824], [-0.005534661468118429, -0.00030099123250693083], [-0.0056958808563649654, -0.00030975881963968277], [-0.005858334247022867, -0.00031859352020546794], [-0.006021966692060232, -0.0003274923365097493], [-0.006186720449477434, -0.0003364521253388375], [-0.006352536380290985, -0.00034546968527138233], [-0.006519352551549673, -0.0003545416402630508], [-0.006687107030302286, -0.0003636646142695099], [-0.006855733226984739, -0.0003728350275196135], [-0.007025165017694235, -0.000382049212930724], [-0.0071953339502215385, -0.0003913035034202039], [-0.007366168312728405, -0.000400593999074772], [-0.007537596859037876, -0.0004099167708773166], [-0.007709544617682695, -0.0004192678024992347], [-0.007881936617195606, -0.00042864299030043185], [-0.008054695092141628, -0.0004380381142254919], [-0.008227742277085781, -0.00044744889601133764], [-0.008400995284318924, -0.00045687094097957015], [-0.008574374951422215, -0.00046629979624412954], [-0.008747795596718788, -0.000475730950711295], [-0.008921174332499504, -0.00048515977687202394], [-0.009094423614442348, -0.0004945816472172737], [-0.009267457760870457, -0.0005039917305111885], [-0.00944018829613924, -0.0005133852828294039], [-0.009612524881958961, -0.000522757472936064], [-0.009784377180039883, -0.0005321032949723303], [-0.009955653920769691, -0.0005414178594946861], [-0.010126263834536076, -0.0005506961024366319], [-0.010296111926436424, -0.0005599329597316682], [-0.01046510599553585, -0.0005691233673132956], [-0.010633151046931744, -0.0005782621446996927], [-0.010800153017044067, -0.0005873441696166992], [-0.010966015048325062, -0.0005963642615824938], [-0.011130642145872116, -0.0006053171819075942], [-0.011293938383460045, -0.0006141976919025183], [-0.011455806903541088, -0.0006230006110854447], [-0.01161615177989006, -0.0006317206425592303], [-0.011774877086281776, -0.0006403526058420539], [-0.01193188689649105, -0.0006488912040367723], [-0.012087083421647549, -0.000657331314869225], [-0.012240372598171234, -0.0006656676414422691], [-0.012391658499836922, -0.0006738950032740831], [-0.012540846131742, -0.0006820082780905068], [-0.012687841430306435, -0.0006900022854097188], [-0.012832551263272762, -0.0006978720193728805], [-0.012974881567060947, -0.0007056123577058315], [-0.013114740140736103, -0.0007132182945497334], [-0.013252037577331066, -0.0007206849404610693], [-0.013386683538556099, -0.0007280073477886617], [-0.013518587686121464, -0.0007351806852966547], [-0.013647664338350296, -0.0007422002963721752], [-0.013773825950920582, -0.0007490613497793674], [-0.01389698963612318, -0.0007557593053206801], [-0.014017070643603802, -0.000762289681006223], [-0.014133987948298454, -0.0007686479948461056], [-0.014247661456465721, -0.0007748298812657595], [-0.01435801386833191, -0.0007808312075212598], [-0.0144649688154459, -0.0007866477244533598], [-0.014568452723324299, -0.0007922754739411175], [-0.014668392948806286, -0.0007977104978635907], [-0.014764719642698765, -0.000802949070930481], [-0.014857366681098938, -0.0008079874096438289], [-0.014946267008781433, -0.0008128221379593015], [-0.015031359158456326, -0.000817449705209583], [-0.015112582594156265, -0.0008218668517656624], [-0.015189878642559052, -0.0008260704926215112], [-0.015263194218277931, -0.000830057542771101], [-0.015332475304603577, -0.0008338252664543688], [-0.015397671610116959, -0.0008373708697035909], [-0.015458738431334496, -0.0008406918495893478], [-0.015515630133450031, -0.0008437857613898814], [-0.015568305738270283, -0.0008466504514217377], [-0.015616727992892265, -0.0008492837660014629], [-0.015660861507058144, -0.0008516838424839079], [-0.015700673684477806, -0.0008538489346392453], [-0.015736134722828865, -0.0008557774708606303], [-0.01576722040772438, -0.0008574679959565401], [-0.01579390838742256, -0.0008589193457737565], [-0.015816178172826767, -0.0008601304143667221], [-0.015834013000130653, -0.0008611003868281841], [-0.015847399830818176, -0.0008618284482508898], [-0.01585633121430874, -0.0008623141329735518], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.015861356630921364, -0.0008625874179415405], [-0.01585734263062477, -0.0008622641325928271], [-0.015850208699703217, -0.0008616895647719502], [-0.015839513391256332, -0.0008608283242210746], [-0.015825266018509865, -0.0008596809348091483], [-0.01580747775733471, -0.000858248327858746], [-0.01578615792095661, -0.0008565314929001033], [-0.015761325135827065, -0.0008545316522940993], [-0.01573299802839756, -0.0008522503194399178], [-0.01570119522511959, -0.0008496891241520643], [-0.015665940940380096, -0.000846849987283349], [-0.015627259388566017, -0.000843734887894243], [-0.015585181303322315, -0.0008403461542911828], [-0.015539734624326229, -0.0008366862311959267], [-0.015490952879190445, -0.0008327576797455549], [-0.015438871458172798, -0.0008285634685307741], [-0.015383528545498848, -0.0008241065079346299], [-0.015324962325394154, -0.0008193899993784726], [-0.015263215638697147, -0.000814417377114296], [-0.015198332257568836, -0.000809192075394094], [-0.015130357816815376, -0.0008037179941311479], [-0.015059341676533222, -0.0007979988004080951], [-0.014985333196818829, -0.0007920386851765215], [-0.014908384531736374, -0.000785841781180352], [-0.014828549697995186, -0.0007794124539941549], [-0.014745883643627167, -0.0007727551856078207], [-0.014660445973277092, -0.0007658745744265616], [-0.014572293497622013, -0.0007587753934785724], [-0.014481487683951855, -0.0007514625322073698], [-0.014388090930879116, -0.0007439409964717925], [-0.014292166568338871, -0.0007362159667536616], [-0.014193780720233917, -0.0007282926817424595], [-0.014092998579144478, -0.0007201764383353293], [-0.013989889062941074, -0.0007118727080523968], [-0.013884520158171654, -0.0007033870206214488], [-0.013776961714029312, -0.0006947250221855938], [-0.01366728451102972, -0.0006858924753032625], [-0.013555561192333698, -0.0006768950261175632], [-0.013441864401102066, -0.0006677386700175703], [-0.013326266780495644, -0.0006584292859770358], [-0.0132088428363204, -0.000648972752969712], [-0.01308966800570488, -0.0006393752410076559], [-0.012968816794455051, -0.0006296427454799414], [-0.012846364639699459, -0.0006197813781909645], [-0.012722388841211796, -0.000609797250945121], [-0.01259696576744318, -0.000599696533754468], [-0.01247017178684473, -0.0005894854548387229], [-0.012342083267867565, -0.0005791701260022819], [-0.012212778441607952, -0.0005687568336725235], [-0.012082332745194435, -0.0005582516896538436], [-0.011950824409723282, -0.0005476609221659601], [-0.01181832980364561, -0.0005369907012209296], [-0.011684924364089966, -0.0005262471968308091], [-0.01155068539083004, -0.0005154365207999945], [-0.011415688320994377, -0.0005045648431405425], [-0.011280008591711521, -0.0004936381592415273], [-0.011143720708787441, -0.0004826625226996839], [-0.011006900109350681, -0.0004716439580079168], [-0.010869619436562061, -0.00046058837324380875], [-0.010731952264904976, -0.000449501647381112], [-0.010593971237540245, -0.00043838960118591785], [-0.01045574713498354, -0.0004272579972166568], [-0.010317349806427956, -0.00041611248161643744], [-0.010178850963711739, -0.0004049587296321988], [-0.01004031766206026, -0.00039380224188789725], [-0.009901816956698895, -0.0003826484316959977], [-0.009763417765498161, -0.00037150271236896515], [-0.009625183418393135, -0.0003603702934924513], [-0.009487179107964039, -0.0003492564137559384], [-0.009349468164145947, -0.00033816610812209547], [-0.009212111122906208, -0.00032710438244976103], [-0.009075169451534748, -0.00031607606797479093], [-0.008938701823353767, -0.0003050859668292105], [-0.008802766911685467, -0.0002941387065220624], [-0.008667419664561749, -0.0002832388272508979], [-0.008532716892659664, -0.0002723907819017768], [-0.008398709818720818, -0.0002615988487377763], [-0.008265452459454536, -0.0002508672187104821], [-0.008132994174957275, -0.00024019998090807348], [-0.008001384325325489, -0.00022960106434766203], [-0.007870670408010483, -0.0002190742816310376], [-0.007740898057818413, -0.00020862335804849863], [-0.0076121119782328606, -0.0001982518151635304], [-0.007484354544430971, -0.0001879631308838725], [-0.007357666734606028, -0.00017776060849428177], [-0.007232088129967451, -0.00016764742031227797], [-0.007107657380402088, -0.00015762662224005908], [-0.006984409410506487, -0.00014770112466067076], [-0.00686238007619977, -0.00013787375064566731], [-0.006741601973772049, -0.00012814713409170508], [-0.0066221063025295734, -0.0001185238070320338], [-0.0065039233304560184, -0.00010900618508458138], [-0.0063870809972286224, -9.959653107216582e-05], [-0.006271605845540762, -9.029699867824093e-05], [-0.006157523486763239, -8.110960334306583e-05], [-0.006044856738299131, -7.20362295396626e-05], [-0.00593362795189023, -6.307864532573149e-05], [-0.0058238571509718895, -5.4238491429714486e-05], [-0.005715563427656889, -4.5517288526752964e-05], [-0.005608764011412859, -3.691642632475123e-05], [-0.005503475200384855, -2.8437183573259972e-05], [-0.00539971049875021, -2.0080715330550447e-05], [-0.005297482945024967, -1.1848060239572078e-05], [-0.005196804646402597, -3.7401457575469976e-06], [-0.005097685381770134, 4.24221798311919e-06], [-0.005000133998692036, 1.2098330444132444e-05], [-0.004904157482087612, 1.9827599317068234e-05], [-0.004809761885553598, 2.7429539841250516e-05], [-0.004716952331364155, 3.490377275738865e-05], [-0.0046257320791482925, 4.225001612212509e-05], [-0.004536102991551161, 4.946809713146649e-05], [-0.0044480664655566216, 5.655792847392149e-05], [-0.0043616220355033875, 6.351953197736293e-05], [-0.004276769235730171, 7.035300222923979e-05], [-0.004193504340946674, 7.705854659434408e-05], [-0.00411182502284646, 8.363643428310752e-05], [-0.0040317256934940815, 9.008705092128366e-05], [-0.003953201696276665, 9.641082579037175e-05], [-0.0038762458134442568, 0.00010260829731123522], [-0.0038008508272469044, 0.00010868006938835606], [-0.0037270085886120796, 0.00011462681868579239], [-0.0036547090858221054, 0.00012044928735122085], [-0.0035839430056512356, 0.00012614829756785184], [-0.0035146987065672874, 0.0001317247370025143], [-0.0034469650126993656, 0.00013717953697778285], [-0.003380729118362069, 0.00014251370157580823], [-0.0033159777522087097, 0.00014772830763831735], [-0.003252697642892599, 0.00015282444655895233], [-0.003129049902781844, 0.00016278216207865626], [-0.00306576956063509, 0.00016787830099929124], [-0.003001018427312374, 0.00017309290706180036], [-0.0029347825329750776, 0.00017842707165982574], [-0.002867048606276512, 0.00018388187163509429], [-0.0027978045400232077, 0.00018945831106975675], [-0.002727038227021694, 0.00019515732128638774], [-0.0026547389570623636, 0.0002009797899518162], [-0.0025808964855968952, 0.00020692653197329491], [-0.002505501499399543, 0.00021299830405041575], [-0.0024285458493977785, 0.00021919577557127923], [-0.002350021619349718, 0.00022551955771632493], [-0.002269922522827983, 0.00023197017435450107], [-0.0021882429718971252, 0.0002385480620432645], [-0.002104978309944272, 0.0002452536136843264], [-0.0020201250445097685, 0.00025208707666024566], [-0.0019336809637024999, 0.0002590486838016659], [-0.0018456444377079606, 0.0002661385224200785], [-0.0017560154665261507, 0.0002733565925154835], [-0.0016647950978949666, 0.00028070283588021994], [-0.0015719854272902012, 0.0002881770778913051], [-0.0014775899471715093, 0.00029577899840660393], [-0.0013816134305670857, 0.00030350827728398144], [-0.0012840618146583438, 0.0003113643906544894], [-0.0011849425500258803, 0.00031934675644151866], [-0.0010842642514035106, 0.0003274546761531383], [-0.0009820370469242334, 0.00033568733488209546], [-0.000878272345289588, 0.0003440438013058156], [-0.0007729831268079579, 0.0003525230276864022], [-0.0006661837687715888, 0.00036112390807829797], [-0.0005578901036642492, 0.0003698451037053019], [-0.0004481194191612303, 0.00037868524668738246], [-0.00033689054544083774, 0.00038764282362535596], [-0.0002242238842882216, 0.0003967162047047168], [-0.00011014133633580059, 0.0004059036145918071], [5.333621174941072e-06, 0.0004152031324338168], [0.00012217594485264271, 0.00042461277917027473], [0.00024035898968577385, 0.00043413040111772716], [0.0003598545154090971, 0.00044375372817739844], [0.0004806327342521399, 0.0004534803447313607], [0.0006026622140780091, 0.0004633077478501946], [0.0007259098347276449, 0.00047323323087766767], [0.0008503409335389733, 0.00048325402894988656], [0.0009759193053469062, 0.0004933672025799751], [0.001102606998756528, 0.0005035697249695659], [0.0012303645489737391, 0.0005138584529049695], [0.001359150861389935, 0.000524229952134192], [0.0014889230951666832, 0.0005346809048205614], [0.0016196370124816895, 0.0005452076438814402], [0.001751246745698154, 0.0005558065604418516], [0.001883705030195415, 0.0005664738127961755], [0.002016962505877018, 0.0005772054428234696], [0.0021509691141545773, 0.0005879973759874701], [0.0022856725845485926, 0.0005988454213365912], [0.0024210193660110235, 0.0006097453297115862], [0.002556954510509968, 0.0006206925609149039], [0.002693421905860305, 0.0006316826911643147], [0.002830363577231765, 0.0006427110056392848], [0.0029677203856408596, 0.0006537727313116193], [0.0031054317951202393, 0.0006648630369454622], [0.0032434361055493355, 0.0006759769166819751], [0.003381670219823718, 0.0006871093064546585], [0.0035200698766857386, 0.0006982550257816911], [0.003658569883555174, 0.0007094088359735906], [0.0037971034180372953, 0.0007205653237178922], [0.003935602959245443, 0.0007317190757021308], [0.004073999356478453, 0.0007428646204061806], [0.0042122239246964455, 0.0007539961952716112], [0.004350205417722464, 0.0007651082705706358], [0.004487872589379549, 0.0007761949673295021], [0.004625152796506882, 0.0007872505811974406], [0.004761973395943642, 0.0007982691167853773], [0.004898260813206434, 0.0008092447533272207], [0.00503394054248929, 0.0008201714372262359], [0.005168937612324953, 0.0008310431148856878], [0.005303176585584879, 0.0008418537909165025], [0.005436582025140524, 0.000852597295306623], [0.005569077096879482, 0.0008632675162516534], [0.005700585898011923, 0.000873858283739537], [0.0058310311287641525, 0.0008843634277582169], [0.005960336420685053, 0.0008947767782956362], [0.006088424474000931, 0.0009050920489244163], [0.0062152184545993805, 0.0009153031860478222], [0.0063406419940292835, 0.0009254038450308144], [0.0064646173268556595, 0.0009353879722766578], [0.0065870690159499645, 0.0009452493395656347], [0.006707920227199793, 0.0009549818350933492], [0.006827095523476601, 0.0009645794052630663], [0.006944519467651844, 0.0009740358800627291], [0.0070601170882582664, 0.0009833453223109245], [0.007173814345151186, 0.0009925016202032566], [0.007285537663847208, 0.001001499011181295], [0.0073952144011855125, 0.0010103316744789481], [0.007502772845327854, 0.001018993672914803], [0.007608141750097275, 0.0010274793021380901], [0.0077112517319619656, 0.0010357830906286836], [0.007812033407390118, 0.0010438993340358138], [0.007910419255495071, 0.001051822560839355], [0.008006343618035316, 0.0010595476487651467], [0.008099740371108055, 0.0010670691262930632], [0.008190545253455639, 0.0010743819875642657], [0.008278697729110718, 0.001081481110304594], [0.008364136330783367, 0.0010883617214858532], [0.008446802385151386, 0.0010950190480798483], [0.008526637218892574, 0.0011014484334737062], [0.008603585883975029, 0.0011076453374698758], [0.008677594363689423, 0.0011136054527014494], [0.008748610503971577, 0.0011193245882168412], [0.008816584944725037, 0.0011247986694797873], [0.008881468325853348, 0.0011300239711999893], [0.008943215012550354, 0.0011349966516718268], [0.009001780301332474, 0.0011397131020203233], [0.009057124145328999, 0.0011441700626164675], [0.009109205566346645, 0.0011483642738312483], [0.00915798731148243, 0.00115229282528162], [0.009203433059155941, 0.001155952806584537], [0.009245512075722218, 0.0011593415401875973], [0.009284193627536297, 0.0011624565813690424], [0.009319447912275791, 0.0011652957182377577], [0.00935125071555376, 0.001167856971733272], [0.00937957875430584, 0.0011701382463797927], [0.009404410608112812, 0.0011721380287781358], [0.009425729513168335, 0.0011738549219444394], [0.009443518705666065, 0.0011752875288948417], [0.009457766078412533, 0.001176434918306768], [0.009468460455536842, 0.0011772961588576436], [0.009475595317780972, 0.0011778706684708595], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.009479609318077564, 0.0011781940702348948], [0.00947660580277443, 0.0011778207262977958], [0.009471268393099308, 0.001177157391794026], [0.009463267400860786, 0.0011761628556996584], [0.009452607482671738, 0.0011748380493372679], [0.009439298883080482, 0.001173183904029429], [0.009423349052667618, 0.001171201467514038], [0.009404770098626614, 0.0011688924860209227], [0.00938357599079609, 0.0011662582401186228], [0.009359782561659813, 0.001163301058113575], [0.009333405643701553, 0.0011600228026509285], [0.009304466657340527, 0.0011564259184524417], [0.009272984229028225, 0.0011525131994858384], [0.009238982573151588, 0.0011482872068881989], [0.009202485904097557, 0.0011437512002885342], [0.009163521230220795, 0.0011389082064852118], [0.00912211462855339, 0.0011337620671838522], [0.009078297764062881, 0.0011283161584287882], [0.00903210137039423, 0.001122574438340962], [0.008983558043837547, 0.0011165410978719592], [0.008932702243328094, 0.0011102204443886876], [0.008879570290446281, 0.0011036167852580547], [0.008824199438095093, 0.0010967350099235773], [0.008766628801822662, 0.0010895796585828066], [0.008706899359822273, 0.0010821560863405466], [0.008645052090287209, 0.001074469182640314], [0.0085811298340559, 0.0010665245354175568], [0.00851517729461193, 0.0010583274997770786], [0.008447240106761456, 0.0010498836636543274], [0.00837736390531063, 0.0010411989642307162], [0.008305597119033337, 0.0010322792222723365], [0.008231987245380878, 0.001023130607791245], [0.008156586438417435, 0.0010137591743841767], [0.008079443126916885, 0.0010041713248938322], [0.008000609464943409, 0.00099437334574759], [0.007920138537883759, 0.0009843717562034726], [0.007838082499802113, 0.000974173191934824], [0.007754494436085224, 0.0009637843468226492], [0.00766943022608757, 0.0009532119729556143], [0.007582944352179766, 0.0009424628224223852], [0.007495091762393713, 0.0009315439383499324], [0.007405929267406464, 0.0009204621310345829], [0.007315512280911207, 0.0009092245018109679], [0.00722389854490757, 0.0008978380355983973], [0.007131144404411316, 0.0008863098919391632], [0.007037307135760784, 0.0008746471139602363], [0.006942444015294313, 0.0008628568612039089], [0.006846613250672817, 0.0008509462932124734], [0.006749871652573347, 0.0008389225695282221], [0.006652276962995529, 0.0008267927914857864], [0.00655388692393899, 0.0008145641768351197], [0.006454758811742067, 0.0008022438269108534], [0.006354949437081814, 0.0007898388430476189], [0.006254516541957855, 0.0007773562683723867], [0.006153516471385956, 0.0007648032624274492], [0.00605200557038188, 0.0007521868101321161], [0.0059500401839613914, 0.000739513779990375], [0.00584767572581768, 0.0007267912151291966], [0.005744967609643936, 0.0007140258676372468], [0.0056419698521494865, 0.0007012246060185134], [0.0055387369357049465, 0.0006883940659463406], [0.0054353224113583565, 0.0006755409413017333], [0.005331778898835182, 0.0006626718095503747], [0.005228158552199602, 0.0006497931317426264], [0.00512451259419322, 0.0006369112525135279], [0.005020891781896353, 0.0006240325164981186], [0.004917345941066742, 0.0006111630937084556], [0.004813923966139555, 0.0005983090959489346], [0.004710674285888672, 0.0005854764604009688], [0.004607643466442823, 0.0005726710078306496], [0.004504877608269453, 0.0005598986172117293], [0.004402422811836004, 0.0005471647600643337], [0.004300322849303484, 0.0005344750243239105], [0.0041986205615103245, 0.0005218347650952637], [0.004097359254956245, 0.0005092492210678756], [0.003996578510850668, 0.0004967235145159066], [0.0038963197730481625, 0.00048426262219436467], [0.0037966209929436445, 0.0004718713753391057], [0.003697520587593317, 0.0004595544305630028], [0.0035990546457469463, 0.0004473164153750986], [0.0035012592561542988, 0.00043516166624613106], [0.003404168179258704, 0.00042309449054300785], [0.003307814709842205, 0.0004111190210096538], [0.0032122312113642693, 0.0003992391866631806], [0.003117447951808572, 0.0003874588292092085], [0.0030234945006668568, 0.0003757816448342055], [0.0029303994961082935, 0.00036421112599782646], [0.002838189946487546, 0.0003527506487444043], [0.0027468919288367033, 0.00034140347270295024], [0.002656529890373349, 0.0003301726246718317], [0.0025671275798231363, 0.00031906107324175537], [0.002478707116097212, 0.0003080715541727841], [0.002391289686784148, 0.000297206686809659], [0.0023048955481499434, 0.0002864689740817994], [0.0022195428609848022, 0.0002758607442956418], [0.00213524978607893, 0.00026538418023847044], [0.0020520321559160948, 0.0002550413191784173], [0.0019699055701494217, 0.0002448340237606317], [0.0018888841150328517, 0.00023476409842260182], [0.0018089805962517858, 0.0002248331147711724], [0.0017302068881690502, 0.00021504255710169673], [0.001652573817409575, 0.0002053937641903758], [0.0015760910464450717, 0.00019588792929425836], [0.0015007670735940337, 0.00018652612925507128], [0.0014266095822677016, 0.0001773092953953892], [0.001353624858893454, 0.00016823822807054967], [0.0012818186078220606, 0.00015931362577248365], [0.0012111952528357506, 0.00015053605602588505], [0.0011417582863941789, 0.00014190592628438026], [0.0010735103860497475, 0.00013342358579393476], [0.001006453181616962, 0.00012508923828136176], [0.0009405873715877533, 0.00011690295650623739], [0.0008759128395467997, 0.00010886474774451926], [0.0008124287123791873, 0.00010097448102897033], [0.0007501330110244453, 9.323192352894694e-05], [0.0006890232325531542, 8.563676237827167e-05], [0.0006290959427133203, 7.818856829544529e-05], [0.0005703469505533576, 7.088681741151959e-05], [0.0005127713084220886, 6.373090582201257e-05], [0.000456363515695557, 5.67201386729721e-05], [0.00040111716953106225, 4.985372652299702e-05], [0.0003470254014246166, 4.313081080908887e-05], [0.0002940805861726403, 3.655044929473661e-05], [0.0002422745164949447, 3.0111619707895443e-05], [0.00019159846124239266, 2.3813234292902052e-05], [0.00014204309263732284, 1.7654136172495782e-05], [9.35985372052528e-05, 1.1633099347818643e-05], [4.6254455810412765e-05, 5.748836429120274e-06]]}, {"name": "CX_d13_u30", "samples": [[-6.303672125795856e-05, -2.013711991821765e-06], [-0.00012755842180922627, -4.074861408298602e-06], [-0.0001935798500198871, -6.183920504554408e-06], [-0.00026111514307558537, -8.341339707840234e-06], [-0.00033017771784216166, -1.0547548299655318e-05], [-0.000400780321797356, -1.2802952369384002e-05], [-0.0004729348293039948, -1.5107932995306328e-05], [-0.0005466524744406343, -1.7462847608840093e-05], [-0.0006219435017555952, -1.9868024537572637e-05], [-0.0006988174864090979, -2.2323769371723756e-05], [-0.0007772829849272966, -2.483035314071458e-05], [-0.0008573475643061101, -2.7388021408114582e-05], [-0.0009390179766342044, -2.9996988814673387e-05], [-0.001022299868054688, -3.265743362135254e-05], [-0.001107197953388095, -3.536951044225134e-05], [-0.0011937158415094018, -3.81333265977446e-05], [-0.0012818557443097234, -4.094896212336607e-05], [-0.0013716192916035652, -4.381646431284025e-05], [-0.0014630065998062491, -4.673583680414595e-05], [-0.0015560165047645569, -4.970704685547389e-05], [-0.0016506469110026956, -5.2730018069269136e-05], [-0.0017468942096456885, -5.5804644944146276e-05], [-0.001844753627665341, -5.89307674090378e-05], [-0.001944218878634274, -6.210819265106693e-05], [-0.0020452826283872128, -6.53366805636324e-05], [-0.0021479360293596983, -6.861594738438725e-05], [-0.002252168720588088, -7.194566569523886e-05], [-0.0023579690605401993, -7.532546442234889e-05], [-0.0024653235450387, -7.875492156017572e-05], [-0.0025742182042449713, -8.223355689551681e-05], [-0.0026846362743526697, -8.576087566325441e-05], [-0.002796560525894165, -8.933629578677937e-05], [-0.0029099714010953903, -9.295921336160973e-05], [-0.0030248481780290604, -9.662896627560258e-05], [-0.003141168737784028, -0.00010034483420895413], [-0.003258909098803997, -0.00010410605318611488], [-0.0033780436497181654, -0.00010791181557578966], [-0.0034985451493412256, -0.00011176124098710716], [-0.0036203849595040083, -0.0001156534199253656], [-0.003743532346561551, -0.00011958737741224468], [-0.0038679558783769608, -0.0001235620875377208], [-0.0039936210960149765, -0.00012757648073602468], [-0.004120493307709694, -0.0001316294219577685], [-0.004248535260558128, -0.00013571973249781877], [-0.004377708304673433, -0.00013984616089146584], [-0.0045079723931849, -0.00014400745567400008], [-0.004639284685254097, -0.00014820224896539003], [-0.004771602805703878, -0.00015242915833368897], [-0.004904881119728088, -0.0001566867285873741], [-0.005039073061197996, -0.0001609734899830073], [-0.005174129735678434, -0.0001652878854656592], [-0.005310001317411661, -0.00016962832887656987], [-0.005446636583656073, -0.00017399314674548805], [-0.005583982914686203, -0.0001783806801540777], [-0.005721984896808863, -0.000182789153768681], [-0.005860586650669575, -0.00018721680680755526], [-0.005999731365591288, -0.0001916617911774665], [-0.006139359436929226, -0.00019612221512943506], [-0.006279410794377327, -0.00020059615781065077], [-0.006419823504984379, -0.00020508166926447302], [-0.006560535170137882, -0.00020957671222276986], [-0.0067014810629189014, -0.00021407923486549407], [-0.006842595990747213, -0.000218587156268768], [-0.006983812898397446, -0.0002230983373010531], [-0.007125064264982939, -0.00022761062427889556], [-0.007266280706971884, -0.00023212179075926542], [-0.0074073923751711845, -0.00023662961029913276], [-0.00754832848906517, -0.00024113181279972196], [-0.007689016405493021, -0.00024562611361034214], [-0.007829383946955204, -0.00025011016987264156], [-0.007969358004629612, -0.0002545816241763532], [-0.008108862675726414, -0.0002590381191112101], [-0.00824782345443964, -0.00026347723905928433], [-0.008386164903640747, -0.00026789656840264797], [-0.008523810654878616, -0.00027229366241954267], [-0.008660683408379555, -0.0002766660472843796], [-0.008796704933047295, -0.00028101130737923086], [-0.008931799791753292, -0.0002853269106708467], [-0.00906588789075613, -0.00028961035422980785], [-0.00919889286160469, -0.00029385919333435595], [-0.009330734610557556, -0.00029807089595124125], [-0.00946133490651846, -0.0003022429591510445], [-0.009590616449713707, -0.0003063728509005159], [-0.009718501009047031, -0.0003104580973740667], [-0.009844908490777016, -0.00031449622474610806], [-0.009969762526452541, -0.00031848467187955976], [-0.010092983953654766, -0.0003224210231564939], [-0.010214497335255146, -0.00032630274654366076], [-0.010334224440157413, -0.0003301274555269629], [-0.010452089831233025, -0.00033389267628081143], [-0.010568018071353436, -0.0003375959931872785], [-0.010681932792067528, -0.00034123501973226666], [-0.010793761350214481, -0.00034480736940167844], [-0.010903430171310902, -0.00034831074299290776], [-0.011010865680873394, -0.00035174278309568763], [-0.011115998029708862, -0.00035510124871507287], [-0.01121875736862421, -0.0003583838988561183], [-0.011319073848426342, -0.0003615884925238788], [-0.01141687948256731, -0.000364712905138731], [-0.011512108147144318, -0.00036775501212105155], [-0.01160469464957714, -0.00037071271799504757], [-0.01169457659125328, -0.0003735839854925871], [-0.011781691573560238, -0.0003763668646570295], [-0.011865979060530663, -0.0003790594346355647], [-0.01194737944751978, -0.00038165980367921293], [-0.012025837786495686, -0.00038416613824665546], [-0.012101298198103905, -0.0003865767503157258], [-0.012173707596957684, -0.0003888898645527661], [-0.012243015691637993, -0.0003911038802471012], [-0.012309171259403229, -0.0003932172548957169], [-0.01237212959676981, -0.00039522844599559903], [-0.012431844137609005, -0.00039713605656288564], [-0.012488273903727531, -0.0003989386896137148], [-0.012541376985609531, -0.00040063506457954645], [-0.012591115199029446, -0.00040222395909950137], [-0.012637453153729439, -0.00040370423812419176], [-0.012680357322096825, -0.0004050748248118907], [-0.012719796970486641, -0.0004063347296323627], [-0.012755743227899075, -0.00040748302126303315], [-0.012788170017302036, -0.0004085189139004797], [-0.01281705405563116, -0.0004094415926374495], [-0.012842373922467232, -0.0004102504171896726], [-0.012864110060036182, -0.0004109448054805398], [-0.012882248498499393, -0.0004115242336411029], [-0.012896775268018246, -0.00041198829421773553], [-0.012907680124044418, -0.0004123366379644722], [-0.012914953753352165, -0.00041256900294683874], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.0129190469160676, -0.00041269976645708084], [-0.012915924191474915, -0.000412558059906587], [-0.012910373508930206, -0.0004123062244616449], [-0.012902054004371166, -0.00041192868957296014], [-0.012890969403088093, -0.0004114257462788373], [-0.012877129949629307, -0.0004107977729290724], [-0.01286054402589798, -0.00041004520608112216], [-0.012841224670410156, -0.0004091686278115958], [-0.012819185853004456, -0.00040816862019710243], [-0.01279444433748722, -0.0004070459690410644], [-0.012767016887664795, -0.000405801460146904], [-0.012736923061311245, -0.0004044359957333654], [-0.012704187072813511, -0.0004029505653306842], [-0.012668829411268234, -0.00040134627488441765], [-0.012630878947675228, -0.00039962425944395363], [-0.012590359896421432, -0.00039778577047400177], [-0.012547303922474384, -0.0003958321176469326], [-0.012501740828156471, -0.00039376469794660807], [-0.01245370227843523, -0.00039158499566838145], [-0.012403224594891071, -0.00038929455331526697], [-0.012350342236459255, -0.00038689502980560064], [-0.012295092456042767, -0.00038438811316154897], [-0.01223751436918974, -0.0003817755787167698], [-0.012177649885416031, -0.0003790592309087515], [-0.012115539982914925, -0.0003762410196941346], [-0.012051227502524853, -0.0003733228659257293], [-0.011984757147729397, -0.00037030683597549796], [-0.011916176415979862, -0.0003671949962154031], [-0.011845530942082405, -0.00036398950032889843], [-0.011772869154810905, -0.00036069253110326827], [-0.011698242276906967, -0.0003573063586372882], [-0.011621699668467045, -0.0003538332530297339], [-0.011543292552232742, -0.00035027560079470277], [-0.011463074944913387, -0.0003466357593424618], [-0.011381099931895733, -0.00034291617339476943], [-0.011297420598566532, -0.00033911928767338395], [-0.011212093755602837, -0.0003352476342115551], [-0.011125175282359123, -0.0003313037159387022], [-0.011036720126867294, -0.0003272901230957359], [-0.010946787893772125, -0.0003232094459235668], [-0.010855433531105518, -0.0003190643328707665], [-0.010762717574834824, -0.00031485737417824566], [-0.010668696835637093, -0.00031059124739840627], [-0.010573431849479675, -0.0003062686009798199], [-0.010476980358362198, -0.00030189219978637993], [-0.01037940289825201, -0.0002974646631628275], [-0.010280759073793888, -0.00029298875597305596], [-0.010181108489632607, -0.00028846715576946735], [-0.010080511681735516, -0.0002839025983121246], [-0.009979027323424816, -0.0002792977902572602], [-0.009876715019345284, -0.00027465546736493707], [-0.009773636236786842, -0.0002699783071875572], [-0.009669848717749119, -0.00026526901638135314], [-0.009565412998199463, -0.0002605303016025573], [-0.009460387751460075, -0.00025576481129974127], [-0.009354830719530582, -0.00025097522302530706], [-0.00924880150705576, -0.00024616418522782624], [-0.009142356924712658, -0.00024133433180395514], [-0.009035555645823479, -0.00023648823844268918], [-0.008928452618420124, -0.00023162850993685424], [-0.00882110558450222, -0.00022675767831970006], [-0.008713568560779095, -0.00022187826107256114], [-0.0086058983579278, -0.000216992775676772], [-0.008498148061335087, -0.00021210365230217576], [-0.00839037075638771, -0.0002072133356705308], [-0.008282620459794998, -0.00020232419774401933], [-0.008174947462975979, -0.00019743859593290836], [-0.008067403919994831, -0.00019255884399171919], [-0.007960038259625435, -0.00018768719746731222], [-0.007852901704609394, -0.00018282589735463262], [-0.007746039889752865, -0.00017797712644096464], [-0.0076395017094910145, -0.0001731429947540164], [-0.007533332332968712, -0.000168325612321496], [-0.0074275764636695385, -0.0001635270018596202], [-0.007322278805077076, -0.00015874917153269053], [-0.007217481732368469, -0.00015399405674543232], [-0.007113227155059576, -0.00014926354924682528], [-0.0070095546543598175, -0.00014455946802627295], [-0.006906504277139902, -0.00013988360296934843], [-0.006804114207625389, -0.00013523770030587912], [-0.0067024207673966885, -0.00013062340440228581], [-0.006601459812372923, -0.00012604235962498933], [-0.0065012662671506405, -0.00012149613030487671], [-0.006401872728019953, -0.00011698620801325887], [-0.006303311791270971, -0.00011251404794165865], [-0.006205613724887371, -0.00010808104707393795], [-0.00610880833119154, -0.00010368855146225542], [-0.006012924015522003, -9.933783439919353e-05], [-0.0059179868549108505, -9.503011096967384e-05], [-0.005824023392051458, -9.076656715478748e-05], [-0.005731057841330767, -8.654829434817657e-05], [-0.0056391130201518536, -8.237635483965278e-05], [-0.005548211745917797, -7.825175271136686e-05], [-0.0054583740420639515, -7.417541200993583e-05], [-0.005369619466364384, -7.01482204021886e-05], [-0.005281966645270586, -6.617101462325081e-05], [-0.0051954323425889015, -6.224456592462957e-05], [-0.005110032856464386, -5.8369590988149866e-05], [-0.005025781691074371, -5.4546751925954595e-05], [-0.004942693747580051, -5.077666719444096e-05], [-0.004860780201852322, -4.705989340436645e-05], [-0.004780053161084652, -4.339693259680644e-05], [-0.0047005219385027885, -3.9788246795069426e-05], [-0.004622195847332478, -3.62342361768242e-05], [-0.004545082803815603, -3.273526453995146e-05], [-0.004469188861548901, -2.9291630198713392e-05], [-0.004394521005451679, -2.5903595087584108e-05], [-0.00432108249515295, -2.257137566630263e-05], [-0.004248878452926874, -1.929513382492587e-05], [-0.004177910275757313, -1.6074995073722675e-05], [-0.004108180291950703, -1.2911034900753293e-05], [-0.0040396894328296185, -9.803290595300496e-06], [-0.003972437232732773, -6.7517553361540195e-06], [-0.003906422760337591, -3.756383193831425e-06], [-0.0038416441529989243, -8.170886189873272e-07], [-0.003778098849579692, 2.0662525912484853e-06], [-0.003715782891958952, 4.893801360594807e-06], [-0.0036546923220157623, 7.665754310437478e-06], [-0.0035948220174759626, 1.0382343134551775e-05], [-0.003536165924742818, 1.3043832041148562e-05], [-0.0034787177573889494, 1.5650517525500618e-05], [-0.0034224700648337603, 1.8202728824689984e-05], [-0.0033674149308353662, 2.0700823370134458e-05], [-0.0033135442063212395, 2.314518678758759e-05], [-0.00326084834523499, 2.553623380663339e-05], [-0.0032093178015202284, 2.7874404622707516e-05], [-0.003158942563459277, 3.016016307810787e-05], [-0.003109711455181241, 3.2393996661994606e-05], [-0.003013515379279852, 3.6758843634743243e-05], [-0.002964284271001816, 3.899267903761938e-05], [-0.0029139090329408646, 4.1278435674030334e-05], [-0.002862378489226103, 4.3616604671115056e-05], [-0.0028096826281398535, 4.6007651690160856e-05], [-0.0027558119036257267, 4.845201692660339e-05], [-0.0027007567696273327, 5.0950111472047865e-05], [-0.0026445090770721436, 5.350232095224783e-05], [-0.002587060909718275, 5.610900916508399e-05], [-0.0025284048169851303, 5.877049625269137e-05], [-0.0024685345124453306, 6.148708780528978e-05], [-0.002407443942502141, 6.425903848139569e-05], [-0.0023451282177120447, 6.708658474963158e-05], [-0.0022815826814621687, 6.996993033681065e-05], [-0.0022168040741235018, 7.290922076208517e-05], [-0.0021507898345589638, 7.590459426864982e-05], [-0.002083537634462118, 7.895613089203835e-05], [-0.0020150465425103903, 8.206387428799644e-05], [-0.001945316675119102, 8.522783173248172e-05], [-0.0018743486143648624, 8.844797412166372e-05], [-0.0018021442228928208, 9.172421414405107e-05], [-0.0017287059454247355, 9.505643538432196e-05], [-0.0016540377400815487, 9.844447049545124e-05], [-0.0015781441470608115, 0.0001018881011987105], [-0.0015010309871286154, 0.00010538708011154085], [-0.0014227048959583044, 0.00010894108709180728], [-0.001343173673376441, 0.00011254977289354429], [-0.0012624465161934495, 0.00011621273006312549], [-0.0011805332032963634, 0.00011992950749117881], [-0.0010974450269713998, 0.00012369958858471364], [-0.0010131942108273506, 0.00012752243492286652], [-0.0009277943754568696, 0.00013139740622136742], [-0.0008412600727751851, 0.00013532386219594628], [-0.0007536071934737265, 0.00013930106069892645], [-0.0006648527923971415, 0.00014332824503071606], [-0.0005750151467509568, 0.0001474045857321471], [-0.0004841136687900871, 0.00015152919513639063], [-0.000392169167753309, 0.00015570114192087203], [-0.00029920352972112596, 0.00015991940745152533], [-0.00020524000865407288, 0.0001641829585423693], [-0.00011030304449377581, 0.00016849067469593138], [-1.4418354112422094e-05, 0.00017284139175899327], [8.23870868771337e-05, 0.0001772338873706758], [0.00018008505867328495, 0.0001816668955143541], [0.00027864606818184257, 0.00018613904830999672], [0.0003780393744818866, 0.00019064896332565695], [0.00047823303611949086, 0.00019519519992172718], [0.0005791937583126128, 0.00019977624469902366], [0.0006808871403336525, 0.00020439054060261697], [0.0007832774426788092, 0.00020903644326608628], [0.0008863278198987246, 0.0002137123083230108], [0.0009900000877678394, 0.00021841638954356313], [0.0010942550143226981, 0.00022314689704217017], [0.0011990520870313048, 0.00022790201182942837], [0.0013043497456237674, 0.00023267984215635806], [0.0014101052656769753, 0.00023747845261823386], [0.0015162746421992779, 0.00024229583505075425], [0.0016228130552917719, 0.0002471299667377025], [0.0017296744044870138, 0.0002519787522032857], [0.0018368117744103074, 0.0002568400523159653], [0.0019441768527030945, 0.00026171168428845704], [0.0020517208613455296, 0.0002665914362296462], [0.0021593936253339052, 0.0002714770380407572], [0.002267144387587905, 0.0002763661614153534], [0.002374921226873994, 0.00028125650715082884], [0.0024826715234667063, 0.0002861456014215946], [0.0025903419591486454, 0.0002910311159212142], [0.00269787828437984, 0.0002959105186164379], [0.002805225783959031, 0.0003007813647855073], [0.002912328578531742, 0.00030564109329134226], [0.0030191305559128523, 0.000310487172100693], [0.00312557490542531, 0.0003153170400764793], [0.003231604350730777, 0.00032012807787396014], [0.0033371609169989824, 0.0003249176370445639], [0.0034421863965690136, 0.0003296831273473799], [0.003546622348949313, 0.00033442184212617576], [0.0036504094023257494, 0.00033913113293237984], [0.003753488650545478, 0.0003438082931097597], [0.003855800023302436, 0.0003484506451059133], [0.003957284614443779, 0.0003530554531607777], [0.004057881888002157, 0.00035762001061812043], [0.004157532472163439, 0.00036214161082170904], [0.004256176296621561, 0.00036661751801148057], [0.004353753756731749, 0.00037104502553120255], [0.004450204782187939, 0.00037542145582847297], [0.004545469768345356, 0.0003797440731432289], [0.004639490507543087, 0.0003840101999230683], [0.004732206929475069, 0.00038821715861558914], [0.004823560826480389, 0.0003923623007722199], [0.004913493525236845, 0.000396442977944389], [0.005001948215067387, 0.00040045654168352485], [0.005088867153972387, 0.00040440045995637774], [0.005174193996936083, 0.00040827211341820657], [0.005257872864603996, 0.00041206899913959205], [0.005339848343282938, 0.00041578858508728445], [0.005420065950602293, 0.0004194284265395254], [0.005498472601175308, 0.000422986107878387], [0.005575015675276518, 0.00042645918438211083], [0.005649642553180456, 0.0004298453568480909], [0.0057223038747906685, 0.00043314232607372105], [0.005792949348688126, 0.0004363478219602257], [0.0058615305460989475, 0.0004394596617203206], [0.005928000435233116, 0.0004424756916705519], [0.005992312915623188, 0.0004453938454389572], [0.006054423283785582, 0.00044821208575740457], [0.00611428776755929, 0.00045092840446159244], [0.00617186538875103, 0.00045354096801020205], [0.006227115169167519, 0.0004560478846542537], [0.006279997527599335, 0.00045844740816392004], [0.006330475676804781, 0.0004607378214132041], [0.006378513760864735, 0.0004629175236914307], [0.006424077320843935, 0.0004649849433917552], [0.006467133294790983, 0.0004669385962188244], [0.0065076518803834915, 0.0004687771142926067], [0.006545602809637785, 0.00047049912973307073], [0.006580960005521774, 0.00047210342017933726], [0.006613696459680796, 0.00047358882147818804], [0.006643789820373058, 0.0004749542858917266], [0.006671217270195484, 0.000476198794785887], [0.006695959251374006, 0.0004773214750457555], [0.006717998068779707, 0.0004783214535564184], [0.006737316958606243, 0.00047919806092977524], [0.00675390288233757, 0.00047995062777772546], [0.0067677428014576435, 0.0004805786011274904], [0.006778826471418142, 0.0004810815444216132], [0.006787146907299757, 0.0004814590502064675], [0.006792697124183178, 0.0004817108856514096], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.006795820314437151, 0.00048185259220190346], [0.00679366709664464, 0.0004816999426111579], [0.006789840757846832, 0.0004814286367036402], [0.0067841047421097755, 0.00048102191067300737], [0.0067764632403850555, 0.0004804801137652248], [0.00676692184060812, 0.00047980359522625804], [0.006755487527698278, 0.0004789928498212248], [0.0067421686835587025, 0.0004780484887305647], [0.0067269750870764256, 0.00047697118134237826], [0.006709917448461056, 0.00047576174256391823], [0.006691008806228638, 0.0004744210164062679], [0.006670262198895216, 0.00047294999239966273], [0.006647692993283272, 0.00047134977648966014], [0.006623317953199148, 0.000469621445517987], [0.006597153842449188, 0.0004677663091570139], [0.006569220218807459, 0.00046578567707911134], [0.006539536640048027, 0.0004636810044758022], [0.006508124526590109, 0.0004614537756424397], [0.0064750066958367825, 0.0004591055621858686], [0.006440206430852413, 0.0004566380812320858], [0.006403748877346516, 0.00045405307901091874], [0.0063656591810286045, 0.0004513523599598557], [0.006325964350253344, 0.0004485378449317068], [0.006284693256020546, 0.0004456115129869431], [0.006241873372346163, 0.0004425754304975271], [0.006197535898536444, 0.00043943169293925166], [0.006151710636913776, 0.00043618251220323145], [0.006104430183768272, 0.0004328301001805812], [0.006055726669728756, 0.00042937681428156793], [0.006005633156746626, 0.00042582498281262815], [0.00595418456941843, 0.00042217705049552023], [0.005901414901018143, 0.00041843546205200255], [0.005847360473126173, 0.0004146027786191553], [0.005792057607322931, 0.00041068156133405864], [0.0057355426251888275, 0.0004066744295414537], [0.005677853710949421, 0.0004025840316899121], [0.0056190285831689835, 0.0003984130744356662], [0.005559105891734362, 0.000394164293538779], [0.005498124286532402, 0.00038984042475931346], [0.005436123348772526, 0.00038544429116882384], [0.005373143125325441, 0.0003809787449426949], [0.00530922319740057, 0.00037644655094482005], [0.0052444045431911945, 0.00037185061955824494], [0.005178727675229311, 0.00036719386116601527], [0.005112233106046915, 0.0003624791279435158], [0.005044962279498577, 0.00035770933027379215], [0.00497695617377758, 0.0003528874076437205], [0.004908256232738495, 0.00034801627043634653], [0.004838903434574604, 0.00034309885813854635], [0.004768938757479191, 0.00033813808113336563], [0.004698404110968113, 0.0003331368789076805], [0.0046273404732346535, 0.0003280981327407062], [0.004555788356810808, 0.0003230248112231493], [0.0044837892055511475, 0.00031791976653039455], [0.004411383531987667, 0.0003127858799416572], [0.0043386113829910755, 0.0003076260327361524], [0.004265513736754656, 0.00030244310619309545], [0.004192129708826542, 0.0002972398651763797], [0.004118499346077442, 0.0002920191618613899], [0.0040446617640554905, 0.00028678373200818896], [0.003970655146986246, 0.0002815363695845008], [0.003896518610417843, 0.0002762797521427274], [0.0038222894072532654, 0.0002710165863391012], [0.003748005023226142, 0.0002657495206221938], [0.003673702711239457, 0.00026048117433674634], [0.00359941809438169, 0.0002552140795160085], [0.003525187261402607, 0.0002499507972970605], [0.0034510453697293997, 0.0002446938306093216], [0.0033770266454666853, 0.0002394455805188045], [0.0033031650818884373, 0.00023420847719535232], [0.0032294937409460545, 0.00022898486349731684], [0.0031560449860990047, 0.00022377703862730414], [0.0030828507151454687, 0.00021858724358025938], [0.0030099416617304087, 0.0002134176902472973], [0.0029373483266681433, 0.00020827051775995642], [0.0028651002794504166, 0.00020314780704211444], [0.0027932256925851107, 0.0001980515953619033], [0.0027217529714107513, 0.00019298387633170933], [0.002650708891451359, 0.0001879465562524274], [0.0025801199954003096, 0.00018294149776920676], [0.0025100114289671183, 0.00017797050531953573], [0.002440408105030656, 0.0001730353251332417], [0.0023713335394859314, 0.0001681376452324912], [0.002302810549736023, 0.00016327908087987453], [0.002234861720353365, 0.00015846120368223637], [0.002167507540434599, 0.00015368552703876048], [0.0021007689647376537, 0.000148953462485224], [0.0020346648525446653, 0.00014426640700548887], [0.0019692142959684134, 0.00013962568482384086], [0.0019044349901378155, 0.0001350325474049896], [0.0018403434660285711, 0.00013048818800598383], [0.0017769559053704143, 0.00012599374167621136], [0.0017142874421551824, 0.00012155028525739908], [0.0016523523954674602, 0.00011715882283169776], [0.0015911641530692577, 0.00011282032210147008], [0.0015307354042306542, 0.00010853565618162975], [0.0014710776740685105, 0.00010430567635921761], [0.001412202138453722, 0.00010013114660978317], [0.001354118692688644, 9.601278725313023e-05], [0.0012968368828296661, 9.195126040140167e-05], [0.0012403649743646383, 8.794715540716425e-05], [0.001184710767120123, 8.400103979511186e-05], [0.0011298811296001077, 8.011338650248945e-05], [0.0010758822318166494, 7.628463208675385e-05], [0.001022719545289874, 7.251517672557384e-05], [0.0009703977266326547, 6.880533328512684e-05], [0.0009189206175506115, 6.515538552775979e-05], [0.0008682915940880775, 6.156557356007397e-05], [0.0008185130427591503, 5.80360610911157e-05], [0.0007695869426243007, 5.4566993640037253e-05], [0.0007215143996290863, 5.115844396641478e-05], [0.000674295995850116, 4.781045936397277e-05], [0.0006279316148720682, 4.452302528079599e-05], [0.0005824205582030118, 4.1296098061138764e-05], [0.0005377615452744067, 3.81295831175521e-05], [0.0004939526552334428, 3.502334584482014e-05], [0.0004509914724621922, 3.197721525793895e-05], [0.0004088749992661178, 2.8990978535148315e-05], [0.0003675997140817344, 2.6064386474899948e-05], [0.00032716162968426943, 2.319715167686809e-05], [0.00028755617677234113, 2.038895763689652e-05], [0.0002487784076947719, 1.7639449652051553e-05], [0.0002108228945871815, 1.4948241187084932e-05], [0.0001736837439239025, 1.2314917512412649e-05], [0.00013735468382947147, 9.739032066136133e-06], [0.00010182902042288333, 7.220111001515761e-06], [6.709968874929473e-05, 4.757654096465558e-06], [3.3159274607896805e-05, 2.351133844058495e-06]]}, {"name": "CX_d2_u2", "samples": [[-0.000152468666783534, -5.792186584585579e-06], [-0.00030852906638756394, -1.1720821930794045e-05], [-0.00046821695286780596, -1.7787262549973093e-05], [-0.0006315664504654706, -2.39928049268201e-05], [-0.0007986100390553474, -3.0338684155140072e-05], [-0.0009693784522823989, -3.6826066207140684e-05], [-0.0011439005611464381, -4.345604975242168e-05], [-0.0013222034322097898, -5.022966070100665e-05], [-0.0015043120365589857, -5.7147848565364257e-05], [-0.001690249191597104, -6.421148282242939e-05], [-0.0018800358520820737, -7.14213601895608e-05], [-0.0020736902952194214, -7.877816824475303e-05], [-0.0022712289355695248, -8.62825327203609e-05], [-0.002472665160894394, -9.393496293341741e-05], [-0.002678010379895568, -0.00010173590271733701], [-0.0028872734401375055, -0.00010968567221425474], [-0.003100460162386298, -0.00011778449697885662], [-0.003317573806270957, -0.0001260324934264645], [-0.0035386146046221256, -0.00013442970521282405], [-0.003763580461964011, -0.00014297600137069821], [-0.003992465324699879, -0.00015167120727710426], [-0.0042252615094184875, -0.0001605149736860767], [-0.004461956676095724, -0.00016950687859207392], [-0.0047025359235703945, -0.00017864633991848677], [-0.004946982022374868, -0.00018793267372529954], [-0.005195272155106068, -0.00019736506510525942], [-0.005447383038699627, -0.0002069425827357918], [-0.0057032848708331585, -0.00021666413522325456], [-0.005962946452200413, -0.00022652852931059897], [-0.006226332858204842, -0.00023653439711779356], [-0.006493404041975737, -0.00024668025434948504], [-0.00676411809399724, -0.00025696452939882874], [-0.007038428448140621, -0.0002673853887245059], [-0.007316284347325563, -0.0002779409405775368], [-0.007597632240504026, -0.00028862917679362], [-0.00788241345435381, -0.00029944785637781024], [-0.008170567452907562, -0.0003103946219198406], [-0.0084620276466012, -0.00032146702869795263], [-0.008756725117564201, -0.0003326623700559139], [-0.009054585359990597, -0.00034397791023366153], [-0.009355532005429268, -0.0003554106515366584], [-0.009659482166171074, -0.0003669575380627066], [-0.0099663520231843, -0.00037861531018279493], [-0.010276050306856632, -0.00039038056274876], [-0.010588484816253185, -0.00040224974509328604], [-0.01090355683118105, -0.0004142191610299051], [-0.01122116670012474, -0.00042628493974916637], [-0.011541208252310753, -0.0004384431231301278], [-0.011863572522997856, -0.0004506894911173731], [-0.012188144959509373, -0.0004630198236554861], [-0.01251481007784605, -0.00047542963875457644], [-0.012843447737395763, -0.00048791433800943196], [-0.013173931278288364, -0.0005004692357033491], [-0.013506134040653706, -0.0005130893550813198], [-0.013839922845363617, -0.0005257698358036578], [-0.014175163581967354, -0.0005385053809732199], [-0.01451171562075615, -0.0005512908101081848], [-0.014849438332021236, -0.0005641206516884267], [-0.015188184566795826, -0.0005769893759861588], [-0.01552780531346798, -0.0005898913950659335], [-0.01586814783513546, -0.0006028207717463374], [-0.016209058463573456, -0.0006157717434689403], [-0.016550377011299133, -0.0006287381984293461], [-0.01689194142818451, -0.000641714024823159], [-0.0172335896641016, -0.0006546930526383221], [-0.017575154080986977, -0.000667668879032135], [-0.017916465178132057, -0.0006806350429542363], [-0.018257351592183113, -0.0006935850833542645], [-0.018597638234496117, -0.0007065123645588756], [-0.01893714815378189, -0.0007194101344794035], [-0.019275706261396408, -0.0007322717574425042], [-0.019613131880760193, -0.0007450903067365289], [-0.01994924061000347, -0.0007578588556498289], [-0.02028384990990162, -0.0007705704774707556], [-0.02061677724123001, -0.0007832181290723383], [-0.020947834476828575, -0.0007957948255352676], [-0.02127683535218239, -0.00080829334910959], [-0.021603591740131378, -0.0008207065984606743], [-0.021927915513515472, -0.0008330274722538888], [-0.02224961668252945, -0.0008452486945316195], [-0.022568505257368088, -0.000857363105751574], [-0.022884393110871315, -0.000869363488163799], [-0.02319709025323391, -0.0008812426240183413], [-0.02350640669465065, -0.0008929933537729084], [-0.023812152445316315, -0.0009046084014698863], [-0.02411413937807083, -0.0009160807239823043], [-0.024412181228399277, -0.0009274031035602093], [-0.02470608800649643, -0.0009385684388689697], [-0.024995675310492516, -0.000949569686781615], [-0.02528076060116291, -0.0009603998623788357], [-0.02556115761399269, -0.000971051980741322], [-0.02583668753504753, -0.0009815192315727472], [-0.026107169687747955, -0.0009917946299538016], [-0.026372427120804787, -0.001001871656626463], [-0.026632286608219147, -0.0010117435595020652], [-0.026886573061347008, -0.0010214037029072642], [-0.02713511884212494, -0.0010308458004146814], [-0.02737775631248951, -0.0010400634491816163], [-0.027614321559667587, -0.0010490503627806902], [-0.027844654396176338, -0.00105780060403049], [-0.028068598359823227, -0.0010663080029189587], [-0.028285996988415718, -0.0010745669715106487], [-0.028496703132987022, -0.001082571572624147], [-0.0287005715072155, -0.0010903163347393274], [-0.02889745868742466, -0.0010977959027513862], [-0.029087228700518608, -0.0011050051543861628], [-0.02926974557340145, -0.0011119389673694968], [-0.02944488450884819, -0.0011185923358425498], [-0.029612520709633827, -0.0011249607196077704], [-0.02977253496646881, -0.0011310394620522857], [-0.02992481365799904, -0.0011368244886398315], [-0.030069246888160706, -0.0011423114920035005], [-0.030205734074115753, -0.0011474965140223503], [-0.030334174633026123, -0.0011523759458214045], [-0.030454479157924652, -0.0011569461785256863], [-0.030566558241844177, -0.0011612039525061846], [-0.03067033179104328, -0.001165146240964532], [-0.030765727162361145, -0.0011687702499330044], [-0.0308526698499918, -0.0011720731854438782], [-0.030931102111935616, -0.0011750527191907167], [-0.03100096434354782, -0.0011777067556977272], [-0.031062204390764236, -0.0011800333159044385], [-0.03111478127539158, -0.0011820305371657014], [-0.031158652156591415, -0.0011836972553282976], [-0.031193789094686508, -0.0011850320734083652], [-0.03122016228735447, -0.0011860339436680079], [-0.031237756833434105, -0.0011867024004459381], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031247656792402267, -0.001187078538350761], [-0.031240595504641533, -0.0011867060093209147], [-0.031228046864271164, -0.0011860441882163286], [-0.03120923601090908, -0.0011850519804283977], [-0.031184175983071327, -0.0011837303172796965], [-0.031152885407209396, -0.001182079897262156], [-0.03111538663506508, -0.0011801021173596382], [-0.031071705743670464, -0.0011777982581406832], [-0.031021878123283386, -0.001175170298665762], [-0.030965939164161682, -0.0011722197523340583], [-0.030903926119208336, -0.0011689490638673306], [-0.030835889279842377, -0.0011653605615720153], [-0.030761873349547386, -0.0011614568065851927], [-0.03068193420767784, -0.0011572404764592648], [-0.030596129596233368, -0.0011527149472385645], [-0.03050452098250389, -0.0011478831293061376], [-0.030407173559069633, -0.0011427487479522824], [-0.030304158106446266, -0.0011373154120519757], [-0.03019554726779461, -0.0011315869633108377], [-0.03008141927421093, -0.0011255675926804543], [-0.029961856082081795, -0.0011192613746970892], [-0.02983693964779377, -0.0011126729659736156], [-0.029706761240959167, -0.0011058070231229067], [-0.0295714121311903, -0.0010986682027578354], [-0.02943098545074463, -0.0010912616271525621], [-0.029285579919815063, -0.0010835925349965692], [-0.029135296121239662, -0.0010756660485640168], [-0.028980238363146782, -0.0010674878722056746], [-0.028820514678955078, -0.0010590635938569903], [-0.028656233102083206, -0.0010503988014534116], [-0.02848750539124012, -0.0010414996650069952], [-0.02831444889307022, -0.0010323721216991544], [-0.028137177228927612, -0.001023022225126624], [-0.027955809608101845, -0.0010134563781321049], [-0.027770468965172768, -0.0010036809835582972], [-0.02758127823472023, -0.0009937024442479014], [-0.02738836035132408, -0.0009835273958742619], [-0.02719184197485447, -0.0009731624741107225], [-0.02699185349047184, -0.0009626144310459495], [-0.02678852155804634, -0.0009518900187686086], [-0.02658197656273842, -0.0009409962804056704], [-0.026372350752353668, -0.0009299399680458009], [-0.026159778237342834, -0.0009187282412312925], [-0.025944389402866364, -0.0009073680266737938], [-0.0257263220846653, -0.0008958663675002754], [-0.025505706667900085, -0.0008842304814606905], [-0.02528267912566662, -0.0008724673534743488], [-0.02505737729370594, -0.0008605842012912035], [-0.024829933419823647, -0.000848588184453547], [-0.02460048533976078, -0.0008364863460883498], [-0.024369165301322937, -0.0008242858457379043], [-0.02413611114025116, -0.0008119938429445028], [-0.023901455104351044, -0.0007996174390427768], [-0.023665335029363632, -0.0007871636189520359], [-0.023427879437804222, -0.0007746395422145724], [-0.023189222440123558, -0.0007620520773343742], [-0.022949498146772385, -0.0007494082674384117], [-0.022708835080266, -0.0007367149810306728], [-0.022467363625764847, -0.0007239790284074843], [-0.022225212305784225, -0.0007112072198651731], [-0.021982507780194283, -0.0006984062492847443], [-0.021739374846220016, -0.000685582694131881], [-0.021495940163731575, -0.0006727431900799274], [-0.021252324804663658, -0.0006598941399715841], [-0.021008649840950966, -0.0006470419466495514], [-0.0207650326192379, -0.000634192896541208], [-0.02052159234881401, -0.0006213531014509499], [-0.0202784426510334, -0.0006085286731831729], [-0.020035699009895325, -0.0005957255489192903], [-0.019793467596173286, -0.0005829496076330543], [-0.01955186203122139, -0.0005702066118828952], [-0.01931098662316799, -0.0005575020913966], [-0.01907094568014145, -0.0005448415759019554], [-0.01883183978497982, -0.0005322304205037653], [-0.018593769520521164, -0.0005196738638915122], [-0.01835683174431324, -0.0005071769701316953], [-0.01812111772596836, -0.0004947448032908142], [-0.017886722460389137, -0.00048238204908557236], [-0.017653733491897583, -0.0004700934805441648], [-0.017422236502170563, -0.0004578836087603122], [-0.017192315310239792, -0.00044575685751624405], [-0.016964050009846687, -0.000433717475971207], [-0.016737518832087517, -0.0004217695677652955], [-0.0165127981454134, -0.0004099170910194516], [-0.016289958730340004, -0.0003981638583354652], [-0.016069071367383003, -0.0003865135367959738], [-0.01585020124912262, -0.0003749696770682931], [-0.015633411705493927, -0.0003635355969890952], [-0.015418766997754574, -0.0003522145270835608], [-0.015206322073936462, -0.00034100955235771835], [-0.014996133744716644, -0.000329923554090783], [-0.014788254164159298, -0.0003189593262504786], [-0.014582731761038303, -0.00030811948818154633], [-0.014379615895450115, -0.00029740651370957494], [-0.014178948476910591, -0.00028682270203717053], [-0.013980771414935589, -0.0002763702650554478], [-0.013785123825073242, -0.0002660512109287083], [-0.013592041097581387, -0.0002558674314059317], [-0.013401555828750134, -0.0002458206727169454], [-0.01321369968354702, -0.00023591255012433976], [-0.01302849967032671, -0.00022614453337155282], [-0.012845980934798717, -0.00021651796123478562], [-0.012666166760027409, -0.00020703401241917163], [-0.012489077635109425, -0.00019769376376643777], [-0.012314730323851109, -0.00018849814659915864], [-0.012143139727413654, -0.00017944797582458705], [-0.011974320746958256, -0.00017054392083082348], [-0.011808282695710659, -0.00016178654914256185], [-0.011645033024251461, -0.00015317629731725901], [-0.011484579183161259, -0.00014471348549705], [-0.011326925829052925, -0.00013639831740874797], [-0.011172072030603886, -0.00012823089491575956], [-0.01102001965045929, -0.00012021118891425431], [-0.010870765894651413, -0.00011233908298891038], [-0.010724306106567383, -0.00010461435886099935], [-0.010580634698271751, -9.703668183647096e-05], [-0.010439743287861347, -8.960563718574122e-05], [-0.01030162163078785, -8.232069376390427e-05], [-0.010166259482502937, -7.518126221839339e-05], [-0.010033642873167992, -6.818663678131998e-05], [-0.009903755970299244, -6.133603164926171e-05], [-0.0097765838727355, -5.462859553517774e-05], [-0.009652108885347843, -4.8063382564578205e-05], [-0.009530310519039631, -4.163937774137594e-05], [-0.009411169216036797, -3.5355493309907615e-05], [-0.00929466262459755, -2.921057603089139e-05], [-0.009180767461657524, -2.3203401724458672e-05], [-0.00906945951282978, -1.7332686184090562e-05], [-0.008851967751979828, -5.8614850786398165e-06], [-0.008740659803152084, 9.230553210670678e-09], [-0.008626764640212059, 6.016405222908361e-06], [-0.008510258048772812, 1.2161322956671938e-05], [-0.008391116745769978, 1.8445205569150858e-05], [-0.008269318379461765, 2.4869210392353125e-05], [-0.008144842460751534, 3.143442518194206e-05], [-0.00801767036318779, 3.8141861296026036e-05], [-0.007887784391641617, 4.499246279010549e-05], [-0.007755167316645384, 5.198709186515771e-05], [-0.007619804702699184, 5.9126527048647404e-05], [-0.007481683511286974, 6.641146319452673e-05], [-0.00734079210087657, 7.384251512121409e-05], [-0.007197120692580938, 8.142018486978486e-05], [-0.007050660904496908, 8.914491627365351e-05], [-0.006901407148689032, 9.701701492303982e-05], [-0.0067493547685444355, 0.00010503672092454508], [-0.006594501435756683, 0.0001132041506934911], [-0.006436847150325775, 0.0001215193115058355], [-0.00627639377489686, 0.00012998213060200214], [-0.006113144569098949, 0.00013859238242730498], [-0.005947106517851353, 0.0001473497541155666], [-0.005778287071734667, 0.00015625379455741495], [-0.0056066969409585, 0.00016530397988390177], [-0.005432349629700184, 0.0001744995970511809], [-0.0052552600391209126, 0.00018383984570391476], [-0.005075445864349604, 0.00019332377996761352], [-0.004892927128821611, 0.00020295036665629596], [-0.004707727115601301, 0.0002127183834090829], [-0.004519870970398188, 0.00022262650600168854], [-0.004329386167228222, 0.0002326732501387596], [-0.004136302974075079, 0.00024285702966153622], [-0.003940655384212732, 0.0002531760837882757], [-0.0037424785550683737, 0.0002636285498738289], [-0.0035418113693594933, 0.0002742123615462333], [-0.003338694805279374, 0.0002849253360182047], [-0.0031331731006503105, 0.000295765174087137], [-0.0029252932872623205, 0.0003067293728236109], [-0.0027151047252118587, 0.00031781537109054625], [-0.002502660034224391, 0.0003290203458163887], [-0.002288014395162463, 0.0003403414157219231], [-0.002071226015686989, 0.000351775495801121], [-0.0018523558974266052, 0.00036331938463263214], [-0.0016314679523929954, 0.0003749696770682931], [-0.0014086286537349224, 0.0003867229097522795], [-0.001183907501399517, 0.0003985753864981234], [-0.0009573769057169557, 0.0004105232947040349], [-0.0007291120127774775, 0.00042256267624907196], [-0.0004991906462237239, 0.0004346894274931401], [-0.00026769356918521225, 0.0004468992992769927], [-3.470419687801041e-05, 0.00045918786781840026], [0.00019969133427366614, 0.0004715505929198116], [0.000435404188465327, 0.00048398281796835363], [0.0006723428377881646, 0.0004964796826243401], [0.0009104132186621428, 0.0005090362392365932], [0.001149518764577806, 0.0005216473946347833], [0.0013895600568503141, 0.0005343079101294279], [0.001630435697734356, 0.0005470124306157231], [0.0018720414955168962, 0.0005597554845735431], [0.002114271279424429, 0.0005725313676521182], [0.002357016084715724, 0.0005853344919160008], [0.002600165084004402, 0.0005981589201837778], [0.002843605587258935, 0.0006109987152740359], [0.00308722211048007, 0.0006238477653823793], [0.0033308977726846933, 0.000636699958704412], [0.003574513364583254, 0.0006495490088127553], [0.0038179485127329826, 0.0006623885128647089], [0.004061080515384674, 0.0006752120680175722], [0.004303785040974617, 0.000688013038598001], [0.004545936826616526, 0.0007007848471403122], [0.004787408281117678, 0.0007135207997635007], [0.0050280713476240635, 0.0007262140861712396], [0.005267796106636524, 0.0007388578960672021], [0.005506452172994614, 0.0007514453609474003], [0.0057439072988927364, 0.0007639694376848638], [0.005980029236525297, 0.0007764232577756047], [0.0062146843411028385, 0.0007887996616773307], [0.006447738502174616, 0.0008010916644707322], [0.006679057609289885, 0.0008132921648211777], [0.006908506620675325, 0.0008253940031863749], [0.007135950028896332, 0.0008373900200240314], [0.0073612527921795845, 0.0008492731722071767], [0.00758427893742919, 0.0008610363001935184], [0.007804894354194403, 0.0008726721862331033], [0.00802296306937933, 0.0008841738454066217], [0.008238350972533226, 0.0008955340599641204], [0.008450924418866634, 0.0009067458449862897], [0.00866054929792881, 0.0009178020991384983], [0.008867094293236732, 0.0009286958957090974], [0.009070426225662231, 0.0009394202497787774], [0.009270415641367435, 0.0009499682928435504], [0.009466933086514473, 0.0009603332146070898], [0.009659850969910622, 0.0009705083211883903], [0.009849042631685734, 0.000980486860498786], [0.010034383274614811, 0.0009902622550725937], [0.010215749964118004, 0.000999828102067113], [0.010393021628260612, 0.0010091778822243214], [0.010566079057753086, 0.001018305541947484], [0.010734805837273598, 0.0010272046783939004], [0.01089908741414547, 0.0010358693543821573], [0.011058812029659748, 0.0010442937491461635], [0.011213868856430054, 0.0010524719255045056], [0.011364152655005455, 0.0010603982955217361], [0.01150955818593502, 0.001068067504093051], [0.011649984866380692, 0.0010754740796983242], [0.011785334907472134, 0.0010826127836480737], [0.011915513314306736, 0.0010894788429141045], [0.012040428817272186, 0.001096067251637578], [0.012159992940723896, 0.0011023733532056212], [0.012274120002985, 0.0011083928402513266], [0.012382730841636658, 0.0011141212889924645], [0.012485746294260025, 0.0011195546248927712], [0.012583093717694283, 0.0011246890062466264], [0.01267470233142376, 0.0011295207077637315], [0.012760506942868233, 0.0011340463533997536], [0.012840446084737778, 0.0011382625671103597], [0.012914462015032768, 0.001142166438512504], [0.012982499785721302, 0.0011457549408078194], [0.013044511899352074, 0.001149025629274547], [0.013100451789796352, 0.001151976059190929], [0.01315027941018343, 0.001154604135081172], [0.01319395937025547, 0.0011569078778848052], [0.013231458142399788, 0.0011588857742026448], [0.013262748718261719, 0.0011605360778048635], [0.013287808746099472, 0.0011618578573688865], [0.01330662053078413, 0.0011628500651568174], [0.013319169171154499, 0.0011635118862614036], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013326230458915234, 0.001163884298875928], [0.013322007842361927, 0.001163515611551702], [0.013314505107700825, 0.0011628601932898164], [0.013303256593644619, 0.0011618778808042407], [0.01328827254474163, 0.0011605691397562623], [0.013269562274217606, 0.0011589350178837776], [0.013247139751911163, 0.0011569767957553267], [0.013221022672951221, 0.0011546957539394498], [0.013191228732466698, 0.0011520935222506523], [0.013157779350876808, 0.0011491721961647272], [0.013120700605213642, 0.0011459337547421455], [0.013080017641186714, 0.0011423806427046657], [0.013035761192440987, 0.0011385154211893678], [0.012987962923943996, 0.0011343407677486539], [0.01293665636330843, 0.0011298598255962133], [0.012881879694759846, 0.0011250757379457355], [0.012823672033846378, 0.001119991997256875], [0.012762075290083885, 0.0011146122124046087], [0.012697132304310799, 0.0011089403415098786], [0.012628891505300999, 0.001102980226278305], [0.012557399459183216, 0.0010967362904921174], [0.01248270832002163, 0.0010902128415182233], [0.012404869310557842, 0.0010834146523848176], [0.012323938310146332, 0.0010763462632894516], [0.012239971198141575, 0.0010690127965062857], [0.012153027579188347, 0.0010614192578941584], [0.012063167057931423, 0.0010535711189731956], [0.011970452032983303, 0.0010454736184328794], [0.011874946765601635, 0.0010371323442086577], [0.011776716448366642, 0.0010285531170666218], [0.011675828136503696, 0.001019741757772863], [0.01157235074788332, 0.0010107042035087943], [0.011466353200376034, 0.0010014466242864728], [0.011357907205820084, 0.0009919751901179552], [0.011247084476053715, 0.0009822961874306202], [0.011133959516882896, 0.0009724161354824901], [0.011018606834113598, 0.0009623414371162653], [0.010901100933551788, 0.00095207872800529], [0.010781520046293736, 0.0009416347602382302], [0.010659939609467983, 0.00093101616948843], [0.010536438785493374, 0.0009202298824675381], [0.010411095805466175, 0.0009092827094718814], [0.01028398983180523, 0.0008981815772131085], [0.010155200958251953, 0.0008869334124028683], [0.010024809278547764, 0.0008755452581681311], [0.009892894886434078, 0.0008640241576358676], [0.009759537875652313, 0.0008523770957253873], [0.00962482113391161, 0.0008406111737713218], [0.00948882382363081, 0.0008287334931083024], [0.009351626969873905, 0.0008167510386556387], [0.009213312529027462, 0.0008046709117479622], [0.009073960594832897, 0.0007925002137199044], [0.008933651261031628, 0.000780245871283114], [0.00879246462136507, 0.0007679149275645614], [0.008650480769574642, 0.0007555144256912172], [0.008507778868079185, 0.0007430511177517474], [0.008364438079297543, 0.0007305320468731225], [0.008220536634325981, 0.0007179640233516693], [0.00807615090161562, 0.0007053536828607321], [0.007931359112262726, 0.0006927078939042985], [0.007786237169057131, 0.000680033175740391], [0.0076408591121435165, 0.0006673362222500145], [0.007495299447327852, 0.0006546233780682087], [0.00734963221475482, 0.0006419011042453349], [0.007203929126262665, 0.0006291756872087717], [0.007058261428028345, 0.000616453355178237], [0.006912698969244957, 0.0006037402781657875], [0.006767310667783022, 0.0005910423351451755], [0.0066221640445292, 0.000578365579713136], [0.006477325223386288, 0.0005657156580127776], [0.006332859862595797, 0.0005530983908101916], [0.006188830826431513, 0.0005405191914178431], [0.006045300979167223, 0.0005279835895635188], [0.00590233039110899, 0.0005154968821443617], [0.005759979132562876, 0.0005030641914345324], [0.005618304014205933, 0.0004906905815005302], [0.005477362312376499, 0.0004783810582011938], [0.005337208043783903, 0.0004661402781493962], [0.005197894759476185, 0.00045397295616567135], [0.005059473682194948, 0.0004418835451360792], [0.004921994637697935, 0.0004298764397390187], [0.004785506054759026, 0.0004179558309260756], [0.00465005449950695, 0.00040612579323351383], [0.004515685141086578, 0.00039439022657461464], [0.004382440820336342, 0.0003827529726549983], [0.0042503634467720985, 0.000371217611245811], [0.00411949260160327, 0.00035978760570287704], [0.003989866469055414, 0.00034846633207052946], [0.0038615213707089424, 0.000337256962666288], [0.0037344922311604023, 0.0003261625242885202], [0.0036088123451918364, 0.00031518592732027173], [0.003484512912109494, 0.00030432987841777503], [0.00336162350140512, 0.0002935969678219408], [0.0032401722855865955, 0.00028298969846218824], [0.003120185574516654, 0.0002725103113334626], [0.0030016880482435226, 0.0002621609892230481], [0.0028847025241702795, 0.0002519437111914158], [0.002769250888377428, 0.00024186041264329106], [0.0026553524658083916, 0.0002319127816008404], [0.0025430258829146624, 0.0002221024187747389], [0.002432287437841296, 0.00021243076480459422], [0.002323152730241418, 0.00020289915846660733], [0.002215634798631072, 0.00019350877846591175], [0.0021097459830343723, 0.00018426068709231913], [0.002005496993660927, 0.00017515578656457365], [0.0019028965616598725, 0.0001661949063418433], [0.0018019529525190592, 0.0001573787012603134], [0.0017026721034199, 0.00014870772429276258], [0.0016050591366365552, 0.00014018241199664772], [0.0015091177774593234, 0.00013180309906601906], [0.0014148501213639975, 0.00012356997467577457], [0.0013222574489191175, 0.00011548311886144802], [0.001231339410878718, 0.00010754253889899701], [0.0011420947266742587, 9.974809654522687e-05], [0.0010545208351686597, 9.20995807973668e-05], [0.0009686140110716224, 8.459666423732415e-05], [0.0008843694813549519, 7.723893213551491e-05], [0.0008017814252525568, 7.002586789894849e-05], [0.0007208428578451276, 6.29568676231429e-05], [0.0006415459793061018, 5.6031247368082404e-05], [0.0005638818838633597, 4.92482322442811e-05], [0.00048784082173369825, 4.2606967326719314e-05], [0.00041341211181133986, 3.610652493080124e-05], [0.00034058428718708456, 2.9745899155386724e-05], [0.00026934497873298824, 2.3524013158748858e-05], [0.00019968111882917583, 1.7439719158574007e-05], [0.00013157881039660424, 1.149181025539292e-05], [6.502351607196033e-05, 5.679014066117816e-06]]}, {"name": "CX_d3_u10", "samples": [[-0.00010508189006941393, -4.543812337942654e-06], [-0.0002126392355421558, -9.194664926326368e-06], [-0.00032269663643091917, -1.3953621419204865e-05], [-0.00043527764501050115, -1.882169999589678e-05], [-0.0005504045984707773, -2.3799868358764797e-05], [-0.000668098742607981, -2.888904418796301e-05], [-0.0007883799844421446, -3.4090084227500483e-05], [-0.0009112668922170997, -3.94037997466512e-05], [-0.0010367766954004765, -4.4830929255113006e-05], [-0.0011649252846837044, -5.0372156692901626e-05], [-0.0012957267463207245, -5.602810415439308e-05], [-0.0014291941188275814, -6.179932097438723e-05], [-0.001565338228829205, -6.768629100406542e-05], [-0.001704168738797307, -7.368941442109644e-05], [-0.0018456934485584497, -7.980904047144577e-05], [-0.0019899182952940464, -8.604541653767228e-05], [-0.002136847237125039, -9.239871724275872e-05], [-0.0022864826023578644, -9.886905900202692e-05], [-0.002438824623823166, -0.00010545643453951925], [-0.002593871671706438, -0.00011216077109565958], [-0.0027516200207173824, -0.00011898192315129563], [-0.0029120638500899076, -0.00012591961422003806], [-0.003075194777920842, -0.0001329735096078366], [-0.0032410030253231525, -0.0001401431654812768], [-0.003409475786611438, -0.00014742804341949522], [-0.0035805983934551477, -0.0001548275031382218], [-0.0037543538492172956, -0.0001623408024897799], [-0.003930722363293171, -0.00016996709746308625], [-0.00410968204960227, -0.00017770544218365103], [-0.00429120846092701, -0.00018555477436166257], [-0.004475275054574013, -0.0001935139298439026], [-0.004661852028220892, -0.00020158164261374623], [-0.00485090771690011, -0.00020975653023924679], [-0.005042406730353832, -0.00021803709387313575], [-0.005236312747001648, -0.00022642170370090753], [-0.005432584788650274, -0.00023490865714848042], [-0.005631181411445141, -0.00024349612067453563], [-0.0058320569805800915, -0.0002521821006666869], [-0.006035163067281246, -0.0002609645598568022], [-0.006240449845790863, -0.0002698412863537669], [-0.006447862833738327, -0.00027880995185114443], [-0.0066573466174304485, -0.0002878681698348373], [-0.006868841592222452, -0.0002970133791677654], [-0.007082286756485701, -0.0003062429022975266], [-0.007297617848962545, -0.00031555394525639713], [-0.00751476688310504, -0.00032494362676516175], [-0.007733664475381374, -0.0003344088909216225], [-0.00795423798263073, -0.000343946652719751], [-0.008176412433385849, -0.0003535536234267056], [-0.00840010866522789, -0.00036322642699815333], [-0.00862524751573801, -0.0003729615709744394], [-0.008851745165884495, -0.0003827554755844176], [-0.009079515933990479, -0.00039260441553778946], [-0.009308471344411373, -0.00040250460733659565], [-0.009538519196212292, -0.0004124520637560636], [-0.009769568219780922, -0.0004224427684675902], [-0.010001521557569504, -0.0004324725887272507], [-0.010234280489385128, -0.0004425372462719679], [-0.01046774536371231, -0.0004526324337348342], [-0.010701813735067844, -0.0004627536691259593], [-0.010936379432678223, -0.00047289644135162234], [-0.011171335354447365, -0.00048305612290278077], [-0.01140657253563404, -0.0004932279698550701], [-0.011641981080174446, -0.0005034071509726346], [-0.011877445504069328, -0.0005135888350196183], [-0.012112853117287159, -0.0005237679579295218], [-0.012348085641860962, -0.0005339396302588284], [-0.012583024799823761, -0.000544098555110395], [-0.012817551381886005, -0.000554239668417722], [-0.013051544316112995, -0.0005643576150760055], [-0.013284879736602306, -0.0005744472146034241], [-0.01351743284612894, -0.000584502995479852], [-0.013749080710113049, -0.0005945196026004851], [-0.013979694806039333, -0.0006044915062375367], [-0.014209149405360222, -0.0006144132348708808], [-0.014437315054237843, -0.0006242793169803917], [-0.014664063230156898, -0.0006340840482152998], [-0.014889265410602093, -0.0006438218988478184], [-0.01511278934776783, -0.0006534872809424996], [-0.015334507450461388, -0.0006630744901485741], [-0.01555428747087717, -0.0006725779385305941], [-0.015771998092532158, -0.0006819919217377901], [-0.015987509861588478, -0.0006913107936270535], [-0.01620069146156311, -0.0007005289080552757], [-0.01641141250729561, -0.000709640618879348], [-0.016619542613625526, -0.0007186403381638229], [-0.016824953258037567, -0.0007275224197655916], [-0.017027515918016434, -0.0007362813339568675], [-0.01722710020840168, -0.0007449114928022027], [-0.017423581331968307, -0.0007534074829891324], [-0.01761683262884617, -0.0007617637747898698], [-0.017806727439165115, -0.0007699750130996108], [-0.017993144690990448, -0.0007780358428135514], [-0.018175961449742317, -0.0007859409670345485], [-0.018355058506131172, -0.0007936851470731199], [-0.018530312925577164, -0.000801263318862766], [-0.01870161108672619, -0.0008086703601293266], [-0.018868837505578995, -0.0008159013814292848], [-0.019031880423426628, -0.0008229513769038022], [-0.019190626218914986, -0.0008298156899400055], [-0.01934496872127056, -0.0008364895475097001], [-0.0194947998970747, -0.0008429684094153345], [-0.01964002102613449, -0.0008492477936670184], [-0.01978052593767643, -0.0008553233928978443], [-0.019916221499443054, -0.0008611909579485655], [-0.020047010853886604, -0.0008668463560752571], [-0.020172802731394768, -0.0008722857455722988], [-0.02029350958764553, -0.0008775051101110876], [-0.02040904387831688, -0.0008825009572319686], [-0.020519327372312546, -0.0008872696198523045], [-0.020624278113245964, -0.0008918077801354229], [-0.020723821595311165, -0.000896112120244652], [-0.020817888900637627, -0.0009001796715892851], [-0.020906411111354828, -0.0009040074073709548], [-0.020989324897527695, -0.0009075926500372589], [-0.02106657065451145, -0.0009109328384511173], [-0.021138092502951622, -0.0009140254696831107], [-0.021203838288784027, -0.0009168683318421245], [-0.021263759583234787, -0.0009194594458676875], [-0.02131781540811062, -0.0009217968326993287], [-0.02136596478521824, -0.0009238788043148816], [-0.021408172324299812, -0.0009257039055228233], [-0.021444406360387802, -0.000927270739339292], [-0.021474644541740417, -0.0009285781998187304], [-0.02149885892868042, -0.0009296252974309027], [-0.021517036482691765, -0.0009304112754762173], [-0.02152916230261326, -0.0009309356100857258], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.02153598517179489, -0.0009312306647188962], [-0.021530350670218468, -0.0009309552842751145], [-0.021520333364605904, -0.000930465932469815], [-0.021505318582057953, -0.0009297322831116617], [-0.02148531563580036, -0.0009287549764849246], [-0.021460341289639473, -0.0009275346528738737], [-0.02143040858209133, -0.0009260722436010838], [-0.021395545452833176, -0.0009243687964044511], [-0.021355774253606796, -0.0009224255918525159], [-0.021311122924089432, -0.0009202440269291401], [-0.021261626854538918, -0.0009178256732411683], [-0.02120731957256794, -0.0009151722188107669], [-0.02114824205636978, -0.000912285759113729], [-0.021084435284137726, -0.0009091682150028646], [-0.021015947684645653, -0.0009058219729922712], [-0.020942827686667442, -0.0009022493031807244], [-0.020865127444267273, -0.0008984528831206262], [-0.020782900974154472, -0.0008944354485720396], [-0.020696209743618965, -0.0008901997935026884], [-0.020605115219950676, -0.0008857489447109401], [-0.020509682595729828, -0.0008810861618258059], [-0.020409977063536644, -0.0008762145880609751], [-0.020306071266531944, -0.0008711378322914243], [-0.0201980359852314, -0.0008658593287691474], [-0.020085951313376427, -0.0008603828609921038], [-0.019969889894127846, -0.0008547122706659138], [-0.01984993740916252, -0.0008488513994961977], [-0.01972617208957672, -0.0008428043802268803], [-0.01959868334233761, -0.0008365753456018865], [-0.019467556849122047, -0.0008301686029881239], [-0.0193328820168972, -0.0008235884597525001], [-0.019194750115275383, -0.0008168394560925663], [-0.019053256139159203, -0.0008099261322058737], [-0.018908491358160973, -0.0008028530864976346], [-0.01876055635511875, -0.000795625033788383], [-0.0186095479875803, -0.0007882468053139746], [-0.018455563113093376, -0.0007807232905179262], [-0.01829870603978634, -0.0007730593788437545], [-0.018139079213142395, -0.0007652600179426372], [-0.017976783215999603, -0.0007573303300887346], [-0.01781192235648632, -0.0007492753793485463], [-0.017644602805376053, -0.0007411002879962325], [-0.017474930733442307, -0.0007328102365136147], [-0.017303012311458588, -0.000724410405382514], [-0.017128953710198402, -0.0007159059750847518], [-0.016952862963080406, -0.0007073023007251322], [-0.016774846240878105, -0.0006986045627854764], [-0.016595013439655304, -0.0006898180581629276], [-0.016413472592830658, -0.0006809480837546289], [-0.016230329871177673, -0.0006719998782500625], [-0.016045695170760155, -0.0006629787385463715], [-0.015859676524996758, -0.000653889961540699], [-0.01567237824201584, -0.0006447387277148664], [-0.015483910217881203, -0.0006355302757583559], [-0.015294377692043781, -0.0006262698443606496], [-0.015103885903954506, -0.000616962555795908], [-0.014912541955709457, -0.0006076136487536132], [-0.014720449224114418, -0.0005982281290926039], [-0.01452771108597517, -0.0005888110608793795], [-0.014334429986774921, -0.0005793674499727786], [-0.014140707440674305, -0.0005699023022316396], [-0.01394664403051138, -0.0005604205070994794], [-0.013752338476479053, -0.0005509268376044929], [-0.013557888567447662, -0.0005414261831901968], [-0.013363390229642391, -0.0005319231422618032], [-0.013168940320611, -0.0005224224296398461], [-0.012974630109965801, -0.0005129285855218768], [-0.012780552729964256, -0.0005034460918977857], [-0.012586798518896103, -0.0004939793725498021], [-0.012393455021083355, -0.0004845327348448336], [-0.012200609780848026, -0.000475110427942127], [-0.012008346617221832, -0.0004657166136894375], [-0.011816750280559063, -0.0004563553084153682], [-0.01162589993327856, -0.0004470305284485221], [-0.011435876600444317, -0.000437746086390689], [-0.01124675665050745, -0.00042850582394748926], [-0.01105861458927393, -0.000419313320890069], [-0.01087152399122715, -0.00041017221519723535], [-0.010685556568205357, -0.00040108594112098217], [-0.010500779375433922, -0.00039205787470564246], [-0.010317260399460793, -0.0003830912464763969], [-0.010135062970221043, -0.0003741892287507653], [-0.009954250417649746, -0.0003653548483271152], [-0.009774882346391678, -0.00035659101558849216], [-0.00959701556712389, -0.000347900582710281], [-0.009420706890523434, -0.00033928625634871423], [-0.009246008470654488, -0.000330750597640872], [-0.009072971530258656, -0.0003222961677238345], [-0.008901645429432392, -0.00031392526580020785], [-0.008732075802981853, -0.00030564022017642856], [-0.008564307354390621, -0.0002974431263282895], [-0.008398381061851978, -0.00028933610883541405], [-0.008234336972236633, -0.0002813210303429514], [-0.008072213269770145, -0.00027339975349605083], [-0.007912044413387775, -0.0002655740245245397], [-0.007753862999379635, -0.00025784538593143225], [-0.007597700692713261, -0.00025021538021974266], [-0.007443584967404604, -0.0002426854189252481], [-0.007291543763130903, -0.0002352567680645734], [-0.007141599897295237, -0.00022793062089476734], [-0.006993776652961969, -0.00022070806880947202], [-0.0068480935879051685, -0.00021359008678700775], [-0.006704568862915039, -0.00020657757704611868], [-0.006563219241797924, -0.00019967132539022714], [-0.006424058228731155, -0.00019287200120743364], [-0.006287097930908203, -0.000186180230230093], [-0.006152349524199963, -0.000179596507223323], [-0.006019820459187031, -0.00017312122508883476], [-0.005889518186450005, -0.0001667547330725938], [-0.00576144689694047, -0.00016049726400524378], [-0.0056356098502874374, -0.00015434896340593696], [-0.005512008909136057, -0.00014830988948233426], [-0.005390643607825041, -0.0001423800567863509], [-0.005271511618047953, -0.0001365593634545803], [-0.0051546101458370686, -0.00013084763486403972], [-0.005039934068918228, -0.0001252446381840855], [-0.004927476868033409, -0.00011975005327258259], [-0.0048172310926020145, -0.0001143635090556927], [-0.004709186963737011, -0.00010908455442404374], [-0.004603334236890078, -0.0001039126655086875], [-0.004499661270529032, -9.884727478493005e-05], [-0.004398155026137829, -9.388774196850136e-05], [-0.004298801068216562, -8.903336856747046e-05], [-0.004201583564281464, -8.42834051582031e-05], [-0.004106487147510052, -7.96370513853617e-05], [-0.004013493657112122, -7.509344140999019e-05], [-0.003922584466636181, -7.065168756525964e-05], [-0.00383374048396945, -6.631082942476496e-05], [-0.0036601421888917685, -5.7828929129755124e-05], [-0.0035712982062250376, -5.348807462723926e-05], [-0.0034803892485797405, -4.90463207825087e-05], [-0.0033873955253511667, -4.4502714445116e-05], [-0.003292299108579755, -3.9856360672274604e-05], [-0.0031950818374753, -3.510639726300724e-05], [-0.0030957278795540333, -3.025202386197634e-05], [-0.0029942214023321867, -2.5292489226558246e-05], [-0.002890548435971141, -2.0227096683811396e-05], [-0.002784695941954851, -1.5055209587444551e-05], [-0.0026766518130898476, -9.776252227311488e-06], [-0.0025664058048278093, -4.3897080104216e-06], [-0.002453948836773634, 1.104871444113087e-06], [-0.00233927252702415, 6.707868578814669e-06], [-0.002222371054813266, 1.2419595805113204e-05], [-0.0021032392978668213, 1.8240294593852013e-05], [-0.001981873996555805, 2.417013092781417e-05], [-0.001858272822573781, 3.020919393748045e-05], [-0.0017324360087513924, 3.635749817476608e-05], [-0.0016043648356571794, 4.2614970880094916e-05], [-0.0014740623300895095, 4.898146289633587e-05], [-0.0013415333814918995, 5.545673775486648e-05], [-0.0012067847419530153, 6.204046803759411e-05], [-0.0010698246769607067, 6.873224629089236e-05], [-0.0009306636638939381, 7.553155592177063e-05], [-0.0007893138099461794, 8.243781485361978e-05], [-0.0006457893177866936, 8.945032459450886e-05], [-0.0005001063109375536, 9.656829934101552e-05], [-0.0003522828919813037, 0.00010379085142631084], [-0.0002023392589762807, 0.0001111169985961169], [-5.0297592679271474e-05, 0.00011854564945679158], [0.00010381775064161047, 0.00012607562530320138], [0.0002599803265184164, 0.00013370561646297574], [0.00041816153679974377, 0.0001414342550560832], [0.000578330596908927, 0.00014925999857950956], [0.0007404545904137194, 0.00015718127542641014], [0.0009044983307830989, 0.00016519633936695755], [0.0010704243322834373, 0.00017330337141174823], [0.001238193130120635, 0.00018150045070797205], [0.0014077627565711737, 0.00018978549633175135], [0.0015790890902280807, 0.000198156398255378], [0.0017521256813779473, 0.00020661084272433072], [0.0019268239848315716, 0.00021514648688025773], [0.0021031328942626715, 0.0002237608132418245], [0.002280999207869172, 0.00023245124612003565], [0.0024603677447885275, 0.00024121507885865867], [0.002641180530190468, 0.0002500494592823088], [0.0028233774937689304, 0.0002589514770079404], [0.0030068967025727034, 0.00026791810523718596], [0.003191673429682851, 0.00027694617165252566], [0.003377641551196575, 0.00028603244572877884], [0.003564731916412711, 0.0002951735514216125], [0.003752873744815588, 0.00030436605447903275], [0.003941994160413742, 0.00031360634602606297], [0.004132017493247986, 0.0003228907589800656], [0.004322867374867201, 0.0003322155389469117], [0.0045144641771912575, 0.000341576844220981], [0.004706726875156164, 0.0003509706584736705], [0.004899572115391493, 0.0003603929653763771], [0.005092915613204241, 0.00036983960308134556], [0.0052866702899336815, 0.00037930632242932916], [0.0054807476699352264, 0.0003887888160534203], [0.005675057414919138, 0.0003982826601713896], [0.005869507789611816, 0.00040778337279334664], [0.0060640056617558, 0.0004172863846179098], [0.006258455105125904, 0.0004267870681360364], [0.00645276065915823, 0.0004362807085271925], [0.006646824534982443, 0.0004457625327631831], [0.006840547081083059, 0.00045522768050432205], [0.007033828180283308, 0.000464671291410923], [0.007226566318422556, 0.00047408833052031696], [0.007418659515678883, 0.0004834738792851567], [0.007610003463923931, 0.0004928228445351124], [0.007800494320690632, 0.0005021300748921931], [0.007990026846528053, 0.0005113905062898993], [0.00817849487066269, 0.0005205989582464099], [0.008365793153643608, 0.0005297501920722425], [0.00855181273072958, 0.000538838969077915], [0.008736447431147099, 0.000547860108781606], [0.008919589221477509, 0.0005568083142861724], [0.00910113099962473, 0.0005656782886944711], [0.00928096380084753, 0.0005744647933170199], [0.009458979591727257, 0.0005831625312566757], [0.009635070338845253, 0.0005917662056162953], [0.009809128940105438, 0.0006002706359140575], [0.009981048293411732, 0.0006086704670451581], [0.010150720365345478, 0.000616960518527776], [0.010318039916455746, 0.0006251356680877507], [0.010482899844646454, 0.000633190618827939], [0.010645195841789246, 0.0006411203066818416], [0.010804823599755764, 0.000648919609375298], [0.010961680673062801, 0.0006565835210494697], [0.01111566461622715, 0.0006641070358455181], [0.011266673915088177, 0.0006714852643199265], [0.011414608918130398, 0.0006787133170291781], [0.011559372767806053, 0.0006857863627374172], [0.011700867675244808, 0.0006926996866241097], [0.011838999576866627, 0.0006994486902840436], [0.011973674409091473, 0.0007060288335196674], [0.012104800902307034, 0.00071243557613343], [0.012232289649546146, 0.0007186646107584238], [0.012356054037809372, 0.0007247116300277412], [0.012476007454097271, 0.0007305725011974573], [0.012592067942023277, 0.0007362431497313082], [0.012704153545200825, 0.0007417196175083518], [0.012812187895178795, 0.0007469980628229678], [0.01291609462350607, 0.0007520748185925186], [0.013015799224376678, 0.0007569463923573494], [0.013111232779920101, 0.0007616091752424836], [0.01320232730358839, 0.0007660600240342319], [0.013289018534123898, 0.0007702956791035831], [0.013371244072914124, 0.0007743131718598306], [0.013448944315314293, 0.0007781095337122679], [0.013522065244615078, 0.0007816822035238147], [0.013590552844107151, 0.0007850284455344081], [0.013654359616339207, 0.0007881459896452725], [0.013713437132537365, 0.0007910325075499713], [0.013767743483185768, 0.0007936859037727118], [0.013817240484058857, 0.0007961042574606836], [0.013861890882253647, 0.0007982858223840594], [0.0139016630128026, 0.0008002290851436555], [0.013936527073383331, 0.0008019324741326272], [0.013966457918286324, 0.0008033948834054172], [0.013991433195769787, 0.000804615207016468], [0.014011436142027378, 0.0008055925136432052], [0.014026450924575329, 0.0008063261630013585], [0.014036467298865318, 0.000806815514806658], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014042103663086891, 0.0008070908952504396], [0.014037654735147953, 0.0008068351889960468], [0.014029747806489468, 0.0008063807617872953], [0.014017895795404911, 0.000805699557531625], [0.01400210615247488, 0.0008047919836826622], [0.013982390984892845, 0.0008036588551476598], [0.013958764262497425, 0.0008023008704185486], [0.013931243680417538, 0.0008007190772332251], [0.013899849727749825, 0.0007989146397449076], [0.013864603824913502, 0.0007968888385221362], [0.013825532980263233, 0.0007946431869640946], [0.013782664202153683, 0.0007921792566776276], [0.013736030086874962, 0.0007894989103078842], [0.013685664162039757, 0.0007866040105000138], [0.013631601817905903, 0.0007834967109374702], [0.013573883101344109, 0.000780179223511368], [0.013512548059225082, 0.0007766539347358048], [0.01344764232635498, 0.0007729233475401998], [0.013379211537539959, 0.0007689901976846159], [0.013307304121553898, 0.000764857220929116], [0.013231971301138401, 0.0007605273858644068], [0.01315326802432537, 0.0007560037192888558], [0.01307124737650156, 0.0007512894808314741], [0.012985968962311745, 0.0007463879883289337], [0.012897491455078125, 0.0007413026178255677], [0.0128058772534132, 0.0007360369781963527], [0.012711189687252045, 0.0007305946201086044], [0.012613493949174881, 0.0007249794434756041], [0.01251285895705223, 0.0007191952900029719], [0.012409351766109467, 0.0007132460596039891], [0.012303043156862259, 0.0007071358268149197], [0.012194006703794003, 0.0007008687825873494], [0.012082315050065517, 0.000694449117872864], [0.011968043632805347, 0.000687881198246032], [0.011851267889142036, 0.000681169331073761], [0.011732066050171852, 0.0006743180565536022], [0.011610516346991062, 0.0006673317984677851], [0.011486698873341084, 0.0006602151552215219], [0.011360692791640759, 0.0006529728416353464], [0.011232581920921803, 0.000645609456114471], [0.011102446354925632, 0.0006381297134794295], [0.010970369912683964, 0.0006305384449660778], [0.010836436413228512, 0.0006228403653949499], [0.010700728744268417, 0.0006150404224172235], [0.010563332587480545, 0.0006071433308534324], [0.01042433176189661, 0.0005991540383547544], [0.010283811949193478, 0.0005910774925723672], [0.010141857899725437, 0.0005829184665344656], [0.009998554363846779, 0.0005746819078922272], [0.009853987954556942, 0.0005663727060891688], [0.009708243422210217, 0.000557995808776468], [0.009561405517160892, 0.0005495560471899807], [0.00941355898976326, 0.0005410583689808846], [0.009264787659049034, 0.0005325075471773744], [0.00911517720669508, 0.000523908413015306], [0.008964809589087963, 0.0005152658559381962], [0.0088137686252594, 0.000506584532558918], [0.008662136271595955, 0.0004978692741133273], [0.008509994484484196, 0.0004891246790066361], [0.008357425220310688, 0.0004803554911632091], [0.0082045067101717, 0.0004715662798844278], [0.008051319047808647, 0.00046276161447167397], [0.007897940464317799, 0.0004539459478110075], [0.00774444779381156, 0.00044512373278848827], [0.007590917870402336, 0.00043629936408251524], [0.00743742473423481, 0.00042747711995616555], [0.00728404289111495, 0.0004186612495686859], [0.00713084451854229, 0.000409855943871662], [0.006977900397032499, 0.0004010652774013579], [0.00682528130710125, 0.0003922932664863765], [0.006673055235296488, 0.0003835438401438296], [0.006521289236843586, 0.0003748208691831678], [0.0063700489699840546, 0.00036612810799852014], [0.006219398230314255, 0.0003574692236725241], [0.006069399882107973, 0.0003488478250801563], [0.00592011446133256, 0.0003402674337849021], [0.005771601106971502, 0.0003317314258310944], [0.005623918026685715, 0.0003232430899515748], [0.0054771206341683865, 0.00031480571487918496], [0.00533126387745142, 0.0003064223565161228], [0.005186399910598993, 0.00029809607076458633], [0.005042579025030136, 0.00028982976800762117], [0.0048998515121638775, 0.0002816263004206121], [0.004758263938128948, 0.0002734883164521307], [0.004617861472070217, 0.0002654185227584094], [0.004478688817471266, 0.0002574193640612066], [0.004340787883847952, 0.00024949328508228064], [0.004204198252409697, 0.00024164258502423763], [0.004068958573043346, 0.0002338694903301075], [0.003935106098651886, 0.00022617609647568315], [0.003802674589678645, 0.00021856441162526608], [0.0036716978065669537, 0.00021103632752783597], [0.003542206948623061, 0.00020359364862088114], [0.0034142315853387117, 0.0001962380629265681], [0.0032877991907298565, 0.00018897117115557194], [0.0031629358418285847, 0.0001817944721551612], [0.0030396662186831236, 0.0001747093629091978], [0.0029180124402046204, 0.00016771713853813708], [0.0027979956939816475, 0.00016081899229902774], [0.002679634839296341, 0.00015401603013742715], [0.002562947804108262, 0.00014730925613548607], [0.0024479504209011793, 0.0001406996016157791], [0.002334656659513712, 0.00013418788148555905], [0.0022230795584619045, 0.00012777482334058732], [0.0021132302936166525, 0.00012146107474109158], [0.0020051184110343456, 0.00011524718865985051], [0.0018987521762028337, 0.0001091336234821938], [0.0017941381083801389, 0.00010312077210983261], [0.0016912814462557435, 9.720893285702914e-05], [0.0015901861479505897, 9.139833127846941e-05], [0.0014908545417711139, 8.568909834139049e-05], [0.0013932879082858562, 8.008130680536851e-05], [0.0012974857818335295, 7.457494211848825e-05], [0.0012034469982609153, 6.916991696925834e-05], [0.0011111687636002898, 6.386608583852649e-05], [0.001020647119730711, 5.866321953362785e-05], [0.0009318770025856793, 5.356102701625787e-05], [0.0008448523585684597, 4.855915540247224e-05], [0.0007595659117214382, 4.3657186324708164e-05], [0.0006760092219337821, 3.88546432077419e-05], [0.0005941730923950672, 3.4150987630710006e-05], [0.0005140471621416509, 2.954563024104573e-05], [0.0004356202553026378, 2.503792529751081e-05], [0.00035888017737306654, 2.062717430817429e-05], [0.0002838139480445534, 1.6312631487380713e-05], [0.00021040780120529234, 1.2093502846255433e-05], [0.00013864709762856364, 7.968949830683414e-06], [6.851652142358944e-05, 3.938089321309235e-06]]}, {"name": "CX_d3_u5", "samples": [[-0.00010569779260549694, -3.6376939078763826e-06], [-0.0002138855488738045, -7.361082225543214e-06], [-0.0003245880070608109, -1.117101692216238e-05], [-0.00043782885768450797, -1.5068312677612994e-05], [-0.0005536306416615844, -1.9053744836128317e-05], [-0.0006720146047882736, -2.3128044631448574e-05], [-0.0007930007996037602, -2.7291904189041816e-05], [-0.0009166079689748585, -3.15459692501463e-05], [-0.0010428534587845206, -3.5890829167328775e-05], [-0.001171753043308854, -4.032703873235732e-05], [-0.0013033212162554264, -4.4855085434392095e-05], [-0.0014375707833096385, -4.947541674482636e-05], [-0.0015745129203423858, -5.4188418289413676e-05], [-0.001714157173410058, -5.899441384826787e-05], [-0.0018565113423392177, -6.389366899384186e-05], [-0.0020015814807265997, -6.888640200486407e-05], [-0.002149371663108468, -7.397274021059275e-05], [-0.002299883868545294, -7.915277819847688e-05], [-0.0024531190283596516, -8.442650869255885e-05], [-0.002609074814245105, -8.979388803709298e-05], [-0.0027677477337419987, -9.525477071292698e-05], [-0.002929131966084242, -0.00010080896754516289], [-0.003093219129368663, -0.00010645618749549612], [-0.0032599992118775845, -0.00011219608859391883], [-0.0034294594079256058, -0.00011802822700701654], [-0.0036015850491821766, -0.0001239521079696715], [-0.003776358673349023, -0.00012996711302548647], [-0.003953760955482721, -0.0001360725873382762], [-0.004133769776672125, -0.0001422677596565336], [-0.0043163602240383625, -0.00014855180052109063], [-0.00450150528922677, -0.00015492374950554222], [-0.0046891761012375355, -0.00016138261707965285], [-0.004879339598119259, -0.00016792728274594992], [-0.00507196132093668, -0.00017455655324738473], [-0.005267003551125526, -0.0001812691189115867], [-0.00546442624181509, -0.0001880636264104396], [-0.005664187017828226, -0.00019493857689667493], [-0.005866239778697491, -0.00020189242786727846], [-0.006070536561310291, -0.00020892350585199893], [-0.006277026142925024, -0.0002160300500690937], [-0.0064856549724936485, -0.0002232102124253288], [-0.006696366239339113, -0.0002304620575159788], [-0.006909101270139217, -0.00023778353352099657], [-0.007123797200620174, -0.00024517253041267395], [-0.007340390235185623, -0.0002526267780922353], [-0.007558811921626329, -0.0002601439773570746], [-0.007778992876410484, -0.0002677217125892639], [-0.008000859059393406, -0.0002753574517555535], [-0.008224335499107838, -0.00028304863371886313], [-0.008449343033134937, -0.00029079249361529946], [-0.008675801567733288, -0.0002985862665809691], [-0.008903627283871174, -0.00030642710044048727], [-0.009132732637226582, -0.00031431199749931693], [-0.009363029152154922, -0.00032223790185526013], [-0.009594426490366459, -0.0003302016411907971], [-0.00982682965695858, -0.000338200043188408], [-0.010060141794383526, -0.00034622973180375993], [-0.010294266045093536, -0.0003542873018886894], [-0.01052909903228283, -0.0003623693191912025], [-0.010764538310468197, -0.0003704722330439836], [-0.011000478640198708, -0.00037859234726056457], [-0.011236811988055706, -0.00038672599475830793], [-0.011473428457975388, -0.00039486936293542385], [-0.011710216291248798, -0.00040301866829395294], [-0.011947061866521835, -0.00041116992360912263], [-0.012183848768472672, -0.0004193191707599908], [-0.012420459650456905, -0.00042746239341795444], [-0.01265677623450756, -0.0004355954588390887], [-0.012892677448689938, -0.00044371423427946866], [-0.013128041289746761, -0.00045181449968367815], [-0.013362743891775608, -0.00045989203499630094], [-0.013596661388874054, -0.00046794250374659896], [-0.013829666189849377, -0.0004759615985676646], [-0.014061632566154003, -0.0004839449538849294], [-0.014292431063950062, -0.0004918881459161639], [-0.01452193409204483, -0.0004997866926714778], [-0.014750012196600437, -0.0005076362285763025], [-0.014976533129811287, -0.000515432155225426], [-0.015201368369162083, -0.0005231701070442796], [-0.015424385666847229, -0.0005308454274199903], [-0.015645453706383705, -0.0005384536925703287], [-0.01586444117128849, -0.0005459903622977436], [-0.01608121581375599, -0.0005534508964046836], [-0.016295647248625755, -0.0005608307546935976], [-0.016507603228092194, -0.0005681254551745951], [-0.016716953366994858, -0.000575330457650125], [-0.0169235672801733, -0.0005824412801302969], [-0.01712731644511223, -0.0005894534988328815], [-0.01732807047665119, -0.0005963626899756491], [-0.017525704577565193, -0.0006031643715687096], [-0.017720088362693787, -0.0006098542944528162], [-0.017911097034811974, -0.0006164280348457396], [-0.018098605796694756, -0.0006228814017958939], [-0.018282495439052582, -0.0006292100879363716], [-0.018462639302015305, -0.0006354099605232477], [-0.01863892190158367, -0.0006414768868125975], [-0.018811224028468132, -0.0006474068504758179], [-0.018979432061314583, -0.0006531958933919668], [-0.019143428653478622, -0.0006588399992324412], [-0.019303105771541595, -0.0006643354427069426], [-0.019458351656794548, -0.0006696783821098506], [-0.019609062001109123, -0.0006748652667738497], [-0.019755134359002113, -0.0006798924296163023], [-0.01989646442234516, -0.0006847564363852143], [-0.02003295347094536, -0.000689453911036253], [-0.02016451023519039, -0.0006939815357327461], [-0.02029103972017765, -0.0006983361672610044], [-0.020412452518939972, -0.0007025147206149995], [-0.02052866481244564, -0.0007065142854116857], [-0.02063959464430809, -0.0007103320094756782], [-0.020745160058140755, -0.0007139651570469141], [-0.020845288410782814, -0.0007174111669883132], [-0.020939907059073448, -0.0007206675363704562], [-0.021028947085142136, -0.0007237319950945675], [-0.02111234702169895, -0.0007266022730618715], [-0.021190045401453972, -0.0007292763330042362], [-0.02126198634505272, -0.0007317522540688515], [-0.021328117698431015, -0.000734028173610568], [-0.02138839103281498, -0.0007361025782302022], [-0.02144276350736618, -0.0007379738381132483], [-0.021491194143891335, -0.0007396406144835055], [-0.021533649414777756, -0.0007411017431877553], [-0.021570095792412758, -0.0007423561764881015], [-0.02160051092505455, -0.0007434028666466475], [-0.021624868735671043, -0.0007442411733791232], [-0.021643152460455894, -0.0007448704564012587], [-0.02165534906089306, -0.0007452901918441057], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021662212908267975, -0.0007455263985320926], [-0.021657079458236694, -0.0007452543941326439], [-0.02164795808494091, -0.0007447709213010967], [-0.021634284406900406, -0.000744046235922724], [-0.021616069599986076, -0.0007430807454511523], [-0.021593324840068817, -0.0007418752647936344], [-0.02156606689095497, -0.0007404306088574231], [-0.02153431810438633, -0.0007387478253804147], [-0.021498098969459534, -0.0007368281949311495], [-0.021457437425851822, -0.0007346730562858284], [-0.021412363275885582, -0.0007322840392589569], [-0.02136290818452835, -0.0007296628318727016], [-0.021309107542037964, -0.0007268113549798727], [-0.021251002326607704, -0.0007237316458486021], [-0.021188631653785706, -0.0007204259745776653], [-0.021122043952345848, -0.0007168966694734991], [-0.021051283925771713, -0.0007131463498808444], [-0.02097640559077263, -0.0007091775769367814], [-0.020897459238767624, -0.0007049933192320168], [-0.020814502611756325, -0.0007005964871495962], [-0.020727593451738358, -0.000695990223903209], [-0.020636796951293945, -0.0006911778473295271], [-0.020542172715067863, -0.0006861626170575619], [-0.020443789660930634, -0.0006809482001699507], [-0.020341716706752777, -0.0006755381473340094], [-0.020236024633049965, -0.0006699363584630191], [-0.020126787945628166, -0.0006641466170549393], [-0.0200140792876482, -0.0006581729394383729], [-0.019897980615496635, -0.0006520194583572447], [-0.019778568297624588, -0.0006456904229708016], [-0.019655924290418625, -0.000639190140645951], [-0.01953013241291046, -0.0006325230351649225], [-0.019401278346776962, -0.0006256935303099453], [-0.019269447773694992, -0.0006187062826938927], [-0.019134728237986565, -0.0006115659489296377], [-0.018997209146618843, -0.0006042772438377142], [-0.01885698176920414, -0.0005968449986539781], [-0.018714137375354767, -0.0005892740446142852], [-0.018568770959973335, -0.0005815693875774741], [-0.018420973792672157, -0.0005737358587794006], [-0.018270840868353844, -0.0005657786387018859], [-0.018118469044566154, -0.0005577027332037687], [-0.01796395517885685, -0.0005495132645592093], [-0.01780739426612854, -0.0005412152968347073], [-0.017648885026574135, -0.0005328140687197447], [-0.017488526180386543, -0.0005243147606961429], [-0.017326412722468376, -0.0005157225532457232], [-0.01716264709830284, -0.0005070426850579679], [-0.0169973224401474, -0.0004982802784070373], [-0.01683054305613041, -0.0004894406301900744], [-0.01666240207850933, -0.0004805289499927312], [-0.016493000090122223, -0.00047155041829682887], [-0.016322435811161995, -0.0004625102155841887], [-0.016150804236531258, -0.00045341349323280156], [-0.01597820408642292, -0.0004442654026206583], [-0.015804730355739594, -0.00043507106602191925], [-0.015630479902029037, -0.00042583554750308394], [-0.015455547720193863, -0.0004165638820268214], [-0.015280027873814106, -0.00040726104634813964], [-0.015104013495147228, -0.0003979320463258773], [-0.014927597716450691, -0.0003885817131958902], [-0.014750870876014233, -0.000379214936401695], [-0.01457392331212759, -0.00036983645986765623], [-0.014396845363080502, -0.00036045105662196875], [-0.014219723641872406, -0.0003510633250698447], [-0.014042643830180168, -0.0003416778636164963], [-0.013865693472325802, -0.00033229918335564435], [-0.013688954524695873, -0.00032293173717334867], [-0.013512508943676949, -0.0003135798906441778], [-0.01333643775433302, -0.00030424786382354796], [-0.013160820119082928, -0.0002949398767668754], [-0.012985733337700367, -0.000285660004010424], [-0.012811253778636456, -0.00027641229098662734], [-0.012637453153729439, -0.00026720063760876656], [-0.012464405968785286, -0.0002580288564786315], [-0.012292180210351944, -0.0002489006728865206], [-0.012120846658945084, -0.00023981969570741057], [-0.011950470507144928, -0.0002307894901605323], [-0.011781116016209126, -0.000221813446842134], [-0.01161284651607275, -0.0002128949126927182], [-0.011445721611380577, -0.00020403707458171993], [-0.011279801838099957, -0.00019524304661899805], [-0.01111514214426279, -0.00018651584105100483], [-0.010951797477900982, -0.00017785833915695548], [-0.010789820924401283, -0.00016927333490457386], [-0.010629262775182724, -0.0001607635203981772], [-0.010470171459019184, -0.00015233142767101526], [-0.010312593542039394, -0.00014397954510059208], [-0.010156572796404362, -0.00013571021554525942], [-0.010002151131629944, -0.00012752567999996245], [-0.009849370457231998, -0.00011942804849240929], [-0.00969826802611351, -0.00011141937284264714], [-0.009548879228532314, -0.00010350154479965568], [-0.009401238523423672, -9.567637607688084e-05], [-0.009255378507077694, -8.794556197244674e-05], [-0.009111328050494194, -8.031070319702849e-05], [-0.00896911695599556, -7.277326949406415e-05], [-0.008828769437968731, -6.533465057145804e-05], [-0.008690310642123222, -5.7996123359771445e-05], [-0.00855376198887825, -5.075885928818025e-05], [-0.00841914489865303, -4.362393156043254e-05], [-0.008286476135253906, -3.659231151686981e-05], [-0.008155773393809795, -2.9664879548363388e-05], [-0.008027051575481892, -2.284240872540977e-05], [-0.007900322787463665, -1.6125584807014093e-05], [-0.007775598205626011, -9.514994417259004e-06], [-0.0076528871431946754, -3.011138687725179e-06], [-0.00753219798207283, 3.385576292203041e-06], [-0.007413536310195923, 9.67482992564328e-06], [-0.007296906318515539, 1.585638710821513e-05], [-0.00718231126666069, 2.193009822804015e-05], [-0.007069752085953951, 2.789589598251041e-05], [-0.006959228776395321, 3.375379310455173e-05], [-0.006850739941000938, 3.950387326767668e-05], [-0.006744281854480505, 4.5146305637899786e-05], [-0.006639850791543722, 5.068132668384351e-05], [-0.00653743976727128, 5.610924563370645e-05], [-0.006437042728066444, 6.143043719930574e-05], [-0.006338651292026043, 6.664534885203466e-05], [-0.006242254748940468, 7.175448990892619e-05], [-0.006147843785583973, 7.675842789467424e-05], [-0.006055405363440514, 8.165779581759125e-05], [-0.00596492737531662, 8.645327761769295e-05], [-0.005876394920051098, 9.114561544265598e-05], [-0.005789794027805328, 9.573559509590268e-05], [-0.005705108400434256, 0.00010022407514043152], [-0.005622320342808962, 0.00010461194324307144], [-0.005541413556784391, 0.00010890013800235465], [-0.0053833238780498505, 0.0001172791380668059], [-0.005302416626363993, 0.00012156733282608911], [-0.005219629034399986, 0.0001259551936527714], [-0.0051349434070289135, 0.00013044367369730026], [-0.005048342049121857, 0.00013503366790246218], [-0.004959810059517622, 0.00013972600572742522], [-0.004869332071393728, 0.0001445214729756117], [-0.004776893649250269, 0.0001494208408985287], [-0.004682482220232487, 0.00015442477888427675], [-0.004586086142808199, 0.0001595339272171259], [-0.00448769424110651, 0.0001647488388698548], [-0.004387297201901674, 0.00017007003771141171], [-0.00428488664329052, 0.00017549794574733824], [-0.00418045511469245, 0.00018103297043126076], [-0.0040739974938333035, 0.00018667540280148387], [-0.003965508192777634, 0.00019242549024056643], [-0.0038549851160496473, 0.00019828337826766074], [-0.0037424261681735516, 0.0002042491832980886], [-0.0036278311163187027, 0.00021032289077993482], [-0.003511201124638319, 0.00021650444250553846], [-0.0033925394527614117, 0.00022279369295574725], [-0.0032718500588089228, 0.00022919040929991752], [-0.003149139229208231, 0.00023569427139591426], [-0.003024414647370577, 0.00024230485723819584], [-0.0028976858593523502, 0.0002490216866135597], [-0.002768963575363159, 0.0002558441483415663], [-0.0026382608339190483, 0.00026277158758603036], [-0.002505592769011855, 0.0002698032185435295], [-0.002370975213125348, 0.0002769381389953196], [-0.0022344267927110195, 0.0002841753885149956], [-0.002095967996865511, 0.000291513919364661], [-0.001955620711669326, 0.0002989525382872671], [-0.0018134090350940824, 0.0003064899647142738], [-0.0016693591605871916, 0.0003141248307656497], [-0.0015234989114105701, 0.0003218556521460414], [-0.0013758584391325712, 0.00032968082814477384], [-0.0012264697579666972, 0.00033759864163585007], [-0.0010753668611869216, 0.0003456073172856122], [-0.0009225858375430107, 0.0003537049633450806], [-0.0007681648712605238, 0.00036188948433846235], [-0.0006121441256254911, 0.000370158813893795], [-0.0004545658885035664, 0.00037851071101613343], [-0.00029547448502853513, 0.00038694278919138014], [-0.00013491629215423018, 0.0003954526036977768], [2.7060252250521444e-05, 0.00040403762250207365], [0.00019040462211705744, 0.00041269510984420776], [0.0003550642286427319, 0.0004214223299641162], [0.0005209845257923007, 0.00043021634337492287], [0.0006881087902002037, 0.00043907418148592114], [0.0008563784649595618, 0.00044799273018725216], [0.0010257328394800425, 0.00045696875895373523], [0.0011961093405261636, 0.00046599897905252874], [0.0013674433575943112, 0.00047507992712780833], [0.0015396684175357223, 0.0004842081107199192], [0.0017127159517258406, 0.0004933798918500543], [0.0018865159945562482, 0.000502591545227915], [0.0020609963685274124, 0.0005118392873555422], [0.0022360829170793295, 0.0005211191601119936], [0.002411700552329421, 0.0005304271471686661], [0.0025877715088427067, 0.000539759173989296], [0.0027642168570309877, 0.0005491110496222973], [0.00294095603749156, 0.0005584784667007625], [0.0031179068610072136, 0.000567857117857784], [0.0032949859742075205, 0.0005772425793111324], [0.0034721079282462597, 0.0005866303108632565], [0.0036491863429546356, 0.0005960157723166049], [0.0038261334411799908, 0.0006053941906429827], [0.004002860281616449, 0.0006147609674371779], [0.004179276525974274, 0.0006241113296709955], [0.004355290438979864, 0.0006334403296932578], [0.004530810285359621, 0.0006427431362681091], [0.004705742467194796, 0.0006520148017443717], [0.004879992920905352, 0.000661250320263207], [0.005053466185927391, 0.0006704446859657764], [0.0052260663360357285, 0.0006795927765779197], [0.005397697910666466, 0.0006886894698254764], [0.005568263120949268, 0.000697729701641947], [0.005737664643675089, 0.0007067082333378494], [0.00590580515563488, 0.0007156199426390231], [0.006072585936635733, 0.000724459532648325], [0.006237909197807312, 0.0007332219392992556], [0.006401676218956709, 0.000741901807487011], [0.006563788745552301, 0.0007504940731450915], [0.006724148523062468, 0.0007589933811686933], [0.006882657762616873, 0.000767394551075995], [0.007039218209683895, 0.0007756925188004971], [0.007193732541054487, 0.0007838819874450564], [0.007346103899180889, 0.0007919579511508346], [0.007496235892176628, 0.0007999151712283492], [0.007644033525139093, 0.0008077486418187618], [0.0077894008718431, 0.0008154533570632339], [0.007932244800031185, 0.0008230242528952658], [0.008072472177445889, 0.0008304565562866628], [0.00820999126881361, 0.0008377452613785863], [0.008344710804522038, 0.0008448855951428413], [0.008476541377604008, 0.000851872842758894], [0.008605395443737507, 0.0008587022894062102], [0.00873118732124567, 0.0008653694530948997], [0.008853830397129059, 0.0008718697354197502], [0.008973242715001106, 0.0008781987708061934], [0.009089342318475246, 0.0008843521936796606], [0.009202050045132637, 0.000890325871296227], [0.00931128766387701, 0.0008961156127043068], [0.009416979737579823, 0.000901717459782958], [0.009519052691757679, 0.0009071274544112384], [0.009617434814572334, 0.0009123419295065105], [0.009712059050798416, 0.0009173571015708148], [0.009802856482565403, 0.0009221695363521576], [0.009889764711260796, 0.0009267757995985448], [0.009972721338272095, 0.0009311725734733045], [0.0100516676902771, 0.00093535688938573], [0.010126546956598759, 0.0009393256041221321], [0.010197306983172894, 0.0009430759237147868], [0.010263894684612751, 0.000946605228818953], [0.010326264426112175, 0.0009499109000898898], [0.01038437057286501, 0.0009529906092211604], [0.010438170284032822, 0.0009558420861139894], [0.010487625375390053, 0.0009584632935002446], [0.010532700456678867, 0.0009608523105271161], [0.010573362000286579, 0.0009630074491724372], [0.0106095802038908, 0.0009649270796217024], [0.010641329921782017, 0.0009666098630987108], [0.010668586939573288, 0.0009680545190349221], [0.010691331699490547, 0.000969260057900101], [0.010709547437727451, 0.0009702254901640117], [0.010723221115767956, 0.0009709502337500453], [0.01073234248906374, 0.0009714336483739316], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010737475007772446, 0.0009717057109810412], [0.010734072886407375, 0.000971397792454809], [0.010728026740252972, 0.0009708506986498833], [0.010718964040279388, 0.0009700305527076125], [0.010706890374422073, 0.0009689379367046058], [0.010691815055906773, 0.0009675736073404551], [0.010673748329281807, 0.0009659386705607176], [0.01065270509570837, 0.0009640342905186117], [0.010628698393702507, 0.0009618618059903383], [0.010601747781038284, 0.0009594228467904031], [0.010571871884167194, 0.0009567191009409726], [0.010539092123508453, 0.0009537526639178395], [0.010503432713449001, 0.0009505256311967969], [0.010464918799698353, 0.0009470402728766203], [0.010423579253256321, 0.0009432992083020508], [0.010379443876445293, 0.0009393050568178296], [0.010332543402910233, 0.0009350607870146632], [0.010282912291586399, 0.0009305693092755973], [0.010230585932731628, 0.000925833941437304], [0.010175601579248905, 0.0009208580013364553], [0.010117997415363789, 0.000915645039640367], [0.010057815350592136, 0.0009101987816393375], [0.009995097294449806, 0.0009045230108313262], [0.00992988795042038, 0.0008986217435449362], [0.009862232953310013, 0.0008924991707317531], [0.009792178869247437, 0.0008861595415510237], [0.009719775058329105, 0.0008796072215773165], [0.009645070880651474, 0.0008728467510081828], [0.00956811849027872, 0.0008658827864564955], [0.009488970041275024, 0.0008587201591581106], [0.009407680481672287, 0.0008513637003488839], [0.009324303828179836, 0.0008438184740953147], [0.009238897822797298, 0.0008360894280485809], [0.00915151834487915, 0.0008281819173134863], [0.009062224067747593, 0.0008201011223718524], [0.008971074596047401, 0.0008118523983284831], [0.008878130465745926, 0.0008034412167035043], [0.008783451281487942, 0.0007948731072247028], [0.008687100373208523, 0.0007861535996198654], [0.008589138276875019, 0.0007772883400321007], [0.008489628322422504, 0.000768283091019839], [0.008388634771108627, 0.0007591434405185282], [0.008286220021545887, 0.0007498753257095814], [0.008182450197637081, 0.000740484450943768], [0.008077387697994709, 0.0007309766951948404], [0.007971099577844143, 0.0007213579374365509], [0.007863649167120457, 0.0007116339984349906], [0.007755102124065161, 0.0007018108735792339], [0.007645523641258478, 0.0006918943836353719], [0.007534978911280632, 0.0006818904657848179], [0.007423533126711845, 0.0006718049990013242], [0.007311251480132341, 0.0006616439204663038], [0.007198198698461056, 0.0006514129927381873], [0.007084439042955637, 0.0006411180947907269], [0.006970037240535021, 0.0006307651055976748], [0.006855056621134281, 0.0006203597877174616], [0.0067395614460110664, 0.0006099078455008566], [0.006623614113777876, 0.0005994149832986295], [0.006507277023047209, 0.0005888869054615498], [0.006390612572431564, 0.0005783291417174041], [0.0062736812978982925, 0.0005677472800016403], [0.006156544666737318, 0.0005571467336267233], [0.006039261817932129, 0.0005465330323204398], [0.005921891424804926, 0.000535911472979933], [0.005804492626339197, 0.0005252872360870242], [0.005687122233211994, 0.0005146656185388565], [0.0055698370561003685, 0.0005040516844019294], [0.0054526920430362225, 0.0004934504395350814], [0.005335741210728884, 0.0004828668024856597], [0.005219039041548967, 0.0004723056626971811], [0.005102637689560652, 0.0004617717058863491], [0.0049865879118442535, 0.0004512695886660367], [0.004870939999818802, 0.00044080382212996483], [0.004755742847919464, 0.00043037888826802373], [0.004641044419258833, 0.00041999906534329057], [0.004526891745626926, 0.000409668602515012], [0.004413329064846039, 0.00039939157431945205], [0.004300401080399752, 0.0003891719679813832], [0.004188150633126497, 0.0003790136834140867], [0.004076619632542133, 0.00036892047501169145], [0.003965847194194794, 0.0003588959516491741], [0.0038558728992938995, 0.00034894366399385035], [0.0037467344664037228, 0.0003390669880900532], [0.0036384675186127424, 0.0003292691835667938], [0.0035311072133481503, 0.0003195534518454224], [0.0034246870782226324, 0.00030992276151664555], [0.003319239243865013, 0.0003003800811711699], [0.003214794211089611, 0.00029092817567288876], [0.0031113815493881702, 0.0002815696643665433], [0.003009029431268573, 0.00027230713749304414], [0.002907763933762908, 0.0002631429524626583], [0.0028076109010726213, 0.0002540794375818223], [0.0027085940819233656, 0.0002451187465339899], [0.002610736060887575, 0.00023626290203537792], [0.002514057792723179, 0.00022751385404262692], [0.0024185795336961746, 0.00021887339244131], [0.0023243199102580547, 0.00021034320525359362], [0.0022312956862151623, 0.00020192483498249203], [0.0021395233925431967, 0.00019361973681952804], [0.002049017231911421, 0.00018542923498898745], [0.0019597909413278103, 0.00017735455185174942], [0.001871856744401157, 0.00016939679335337132], [0.001785225234925747, 0.00016155693447217345], [0.0016999064246192575, 0.00015383586287498474], [0.0016159088118001819, 0.00014623436436522752], [0.0015332396142184734, 0.00013875307922717184], [0.0014519052347168326, 0.00013139258953742683], [0.0013719107955694199, 0.00012415334640536457], [0.0012932601384818554, 0.00011703573545673862], [0.0012159562902525067, 0.00011003998952219263], [0.0011400011135265231, 0.00010316630505258217], [0.0010653955396264791, 9.641474025556818e-05], [0.0009921392193064094, 8.978529513115063e-05], [0.0009202312212437391, 8.327786053996533e-05], [0.0008496694499626756, 7.689225458307192e-05], [0.0007804509368725121, 7.062820805003867e-05], [0.0007125717238523066, 6.44853716949001e-05], [0.0006460272124968469, 5.846331259817816e-05], [0.0005808118148706853, 5.25615323567763e-05], [0.0005169191281311214, 4.6779459808021784e-05], [0.00045434210915118456, 4.111644739168696e-05], [0.0003930727834813297, 3.557177842594683e-05], [0.00033310262369923294, 3.0144678021315485e-05], [0.00027442234568297863, 2.4834307623677887e-05], [0.00021702199592255056, 1.9639766833279282e-05], [0.00016089103883132339, 1.4560102499672212e-05], [0.00010601829126244411, 9.594301445758902e-06], [5.2392038924153894e-05, 4.741304564959137e-06]]}, {"name": "CX_d5_u16", "samples": [[-9.13870899239555e-05, 7.84716291946097e-08], [-0.00018492701929062605, 1.5879183479228232e-07], [-0.0002806411939673126, 2.409790056390193e-07], [-0.00037855005939491093, 3.250507347729581e-07], [-0.00047867311513982713, 4.110236773158249e-07], [-0.0005810287548229098, 4.989137210031913e-07], [-0.0006856343243271112, 5.8873570196738e-07], [-0.0007925059762783349, 6.80503490002593e-07], [-0.0009016587282530963, 7.742300454083306e-07], [-0.0010131063172593713, 8.699270779288781e-07], [-0.0011268610833212733, 9.676052741269814e-07], [-0.0012429342605173588, 1.067274183697009e-06], [-0.0013613355113193393, 1.1689420489346958e-06], [-0.0014820729847997427, 1.2726160321108182e-06], [-0.001605153433047235, 1.3783019312541e-06], [-0.0017305819783359766, 1.4860040664643748e-06], [-0.0018583624623715878, 1.5957257346599363e-06], [-0.001988496631383896, 1.707468413769675e-06], [-0.0021209847182035446, 1.8212323311672662e-06], [-0.002255825325846672, 1.937016349984333e-06], [-0.002393015194684267, 2.0548175143630942e-06], [-0.0025325489696115255, 2.174631390516879e-06], [-0.0026744198985397816, 2.2964522941038013e-06], [-0.0028186191339045763, 2.4202722670452204e-06], [-0.002965135732665658, 2.5460822143941186e-06], [-0.0031139568891376257, 2.673870767466724e-06], [-0.003265067469328642, 2.803625420710887e-06], [-0.0034184507094323635, 2.9353313948377036e-06], [-0.003574087517336011, 3.0689725463162176e-06], [-0.0037319567054510117, 3.204530457878718e-06], [-0.0038920347578823566, 3.3419853480154416e-06], [-0.0040542958304286, 3.481314706732519e-06], [-0.004218712914735079, 3.6224948871677043e-06], [-0.0043852548114955425, 3.765499968721997e-06], [-0.0045538898557424545, 3.9103024391806684e-06], [-0.004724583122879267, 4.056872057844885e-06], [-0.004897297825664282, 4.205177447147435e-06], [-0.005071993917226791, 4.355184501037002e-06], [-0.005248630419373512, 4.506857294472866e-06], [-0.005427162628620863, 4.6601580834249035e-06], [-0.005607544910162687, 4.8150473048735876e-06], [-0.005789727438241243, 4.971482667315286e-06], [-0.005973659455776215, 5.129420515004313e-06], [-0.006159287411719561, 5.288814008963527e-06], [-0.0063465554267168045, 5.449615855468437e-06], [-0.006535404361784458, 5.611775577563094e-06], [-0.006725774146616459, 5.775240879302146e-06], [-0.006917601451277733, 5.939958100498188e-06], [-0.007110821083188057, 6.105869942985009e-06], [-0.007305364590138197, 6.2729195633437485e-06], [-0.007501162122935057, 6.441045570682036e-06], [-0.0076981415040791035, 6.610186119360151e-06], [-0.00789622776210308, 6.780277544748969e-06], [-0.00809534452855587, 6.951253453735262e-06], [-0.008295411244034767, 7.123046088963747e-06], [-0.00849634874612093, 7.295585874089738e-06], [-0.008698073215782642, 7.468800504284445e-06], [-0.008900498040020466, 7.642617674719077e-06], [-0.009103536605834961, 7.816961442586035e-06], [-0.009307099506258965, 7.99175541033037e-06], [-0.009511095471680164, 8.166920451913029e-06], [-0.009715430438518524, 8.342378350789659e-06], [-0.009920011274516582, 8.518045433447696e-06], [-0.01012473925948143, 8.693840754858684e-06], [-0.010329517535865307, 8.869677913025953e-06], [-0.01053424458950758, 9.045472324942239e-06], [-0.010738820768892765, 9.221135769621469e-06], [-0.010943141765892506, 9.396580935572274e-06], [-0.01114710420370102, 9.571717782819178e-06], [-0.011350600980222225, 9.746455361892004e-06], [-0.011553526856005192, 9.920701813825872e-06], [-0.011755772866308689, 1.0094365279655904e-05], [-0.011957230977714062, 1.0267352081427816e-05], [-0.01215779036283493, 1.0439566722197924e-05], [-0.01235734112560749, 1.0610915524011943e-05], [-0.012555771507322788, 1.0781302080431487e-05], [-0.012752968817949295, 1.0950629985018168e-05], [-0.012948821298778057, 1.1118802831333596e-05], [-0.013143215328454971, 1.1285724212939385e-05], [-0.013336037285625935, 1.1451294994913042e-05], [-0.013527174480259418, 1.1615419680310879e-05], [-0.013716512359678745, 1.1777999134210404e-05], [-0.013903937302529812, 1.1938936040678527e-05], [-0.014089335687458515, 1.2098132174287457e-05], [-0.014272594824433327, 1.2255492038093507e-05], [-0.014453600160777569, 1.2410916497174185e-05], [-0.014632240869104862, 1.2564310964080505e-05], [-0.014808404259383678, 1.2715577213384677e-05], [-0.014981977641582489, 1.2864620657637715e-05], [-0.015152852050960064, 1.3011345799895935e-05], [-0.015320917591452599, 1.3155658962205052e-05], [-0.015486065298318863, 1.3297466466610786e-05], [-0.015648188069462776, 1.3436677363642957e-05], [-0.015807179734110832, 1.3573197975347284e-05], [-0.015962934121489525, 1.3706940990232397e-05], [-0.016115348786115646, 1.3837815458828118e-05], [-0.01626432314515114, 1.396573588863248e-05], [-0.016409756615757942, 1.4090614968154114e-05], [-0.016551548615098, 1.4212369023880456e-05], [-0.01668960601091385, 1.4330915291793644e-05], [-0.01682383380830288, 1.4446172826865222e-05], [-0.01695414073765278, 1.4558062503056135e-05], [-0.017080433666706085, 1.4666507922811434e-05], [-0.017202628776431084, 1.4771433598070871e-05], [-0.01732064038515091, 1.4872765859763604e-05], [-0.017434384673833847, 1.4970434676797595e-05], [-0.01754378154873848, 1.5064372746564914e-05], [-0.017648756504058838, 1.5154511856962927e-05], [-0.017749235033988953, 1.5240789252857212e-05], [-0.017845144495368004, 1.5323144907597452e-05], [-0.01793641783297062, 1.540151788503863e-05], [-0.018022989854216576, 1.5475854524993338e-05], [-0.0181047972291708, 1.554610025777947e-05], [-0.018181782215833664, 1.5612205970683135e-05], [-0.018253890797495842, 1.5674122550990433e-05], [-0.018321068957448006, 1.5731808161945082e-05], [-0.018383270129561424, 1.5785217328811996e-05], [-0.018440447747707367, 1.5834313671803102e-05], [-0.0184925589710474, 1.5879062630119734e-05], [-0.01853957027196884, 1.5919429642963223e-05], [-0.018581444397568703, 1.5955385606503114e-05], [-0.018618151545524597, 1.5986903235898353e-05], [-0.018649663776159286, 1.60139625222655e-05], [-0.01867596060037613, 1.603654345672112e-05], [-0.018697019666433334, 1.605462603038177e-05], [-0.018712827935814857, 1.606820114830043e-05], [-0.018723374232649803, 1.6077256077551283e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018729308620095253, 1.6082351066870615e-05], [-0.018724633380770683, 1.6098438209155574e-05], [-0.018716327846050262, 1.6127023627632298e-05], [-0.018703876063227654, 1.6169877198990434e-05], [-0.018687287345528603, 1.622696618142072e-05], [-0.018666574731469154, 1.6298248738166876e-05], [-0.018641753122210503, 1.63836739375256e-05], [-0.01861284114420414, 1.648317811486777e-05], [-0.018579859286546707, 1.6596690329606645e-05], [-0.018542829900979996, 1.672412508924026e-05], [-0.018501782789826393, 1.686539144429844e-05], [-0.018456745892763138, 1.702038753137458e-05], [-0.018407754600048065, 1.7189000573125668e-05], [-0.018354840576648712, 1.7371106878272258e-05], [-0.018298042938113213, 1.7566575479577295e-05], [-0.01823740452528, 1.777526813384611e-05], [-0.018172968178987503, 1.7997032045968808e-05], [-0.018104778602719307, 1.8231707144877873e-05], [-0.01803288608789444, 1.8479129721526988e-05], [-0.01795734278857708, 1.87391196959652e-05], [-0.017878198996186256, 1.9011495169252157e-05], [-0.017795514315366745, 1.9296059690532275e-05], [-0.017709344625473022, 1.9592614989960566e-05], [-0.017619753256440163, 1.9900951883755624e-05], [-0.01752679981291294, 2.0220853912178427e-05], [-0.01743055321276188, 2.055209915852174e-05], [-0.0173310749232769, 2.0894454792141914e-05], [-0.017228439450263977, 2.1247686163405888e-05], [-0.01712271198630333, 2.1611547708744183e-05], [-0.017013970762491226, 2.198579204559792e-05], [-0.01690228469669819, 2.2370164515450597e-05], [-0.016787733882665634, 2.2764401364838704e-05], [-0.01667039282619953, 2.3168237021309324e-05], [-0.01655033975839615, 2.358140227443073e-05], [-0.0164276584982872, 2.4003620637813583e-05], [-0.016302427276968956, 2.4434611987089738e-05], [-0.01617472991347313, 2.4874092559912242e-05], [-0.016044648364186287, 2.532177313696593e-05], [-0.015912270173430443, 2.5777362679946236e-05], [-0.015777679160237312, 2.6240566512569785e-05], [-0.01564096100628376, 2.6711089958553202e-05], [-0.0155022032558918, 2.7188629246666096e-05], [-0.015361495316028595, 2.7672886062646285e-05], [-0.015218923799693584, 2.8163554816273972e-05], [-0.015074578113853931, 2.8660329917329364e-05], [-0.014928546734154224, 2.9162907594582066e-05], [-0.014780919067561626, 2.9670976800844073e-05], [-0.0146317845210433, 3.018423194589559e-05], [-0.014481233432888985, 3.070236198254861e-05], [-0.014329354278743267, 3.122506313957274e-05], [-0.014176237396895885, 3.1752024369779974e-05], [-0.014021972194314003, 3.228293644497171e-05], [-0.013866647146642208, 3.281749741290696e-05], [-0.013710351660847664, 3.335539804538712e-05], [-0.013553173281252384, 3.389634002815001e-05], [-0.013395199552178383, 3.444001413299702e-05], [-0.013236518949270248, 3.498612204566598e-05], [-0.013077217154204845, 3.553436908987351e-05], [-0.012917380779981613, 3.6084456951357424e-05], [-0.012757093645632267, 3.663609459181316e-05], [-0.012596440501511097, 3.718899461091496e-05], [-0.012435504235327244, 3.774286597035825e-05], [-0.012274367734789848, 3.8297424907796085e-05], [-0.012113111093640327, 3.8852398574817926e-05], [-0.011951815336942673, 3.9407510485034436e-05], [-0.011790558695793152, 3.996248415205628e-05], [-0.011629418469965458, 4.051705764140934e-05], [-0.01146847102791071, 4.107096901861951e-05], [-0.01130779180675745, 4.1623956349212676e-05], [-0.011147452518343925, 4.217577225062996e-05], [-0.01098752673715353, 4.272616934031248e-05], [-0.01082808431237936, 4.327490023570135e-05], [-0.010669194161891937, 4.3821728468174115e-05], [-0.010510923340916634, 4.436642848304473e-05], [-0.010353337973356247, 4.490876744966954e-05], [-0.010196501389145851, 4.544853072729893e-05], [-0.01004047691822052, 4.5985500037204474e-05], [-0.009885323233902454, 4.6519471652572975e-05], [-0.009731100872159004, 4.705023457063362e-05], [-0.009577866643667221, 4.757760325446725e-05], [-0.009425674565136433, 4.810137761523947e-05], [-0.009274579584598541, 4.862137939198874e-05], [-0.00912463292479515, 4.913743396173231e-05], [-0.008975883945822716, 4.9649363063508645e-05], [-0.008828380145132542, 5.015700662625022e-05], [-0.00868216808885336, 5.0660204578889534e-05], [-0.008537291549146175, 5.115880412631668e-05], [-0.008393793366849422, 5.165266338735819e-05], [-0.008251712657511234, 5.214164048084058e-05], [-0.00811108946800232, 5.2625604439526796e-05], [-0.007971960119903088, 5.3104427934158593e-05], [-0.007834358140826225, 5.357799454941414e-05], [-0.007698317524045706, 5.404618423199281e-05], [-0.0075638690032064915, 5.4508898756466806e-05], [-0.007431041449308395, 5.496603262145072e-05], [-0.007299862802028656, 5.5417491239495575e-05], [-0.007170357741415501, 5.58631909370888e-05], [-0.007042550481855869, 5.630304804071784e-05], [-0.006916463375091553, 5.673698615282774e-05], [-0.006792115978896618, 5.7164936151821166e-05], [-0.00666952645406127, 5.758683255407959e-05], [-0.006548712495714426, 5.800262078992091e-05], [-0.006429688073694706, 5.8412249927641824e-05], [-0.006312467623502016, 5.881567267351784e-05], [-0.006197061855345964, 5.9212849009782076e-05], [-0.0060834819450974464, 5.9603742556646466e-05], [-0.005971735343337059, 5.998832421028055e-05], [-0.005861829966306686, 6.036657214281149e-05], [-0.005753770470619202, 6.073846452636644e-05], [-0.005647561978548765, 6.110398680903018e-05], [-0.005543205887079239, 6.146313535282388e-05], [-0.005440704058855772, 6.181590288178995e-05], [-0.0053400564938783646, 6.216228939592838e-05], [-0.00524126086384058, 6.250229489523917e-05], [-0.005144315306097269, 6.283594120759517e-05], [-0.005049214698374271, 6.316323560895398e-05], [-0.004955954849720001, 6.348419265123084e-05], [-0.004864528309553862, 6.379884871421382e-05], [-0.004774928092956543, 6.410721107386053e-05], [-0.004687144886702299, 6.440932338591665e-05], [-0.004601169377565384, 6.470521475421265e-05], [-0.004516990855336189, 6.499491428257897e-05], [-0.004434596747159958, 6.527848017867655e-05], [-0.004353975411504507, 6.555594882229343e-05], [-0.004275111947208643, 6.58273565932177e-05], [-0.004197992850095034, 6.609276897506788e-05], [-0.004122602753341198, 6.635222962358966e-05], [-0.004048924893140793, 6.660579674644396e-05], [-0.003904960351064801, 6.710126035613939e-05], [-0.003831282490864396, 6.735482747899368e-05], [-0.0037558921612799168, 6.761428812751547e-05], [-0.0036787730641663074, 6.787969323340803e-05], [-0.003599909832701087, 6.815110828028992e-05], [-0.0035192882642149925, 6.842856964794919e-05], [-0.003436894388869405, 6.871213554404676e-05], [-0.0033527156338095665, 6.90018423483707e-05], [-0.0032667401246726513, 6.92977337166667e-05], [-0.003178957151249051, 6.959984602872282e-05], [-0.003089356701821089, 6.990820838836953e-05], [-0.002997930394485593, 7.022285717539489e-05], [-0.002904670313000679, 7.054382149362937e-05], [-0.002809569938108325, 7.087110861903057e-05], [-0.0027126241475343704, 7.120475493138656e-05], [-0.0026138287503272295, 7.154476770665497e-05], [-0.0025131809525191784, 7.18911542207934e-05], [-0.0024106791242957115, 7.224392174975947e-05], [-0.002306323265656829, 7.260306301759556e-05], [-0.0022001145407557487, 7.29685925762169e-05], [-0.0020920552778989077, 7.334048132179305e-05], [-0.001982149900868535, 7.371872925432399e-05], [-0.0018704034155234694, 7.410331454593688e-05], [-0.001756823156028986, 7.449420809280127e-05], [-0.001641417620703578, 7.48913807910867e-05], [-0.0015241968212649226, 7.529480353696272e-05], [-0.001405172748491168, 7.570443267468363e-05], [-0.0012843585573136806, 7.612021727254614e-05], [-0.001161769381724298, 7.654212095076218e-05], [-0.0010374218691140413, 7.697007094975561e-05], [-0.0009113344131037593, 7.740400906186551e-05], [-0.0007835273281671107, 7.784386252751574e-05], [-0.000654022500384599, 7.828955858713016e-05], [-0.0005228436202742159, 7.874102448113263e-05], [-0.00039001621189527214, 7.919815834611654e-05], [-0.0002555676328483969, 7.966086559463292e-05], [-0.00011952698696404696, 8.01290589151904e-05], [1.8074670151690952e-05, 8.060262189246714e-05], [0.00015720448573119938, 8.108144538709894e-05], [0.00029782773344777524, 8.156541298376396e-05], [0.0004399077733978629, 8.205438643926755e-05], [0.0005834061885252595, 8.254824933828786e-05], [0.0007282825536094606, 8.304684888571501e-05], [0.0008744946680963039, 8.355004683835432e-05], [0.0010219983523711562, 8.40576904010959e-05], [0.0011707476805895567, 8.456961950287223e-05], [0.0013206948060542345, 8.50856740726158e-05], [0.001471789786592126, 8.560567221138626e-05], [0.001623981399461627, 8.61294538481161e-05], [0.0017772158607840538, 8.665681525599211e-05], [0.001931438222527504, 8.718758181203157e-05], [0.0020865914411842823, 8.772154978942126e-05], [0.0022426163777709007, 8.825852273730561e-05], [0.0023994529619812965, 8.87982823769562e-05], [0.002557038562372327, 8.934062498155981e-05], [0.002715309150516987, 8.988532499643043e-05], [0.0028741995338350534, 9.0432156866882e-05], [0.0030336419586092234, 9.098088776227087e-05], [0.0031935677397996187, 9.153127757599577e-05], [0.003353906562551856, 9.208309347741306e-05], [0.0035145862493664026, 9.263608808396384e-05], [0.003675533691421151, 9.31899921852164e-05], [0.0038366736844182014, 9.374456567456946e-05], [0.003997930325567722, 9.429954661754891e-05], [0.004159226547926664, 9.485465125180781e-05], [0.004320482723414898, 9.540962491882965e-05], [0.004481619223952293, 9.59641911322251e-05], [0.004642555024474859, 9.651805885368958e-05], [0.004803208168596029, 9.707095887279138e-05], [0.0049634953029453754, 9.762259287526831e-05], [0.005123332142829895, 9.817268437473103e-05], [0.005282633937895298, 9.872092778095976e-05], [0.00544131500646472, 9.926703933160752e-05], [0.0055992878042161465, 9.981071343645453e-05], [0.005756466183811426, 0.00010035165178123862], [0.005912762135267258, 0.00010088955605169758], [0.006068087182939053, 0.00010142411338165402], [0.006222352385520935, 0.00010195503273280337], [0.006375469267368317, 0.00010248199396301061], [0.006527347955852747, 0.00010300469148205593], [0.00667789950966835, 0.00010352281969971955], [0.006827033590525389, 0.00010403608030173928], [0.006974661257117987, 0.00010454414587002248], [0.007120692636817694, 0.00010504672536626458], [0.007265038788318634, 0.00010554349864833057], [0.0074076103046536446, 0.00010603416740195826], [0.007548318710178137, 0.00010651842603692785], [0.007687075529247522, 0.00010699596168706194], [0.007823793217539787, 0.00010746648331405595], [0.007958384230732918, 0.00010792969260364771], [0.008090763352811337, 0.00010838528396561742], [0.008220843970775604, 0.0001088329590857029], [0.008348541334271431, 0.0001092724414775148], [0.008473772555589676, 0.00010970343282679096], [0.008596454747021198, 0.00011012564937118441], [0.008716506883502007, 0.00011053881462430581], [0.008833847939968109, 0.00011094265209976584], [0.008948399685323238, 0.00011133689258713275], [0.009060084819793701, 0.00011172125960001722], [0.009168827906250954, 0.00011209550575586036], [0.009274553507566452, 0.00011245936912018806], [0.00937718991190195, 0.00011281260231044143], [0.009476667270064354, 0.00011315495794406161], [0.009572915732860565, 0.00011348619591444731], [0.009665868245065212, 0.00011380609794287011], [0.009755460545420647, 0.00011411443847464398], [0.009841629303991795, 0.00011441099195508286], [0.009924313984811306, 0.00011469556193333119], [0.010003456845879555, 0.00011496793013066053], [0.01007900107651949, 0.00011522792192408815], [0.010150893591344357, 0.00011547534813871607], [0.010219082236289978, 0.00011571001959964633], [0.010283519513905048, 0.00011593178351176903], [0.010344157926738262, 0.00011614047980401665], [0.010400954633951187, 0.00011633594840532169], [0.01045386865735054, 0.00011651805107248947], [0.010502861812710762, 0.00011668666411424056], [0.010547897778451443, 0.0001168416638392955], [0.010588944889605045, 0.00011698292655637488], [0.010625973343849182, 0.0001171103649539873], [0.01065895613282919, 0.00011722387716872618], [0.010687869042158127, 0.00011732337588910013], [0.010712690651416779, 0.00011740880290744826], [0.010733402334153652, 0.00011748008546419442], [0.010749991051852703, 0.0001175371726276353], [0.010762442834675312, 0.00011758002801798284], [0.010770748369395733, 0.00011760861525544897], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010775422677397728, 0.00011762470239773393], [0.010772008448839188, 0.00011758743494283408], [0.010765941813588142, 0.00011752120917662978], [0.010756846517324448, 0.00011742192873498425], [0.0107447300106287, 0.00011728966637747362], [0.010729601606726646, 0.00011712451669154689], [0.010711471550166607, 0.0001169266106444411], [0.010690352879464626, 0.00011669607920339331], [0.010666262358427048, 0.00011643310426734388], [0.01063921581953764, 0.00011613786773523316], [0.010609233751893044, 0.00011581058060983196], [0.01057633850723505, 0.00011545149754965678], [0.010540553368628025, 0.00011506085866130888], [0.010501903481781483, 0.00011463896225905046], [0.01046041864901781, 0.00011418610665714368], [0.010416126810014248, 0.0001137026192736812], [0.010369060561060905, 0.00011318884207867086], [0.010319254361093044, 0.00011264515342190862], [0.010266742669045925, 0.00011207193892914802], [0.010211563669145107, 0.00011146960605401546], [0.01015375554561615, 0.00011083857680205256], [0.010093361139297485, 0.0001101793022826314], [0.010030421428382397, 0.0001094922554329969], [0.00996498204767704, 0.0001087779164663516], [0.009897087700664997, 0.00010803678014781326], [0.009826785884797573, 0.00010726936307037249], [0.009754125960171223, 0.00010647620365489274], [0.009679158218204975, 0.00010565785487415269], [0.009601933881640434, 0.00010481486970093101], [0.009522506035864353, 0.00010394783748779446], [0.00944092869758606, 0.00010305734031135216], [0.00935725774616003, 0.00010214398935204372], [0.009271549060940742, 0.00010120839579030871], [0.009183861315250397, 0.00010025118535850197], [0.009094251319766045, 9.927300561685115e-05], [0.00900278054177761, 9.827450412558392e-05], [0.008909507654607296, 9.725633572088555e-05], [0.008814494125545025, 9.621916979085654e-05], [0.008717801421880722, 9.516367572359741e-05], [0.008619493804872036, 9.409053745912388e-05], [0.008519631810486317, 9.300045348936692e-05], [0.008418281562626362, 9.189410775434226e-05], [0.00831550545990467, 9.077219874598086e-05], [0.008211367763578892, 8.96354322321713e-05], [0.008105934597551823, 8.848452125675976e-05], [0.007999270223081112, 8.732017158763483e-05], [0.007891440764069557, 8.61430962686427e-05], [0.007782509550452232, 8.495400834362954e-05], [0.007672544103115797, 8.375362085644156e-05], [0.0075616086833179, 8.254265412688255e-05], [0.007449768949300051, 8.132180664688349e-05], [0.0073370905593037605, 8.009180601220578e-05], [0.007223638240247965, 7.8853357990738e-05], [0.0071094767190515995, 7.760716835036874e-05], [0.006994670256972313, 7.635394285898656e-05], [0.006879283580929041, 7.509438000852242e-05], [0.006763380020856857, 7.382917101494968e-05], [0.006647022906690836, 7.255901437019929e-05], [0.006530274637043476, 7.1284594014287e-05], [0.006413198076188564, 7.000657933531329e-05], [0.0062958537600934505, 6.87256469973363e-05], [0.006178302690386772, 6.744245911249891e-05], [0.006060605403035879, 6.61576705169864e-05], [0.005942820571362972, 6.487192877102643e-05], [0.005825006868690252, 6.358587415888906e-05], [0.005707221571356058, 6.230013241292909e-05], [0.005589521490037441, 6.101531471358612e-05], [0.005471962504088879, 5.9732035879278556e-05], [0.005354598630219698, 5.845089253853075e-05], [0.005237484350800514, 5.7172466767951846e-05], [0.005120671354234219, 5.589733336819336e-05], [0.005004211328923702, 5.462605622597039e-05], [0.004888154566287994, 5.3359181038104e-05], [0.00477255042642355, 5.209724258747883e-05], [0.004657446872442961, 5.084076838102192e-05], [0.004542890470474958, 4.959026773576625e-05], [0.0044289263896644115, 4.834623905480839e-05], [0.004315599333494902, 4.7109158913372084e-05], [0.004202952608466148, 4.587950024870224e-05], [0.0040910267271101475, 4.465772144612856e-05], [0.003979863133281469, 4.3444255425129086e-05], [0.003869500244036317, 4.223953146720305e-05], [0.0037599760107696056, 4.1043964301934466e-05], [0.003651326522231102, 3.985794319305569e-05], [0.003543586703017354, 3.868185376632027e-05], [0.003436790546402335, 3.7516063457587734e-05], [0.003330969950184226, 3.636092515080236e-05], [0.0032261558808386326, 3.52167735400144e-05], [0.003122377675026655, 3.4083928767358884e-05], [0.0030196637380868196, 3.296270006103441e-05], [0.0029180406127125025, 3.1853382097324356e-05], [0.0028175334446132183, 3.0756244086660445e-05], [0.002718166681006551, 2.96715552394744e-05], [0.0026199626736342907, 2.85995593003463e-05], [0.002522943075746298, 2.7540489099919796e-05], [0.0024271272122859955, 2.6494562916923314e-05], [0.002332534408196807, 2.5461986297159456e-05], [0.002239181427285075, 2.4442944777547382e-05], [0.0021470848005264997, 2.3437614800059237e-05], [0.002056258963420987, 2.2446156435762532e-05], [0.0019667171873152256, 2.146871884178836e-05], [0.0018784721614792943, 2.0505434804363176e-05], [0.0017915344797074795, 1.9556422557798214e-05], [0.0017059141537174582, 1.8621789422468282e-05], [0.001621619681827724, 1.770162816683296e-05], [0.0015386583982035518, 1.679602064541541e-05], [0.0014570365892723203, 1.5905035979812965e-05], [0.0013767593773081899, 1.502872873970773e-05], [0.0012978307204321027, 1.4167142580845393e-05], [0.0012202536454424262, 1.3320310245035216e-05], [0.0011440300149843097, 1.2488251741160639e-05], [0.0010691607603803277, 1.167097707366338e-05], [0.0009956456487998366, 1.0868484423554037e-05], [0.0009234834578819573, 1.0080761967401486e-05], [0.0008526723249815404, 9.307786058343481e-06], [0.0007832091650925577, 8.549524864065461e-06], [0.0007150900783017278, 7.805935638316441e-06], [0.0006483104079961777, 7.076967449393123e-06], [0.0005828645080327988, 6.362558906403137e-06], [0.0005187460337765515, 5.662640433001798e-06], [0.00045594782568514347, 4.977134267392103e-06], [0.0003944619675166905, 4.305953552830033e-06], [0.0003342798736412078, 3.6490048387349816e-06], [0.0002753922017291188, 3.006185806952999e-06], [0.0002177889837184921, 2.377388227614574e-06], [0.0001614596403669566, 1.7624962538320688e-06], [0.0001063929739757441, 1.1613875585680944e-06], [5.2577197493519634e-05, 5.739336188526067e-07]]}, {"name": "CX_d7_u9", "samples": [[-0.00011528652248671278, -4.521963091974612e-06], [-0.0002332888834644109, -9.15045166038908e-06], [-0.0003540340985637158, -1.3886524357076269e-05], [-0.0004775479610543698, -1.873119435913395e-05], [-0.0006038550636731088, -2.3685424821451306e-05], [-0.0007329786312766373, -2.8750127967214212e-05], [-0.0008649405208416283, -3.392616054043174e-05], [-0.0009997610468417406, -3.9214322896441445e-05], [-0.0011374593013897538, -4.461535354494117e-05], [-0.0012780525721609592, -5.012994006392546e-05], [-0.0014215563423931599, -5.575868999585509e-05], [-0.0015679848147556186, -6.150215631350875e-05], [-0.0017173500964418054, -6.736081559211016e-05], [-0.0018696626648306847, -7.333507528528571e-05], [-0.002024930901825428, -7.942527008708566e-05], [-0.0021831614430993795, -8.563165465602651e-05], [-0.0023443589452654123, -9.195441089104861e-05], [-0.0025085255037993193, -9.839363337960094e-05], [-0.0026756618171930313, -0.00010494933667359874], [-0.0028457657899707556, -0.00011162144073750824], [-0.0030188332311809063, -0.00011840978550026193], [-0.003194857854396105, -0.00012531412357930094], [-0.0033738308120518923, -0.00013233409845270216], [-0.0035557406954467297, -0.00013946928083896637], [-0.0037405742332339287, -0.0001467191323172301], [-0.00392831489443779, -0.00015408301260322332], [-0.004118943586945534, -0.00016156017954926938], [-0.004312439355999231, -0.00016914980369620025], [-0.00450877845287323, -0.00017685092461761087], [-0.004707932937890291, -0.00018466252367943525], [-0.004909874405711889, -0.00019258340762462467], [-0.005114570260047913, -0.00020061232498846948], [-0.005321985110640526, -0.000208747893339023], [-0.00553208077326417, -0.00021698864293284714], [-0.005744817201048136, -0.00022533294395543635], [-0.0059601496905088425, -0.00023377907928079367], [-0.006178032606840134, -0.00024232524447143078], [-0.006398415192961693, -0.0002509694604668766], [-0.006621245294809341, -0.00025970968999899924], [-0.006846467033028603, -0.0002685437211766839], [-0.00707402266561985, -0.000277469283901155], [-0.0073038493283092976, -0.00028648393345065415], [-0.007535883225500584, -0.0002955851668957621], [-0.0077700563706457615, -0.0003047703066840768], [-0.00800629798322916, -0.0003140365588478744], [-0.008244534954428673, -0.00032338110031560063], [-0.008484689518809319, -0.0003328008751850575], [-0.00872668344527483, -0.00034229274024255574], [-0.008970432914793491, -0.0003518535231705755], [-0.009215853177011013, -0.00036147981882095337], [-0.009462855756282806, -0.00037116813473403454], [-0.00971134938299656, -0.00038091494934633374], [-0.009961238130927086, -0.000390716566471383], [-0.01021242793649435, -0.0004005691152997315], [-0.010464816354215145, -0.000410468754125759], [-0.010718302801251411, -0.00042041140841320157], [-0.010972781106829643, -0.00043039300362579525], [-0.01122814416885376, -0.0004404092615004629], [-0.011484281159937382, -0.00045045590377412736], [-0.01174107939004898, -0.0004605284775607288], [-0.011998424306511879, -0.0004706225008703768], [-0.012256196700036526, -0.00048073328798636794], [-0.01251427922397852, -0.00049085624050349], [-0.012772548012435436, -0.0005009864689782262], [-0.013030879199504852, -0.0005111192003823817], [-0.013289147056639194, -0.000521249370649457], [-0.013547223061323166, -0.0005313720903359354], [-0.013804977759718895, -0.0005414821789599955], [-0.014062279835343361, -0.0005515745142474771], [-0.014318995177745819, -0.0005616438575088978], [-0.014574989676475525, -0.0005716849118471146], [-0.014830127358436584, -0.0005816923803649843], [-0.015084270387887955, -0.000591660791542381], [-0.015337279997766018, -0.0006015847320668399], [-0.015589016489684582, -0.000611458788625896], [-0.015839340165257454, -0.0006212773732841015], [-0.016088107600808144, -0.0006310350145213306], [-0.016335180029273033, -0.0006407260661944747], [-0.016580410301685333, -0.0006503449403680861], [-0.016823660582304, -0.0006598860491067171], [-0.017064781859517097, -0.00066934380447492], [-0.01730363629758358, -0.0006787125021219254], [-0.01754007674753666, -0.0006879865541122854], [-0.017773959785699844, -0.0006971603143028915], [-0.018005143851041794, -0.0007062282529659569], [-0.018233487382531166, -0.0007151846657507122], [-0.01845884509384632, -0.0007240240811370313], [-0.018681077286601067, -0.0007327408529818058], [-0.01890004426240921, -0.0007413295679725707], [-0.01911560632288456, -0.0007497846381738782], [-0.019327623769640923, -0.0007581007666885853], [-0.019535960629582405, -0.000766272540204227], [-0.019740480929613113, -0.0007742945454083383], [-0.019941052421927452, -0.0007821616600267589], [-0.020137539133429527, -0.0007898686453700066], [-0.02032981440424919, -0.0007974103791639209], [-0.020517747849225998, -0.0008047817973420024], [-0.0207012128084898, -0.0008119780104607344], [-0.020880088210105896, -0.000818994187284261], [-0.021054251119494438, -0.0008258254383690655], [-0.021223580464720726, -0.0008324672235175967], [-0.021387964487075806, -0.0008389149443246424], [-0.021547285839915276, -0.0008451641188003123], [-0.02170143648982048, -0.0008512104977853596], [-0.021850310266017914, -0.0008570498321205378], [-0.02199380099773407, -0.0008626780472695827], [-0.02213180810213089, -0.0008680912433192134], [-0.022264236584305763, -0.0008732855785638094], [-0.02239099144935608, -0.0008782573859207332], [-0.022511983290314674, -0.0008830031147226691], [-0.022627126425504684, -0.0008875194471329451], [-0.022736337035894394, -0.0008918031235225499], [-0.022839538753032684, -0.0008958510588854551], [-0.022936658933758736, -0.0008996604010462761], [-0.02302762307226658, -0.0009032284142449498], [-0.023112371563911438, -0.0009065525373443961], [-0.02319083735346794, -0.0009096302674151957], [-0.02326296828687191, -0.0009124595089815557], [-0.023328708484768867, -0.0009150381083600223], [-0.023388013243675232, -0.0009173642611131072], [-0.023440837860107422, -0.000919436221010983], [-0.023487145081162453, -0.0009212525328621268], [-0.02352689951658249, -0.0009228118578903377], [-0.023560071364045143, -0.0009241130319423974], [-0.023586640134453773, -0.0009251550654880702], [-0.02360658161342144, -0.0009259373182430863], [-0.023619886487722397, -0.0009264591499231756], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023627372458577156, -0.0009267527493648231], [-0.023621654137969017, -0.0009263919782824814], [-0.02361149527132511, -0.0009257508208975196], [-0.023596266284585, -0.0009247896377928555], [-0.023575976490974426, -0.000923509185668081], [-0.023550644516944885, -0.0009219103958457708], [-0.02352028526365757, -0.0009199944324791431], [-0.02348492108285427, -0.000917762634344399], [-0.023444581776857376, -0.0009152167476713657], [-0.023399291560053825, -0.0009123585186898708], [-0.023349087685346603, -0.0009091900428757071], [-0.023294003680348396, -0.0009057136485353112], [-0.023234080523252487, -0.0009019318968057632], [-0.02316936105489731, -0.0008978474652394652], [-0.02309989370405674, -0.0008934633224271238], [-0.02302572689950466, -0.0008887826115824282], [-0.0229469146579504, -0.0008838087087497115], [-0.022863512858748436, -0.0008785451645962894], [-0.02277558110654354, -0.0008729957626201212], [-0.02268318273127079, -0.0008671645191498101], [-0.022586384788155556, -0.0008610554505139589], [-0.02248525246977806, -0.0008546729804947972], [-0.022379860281944275, -0.0008480215910822153], [-0.022270280867815018, -0.0008411059388890862], [-0.022156590595841408, -0.0008339309133589268], [-0.022038869559764862, -0.0008265015203505754], [-0.021917199715971947, -0.0008188228239305317], [-0.021791664883494377, -0.0008109002956189215], [-0.021662352606654167, -0.0008027392905205488], [-0.02152934856712818, -0.0007943453965708613], [-0.02139274775981903, -0.0007857243763282895], [-0.021252639591693878, -0.0007768821087665856], [-0.021109120920300484, -0.0007678245310671628], [-0.020962286740541458, -0.000758557696826756], [-0.02081223390996456, -0.0007490878342650831], [-0.020659064874053, -0.0007394211716018617], [-0.020502876490354538, -0.0007295641698874533], [-0.020343776792287827, -0.0007195232319645584], [-0.020181864500045776, -0.0007093048770911992], [-0.020017245784401894, -0.0006989157409407198], [-0.019850026816129684, -0.0006883624591864645], [-0.019680313766002655, -0.0006776517839170992], [-0.01950821466743946, -0.0006667904672212899], [-0.019333835691213608, -0.0006557853193953633], [-0.0191572867333889, -0.0006446432089433074], [-0.018978677690029144, -0.0006333710043691099], [-0.018798114731907845, -0.0006219756323844194], [-0.018615707755088806, -0.000610463903285563], [-0.018431570380926132, -0.0005988428019918501], [-0.01824580691754818, -0.0005871192552149296], [-0.01805853098630905, -0.0005753001314587891], [-0.017869850620627403, -0.0005633923574350774], [-0.01767987199127674, -0.0005514028016477823], [-0.017488708719611168, -0.0005393382743932307], [-0.01729646325111389, -0.0005272056441754103], [-0.017103247344493866, -0.0005150116630829871], [-0.016909165307879448, -0.0005027630249969661], [-0.016714325174689293, -0.0004904664820060134], [-0.01651882939040661, -0.00047812864067964256], [-0.016322782263159752, -0.0004657560493797064], [-0.01612628810107708, -0.0004533551982603967], [-0.01592944748699665, -0.0004409325192682445], [-0.015732362866401672, -0.00042849432793445885], [-0.015535131096839905, -0.0004160469106864184], [-0.015337850898504257, -0.0004035964666400105], [-0.015140618197619915, -0.0003911490202881396], [-0.014943527989089489, -0.0003787105670198798], [-0.014746674336493015, -0.00036628698580898345], [-0.014550147578120232, -0.0003538840974215418], [-0.014354038052260876, -0.0003415074897930026], [-0.014158433303236961, -0.000329162779962644], [-0.013963419944047928, -0.0003168553812429309], [-0.013769082725048065, -0.0003045906196348369], [-0.01357550173997879, -0.0002923736465163529], [-0.013382759876549244, -0.0002802095841616392], [-0.013190933503210545, -0.0002681033220142126], [-0.013000099919736385, -0.00025605972041375935], [-0.01281033270061016, -0.00024408340686932206], [-0.012621704488992691, -0.00023217895068228245], [-0.012434284202754498, -0.00022035074653103948], [-0.012248138897120953, -0.00020860304357483983], [-0.012063335627317429, -0.00019693997455760837], [-0.01187993586063385, -0.00018536552670411766], [-0.011698001064360142, -0.00017388352716807276], [-0.011517589911818504, -0.00016249767213594168], [-0.011338758282363415, -0.00015121152682695538], [-0.011161561124026775, -0.00014002848183736205], [-0.010986048728227615, -0.00012895181134808809], [-0.010812271386384964, -0.00011798461491707712], [-0.010640275664627552, -0.00010712987568695098], [-0.010470106266438961, -9.639040945330635e-05], [-0.010301806963980198, -8.576890104450285e-05], [-0.010135415941476822, -7.526789704570547e-05], [-0.009970972314476967, -6.488977669505402e-05], [-0.009808511473238468, -5.463679553940892e-05], [-0.009648067876696587, -4.4511063606478274e-05], [-0.009489670395851135, -3.451455268077552e-05], [-0.009333350695669651, -2.464909448463004e-05], [-0.009179133921861649, -1.4916377949703019e-05], [-0.009027044288814068, -5.317962404660648e-06], [-0.008877106010913849, 4.144728791288799e-06], [-0.008729338645935059, 1.3470405974658206e-05], [-0.00858376082032919, 2.2657908630208112e-05], [-0.008440389297902584, 3.1706204026704654e-05], [-0.008299237117171288, 4.061438448843546e-05], [-0.008160317316651344, 4.938167330692522e-05], [-0.00802364107221365, 5.800740473205224e-05], [-0.0078892158344388, 6.649104034295306e-05], [-0.007757049053907394, 7.483216177206486e-05], [-0.007627145387232304, 8.303044160129502e-05], [-0.007499508559703827, 9.108569793170318e-05], [-0.007374139036983252, 9.899782889988273e-05], [-0.007251037284731865, 0.00010676685633370653], [-0.0071302009746432304, 0.00011439289664849639], [-0.007011626847088337, 0.00012187616812298074], [-0.006895310245454311, 0.00012921699089929461], [-0.006781244184821844, 0.00013641575060319155], [-0.006669420748949051, 0.00014347299293149263], [-0.006559831090271473, 0.00015038925630506128], [-0.006452464032918215, 0.0001571652537677437], [-0.006347307935357094, 0.00016380172746721655], [-0.006244349293410778, 0.00017029950686264783], [-0.006143573671579361, 0.0001766594941727817], [-0.006044965703040361, 0.00018288270803168416], [-0.005948508623987436, 0.00018897016707342118], [-0.005854184273630381, 0.00019492300634738058], [-0.005761974956840277, 0.00020074241911061108], [-0.005671859718859196, 0.00020642962772399187], [-0.005495777819305658, 0.00021754227054771036], [-0.005405662581324577, 0.00022322947916109115], [-0.005313452798873186, 0.00022904887737240642], [-0.005219128914177418, 0.00023500173119828105], [-0.005122671835124493, 0.00024108919024001807], [-0.005024063866585493, 0.0002473123895470053], [-0.004923288244754076, 0.0002536723914090544], [-0.00482032960280776, 0.0002601701708044857], [-0.004715173039585352, 0.00026680665905587375], [-0.004607806447893381, 0.00027358264196664095], [-0.004498216323554516, 0.0002804989053402096], [-0.00438639335334301, 0.0002875561476685107], [-0.004272327292710543, 0.00029475492192432284], [-0.00415601022541523, 0.00030209572287276387], [-0.004037436563521624, 0.0003095789870712906], [-0.003916600253432989, 0.0003172050346620381], [-0.003793498268350959, 0.0003249740693718195], [-0.003668128978461027, 0.00033288620761595666], [-0.003540491685271263, 0.0003409414493944496], [-0.003410588251426816, 0.00034913973649963737], [-0.0032784214708954096, 0.0003574808652047068], [-0.0031439964659512043, 0.0003659644862636924], [-0.003007319988682866, 0.0003745902213267982], [-0.0028684004209935665, 0.0003833575174212456], [-0.0027272484730929136, 0.000392265705158934], [-0.0025838762521743774, 0.00040131399873644114], [-0.002438298426568508, 0.00041050149593502283], [-0.002290531061589718, 0.0004198271781206131], [-0.002140592783689499, 0.0004292898520361632], [-0.001988503849133849, 0.00043888826621696353], [-0.0018342869589105248, 0.0004486209945753217], [-0.0016779666766524315, 0.000458486465504393], [-0.001519569894298911, 0.0004684829618781805], [-0.0013591254828497767, 0.0004786086792591959], [-0.0011966648744419217, 0.0004888616967946291], [-0.0010322214802727103, 0.0004992397734895349], [-0.0008658307488076389, 0.0005097407847642899], [-0.0006975307478569448, 0.0005203622858971357], [-0.0005273616989143193, 0.0005311017739586532], [-0.00035536603536456823, 0.0005419565131887794], [-0.00018158853345084935, 0.0005529237096197903], [-6.076273166399915e-06, 0.0005640003946609795], [0.00017112138448283076, 0.0005751834250986576], [0.0003499527520034462, 0.0005864695995114744], [0.0005303638754412532, 0.000597855425439775], [0.0007122985552996397, 0.0006093374104239047], [0.0008956981473602355, 0.0006209118873812258], [0.0010805018246173859, 0.0006325749563984573], [0.0012666466645896435, 0.0006443226593546569], [0.0014540670672431588, 0.0006561508635058999], [0.001642695744521916, 0.0006680553196929395], [0.0018324628472328186, 0.0006800316041335464], [0.002023296430706978, 0.0006920752348378301], [0.00221512233838439, 0.0007041814969852567], [0.0024078646674752235, 0.0007163455593399704], [0.0026014449540525675, 0.0007285625324584544], [0.002795782871544361, 0.0007408272940665483], [0.0029907962307333946, 0.000753134663682431], [0.0031864007469266653, 0.0007654794026166201], [0.003382510505616665, 0.0007778559811413288], [0.003579037031158805, 0.0007902588695287704], [0.003775891149416566, 0.0008026824798434973], [0.003972980659455061, 0.0008151208749040961], [0.004170213360339403, 0.0008275683503597975], [0.004367493558675051, 0.0008400187944062054], [0.004564725328236818, 0.0008524662116542459], [0.004761810880154371, 0.000864904432091862], [0.004958651028573513, 0.0008773271110840142], [0.005155145190656185, 0.0008897279622033238], [0.005351191386580467, 0.0009021005243994296], [0.0055466871708631516, 0.0009144383948296309], [0.0057415287010371685, 0.0009267349378205836], [0.005935610271990299, 0.0009389835176989436], [0.006128826644271612, 0.0009511775569990277], [0.0063210707157850266, 0.0009633101872168481], [0.006512235384434462, 0.0009753746562637389], [0.006702212616801262, 0.000987364212051034], [0.006890893913805485, 0.0009992719860747457], [0.0070781703107059, 0.001011091168038547], [0.007263932842761278, 0.0010228146566078067], [0.007448071148246527, 0.0010344358161091805], [0.007630476728081703, 0.001045947545208037], [0.007811039686203003, 0.0010573429754003882], [0.007989649660885334, 0.0010686151217669249], [0.008166198618710041, 0.0010797572322189808], [0.008340577594935894, 0.0010907623218372464], [0.008512677624821663, 0.0011016236385330558], [0.008682389743626118, 0.001112334313802421], [0.008849608711898327, 0.0011228875955566764], [0.00901422742754221, 0.0011332767317071557], [0.009176138788461685, 0.001143495086580515], [0.009335240349173546, 0.0011535360245034099], [0.00949142687022686, 0.00116339314263314], [0.009644596837460995, 0.0011730596888810396], [0.009794648736715317, 0.0011825296096503735], [0.009941482916474342, 0.0011917963856831193], [0.010085002519190311, 0.0012008539633825421], [0.010225110687315464, 0.001209696289151907], [0.01036171242594719, 0.0012183173093944788], [0.010494714602828026, 0.0012267112033441663], [0.01062402781099081, 0.001234872150234878], [0.01074956264346838, 0.0012427947949618101], [0.010871232487261295, 0.001250473433174193], [0.010988952592015266, 0.0012579028261825442], [0.011102642863988876, 0.0012650778517127037], [0.011212222278118134, 0.0012719935039058328], [0.011317615397274494, 0.0012786448933184147], [0.011418746784329414, 0.0012850273633375764], [0.011515545658767223, 0.0012911363737657666], [0.011607944034039974, 0.0012969677336513996], [0.011695874854922295, 0.001302517019212246], [0.01177927665412426, 0.001307780621573329], [0.01185808889567852, 0.0013127544661983848], [0.011932255700230598, 0.0013174351770430803], [0.012001723982393742, 0.0013218193780630827], [0.012066442519426346, 0.0013259038096293807], [0.012126365676522255, 0.0013296855613589287], [0.012181449681520462, 0.0013331619556993246], [0.012231654487550259, 0.0013363304315134883], [0.012276943773031235, 0.0013391886604949832], [0.012317284010350704, 0.0013417345471680164], [0.012352647259831429, 0.0013439663453027606], [0.012383006513118744, 0.0013458823086693883], [0.01240833941847086, 0.0013474811566993594], [0.012428628280758858, 0.001348761492408812], [0.012443858198821545, 0.001349722733721137], [0.01245401706546545, 0.001350363832898438], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.012459734454751015, 0.0013507246039807796], [0.01245578657835722, 0.0013502966612577438], [0.012448770925402641, 0.0013495361199602485], [0.012438254430890083, 0.0013483960647135973], [0.012424244545400143, 0.001346877310425043], [0.012406750582158566, 0.0013449809048324823], [0.012385786511003971, 0.001342708244919777], [0.012361367233097553, 0.0013400609605014324], [0.01233351044356823, 0.0013370411470532417], [0.012302236631512642, 0.001333650783635676], [0.01226756814867258, 0.001329892547801137], [0.012229531072080135, 0.0013257690006867051], [0.01218815241008997, 0.0013212831690907478], [0.012143461033701897, 0.0013164384290575981], [0.012095491401851177, 0.0013112380402162671], [0.012044276110827923, 0.0013056860771030188], [0.011989853344857693, 0.0012997861485928297], [0.011932261288166046, 0.0012935427948832512], [0.01187154185026884, 0.0012869603233411908], [0.011807737872004509, 0.0012800435069948435], [0.011740894056856632, 0.001272797235287726], [0.01167105883359909, 0.0012652266304939985], [0.011598281562328339, 0.0012573370477184653], [0.011522612534463406, 0.0012491339584812522], [0.01144410576671362, 0.0012406231835484505], [0.011362815275788307, 0.0012318107765167952], [0.011278797872364521, 0.0012227026745676994], [0.011192111298441887, 0.0012133052805438638], [0.011102816089987755, 0.0012036249972879887], [0.011010972782969475, 0.00119366857688874], [0.01091664470732212, 0.0011834426550194621], [0.010819895192980766, 0.0011729543330147862], [0.010720789432525635, 0.001162210595794022], [0.010619394481182098, 0.001151218661107123], [0.010515778325498104, 0.0011399858631193638], [0.010410008952021599, 0.0011285197688266635], [0.010302156209945679, 0.0011168277123942971], [0.01019229181110859, 0.001104917610064149], [0.010080485604703426, 0.0010927970288321376], [0.00996681023389101, 0.0010804737685248256], [0.00985134020447731, 0.0010679559782147408], [0.009734147228300571, 0.0010552514577284455], [0.009615305811166763, 0.0010423681233078241], [0.009494890458881855, 0.001029314356856048], [0.009372977539896965, 0.0010160980746150017], [0.009249640628695488, 0.0010027274256572127], [0.009124955162405968, 0.000989210675470531], [0.008998997509479523, 0.0009755559149198234], [0.008871843107044697, 0.0009617714677006006], [0.008743567392230034, 0.0009478654828853905], [0.008614245802164078, 0.000933846109546721], [0.008483954705297947, 0.0009197216131724417], [0.00835276860743761, 0.0009055000846274197], [0.008220762014389038, 0.0008911896729841828], [0.008088010363280773, 0.0008767984108999372], [0.00795458722859621, 0.0008623343892395496], [0.00782056711614132, 0.0008478056406602263], [0.007686022203415632, 0.0008332199649885297], [0.007551025133579969, 0.0008185853366740048], [0.0074156480841338634, 0.0008039094973355532], [0.007279961369931698, 0.0007892000721767545], [0.007144036237150431, 0.0007744648028165102], [0.0070079416036605835, 0.0007597111398354173], [0.006871745456010103, 0.0007449465338140726], [0.006735516246408224, 0.0007301783189177513], [0.006599320098757744, 0.0007154137128964067], [0.006463222671300173, 0.0007006597006693482], [0.006327287759631872, 0.0006859233835712075], [0.006191578693687916, 0.0006712115718983114], [0.006056157872080803, 0.0006565309595316648], [0.0059210858307778835, 0.0006418881821446121], [0.005786421708762646, 0.0006272896425798535], [0.00565222417935729, 0.0006127416854724288], [0.005518550053238869, 0.0005982504226267338], [0.005385454278439283, 0.0005838219076395035], [0.0052529918029904366, 0.0005694620194844902], [0.005121213849633932, 0.0005551763460971415], [0.004990173038095236, 0.000540970591828227], [0.004859917797148228, 0.000526849995367229], [0.004730497021228075, 0.0005128198536112905], [0.004601957276463509, 0.0004988852306269109], [0.004474343731999397, 0.00048505098675377667], [0.004347699694335461, 0.0004713218368124217], [0.0042220670729875565, 0.0004577023792080581], [0.0040974863804876804, 0.00044419695041142404], [0.0039739967323839664, 0.00043080979958176613], [0.003851635381579399, 0.0004175449430476874], [0.003730437718331814, 0.00040440625161863863], [0.0036104379687458277, 0.0003913974214810878], [0.0034916687291115522, 0.0003785219741985202], [0.00337416073307395, 0.0003657832567114383], [0.0032579435501247644, 0.0003531844704411924], [0.0031430446542799473, 0.0003407286130823195], [0.003029490355402231, 0.00032841850770637393], [0.0029173053335398436, 0.00031625686096958816], [0.002806512638926506, 0.00030424611759372056], [0.0026971339248120785, 0.000292388693196699], [0.0025891889818012714, 0.00028068668325431645], [0.002482696669176221, 0.0002691421250347048], [0.00237767375074327, 0.0002577568811830133], [0.0022741358261555433, 0.0002465326397214085], [0.002172097098082304, 0.00023547091404907405], [0.0020715701393783092, 0.0002245730720460415], [0.001972566358745098, 0.00021384036517702043], [0.0018750957679003477, 0.00020327384117990732], [0.0017791667487472296, 0.000192874445929192], [0.0016847866354510188, 0.00018264296522829682], [0.0015919612487778068, 0.00017258002480957657], [0.0015006952453404665, 0.00016268613399006426], [0.0014109921175986528, 0.00015296167111955583], [0.0013228539610281587, 0.00014340686902869493], [0.0012362818233668804, 0.00013402181502897292], [0.0011512754717841744, 0.00012480652367230505], [0.0010678336257115006, 0.00011576082761166617], [0.0009859539568424225, 0.00010688448674045503], [0.0009056329727172852, 9.817711543291807e-05], [0.0008268661913461983, 8.963822619989514e-05], [0.0007496480830013752, 8.126723696477711e-05], [0.0006739723612554371, 7.30634419596754e-05], [0.0005998314591124654, 6.502604082925245e-05], [0.000527217227499932, 5.715413499274291e-05], [0.00045612049871124327, 4.944673855789006e-05], [0.00038653131923638284, 4.190276740700938e-05], [0.00031843886245042086, 3.452106102486141e-05], [0.0002518316905479878, 2.7300362489768304e-05], [0.0001866974780568853, 2.0239347577444278e-05], [0.00012302331742830575, 1.333661020908039e-05], [6.0795566241722554e-05, 6.590675639017718e-06]]}, {"name": "QId_d0", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d1", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d10", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d11", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d12", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d13", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d14", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d15", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d16", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d17", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d18", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d19", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d2", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d20", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d21", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d22", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d23", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d24", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d25", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d26", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d3", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d4", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d5", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d6", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d7", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d8", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d9", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}], "cmd_def": [{"name": "cx", "qubits": [0, 1], "sequence": [{"name": "fc", "t0": 0, "ch": "d0", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d0", "label": "Ym_d0", "pulse_shape": "drag", "parameters": {"amp": [-3.505173982817328e-17, -0.19081278429327633], "beta": 0.5264483656320492, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 3440, "ch": "d0", "label": "Xp_d0", "pulse_shape": "drag", "parameters": {"amp": [0.19081278429327633, 0.0], "beta": 0.5264483656320492, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "X90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.09662612490207494, 8.168061701526435e-05], "beta": -0.0582599488341388, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d1", "label": "CR90p_d1_u0", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.014481823700419203, 0.00041206131700401556], "duration": 3280, "sigma": 64, "width": 3024}}, {"name": "parametric_pulse", "t0": 3600, "ch": "d1", "label": "CR90m_d1_u0", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.014481823700419203, -0.0004120613170040138], "duration": 3280, "sigma": 64, "width": 3024}}, {"name": "parametric_pulse", "t0": 160, "ch": "u0", "label": "CR90p_u0", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.09790350734749666, -0.01362158419767096], "duration": 3280, "sigma": 64, "width": 3024}}, {"name": "parametric_pulse", "t0": 3600, "ch": "u0", "label": "CR90m_u0", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.09790350734749666, 0.013621584197670972], "duration": 3280, "sigma": 64, "width": 3024}}, {"name": "fc", "t0": 0, "ch": "u1", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [1, 0], "sequence": [{"name": "fc", "t0": 0, "ch": "d0", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d0", "label": "X90p_d0", "pulse_shape": "drag", "parameters": {"amp": [0.09572477894596168, 0.0011024192527703698], "beta": 0.4899587750398396, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 3440, "ch": "d0", "label": "Xp_d0", "pulse_shape": "drag", "parameters": {"amp": [0.19081278429327633, 0.0], "beta": 0.5264483656320492, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 6880, "ch": "d0", "label": "Y90m_d0", "pulse_shape": "drag", "parameters": {"amp": [0.0011024192527703473, -0.09572477894596168], "beta": 0.4899587750398396, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d1", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "Y90p_d1", "pulse_shape": "drag", "parameters": {"amp": [-8.168061701524961e-05, 0.09662612490207494], "beta": -0.0582599488341388, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d1", "label": "CR90p_d1_u0", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.014481823700419203, 0.00041206131700401556], "duration": 3280, "sigma": 64, "width": 3024}}, {"name": "parametric_pulse", "t0": 3600, "ch": "d1", "label": "CR90m_d1_u0", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.014481823700419203, -0.0004120613170040138], "duration": 3280, "sigma": 64, "width": 3024}}, {"name": "fc", "t0": 6880, "ch": "d1", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 6880, "ch": "d1", "label": "X90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.09662612490207494, 8.168061701526435e-05], "beta": -0.0582599488341388, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u0", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u0", "label": "CR90p_u0", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.09790350734749666, -0.01362158419767096], "duration": 3280, "sigma": 64, "width": 3024}}, {"name": "parametric_pulse", "t0": 3600, "ch": "u0", "label": "CR90m_u0", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.09790350734749666, 0.013621584197670972], "duration": 3280, "sigma": 64, "width": 3024}}, {"name": "fc", "t0": 6880, "ch": "u0", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u1", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u4", "phase": -3.141592653589793}, {"name": "fc", "t0": 6880, "ch": "u4", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u8", "phase": -3.141592653589793}, {"name": "fc", "t0": 6880, "ch": "u8", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [1, 2], "sequence": [{"name": "fc", "t0": 768, "ch": "d1", "phase": -3.072999484338594}, {"name": "CX_d2_u2", "t0": 0, "ch": "d2"}, {"name": "fc", "t0": 768, "ch": "d2", "phase": 0.08900616993087457}, {"name": "fc", "t0": 768, "ch": "u0", "phase": -3.072999484338594}, {"name": "parametric_pulse", "t0": 0, "ch": "u2", "label": "CX_u2", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.3218644987409475, -0.22905004099957096], "duration": 768, "sigma": 64, "width": 512}}, {"name": "fc", "t0": 768, "ch": "u2", "phase": 0.08900616993087457}, {"name": "fc", "t0": 768, "ch": "u4", "phase": -3.072999484338594}, {"name": "fc", "t0": 768, "ch": "u6", "phase": 0.08900616993087457}, {"name": "fc", "t0": 768, "ch": "u8", "phase": -3.072999484338594}]}, {"name": "cx", "qubits": [1, 4], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "Y90p_d1", "pulse_shape": "drag", "parameters": {"amp": [-8.168061701524961e-05, 0.09662612490207494], "beta": -0.0582599488341388, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d1", "label": "CR90p_d1_u8", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.03669318923566524, -3.7572636775247175e-05], "duration": 880, "sigma": 64, "width": 624}}, {"name": "parametric_pulse", "t0": 1200, "ch": "d1", "label": "CR90m_d1_u8", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.03669318923566524, 3.757263677525167e-05], "duration": 880, "sigma": 64, "width": 624}}, {"name": "fc", "t0": 2080, "ch": "d1", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 2080, "ch": "d1", "label": "X90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.09662612490207494, 8.168061701526435e-05], "beta": -0.0582599488341388, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d4", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "X90p_d4", "pulse_shape": "drag", "parameters": {"amp": [0.09679969868891551, 0.0006494190146448055], "beta": 0.2138847527435544, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1040, "ch": "d4", "label": "Xp_d4", "pulse_shape": "drag", "parameters": {"amp": [0.19376497245190957, 0.0], "beta": 0.18211995153669097, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 2080, "ch": "d4", "label": "Y90m_d4", "pulse_shape": "drag", "parameters": {"amp": [0.0006494190146447761, -0.09679969868891551], "beta": 0.2138847527435544, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u0", "phase": -3.141592653589793}, {"name": "fc", "t0": 2080, "ch": "u0", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u13", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u3", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u4", "phase": -3.141592653589793}, {"name": "fc", "t0": 2080, "ch": "u4", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u8", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u8", "label": "CR90p_u8", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.4980139844231474, -0.0032640132735518553], "duration": 880, "sigma": 64, "width": 624}}, {"name": "parametric_pulse", "t0": 1200, "ch": "u8", "label": "CR90m_u8", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.4980139844231474, 0.003264013273551794], "duration": 880, "sigma": 64, "width": 624}}, {"name": "fc", "t0": 2080, "ch": "u8", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [2, 1], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "Y90p_d1", "pulse_shape": "drag", "parameters": {"amp": [-8.168061701524961e-05, 0.09662612490207494], "beta": -0.0582599488341388, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 928, "ch": "d1", "phase": -3.072999484338594}, {"name": "fc", "t0": 928, "ch": "d1", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 928, "ch": "d1", "label": "Y90p_d1", "pulse_shape": "drag", "parameters": {"amp": [-8.168061701524961e-05, 0.09662612490207494], "beta": -0.0582599488341388, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d2", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "Y90p_d2", "pulse_shape": "drag", "parameters": {"amp": [-0.0011522965336072963, 0.09755670881211916], "beta": -1.0659510853062957, "duration": 160, "sigma": 40}}, {"name": "CX_d2_u2", "t0": 160, "ch": "d2"}, {"name": "fc", "t0": 928, "ch": "d2", "phase": 0.08900616993087457}, {"name": "fc", "t0": 928, "ch": "d2", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 928, "ch": "d2", "label": "Y90p_d2", "pulse_shape": "drag", "parameters": {"amp": [-0.0011522965336072963, 0.09755670881211916], "beta": -1.0659510853062957, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u0", "phase": -3.141592653589793}, {"name": "fc", "t0": 928, "ch": "u0", "phase": -3.072999484338594}, {"name": "fc", "t0": 928, "ch": "u0", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u2", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u2", "label": "CX_u2", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.3218644987409475, -0.22905004099957096], "duration": 768, "sigma": 64, "width": 512}}, {"name": "fc", "t0": 928, "ch": "u2", "phase": 0.08900616993087457}, {"name": "fc", "t0": 928, "ch": "u2", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u4", "phase": -3.141592653589793}, {"name": "fc", "t0": 928, "ch": "u4", "phase": -3.072999484338594}, {"name": "fc", "t0": 928, "ch": "u4", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u6", "phase": -3.141592653589793}, {"name": "fc", "t0": 928, "ch": "u6", "phase": 0.08900616993087457}, {"name": "fc", "t0": 928, "ch": "u6", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u8", "phase": -3.141592653589793}, {"name": "fc", "t0": 928, "ch": "u8", "phase": -3.072999484338594}, {"name": "fc", "t0": 928, "ch": "u8", "phase": -3.141592653589793}]}, {"name": "cx", "qubits": [2, 3], "sequence": [{"name": "fc", "t0": 1008, "ch": "d2", "phase": -0.8168706952798706}, {"name": "CX_d3_u5", "t0": 0, "ch": "d3"}, {"name": "fc", "t0": 1008, "ch": "d3", "phase": 0.047079177722488}, {"name": "fc", "t0": 1008, "ch": "u10", "phase": 0.047079177722488}, {"name": "fc", "t0": 1008, "ch": "u2", "phase": -0.8168706952798706}, {"name": "parametric_pulse", "t0": 0, "ch": "u5", "label": "CX_u5", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.29446053583407245, -0.2810308960119006], "duration": 1008, "sigma": 64, "width": 752}}, {"name": "fc", "t0": 1008, "ch": "u5", "phase": 0.047079177722488}, {"name": "fc", "t0": 1008, "ch": "u6", "phase": -0.8168706952798706}]}, {"name": "cx", "qubits": [3, 2], "sequence": [{"name": "fc", "t0": 0, "ch": "d2", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "Y90p_d2", "pulse_shape": "drag", "parameters": {"amp": [-0.0011522965336072963, 0.09755670881211916], "beta": -1.0659510853062957, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 1168, "ch": "d2", "phase": -0.8168706952798706}, {"name": "fc", "t0": 1168, "ch": "d2", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1168, "ch": "d2", "label": "Y90p_d2", "pulse_shape": "drag", "parameters": {"amp": [-0.0011522965336072963, 0.09755670881211916], "beta": -1.0659510853062957, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d3", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "Y90p_d3", "pulse_shape": "drag", "parameters": {"amp": [-0.0008902006723180706, 0.09711734143625132], "beta": -0.25214660522363813, "duration": 160, "sigma": 40}}, {"name": "CX_d3_u5", "t0": 160, "ch": "d3"}, {"name": "fc", "t0": 1168, "ch": "d3", "phase": 0.047079177722488}, {"name": "fc", "t0": 1168, "ch": "d3", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1168, "ch": "d3", "label": "Y90p_d3", "pulse_shape": "drag", "parameters": {"amp": [-0.0008902006723180706, 0.09711734143625132], "beta": -0.25214660522363813, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u10", "phase": -3.141592653589793}, {"name": "fc", "t0": 1168, "ch": "u10", "phase": 0.047079177722488}, {"name": "fc", "t0": 1168, "ch": "u10", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u2", "phase": -3.141592653589793}, {"name": "fc", "t0": 1168, "ch": "u2", "phase": -0.8168706952798706}, {"name": "fc", "t0": 1168, "ch": "u2", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u5", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u5", "label": "CX_u5", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.29446053583407245, -0.2810308960119006], "duration": 1008, "sigma": 64, "width": 752}}, {"name": "fc", "t0": 1168, "ch": "u5", "phase": 0.047079177722488}, {"name": "fc", "t0": 1168, "ch": "u5", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u6", "phase": -3.141592653589793}, {"name": "fc", "t0": 1168, "ch": "u6", "phase": -0.8168706952798706}, {"name": "fc", "t0": 1168, "ch": "u6", "phase": -3.141592653589793}]}, {"name": "cx", "qubits": [3, 5], "sequence": [{"name": "fc", "t0": 0, "ch": "d3", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "Y90p_d3", "pulse_shape": "drag", "parameters": {"amp": [-0.0008902006723180706, 0.09711734143625132], "beta": -0.25214660522363813, "duration": 160, "sigma": 40}}, {"name": "CX_d3_u10", "t0": 160, "ch": "d3"}, {"name": "fc", "t0": 1088, "ch": "d3", "phase": 0.042662030509721845}, {"name": "fc", "t0": 1088, "ch": "d3", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1088, "ch": "d3", "label": "Y90p_d3", "pulse_shape": "drag", "parameters": {"amp": [-0.0008902006723180706, 0.09711734143625132], "beta": -0.25214660522363813, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d5", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "Y90p_d5", "pulse_shape": "drag", "parameters": {"amp": [-0.0004290756100002028, 0.1008143248023259], "beta": 0.22070937017933667, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 1088, "ch": "d5", "phase": 0.6244260184016216}, {"name": "fc", "t0": 1088, "ch": "d5", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1088, "ch": "d5", "label": "Y90p_d5", "pulse_shape": "drag", "parameters": {"amp": [-0.0004290756100002028, 0.1008143248023259], "beta": 0.22070937017933667, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u10", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u10", "label": "CX_u10", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.20419845416339805, -0.33563548829617024], "duration": 928, "sigma": 64, "width": 672}}, {"name": "fc", "t0": 1088, "ch": "u10", "phase": 0.042662030509721845}, {"name": "fc", "t0": 1088, "ch": "u10", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u16", "phase": -3.141592653589793}, {"name": "fc", "t0": 1088, "ch": "u16", "phase": 0.6244260184016216}, {"name": "fc", "t0": 1088, "ch": "u16", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u5", "phase": -3.141592653589793}, {"name": "fc", "t0": 1088, "ch": "u5", "phase": 0.042662030509721845}, {"name": "fc", "t0": 1088, "ch": "u5", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u7", "phase": -3.141592653589793}, {"name": "fc", "t0": 1088, "ch": "u7", "phase": 0.6244260184016216}, {"name": "fc", "t0": 1088, "ch": "u7", "phase": -3.141592653589793}]}, {"name": "cx", "qubits": [4, 1], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "X90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.09662612490207494, 8.168061701526435e-05], "beta": -0.0582599488341388, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d1", "label": "CR90p_d1_u8", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.03669318923566524, -3.7572636775247175e-05], "duration": 880, "sigma": 64, "width": 624}}, {"name": "parametric_pulse", "t0": 1200, "ch": "d1", "label": "CR90m_d1_u8", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.03669318923566524, 3.757263677525167e-05], "duration": 880, "sigma": 64, "width": 624}}, {"name": "fc", "t0": 0, "ch": "d4", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "Ym_d4", "pulse_shape": "drag", "parameters": {"amp": [-3.559404799501592e-17, -0.19376497245190957], "beta": 0.18211995153669097, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1040, "ch": "d4", "label": "Xp_d4", "pulse_shape": "drag", "parameters": {"amp": [0.19376497245190957, 0.0], "beta": 0.18211995153669097, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u13", "phase": 1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u3", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u8", "label": "CR90p_u8", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.4980139844231474, -0.0032640132735518553], "duration": 880, "sigma": 64, "width": 624}}, {"name": "parametric_pulse", "t0": 1200, "ch": "u8", "label": "CR90m_u8", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.4980139844231474, 0.003264013273551794], "duration": 880, "sigma": 64, "width": 624}}]}, {"name": "cx", "qubits": [4, 7], "sequence": [{"name": "fc", "t0": 880, "ch": "d4", "phase": -2.4151803159268694}, {"name": "CX_d7_u9", "t0": 0, "ch": "d7"}, {"name": "fc", "t0": 880, "ch": "d7", "phase": 0.053651040113083484}, {"name": "fc", "t0": 880, "ch": "u12", "phase": 0.053651040113083484}, {"name": "fc", "t0": 880, "ch": "u13", "phase": -2.4151803159268694}, {"name": "fc", "t0": 880, "ch": "u20", "phase": 0.053651040113083484}, {"name": "fc", "t0": 880, "ch": "u3", "phase": -2.4151803159268694}, {"name": "parametric_pulse", "t0": 0, "ch": "u9", "label": "CX_u9", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.3032414495522686, -0.2728810475403978], "duration": 880, "sigma": 64, "width": 624}}, {"name": "fc", "t0": 880, "ch": "u9", "phase": 0.053651040113083484}]}, {"name": "cx", "qubits": [5, 3], "sequence": [{"name": "CX_d3_u10", "t0": 0, "ch": "d3"}, {"name": "fc", "t0": 928, "ch": "d3", "phase": 0.042662030509721845}, {"name": "fc", "t0": 928, "ch": "d5", "phase": 0.6244260184016216}, {"name": "parametric_pulse", "t0": 0, "ch": "u10", "label": "CX_u10", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.20419845416339805, -0.33563548829617024], "duration": 928, "sigma": 64, "width": 672}}, {"name": "fc", "t0": 928, "ch": "u10", "phase": 0.042662030509721845}, {"name": "fc", "t0": 928, "ch": "u16", "phase": 0.6244260184016216}, {"name": "fc", "t0": 928, "ch": "u5", "phase": 0.042662030509721845}, {"name": "fc", "t0": 928, "ch": "u7", "phase": 0.6244260184016216}]}, {"name": "cx", "qubits": [5, 8], "sequence": [{"name": "fc", "t0": 0, "ch": "d5", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "Y90p_d5", "pulse_shape": "drag", "parameters": {"amp": [-0.0004290756100002028, 0.1008143248023259], "beta": 0.22070937017933667, "duration": 160, "sigma": 40}}, {"name": "CX_d5_u16", "t0": 160, "ch": "d5"}, {"name": "fc", "t0": 1296, "ch": "d5", "phase": -0.0010870392245169306}, {"name": "fc", "t0": 1296, "ch": "d5", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1296, "ch": "d5", "label": "Y90p_d5", "pulse_shape": "drag", "parameters": {"amp": [-0.0004290756100002028, 0.1008143248023259], "beta": 0.22070937017933667, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d8", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d8", "label": "Y90p_d8", "pulse_shape": "drag", "parameters": {"amp": [-0.001129470996146982, 0.09390903999733272], "beta": -1.1474562445399736, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 1296, "ch": "d8", "phase": -1.7396852358738184}, {"name": "fc", "t0": 1296, "ch": "d8", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1296, "ch": "d8", "label": "Y90p_d8", "pulse_shape": "drag", "parameters": {"amp": [-0.001129470996146982, 0.09390903999733272], "beta": -1.1474562445399736, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u11", "phase": -3.141592653589793}, {"name": "fc", "t0": 1296, "ch": "u11", "phase": -1.7396852358738184}, {"name": "fc", "t0": 1296, "ch": "u11", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u16", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u16", "label": "CX_u16", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.13959873512819038, -0.2505788498080134], "duration": 1136, "sigma": 64, "width": 880}}, {"name": "fc", "t0": 1296, "ch": "u16", "phase": -0.0010870392245169306}, {"name": "fc", "t0": 1296, "ch": "u16", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u19", "phase": -3.141592653589793}, {"name": "fc", "t0": 1296, "ch": "u19", "phase": -1.7396852358738184}, {"name": "fc", "t0": 1296, "ch": "u19", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u22", "phase": -3.141592653589793}, {"name": "fc", "t0": 1296, "ch": "u22", "phase": -1.7396852358738184}, {"name": "fc", "t0": 1296, "ch": "u22", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u7", "phase": -3.141592653589793}, {"name": "fc", "t0": 1296, "ch": "u7", "phase": -0.0010870392245169306}, {"name": "fc", "t0": 1296, "ch": "u7", "phase": -3.141592653589793}]}, {"name": "cx", "qubits": [6, 7], "sequence": [{"name": "fc", "t0": 0, "ch": "d6", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d6", "label": "Ym_d6", "pulse_shape": "drag", "parameters": {"amp": [-3.459720492134251e-17, -0.1883384115073311], "beta": -0.27366338596168815, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1440, "ch": "d6", "label": "Xp_d6", "pulse_shape": "drag", "parameters": {"amp": [0.1883384115073311, 0.0], "beta": -0.27366338596168815, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d7", "label": "X90p_d7", "pulse_shape": "drag", "parameters": {"amp": [0.09310343317304517, 0.0006959390260227185], "beta": -0.0028410035667972722, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d7", "label": "CR90p_d7_u12", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.025936027168950652, 0.001221775131159817], "duration": 1280, "sigma": 64, "width": 1024}}, {"name": "parametric_pulse", "t0": 1600, "ch": "d7", "label": "CR90m_d7_u12", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.025936027168950652, -0.0012217751311598137], "duration": 1280, "sigma": 64, "width": 1024}}, {"name": "parametric_pulse", "t0": 160, "ch": "u12", "label": "CR90p_u12", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.02596017438972981, -0.13300681806674675], "duration": 1280, "sigma": 64, "width": 1024}}, {"name": "parametric_pulse", "t0": 1600, "ch": "u12", "label": "CR90m_u12", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.025960174389729793, 0.13300681806674675], "duration": 1280, "sigma": 64, "width": 1024}}, {"name": "fc", "t0": 0, "ch": "u14", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [7, 4], "sequence": [{"name": "fc", "t0": 0, "ch": "d4", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "Y90p_d4", "pulse_shape": "drag", "parameters": {"amp": [-0.0006494190146448095, 0.09679969868891551], "beta": 0.2138847527435544, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 1040, "ch": "d4", "phase": -2.4151803159268694}, {"name": "fc", "t0": 1040, "ch": "d4", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1040, "ch": "d4", "label": "Y90p_d4", "pulse_shape": "drag", "parameters": {"amp": [-0.0006494190146448095, 0.09679969868891551], "beta": 0.2138847527435544, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d7", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d7", "label": "Y90p_d7", "pulse_shape": "drag", "parameters": {"amp": [-0.0006959390260227096, 0.09310343317304517], "beta": -0.0028410035667972722, "duration": 160, "sigma": 40}}, {"name": "CX_d7_u9", "t0": 160, "ch": "d7"}, {"name": "fc", "t0": 1040, "ch": "d7", "phase": 0.053651040113083484}, {"name": "fc", "t0": 1040, "ch": "d7", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1040, "ch": "d7", "label": "Y90p_d7", "pulse_shape": "drag", "parameters": {"amp": [-0.0006959390260227096, 0.09310343317304517], "beta": -0.0028410035667972722, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u12", "phase": -3.141592653589793}, {"name": "fc", "t0": 1040, "ch": "u12", "phase": 0.053651040113083484}, {"name": "fc", "t0": 1040, "ch": "u12", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u13", "phase": -3.141592653589793}, {"name": "fc", "t0": 1040, "ch": "u13", "phase": -2.4151803159268694}, {"name": "fc", "t0": 1040, "ch": "u13", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u20", "phase": -3.141592653589793}, {"name": "fc", "t0": 1040, "ch": "u20", "phase": 0.053651040113083484}, {"name": "fc", "t0": 1040, "ch": "u20", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u3", "phase": -3.141592653589793}, {"name": "fc", "t0": 1040, "ch": "u3", "phase": -2.4151803159268694}, {"name": "fc", "t0": 1040, "ch": "u3", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u9", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u9", "label": "CX_u9", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.3032414495522686, -0.2728810475403978], "duration": 880, "sigma": 64, "width": 624}}, {"name": "fc", "t0": 1040, "ch": "u9", "phase": 0.053651040113083484}, {"name": "fc", "t0": 1040, "ch": "u9", "phase": -3.141592653589793}]}, {"name": "cx", "qubits": [7, 6], "sequence": [{"name": "fc", "t0": 0, "ch": "d6", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d6", "label": "X90p_d6", "pulse_shape": "drag", "parameters": {"amp": [0.09436939003022234, 0.00028279277770874796], "beta": -0.24416915361490749, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1440, "ch": "d6", "label": "Xp_d6", "pulse_shape": "drag", "parameters": {"amp": [0.1883384115073311, 0.0], "beta": -0.27366338596168815, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 2880, "ch": "d6", "label": "Y90m_d6", "pulse_shape": "drag", "parameters": {"amp": [0.0002827927777087019, -0.09436939003022234], "beta": -0.24416915361490749, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d7", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d7", "label": "Y90p_d7", "pulse_shape": "drag", "parameters": {"amp": [-0.0006959390260227096, 0.09310343317304517], "beta": -0.0028410035667972722, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d7", "label": "CR90p_d7_u12", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.025936027168950652, 0.001221775131159817], "duration": 1280, "sigma": 64, "width": 1024}}, {"name": "parametric_pulse", "t0": 1600, "ch": "d7", "label": "CR90m_d7_u12", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.025936027168950652, -0.0012217751311598137], "duration": 1280, "sigma": 64, "width": 1024}}, {"name": "fc", "t0": 2880, "ch": "d7", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 2880, "ch": "d7", "label": "X90p_d7", "pulse_shape": "drag", "parameters": {"amp": [0.09310343317304517, 0.0006959390260227185], "beta": -0.0028410035667972722, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u12", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u12", "label": "CR90p_u12", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.02596017438972981, -0.13300681806674675], "duration": 1280, "sigma": 64, "width": 1024}}, {"name": "parametric_pulse", "t0": 1600, "ch": "u12", "label": "CR90m_u12", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.025960174389729793, 0.13300681806674675], "duration": 1280, "sigma": 64, "width": 1024}}, {"name": "fc", "t0": 2880, "ch": "u12", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u14", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u20", "phase": -3.141592653589793}, {"name": "fc", "t0": 2880, "ch": "u20", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u9", "phase": -3.141592653589793}, {"name": "fc", "t0": 2880, "ch": "u9", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [7, 10], "sequence": [{"name": "CX_d10_u15", "t0": 0, "ch": "d10"}, {"name": "fc", "t0": 1280, "ch": "d10", "phase": 0.027443111021423553}, {"name": "fc", "t0": 1280, "ch": "d7", "phase": 0.25387222269059645}, {"name": "fc", "t0": 1280, "ch": "u12", "phase": 0.25387222269059645}, {"name": "parametric_pulse", "t0": 0, "ch": "u15", "label": "CX_u15", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.035318954822521974, -0.2986832838918774], "duration": 1280, "sigma": 64, "width": 1024}}, {"name": "fc", "t0": 1280, "ch": "u15", "phase": 0.027443111021423553}, {"name": "fc", "t0": 1280, "ch": "u20", "phase": 0.25387222269059645}, {"name": "fc", "t0": 1280, "ch": "u24", "phase": 0.027443111021423553}, {"name": "fc", "t0": 1280, "ch": "u9", "phase": 0.25387222269059645}]}, {"name": "cx", "qubits": [8, 5], "sequence": [{"name": "CX_d5_u16", "t0": 0, "ch": "d5"}, {"name": "fc", "t0": 1136, "ch": "d5", "phase": -0.0010870392245169306}, {"name": "fc", "t0": 1136, "ch": "d8", "phase": -1.7396852358738184}, {"name": "fc", "t0": 1136, "ch": "u11", "phase": -1.7396852358738184}, {"name": "parametric_pulse", "t0": 0, "ch": "u16", "label": "CX_u16", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.13959873512819038, -0.2505788498080134], "duration": 1136, "sigma": 64, "width": 880}}, {"name": "fc", "t0": 1136, "ch": "u16", "phase": -0.0010870392245169306}, {"name": "fc", "t0": 1136, "ch": "u19", "phase": -1.7396852358738184}, {"name": "fc", "t0": 1136, "ch": "u22", "phase": -1.7396852358738184}, {"name": "fc", "t0": 1136, "ch": "u7", "phase": -0.0010870392245169306}]}, {"name": "cx", "qubits": [8, 9], "sequence": [{"name": "fc", "t0": 0, "ch": "d8", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d8", "label": "Y90p_d8", "pulse_shape": "drag", "parameters": {"amp": [-0.001129470996146982, 0.09390903999733272], "beta": -1.1474562445399736, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d8", "label": "CR90p_d8_u19", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.019822130219418158, -0.00013693726619596903], "duration": 896, "sigma": 64, "width": 640}}, {"name": "parametric_pulse", "t0": 1216, "ch": "d8", "label": "CR90m_d8_u19", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.019822130219418158, 0.00013693726619597147], "duration": 896, "sigma": 64, "width": 640}}, {"name": "fc", "t0": 2112, "ch": "d8", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 2112, "ch": "d8", "label": "X90p_d8", "pulse_shape": "drag", "parameters": {"amp": [0.09390903999733272, 0.0011294709961469818], "beta": -1.1474562445399736, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d9", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d9", "label": "X90p_d9", "pulse_shape": "drag", "parameters": {"amp": [0.09514812259032954, 0.001075481929338223], "beta": 0.7548362760491217, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1056, "ch": "d9", "label": "Xp_d9", "pulse_shape": "drag", "parameters": {"amp": [0.18993723926224895, 0.0], "beta": 0.7342824516760573, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 2112, "ch": "d9", "label": "Y90m_d9", "pulse_shape": "drag", "parameters": {"amp": [0.00107548192933822, -0.09514812259032954], "beta": 0.7548362760491217, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u11", "phase": -3.141592653589793}, {"name": "fc", "t0": 2112, "ch": "u11", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u17", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u19", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u19", "label": "CR90p_u19", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.22548465095131107, -0.24326241389141603], "duration": 896, "sigma": 64, "width": 640}}, {"name": "parametric_pulse", "t0": 1216, "ch": "u19", "label": "CR90m_u19", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.22548465095131104, 0.24326241389141606], "duration": 896, "sigma": 64, "width": 640}}, {"name": "fc", "t0": 2112, "ch": "u19", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u22", "phase": -3.141592653589793}, {"name": "fc", "t0": 2112, "ch": "u22", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [8, 11], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d11", "label": "X90p_d11", "pulse_shape": "drag", "parameters": {"amp": [0.09944641170944009, 0.0023819409453860203], "beta": -1.3247547836429008, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d11", "label": "CR90p_d11_u18", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.0513807264641577, 0.0025469462326196787], "duration": 672, "sigma": 64, "width": 416}}, {"name": "parametric_pulse", "t0": 992, "ch": "d11", "label": "CR90m_d11_u18", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.0513807264641577, -0.0025469462326196722], "duration": 672, "sigma": 64, "width": 416}}, {"name": "fc", "t0": 0, "ch": "d8", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d8", "label": "Ym_d8", "pulse_shape": "drag", "parameters": {"amp": [-3.4386579232931127e-17, -0.18719181866353848], "beta": -1.1515345782361974, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 832, "ch": "d8", "label": "Xp_d8", "pulse_shape": "drag", "parameters": {"amp": [0.18719181866353848, 0.0], "beta": -1.1515345782361974, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u11", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u18", "label": "CR90p_u18", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.32581433140817023, -0.010632195719710249], "duration": 672, "sigma": 64, "width": 416}}, {"name": "parametric_pulse", "t0": 992, "ch": "u18", "label": "CR90m_u18", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.32581433140817023, 0.010632195719710288], "duration": 672, "sigma": 64, "width": 416}}, {"name": "fc", "t0": 0, "ch": "u19", "phase": 1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u22", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [9, 8], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d8", "label": "X90p_d8", "pulse_shape": "drag", "parameters": {"amp": [0.09390903999733272, 0.0011294709961469818], "beta": -1.1474562445399736, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d8", "label": "CR90p_d8_u19", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.019822130219418158, -0.00013693726619596903], "duration": 896, "sigma": 64, "width": 640}}, {"name": "parametric_pulse", "t0": 1216, "ch": "d8", "label": "CR90m_d8_u19", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.019822130219418158, 0.00013693726619597147], "duration": 896, "sigma": 64, "width": 640}}, {"name": "fc", "t0": 0, "ch": "d9", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d9", "label": "Ym_d9", "pulse_shape": "drag", "parameters": {"amp": [-3.4890904815209723e-17, -0.18993723926224895], "beta": 0.7342824516760573, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1056, "ch": "d9", "label": "Xp_d9", "pulse_shape": "drag", "parameters": {"amp": [0.18993723926224895, 0.0], "beta": 0.7342824516760573, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u17", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u19", "label": "CR90p_u19", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.22548465095131107, -0.24326241389141603], "duration": 896, "sigma": 64, "width": 640}}, {"name": "parametric_pulse", "t0": 1216, "ch": "u19", "label": "CR90m_u19", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.22548465095131104, 0.24326241389141606], "duration": 896, "sigma": 64, "width": 640}}]}, {"name": "cx", "qubits": [10, 7], "sequence": [{"name": "fc", "t0": 0, "ch": "d10", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d10", "label": "Y90p_d10", "pulse_shape": "drag", "parameters": {"amp": [-0.0017861547472037983, 0.0996361990487828], "beta": -1.047701695975587, "duration": 160, "sigma": 40}}, {"name": "CX_d10_u15", "t0": 160, "ch": "d10"}, {"name": "fc", "t0": 1440, "ch": "d10", "phase": 0.027443111021423553}, {"name": "fc", "t0": 1440, "ch": "d10", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1440, "ch": "d10", "label": "Y90p_d10", "pulse_shape": "drag", "parameters": {"amp": [-0.0017861547472037983, 0.0996361990487828], "beta": -1.047701695975587, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d7", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d7", "label": "Y90p_d7", "pulse_shape": "drag", "parameters": {"amp": [-0.0006959390260227096, 0.09310343317304517], "beta": -0.0028410035667972722, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 1440, "ch": "d7", "phase": 0.25387222269059645}, {"name": "fc", "t0": 1440, "ch": "d7", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1440, "ch": "d7", "label": "Y90p_d7", "pulse_shape": "drag", "parameters": {"amp": [-0.0006959390260227096, 0.09310343317304517], "beta": -0.0028410035667972722, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u12", "phase": -3.141592653589793}, {"name": "fc", "t0": 1440, "ch": "u12", "phase": 0.25387222269059645}, {"name": "fc", "t0": 1440, "ch": "u12", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u15", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u15", "label": "CX_u15", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.035318954822521974, -0.2986832838918774], "duration": 1280, "sigma": 64, "width": 1024}}, {"name": "fc", "t0": 1440, "ch": "u15", "phase": 0.027443111021423553}, {"name": "fc", "t0": 1440, "ch": "u15", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u20", "phase": -3.141592653589793}, {"name": "fc", "t0": 1440, "ch": "u20", "phase": 0.25387222269059645}, {"name": "fc", "t0": 1440, "ch": "u20", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u24", "phase": -3.141592653589793}, {"name": "fc", "t0": 1440, "ch": "u24", "phase": 0.027443111021423553}, {"name": "fc", "t0": 1440, "ch": "u24", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u9", "phase": -3.141592653589793}, {"name": "fc", "t0": 1440, "ch": "u9", "phase": 0.25387222269059645}, {"name": "fc", "t0": 1440, "ch": "u9", "phase": -3.141592653589793}]}, {"name": "cx", "qubits": [10, 12], "sequence": [{"name": "fc", "t0": 0, "ch": "d10", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d10", "label": "Ym_d10", "pulse_shape": "drag", "parameters": {"amp": [-3.653959845462381e-17, -0.19891230941070304], "beta": -1.1390524587526276, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1584, "ch": "d10", "label": "Xp_d10", "pulse_shape": "drag", "parameters": {"amp": [0.19891230941070304, 0.0], "beta": -1.1390524587526276, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d12", "label": "X90p_d12", "pulse_shape": "drag", "parameters": {"amp": [0.09550084024767264, 0.0008565712850177551], "beta": 0.07448054414102981, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d12", "label": "CR90p_d12_u21", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.016932663753282447, 0.0010969694071973537], "duration": 1424, "sigma": 64, "width": 1168}}, {"name": "parametric_pulse", "t0": 1744, "ch": "d12", "label": "CR90m_d12_u21", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.016932663753282447, -0.0010969694071973515], "duration": 1424, "sigma": 64, "width": 1168}}, {"name": "fc", "t0": 0, "ch": "u15", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u21", "label": "CR90p_u21", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.037315583084665996, -0.3336818976265886], "duration": 1424, "sigma": 64, "width": 1168}}, {"name": "parametric_pulse", "t0": 1744, "ch": "u21", "label": "CR90m_u21", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.037315583084665954, 0.3336818976265886], "duration": 1424, "sigma": 64, "width": 1168}}, {"name": "fc", "t0": 0, "ch": "u24", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [11, 8], "sequence": [{"name": "fc", "t0": 0, "ch": "d11", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d11", "label": "Y90p_d11", "pulse_shape": "drag", "parameters": {"amp": [-0.0023819409453860233, 0.09944641170944009], "beta": -1.3247547836429008, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d11", "label": "CR90p_d11_u18", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.0513807264641577, 0.0025469462326196787], "duration": 672, "sigma": 64, "width": 416}}, {"name": "parametric_pulse", "t0": 992, "ch": "d11", "label": "CR90m_d11_u18", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.0513807264641577, -0.0025469462326196722], "duration": 672, "sigma": 64, "width": 416}}, {"name": "fc", "t0": 1664, "ch": "d11", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1664, "ch": "d11", "label": "X90p_d11", "pulse_shape": "drag", "parameters": {"amp": [0.09944641170944009, 0.0023819409453860203], "beta": -1.3247547836429008, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d8", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d8", "label": "X90p_d8", "pulse_shape": "drag", "parameters": {"amp": [0.09390903999733272, 0.0011294709961469818], "beta": -1.1474562445399736, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 832, "ch": "d8", "label": "Xp_d8", "pulse_shape": "drag", "parameters": {"amp": [0.18719181866353848, 0.0], "beta": -1.1515345782361974, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1664, "ch": "d8", "label": "Y90m_d8", "pulse_shape": "drag", "parameters": {"amp": [0.0011294709961469913, -0.09390903999733272], "beta": -1.1474562445399736, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u11", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u18", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u18", "label": "CR90p_u18", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.32581433140817023, -0.010632195719710249], "duration": 672, "sigma": 64, "width": 416}}, {"name": "parametric_pulse", "t0": 992, "ch": "u18", "label": "CR90m_u18", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.32581433140817023, 0.010632195719710288], "duration": 672, "sigma": 64, "width": 416}}, {"name": "fc", "t0": 1664, "ch": "u18", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u19", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u22", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u29", "phase": -3.141592653589793}, {"name": "fc", "t0": 1664, "ch": "u29", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [11, 14], "sequence": [{"name": "fc", "t0": 0, "ch": "d11", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d11", "label": "Y90p_d11", "pulse_shape": "drag", "parameters": {"amp": [-0.0023819409453860233, 0.09944641170944009], "beta": -1.3247547836429008, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d11", "label": "CR90p_d11_u29", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.05284489567726523, 0.0035109630280979486], "duration": 592, "sigma": 64, "width": 336}}, {"name": "parametric_pulse", "t0": 912, "ch": "d11", "label": "CR90m_d11_u29", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.05284489567726523, -0.003510963028097942], "duration": 592, "sigma": 64, "width": 336}}, {"name": "fc", "t0": 1504, "ch": "d11", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1504, "ch": "d11", "label": "X90p_d11", "pulse_shape": "drag", "parameters": {"amp": [0.09944641170944009, 0.0023819409453860203], "beta": -1.3247547836429008, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d14", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d14", "label": "X90p_d14", "pulse_shape": "drag", "parameters": {"amp": [0.09592160058722701, 0.0004397475628433075], "beta": 0.002200038205690605, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 752, "ch": "d14", "label": "Xp_d14", "pulse_shape": "drag", "parameters": {"amp": [0.1912961665026656, 0.0], "beta": -0.03530460292261767, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1504, "ch": "d14", "label": "Y90m_d14", "pulse_shape": "drag", "parameters": {"amp": [0.0004397475628433278, -0.09592160058722701], "beta": 0.002200038205690605, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u18", "phase": -3.141592653589793}, {"name": "fc", "t0": 1504, "ch": "u18", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u23", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u28", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u29", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u29", "label": "CR90p_u29", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.32288605741624493, -0.14026427533579702], "duration": 592, "sigma": 64, "width": 336}}, {"name": "parametric_pulse", "t0": 912, "ch": "u29", "label": "CR90m_u29", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.32288605741624493, 0.14026427533579705], "duration": 592, "sigma": 64, "width": 336}}, {"name": "fc", "t0": 1504, "ch": "u29", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u34", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [12, 10], "sequence": [{"name": "fc", "t0": 0, "ch": "d10", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d10", "label": "X90p_d10", "pulse_shape": "drag", "parameters": {"amp": [0.0996361990487828, 0.0017861547472038065], "beta": -1.047701695975587, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1584, "ch": "d10", "label": "Xp_d10", "pulse_shape": "drag", "parameters": {"amp": [0.19891230941070304, 0.0], "beta": -1.1390524587526276, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 3168, "ch": "d10", "label": "Y90m_d10", "pulse_shape": "drag", "parameters": {"amp": [0.00178615474720383, -0.0996361990487828], "beta": -1.047701695975587, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d12", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d12", "label": "Y90p_d12", "pulse_shape": "drag", "parameters": {"amp": [-0.0008565712850177455, 0.09550084024767264], "beta": 0.07448054414102981, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d12", "label": "CR90p_d12_u21", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.016932663753282447, 0.0010969694071973537], "duration": 1424, "sigma": 64, "width": 1168}}, {"name": "parametric_pulse", "t0": 1744, "ch": "d12", "label": "CR90m_d12_u21", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.016932663753282447, -0.0010969694071973515], "duration": 1424, "sigma": 64, "width": 1168}}, {"name": "fc", "t0": 3168, "ch": "d12", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 3168, "ch": "d12", "label": "X90p_d12", "pulse_shape": "drag", "parameters": {"amp": [0.09550084024767264, 0.0008565712850177551], "beta": 0.07448054414102981, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u15", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u21", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u21", "label": "CR90p_u21", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.037315583084665996, -0.3336818976265886], "duration": 1424, "sigma": 64, "width": 1168}}, {"name": "parametric_pulse", "t0": 1744, "ch": "u21", "label": "CR90m_u21", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.037315583084665954, 0.3336818976265886], "duration": 1424, "sigma": 64, "width": 1168}}, {"name": "fc", "t0": 3168, "ch": "u21", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u24", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u27", "phase": -3.141592653589793}, {"name": "fc", "t0": 3168, "ch": "u27", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u32", "phase": -3.141592653589793}, {"name": "fc", "t0": 3168, "ch": "u32", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [12, 13], "sequence": [{"name": "fc", "t0": 0, "ch": "d12", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d12", "label": "Y90p_d12", "pulse_shape": "drag", "parameters": {"amp": [-0.0008565712850177455, 0.09550084024767264], "beta": 0.07448054414102981, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d12", "label": "CR90p_d12_u27", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.05920871971471273, 0.00048224279185606013], "duration": 624, "sigma": 64, "width": 368}}, {"name": "parametric_pulse", "t0": 944, "ch": "d12", "label": "CR90m_d12_u27", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.05920871971471273, -0.00048224279185605286], "duration": 624, "sigma": 64, "width": 368}}, {"name": "fc", "t0": 1568, "ch": "d12", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1568, "ch": "d12", "label": "X90p_d12", "pulse_shape": "drag", "parameters": {"amp": [0.09550084024767264, 0.0008565712850177551], "beta": 0.07448054414102981, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d13", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d13", "label": "X90p_d13", "pulse_shape": "drag", "parameters": {"amp": [0.09900946893592417, 0.0014680879043291015], "beta": -1.4690035698318569, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 784, "ch": "d13", "label": "Xp_d13", "pulse_shape": "drag", "parameters": {"amp": [0.19672997363593536, 0.0], "beta": -1.392111683127624, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1568, "ch": "d13", "label": "Y90m_d13", "pulse_shape": "drag", "parameters": {"amp": [0.0014680879043291227, -0.09900946893592417], "beta": -1.4690035698318569, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u21", "phase": -3.141592653589793}, {"name": "fc", "t0": 1568, "ch": "u21", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u25", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u27", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u27", "label": "CR90p_u27", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.2612731258700623, 0.25599791860407933], "duration": 624, "sigma": 64, "width": 368}}, {"name": "parametric_pulse", "t0": 944, "ch": "u27", "label": "CR90m_u27", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.26127312587006235, -0.2559979186040793], "duration": 624, "sigma": 64, "width": 368}}, {"name": "fc", "t0": 1568, "ch": "u27", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u30", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u32", "phase": -3.141592653589793}, {"name": "fc", "t0": 1568, "ch": "u32", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [12, 15], "sequence": [{"name": "fc", "t0": 0, "ch": "d12", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d12", "label": "Y90p_d12", "pulse_shape": "drag", "parameters": {"amp": [-0.0008565712850177455, 0.09550084024767264], "beta": 0.07448054414102981, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d12", "label": "CR90p_d12_u32", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.026692230613299915, 0.0009951806751776176], "duration": 1088, "sigma": 64, "width": 832}}, {"name": "parametric_pulse", "t0": 1408, "ch": "d12", "label": "CR90m_d12_u32", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.026692230613299915, -0.0009951806751776144], "duration": 1088, "sigma": 64, "width": 832}}, {"name": "fc", "t0": 2496, "ch": "d12", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 2496, "ch": "d12", "label": "X90p_d12", "pulse_shape": "drag", "parameters": {"amp": [0.09550084024767264, 0.0008565712850177551], "beta": 0.07448054414102981, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d15", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d15", "label": "X90p_d15", "pulse_shape": "drag", "parameters": {"amp": [0.10174132785033968, -1.0560670206599667e-05], "beta": -6.618654524167971, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1248, "ch": "d15", "label": "Xp_d15", "pulse_shape": "drag", "parameters": {"amp": [0.19170967792837929, 0.0], "beta": -0.9529465826349884, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 2496, "ch": "d15", "label": "Y90m_d15", "pulse_shape": "drag", "parameters": {"amp": [-1.0560670206649983e-05, -0.10174132785033968], "beta": -6.618654524167971, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u21", "phase": -3.141592653589793}, {"name": "fc", "t0": 2496, "ch": "u21", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u26", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u27", "phase": -3.141592653589793}, {"name": "fc", "t0": 2496, "ch": "u27", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u32", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u32", "label": "CR90p_u32", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.008212909954208793, -0.16252183928143785], "duration": 1088, "sigma": 64, "width": 832}}, {"name": "parametric_pulse", "t0": 1408, "ch": "u32", "label": "CR90m_u32", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.008212909954208812, 0.16252183928143785], "duration": 1088, "sigma": 64, "width": 832}}, {"name": "fc", "t0": 2496, "ch": "u32", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u37", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [13, 12], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d12", "label": "X90p_d12", "pulse_shape": "drag", "parameters": {"amp": [0.09550084024767264, 0.0008565712850177551], "beta": 0.07448054414102981, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d12", "label": "CR90p_d12_u27", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.05920871971471273, 0.00048224279185606013], "duration": 624, "sigma": 64, "width": 368}}, {"name": "parametric_pulse", "t0": 944, "ch": "d12", "label": "CR90m_d12_u27", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.05920871971471273, -0.00048224279185605286], "duration": 624, "sigma": 64, "width": 368}}, {"name": "fc", "t0": 0, "ch": "d13", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d13", "label": "Ym_d13", "pulse_shape": "drag", "parameters": {"amp": [-3.613870987643871e-17, -0.19672997363593536], "beta": -1.392111683127624, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 784, "ch": "d13", "label": "Xp_d13", "pulse_shape": "drag", "parameters": {"amp": [0.19672997363593536, 0.0], "beta": -1.392111683127624, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u25", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u27", "label": "CR90p_u27", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.2612731258700623, 0.25599791860407933], "duration": 624, "sigma": 64, "width": 368}}, {"name": "parametric_pulse", "t0": 944, "ch": "u27", "label": "CR90m_u27", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.26127312587006235, -0.2559979186040793], "duration": 624, "sigma": 64, "width": 368}}, {"name": "fc", "t0": 0, "ch": "u30", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [13, 14], "sequence": [{"name": "fc", "t0": 0, "ch": "d13", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d13", "label": "Y90p_d13", "pulse_shape": "drag", "parameters": {"amp": [-0.001468087904329091, 0.09900946893592417], "beta": -1.4690035698318569, "duration": 160, "sigma": 40}}, {"name": "CX_d13_u30", "t0": 160, "ch": "d13"}, {"name": "fc", "t0": 1776, "ch": "d13", "phase": 0.046851609371243545}, {"name": "fc", "t0": 1776, "ch": "d13", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1776, "ch": "d13", "label": "Y90p_d13", "pulse_shape": "drag", "parameters": {"amp": [-0.001468087904329091, 0.09900946893592417], "beta": -1.4690035698318569, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d14", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d14", "label": "Y90p_d14", "pulse_shape": "drag", "parameters": {"amp": [-0.0004397475628432969, 0.09592160058722701], "beta": 0.002200038205690605, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 1776, "ch": "d14", "phase": 0.32890590983931417}, {"name": "fc", "t0": 1776, "ch": "d14", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1776, "ch": "d14", "label": "Y90p_d14", "pulse_shape": "drag", "parameters": {"amp": [-0.0004397475628432969, 0.09592160058722701], "beta": 0.002200038205690605, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u23", "phase": -3.141592653589793}, {"name": "fc", "t0": 1776, "ch": "u23", "phase": 0.32890590983931417}, {"name": "fc", "t0": 1776, "ch": "u23", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u25", "phase": -3.141592653589793}, {"name": "fc", "t0": 1776, "ch": "u25", "phase": 0.046851609371243545}, {"name": "fc", "t0": 1776, "ch": "u25", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u28", "phase": -3.141592653589793}, {"name": "fc", "t0": 1776, "ch": "u28", "phase": 0.32890590983931417}, {"name": "fc", "t0": 1776, "ch": "u28", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u30", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u30", "label": "CX_u30", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.19837508066880305, 0.10854320277406146], "duration": 1616, "sigma": 64, "width": 1360}}, {"name": "fc", "t0": 1776, "ch": "u30", "phase": 0.046851609371243545}, {"name": "fc", "t0": 1776, "ch": "u30", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u34", "phase": -3.141592653589793}, {"name": "fc", "t0": 1776, "ch": "u34", "phase": 0.32890590983931417}, {"name": "fc", "t0": 1776, "ch": "u34", "phase": -3.141592653589793}]}, {"name": "cx", "qubits": [14, 11], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d11", "label": "X90p_d11", "pulse_shape": "drag", "parameters": {"amp": [0.09944641170944009, 0.0023819409453860203], "beta": -1.3247547836429008, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d11", "label": "CR90p_d11_u29", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.05284489567726523, 0.0035109630280979486], "duration": 592, "sigma": 64, "width": 336}}, {"name": "parametric_pulse", "t0": 912, "ch": "d11", "label": "CR90m_d11_u29", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.05284489567726523, -0.003510963028097942], "duration": 592, "sigma": 64, "width": 336}}, {"name": "fc", "t0": 0, "ch": "d14", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d14", "label": "Ym_d14", "pulse_shape": "drag", "parameters": {"amp": [-3.514053569949728e-17, -0.1912961665026656], "beta": -0.03530460292261767, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 752, "ch": "d14", "label": "Xp_d14", "pulse_shape": "drag", "parameters": {"amp": [0.1912961665026656, 0.0], "beta": -0.03530460292261767, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u23", "phase": 1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u28", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u29", "label": "CR90p_u29", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.32288605741624493, -0.14026427533579702], "duration": 592, "sigma": 64, "width": 336}}, {"name": "parametric_pulse", "t0": 912, "ch": "u29", "label": "CR90m_u29", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.32288605741624493, 0.14026427533579705], "duration": 592, "sigma": 64, "width": 336}}, {"name": "fc", "t0": 0, "ch": "u34", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [14, 13], "sequence": [{"name": "CX_d13_u30", "t0": 0, "ch": "d13"}, {"name": "fc", "t0": 1616, "ch": "d13", "phase": 0.046851609371243545}, {"name": "fc", "t0": 1616, "ch": "d14", "phase": 0.32890590983931417}, {"name": "fc", "t0": 1616, "ch": "u23", "phase": 0.32890590983931417}, {"name": "fc", "t0": 1616, "ch": "u25", "phase": 0.046851609371243545}, {"name": "fc", "t0": 1616, "ch": "u28", "phase": 0.32890590983931417}, {"name": "parametric_pulse", "t0": 0, "ch": "u30", "label": "CX_u30", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.19837508066880305, 0.10854320277406146], "duration": 1616, "sigma": 64, "width": 1360}}, {"name": "fc", "t0": 1616, "ch": "u30", "phase": 0.046851609371243545}, {"name": "fc", "t0": 1616, "ch": "u34", "phase": 0.32890590983931417}]}, {"name": "cx", "qubits": [14, 16], "sequence": [{"name": "fc", "t0": 0, "ch": "d14", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d14", "label": "Ym_d14", "pulse_shape": "drag", "parameters": {"amp": [-3.514053569949728e-17, -0.1912961665026656], "beta": -0.03530460292261767, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 800, "ch": "d14", "label": "Xp_d14", "pulse_shape": "drag", "parameters": {"amp": [0.1912961665026656, 0.0], "beta": -0.03530460292261767, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d16", "label": "X90p_d16", "pulse_shape": "drag", "parameters": {"amp": [0.10333726598599466, 0.00040880608926902533], "beta": -0.32041171339366914, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d16", "label": "CR90p_d16_u31", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.04490805987043882, 0.0006300251285516515], "duration": 640, "sigma": 64, "width": 384}}, {"name": "parametric_pulse", "t0": 960, "ch": "d16", "label": "CR90m_d16_u31", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.04490805987043882, -0.000630025128551646], "duration": 640, "sigma": 64, "width": 384}}, {"name": "fc", "t0": 0, "ch": "u23", "phase": 1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u28", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u31", "label": "CR90p_u31", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.3143303877136538, 0.0980568449602292], "duration": 640, "sigma": 64, "width": 384}}, {"name": "parametric_pulse", "t0": 960, "ch": "u31", "label": "CR90m_u31", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.3143303877136538, -0.09805684496022925], "duration": 640, "sigma": 64, "width": 384}}, {"name": "fc", "t0": 0, "ch": "u34", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [15, 12], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d12", "label": "X90p_d12", "pulse_shape": "drag", "parameters": {"amp": [0.09550084024767264, 0.0008565712850177551], "beta": 0.07448054414102981, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d12", "label": "CR90p_d12_u32", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.026692230613299915, 0.0009951806751776176], "duration": 1088, "sigma": 64, "width": 832}}, {"name": "parametric_pulse", "t0": 1408, "ch": "d12", "label": "CR90m_d12_u32", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.026692230613299915, -0.0009951806751776144], "duration": 1088, "sigma": 64, "width": 832}}, {"name": "fc", "t0": 0, "ch": "d15", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d15", "label": "Ym_d15", "pulse_shape": "drag", "parameters": {"amp": [-3.521649651608395e-17, -0.19170967792837929], "beta": -0.9529465826349884, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1248, "ch": "d15", "label": "Xp_d15", "pulse_shape": "drag", "parameters": {"amp": [0.19170967792837929, 0.0], "beta": -0.9529465826349884, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u26", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u32", "label": "CR90p_u32", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.008212909954208793, -0.16252183928143785], "duration": 1088, "sigma": 64, "width": 832}}, {"name": "parametric_pulse", "t0": 1408, "ch": "u32", "label": "CR90m_u32", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.008212909954208812, 0.16252183928143785], "duration": 1088, "sigma": 64, "width": 832}}, {"name": "fc", "t0": 0, "ch": "u37", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [15, 18], "sequence": [{"name": "fc", "t0": 0, "ch": "d15", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d15", "label": "Y90p_d15", "pulse_shape": "drag", "parameters": {"amp": [1.056067020661493e-05, 0.10174132785033968], "beta": -6.618654524167971, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d15", "label": "CR90p_d15_u37", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.016093382202240547, -7.140598825664716e-05], "duration": 1232, "sigma": 64, "width": 976}}, {"name": "parametric_pulse", "t0": 1552, "ch": "d15", "label": "CR90m_d15_u37", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.016093382202240547, 7.140598825664912e-05], "duration": 1232, "sigma": 64, "width": 976}}, {"name": "fc", "t0": 2784, "ch": "d15", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 2784, "ch": "d15", "label": "X90p_d15", "pulse_shape": "drag", "parameters": {"amp": [0.10174132785033968, -1.0560670206599667e-05], "beta": -6.618654524167971, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d18", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d18", "label": "X90p_d18", "pulse_shape": "drag", "parameters": {"amp": [0.09834416675282169, 0.0008004151745721556], "beta": -0.15530722169216715, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1392, "ch": "d18", "label": "Xp_d18", "pulse_shape": "drag", "parameters": {"amp": [0.1958735445702548, 0.0], "beta": -0.1822039739620271, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 2784, "ch": "d18", "label": "Y90m_d18", "pulse_shape": "drag", "parameters": {"amp": [0.000800415174572118, -0.09834416675282169], "beta": -0.15530722169216715, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u26", "phase": -3.141592653589793}, {"name": "fc", "t0": 2784, "ch": "u26", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u33", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u36", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u37", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u37", "label": "CR90p_u37", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.11602014222554621, -0.5253080026590201], "duration": 1232, "sigma": 64, "width": 976}}, {"name": "parametric_pulse", "t0": 1552, "ch": "u37", "label": "CR90m_u37", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.11602014222554614, 0.5253080026590201], "duration": 1232, "sigma": 64, "width": 976}}, {"name": "fc", "t0": 2784, "ch": "u37", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u44", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [16, 14], "sequence": [{"name": "fc", "t0": 0, "ch": "d14", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d14", "label": "X90p_d14", "pulse_shape": "drag", "parameters": {"amp": [0.09592160058722701, 0.0004397475628433075], "beta": 0.002200038205690605, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 800, "ch": "d14", "label": "Xp_d14", "pulse_shape": "drag", "parameters": {"amp": [0.1912961665026656, 0.0], "beta": -0.03530460292261767, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1600, "ch": "d14", "label": "Y90m_d14", "pulse_shape": "drag", "parameters": {"amp": [0.0004397475628433278, -0.09592160058722701], "beta": 0.002200038205690605, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d16", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d16", "label": "Y90p_d16", "pulse_shape": "drag", "parameters": {"amp": [-0.0004088060892690278, 0.10333726598599466], "beta": -0.32041171339366914, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d16", "label": "CR90p_d16_u31", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.04490805987043882, 0.0006300251285516515], "duration": 640, "sigma": 64, "width": 384}}, {"name": "parametric_pulse", "t0": 960, "ch": "d16", "label": "CR90m_d16_u31", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.04490805987043882, -0.000630025128551646], "duration": 640, "sigma": 64, "width": 384}}, {"name": "fc", "t0": 1600, "ch": "d16", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1600, "ch": "d16", "label": "X90p_d16", "pulse_shape": "drag", "parameters": {"amp": [0.10333726598599466, 0.00040880608926902533], "beta": -0.32041171339366914, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u23", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u28", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u31", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u31", "label": "CR90p_u31", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.3143303877136538, 0.0980568449602292], "duration": 640, "sigma": 64, "width": 384}}, {"name": "parametric_pulse", "t0": 960, "ch": "u31", "label": "CR90m_u31", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.3143303877136538, -0.09805684496022925], "duration": 640, "sigma": 64, "width": 384}}, {"name": "fc", "t0": 1600, "ch": "u31", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u34", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u40", "phase": -3.141592653589793}, {"name": "fc", "t0": 1600, "ch": "u40", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [16, 19], "sequence": [{"name": "fc", "t0": 0, "ch": "d16", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d16", "label": "Ym_d16", "pulse_shape": "drag", "parameters": {"amp": [-3.790871727462432e-17, -0.20636544512816726], "beta": -0.39776413231287217, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1600, "ch": "d16", "label": "Xp_d16", "pulse_shape": "drag", "parameters": {"amp": [0.20636544512816726, 0.0], "beta": -0.39776413231287217, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d19", "label": "X90p_d19", "pulse_shape": "drag", "parameters": {"amp": [0.09640610203187712, 0.0008203615672538268], "beta": 0.575812000126596, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d19", "label": "CR90p_d19_u35", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.01857024036072121, 0.0011358048065359045], "duration": 1440, "sigma": 64, "width": 1184}}, {"name": "parametric_pulse", "t0": 1760, "ch": "d19", "label": "CR90m_d19_u35", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.01857024036072121, -0.0011358048065359023], "duration": 1440, "sigma": 64, "width": 1184}}, {"name": "fc", "t0": 0, "ch": "u31", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u35", "label": "CR90p_u35", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.15129675354627373, -0.022667275053298467], "duration": 1440, "sigma": 64, "width": 1184}}, {"name": "parametric_pulse", "t0": 1760, "ch": "u35", "label": "CR90m_u35", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.15129675354627373, 0.022667275053298484], "duration": 1440, "sigma": 64, "width": 1184}}, {"name": "fc", "t0": 0, "ch": "u40", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [17, 18], "sequence": [{"name": "fc", "t0": 0, "ch": "d17", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d17", "label": "Ym_d17", "pulse_shape": "drag", "parameters": {"amp": [-3.547595655707723e-17, -0.19312211260572965], "beta": -0.5621321985576594, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 992, "ch": "d17", "label": "Xp_d17", "pulse_shape": "drag", "parameters": {"amp": [0.19312211260572965, 0.0], "beta": -0.5621321985576594, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d18", "label": "X90p_d18", "pulse_shape": "drag", "parameters": {"amp": [0.09834416675282169, 0.0008004151745721556], "beta": -0.15530722169216715, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d18", "label": "CR90p_d18_u36", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.04462672657131373, 0.000736733006965448], "duration": 832, "sigma": 64, "width": 576}}, {"name": "parametric_pulse", "t0": 1152, "ch": "d18", "label": "CR90m_d18_u36", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.04462672657131373, -0.0007367330069654426], "duration": 832, "sigma": 64, "width": 576}}, {"name": "parametric_pulse", "t0": 160, "ch": "u36", "label": "CR90p_u36", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.15255826865923372, 0.16925986635988577], "duration": 832, "sigma": 64, "width": 576}}, {"name": "parametric_pulse", "t0": 1152, "ch": "u36", "label": "CR90m_u36", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.15255826865923375, -0.16925986635988574], "duration": 832, "sigma": 64, "width": 576}}, {"name": "fc", "t0": 0, "ch": "u38", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [18, 15], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d15", "label": "X90p_d15", "pulse_shape": "drag", "parameters": {"amp": [0.10174132785033968, -1.0560670206599667e-05], "beta": -6.618654524167971, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d15", "label": "CR90p_d15_u37", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.016093382202240547, -7.140598825664716e-05], "duration": 1232, "sigma": 64, "width": 976}}, {"name": "parametric_pulse", "t0": 1552, "ch": "d15", "label": "CR90m_d15_u37", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.016093382202240547, 7.140598825664912e-05], "duration": 1232, "sigma": 64, "width": 976}}, {"name": "fc", "t0": 0, "ch": "d18", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d18", "label": "Ym_d18", "pulse_shape": "drag", "parameters": {"amp": [-3.598138640934134e-17, -0.1958735445702548], "beta": -0.1822039739620271, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1392, "ch": "d18", "label": "Xp_d18", "pulse_shape": "drag", "parameters": {"amp": [0.1958735445702548, 0.0], "beta": -0.1822039739620271, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u33", "phase": 1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u36", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u37", "label": "CR90p_u37", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.11602014222554621, -0.5253080026590201], "duration": 1232, "sigma": 64, "width": 976}}, {"name": "parametric_pulse", "t0": 1552, "ch": "u37", "label": "CR90m_u37", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.11602014222554614, 0.5253080026590201], "duration": 1232, "sigma": 64, "width": 976}}, {"name": "fc", "t0": 0, "ch": "u44", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [18, 17], "sequence": [{"name": "fc", "t0": 0, "ch": "d17", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d17", "label": "X90p_d17", "pulse_shape": "drag", "parameters": {"amp": [0.09690858616111708, 0.00047170288528899554], "beta": -0.548342068996819, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 992, "ch": "d17", "label": "Xp_d17", "pulse_shape": "drag", "parameters": {"amp": [0.19312211260572965, 0.0], "beta": -0.5621321985576594, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1984, "ch": "d17", "label": "Y90m_d17", "pulse_shape": "drag", "parameters": {"amp": [0.00047170288528896025, -0.09690858616111708], "beta": -0.548342068996819, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d18", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d18", "label": "Y90p_d18", "pulse_shape": "drag", "parameters": {"amp": [-0.0008004151745721519, 0.09834416675282169], "beta": -0.15530722169216715, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d18", "label": "CR90p_d18_u36", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.04462672657131373, 0.000736733006965448], "duration": 832, "sigma": 64, "width": 576}}, {"name": "parametric_pulse", "t0": 1152, "ch": "d18", "label": "CR90m_d18_u36", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.04462672657131373, -0.0007367330069654426], "duration": 832, "sigma": 64, "width": 576}}, {"name": "fc", "t0": 1984, "ch": "d18", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1984, "ch": "d18", "label": "X90p_d18", "pulse_shape": "drag", "parameters": {"amp": [0.09834416675282169, 0.0008004151745721556], "beta": -0.15530722169216715, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u33", "phase": -3.141592653589793}, {"name": "fc", "t0": 1984, "ch": "u33", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u36", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u36", "label": "CR90p_u36", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.15255826865923372, 0.16925986635988577], "duration": 832, "sigma": 64, "width": 576}}, {"name": "parametric_pulse", "t0": 1152, "ch": "u36", "label": "CR90m_u36", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.15255826865923375, -0.16925986635988574], "duration": 832, "sigma": 64, "width": 576}}, {"name": "fc", "t0": 1984, "ch": "u36", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u38", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u44", "phase": -3.141592653589793}, {"name": "fc", "t0": 1984, "ch": "u44", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [18, 21], "sequence": [{"name": "fc", "t0": 0, "ch": "d18", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d18", "label": "Y90p_d18", "pulse_shape": "drag", "parameters": {"amp": [-0.0008004151745721519, 0.09834416675282169], "beta": -0.15530722169216715, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d18", "label": "CR90p_d18_u44", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.05442624052300101, -0.00035714960020991635], "duration": 640, "sigma": 64, "width": 384}}, {"name": "parametric_pulse", "t0": 960, "ch": "d18", "label": "CR90m_d18_u44", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.05442624052300101, 0.000357149600209923], "duration": 640, "sigma": 64, "width": 384}}, {"name": "fc", "t0": 1600, "ch": "d18", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1600, "ch": "d18", "label": "X90p_d18", "pulse_shape": "drag", "parameters": {"amp": [0.09834416675282169, 0.0008004151745721556], "beta": -0.15530722169216715, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d21", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d21", "label": "X90p_d21", "pulse_shape": "drag", "parameters": {"amp": [0.09376658074832953, 0.001006489560947705], "beta": -1.6400739464207479, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 800, "ch": "d21", "label": "Xp_d21", "pulse_shape": "drag", "parameters": {"amp": [0.1874590776415591, 0.0], "beta": -1.6693690574326434, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1600, "ch": "d21", "label": "Y90m_d21", "pulse_shape": "drag", "parameters": {"amp": [0.0010064895609477266, -0.09376658074832953], "beta": -1.6400739464207479, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u33", "phase": -3.141592653589793}, {"name": "fc", "t0": 1600, "ch": "u33", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u36", "phase": -3.141592653589793}, {"name": "fc", "t0": 1600, "ch": "u36", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u39", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u44", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u44", "label": "CR90p_u44", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.0643318087889653, -0.2284710319578535], "duration": 640, "sigma": 64, "width": 384}}, {"name": "parametric_pulse", "t0": 960, "ch": "u44", "label": "CR90m_u44", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.06433180878896527, 0.2284710319578535], "duration": 640, "sigma": 64, "width": 384}}, {"name": "fc", "t0": 1600, "ch": "u44", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u48", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [19, 16], "sequence": [{"name": "fc", "t0": 0, "ch": "d16", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d16", "label": "X90p_d16", "pulse_shape": "drag", "parameters": {"amp": [0.10333726598599466, 0.00040880608926902533], "beta": -0.32041171339366914, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1600, "ch": "d16", "label": "Xp_d16", "pulse_shape": "drag", "parameters": {"amp": [0.20636544512816726, 0.0], "beta": -0.39776413231287217, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 3200, "ch": "d16", "label": "Y90m_d16", "pulse_shape": "drag", "parameters": {"amp": [0.0004088060892690381, -0.10333726598599466], "beta": -0.32041171339366914, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d19", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d19", "label": "Y90p_d19", "pulse_shape": "drag", "parameters": {"amp": [-0.000820361567253816, 0.09640610203187712], "beta": 0.575812000126596, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d19", "label": "CR90p_d19_u35", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.01857024036072121, 0.0011358048065359045], "duration": 1440, "sigma": 64, "width": 1184}}, {"name": "parametric_pulse", "t0": 1760, "ch": "d19", "label": "CR90m_d19_u35", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.01857024036072121, -0.0011358048065359023], "duration": 1440, "sigma": 64, "width": 1184}}, {"name": "fc", "t0": 3200, "ch": "d19", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 3200, "ch": "d19", "label": "X90p_d19", "pulse_shape": "drag", "parameters": {"amp": [0.09640610203187712, 0.0008203615672538268], "beta": 0.575812000126596, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u31", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u35", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u35", "label": "CR90p_u35", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.15129675354627373, -0.022667275053298467], "duration": 1440, "sigma": 64, "width": 1184}}, {"name": "parametric_pulse", "t0": 1760, "ch": "u35", "label": "CR90m_u35", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.15129675354627373, 0.022667275053298484], "duration": 1440, "sigma": 64, "width": 1184}}, {"name": "fc", "t0": 3200, "ch": "u35", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u40", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u43", "phase": -3.141592653589793}, {"name": "fc", "t0": 3200, "ch": "u43", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u46", "phase": -3.141592653589793}, {"name": "fc", "t0": 3200, "ch": "u46", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [19, 20], "sequence": [{"name": "fc", "t0": 0, "ch": "d19", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d19", "label": "Ym_d19", "pulse_shape": "drag", "parameters": {"amp": [-3.530234844635363e-17, -0.19217703406910194], "beta": 0.5095158462844451, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 896, "ch": "d19", "label": "Xp_d19", "pulse_shape": "drag", "parameters": {"amp": [0.19217703406910194, 0.0], "beta": 0.5095158462844451, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d20", "label": "X90p_d20", "pulse_shape": "drag", "parameters": {"amp": [0.09295921314329819, 0.0022086257576811154], "beta": -1.7246675679655659, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d20", "label": "CR90p_d20_u41", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.0431910567054956, 0.002551263699642358], "duration": 736, "sigma": 64, "width": 480}}, {"name": "parametric_pulse", "t0": 1056, "ch": "d20", "label": "CR90m_d20_u41", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.0431910567054956, -0.002551263699642353], "duration": 736, "sigma": 64, "width": 480}}, {"name": "fc", "t0": 0, "ch": "u35", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u41", "label": "CR90p_u41", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.10536864017987779, 0.22891576722370366], "duration": 736, "sigma": 64, "width": 480}}, {"name": "parametric_pulse", "t0": 1056, "ch": "u41", "label": "CR90m_u41", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.10536864017987776, -0.22891576722370366], "duration": 736, "sigma": 64, "width": 480}}, {"name": "fc", "t0": 0, "ch": "u43", "phase": 1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u46", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [19, 22], "sequence": [{"name": "fc", "t0": 0, "ch": "d19", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d19", "label": "Y90p_d19", "pulse_shape": "drag", "parameters": {"amp": [-0.000820361567253816, 0.09640610203187712], "beta": 0.575812000126596, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d19", "label": "CR90p_d19_u46", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.028036363040276402, 0.0007858100884944382], "duration": 1088, "sigma": 64, "width": 832}}, {"name": "parametric_pulse", "t0": 1408, "ch": "d19", "label": "CR90m_d19_u46", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.028036363040276402, -0.0007858100884944347], "duration": 1088, "sigma": 64, "width": 832}}, {"name": "fc", "t0": 2496, "ch": "d19", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 2496, "ch": "d19", "label": "X90p_d19", "pulse_shape": "drag", "parameters": {"amp": [0.09640610203187712, 0.0008203615672538268], "beta": 0.575812000126596, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d22", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d22", "label": "X90p_d22", "pulse_shape": "drag", "parameters": {"amp": [0.09886114906048304, 0.0011157651735984756], "beta": -0.05755884910946901, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1248, "ch": "d22", "label": "Xp_d22", "pulse_shape": "drag", "parameters": {"amp": [0.19777937555634284, 0.0], "beta": 0.009576850646861874, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 2496, "ch": "d22", "label": "Y90m_d22", "pulse_shape": "drag", "parameters": {"amp": [0.0011157651735984658, -0.09886114906048304], "beta": -0.05755884910946901, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u35", "phase": -3.141592653589793}, {"name": "fc", "t0": 2496, "ch": "u35", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u42", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u43", "phase": -3.141592653589793}, {"name": "fc", "t0": 2496, "ch": "u43", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u46", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u46", "label": "CR90p_u46", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.04944230194339201, -0.1716952133624324], "duration": 1088, "sigma": 64, "width": 832}}, {"name": "parametric_pulse", "t0": 1408, "ch": "u46", "label": "CR90m_u46", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.04944230194339199, 0.1716952133624324], "duration": 1088, "sigma": 64, "width": 832}}, {"name": "fc", "t0": 2496, "ch": "u46", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u52", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [20, 19], "sequence": [{"name": "fc", "t0": 0, "ch": "d19", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d19", "label": "X90p_d19", "pulse_shape": "drag", "parameters": {"amp": [0.09640610203187712, 0.0008203615672538268], "beta": 0.575812000126596, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 896, "ch": "d19", "label": "Xp_d19", "pulse_shape": "drag", "parameters": {"amp": [0.19217703406910194, 0.0], "beta": 0.5095158462844451, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1792, "ch": "d19", "label": "Y90m_d19", "pulse_shape": "drag", "parameters": {"amp": [0.0008203615672538256, -0.09640610203187712], "beta": 0.575812000126596, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d20", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d20", "label": "Y90p_d20", "pulse_shape": "drag", "parameters": {"amp": [-0.0022086257576811063, 0.09295921314329819], "beta": -1.7246675679655659, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d20", "label": "CR90p_d20_u41", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.0431910567054956, 0.002551263699642358], "duration": 736, "sigma": 64, "width": 480}}, {"name": "parametric_pulse", "t0": 1056, "ch": "d20", "label": "CR90m_d20_u41", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.0431910567054956, -0.002551263699642353], "duration": 736, "sigma": 64, "width": 480}}, {"name": "fc", "t0": 1792, "ch": "d20", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1792, "ch": "d20", "label": "X90p_d20", "pulse_shape": "drag", "parameters": {"amp": [0.09295921314329819, 0.0022086257576811154], "beta": -1.7246675679655659, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u35", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u41", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u41", "label": "CR90p_u41", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.10536864017987779, 0.22891576722370366], "duration": 736, "sigma": 64, "width": 480}}, {"name": "parametric_pulse", "t0": 1056, "ch": "u41", "label": "CR90m_u41", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.10536864017987776, -0.22891576722370366], "duration": 736, "sigma": 64, "width": 480}}, {"name": "fc", "t0": 1792, "ch": "u41", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u43", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u46", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [21, 18], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d18", "label": "X90p_d18", "pulse_shape": "drag", "parameters": {"amp": [0.09834416675282169, 0.0008004151745721556], "beta": -0.15530722169216715, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d18", "label": "CR90p_d18_u44", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.05442624052300101, -0.00035714960020991635], "duration": 640, "sigma": 64, "width": 384}}, {"name": "parametric_pulse", "t0": 960, "ch": "d18", "label": "CR90m_d18_u44", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.05442624052300101, 0.000357149600209923], "duration": 640, "sigma": 64, "width": 384}}, {"name": "fc", "t0": 0, "ch": "d21", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d21", "label": "Ym_d21", "pulse_shape": "drag", "parameters": {"amp": [-3.4435673910727575e-17, -0.1874590776415591], "beta": -1.6693690574326434, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 800, "ch": "d21", "label": "Xp_d21", "pulse_shape": "drag", "parameters": {"amp": [0.1874590776415591, 0.0], "beta": -1.6693690574326434, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u39", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u44", "label": "CR90p_u44", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.0643318087889653, -0.2284710319578535], "duration": 640, "sigma": 64, "width": 384}}, {"name": "parametric_pulse", "t0": 960, "ch": "u44", "label": "CR90m_u44", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.06433180878896527, 0.2284710319578535], "duration": 640, "sigma": 64, "width": 384}}, {"name": "fc", "t0": 0, "ch": "u48", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [21, 23], "sequence": [{"name": "fc", "t0": 0, "ch": "d21", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d21", "label": "Ym_d21", "pulse_shape": "drag", "parameters": {"amp": [-3.4435673910727575e-17, -0.1874590776415591], "beta": -1.6693690574326434, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1216, "ch": "d21", "label": "Xp_d21", "pulse_shape": "drag", "parameters": {"amp": [0.1874590776415591, 0.0], "beta": -1.6693690574326434, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d23", "label": "X90p_d23", "pulse_shape": "drag", "parameters": {"amp": [0.09689616277448652, 0.0006771644177384502], "beta": -0.2832069474435073, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d23", "label": "CR90p_d23_u45", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.028613129564210145, 0.0009832523473326511], "duration": 1056, "sigma": 64, "width": 800}}, {"name": "parametric_pulse", "t0": 1376, "ch": "d23", "label": "CR90m_d23_u45", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.028613129564210145, -0.0009832523473326477], "duration": 1056, "sigma": 64, "width": 800}}, {"name": "fc", "t0": 0, "ch": "u39", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u45", "label": "CR90p_u45", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.13665388834132922, -0.055949512376300636], "duration": 1056, "sigma": 64, "width": 800}}, {"name": "parametric_pulse", "t0": 1376, "ch": "u45", "label": "CR90m_u45", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.13665388834132922, 0.05594951237630062], "duration": 1056, "sigma": 64, "width": 800}}, {"name": "fc", "t0": 0, "ch": "u48", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [22, 19], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d19", "label": "X90p_d19", "pulse_shape": "drag", "parameters": {"amp": [0.09640610203187712, 0.0008203615672538268], "beta": 0.575812000126596, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d19", "label": "CR90p_d19_u46", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.028036363040276402, 0.0007858100884944382], "duration": 1088, "sigma": 64, "width": 832}}, {"name": "parametric_pulse", "t0": 1408, "ch": "d19", "label": "CR90m_d19_u46", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.028036363040276402, -0.0007858100884944347], "duration": 1088, "sigma": 64, "width": 832}}, {"name": "fc", "t0": 0, "ch": "d22", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d22", "label": "Ym_d22", "pulse_shape": "drag", "parameters": {"amp": [-3.6331481881865624e-17, -0.19777937555634284], "beta": 0.009576850646861874, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1248, "ch": "d22", "label": "Xp_d22", "pulse_shape": "drag", "parameters": {"amp": [0.19777937555634284, 0.0], "beta": 0.009576850646861874, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u42", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u46", "label": "CR90p_u46", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.04944230194339201, -0.1716952133624324], "duration": 1088, "sigma": 64, "width": 832}}, {"name": "parametric_pulse", "t0": 1408, "ch": "u46", "label": "CR90m_u46", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.04944230194339199, 0.1716952133624324], "duration": 1088, "sigma": 64, "width": 832}}, {"name": "fc", "t0": 0, "ch": "u52", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [22, 25], "sequence": [{"name": "fc", "t0": 0, "ch": "d22", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d22", "label": "Ym_d22", "pulse_shape": "drag", "parameters": {"amp": [-3.6331481881865624e-17, -0.19777937555634284], "beta": 0.009576850646861874, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 960, "ch": "d22", "label": "Xp_d22", "pulse_shape": "drag", "parameters": {"amp": [0.19777937555634284, 0.0], "beta": 0.009576850646861874, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d25", "label": "X90p_d25", "pulse_shape": "drag", "parameters": {"amp": [0.09786458613438094, 0.0006280241748295421], "beta": -1.314601778495484, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d25", "label": "CR90p_d25_u47", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.039793992826718826, 0.00010800177278462154], "duration": 800, "sigma": 64, "width": 544}}, {"name": "parametric_pulse", "t0": 1120, "ch": "d25", "label": "CR90m_d25_u47", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.039793992826718826, -0.00010800177278461666], "duration": 800, "sigma": 64, "width": 544}}, {"name": "fc", "t0": 0, "ch": "u42", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u47", "label": "CR90p_u47", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.17399582223197563, 0.39571393398459936], "duration": 800, "sigma": 64, "width": 544}}, {"name": "parametric_pulse", "t0": 1120, "ch": "u47", "label": "CR90m_u47", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.17399582223197568, -0.39571393398459936], "duration": 800, "sigma": 64, "width": 544}}, {"name": "fc", "t0": 0, "ch": "u52", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [23, 21], "sequence": [{"name": "fc", "t0": 0, "ch": "d21", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d21", "label": "X90p_d21", "pulse_shape": "drag", "parameters": {"amp": [0.09376658074832953, 0.001006489560947705], "beta": -1.6400739464207479, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1216, "ch": "d21", "label": "Xp_d21", "pulse_shape": "drag", "parameters": {"amp": [0.1874590776415591, 0.0], "beta": -1.6693690574326434, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 2432, "ch": "d21", "label": "Y90m_d21", "pulse_shape": "drag", "parameters": {"amp": [0.0010064895609477266, -0.09376658074832953], "beta": -1.6400739464207479, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d23", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d23", "label": "Y90p_d23", "pulse_shape": "drag", "parameters": {"amp": [-0.0006771644177384412, 0.09689616277448652], "beta": -0.2832069474435073, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d23", "label": "CR90p_d23_u45", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.028613129564210145, 0.0009832523473326511], "duration": 1056, "sigma": 64, "width": 800}}, {"name": "parametric_pulse", "t0": 1376, "ch": "d23", "label": "CR90m_d23_u45", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.028613129564210145, -0.0009832523473326477], "duration": 1056, "sigma": 64, "width": 800}}, {"name": "fc", "t0": 2432, "ch": "d23", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 2432, "ch": "d23", "label": "X90p_d23", "pulse_shape": "drag", "parameters": {"amp": [0.09689616277448652, 0.0006771644177384502], "beta": -0.2832069474435073, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u39", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u45", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u45", "label": "CR90p_u45", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.13665388834132922, -0.055949512376300636], "duration": 1056, "sigma": 64, "width": 800}}, {"name": "parametric_pulse", "t0": 1376, "ch": "u45", "label": "CR90m_u45", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.13665388834132922, 0.05594951237630062], "duration": 1056, "sigma": 64, "width": 800}}, {"name": "fc", "t0": 2432, "ch": "u45", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u48", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u50", "phase": -3.141592653589793}, {"name": "fc", "t0": 2432, "ch": "u50", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [23, 24], "sequence": [{"name": "fc", "t0": 0, "ch": "d23", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d23", "label": "Ym_d23", "pulse_shape": "drag", "parameters": {"amp": [-3.557390372664845e-17, -0.1936553121624749], "beta": -0.2584595814569481, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 784, "ch": "d23", "label": "Xp_d23", "pulse_shape": "drag", "parameters": {"amp": [0.1936553121624749, 0.0], "beta": -0.2584595814569481, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d24", "label": "X90p_d24", "pulse_shape": "drag", "parameters": {"amp": [0.09824430169742811, 2.0938769591382614e-05], "beta": 0.5770580939428461, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d24", "label": "CR90p_d24_u49", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.037733731648854615, -0.00012873619597123458], "duration": 624, "sigma": 64, "width": 368}}, {"name": "parametric_pulse", "t0": 944, "ch": "d24", "label": "CR90m_d24_u49", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.037733731648854615, 0.0001287361959712392], "duration": 624, "sigma": 64, "width": 368}}, {"name": "fc", "t0": 0, "ch": "u45", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u49", "label": "CR90p_u49", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.3254565996579967, -0.39501078240002924], "duration": 624, "sigma": 64, "width": 368}}, {"name": "parametric_pulse", "t0": 944, "ch": "u49", "label": "CR90m_u49", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.3254565996579968, 0.3950107824000292], "duration": 624, "sigma": 64, "width": 368}}, {"name": "fc", "t0": 0, "ch": "u50", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [24, 23], "sequence": [{"name": "fc", "t0": 0, "ch": "d23", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d23", "label": "X90p_d23", "pulse_shape": "drag", "parameters": {"amp": [0.09689616277448652, 0.0006771644177384502], "beta": -0.2832069474435073, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 784, "ch": "d23", "label": "Xp_d23", "pulse_shape": "drag", "parameters": {"amp": [0.1936553121624749, 0.0], "beta": -0.2584595814569481, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1568, "ch": "d23", "label": "Y90m_d23", "pulse_shape": "drag", "parameters": {"amp": [0.0006771644177384724, -0.09689616277448652], "beta": -0.2832069474435073, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d24", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d24", "label": "Y90p_d24", "pulse_shape": "drag", "parameters": {"amp": [-2.0938769591374062e-05, 0.09824430169742811], "beta": 0.5770580939428461, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d24", "label": "CR90p_d24_u49", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.037733731648854615, -0.00012873619597123458], "duration": 624, "sigma": 64, "width": 368}}, {"name": "parametric_pulse", "t0": 944, "ch": "d24", "label": "CR90m_d24_u49", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.037733731648854615, 0.0001287361959712392], "duration": 624, "sigma": 64, "width": 368}}, {"name": "fc", "t0": 1568, "ch": "d24", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1568, "ch": "d24", "label": "X90p_d24", "pulse_shape": "drag", "parameters": {"amp": [0.09824430169742811, 2.0938769591382614e-05], "beta": 0.5770580939428461, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u45", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u49", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u49", "label": "CR90p_u49", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.3254565996579967, -0.39501078240002924], "duration": 624, "sigma": 64, "width": 368}}, {"name": "parametric_pulse", "t0": 944, "ch": "u49", "label": "CR90m_u49", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.3254565996579968, 0.3950107824000292], "duration": 624, "sigma": 64, "width": 368}}, {"name": "fc", "t0": 1568, "ch": "u49", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u50", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u53", "phase": -3.141592653589793}, {"name": "fc", "t0": 1568, "ch": "u53", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [24, 25], "sequence": [{"name": "fc", "t0": 0, "ch": "d24", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d24", "label": "Y90p_d24", "pulse_shape": "drag", "parameters": {"amp": [-2.0938769591374062e-05, 0.09824430169742811], "beta": 0.5770580939428461, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d24", "label": "CR90p_d24_u53", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.04191722899288894, 0.0005785278967116103], "duration": 752, "sigma": 64, "width": 496}}, {"name": "parametric_pulse", "t0": 1072, "ch": "d24", "label": "CR90m_d24_u53", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.04191722899288894, -0.0005785278967116052], "duration": 752, "sigma": 64, "width": 496}}, {"name": "fc", "t0": 1824, "ch": "d24", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1824, "ch": "d24", "label": "X90p_d24", "pulse_shape": "drag", "parameters": {"amp": [0.09824430169742811, 2.0938769591382614e-05], "beta": 0.5770580939428461, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d25", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d25", "label": "X90p_d25", "pulse_shape": "drag", "parameters": {"amp": [0.09786458613438094, 0.0006280241748295421], "beta": -1.314601778495484, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 912, "ch": "d25", "label": "Xp_d25", "pulse_shape": "drag", "parameters": {"amp": [0.19584268451676065, 0.0], "beta": -1.3725638628838261, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1824, "ch": "d25", "label": "Y90m_d25", "pulse_shape": "drag", "parameters": {"amp": [0.0006280241748295439, -0.09786458613438094], "beta": -1.314601778495484, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u47", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u49", "phase": -3.141592653589793}, {"name": "fc", "t0": 1824, "ch": "u49", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u51", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u53", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u53", "label": "CR90p_u53", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.2268843240811152, 0.05363332738545396], "duration": 752, "sigma": 64, "width": 496}}, {"name": "parametric_pulse", "t0": 1072, "ch": "u53", "label": "CR90m_u53", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.2268843240811152, -0.053633327385453934], "duration": 752, "sigma": 64, "width": 496}}, {"name": "fc", "t0": 1824, "ch": "u53", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u55", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [25, 22], "sequence": [{"name": "fc", "t0": 0, "ch": "d22", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d22", "label": "X90p_d22", "pulse_shape": "drag", "parameters": {"amp": [0.09886114906048304, 0.0011157651735984756], "beta": -0.05755884910946901, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 960, "ch": "d22", "label": "Xp_d22", "pulse_shape": "drag", "parameters": {"amp": [0.19777937555634284, 0.0], "beta": 0.009576850646861874, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1920, "ch": "d22", "label": "Y90m_d22", "pulse_shape": "drag", "parameters": {"amp": [0.0011157651735984658, -0.09886114906048304], "beta": -0.05755884910946901, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d25", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d25", "label": "Y90p_d25", "pulse_shape": "drag", "parameters": {"amp": [-0.0006280241748295342, 0.09786458613438094], "beta": -1.314601778495484, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d25", "label": "CR90p_d25_u47", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.039793992826718826, 0.00010800177278462154], "duration": 800, "sigma": 64, "width": 544}}, {"name": "parametric_pulse", "t0": 1120, "ch": "d25", "label": "CR90m_d25_u47", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.039793992826718826, -0.00010800177278461666], "duration": 800, "sigma": 64, "width": 544}}, {"name": "fc", "t0": 1920, "ch": "d25", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1920, "ch": "d25", "label": "X90p_d25", "pulse_shape": "drag", "parameters": {"amp": [0.09786458613438094, 0.0006280241748295421], "beta": -1.314601778495484, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u42", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u47", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u47", "label": "CR90p_u47", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.17399582223197563, 0.39571393398459936], "duration": 800, "sigma": 64, "width": 544}}, {"name": "parametric_pulse", "t0": 1120, "ch": "u47", "label": "CR90m_u47", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.17399582223197568, -0.39571393398459936], "duration": 800, "sigma": 64, "width": 544}}, {"name": "fc", "t0": 1920, "ch": "u47", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u51", "phase": -3.141592653589793}, {"name": "fc", "t0": 1920, "ch": "u51", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u52", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u55", "phase": -3.141592653589793}, {"name": "fc", "t0": 1920, "ch": "u55", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [25, 24], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d24", "label": "X90p_d24", "pulse_shape": "drag", "parameters": {"amp": [0.09824430169742811, 2.0938769591382614e-05], "beta": 0.5770580939428461, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d24", "label": "CR90p_d24_u53", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.04191722899288894, 0.0005785278967116103], "duration": 752, "sigma": 64, "width": 496}}, {"name": "parametric_pulse", "t0": 1072, "ch": "d24", "label": "CR90m_d24_u53", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.04191722899288894, -0.0005785278967116052], "duration": 752, "sigma": 64, "width": 496}}, {"name": "fc", "t0": 0, "ch": "d25", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d25", "label": "Ym_d25", "pulse_shape": "drag", "parameters": {"amp": [-3.5975717509481376e-17, -0.19584268451676065], "beta": -1.3725638628838261, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 912, "ch": "d25", "label": "Xp_d25", "pulse_shape": "drag", "parameters": {"amp": [0.19584268451676065, 0.0], "beta": -1.3725638628838261, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u47", "phase": 1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u51", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u53", "label": "CR90p_u53", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.2268843240811152, 0.05363332738545396], "duration": 752, "sigma": 64, "width": 496}}, {"name": "parametric_pulse", "t0": 1072, "ch": "u53", "label": "CR90m_u53", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.2268843240811152, -0.053633327385453934], "duration": 752, "sigma": 64, "width": 496}}, {"name": "fc", "t0": 0, "ch": "u55", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [25, 26], "sequence": [{"name": "fc", "t0": 0, "ch": "d25", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d25", "label": "Ym_d25", "pulse_shape": "drag", "parameters": {"amp": [-3.5975717509481376e-17, -0.19584268451676065], "beta": -1.3725638628838261, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 784, "ch": "d25", "label": "Xp_d25", "pulse_shape": "drag", "parameters": {"amp": [0.19584268451676065, 0.0], "beta": -1.3725638628838261, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d26", "label": "X90p_d26", "pulse_shape": "drag", "parameters": {"amp": [0.09398909046616878, 0.002151034801716638], "beta": -2.0899204062928742, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d26", "label": "CR90p_d26_u54", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.058927922299398236, 0.003990065940669994], "duration": 624, "sigma": 64, "width": 368}}, {"name": "parametric_pulse", "t0": 944, "ch": "d26", "label": "CR90m_d26_u54", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.058927922299398236, -0.003990065940669987], "duration": 624, "sigma": 64, "width": 368}}, {"name": "fc", "t0": 0, "ch": "u47", "phase": 1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u51", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u54", "label": "CR90p_u54", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.1761380268647358, -0.25529303437575207], "duration": 624, "sigma": 64, "width": 368}}, {"name": "parametric_pulse", "t0": 944, "ch": "u54", "label": "CR90m_u54", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.17613802686473579, 0.25529303437575207], "duration": 624, "sigma": 64, "width": 368}}, {"name": "fc", "t0": 0, "ch": "u55", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [26, 25], "sequence": [{"name": "fc", "t0": 0, "ch": "d25", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d25", "label": "X90p_d25", "pulse_shape": "drag", "parameters": {"amp": [0.09786458613438094, 0.0006280241748295421], "beta": -1.314601778495484, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 784, "ch": "d25", "label": "Xp_d25", "pulse_shape": "drag", "parameters": {"amp": [0.19584268451676065, 0.0], "beta": -1.3725638628838261, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1568, "ch": "d25", "label": "Y90m_d25", "pulse_shape": "drag", "parameters": {"amp": [0.0006280241748295439, -0.09786458613438094], "beta": -1.314601778495484, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d26", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d26", "label": "Y90p_d26", "pulse_shape": "drag", "parameters": {"amp": [-0.0021510348017166315, 0.09398909046616878], "beta": -2.0899204062928742, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d26", "label": "CR90p_d26_u54", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.058927922299398236, 0.003990065940669994], "duration": 624, "sigma": 64, "width": 368}}, {"name": "parametric_pulse", "t0": 944, "ch": "d26", "label": "CR90m_d26_u54", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.058927922299398236, -0.003990065940669987], "duration": 624, "sigma": 64, "width": 368}}, {"name": "fc", "t0": 1568, "ch": "d26", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1568, "ch": "d26", "label": "X90p_d26", "pulse_shape": "drag", "parameters": {"amp": [0.09398909046616878, 0.002151034801716638], "beta": -2.0899204062928742, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u47", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u51", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u54", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u54", "label": "CR90p_u54", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.1761380268647358, -0.25529303437575207], "duration": 624, "sigma": 64, "width": 368}}, {"name": "parametric_pulse", "t0": 944, "ch": "u54", "label": "CR90m_u54", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.17613802686473579, 0.25529303437575207], "duration": 624, "sigma": 64, "width": 368}}, {"name": "fc", "t0": 1568, "ch": "u54", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u55", "phase": -1.5707963267948966}]}, {"name": "id", "qubits": [0], "sequence": [{"name": "QId_d0", "t0": 0, "ch": "d0"}]}, {"name": "id", "qubits": [1], "sequence": [{"name": "QId_d1", "t0": 0, "ch": "d1"}]}, {"name": "id", "qubits": [2], "sequence": [{"name": "QId_d2", "t0": 0, "ch": "d2"}]}, {"name": "id", "qubits": [3], "sequence": [{"name": "QId_d3", "t0": 0, "ch": "d3"}]}, {"name": "id", "qubits": [4], "sequence": [{"name": "QId_d4", "t0": 0, "ch": "d4"}]}, {"name": "id", "qubits": [5], "sequence": [{"name": "QId_d5", "t0": 0, "ch": "d5"}]}, {"name": "id", "qubits": [6], "sequence": [{"name": "QId_d6", "t0": 0, "ch": "d6"}]}, {"name": "id", "qubits": [7], "sequence": [{"name": "QId_d7", "t0": 0, "ch": "d7"}]}, {"name": "id", "qubits": [8], "sequence": [{"name": "QId_d8", "t0": 0, "ch": "d8"}]}, {"name": "id", "qubits": [9], "sequence": [{"name": "QId_d9", "t0": 0, "ch": "d9"}]}, {"name": "id", "qubits": [10], "sequence": [{"name": "QId_d10", "t0": 0, "ch": "d10"}]}, {"name": "id", "qubits": [11], "sequence": [{"name": "QId_d11", "t0": 0, "ch": "d11"}]}, {"name": "id", "qubits": [12], "sequence": [{"name": "QId_d12", "t0": 0, "ch": "d12"}]}, {"name": "id", "qubits": [13], "sequence": [{"name": "QId_d13", "t0": 0, "ch": "d13"}]}, {"name": "id", "qubits": [14], "sequence": [{"name": "QId_d14", "t0": 0, "ch": "d14"}]}, {"name": "id", "qubits": [15], "sequence": [{"name": "QId_d15", "t0": 0, "ch": "d15"}]}, {"name": "id", "qubits": [16], "sequence": [{"name": "QId_d16", "t0": 0, "ch": "d16"}]}, {"name": "id", "qubits": [17], "sequence": [{"name": "QId_d17", "t0": 0, "ch": "d17"}]}, {"name": "id", "qubits": [18], "sequence": [{"name": "QId_d18", "t0": 0, "ch": "d18"}]}, {"name": "id", "qubits": [19], "sequence": [{"name": "QId_d19", "t0": 0, "ch": "d19"}]}, {"name": "id", "qubits": [20], "sequence": [{"name": "QId_d20", "t0": 0, "ch": "d20"}]}, {"name": "id", "qubits": [21], "sequence": [{"name": "QId_d21", "t0": 0, "ch": "d21"}]}, {"name": "id", "qubits": [22], "sequence": [{"name": "QId_d22", "t0": 0, "ch": "d22"}]}, {"name": "id", "qubits": [23], "sequence": [{"name": "QId_d23", "t0": 0, "ch": "d23"}]}, {"name": "id", "qubits": [24], "sequence": [{"name": "QId_d24", "t0": 0, "ch": "d24"}]}, {"name": "id", "qubits": [25], "sequence": [{"name": "QId_d25", "t0": 0, "ch": "d25"}]}, {"name": "id", "qubits": [26], "sequence": [{"name": "QId_d26", "t0": 0, "ch": "d26"}]}, {"name": "measure", "qubits": [0], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m0", "label": "M_m0", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.213994130176147, 0.13496485561120808], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m0", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m0", "label": "M_m0", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.213994130176147, 0.13496485561120808], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m0", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m1", "label": "M_m1", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.22960987456327867, 0.059842325347829115], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m1", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m10", "label": "M_m10", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.08063161280889924, -0.31999772345414546], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m10", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m11", "label": "M_m11", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.3677138093258835, -0.041067681101418556], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m11", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m12", "label": "M_m12", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.21666020634063818, -0.10880003733653812], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m12", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m13", "label": "M_m13", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.19578772332038888, 0.2901157827437501], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m13", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m14", "label": "M_m14", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.21933048436823424, 0.02168636960848346], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m14", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m15", "label": "M_m15", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.24933979311910892, -0.2596722310285025], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m15", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m16", "label": "M_m16", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.1803912938446253, -0.2270660280734704], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m16", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m17", "label": "M_m17", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.279368980389184, 0.01878757026088606], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m17", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m18", "label": "M_m18", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.31869973900076093, -0.14467368924876026], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m18", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m19", "label": "M_m19", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.02330533861256055, 0.3091227283655375], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m19", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m2", "label": "M_m2", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.12796147383896048, 0.24228466978527766], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m2", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m20", "label": "M_m20", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.16620656945112908, 0.15898231433491908], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m20", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m21", "label": "M_m21", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.03782492151955332, -0.35800736767843144], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m21", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m22", "label": "M_m22", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.09243613686797315, 0.2536839778167422], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m22", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m23", "label": "M_m23", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.024783569060478253, -0.23871693426446416], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m23", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m24", "label": "M_m24", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.00484794636726121, 0.15192266919726022], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m24", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m25", "label": "M_m25", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.32288728031388475, 0.311713400757014], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m25", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m26", "label": "M_m26", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.23667255415261165, -0.14961985867818192], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m26", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m3", "label": "M_m3", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.1924564503838187, 0.18216891805590957], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m3", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m4", "label": "M_m4", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.23081676668219364, -0.11968132777663268], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m4", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m5", "label": "M_m5", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.13815192481391916, -0.23197854571104035], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m5", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m6", "label": "M_m6", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.17983291244067695, -0.007753941133630919], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m6", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m7", "label": "M_m7", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.21770627410960058, -0.2611589137159892], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m7", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m8", "label": "M_m8", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.3656709251644241, -0.12972576648219966], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m8", "duration": 1616}, {"name": "parametric_pulse", "t0": 0, "ch": "m9", "label": "M_m9", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.1860422599542391, 0.21853438519171145], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m9", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [1], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m1", "label": "M_m1", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.22960987456327867, 0.059842325347829115], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m1", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [2], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m2", "label": "M_m2", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.12796147383896048, 0.24228466978527766], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m2", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [3], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m3", "label": "M_m3", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.1924564503838187, 0.18216891805590957], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m3", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [4], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m4", "label": "M_m4", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.23081676668219364, -0.11968132777663268], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m4", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [5], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m5", "label": "M_m5", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.13815192481391916, -0.23197854571104035], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m5", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [6], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m6", "label": "M_m6", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.17983291244067695, -0.007753941133630919], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m6", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [7], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m7", "label": "M_m7", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.21770627410960058, -0.2611589137159892], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m7", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [8], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m8", "label": "M_m8", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.3656709251644241, -0.12972576648219966], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m8", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [9], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m9", "label": "M_m9", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.1860422599542391, 0.21853438519171145], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m9", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [10], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m10", "label": "M_m10", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.08063161280889924, -0.31999772345414546], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m10", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [11], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m11", "label": "M_m11", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.3677138093258835, -0.041067681101418556], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m11", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [12], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m12", "label": "M_m12", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.21666020634063818, -0.10880003733653812], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m12", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [13], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m13", "label": "M_m13", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.19578772332038888, 0.2901157827437501], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m13", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [14], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m14", "label": "M_m14", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.21933048436823424, 0.02168636960848346], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m14", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [15], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m15", "label": "M_m15", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.24933979311910892, -0.2596722310285025], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m15", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [16], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m16", "label": "M_m16", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.1803912938446253, -0.2270660280734704], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m16", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [17], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m17", "label": "M_m17", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.279368980389184, 0.01878757026088606], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m17", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [18], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m18", "label": "M_m18", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.31869973900076093, -0.14467368924876026], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m18", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [19], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m19", "label": "M_m19", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.02330533861256055, 0.3091227283655375], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m19", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [20], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m20", "label": "M_m20", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.16620656945112908, 0.15898231433491908], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m20", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [21], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m21", "label": "M_m21", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.03782492151955332, -0.35800736767843144], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m21", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [22], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m22", "label": "M_m22", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.09243613686797315, 0.2536839778167422], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m22", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [23], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m23", "label": "M_m23", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.024783569060478253, -0.23871693426446416], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m23", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [24], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m24", "label": "M_m24", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.00484794636726121, 0.15192266919726022], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m24", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [25], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m25", "label": "M_m25", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.32288728031388475, 0.311713400757014], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m25", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [26], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m26", "label": "M_m26", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.23667255415261165, -0.14961985867818192], "duration": 1792, "sigma": 64, "width": 1536}}, {"name": "delay", "t0": 1792, "ch": "m26", "duration": 1616}, {"name": "acquire", "t0": 0, "duration": 1792, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "rz", "qubits": [0], "sequence": [{"name": "fc", "t0": 0, "ch": "d0", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u1", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [1], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u0", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u4", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u8", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [2], "sequence": [{"name": "fc", "t0": 0, "ch": "d2", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u2", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u6", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [3], "sequence": [{"name": "fc", "t0": 0, "ch": "d3", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u10", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u5", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [4], "sequence": [{"name": "fc", "t0": 0, "ch": "d4", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u13", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u3", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [5], "sequence": [{"name": "fc", "t0": 0, "ch": "d5", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u16", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u7", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [6], "sequence": [{"name": "fc", "t0": 0, "ch": "d6", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u14", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [7], "sequence": [{"name": "fc", "t0": 0, "ch": "d7", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u12", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u20", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u9", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [8], "sequence": [{"name": "fc", "t0": 0, "ch": "d8", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u11", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u19", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u22", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [9], "sequence": [{"name": "fc", "t0": 0, "ch": "d9", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u17", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [10], "sequence": [{"name": "fc", "t0": 0, "ch": "d10", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u15", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u24", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [11], "sequence": [{"name": "fc", "t0": 0, "ch": "d11", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u18", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u29", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [12], "sequence": [{"name": "fc", "t0": 0, "ch": "d12", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u21", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u27", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u32", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [13], "sequence": [{"name": "fc", "t0": 0, "ch": "d13", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u25", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u30", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [14], "sequence": [{"name": "fc", "t0": 0, "ch": "d14", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u23", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u28", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u34", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [15], "sequence": [{"name": "fc", "t0": 0, "ch": "d15", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u26", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u37", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [16], "sequence": [{"name": "fc", "t0": 0, "ch": "d16", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u31", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u40", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [17], "sequence": [{"name": "fc", "t0": 0, "ch": "d17", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u38", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [18], "sequence": [{"name": "fc", "t0": 0, "ch": "d18", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u33", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u36", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u44", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [19], "sequence": [{"name": "fc", "t0": 0, "ch": "d19", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u35", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u43", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u46", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [20], "sequence": [{"name": "fc", "t0": 0, "ch": "d20", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u41", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [21], "sequence": [{"name": "fc", "t0": 0, "ch": "d21", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u39", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u48", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [22], "sequence": [{"name": "fc", "t0": 0, "ch": "d22", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u42", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u52", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [23], "sequence": [{"name": "fc", "t0": 0, "ch": "d23", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u45", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u50", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [24], "sequence": [{"name": "fc", "t0": 0, "ch": "d24", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u49", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u53", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [25], "sequence": [{"name": "fc", "t0": 0, "ch": "d25", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u47", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u51", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u55", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [26], "sequence": [{"name": "fc", "t0": 0, "ch": "d26", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u54", "phase": "-(P0)"}]}, {"name": "sx", "qubits": [0], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d0", "label": "X90p_d0", "pulse_shape": "drag", "parameters": {"amp": [0.09572477894596168, 0.0011024192527703698], "beta": 0.4899587750398396, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [1], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "X90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.09662612490207494, 8.168061701526435e-05], "beta": -0.0582599488341388, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [2], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "X90p_d2", "pulse_shape": "drag", "parameters": {"amp": [0.09755670881211916, 0.0011522965336073028], "beta": -1.0659510853062957, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [3], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "X90p_d3", "pulse_shape": "drag", "parameters": {"amp": [0.09711734143625132, 0.0008902006723180865], "beta": -0.25214660522363813, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [4], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "X90p_d4", "pulse_shape": "drag", "parameters": {"amp": [0.09679969868891551, 0.0006494190146448055], "beta": 0.2138847527435544, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [5], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "X90p_d5", "pulse_shape": "drag", "parameters": {"amp": [0.1008143248023259, 0.00042907561000019874], "beta": 0.22070937017933667, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [6], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d6", "label": "X90p_d6", "pulse_shape": "drag", "parameters": {"amp": [0.09436939003022234, 0.00028279277770874796], "beta": -0.24416915361490749, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [7], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d7", "label": "X90p_d7", "pulse_shape": "drag", "parameters": {"amp": [0.09310343317304517, 0.0006959390260227185], "beta": -0.0028410035667972722, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [8], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d8", "label": "X90p_d8", "pulse_shape": "drag", "parameters": {"amp": [0.09390903999733272, 0.0011294709961469818], "beta": -1.1474562445399736, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [9], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d9", "label": "X90p_d9", "pulse_shape": "drag", "parameters": {"amp": [0.09514812259032954, 0.001075481929338223], "beta": 0.7548362760491217, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [10], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d10", "label": "X90p_d10", "pulse_shape": "drag", "parameters": {"amp": [0.0996361990487828, 0.0017861547472038065], "beta": -1.047701695975587, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [11], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d11", "label": "X90p_d11", "pulse_shape": "drag", "parameters": {"amp": [0.09944641170944009, 0.0023819409453860203], "beta": -1.3247547836429008, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [12], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d12", "label": "X90p_d12", "pulse_shape": "drag", "parameters": {"amp": [0.09550084024767264, 0.0008565712850177551], "beta": 0.07448054414102981, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [13], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d13", "label": "X90p_d13", "pulse_shape": "drag", "parameters": {"amp": [0.09900946893592417, 0.0014680879043291015], "beta": -1.4690035698318569, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [14], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d14", "label": "X90p_d14", "pulse_shape": "drag", "parameters": {"amp": [0.09592160058722701, 0.0004397475628433075], "beta": 0.002200038205690605, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [15], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d15", "label": "X90p_d15", "pulse_shape": "drag", "parameters": {"amp": [0.10174132785033968, -1.0560670206599667e-05], "beta": -6.618654524167971, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [16], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d16", "label": "X90p_d16", "pulse_shape": "drag", "parameters": {"amp": [0.10333726598599466, 0.00040880608926902533], "beta": -0.32041171339366914, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [17], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d17", "label": "X90p_d17", "pulse_shape": "drag", "parameters": {"amp": [0.09690858616111708, 0.00047170288528899554], "beta": -0.548342068996819, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [18], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d18", "label": "X90p_d18", "pulse_shape": "drag", "parameters": {"amp": [0.09834416675282169, 0.0008004151745721556], "beta": -0.15530722169216715, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [19], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d19", "label": "X90p_d19", "pulse_shape": "drag", "parameters": {"amp": [0.09640610203187712, 0.0008203615672538268], "beta": 0.575812000126596, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [20], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d20", "label": "X90p_d20", "pulse_shape": "drag", "parameters": {"amp": [0.09295921314329819, 0.0022086257576811154], "beta": -1.7246675679655659, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [21], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d21", "label": "X90p_d21", "pulse_shape": "drag", "parameters": {"amp": [0.09376658074832953, 0.001006489560947705], "beta": -1.6400739464207479, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [22], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d22", "label": "X90p_d22", "pulse_shape": "drag", "parameters": {"amp": [0.09886114906048304, 0.0011157651735984756], "beta": -0.05755884910946901, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [23], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d23", "label": "X90p_d23", "pulse_shape": "drag", "parameters": {"amp": [0.09689616277448652, 0.0006771644177384502], "beta": -0.2832069474435073, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [24], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d24", "label": "X90p_d24", "pulse_shape": "drag", "parameters": {"amp": [0.09824430169742811, 2.0938769591382614e-05], "beta": 0.5770580939428461, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [25], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d25", "label": "X90p_d25", "pulse_shape": "drag", "parameters": {"amp": [0.09786458613438094, 0.0006280241748295421], "beta": -1.314601778495484, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [26], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d26", "label": "X90p_d26", "pulse_shape": "drag", "parameters": {"amp": [0.09398909046616878, 0.002151034801716638], "beta": -2.0899204062928742, "duration": 160, "sigma": 40}}]}, {"name": "u1", "qubits": [0], "sequence": [{"name": "fc", "t0": 0, "ch": "d0", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u1", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [1], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u0", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u4", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u8", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [2], "sequence": [{"name": "fc", "t0": 0, "ch": "d2", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u2", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u6", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [3], "sequence": [{"name": "fc", "t0": 0, "ch": "d3", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u10", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u5", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [4], "sequence": [{"name": "fc", "t0": 0, "ch": "d4", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u13", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u3", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [5], "sequence": [{"name": "fc", "t0": 0, "ch": "d5", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u16", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u7", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [6], "sequence": [{"name": "fc", "t0": 0, "ch": "d6", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u14", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [7], "sequence": [{"name": "fc", "t0": 0, "ch": "d7", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u12", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u20", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u9", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [8], "sequence": [{"name": "fc", "t0": 0, "ch": "d8", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u11", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u19", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u22", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [9], "sequence": [{"name": "fc", "t0": 0, "ch": "d9", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u17", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [10], "sequence": [{"name": "fc", "t0": 0, "ch": "d10", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u15", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u24", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [11], "sequence": [{"name": "fc", "t0": 0, "ch": "d11", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u18", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u29", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [12], "sequence": [{"name": "fc", "t0": 0, "ch": "d12", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u21", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u27", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u32", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [13], "sequence": [{"name": "fc", "t0": 0, "ch": "d13", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u25", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u30", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [14], "sequence": [{"name": "fc", "t0": 0, "ch": "d14", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u23", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u28", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u34", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [15], "sequence": [{"name": "fc", "t0": 0, "ch": "d15", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u26", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u37", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [16], "sequence": [{"name": "fc", "t0": 0, "ch": "d16", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u31", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u40", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [17], "sequence": [{"name": "fc", "t0": 0, "ch": "d17", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u38", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [18], "sequence": [{"name": "fc", "t0": 0, "ch": "d18", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u33", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u36", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u44", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [19], "sequence": [{"name": "fc", "t0": 0, "ch": "d19", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u35", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u43", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u46", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [20], "sequence": [{"name": "fc", "t0": 0, "ch": "d20", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u41", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [21], "sequence": [{"name": "fc", "t0": 0, "ch": "d21", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u39", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u48", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [22], "sequence": [{"name": "fc", "t0": 0, "ch": "d22", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u42", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u52", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [23], "sequence": [{"name": "fc", "t0": 0, "ch": "d23", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u45", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u50", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [24], "sequence": [{"name": "fc", "t0": 0, "ch": "d24", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u49", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u53", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [25], "sequence": [{"name": "fc", "t0": 0, "ch": "d25", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u47", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u51", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u55", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [26], "sequence": [{"name": "fc", "t0": 0, "ch": "d26", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u54", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [0], "sequence": [{"name": "fc", "t0": 0, "ch": "d0", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d0", "label": "Y90p_d0", "pulse_shape": "drag", "parameters": {"amp": [-0.0011024192527703592, 0.09572477894596168], "beta": 0.4899587750398396, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d0", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u1", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u1", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [1], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "Y90p_d1", "pulse_shape": "drag", "parameters": {"amp": [-8.168061701524961e-05, 0.09662612490207494], "beta": -0.0582599488341388, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d1", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u0", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u0", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u4", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u4", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u8", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u8", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [2], "sequence": [{"name": "fc", "t0": 0, "ch": "d2", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "Y90p_d2", "pulse_shape": "drag", "parameters": {"amp": [-0.0011522965336072963, 0.09755670881211916], "beta": -1.0659510853062957, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d2", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u2", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u2", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u6", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u6", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [3], "sequence": [{"name": "fc", "t0": 0, "ch": "d3", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "Y90p_d3", "pulse_shape": "drag", "parameters": {"amp": [-0.0008902006723180706, 0.09711734143625132], "beta": -0.25214660522363813, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d3", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u10", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u10", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u5", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u5", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [4], "sequence": [{"name": "fc", "t0": 0, "ch": "d4", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "Y90p_d4", "pulse_shape": "drag", "parameters": {"amp": [-0.0006494190146448095, 0.09679969868891551], "beta": 0.2138847527435544, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d4", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u13", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u13", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u3", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u3", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [5], "sequence": [{"name": "fc", "t0": 0, "ch": "d5", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "Y90p_d5", "pulse_shape": "drag", "parameters": {"amp": [-0.0004290756100002028, 0.1008143248023259], "beta": 0.22070937017933667, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d5", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u16", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u16", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u7", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u7", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [6], "sequence": [{"name": "fc", "t0": 0, "ch": "d6", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d6", "label": "Y90p_d6", "pulse_shape": "drag", "parameters": {"amp": [-0.00028279277770873435, 0.09436939003022234], "beta": -0.24416915361490749, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d6", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u14", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u14", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [7], "sequence": [{"name": "fc", "t0": 0, "ch": "d7", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d7", "label": "Y90p_d7", "pulse_shape": "drag", "parameters": {"amp": [-0.0006959390260227096, 0.09310343317304517], "beta": -0.0028410035667972722, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d7", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u12", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u12", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u20", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u20", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u9", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u9", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [8], "sequence": [{"name": "fc", "t0": 0, "ch": "d8", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d8", "label": "Y90p_d8", "pulse_shape": "drag", "parameters": {"amp": [-0.001129470996146982, 0.09390903999733272], "beta": -1.1474562445399736, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d8", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u11", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u11", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u19", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u19", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u22", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u22", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [9], "sequence": [{"name": "fc", "t0": 0, "ch": "d9", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d9", "label": "Y90p_d9", "pulse_shape": "drag", "parameters": {"amp": [-0.0010754819293382106, 0.09514812259032954], "beta": 0.7548362760491217, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d9", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u17", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u17", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [10], "sequence": [{"name": "fc", "t0": 0, "ch": "d10", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d10", "label": "Y90p_d10", "pulse_shape": "drag", "parameters": {"amp": [-0.0017861547472037983, 0.0996361990487828], "beta": -1.047701695975587, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d10", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u15", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u15", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u24", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u24", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [11], "sequence": [{"name": "fc", "t0": 0, "ch": "d11", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d11", "label": "Y90p_d11", "pulse_shape": "drag", "parameters": {"amp": [-0.0023819409453860233, 0.09944641170944009], "beta": -1.3247547836429008, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d11", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u18", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u18", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u29", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u29", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [12], "sequence": [{"name": "fc", "t0": 0, "ch": "d12", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d12", "label": "Y90p_d12", "pulse_shape": "drag", "parameters": {"amp": [-0.0008565712850177455, 0.09550084024767264], "beta": 0.07448054414102981, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d12", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u21", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u21", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u27", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u27", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u32", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u32", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [13], "sequence": [{"name": "fc", "t0": 0, "ch": "d13", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d13", "label": "Y90p_d13", "pulse_shape": "drag", "parameters": {"amp": [-0.001468087904329091, 0.09900946893592417], "beta": -1.4690035698318569, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d13", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u25", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u25", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u30", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u30", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [14], "sequence": [{"name": "fc", "t0": 0, "ch": "d14", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d14", "label": "Y90p_d14", "pulse_shape": "drag", "parameters": {"amp": [-0.0004397475628432969, 0.09592160058722701], "beta": 0.002200038205690605, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d14", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u23", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u23", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u28", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u28", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u34", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u34", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [15], "sequence": [{"name": "fc", "t0": 0, "ch": "d15", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d15", "label": "Y90p_d15", "pulse_shape": "drag", "parameters": {"amp": [1.056067020661493e-05, 0.10174132785033968], "beta": -6.618654524167971, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d15", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u26", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u26", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u37", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u37", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [16], "sequence": [{"name": "fc", "t0": 0, "ch": "d16", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d16", "label": "Y90p_d16", "pulse_shape": "drag", "parameters": {"amp": [-0.0004088060892690278, 0.10333726598599466], "beta": -0.32041171339366914, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d16", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u31", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u31", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u40", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u40", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [17], "sequence": [{"name": "fc", "t0": 0, "ch": "d17", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d17", "label": "Y90p_d17", "pulse_shape": "drag", "parameters": {"amp": [-0.0004717028852889936, 0.09690858616111708], "beta": -0.548342068996819, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d17", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u38", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u38", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [18], "sequence": [{"name": "fc", "t0": 0, "ch": "d18", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d18", "label": "Y90p_d18", "pulse_shape": "drag", "parameters": {"amp": [-0.0008004151745721519, 0.09834416675282169], "beta": -0.15530722169216715, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d18", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u33", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u33", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u36", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u36", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u44", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u44", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [19], "sequence": [{"name": "fc", "t0": 0, "ch": "d19", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d19", "label": "Y90p_d19", "pulse_shape": "drag", "parameters": {"amp": [-0.000820361567253816, 0.09640610203187712], "beta": 0.575812000126596, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d19", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u35", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u35", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u43", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u43", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u46", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u46", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [20], "sequence": [{"name": "fc", "t0": 0, "ch": "d20", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d20", "label": "Y90p_d20", "pulse_shape": "drag", "parameters": {"amp": [-0.0022086257576811063, 0.09295921314329819], "beta": -1.7246675679655659, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d20", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u41", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u41", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [21], "sequence": [{"name": "fc", "t0": 0, "ch": "d21", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d21", "label": "Y90p_d21", "pulse_shape": "drag", "parameters": {"amp": [-0.0010064895609476967, 0.09376658074832953], "beta": -1.6400739464207479, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d21", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u39", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u39", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u48", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u48", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [22], "sequence": [{"name": "fc", "t0": 0, "ch": "d22", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d22", "label": "Y90p_d22", "pulse_shape": "drag", "parameters": {"amp": [-0.001115765173598478, 0.09886114906048304], "beta": -0.05755884910946901, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d22", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u42", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u42", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u52", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u52", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [23], "sequence": [{"name": "fc", "t0": 0, "ch": "d23", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d23", "label": "Y90p_d23", "pulse_shape": "drag", "parameters": {"amp": [-0.0006771644177384412, 0.09689616277448652], "beta": -0.2832069474435073, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d23", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u45", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u45", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u50", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u50", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [24], "sequence": [{"name": "fc", "t0": 0, "ch": "d24", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d24", "label": "Y90p_d24", "pulse_shape": "drag", "parameters": {"amp": [-2.0938769591374062e-05, 0.09824430169742811], "beta": 0.5770580939428461, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d24", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u49", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u49", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u53", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u53", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [25], "sequence": [{"name": "fc", "t0": 0, "ch": "d25", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d25", "label": "Y90p_d25", "pulse_shape": "drag", "parameters": {"amp": [-0.0006280241748295342, 0.09786458613438094], "beta": -1.314601778495484, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d25", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u47", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u47", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u51", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u51", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u55", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u55", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [26], "sequence": [{"name": "fc", "t0": 0, "ch": "d26", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d26", "label": "Y90p_d26", "pulse_shape": "drag", "parameters": {"amp": [-0.0021510348017166315, 0.09398909046616878], "beta": -2.0899204062928742, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d26", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u54", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u54", "phase": "-(P0)"}]}, {"name": "u3", "qubits": [0], "sequence": [{"name": "fc", "t0": 0, "ch": "d0", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d0", "label": "X90p_d0", "pulse_shape": "drag", "parameters": {"amp": [0.09572477894596168, 0.0011024192527703698], "beta": 0.4899587750398396, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d0", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d0", "label": "X90m_d0", "pulse_shape": "drag", "parameters": {"amp": [-0.09572477894596168, -0.0011024192527703534], "beta": 0.4899587750398396, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d0", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u1", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u1", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u1", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [1], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "X90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.09662612490207494, 8.168061701526435e-05], "beta": -0.0582599488341388, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d1", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d1", "label": "X90m_d1", "pulse_shape": "drag", "parameters": {"amp": [-0.09662612490207494, -8.168061701526515e-05], "beta": -0.0582599488341388, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d1", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u0", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u0", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u0", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u4", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u4", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u4", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u8", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u8", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u8", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [2], "sequence": [{"name": "fc", "t0": 0, "ch": "d2", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "X90p_d2", "pulse_shape": "drag", "parameters": {"amp": [0.09755670881211916, 0.0011522965336073028], "beta": -1.0659510853062957, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d2", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d2", "label": "X90m_d2", "pulse_shape": "drag", "parameters": {"amp": [-0.09755670881211916, -0.0011522965336072904], "beta": -1.0659510853062957, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d2", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u2", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u2", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u2", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u6", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u6", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u6", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [3], "sequence": [{"name": "fc", "t0": 0, "ch": "d3", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "X90p_d3", "pulse_shape": "drag", "parameters": {"amp": [0.09711734143625132, 0.0008902006723180865], "beta": -0.25214660522363813, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d3", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d3", "label": "X90m_d3", "pulse_shape": "drag", "parameters": {"amp": [-0.09711734143625132, -0.0008902006723180648], "beta": -0.25214660522363813, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d3", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u10", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u10", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u10", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u5", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u5", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u5", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [4], "sequence": [{"name": "fc", "t0": 0, "ch": "d4", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "X90p_d4", "pulse_shape": "drag", "parameters": {"amp": [0.09679969868891551, 0.0006494190146448055], "beta": 0.2138847527435544, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d4", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d4", "label": "X90m_d4", "pulse_shape": "drag", "parameters": {"amp": [-0.09679969868891551, -0.0006494190146447821], "beta": 0.2138847527435544, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d4", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u13", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u13", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u13", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u3", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u3", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u3", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [5], "sequence": [{"name": "fc", "t0": 0, "ch": "d5", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "X90p_d5", "pulse_shape": "drag", "parameters": {"amp": [0.1008143248023259, 0.00042907561000019874], "beta": 0.22070937017933667, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d5", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d5", "label": "X90m_d5", "pulse_shape": "drag", "parameters": {"amp": [-0.1008143248023259, -0.0004290756100001966], "beta": 0.22070937017933667, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d5", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u16", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u16", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u16", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u7", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u7", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u7", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [6], "sequence": [{"name": "fc", "t0": 0, "ch": "d6", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d6", "label": "X90p_d6", "pulse_shape": "drag", "parameters": {"amp": [0.09436939003022234, 0.00028279277770874796], "beta": -0.24416915361490749, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d6", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d6", "label": "X90m_d6", "pulse_shape": "drag", "parameters": {"amp": [-0.09436939003022234, -0.00028279277770874953], "beta": -0.24416915361490749, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d6", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u14", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u14", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u14", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [7], "sequence": [{"name": "fc", "t0": 0, "ch": "d7", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d7", "label": "X90p_d7", "pulse_shape": "drag", "parameters": {"amp": [0.09310343317304517, 0.0006959390260227185], "beta": -0.0028410035667972722, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d7", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d7", "label": "X90m_d7", "pulse_shape": "drag", "parameters": {"amp": [-0.09310343317304517, -0.0006959390260227245], "beta": -0.0028410035667972722, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d7", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u12", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u12", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u12", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u20", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u20", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u20", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u9", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u9", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u9", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [8], "sequence": [{"name": "fc", "t0": 0, "ch": "d8", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d8", "label": "X90p_d8", "pulse_shape": "drag", "parameters": {"amp": [0.09390903999733272, 0.0011294709961469818], "beta": -1.1474562445399736, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d8", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d8", "label": "X90m_d8", "pulse_shape": "drag", "parameters": {"amp": [-0.09390903999733272, -0.0011294709961469555], "beta": -1.1474562445399736, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d8", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u11", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u11", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u11", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u19", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u19", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u19", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u22", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u22", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u22", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [9], "sequence": [{"name": "fc", "t0": 0, "ch": "d9", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d9", "label": "X90p_d9", "pulse_shape": "drag", "parameters": {"amp": [0.09514812259032954, 0.001075481929338223], "beta": 0.7548362760491217, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d9", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d9", "label": "X90m_d9", "pulse_shape": "drag", "parameters": {"amp": [-0.09514812259032954, -0.0010754819293382258], "beta": 0.7548362760491217, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d9", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u17", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u17", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u17", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [10], "sequence": [{"name": "fc", "t0": 0, "ch": "d10", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d10", "label": "X90p_d10", "pulse_shape": "drag", "parameters": {"amp": [0.0996361990487828, 0.0017861547472038065], "beta": -1.047701695975587, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d10", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d10", "label": "X90m_d10", "pulse_shape": "drag", "parameters": {"amp": [-0.0996361990487828, -0.001786154747203792], "beta": -1.047701695975587, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d10", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u15", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u15", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u15", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u24", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u24", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u24", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [11], "sequence": [{"name": "fc", "t0": 0, "ch": "d11", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d11", "label": "X90p_d11", "pulse_shape": "drag", "parameters": {"amp": [0.09944641170944009, 0.0023819409453860203], "beta": -1.3247547836429008, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d11", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d11", "label": "X90m_d11", "pulse_shape": "drag", "parameters": {"amp": [-0.09944641170944009, -0.0023819409453860172], "beta": -1.3247547836429008, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d11", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u18", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u18", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u18", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u29", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u29", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u29", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [12], "sequence": [{"name": "fc", "t0": 0, "ch": "d12", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d12", "label": "X90p_d12", "pulse_shape": "drag", "parameters": {"amp": [0.09550084024767264, 0.0008565712850177551], "beta": 0.07448054414102981, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d12", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d12", "label": "X90m_d12", "pulse_shape": "drag", "parameters": {"amp": [-0.09550084024767264, -0.0008565712850177398], "beta": 0.07448054414102981, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d12", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u21", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u21", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u21", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u27", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u27", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u27", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u32", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u32", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u32", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [13], "sequence": [{"name": "fc", "t0": 0, "ch": "d13", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d13", "label": "X90p_d13", "pulse_shape": "drag", "parameters": {"amp": [0.09900946893592417, 0.0014680879043291015], "beta": -1.4690035698318569, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d13", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d13", "label": "X90m_d13", "pulse_shape": "drag", "parameters": {"amp": [-0.09900946893592417, -0.001468087904329085], "beta": -1.4690035698318569, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d13", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u25", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u25", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u25", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u30", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u30", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u30", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [14], "sequence": [{"name": "fc", "t0": 0, "ch": "d14", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d14", "label": "X90p_d14", "pulse_shape": "drag", "parameters": {"amp": [0.09592160058722701, 0.0004397475628433075], "beta": 0.002200038205690605, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d14", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d14", "label": "X90m_d14", "pulse_shape": "drag", "parameters": {"amp": [-0.09592160058722701, -0.0004397475628432911], "beta": 0.002200038205690605, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d14", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u23", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u23", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u23", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u28", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u28", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u28", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u34", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u34", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u34", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [15], "sequence": [{"name": "fc", "t0": 0, "ch": "d15", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d15", "label": "X90p_d15", "pulse_shape": "drag", "parameters": {"amp": [0.10174132785033968, -1.0560670206599667e-05], "beta": -6.618654524167971, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d15", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d15", "label": "X90m_d15", "pulse_shape": "drag", "parameters": {"amp": [-0.10174132785033968, 1.056067020659857e-05], "beta": -6.618654524167971, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d15", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u26", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u26", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u26", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u37", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u37", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u37", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [16], "sequence": [{"name": "fc", "t0": 0, "ch": "d16", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d16", "label": "X90p_d16", "pulse_shape": "drag", "parameters": {"amp": [0.10333726598599466, 0.00040880608926902533], "beta": -0.32041171339366914, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d16", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d16", "label": "X90m_d16", "pulse_shape": "drag", "parameters": {"amp": [-0.10333726598599466, -0.00040880608926899845], "beta": -0.32041171339366914, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d16", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u31", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u31", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u31", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u40", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u40", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u40", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [17], "sequence": [{"name": "fc", "t0": 0, "ch": "d17", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d17", "label": "X90p_d17", "pulse_shape": "drag", "parameters": {"amp": [0.09690858616111708, 0.00047170288528899554], "beta": -0.548342068996819, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d17", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d17", "label": "X90m_d17", "pulse_shape": "drag", "parameters": {"amp": [-0.09690858616111708, -0.0004717028852889661], "beta": -0.548342068996819, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d17", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u38", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u38", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u38", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [18], "sequence": [{"name": "fc", "t0": 0, "ch": "d18", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d18", "label": "X90p_d18", "pulse_shape": "drag", "parameters": {"amp": [0.09834416675282169, 0.0008004151745721556], "beta": -0.15530722169216715, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d18", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d18", "label": "X90m_d18", "pulse_shape": "drag", "parameters": {"amp": [-0.09834416675282169, -0.0008004151745721241], "beta": -0.15530722169216715, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d18", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u33", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u33", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u33", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u36", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u36", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u36", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u44", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u44", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u44", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [19], "sequence": [{"name": "fc", "t0": 0, "ch": "d19", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d19", "label": "X90p_d19", "pulse_shape": "drag", "parameters": {"amp": [0.09640610203187712, 0.0008203615672538268], "beta": 0.575812000126596, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d19", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d19", "label": "X90m_d19", "pulse_shape": "drag", "parameters": {"amp": [-0.0964061020318771, -0.0008203615672538315], "beta": 0.575812000126596, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d19", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u35", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u35", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u35", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u43", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u43", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u43", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u46", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u46", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u46", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [20], "sequence": [{"name": "fc", "t0": 0, "ch": "d20", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d20", "label": "X90p_d20", "pulse_shape": "drag", "parameters": {"amp": [0.09295921314329819, 0.0022086257576811154], "beta": -1.7246675679655659, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d20", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d20", "label": "X90m_d20", "pulse_shape": "drag", "parameters": {"amp": [-0.09295921314329819, -0.0022086257576811215], "beta": -1.7246675679655659, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d20", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u41", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u41", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u41", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [21], "sequence": [{"name": "fc", "t0": 0, "ch": "d21", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d21", "label": "X90p_d21", "pulse_shape": "drag", "parameters": {"amp": [0.09376658074832953, 0.001006489560947705], "beta": -1.6400739464207479, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d21", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d21", "label": "X90m_d21", "pulse_shape": "drag", "parameters": {"amp": [-0.09376658074832953, -0.0010064895609476908], "beta": -1.6400739464207479, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d21", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u39", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u39", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u39", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u48", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u48", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u48", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [22], "sequence": [{"name": "fc", "t0": 0, "ch": "d22", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d22", "label": "X90p_d22", "pulse_shape": "drag", "parameters": {"amp": [0.09886114906048304, 0.0011157651735984756], "beta": -0.05755884910946901, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d22", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d22", "label": "X90m_d22", "pulse_shape": "drag", "parameters": {"amp": [-0.09886114906048304, -0.0011157651735984717], "beta": -0.05755884910946901, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d22", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u42", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u42", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u42", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u52", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u52", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u52", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [23], "sequence": [{"name": "fc", "t0": 0, "ch": "d23", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d23", "label": "X90p_d23", "pulse_shape": "drag", "parameters": {"amp": [0.09689616277448652, 0.0006771644177384502], "beta": -0.2832069474435073, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d23", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d23", "label": "X90m_d23", "pulse_shape": "drag", "parameters": {"amp": [-0.09689616277448652, -0.0006771644177384354], "beta": -0.2832069474435073, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d23", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u45", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u45", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u45", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u50", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u50", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u50", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [24], "sequence": [{"name": "fc", "t0": 0, "ch": "d24", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d24", "label": "X90p_d24", "pulse_shape": "drag", "parameters": {"amp": [0.09824430169742811, 2.0938769591382614e-05], "beta": 0.5770580939428461, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d24", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d24", "label": "X90m_d24", "pulse_shape": "drag", "parameters": {"amp": [-0.09824430169742811, -2.093876959138986e-05], "beta": 0.5770580939428461, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d24", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u49", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u49", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u49", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u53", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u53", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u53", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [25], "sequence": [{"name": "fc", "t0": 0, "ch": "d25", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d25", "label": "X90p_d25", "pulse_shape": "drag", "parameters": {"amp": [0.09786458613438094, 0.0006280241748295421], "beta": -1.314601778495484, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d25", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d25", "label": "X90m_d25", "pulse_shape": "drag", "parameters": {"amp": [-0.09786458613438094, -0.00062802417482955], "beta": -1.314601778495484, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d25", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u47", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u47", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u47", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u51", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u51", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u51", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u55", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u55", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u55", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [26], "sequence": [{"name": "fc", "t0": 0, "ch": "d26", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d26", "label": "X90p_d26", "pulse_shape": "drag", "parameters": {"amp": [0.09398909046616878, 0.002151034801716638], "beta": -2.0899204062928742, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d26", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d26", "label": "X90m_d26", "pulse_shape": "drag", "parameters": {"amp": [-0.09398909046616878, -0.002151034801716647], "beta": -2.0899204062928742, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d26", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u54", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u54", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u54", "phase": "-(P1)"}]}, {"name": "x", "qubits": [0], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d0", "label": "Xp_d0", "pulse_shape": "drag", "parameters": {"amp": [0.19081278429327633, 0.0], "beta": 0.5264483656320492, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [1], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "Xp_d1", "pulse_shape": "drag", "parameters": {"amp": [0.19293817774193533, 0.0], "beta": -0.10237911583642437, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [2], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "Xp_d2", "pulse_shape": "drag", "parameters": {"amp": [0.19471489458491836, 0.0], "beta": -1.034998684104225, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [3], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "Xp_d3", "pulse_shape": "drag", "parameters": {"amp": [0.1946404898250783, 0.0], "beta": -0.24681235098209547, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [4], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "Xp_d4", "pulse_shape": "drag", "parameters": {"amp": [0.19376497245190957, 0.0], "beta": 0.18211995153669097, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [5], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "Xp_d5", "pulse_shape": "drag", "parameters": {"amp": [0.20130158190430927, 0.0], "beta": 0.166101313448559, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [6], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d6", "label": "Xp_d6", "pulse_shape": "drag", "parameters": {"amp": [0.1883384115073311, 0.0], "beta": -0.27366338596168815, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [7], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d7", "label": "Xp_d7", "pulse_shape": "drag", "parameters": {"amp": [0.18507181875965115, 0.0], "beta": 0.03019880106561139, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [8], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d8", "label": "Xp_d8", "pulse_shape": "drag", "parameters": {"amp": [0.18719181866353848, 0.0], "beta": -1.1515345782361974, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [9], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d9", "label": "Xp_d9", "pulse_shape": "drag", "parameters": {"amp": [0.18993723926224895, 0.0], "beta": 0.7342824516760573, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [10], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d10", "label": "Xp_d10", "pulse_shape": "drag", "parameters": {"amp": [0.19891230941070304, 0.0], "beta": -1.1390524587526276, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [11], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d11", "label": "Xp_d11", "pulse_shape": "drag", "parameters": {"amp": [0.198040507356012, 0.0], "beta": -1.288367915516395, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [12], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d12", "label": "Xp_d12", "pulse_shape": "drag", "parameters": {"amp": [0.19073365557103006, 0.0], "beta": -0.05863475719496897, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [13], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d13", "label": "Xp_d13", "pulse_shape": "drag", "parameters": {"amp": [0.19672997363593536, 0.0], "beta": -1.392111683127624, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [14], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d14", "label": "Xp_d14", "pulse_shape": "drag", "parameters": {"amp": [0.1912961665026656, 0.0], "beta": -0.03530460292261767, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [15], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d15", "label": "Xp_d15", "pulse_shape": "drag", "parameters": {"amp": [0.19170967792837929, 0.0], "beta": -0.9529465826349884, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [16], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d16", "label": "Xp_d16", "pulse_shape": "drag", "parameters": {"amp": [0.20636544512816726, 0.0], "beta": -0.39776413231287217, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [17], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d17", "label": "Xp_d17", "pulse_shape": "drag", "parameters": {"amp": [0.19312211260572965, 0.0], "beta": -0.5621321985576594, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [18], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d18", "label": "Xp_d18", "pulse_shape": "drag", "parameters": {"amp": [0.1958735445702548, 0.0], "beta": -0.1822039739620271, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [19], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d19", "label": "Xp_d19", "pulse_shape": "drag", "parameters": {"amp": [0.19217703406910194, 0.0], "beta": 0.5095158462844451, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [20], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d20", "label": "Xp_d20", "pulse_shape": "drag", "parameters": {"amp": [0.18498003577569092, 0.0], "beta": -1.7271414687836277, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [21], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d21", "label": "Xp_d21", "pulse_shape": "drag", "parameters": {"amp": [0.1874590776415591, 0.0], "beta": -1.6693690574326434, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [22], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d22", "label": "Xp_d22", "pulse_shape": "drag", "parameters": {"amp": [0.19777937555634284, 0.0], "beta": 0.009576850646861874, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [23], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d23", "label": "Xp_d23", "pulse_shape": "drag", "parameters": {"amp": [0.1936553121624749, 0.0], "beta": -0.2584595814569481, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [24], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d24", "label": "Xp_d24", "pulse_shape": "drag", "parameters": {"amp": [0.19566730184242914, 0.0], "beta": 0.5876564795816192, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [25], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d25", "label": "Xp_d25", "pulse_shape": "drag", "parameters": {"amp": [0.19584268451676065, 0.0], "beta": -1.3725638628838261, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [26], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d26", "label": "Xp_d26", "pulse_shape": "drag", "parameters": {"amp": [0.18796921857506915, 0.0], "beta": -2.068601950812954, "duration": 160, "sigma": 40}}]}], "meas_kernel": {"name": "hw_qmfk", "params": {}}, "discriminator": {"name": "hw_qmfk", "params": {}}, "_data": {}} \ No newline at end of file diff --git a/qiskit/providers/fake_provider/backends/auckland/fake_auckland.py b/qiskit/providers/fake_provider/backends/auckland/fake_auckland.py new file mode 100644 index 000000000000..09c87a58da32 --- /dev/null +++ b/qiskit/providers/fake_provider/backends/auckland/fake_auckland.py @@ -0,0 +1,29 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + + +""" +Fake Auckland device (27 qubits). +""" + +import os +from qiskit.providers.fake_provider import fake_backend + + +class FakeAuckland(fake_backend.FakeBackendV2): + """A fake 27 qubit backend.""" + + dirname = os.path.dirname(__file__) + conf_filename = "conf_auckland.json" + props_filename = "props_auckland.json" + defs_filename = "defs_auckland.json" + backend_name = "fake_auckland" diff --git a/qiskit/providers/fake_provider/backends/auckland/props_auckland.json b/qiskit/providers/fake_provider/backends/auckland/props_auckland.json new file mode 100644 index 000000000000..0b421644de01 --- /dev/null +++ b/qiskit/providers/fake_provider/backends/auckland/props_auckland.json @@ -0,0 +1 @@ +{"backend_name": "ibm_auckland", "backend_version": "1.2.13", "last_update_date": "2022-08-07T00:10:30+02:00", "qubits": [[{"date": "2022-08-06T21:30:19+02:00", "name": "T1", "unit": "us", "value": 185.60879452101233}, {"date": "2022-08-06T07:27:35+02:00", "name": "T2", "unit": "us", "value": 203.3873865310345}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.932969834248503}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.3435652782005706}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.00649999999999995}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.0084}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0046000000000000485}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T19:22:39+02:00", "name": "T1", "unit": "us", "value": 191.91778717466812}, {"date": "2022-08-06T07:28:57+02:00", "name": "T2", "unit": "us", "value": 311.0347870409742}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 5.073818830016074}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.3426710646295001}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.010499999999999954}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.0134}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.007600000000000051}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T21:30:19+02:00", "name": "T1", "unit": "us", "value": 146.55965744983163}, {"date": "2022-08-06T07:27:35+02:00", "name": "T2", "unit": "us", "value": 216.16771956277015}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 5.005777359770017}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.3440056310289447}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.015700000000000047}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.016800000000000037}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0146}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T21:32:41+02:00", "name": "T1", "unit": "us", "value": 197.3006533165509}, {"date": "2022-08-06T07:28:57+02:00", "name": "T2", "unit": "us", "value": 226.76692957973333}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.897239837230424}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.3455128327600226}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.020000000000000018}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.02400000000000002}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.016}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T21:30:19+02:00", "name": "T1", "unit": "us", "value": 249.6308619921516}, {"date": "2022-08-06T07:27:35+02:00", "name": "T2", "unit": "us", "value": 248.0231466865006}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.920152233814071}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.3440558017922213}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.007300000000000084}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.009800000000000031}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0048}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T21:30:19+02:00", "name": "T1", "unit": "us", "value": 276.77496590230874}, {"date": "2022-08-06T07:27:35+02:00", "name": "T2", "unit": "us", "value": 112.27738347580612}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.992825135169387}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.34443102179497276}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.008700000000000041}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.007600000000000051}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0098}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T21:30:19+02:00", "name": "T1", "unit": "us", "value": 131.6829224781115}, {"date": "2022-08-06T07:27:35+02:00", "name": "T2", "unit": "us", "value": 185.2576515117535}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 5.0065195107816765}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.3431965556031984}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.014899999999999913}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.0132}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.016599999999999948}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T21:32:41+02:00", "name": "T1", "unit": "us", "value": 99.44557241371763}, {"date": "2022-08-06T07:28:57+02:00", "name": "T2", "unit": "us", "value": 171.31722339071254}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.828442195456001}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.34566026967423547}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.008999999999999897}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.012599999999999945}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0054}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T21:32:41+02:00", "name": "T1", "unit": "us", "value": 138.15027818387014}, {"date": "2022-08-06T07:28:57+02:00", "name": "T2", "unit": "us", "value": 122.83533076305716}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 5.2036046150867605}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.34077965112530917}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.009399999999999964}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.0094}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.009399999999999964}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T21:30:19+02:00", "name": "T1", "unit": "us", "value": 153.59148121269203}, {"date": "2022-08-06T07:27:35+02:00", "name": "T2", "unit": "us", "value": 192.45471985830045}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 5.088380267158975}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.3412242965845351}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.010299999999999976}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.0122}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.008399999999999963}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T21:30:19+02:00", "name": "T1", "unit": "us", "value": 179.9787736398023}, {"date": "2022-08-03T07:54:04+02:00", "name": "T2", "unit": "us", "value": 46.51341198955041}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.726887639697103}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.34685241030963354}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.009399999999999964}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.013599999999999945}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0052}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-05T13:52:20+02:00", "name": "T1", "unit": "us", "value": 151.41445856648025}, {"date": "2022-08-06T07:27:35+02:00", "name": "T2", "unit": "us", "value": 100.75969029485647}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 5.055185858571019}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.3423374130072936}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.014499999999999957}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.023599999999999954}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0054}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T21:32:41+02:00", "name": "T1", "unit": "us", "value": 114.68978131091156}, {"date": "2022-08-06T07:28:57+02:00", "name": "T2", "unit": "us", "value": 209.1126221656678}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.889585658090766}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.3474429778779503}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.007199999999999984}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.0084}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.006000000000000005}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T17:00:19+02:00", "name": "T1", "unit": "us", "value": 204.23387508457154}, {"date": "2022-06-07T08:28:02+02:00", "name": "T2", "unit": "us", "value": 10.858486808918043}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 5.016776423291821}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.3428297303501582}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.006399999999999961}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.0066}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.006199999999999983}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T21:32:41+02:00", "name": "T1", "unit": "us", "value": 179.14556922371932}, {"date": "2022-08-06T07:28:57+02:00", "name": "T2", "unit": "us", "value": 92.65052685276284}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 5.167086880807076}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.3413079687088002}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.00649999999999995}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.008}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0050000000000000044}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T21:30:19+02:00", "name": "T1", "unit": "us", "value": 134.209665178656}, {"date": "2022-07-29T08:15:41+02:00", "name": "T2", "unit": "us", "value": 74.6786761122677}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.988481466676313}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.34203456485082046}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.05700000000000005}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.10740000000000005}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0066}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T21:30:19+02:00", "name": "T1", "unit": "us", "value": 172.29495826057055}, {"date": "2022-08-06T07:27:35+02:00", "name": "T2", "unit": "us", "value": 219.05584870680556}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.969574668860307}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.34363136066648026}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.007200000000000095}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.0076}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.006800000000000028}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T21:30:19+02:00", "name": "T1", "unit": "us", "value": 186.8882012456419}, {"date": "2022-08-06T07:27:35+02:00", "name": "T2", "unit": "us", "value": 211.03371059951337}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 5.02539334125041}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.3424199066052747}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.010099999999999998}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.0142}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.006000000000000005}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T21:32:41+02:00", "name": "T1", "unit": "us", "value": 181.78980530472523}, {"date": "2022-08-06T07:28:57+02:00", "name": "T2", "unit": "us", "value": 198.80635278216934}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.787951526032318}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.34777607699124186}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.01639999999999997}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.021399999999999975}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0114}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T21:32:41+02:00", "name": "T1", "unit": "us", "value": 182.8883125270961}, {"date": "2022-08-04T07:59:20+02:00", "name": "T2", "unit": "us", "value": 22.564604056540958}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.806272301305039}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.34581116459755834}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.009200000000000097}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.011600000000000055}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0068}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T21:30:19+02:00", "name": "T1", "unit": "us", "value": 145.66337349609904}, {"date": "2022-08-06T07:27:35+02:00", "name": "T2", "unit": "us", "value": 176.79652341554552}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.691888528568098}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.35166032018061555}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.02210000000000001}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.0218}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.022399999999999975}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T21:30:19+02:00", "name": "T1", "unit": "us", "value": 116.2662753662322}, {"date": "2022-08-06T07:27:35+02:00", "name": "T2", "unit": "us", "value": 108.42958248537066}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 5.046314506003484}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.34244801821979387}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.00990000000000002}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.01200000000000001}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0078}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T09:30:24+02:00", "name": "T1", "unit": "us", "value": 242.6083425186171}, {"date": "2022-08-06T07:27:35+02:00", "name": "T2", "unit": "us", "value": 66.12712200760211}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.968365240399085}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.3451832999763724}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.015700000000000047}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.024599999999999955}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0068}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T21:32:41+02:00", "name": "T1", "unit": "us", "value": 103.82530742207483}, {"date": "2022-08-06T07:28:57+02:00", "name": "T2", "unit": "us", "value": 62.748852570904276}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.867905152838581}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.34584637274353996}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.01770000000000005}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.019199999999999995}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0162}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T07:25:44+02:00", "name": "T1", "unit": "us", "value": 155.22204569084647}, {"date": "2022-08-06T07:27:35+02:00", "name": "T2", "unit": "us", "value": 42.61517166537873}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.956013065298386}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.3446584404183599}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.13549999999999995}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.0216}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.24939999999999996}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T21:32:41+02:00", "name": "T1", "unit": "us", "value": 169.93583821843941}, {"date": "2022-08-06T07:28:57+02:00", "name": "T2", "unit": "us", "value": 186.44024354957577}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 5.0769938518234765}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.34196963738220926}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.007200000000000095}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.0096}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0048000000000000265}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}], [{"date": "2022-08-06T09:30:24+02:00", "name": "T1", "unit": "us", "value": 224.9609831018356}, {"date": "2022-08-06T07:27:35+02:00", "name": "T2", "unit": "us", "value": 45.092699948234014}, {"date": "2022-08-07T00:10:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.855869381199309}, {"date": "2022-08-07T00:10:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.34517573320543016}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_error", "unit": "", "value": 0.016000000000000014}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.0236}, {"date": "2022-08-06T07:18:58+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.008399999999999963}, {"date": "2022-08-06T07:18:58+02:00", "name": "readout_length", "unit": "ns", "value": 757.3333333333333}]], "gates": [{"qubits": [0], "gate": "id", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00021880026328880683}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id0"}, {"qubits": [1], "gate": "id", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.0002000019740945689}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id1"}, {"qubits": [2], "gate": "id", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.0001872656221529755}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id2"}, {"qubits": [3], "gate": "id", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.00020341034690029013}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id3"}, {"qubits": [4], "gate": "id", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00021170230294224058}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id4"}, {"qubits": [5], "gate": "id", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00016948213969905196}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id5"}, {"qubits": [6], "gate": "id", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.0002812176067168515}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id6"}, {"qubits": [7], "gate": "id", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.0002855185577915047}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id7"}, {"qubits": [8], "gate": "id", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.00025018366287317206}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id8"}, {"qubits": [9], "gate": "id", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.0003270584596140108}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id9"}, {"qubits": [10], "gate": "id", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00028465498652935687}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id10"}, {"qubits": [11], "gate": "id", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00131796903588571}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id11"}, {"qubits": [12], "gate": "id", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.0002234876950418797}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id12"}, {"qubits": [13], "gate": "id", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.0002182982380743669}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id13"}, {"qubits": [14], "gate": "id", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.0002206316947117087}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id14"}, {"qubits": [15], "gate": "id", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.026793251448082877}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id15"}, {"qubits": [16], "gate": "id", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00021054320299783986}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id16"}, {"qubits": [17], "gate": "id", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00043340296749003117}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id17"}, {"qubits": [18], "gate": "id", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.00017900897458784758}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id18"}, {"qubits": [19], "gate": "id", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.00020232469654586624}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id19"}, {"qubits": [20], "gate": "id", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00020406222331752745}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id20"}, {"qubits": [21], "gate": "id", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00020751617629921547}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id21"}, {"qubits": [22], "gate": "id", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.0012604629486799776}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id22"}, {"qubits": [23], "gate": "id", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.0002982221184783166}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id23"}, {"qubits": [24], "gate": "id", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00028897590425227523}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id24"}, {"qubits": [25], "gate": "id", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.0001542809634462201}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id25"}, {"qubits": [26], "gate": "id", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.0006328287104119873}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id26"}, {"qubits": [0], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz0"}, {"qubits": [1], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz1"}, {"qubits": [2], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz2"}, {"qubits": [3], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz3"}, {"qubits": [4], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz4"}, {"qubits": [5], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz5"}, {"qubits": [6], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz6"}, {"qubits": [7], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz7"}, {"qubits": [8], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz8"}, {"qubits": [9], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz9"}, {"qubits": [10], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz10"}, {"qubits": [11], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz11"}, {"qubits": [12], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz12"}, {"qubits": [13], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz13"}, {"qubits": [14], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz14"}, {"qubits": [15], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz15"}, {"qubits": [16], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz16"}, {"qubits": [17], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz17"}, {"qubits": [18], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz18"}, {"qubits": [19], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz19"}, {"qubits": [20], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz20"}, {"qubits": [21], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz21"}, {"qubits": [22], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz22"}, {"qubits": [23], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz23"}, {"qubits": [24], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz24"}, {"qubits": [25], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz25"}, {"qubits": [26], "gate": "rz", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz26"}, {"qubits": [0], "gate": "sx", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00021880026328880683}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx0"}, {"qubits": [1], "gate": "sx", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.0002000019740945689}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx1"}, {"qubits": [2], "gate": "sx", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.0001872656221529755}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx2"}, {"qubits": [3], "gate": "sx", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.00020341034690029013}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx3"}, {"qubits": [4], "gate": "sx", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00021170230294224058}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx4"}, {"qubits": [5], "gate": "sx", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00016948213969905196}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx5"}, {"qubits": [6], "gate": "sx", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.0002812176067168515}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx6"}, {"qubits": [7], "gate": "sx", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.0002855185577915047}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx7"}, {"qubits": [8], "gate": "sx", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.00025018366287317206}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx8"}, {"qubits": [9], "gate": "sx", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.0003270584596140108}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx9"}, {"qubits": [10], "gate": "sx", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00028465498652935687}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx10"}, {"qubits": [11], "gate": "sx", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00131796903588571}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx11"}, {"qubits": [12], "gate": "sx", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.0002234876950418797}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx12"}, {"qubits": [13], "gate": "sx", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.0002182982380743669}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx13"}, {"qubits": [14], "gate": "sx", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.0002206316947117087}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx14"}, {"qubits": [15], "gate": "sx", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.026793251448082877}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx15"}, {"qubits": [16], "gate": "sx", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00021054320299783986}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx16"}, {"qubits": [17], "gate": "sx", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00043340296749003117}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx17"}, {"qubits": [18], "gate": "sx", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.00017900897458784758}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx18"}, {"qubits": [19], "gate": "sx", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.00020232469654586624}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx19"}, {"qubits": [20], "gate": "sx", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00020406222331752745}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx20"}, {"qubits": [21], "gate": "sx", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00020751617629921547}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx21"}, {"qubits": [22], "gate": "sx", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.0012604629486799776}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx22"}, {"qubits": [23], "gate": "sx", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.0002982221184783166}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx23"}, {"qubits": [24], "gate": "sx", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00028897590425227523}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx24"}, {"qubits": [25], "gate": "sx", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.0001542809634462201}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx25"}, {"qubits": [26], "gate": "sx", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.0006328287104119873}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx26"}, {"qubits": [0], "gate": "x", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00021880026328880683}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x0"}, {"qubits": [1], "gate": "x", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.0002000019740945689}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x1"}, {"qubits": [2], "gate": "x", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.0001872656221529755}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x2"}, {"qubits": [3], "gate": "x", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.00020341034690029013}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x3"}, {"qubits": [4], "gate": "x", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00021170230294224058}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x4"}, {"qubits": [5], "gate": "x", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00016948213969905196}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x5"}, {"qubits": [6], "gate": "x", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.0002812176067168515}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x6"}, {"qubits": [7], "gate": "x", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.0002855185577915047}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x7"}, {"qubits": [8], "gate": "x", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.00025018366287317206}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x8"}, {"qubits": [9], "gate": "x", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.0003270584596140108}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x9"}, {"qubits": [10], "gate": "x", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00028465498652935687}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x10"}, {"qubits": [11], "gate": "x", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00131796903588571}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x11"}, {"qubits": [12], "gate": "x", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.0002234876950418797}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x12"}, {"qubits": [13], "gate": "x", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.0002182982380743669}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x13"}, {"qubits": [14], "gate": "x", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.0002206316947117087}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x14"}, {"qubits": [15], "gate": "x", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.026793251448082877}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x15"}, {"qubits": [16], "gate": "x", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00021054320299783986}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x16"}, {"qubits": [17], "gate": "x", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00043340296749003117}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x17"}, {"qubits": [18], "gate": "x", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.00017900897458784758}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x18"}, {"qubits": [19], "gate": "x", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.00020232469654586624}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x19"}, {"qubits": [20], "gate": "x", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00020406222331752745}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x20"}, {"qubits": [21], "gate": "x", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00020751617629921547}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x21"}, {"qubits": [22], "gate": "x", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.0012604629486799776}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x22"}, {"qubits": [23], "gate": "x", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.0002982221184783166}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x23"}, {"qubits": [24], "gate": "x", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.00028897590425227523}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x24"}, {"qubits": [25], "gate": "x", "parameters": [{"date": "2022-08-06T07:34:47+02:00", "name": "gate_error", "unit": "", "value": 0.0001542809634462201}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x25"}, {"qubits": [26], "gate": "x", "parameters": [{"date": "2022-08-06T07:30:09+02:00", "name": "gate_error", "unit": "", "value": 0.0006328287104119873}, {"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x26"}, {"qubits": [25, 26], "gate": "cx", "parameters": [{"date": "2022-08-06T10:43:46+02:00", "name": "gate_error", "unit": "", "value": 0.010888756186592435}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 348.4444444444444}], "name": "cx25_26"}, {"qubits": [26, 25], "gate": "cx", "parameters": [{"date": "2022-08-06T10:43:46+02:00", "name": "gate_error", "unit": "", "value": 0.010888756186592435}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 384}], "name": "cx26_25"}, {"qubits": [25, 24], "gate": "cx", "parameters": [{"date": "2022-08-06T10:37:28+02:00", "name": "gate_error", "unit": "", "value": 0.007778898234206827}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 405.3333333333333}], "name": "cx25_24"}, {"qubits": [24, 25], "gate": "cx", "parameters": [{"date": "2022-08-06T10:37:28+02:00", "name": "gate_error", "unit": "", "value": 0.007778898234206827}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 440.88888888888886}], "name": "cx24_25"}, {"qubits": [21, 23], "gate": "cx", "parameters": [{"date": "2022-08-06T10:31:36+02:00", "name": "gate_error", "unit": "", "value": 0.014200081364299816}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 540.4444444444445}], "name": "cx21_23"}, {"qubits": [23, 21], "gate": "cx", "parameters": [{"date": "2022-08-06T10:31:36+02:00", "name": "gate_error", "unit": "", "value": 0.014200081364299816}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 576}], "name": "cx23_21"}, {"qubits": [18, 15], "gate": "cx", "parameters": [{"date": "2022-08-06T10:25:15+02:00", "name": "gate_error", "unit": "", "value": 0.06852254938140181}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 618.6666666666666}], "name": "cx18_15"}, {"qubits": [15, 18], "gate": "cx", "parameters": [{"date": "2022-08-06T10:25:15+02:00", "name": "gate_error", "unit": "", "value": 0.06852254938140181}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 654.2222222222222}], "name": "cx15_18"}, {"qubits": [14, 16], "gate": "cx", "parameters": [{"date": "2022-08-06T10:14:15+02:00", "name": "gate_error", "unit": "", "value": 0.005105730037337108}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 355.55555555555554}], "name": "cx14_16"}, {"qubits": [16, 14], "gate": "cx", "parameters": [{"date": "2022-08-06T10:14:15+02:00", "name": "gate_error", "unit": "", "value": 0.005105730037337108}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 391.1111111111111}], "name": "cx16_14"}, {"qubits": [22, 19], "gate": "cx", "parameters": [{"date": "2022-08-06T10:07:00+02:00", "name": "gate_error", "unit": "", "value": 0.014797807102267968}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 554.6666666666666}], "name": "cx22_19"}, {"qubits": [19, 22], "gate": "cx", "parameters": [{"date": "2022-08-06T10:07:00+02:00", "name": "gate_error", "unit": "", "value": 0.014797807102267968}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 590.2222222222222}], "name": "cx19_22"}, {"qubits": [13, 12], "gate": "cx", "parameters": [{"date": "2022-08-06T09:54:15+02:00", "name": "gate_error", "unit": "", "value": 0.004913140935051408}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 348.4444444444444}], "name": "cx13_12"}, {"qubits": [12, 13], "gate": "cx", "parameters": [{"date": "2022-08-06T09:54:15+02:00", "name": "gate_error", "unit": "", "value": 0.004913140935051408}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 384}], "name": "cx12_13"}, {"qubits": [23, 24], "gate": "cx", "parameters": [{"date": "2022-08-06T09:54:15+02:00", "name": "gate_error", "unit": "", "value": 0.007393882013382785}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 348.4444444444444}], "name": "cx23_24"}, {"qubits": [24, 23], "gate": "cx", "parameters": [{"date": "2022-08-06T09:54:15+02:00", "name": "gate_error", "unit": "", "value": 0.007393882013382785}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 384}], "name": "cx24_23"}, {"qubits": [10, 12], "gate": "cx", "parameters": [{"date": "2022-08-06T09:46:31+02:00", "name": "gate_error", "unit": "", "value": 0.008323088754978475}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 704}], "name": "cx10_12"}, {"qubits": [12, 10], "gate": "cx", "parameters": [{"date": "2022-08-06T09:46:31+02:00", "name": "gate_error", "unit": "", "value": 0.008323088754978475}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 739.5555555555555}], "name": "cx12_10"}, {"qubits": [6, 7], "gate": "cx", "parameters": [{"date": "2022-08-06T09:33:55+02:00", "name": "gate_error", "unit": "", "value": 0.015428428235981312}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 640}], "name": "cx6_7"}, {"qubits": [7, 6], "gate": "cx", "parameters": [{"date": "2022-08-06T09:33:55+02:00", "name": "gate_error", "unit": "", "value": 0.015428428235981312}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 675.5555555555555}], "name": "cx7_6"}, {"qubits": [16, 19], "gate": "cx", "parameters": [{"date": "2022-08-06T09:33:55+02:00", "name": "gate_error", "unit": "", "value": 0.00923554491186529}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 711.1111111111111}], "name": "cx16_19"}, {"qubits": [19, 16], "gate": "cx", "parameters": [{"date": "2022-08-06T09:33:55+02:00", "name": "gate_error", "unit": "", "value": 0.00923554491186529}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 746.6666666666666}], "name": "cx19_16"}, {"qubits": [4, 1], "gate": "cx", "parameters": [{"date": "2022-08-06T09:17:08+02:00", "name": "gate_error", "unit": "", "value": 0.009169078593236957}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 462.2222222222222}], "name": "cx4_1"}, {"qubits": [1, 4], "gate": "cx", "parameters": [{"date": "2022-08-06T09:17:08+02:00", "name": "gate_error", "unit": "", "value": 0.009169078593236957}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 497.77777777777777}], "name": "cx1_4"}, {"qubits": [9, 8], "gate": "cx", "parameters": [{"date": "2022-08-06T09:17:08+02:00", "name": "gate_error", "unit": "", "value": 0.007893663920108651}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 469.3333333333333}], "name": "cx9_8"}, {"qubits": [8, 9], "gate": "cx", "parameters": [{"date": "2022-08-06T09:17:08+02:00", "name": "gate_error", "unit": "", "value": 0.007893663920108651}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 504.88888888888886}], "name": "cx8_9"}, {"qubits": [17, 18], "gate": "cx", "parameters": [{"date": "2022-08-06T09:17:08+02:00", "name": "gate_error", "unit": "", "value": 0.012481714175816533}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 440.88888888888886}], "name": "cx17_18"}, {"qubits": [18, 17], "gate": "cx", "parameters": [{"date": "2022-08-06T09:17:08+02:00", "name": "gate_error", "unit": "", "value": 0.012481714175816533}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 476.4444444444444}], "name": "cx18_17"}, {"qubits": [19, 20], "gate": "cx", "parameters": [{"date": "2022-08-06T09:17:08+02:00", "name": "gate_error", "unit": "", "value": 0.006258095227613225}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 398.2222222222222}], "name": "cx19_20"}, {"qubits": [20, 19], "gate": "cx", "parameters": [{"date": "2022-08-06T09:17:08+02:00", "name": "gate_error", "unit": "", "value": 0.006258095227613225}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 433.77777777777777}], "name": "cx20_19"}, {"qubits": [8, 11], "gate": "cx", "parameters": [{"date": "2022-08-06T09:10:46+02:00", "name": "gate_error", "unit": "", "value": 0.013458530315682754}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 369.77777777777777}], "name": "cx8_11"}, {"qubits": [11, 8], "gate": "cx", "parameters": [{"date": "2022-08-06T09:10:46+02:00", "name": "gate_error", "unit": "", "value": 0.013458530315682754}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 405.3333333333333}], "name": "cx11_8"}, {"qubits": [22, 25], "gate": "cx", "parameters": [{"date": "2022-08-06T09:10:46+02:00", "name": "gate_error", "unit": "", "value": 0.011122577530485622}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 426.66666666666663}], "name": "cx22_25"}, {"qubits": [25, 22], "gate": "cx", "parameters": [{"date": "2022-08-06T09:10:46+02:00", "name": "gate_error", "unit": "", "value": 0.011122577530485622}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 462.2222222222222}], "name": "cx25_22"}, {"qubits": [14, 11], "gate": "cx", "parameters": [{"date": "2022-08-06T09:03:56+02:00", "name": "gate_error", "unit": "", "value": 0.010116150730881762}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 334.22222222222223}], "name": "cx14_11"}, {"qubits": [11, 14], "gate": "cx", "parameters": [{"date": "2022-08-06T09:03:56+02:00", "name": "gate_error", "unit": "", "value": 0.010116150730881762}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 369.77777777777777}], "name": "cx11_14"}, {"qubits": [21, 18], "gate": "cx", "parameters": [{"date": "2022-08-06T09:03:56+02:00", "name": "gate_error", "unit": "", "value": 0.00675388847150174}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 355.55555555555554}], "name": "cx21_18"}, {"qubits": [18, 21], "gate": "cx", "parameters": [{"date": "2022-08-06T09:03:56+02:00", "name": "gate_error", "unit": "", "value": 0.00675388847150174}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 391.1111111111111}], "name": "cx18_21"}, {"qubits": [0, 1], "gate": "cx", "parameters": [{"date": "2022-08-06T08:57:36+02:00", "name": "gate_error", "unit": "", "value": 0.013043220746233264}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 1528.888888888889}], "name": "cx0_1"}, {"qubits": [1, 0], "gate": "cx", "parameters": [{"date": "2022-08-06T08:57:36+02:00", "name": "gate_error", "unit": "", "value": 0.013043220746233264}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 1564.4444444444443}], "name": "cx1_0"}, {"qubits": [4, 7], "gate": "cx", "parameters": [{"date": "2022-08-06T08:51:10+02:00", "name": "gate_error", "unit": "", "value": 0.00557549019355702}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 195.55555555555554}], "name": "cx4_7"}, {"qubits": [7, 4], "gate": "cx", "parameters": [{"date": "2022-08-06T08:51:10+02:00", "name": "gate_error", "unit": "", "value": 0.00557549019355702}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 266.66666666666663}], "name": "cx7_4"}, {"qubits": [14, 13], "gate": "cx", "parameters": [{"date": "2022-08-06T08:40:32+02:00", "name": "gate_error", "unit": "", "value": 0.005516508431138684}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 359.1111111111111}], "name": "cx14_13"}, {"qubits": [13, 14], "gate": "cx", "parameters": [{"date": "2022-08-06T08:40:32+02:00", "name": "gate_error", "unit": "", "value": 0.005516508431138684}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 430.2222222222222}], "name": "cx13_14"}, {"qubits": [7, 10], "gate": "cx", "parameters": [{"date": "2022-08-06T08:29:32+02:00", "name": "gate_error", "unit": "", "value": 0.008420175217078107}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 284.44444444444446}], "name": "cx7_10"}, {"qubits": [10, 7], "gate": "cx", "parameters": [{"date": "2022-08-06T08:29:32+02:00", "name": "gate_error", "unit": "", "value": 0.008420175217078107}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 355.55555555555554}], "name": "cx10_7"}, {"qubits": [8, 5], "gate": "cx", "parameters": [{"date": "2022-08-06T08:29:32+02:00", "name": "gate_error", "unit": "", "value": 0.005065589309312529}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 252.44444444444443}], "name": "cx8_5"}, {"qubits": [5, 8], "gate": "cx", "parameters": [{"date": "2022-08-06T08:29:32+02:00", "name": "gate_error", "unit": "", "value": 0.005065589309312529}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 323.55555555555554}], "name": "cx5_8"}, {"qubits": [5, 3], "gate": "cx", "parameters": [{"date": "2022-08-06T08:15:32+02:00", "name": "gate_error", "unit": "", "value": 0.005391639678133248}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 206.2222222222222}], "name": "cx5_3"}, {"qubits": [3, 5], "gate": "cx", "parameters": [{"date": "2022-08-06T08:15:32+02:00", "name": "gate_error", "unit": "", "value": 0.005391639678133248}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 277.3333333333333}], "name": "cx3_5"}, {"qubits": [2, 3], "gate": "cx", "parameters": [{"date": "2022-08-06T08:03:44+02:00", "name": "gate_error", "unit": "", "value": 0.003958146171840371}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 224}], "name": "cx2_3"}, {"qubits": [3, 2], "gate": "cx", "parameters": [{"date": "2022-08-06T08:03:44+02:00", "name": "gate_error", "unit": "", "value": 0.003958146171840371}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 295.1111111111111}], "name": "cx3_2"}, {"qubits": [1, 2], "gate": "cx", "parameters": [{"date": "2022-08-06T07:48:44+02:00", "name": "gate_error", "unit": "", "value": 0.006523661030017586}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 170.66666666666666}], "name": "cx1_2"}, {"qubits": [2, 1], "gate": "cx", "parameters": [{"date": "2022-08-06T07:48:44+02:00", "name": "gate_error", "unit": "", "value": 0.006523661030017586}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 241.77777777777777}], "name": "cx2_1"}, {"qubits": [15, 12], "gate": "cx", "parameters": [{"date": "2022-08-05T16:44:14+02:00", "name": "gate_error", "unit": "", "value": 0.10503976808758601}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 554.6666666666666}], "name": "cx15_12"}, {"qubits": [12, 15], "gate": "cx", "parameters": [{"date": "2022-08-05T16:44:14+02:00", "name": "gate_error", "unit": "", "value": 0.10503976808758601}, {"date": "2022-08-04T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 590.2222222222222}], "name": "cx12_15"}, {"qubits": [0], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 917.3333333333333}], "name": "reset0"}, {"qubits": [1], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 917.3333333333333}], "name": "reset1"}, {"qubits": [2], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 917.3333333333333}], "name": "reset2"}, {"qubits": [3], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 970.6666666666666}], "name": "reset3"}, {"qubits": [4], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 917.3333333333333}], "name": "reset4"}, {"qubits": [5], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 917.3333333333333}], "name": "reset5"}, {"qubits": [6], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 917.3333333333333}], "name": "reset6"}, {"qubits": [7], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 917.3333333333333}], "name": "reset7"}, {"qubits": [8], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 1059.5555555555554}], "name": "reset8"}, {"qubits": [9], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 917.3333333333333}], "name": "reset9"}, {"qubits": [10], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 970.6666666666666}], "name": "reset10"}, {"qubits": [11], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 1059.5555555555554}], "name": "reset11"}, {"qubits": [12], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 917.3333333333333}], "name": "reset12"}, {"qubits": [13], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 917.3333333333333}], "name": "reset13"}, {"qubits": [14], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 1059.5555555555554}], "name": "reset14"}, {"qubits": [15], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 917.3333333333333}], "name": "reset15"}, {"qubits": [16], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 917.3333333333333}], "name": "reset16"}, {"qubits": [17], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 917.3333333333333}], "name": "reset17"}, {"qubits": [18], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 917.3333333333333}], "name": "reset18"}, {"qubits": [19], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 917.3333333333333}], "name": "reset19"}, {"qubits": [20], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 917.3333333333333}], "name": "reset20"}, {"qubits": [21], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 917.3333333333333}], "name": "reset21"}, {"qubits": [22], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 917.3333333333333}], "name": "reset22"}, {"qubits": [23], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 917.3333333333333}], "name": "reset23"}, {"qubits": [24], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 917.3333333333333}], "name": "reset24"}, {"qubits": [25], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 917.3333333333333}], "name": "reset25"}, {"qubits": [26], "gate": "reset", "parameters": [{"date": "2022-08-07T00:10:30+02:00", "name": "gate_length", "unit": "ns", "value": 917.3333333333333}], "name": "reset26"}], "general": [{"date": "2022-08-07T00:10:30+02:00", "name": "jq_1213", "unit": "GHz", "value": 0.0019456069245372082}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_1213", "unit": "GHz", "value": -5.1108690530230645e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_1416", "unit": "GHz", "value": 0.0019590447098561145}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_1416", "unit": "GHz", "value": -6.781082617438306e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_89", "unit": "GHz", "value": 0.0020425676371384326}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_89", "unit": "GHz", "value": -5.535859802255023e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_1718", "unit": "GHz", "value": 0.0019233002853951161}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_1718", "unit": "GHz", "value": -8.283239041462075e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_1114", "unit": "GHz", "value": 0.0019681191833032033}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_1114", "unit": "GHz", "value": -5.092067320402246e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_1012", "unit": "GHz", "value": 0.0018592347365043993}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_1012", "unit": "GHz", "value": -5.0866169999292825e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_1314", "unit": "GHz", "value": 0.0020467432323753006}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_1314", "unit": "GHz", "value": -6.1015373100156786e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_710", "unit": "GHz", "value": 0.001791947317750806}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_710", "unit": "GHz", "value": -4.054880500567972e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_1619", "unit": "GHz", "value": 0.0018718484751334308}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_1619", "unit": "GHz", "value": -5.2477218850361653e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_1215", "unit": "GHz", "value": 0.001774420794841084}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_1215", "unit": "GHz", "value": -3.99657461548514e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_2225", "unit": "GHz", "value": 0.001947306694963195}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_2225", "unit": "GHz", "value": -4.92765864178536e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_2324", "unit": "GHz", "value": 0.0019112776403240569}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_2324", "unit": "GHz", "value": -4.553161628440803e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_811", "unit": "GHz", "value": 0.001997752505569637}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_811", "unit": "GHz", "value": -5.790745444119757e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_01", "unit": "GHz", "value": 0.0019646143477702613}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_01", "unit": "GHz", "value": -5.433221318825766e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_12", "unit": "GHz", "value": 0.001967722822148077}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_12", "unit": "GHz", "value": -4.705070763885265e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_1920", "unit": "GHz", "value": 0.0017299974630144888}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_1920", "unit": "GHz", "value": -3.9014338931659705e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_67", "unit": "GHz", "value": 0.001926536976033481}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_67", "unit": "GHz", "value": -5.907208567885985e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_2425", "unit": "GHz", "value": 0.001995899614424734}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_2425", "unit": "GHz", "value": -5.322129974934471e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_1821", "unit": "GHz", "value": 0.001962812189755419}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_1821", "unit": "GHz", "value": -0.00010499641136639357}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_47", "unit": "GHz", "value": 0.0019226903713424417}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_47", "unit": "GHz", "value": -4.6079630885084277e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_35", "unit": "GHz", "value": 0.0019750025537801693}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_35", "unit": "GHz", "value": -4.923926994356618e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_2123", "unit": "GHz", "value": 0.001980143956842632}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_2123", "unit": "GHz", "value": -6.303225338278013e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_58", "unit": "GHz", "value": 0.002068380265393128}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_58", "unit": "GHz", "value": -8.160504170965463e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_14", "unit": "GHz", "value": 0.0019062758023137428}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_14", "unit": "GHz", "value": -5.318233950755198e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_23", "unit": "GHz", "value": 0.0019404825805489961}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_23", "unit": "GHz", "value": -4.8494320189534805e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_1922", "unit": "GHz", "value": 0.001933795780524435}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_1922", "unit": "GHz", "value": -5.6072449818797066e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_1518", "unit": "GHz", "value": 0.0018542680082031012}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_1518", "unit": "GHz", "value": -6.103480090767763e-05}, {"date": "2022-08-07T00:10:30+02:00", "name": "jq_2526", "unit": "GHz", "value": 0.0019338160739984253}, {"date": "2022-08-07T00:10:30+02:00", "name": "zz_2526", "unit": "GHz", "value": -7.504907986793877e-05}]} \ No newline at end of file diff --git a/qiskit/algorithms/evolvers/variational/solvers/ode/__init__.py b/qiskit/providers/fake_provider/backends/geneva/__init__.py similarity index 81% rename from qiskit/algorithms/evolvers/variational/solvers/ode/__init__.py rename to qiskit/providers/fake_provider/backends/geneva/__init__.py index 8fbaef6f85d1..b9b83d71b340 100644 --- a/qiskit/algorithms/evolvers/variational/solvers/ode/__init__.py +++ b/qiskit/providers/fake_provider/backends/geneva/__init__.py @@ -1,6 +1,6 @@ # This code is part of Qiskit. # -# (C) Copyright IBM 2021, 2022. +# (C) Copyright IBM 2022. # # This code is licensed under the Apache License, Version 2.0. You may # obtain a copy of this license in the LICENSE.txt file in the root directory @@ -10,4 +10,6 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -"""ODE Solvers""" +"""Fake Geneva device (27 qubits)""" + +from .fake_geneva import FakeGeneva diff --git a/qiskit/providers/fake_provider/backends/geneva/conf_geneva.json b/qiskit/providers/fake_provider/backends/geneva/conf_geneva.json new file mode 100644 index 000000000000..93a2c507389f --- /dev/null +++ b/qiskit/providers/fake_provider/backends/geneva/conf_geneva.json @@ -0,0 +1 @@ +{"backend_name": "ibm_geneva", "backend_version": "1.0.0", "n_qubits": 27, "basis_gates": ["id", "rz", "sx", "x", "cx", "reset"], "gates": [{"name": "id", "parameters": [], "qasm_def": "gate id q { U(0, 0, 0) q; }", "coupling_map": [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20], [21], [22], [23], [24], [25], [26]]}, {"name": "rz", "parameters": ["theta"], "qasm_def": "gate rz(theta) q { U(0, 0, theta) q; }", "coupling_map": [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20], [21], [22], [23], [24], [25], [26]]}, {"name": "sx", "parameters": [], "qasm_def": "gate sx q { U(pi/2, 3*pi/2, pi/2) q; }", "coupling_map": [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20], [21], [22], [23], [24], [25], [26]]}, {"name": "x", "parameters": [], "qasm_def": "gate x q { U(pi, 0, pi) q; }", "coupling_map": [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20], [21], [22], [23], [24], [25], [26]]}, {"name": "cx", "parameters": [], "qasm_def": "gate cx q0, q1 { CX q0, q1; }", "coupling_map": [[0, 1], [1, 0], [1, 2], [1, 4], [2, 1], [2, 3], [3, 2], [3, 5], [4, 1], [4, 7], [5, 3], [5, 8], [6, 7], [7, 4], [7, 6], [7, 10], [8, 5], [8, 9], [8, 11], [9, 8], [10, 7], [10, 12], [11, 8], [11, 14], [12, 10], [12, 13], [12, 15], [13, 12], [13, 14], [14, 11], [14, 13], [14, 16], [15, 12], [15, 18], [16, 14], [16, 19], [17, 18], [18, 15], [18, 17], [18, 21], [19, 16], [19, 20], [19, 22], [20, 19], [21, 18], [21, 23], [22, 19], [22, 25], [23, 21], [23, 24], [24, 23], [24, 25], [25, 22], [25, 24], [25, 26], [26, 25]]}, {"name": "reset", "parameters": null, "qasm_def": null}], "local": false, "simulator": false, "conditional": false, "open_pulse": true, "memory": true, "max_shots": 100000, "coupling_map": [[0, 1], [1, 0], [1, 2], [1, 4], [2, 1], [2, 3], [3, 2], [3, 5], [4, 1], [4, 7], [5, 3], [5, 8], [6, 7], [7, 4], [7, 6], [7, 10], [8, 5], [8, 9], [8, 11], [9, 8], [10, 7], [10, 12], [11, 8], [11, 14], [12, 10], [12, 13], [12, 15], [13, 12], [13, 14], [14, 11], [14, 13], [14, 16], [15, 12], [15, 18], [16, 14], [16, 19], [17, 18], [18, 15], [18, 17], [18, 21], [19, 16], [19, 20], [19, 22], [20, 19], [21, 18], [21, 23], [22, 19], [22, 25], [23, 21], [23, 24], [24, 23], [24, 25], [25, 22], [25, 24], [25, 26], [26, 25]], "dynamic_reprate_enabled": true, "supported_instructions": ["sx", "u2", "delay", "rz", "u1", "u3", "x", "play", "reset", "cx", "id", "acquire", "setf", "shiftf", "measure"], "rep_delay_range": [0.0, 500.0], "default_rep_delay": 250.0, "max_experiments": 300, "sample_name": "family: Falcon, revision: 8", "n_registers": 1, "credits_required": true, "online_date": "2022-03-25T04:00:00+00:00", "description": "27 qubit device", "dt": 0.2222222222222222, "dtm": 0.2222222222222222, "processor_type": {"family": "Falcon", "revision": 8}, "parametric_pulses": ["gaussian", "gaussian_square", "drag", "constant"], "allow_q_object": true, "clops": 1950, "measure_esp_enabled": false, "multi_meas_enabled": true, "parallel_compilation": false, "quantum_volume": 32, "qubit_channel_mapping": [["u0", "m0", "u1", "d0"], ["u2", "u8", "d1", "u1", "u3", "u0", "m1", "u4"], ["u2", "u5", "u6", "d2", "m2", "u4"], ["u5", "u6", "u7", "u10", "m3", "d3"], ["m4", "u8", "u3", "u13", "u9", "d4"], ["u16", "d5", "u7", "u10", "u11", "m5"], ["u14", "m6", "u12", "d6"], ["u14", "u12", "m7", "u15", "u13", "d7", "u9", "u20"], ["u16", "u17", "u22", "m8", "u19", "u18", "u11", "d8"], ["u19", "m9", "u17", "d9"], ["u21", "u15", "d10", "u24", "m10", "u20"], ["u23", "m11", "u18", "u22", "d11", "u29"], ["m12", "u21", "u32", "d12", "u26", "u25", "u27", "u24"], ["u30", "m13", "u25", "u28", "u27", "d13"], ["u23", "u30", "u31", "u34", "m14", "u28", "d14", "u29"], ["d15", "u32", "m15", "u26", "u33", "u37"], ["u31", "u34", "u35", "d16", "m16", "u40"], ["u36", "m17", "u38", "d17"], ["d18", "u38", "u36", "u33", "u39", "u37", "u44", "m18"], ["u46", "u35", "d19", "u42", "u40", "m19", "u43", "u41"], ["m20", "d20", "u43", "u41"], ["u45", "d21", "u39", "u44", "m21", "u48"], ["u46", "m22", "d22", "u42", "u47", "u52"], ["u45", "d23", "u49", "m23", "u50", "u48"], ["u49", "u53", "u51", "d24", "u50", "m24"], ["u53", "u51", "u54", "u47", "m25", "d25", "u52", "u55"], ["u54", "d26", "m26", "u55"]], "supported_features": ["qobj"], "timing_constraints": {"acquire_alignment": 16, "granularity": 16, "min_length": 64, "pulse_alignment": 16}, "uchannels_enabled": true, "url": "None", "input_allowed": ["job", "runtime"], "allow_object_storage": true, "pulse_num_channels": 9, "pulse_num_qubits": 3, "live_data": false, "n_uchannels": 56, "u_channel_lo": [[{"q": 1, "scale": [1.0, 0.0]}], [{"q": 0, "scale": [1.0, 0.0]}], [{"q": 2, "scale": [1.0, 0.0]}], [{"q": 4, "scale": [1.0, 0.0]}], [{"q": 1, "scale": [1.0, 0.0]}], [{"q": 3, "scale": [1.0, 0.0]}], [{"q": 2, "scale": [1.0, 0.0]}], [{"q": 5, "scale": [1.0, 0.0]}], [{"q": 1, "scale": [1.0, 0.0]}], [{"q": 7, "scale": [1.0, 0.0]}], [{"q": 3, "scale": [1.0, 0.0]}], [{"q": 8, "scale": [1.0, 0.0]}], [{"q": 7, "scale": [1.0, 0.0]}], [{"q": 4, "scale": [1.0, 0.0]}], [{"q": 6, "scale": [1.0, 0.0]}], [{"q": 10, "scale": [1.0, 0.0]}], [{"q": 5, "scale": [1.0, 0.0]}], [{"q": 9, "scale": [1.0, 0.0]}], [{"q": 11, "scale": [1.0, 0.0]}], [{"q": 8, "scale": [1.0, 0.0]}], [{"q": 7, "scale": [1.0, 0.0]}], [{"q": 12, "scale": [1.0, 0.0]}], [{"q": 8, "scale": [1.0, 0.0]}], [{"q": 14, "scale": [1.0, 0.0]}], [{"q": 10, "scale": [1.0, 0.0]}], [{"q": 13, "scale": [1.0, 0.0]}], [{"q": 15, "scale": [1.0, 0.0]}], [{"q": 12, "scale": [1.0, 0.0]}], [{"q": 14, "scale": [1.0, 0.0]}], [{"q": 11, "scale": [1.0, 0.0]}], [{"q": 13, "scale": [1.0, 0.0]}], [{"q": 16, "scale": [1.0, 0.0]}], [{"q": 12, "scale": [1.0, 0.0]}], [{"q": 18, "scale": [1.0, 0.0]}], [{"q": 14, "scale": [1.0, 0.0]}], [{"q": 19, "scale": [1.0, 0.0]}], [{"q": 18, "scale": [1.0, 0.0]}], [{"q": 15, "scale": [1.0, 0.0]}], [{"q": 17, "scale": [1.0, 0.0]}], [{"q": 21, "scale": [1.0, 0.0]}], [{"q": 16, "scale": [1.0, 0.0]}], [{"q": 20, "scale": [1.0, 0.0]}], [{"q": 22, "scale": [1.0, 0.0]}], [{"q": 19, "scale": [1.0, 0.0]}], [{"q": 18, "scale": [1.0, 0.0]}], [{"q": 23, "scale": [1.0, 0.0]}], [{"q": 19, "scale": [1.0, 0.0]}], [{"q": 25, "scale": [1.0, 0.0]}], [{"q": 21, "scale": [1.0, 0.0]}], [{"q": 24, "scale": [1.0, 0.0]}], [{"q": 23, "scale": [1.0, 0.0]}], [{"q": 25, "scale": [1.0, 0.0]}], [{"q": 22, "scale": [1.0, 0.0]}], [{"q": 24, "scale": [1.0, 0.0]}], [{"q": 26, "scale": [1.0, 0.0]}], [{"q": 25, "scale": [1.0, 0.0]}]], "meas_levels": [1, 2], "qubit_lo_range": [[4.325743015579376, 5.325743015579376], [4.172871363094885, 5.172871363094885], [4.0806985233664514, 5.080698523366451], [4.174620357115893, 5.174620357115893], [4.23759625812113, 5.23759625812113], [4.299251490561833, 5.299251490561833], [4.379485498491239, 5.379485498491239], [4.118011385738175, 5.118011385738175], [4.353242154753866, 5.353242154753866], [4.258986716382243, 5.258986716382243], [4.35903608247861, 5.35903608247861], [4.199123486138225, 5.199123486138225], [4.054282232918502, 5.054282232918502], [4.1779862119008, 5.1779862119008], [4.125329967321016, 5.125329967321017], [4.161899932759396, 5.161899932759396], [4.0906289547318675, 5.090628954731868], [4.110081243925168, 5.110081243925168], [4.195555575529053, 5.1955555755290534], [4.2080983138938945, 5.2080983138938945], [4.330157407178421, 5.330157407178421], [4.050140122828701, 5.050140122828702], [4.1289346019454385, 5.1289346019454385], [4.127963768036649, 5.127963768036649], [4.17896659339771, 5.1789665933977105], [4.087717907812707, 5.087717907812707], [4.169893984900796, 5.169893984900796]], "meas_lo_range": [[6.643967359, 7.643967359], [6.77005636134472, 7.77005636134472], [6.657170563, 7.657170563], [6.779815255000001, 7.779815255000001], [6.726998877000001, 7.726998877000001], [6.728239454000001, 7.728239454000001], [6.852175679, 7.852175679], [6.6181997500000005, 7.6181997500000005], [6.614026952000001, 7.614026952000001], [6.8280825300000005, 7.8280825300000005], [6.675449583000001, 7.675449583000001], [6.732633966000001, 7.732633966000001], [6.861255517, 7.861255517000001], [6.746867234000001, 7.746867234000001], [6.789763409000001, 7.789763409000001], [6.8274533360000005, 7.8274533360000005], [6.687732018, 7.687732018], [6.899991996000001, 7.899991996000001], [6.643169945, 7.643169945], [6.618476778000001, 7.618476778000001], [6.863684474, 7.863684474], [6.7894360990000004, 7.7894360990000004], [6.767483029, 7.767483029], [6.864085546, 7.864085546], [6.71469172, 7.71469172], [6.833297521, 7.833297521], [6.715242262, 7.715242262]], "meas_kernels": ["hw_qmfk"], "discriminators": ["quadratic_discriminator", "linear_discriminator", "hw_qmfk"], "rep_times": [1000.0], "meas_map": [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]], "acquisition_latency": [], "conditional_latency": [], "hamiltonian": {"description": "Qubits are modeled as Duffing oscillators. In this case, the system includes higher energy states, i.e. not just |0> and |1>. The Pauli operators are generalized via the following set of transformations:\n\n$(\\mathbb{I}-\\sigma_{i}^z)/2 \\rightarrow O_i \\equiv b^\\dagger_{i} b_{i}$,\n\n$\\sigma_{+} \\rightarrow b^\\dagger$,\n\n$\\sigma_{-} \\rightarrow b$,\n\n$\\sigma_{i}^X \\rightarrow b^\\dagger_{i} + b_{i}$.\n\nQubits are coupled through resonator buses. The provided Hamiltonian has been projected into the zero excitation subspace of the resonator buses leading to an effective qubit-qubit flip-flop interaction. The qubit resonance frequencies in the Hamiltonian are the cavity dressed frequencies and not exactly what is returned by the backend defaults, which also includes the dressing due to the qubit-qubit interactions.\n\nQuantities are returned in angular frequencies, with units 2*pi*GHz.\n\nWARNING: Currently not all system Hamiltonian information is available to the public, missing values have been replaced with 0.\n", "h_latex": "\\begin{align} \\mathcal{H}/\\hbar = & \\sum_{i=0}^{26}\\left(\\frac{\\omega_{q,i}}{2}(\\mathbb{I}-\\sigma_i^{z})+\\frac{\\Delta_{i}}{2}(O_i^2-O_i)+\\Omega_{d,i}D_i(t)\\sigma_i^{X}\\right) \\\\ & + J_{12,13}(\\sigma_{12}^{+}\\sigma_{13}^{-}+\\sigma_{12}^{-}\\sigma_{13}^{+}) + J_{14,16}(\\sigma_{14}^{+}\\sigma_{16}^{-}+\\sigma_{14}^{-}\\sigma_{16}^{+}) + J_{8,9}(\\sigma_{8}^{+}\\sigma_{9}^{-}+\\sigma_{8}^{-}\\sigma_{9}^{+}) + J_{17,18}(\\sigma_{17}^{+}\\sigma_{18}^{-}+\\sigma_{17}^{-}\\sigma_{18}^{+}) \\\\ & + J_{11,14}(\\sigma_{11}^{+}\\sigma_{14}^{-}+\\sigma_{11}^{-}\\sigma_{14}^{+}) + J_{10,12}(\\sigma_{10}^{+}\\sigma_{12}^{-}+\\sigma_{10}^{-}\\sigma_{12}^{+}) + J_{13,14}(\\sigma_{13}^{+}\\sigma_{14}^{-}+\\sigma_{13}^{-}\\sigma_{14}^{+}) + J_{7,10}(\\sigma_{7}^{+}\\sigma_{10}^{-}+\\sigma_{7}^{-}\\sigma_{10}^{+}) \\\\ & + J_{16,19}(\\sigma_{16}^{+}\\sigma_{19}^{-}+\\sigma_{16}^{-}\\sigma_{19}^{+}) + J_{12,15}(\\sigma_{12}^{+}\\sigma_{15}^{-}+\\sigma_{12}^{-}\\sigma_{15}^{+}) + J_{22,25}(\\sigma_{22}^{+}\\sigma_{25}^{-}+\\sigma_{22}^{-}\\sigma_{25}^{+}) + J_{23,24}(\\sigma_{23}^{+}\\sigma_{24}^{-}+\\sigma_{23}^{-}\\sigma_{24}^{+}) \\\\ & + J_{8,11}(\\sigma_{8}^{+}\\sigma_{11}^{-}+\\sigma_{8}^{-}\\sigma_{11}^{+}) + J_{0,1}(\\sigma_{0}^{+}\\sigma_{1}^{-}+\\sigma_{0}^{-}\\sigma_{1}^{+}) + J_{1,2}(\\sigma_{1}^{+}\\sigma_{2}^{-}+\\sigma_{1}^{-}\\sigma_{2}^{+}) + J_{19,20}(\\sigma_{19}^{+}\\sigma_{20}^{-}+\\sigma_{19}^{-}\\sigma_{20}^{+}) \\\\ & + J_{6,7}(\\sigma_{6}^{+}\\sigma_{7}^{-}+\\sigma_{6}^{-}\\sigma_{7}^{+}) + J_{24,25}(\\sigma_{24}^{+}\\sigma_{25}^{-}+\\sigma_{24}^{-}\\sigma_{25}^{+}) + J_{18,21}(\\sigma_{18}^{+}\\sigma_{21}^{-}+\\sigma_{18}^{-}\\sigma_{21}^{+}) + J_{4,7}(\\sigma_{4}^{+}\\sigma_{7}^{-}+\\sigma_{4}^{-}\\sigma_{7}^{+}) \\\\ & + J_{21,23}(\\sigma_{21}^{+}\\sigma_{23}^{-}+\\sigma_{21}^{-}\\sigma_{23}^{+}) + J_{3,5}(\\sigma_{3}^{+}\\sigma_{5}^{-}+\\sigma_{3}^{-}\\sigma_{5}^{+}) + J_{5,8}(\\sigma_{5}^{+}\\sigma_{8}^{-}+\\sigma_{5}^{-}\\sigma_{8}^{+}) + J_{1,4}(\\sigma_{1}^{+}\\sigma_{4}^{-}+\\sigma_{1}^{-}\\sigma_{4}^{+}) \\\\ & + J_{2,3}(\\sigma_{2}^{+}\\sigma_{3}^{-}+\\sigma_{2}^{-}\\sigma_{3}^{+}) + J_{19,22}(\\sigma_{19}^{+}\\sigma_{22}^{-}+\\sigma_{19}^{-}\\sigma_{22}^{+}) + J_{15,18}(\\sigma_{15}^{+}\\sigma_{18}^{-}+\\sigma_{15}^{-}\\sigma_{18}^{+}) + J_{25,26}(\\sigma_{25}^{+}\\sigma_{26}^{-}+\\sigma_{25}^{-}\\sigma_{26}^{+}) \\\\ & + \\Omega_{d,0}(U_{0}^{(0,1)}(t))\\sigma_{0}^{X} + \\Omega_{d,1}(U_{1}^{(1,0)}(t)+U_{3}^{(1,4)}(t)+U_{2}^{(1,2)}(t))\\sigma_{1}^{X} \\\\ & + \\Omega_{d,2}(U_{5}^{(2,3)}(t)+U_{4}^{(2,1)}(t))\\sigma_{2}^{X} + \\Omega_{d,3}(U_{6}^{(3,2)}(t)+U_{7}^{(3,5)}(t))\\sigma_{3}^{X} \\\\ & + \\Omega_{d,4}(U_{9}^{(4,7)}(t)+U_{8}^{(4,1)}(t))\\sigma_{4}^{X} + \\Omega_{d,5}(U_{11}^{(5,8)}(t)+U_{10}^{(5,3)}(t))\\sigma_{5}^{X} \\\\ & + \\Omega_{d,6}(U_{12}^{(6,7)}(t))\\sigma_{6}^{X} + \\Omega_{d,7}(U_{14}^{(7,6)}(t)+U_{13}^{(7,4)}(t)+U_{15}^{(7,10)}(t))\\sigma_{7}^{X} \\\\ & + \\Omega_{d,8}(U_{18}^{(8,11)}(t)+U_{16}^{(8,5)}(t)+U_{17}^{(8,9)}(t))\\sigma_{8}^{X} + \\Omega_{d,9}(U_{19}^{(9,8)}(t))\\sigma_{9}^{X} \\\\ & + \\Omega_{d,10}(U_{20}^{(10,7)}(t)+U_{21}^{(10,12)}(t))\\sigma_{10}^{X} + \\Omega_{d,11}(U_{22}^{(11,8)}(t)+U_{23}^{(11,14)}(t))\\sigma_{11}^{X} \\\\ & + \\Omega_{d,12}(U_{24}^{(12,10)}(t)+U_{25}^{(12,13)}(t)+U_{26}^{(12,15)}(t))\\sigma_{12}^{X} + \\Omega_{d,13}(U_{28}^{(13,14)}(t)+U_{27}^{(13,12)}(t))\\sigma_{13}^{X} \\\\ & + \\Omega_{d,14}(U_{31}^{(14,16)}(t)+U_{30}^{(14,13)}(t)+U_{29}^{(14,11)}(t))\\sigma_{14}^{X} + \\Omega_{d,15}(U_{33}^{(15,18)}(t)+U_{32}^{(15,12)}(t))\\sigma_{15}^{X} \\\\ & + \\Omega_{d,16}(U_{35}^{(16,19)}(t)+U_{34}^{(16,14)}(t))\\sigma_{16}^{X} + \\Omega_{d,17}(U_{36}^{(17,18)}(t))\\sigma_{17}^{X} \\\\ & + \\Omega_{d,18}(U_{37}^{(18,15)}(t)+U_{39}^{(18,21)}(t)+U_{38}^{(18,17)}(t))\\sigma_{18}^{X} + \\Omega_{d,19}(U_{42}^{(19,22)}(t)+U_{40}^{(19,16)}(t)+U_{41}^{(19,20)}(t))\\sigma_{19}^{X} \\\\ & + \\Omega_{d,20}(U_{43}^{(20,19)}(t))\\sigma_{20}^{X} + \\Omega_{d,21}(U_{44}^{(21,18)}(t)+U_{45}^{(21,23)}(t))\\sigma_{21}^{X} \\\\ & + \\Omega_{d,22}(U_{46}^{(22,19)}(t)+U_{47}^{(22,25)}(t))\\sigma_{22}^{X} + \\Omega_{d,23}(U_{49}^{(23,24)}(t)+U_{48}^{(23,21)}(t))\\sigma_{23}^{X} \\\\ & + \\Omega_{d,24}(U_{50}^{(24,23)}(t)+U_{51}^{(24,25)}(t))\\sigma_{24}^{X} + \\Omega_{d,25}(U_{54}^{(25,26)}(t)+U_{53}^{(25,24)}(t)+U_{52}^{(25,22)}(t))\\sigma_{25}^{X} \\\\ & + \\Omega_{d,26}(U_{55}^{(26,25)}(t))\\sigma_{26}^{X} \\\\ \\end{align}", "h_str": ["_SUM[i,0,26,wq{i}/2*(I{i}-Z{i})]", "_SUM[i,0,26,delta{i}/2*O{i}*O{i}]", "_SUM[i,0,26,-delta{i}/2*O{i}]", "_SUM[i,0,26,omegad{i}*X{i}||D{i}]", "jq12q13*Sp12*Sm13", "jq12q13*Sm12*Sp13", "jq14q16*Sp14*Sm16", "jq14q16*Sm14*Sp16", "jq8q9*Sp8*Sm9", "jq8q9*Sm8*Sp9", "jq17q18*Sp17*Sm18", "jq17q18*Sm17*Sp18", "jq11q14*Sp11*Sm14", "jq11q14*Sm11*Sp14", "jq10q12*Sp10*Sm12", "jq10q12*Sm10*Sp12", "jq13q14*Sp13*Sm14", "jq13q14*Sm13*Sp14", "jq7q10*Sp7*Sm10", "jq7q10*Sm7*Sp10", "jq16q19*Sp16*Sm19", "jq16q19*Sm16*Sp19", "jq12q15*Sp12*Sm15", "jq12q15*Sm12*Sp15", "jq22q25*Sp22*Sm25", "jq22q25*Sm22*Sp25", "jq23q24*Sp23*Sm24", "jq23q24*Sm23*Sp24", "jq8q11*Sp8*Sm11", "jq8q11*Sm8*Sp11", "jq0q1*Sp0*Sm1", "jq0q1*Sm0*Sp1", "jq1q2*Sp1*Sm2", "jq1q2*Sm1*Sp2", "jq19q20*Sp19*Sm20", "jq19q20*Sm19*Sp20", "jq6q7*Sp6*Sm7", "jq6q7*Sm6*Sp7", "jq24q25*Sp24*Sm25", "jq24q25*Sm24*Sp25", "jq18q21*Sp18*Sm21", "jq18q21*Sm18*Sp21", "jq4q7*Sp4*Sm7", "jq4q7*Sm4*Sp7", "jq21q23*Sp21*Sm23", "jq21q23*Sm21*Sp23", "jq3q5*Sp3*Sm5", "jq3q5*Sm3*Sp5", "jq5q8*Sp5*Sm8", "jq5q8*Sm5*Sp8", "jq1q4*Sp1*Sm4", "jq1q4*Sm1*Sp4", "jq2q3*Sp2*Sm3", "jq2q3*Sm2*Sp3", "jq19q22*Sp19*Sm22", "jq19q22*Sm19*Sp22", "jq15q18*Sp15*Sm18", "jq15q18*Sm15*Sp18", "jq25q26*Sp25*Sm26", "jq25q26*Sm25*Sp26", "omegad1*X0||U0", "omegad0*X1||U1", "omegad4*X1||U3", "omegad2*X1||U2", "omegad3*X2||U5", "omegad1*X2||U4", "omegad2*X3||U6", "omegad5*X3||U7", "omegad7*X4||U9", "omegad1*X4||U8", "omegad8*X5||U11", "omegad3*X5||U10", "omegad7*X6||U12", "omegad6*X7||U14", "omegad4*X7||U13", "omegad10*X7||U15", "omegad11*X8||U18", "omegad5*X8||U16", "omegad9*X8||U17", "omegad8*X9||U19", "omegad7*X10||U20", "omegad12*X10||U21", "omegad8*X11||U22", "omegad14*X11||U23", "omegad10*X12||U24", "omegad13*X12||U25", "omegad15*X12||U26", "omegad14*X13||U28", "omegad12*X13||U27", "omegad16*X14||U31", "omegad13*X14||U30", "omegad11*X14||U29", "omegad18*X15||U33", "omegad12*X15||U32", "omegad19*X16||U35", "omegad14*X16||U34", "omegad18*X17||U36", "omegad15*X18||U37", "omegad21*X18||U39", "omegad17*X18||U38", "omegad22*X19||U42", "omegad16*X19||U40", "omegad20*X19||U41", "omegad19*X20||U43", "omegad18*X21||U44", "omegad23*X21||U45", "omegad19*X22||U46", "omegad25*X22||U47", "omegad24*X23||U49", "omegad21*X23||U48", "omegad23*X24||U50", "omegad25*X24||U51", "omegad26*X25||U54", "omegad24*X25||U53", "omegad22*X25||U52", "omegad25*X26||U55"], "osc": {}, "qub": {"0": 3, "1": 3, "2": 3, "3": 3, "4": 3, "5": 3, "6": 3, "7": 3, "8": 3, "9": 3, "10": 3, "11": 3, "12": 3, "13": 3, "14": 3, "15": 3, "16": 3, "17": 3, "18": 3, "19": 3, "20": 3, "21": 3, "22": 3, "23": 3, "24": 3, "25": 3, "26": 3}, "vars": {"delta0": 0.0, "delta1": 0.0, "delta10": 0.0, "delta11": 0.0, "delta12": 0.0, "delta13": 0.0, "delta14": 0.0, "delta15": 0.0, "delta16": 0.0, "delta17": 0.0, "delta18": 0.0, "delta19": 0.0, "delta2": 0.0, "delta20": 0.0, "delta21": 0.0, "delta22": 0.0, "delta23": 0.0, "delta24": 0.0, "delta25": 0.0, "delta26": 0.0, "delta3": 0.0, "delta4": 0.0, "delta5": 0.0, "delta6": 0.0, "delta7": 0.0, "delta8": 0.0, "delta9": 0.0, "jq0q1": 0.0, "jq10q12": 0.0, "jq11q14": 0.0, "jq12q13": 0.0, "jq12q15": 0.0, "jq13q14": 0.0, "jq14q16": 0.0, "jq15q18": 0.0, "jq16q19": 0.0, "jq17q18": 0.0, "jq18q21": 0.0, "jq19q20": 0.0, "jq19q22": 0.0, "jq1q2": 0.0, "jq1q4": 0.0, "jq21q23": 0.0, "jq22q25": 0.0, "jq23q24": 0.0, "jq24q25": 0.0, "jq25q26": 0.0, "jq2q3": 0.0, "jq3q5": 0.0, "jq4q7": 0.0, "jq5q8": 0.0, "jq6q7": 0.0, "jq7q10": 0.0, "jq8q11": 0.0, "jq8q9": 0.0, "omegad0": 0.9181720937414065, "omegad1": 0.9983431293302415, "omegad10": 0.8892591473193672, "omegad11": 0.7959159064849877, "omegad12": 0.7677213119845951, "omegad13": 0.9120803371378936, "omegad14": 0.7814930104000664, "omegad15": 0.7333605012338975, "omegad16": 0.6340509869985926, "omegad17": 0.9485040008092525, "omegad18": 0.902632947658823, "omegad19": 0.9065481240812724, "omegad2": 1.0712262103185006, "omegad20": 0.767119184103482, "omegad21": 0.9459674125479653, "omegad22": 0.938633482119428, "omegad23": 0.9530409232224104, "omegad24": 0.9007258576818399, "omegad25": 0.7946840895048611, "omegad26": 1.1118710456243592, "omegad3": 0.8887175447004363, "omegad4": 1.0031365811276998, "omegad5": 0.9680446945780535, "omegad6": 0.8427586627834663, "omegad7": 0.7945471061152247, "omegad8": 0.8445044472664938, "omegad9": 0.8648115534193888, "wq0": 30.321037611712846, "wq1": 29.36051669093802, "wq10": 30.53022412048506, "wq11": 29.52546364472621, "wq12": 28.61539921062257, "wq13": 29.392654233803796, "wq14": 29.061805291528852, "wq15": 29.291581161055337, "wq16": 28.843772399084454, "wq17": 28.965994736734807, "wq18": 29.503045801209332, "wq19": 29.581854150615108, "wq2": 28.781377658635314, "wq20": 30.348774052148094, "wq21": 28.589373565365612, "wq22": 29.084453878838765, "wq23": 29.078353949487347, "wq24": 29.398814152420613, "wq25": 28.82548175185348, "wq26": 29.34180927201501, "wq3": 29.371505944473178, "wq4": 29.76719520037567, "wq5": 30.154586450957833, "wq6": 30.658711590716017, "wq7": 29.015821287258138, "wq8": 30.493819798934084, "wq9": 29.901595413435736}}, "channels": {"acquire0": {"operates": {"qubits": [0]}, "purpose": "acquire", "type": "acquire"}, "acquire1": {"operates": {"qubits": [1]}, "purpose": "acquire", "type": "acquire"}, "acquire10": {"operates": {"qubits": [10]}, "purpose": "acquire", "type": "acquire"}, "acquire11": {"operates": {"qubits": [11]}, "purpose": "acquire", "type": "acquire"}, "acquire12": {"operates": {"qubits": [12]}, "purpose": "acquire", "type": "acquire"}, "acquire13": {"operates": {"qubits": [13]}, "purpose": "acquire", "type": "acquire"}, "acquire14": {"operates": {"qubits": [14]}, "purpose": "acquire", "type": "acquire"}, "acquire15": {"operates": {"qubits": [15]}, "purpose": "acquire", "type": "acquire"}, "acquire16": {"operates": {"qubits": [16]}, "purpose": "acquire", "type": "acquire"}, "acquire17": {"operates": {"qubits": [17]}, "purpose": "acquire", "type": "acquire"}, "acquire18": {"operates": {"qubits": [18]}, "purpose": "acquire", "type": "acquire"}, "acquire19": {"operates": {"qubits": [19]}, "purpose": "acquire", "type": "acquire"}, "acquire2": {"operates": {"qubits": [2]}, "purpose": "acquire", "type": "acquire"}, "acquire20": {"operates": {"qubits": [20]}, "purpose": "acquire", "type": "acquire"}, "acquire21": {"operates": {"qubits": [21]}, "purpose": "acquire", "type": "acquire"}, "acquire22": {"operates": {"qubits": [22]}, "purpose": "acquire", "type": "acquire"}, "acquire23": {"operates": {"qubits": [23]}, "purpose": "acquire", "type": "acquire"}, "acquire24": {"operates": {"qubits": [24]}, "purpose": "acquire", "type": "acquire"}, "acquire25": {"operates": {"qubits": [25]}, "purpose": "acquire", "type": "acquire"}, "acquire26": {"operates": {"qubits": [26]}, "purpose": "acquire", "type": "acquire"}, "acquire3": {"operates": {"qubits": [3]}, "purpose": "acquire", "type": "acquire"}, "acquire4": {"operates": {"qubits": [4]}, "purpose": "acquire", "type": "acquire"}, "acquire5": {"operates": {"qubits": [5]}, "purpose": "acquire", "type": "acquire"}, "acquire6": {"operates": {"qubits": [6]}, "purpose": "acquire", "type": "acquire"}, "acquire7": {"operates": {"qubits": [7]}, "purpose": "acquire", "type": "acquire"}, "acquire8": {"operates": {"qubits": [8]}, "purpose": "acquire", "type": "acquire"}, "acquire9": {"operates": {"qubits": [9]}, "purpose": "acquire", "type": "acquire"}, "d0": {"operates": {"qubits": [0]}, "purpose": "drive", "type": "drive"}, "d1": {"operates": {"qubits": [1]}, "purpose": "drive", "type": "drive"}, "d10": {"operates": {"qubits": [10]}, "purpose": "drive", "type": "drive"}, "d11": {"operates": {"qubits": [11]}, "purpose": "drive", "type": "drive"}, "d12": {"operates": {"qubits": [12]}, "purpose": "drive", "type": "drive"}, "d13": {"operates": {"qubits": [13]}, "purpose": "drive", "type": "drive"}, "d14": {"operates": {"qubits": [14]}, "purpose": "drive", "type": "drive"}, "d15": {"operates": {"qubits": [15]}, "purpose": "drive", "type": "drive"}, "d16": {"operates": {"qubits": [16]}, "purpose": "drive", "type": "drive"}, "d17": {"operates": {"qubits": [17]}, "purpose": "drive", "type": "drive"}, "d18": {"operates": {"qubits": [18]}, "purpose": "drive", "type": "drive"}, "d19": {"operates": {"qubits": [19]}, "purpose": "drive", "type": "drive"}, "d2": {"operates": {"qubits": [2]}, "purpose": "drive", "type": "drive"}, "d20": {"operates": {"qubits": [20]}, "purpose": "drive", "type": "drive"}, "d21": {"operates": {"qubits": [21]}, "purpose": "drive", "type": "drive"}, "d22": {"operates": {"qubits": [22]}, "purpose": "drive", "type": "drive"}, "d23": {"operates": {"qubits": [23]}, "purpose": "drive", "type": "drive"}, "d24": {"operates": {"qubits": [24]}, "purpose": "drive", "type": "drive"}, "d25": {"operates": {"qubits": [25]}, "purpose": "drive", "type": "drive"}, "d26": {"operates": {"qubits": [26]}, "purpose": "drive", "type": "drive"}, "d3": {"operates": {"qubits": [3]}, "purpose": "drive", "type": "drive"}, "d4": {"operates": {"qubits": [4]}, "purpose": "drive", "type": "drive"}, "d5": {"operates": {"qubits": [5]}, "purpose": "drive", "type": "drive"}, "d6": {"operates": {"qubits": [6]}, "purpose": "drive", "type": "drive"}, "d7": {"operates": {"qubits": [7]}, "purpose": "drive", "type": "drive"}, "d8": {"operates": {"qubits": [8]}, "purpose": "drive", "type": "drive"}, "d9": {"operates": {"qubits": [9]}, "purpose": "drive", "type": "drive"}, "m0": {"operates": {"qubits": [0]}, "purpose": "measure", "type": "measure"}, "m1": {"operates": {"qubits": [1]}, "purpose": "measure", "type": "measure"}, "m10": {"operates": {"qubits": [10]}, "purpose": "measure", "type": "measure"}, "m11": {"operates": {"qubits": [11]}, "purpose": "measure", "type": "measure"}, "m12": {"operates": {"qubits": [12]}, "purpose": "measure", "type": "measure"}, "m13": {"operates": {"qubits": [13]}, "purpose": "measure", "type": "measure"}, "m14": {"operates": {"qubits": [14]}, "purpose": "measure", "type": "measure"}, "m15": {"operates": {"qubits": [15]}, "purpose": "measure", "type": "measure"}, "m16": {"operates": {"qubits": [16]}, "purpose": "measure", "type": "measure"}, "m17": {"operates": {"qubits": [17]}, "purpose": "measure", "type": "measure"}, "m18": {"operates": {"qubits": [18]}, "purpose": "measure", "type": "measure"}, "m19": {"operates": {"qubits": [19]}, "purpose": "measure", "type": "measure"}, "m2": {"operates": {"qubits": [2]}, "purpose": "measure", "type": "measure"}, "m20": {"operates": {"qubits": [20]}, "purpose": "measure", "type": "measure"}, "m21": {"operates": {"qubits": [21]}, "purpose": "measure", "type": "measure"}, "m22": {"operates": {"qubits": [22]}, "purpose": "measure", "type": "measure"}, "m23": {"operates": {"qubits": [23]}, "purpose": "measure", "type": "measure"}, "m24": {"operates": {"qubits": [24]}, "purpose": "measure", "type": "measure"}, "m25": {"operates": {"qubits": [25]}, "purpose": "measure", "type": "measure"}, "m26": {"operates": {"qubits": [26]}, "purpose": "measure", "type": "measure"}, "m3": {"operates": {"qubits": [3]}, "purpose": "measure", "type": "measure"}, "m4": {"operates": {"qubits": [4]}, "purpose": "measure", "type": "measure"}, "m5": {"operates": {"qubits": [5]}, "purpose": "measure", "type": "measure"}, "m6": {"operates": {"qubits": [6]}, "purpose": "measure", "type": "measure"}, "m7": {"operates": {"qubits": [7]}, "purpose": "measure", "type": "measure"}, "m8": {"operates": {"qubits": [8]}, "purpose": "measure", "type": "measure"}, "m9": {"operates": {"qubits": [9]}, "purpose": "measure", "type": "measure"}, "u0": {"operates": {"qubits": [0, 1]}, "purpose": "cross-resonance", "type": "control"}, "u1": {"operates": {"qubits": [1, 0]}, "purpose": "cross-resonance", "type": "control"}, "u10": {"operates": {"qubits": [5, 3]}, "purpose": "cross-resonance", "type": "control"}, "u11": {"operates": {"qubits": [5, 8]}, "purpose": "cross-resonance", "type": "control"}, "u12": {"operates": {"qubits": [6, 7]}, "purpose": "cross-resonance", "type": "control"}, "u13": {"operates": {"qubits": [7, 4]}, "purpose": "cross-resonance", "type": "control"}, "u14": {"operates": {"qubits": [7, 6]}, "purpose": "cross-resonance", "type": "control"}, "u15": {"operates": {"qubits": [7, 10]}, "purpose": "cross-resonance", "type": "control"}, "u16": {"operates": {"qubits": [8, 5]}, "purpose": "cross-resonance", "type": "control"}, "u17": {"operates": {"qubits": [8, 9]}, "purpose": "cross-resonance", "type": "control"}, "u18": {"operates": {"qubits": [8, 11]}, "purpose": "cross-resonance", "type": "control"}, "u19": {"operates": {"qubits": [9, 8]}, "purpose": "cross-resonance", "type": "control"}, "u2": {"operates": {"qubits": [1, 2]}, "purpose": "cross-resonance", "type": "control"}, "u20": {"operates": {"qubits": [10, 7]}, "purpose": "cross-resonance", "type": "control"}, "u21": {"operates": {"qubits": [10, 12]}, "purpose": "cross-resonance", "type": "control"}, "u22": {"operates": {"qubits": [11, 8]}, "purpose": "cross-resonance", "type": "control"}, "u23": {"operates": {"qubits": [11, 14]}, "purpose": "cross-resonance", "type": "control"}, "u24": {"operates": {"qubits": [12, 10]}, "purpose": "cross-resonance", "type": "control"}, "u25": {"operates": {"qubits": [12, 13]}, "purpose": "cross-resonance", "type": "control"}, "u26": {"operates": {"qubits": [12, 15]}, "purpose": "cross-resonance", "type": "control"}, "u27": {"operates": {"qubits": [13, 12]}, "purpose": "cross-resonance", "type": "control"}, "u28": {"operates": {"qubits": [13, 14]}, "purpose": "cross-resonance", "type": "control"}, "u29": {"operates": {"qubits": [14, 11]}, "purpose": "cross-resonance", "type": "control"}, "u3": {"operates": {"qubits": [1, 4]}, "purpose": "cross-resonance", "type": "control"}, "u30": {"operates": {"qubits": [14, 13]}, "purpose": "cross-resonance", "type": "control"}, "u31": {"operates": {"qubits": [14, 16]}, "purpose": "cross-resonance", "type": "control"}, "u32": {"operates": {"qubits": [15, 12]}, "purpose": "cross-resonance", "type": "control"}, "u33": {"operates": {"qubits": [15, 18]}, "purpose": "cross-resonance", "type": "control"}, "u34": {"operates": {"qubits": [16, 14]}, "purpose": "cross-resonance", "type": "control"}, "u35": {"operates": {"qubits": [16, 19]}, "purpose": "cross-resonance", "type": "control"}, "u36": {"operates": {"qubits": [17, 18]}, "purpose": "cross-resonance", "type": "control"}, "u37": {"operates": {"qubits": [18, 15]}, "purpose": "cross-resonance", "type": "control"}, "u38": {"operates": {"qubits": [18, 17]}, "purpose": "cross-resonance", "type": "control"}, "u39": {"operates": {"qubits": [18, 21]}, "purpose": "cross-resonance", "type": "control"}, "u4": {"operates": {"qubits": [2, 1]}, "purpose": "cross-resonance", "type": "control"}, "u40": {"operates": {"qubits": [19, 16]}, "purpose": "cross-resonance", "type": "control"}, "u41": {"operates": {"qubits": [19, 20]}, "purpose": "cross-resonance", "type": "control"}, "u42": {"operates": {"qubits": [19, 22]}, "purpose": "cross-resonance", "type": "control"}, "u43": {"operates": {"qubits": [20, 19]}, "purpose": "cross-resonance", "type": "control"}, "u44": {"operates": {"qubits": [21, 18]}, "purpose": "cross-resonance", "type": "control"}, "u45": {"operates": {"qubits": [21, 23]}, "purpose": "cross-resonance", "type": "control"}, "u46": {"operates": {"qubits": [22, 19]}, "purpose": "cross-resonance", "type": "control"}, "u47": {"operates": {"qubits": [22, 25]}, "purpose": "cross-resonance", "type": "control"}, "u48": {"operates": {"qubits": [23, 21]}, "purpose": "cross-resonance", "type": "control"}, "u49": {"operates": {"qubits": [23, 24]}, "purpose": "cross-resonance", "type": "control"}, "u5": {"operates": {"qubits": [2, 3]}, "purpose": "cross-resonance", "type": "control"}, "u50": {"operates": {"qubits": [24, 23]}, "purpose": "cross-resonance", "type": "control"}, "u51": {"operates": {"qubits": [24, 25]}, "purpose": "cross-resonance", "type": "control"}, "u52": {"operates": {"qubits": [25, 22]}, "purpose": "cross-resonance", "type": "control"}, "u53": {"operates": {"qubits": [25, 24]}, "purpose": "cross-resonance", "type": "control"}, "u54": {"operates": {"qubits": [25, 26]}, "purpose": "cross-resonance", "type": "control"}, "u55": {"operates": {"qubits": [26, 25]}, "purpose": "cross-resonance", "type": "control"}, "u6": {"operates": {"qubits": [3, 2]}, "purpose": "cross-resonance", "type": "control"}, "u7": {"operates": {"qubits": [3, 5]}, "purpose": "cross-resonance", "type": "control"}, "u8": {"operates": {"qubits": [4, 1]}, "purpose": "cross-resonance", "type": "control"}, "u9": {"operates": {"qubits": [4, 7]}, "purpose": "cross-resonance", "type": "control"}}} \ No newline at end of file diff --git a/qiskit/providers/fake_provider/backends/geneva/defs_geneva.json b/qiskit/providers/fake_provider/backends/geneva/defs_geneva.json new file mode 100644 index 000000000000..c29f802377c8 --- /dev/null +++ b/qiskit/providers/fake_provider/backends/geneva/defs_geneva.json @@ -0,0 +1 @@ +{"qubit_freq_est": [4.825743015579376, 4.672871363094885, 4.580698523366451, 4.674620357115893, 4.73759625812113, 4.799251490561833, 4.879485498491239, 4.618011385738175, 4.853242154753866, 4.758986716382243, 4.85903608247861, 4.699123486138225, 4.554282232918502, 4.6779862119008, 4.625329967321017, 4.661899932759396, 4.590628954731868, 4.610081243925168, 4.6955555755290534, 4.7080983138938945, 4.830157407178421, 4.550140122828702, 4.6289346019454385, 4.627963768036649, 4.6789665933977105, 4.587717907812707, 4.669893984900796], "meas_freq_est": [7.143967359, 7.27005636134472, 7.157170563, 7.279815255000001, 7.226998877000001, 7.228239454000001, 7.352175679, 7.1181997500000005, 7.114026952000001, 7.3280825300000005, 7.175449583000001, 7.232633966000001, 7.361255517, 7.246867234000001, 7.289763409000001, 7.3274533360000005, 7.187732018, 7.399991996000001, 7.143169945, 7.118476778000001, 7.363684474, 7.2894360990000004, 7.267483029, 7.364085546, 7.21469172, 7.333297521, 7.215242262], "buffer": 0, "pulse_library": [{"name": "CX_d1_u0", "samples": [[-5.721628986066207e-05, 2.920574388554087e-06], [-0.00011578044359339401, 5.909949777560541e-06], [-0.00017570586351212114, 8.968810107035097e-06], [-0.00023700535530224442, 1.2097809303668328e-05], [-0.0002996911352965981, 1.5297569916583598e-05], [-0.0003637746849562973, 1.8568680388852954e-05], [-0.00042926688911393285, 2.1911693693255074e-05], [-0.0004961778759025037, 2.532712824176997e-05], [-0.0005645170458592474, 2.8815464247600175e-05], [-0.0006342928973026574, 3.2377134630223736e-05], [-0.0007055133464746177, 3.601254502427764e-05], [-0.0007781853200867772, 3.972204285673797e-05], [-0.000852314755320549, 4.350594099378213e-05], [-0.0009279069490730762, 4.7364505007863045e-05], [-0.0010049660922959447, 5.129794226377271e-05], [-0.0010834953282028437, 5.530642738449387e-05], [-0.0011634969851002097, 5.939006950939074e-05], [-0.001244972343556583, 6.354893412208185e-05], [-0.0013279214035719633, 6.778302486054599e-05], [-0.00141234346665442, 7.20922980690375e-05], [-0.0014982362044975162, 7.647665188414976e-05], [-0.0015855965903028846, 8.093591168290004e-05], [-0.0016744202002882957, 8.546986646251753e-05], [-0.0017647015629336238, 9.007822518469766e-05], [-0.001856433693319559, 9.476064587943256e-05], [-0.0019496086752042174, 9.951670654118061e-05], [-0.0020442171953618526, 0.00010434594878461212], [-0.002140248427167535, 0.00010924781236099079], [-0.0022376906126737595, 0.00011422169336583465], [-0.0023365304805338383, 0.0001192669224110432], [-0.002436753362417221, 0.00012438274279702455], [-0.002538342960178852, 0.0001295683323405683], [-0.0026412822771817446, 0.00013482281065080315], [-0.0027455519884824753, 0.00014014520274940878], [-0.0028511323034763336, 0.00014553449000231922], [-0.0029580011032521725, 0.00015098955191206187], [-0.0030661355704069138, 0.00015650920977350324], [-0.003175510559231043, 0.0001620922121219337], [-0.003286100458353758, 0.000167737205629237], [-0.0033978773280978203, 0.0001734427933115512], [-0.003510812297463417, 0.00017920749087352306], [-0.003624874399974942, 0.0001850297412602231], [-0.003740031970664859, 0.0001909079001052305], [-0.003856251249089837, 0.00019684025028254837], [-0.0039734975434839725, 0.00020282500190660357], [-0.004091733135282993, 0.0002088602923322469], [-0.004210921470075846, 0.00021494418615475297], [-0.004331022035330534, 0.00022107466065790504], [-0.004451994318515062, 0.00022724962036591023], [-0.0045737954787909985, 0.0002334668970433995], [-0.0046963817439973354, 0.00023972424969542772], [-0.004819707944989204, 0.00024601936456747353], [-0.004943727515637875, 0.0002523498551454395], [-0.005068391561508179, 0.0002587132912594825], [-0.005193651188164949, 0.0002651070826686919], [-0.00531945563852787, 0.0002715286973398179], [-0.005445752292871475, 0.0002779754577204585], [-0.0055724880658090115, 0.00028444459894672036], [-0.005699608009308577, 0.0002909333852585405], [-0.005827056244015694, 0.0002974389062728733], [-0.0059547750279307365, 0.000303958251606673], [-0.006082707084715366, 0.0003104884526692331], [-0.00621079234406352, 0.000317026482662186], [-0.006338969804346561, 0.0003235692565795034], [-0.006467178929597139, 0.00033011360210366547], [-0.00659535638988018, 0.00033665637602098286], [-0.006723438855260611, 0.0003431942604947835], [-0.006851361598819494, 0.0003497239958960563], [-0.006979059427976608, 0.00035624229349195957], [-0.007106466684490442, 0.000362745689926669], [-0.007233515847474337, 0.0003692308673635125], [-0.007360139396041632, 0.00037569430423900485], [-0.007486269809305668, 0.0003821325663011521], [-0.007611837703734636, 0.0003885421028826386], [-0.007736773695796728, 0.000394919392419979], [-0.007861007936298847, 0.00040126085514202714], [-0.007984470576047897, 0.0004075629694852978], [-0.008107091300189495, 0.0004138220683671534], [-0.00822879932820797, 0.0004200345429126173], [-0.008349522948265076, 0.0004261968133505434], [-0.008469191379845142, 0.0004323052417021245], [-0.008587732911109924, 0.0004383561317808926], [-0.008705077692866325, 0.00044434593291953206], [-0.008821153081953526, 0.0004502709489315748], [-0.008935889229178429, 0.0004561276000458747], [-0.00904921442270279, 0.0004619122191797942], [-0.009161058813333511, 0.00046762125566601753], [-0.009271352551877499, 0.00047325112973339856], [-0.00938002485781908, 0.0004787982616107911], [-0.00948700774461031, 0.00048425912973470986], [-0.00959223136305809, 0.0004896302125416696], [-0.009695627726614475, 0.0004949080175720155], [-0.009797130711376667, 0.0005000891978852451], [-0.009896673262119293, 0.0005051702610217035], [-0.009994189254939556, 0.0005101479473523796], [-0.010089614428579807, 0.0005150188808329403], [-0.010182885453104973, 0.0005197798018343747], [-0.010273938998579979, 0.0005244276253506541], [-0.010362713597714901, 0.0005289590917527676], [-0.010449149645864964, 0.0005333711160346866], [-0.010533187538385391, 0.0005376608460210264], [-0.010614770464599133, 0.0005418251967057586], [-0.010693841613829136, 0.0005458613159134984], [-0.010770346038043499, 0.0005497664678841829], [-0.010844231583178043, 0.0005535378586500883], [-0.010915445163846016, 0.0005571729270741343], [-0.010983938351273537, 0.0005606691120192409], [-0.011049661785364151, 0.0005640239687636495], [-0.011112569831311703, 0.0005672350525856018], [-0.01117261778563261, 0.0005703001515939832], [-0.011229761876165867, 0.0005732170538976789], [-0.011283963918685913, 0.0005759837804362178], [-0.011335182003676891, 0.0005785981775261462], [-0.01138338167220354, 0.0005810584989376366], [-0.011428527534008026, 0.0005833629402332008], [-0.01147058792412281, 0.0005855098715983331], [-0.011509530246257782, 0.0005874977214261889], [-0.011545328423380852, 0.0005893249763175845], [-0.011577955447137356, 0.0005909904139116406], [-0.011607388034462929, 0.0005924928118474782], [-0.011633604764938354, 0.0005938310059718788], [-0.01165658701211214, 0.0005950041231699288], [-0.011676316149532795, 0.0005960111739113927], [-0.011692780070006847, 0.0005968515761196613], [-0.011705965735018253, 0.0005975246313028038], [-0.011715862900018692, 0.0005980298155918717], [-0.011722465045750141, 0.0005983668379485607], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.011726181022822857, 0.0005985564785078168], [-0.01172329019755125, 0.0005983755108900368], [-0.011718153022229671, 0.0005980539717711508], [-0.011710451915860176, 0.0005975718959234655], [-0.011700192466378212, 0.0005969296325929463], [-0.01168738305568695, 0.0005961277638562024], [-0.011672032065689564, 0.000595166755374521], [-0.011654150672256947, 0.000594047422055155], [-0.011633751913905144, 0.0005927704623900354], [-0.011610851623117924, 0.0005913368659093976], [-0.01158546470105648, 0.0005897476803511381], [-0.011557611636817455, 0.0005880040698684752], [-0.011527311988174915, 0.000586107315029949], [-0.011494586244225502, 0.0005840586964040995], [-0.01145945955067873, 0.0005818597855977714], [-0.011421957053244114, 0.0005795120960101485], [-0.011382104828953743, 0.0005770173738710582], [-0.011339932680130005, 0.0005743774236179888], [-0.011295470409095287, 0.0005715940496884286], [-0.011248748749494553, 0.0005686692893505096], [-0.011199802160263062, 0.0005656052380800247], [-0.011148665100336075, 0.0005624039913527668], [-0.011095372959971428, 0.0005590679356828332], [-0.011039962992072105, 0.0005555993411689997], [-0.010982475243508816, 0.0005520005943253636], [-0.010922949761152267, 0.0005482742562890053], [-0.010861427523195744, 0.0005444229464046657], [-0.010797950439155102, 0.000540449284017086], [-0.010732562281191349, 0.0005363560630939901], [-0.010665309615433216, 0.0005321460193954408], [-0.01059623621404171, 0.000527822005096823], [-0.01052539050579071, 0.000523387105204165], [-0.010452819988131523, 0.0005188441136851907], [-0.010378572158515453, 0.0005141962319612503], [-0.010302698239684105, 0.0005094465450383723], [-0.010225247591733932, 0.000504598137922585], [-0.01014627143740654, 0.0004996542120352387], [-0.010065820999443531, 0.0004946180270053446], [-0.009983950294554234, 0.0004894929006695747], [-0.009900710545480251, 0.0004842821217607707], [-0.009816155768930912, 0.00047898897901177406], [-0.009730339981615543, 0.0004736169066745788], [-0.009643317200243473, 0.0004681693098973483], [-0.009555142372846603, 0.0004626495356205851], [-0.009465869516134262, 0.000457061076303944], [-0.009375554509460926, 0.0004514073661994189], [-0.009284252300858498, 0.00044569186866283417], [-0.009192018769681454, 0.00043991804705001414], [-0.009098907932639122, 0.0004340893356129527], [-0.009004977531731129, 0.00042820925591513515], [-0.008910280652344227, 0.00042228124220855534], [-0.008814873173832893, 0.0004163087287452072], [-0.00871881004422903, 0.00041029523708857596], [-0.008622147142887115, 0.00040424411417916417], [-0.008524938486516476, 0.00039815885247662663], [-0.008427238091826439, 0.00039204282802529633], [-0.008329099975526333, 0.0003858993877656758], [-0.008230578154325485, 0.000379731907742098], [-0.008131724782288074, 0.00037354370579123497], [-0.008032593876123428, 0.00036733809974975884], [-0.007933235727250576, 0.0003611182910390198], [-0.00783370342105627, 0.0003548875392880291], [-0.007734046317636967, 0.0003486490168143064], [-0.007634315639734268, 0.00034240586683154106], [-0.007534560281783342, 0.000336161203449592], [-0.0074348291382193565, 0.0003299180243629962], [-0.007335169706493616, 0.0003236793854739517], [-0.007235629949718714, 0.0003174481971655041], [-0.007136255968362093, 0.0003112273698206991], [-0.007037092465907335, 0.000305019726511091], [-0.0069381846114993095, 0.0002988280903082341], [-0.006839575245976448, 0.0002926551678683609], [-0.0067413076758384705, 0.00028650363674387336], [-0.006643423344939947, 0.00028037605807185173], [-0.006545962765812874, 0.00027427502209320664], [-0.006448965519666672, 0.0002682030026335269], [-0.0063524697907269, 0.00026216238620691], [-0.006256513297557831, 0.0002561555302236229], [-0.006161132827401161, 0.00025018470478244126], [-0.006066363304853439, 0.00024425212177447975], [-0.005972238723188639, 0.00023835992033127695], [-0.005878792144358158, 0.0002325101668247953], [-0.0057860552333295345, 0.00022670486941933632], [-0.005694059655070305, 0.0002209459344157949], [-0.005602834280580282, 0.0002152352244593203], [-0.005512407515197992, 0.0002095745294354856], [-0.005422807298600674, 0.00020396553736645728], [-0.005334058776497841, 0.00019840989261865616], [-0.005246187560260296, 0.0001929091667989269], [-0.005159217398613691, 0.00018746484420262277], [-0.005073171108961105, 0.00018207833636552095], [-0.004988069646060467, 0.00017675099661573768], [-0.0049039339646697044, 0.0001714840909698978], [-0.004820782691240311, 0.00016627881268505007], [-0.0047386339865624905, 0.0001611363113624975], [-0.004657504614442587, 0.00015605763474013656], [-0.004577410873025656, 0.00015104375779628754], [-0.0044983671978116035, 0.00014609562640544027], [-0.004420386627316475, 0.00014121405547484756], [-0.004343482665717602, 0.00013639985991176218], [-0.004267666023224592, 0.0001316537382081151], [-0.004192946944385767, 0.00012697633064817637], [-0.0041193352080881596, 0.00012236823386047035], [-0.004046838264912367, 0.00011782994988607243], [-0.0039754644967615604, 0.0001133619443862699], [-0.003905219491571188, 0.00010896460298681632], [-0.0038361086044460535, 0.00010463826765771955], [-0.0037681362591683865, 0.0001003831930574961], [-0.003701305715367198, 9.619961201678962e-05], [-0.0036356195341795683, 9.208766277879477e-05], [-0.0035710795782506466, 8.804745448287576e-05], [-0.0035076860804110765, 8.40790307847783e-05], [-0.003445439273491502, 8.018237713258713e-05], [-0.003384337993338704, 7.635744987055659e-05], [-0.0033243808429688215, 7.260412530740723e-05], [-0.0032655647955834866, 6.892225064802915e-05], [-0.0032078870572149754, 6.531162216560915e-05], [-0.0031513432040810585, 6.177198520163074e-05], [-0.0030959288123995066, 5.8303045079810545e-05], [-0.0030416385270655155, 5.49044634681195e-05], [-0.002988465828821063, 5.1575862016761675e-05], [-0.0029364044312387705, 4.831682599615306e-05], [-0.0028854471165686846, 4.512688974500634e-05], [-0.0028355857357382774, 4.200556577416137e-05], [-0.0027868119068443775, 3.895232657669112e-05], [-0.0027391165494918823, 3.5966608265880495e-05], [-0.0026924905832856894, 3.304781421320513e-05], [-0.002646923530846834, 3.0195325962267816e-05], [-0.002557887230068445, 2.462164957250934e-05], [-0.00251232017762959, 2.1769161321572028e-05], [-0.002465694211423397, 1.8850369087886065e-05], [-0.002417998854070902, 1.5864648958086036e-05], [-0.002369225025177002, 1.2811408851121087e-05], [-0.002319363644346595, 9.69008578977082e-06], [-0.0022684060968458652, 6.500151812360855e-06], [-0.0022163449320942163, 3.241113290641806e-06], [-0.002163172233849764, -8.74867538414037e-08], [-0.002108881715685129, -3.486067043922958e-06], [-0.0020534673240035772, -6.955006483622128e-06], [-0.001996923703700304, -1.0494643902347889e-05], [-0.001939245848916471, -1.410527420375729e-05], [-0.0018804299179464579, -1.778714795364067e-05], [-0.0018204726511612535, -2.1540472516790032e-05], [-0.0017593714874237776, -2.536540341679938e-05], [-0.0016971246805042028, -2.9262051612022333e-05], [-0.0016337311826646328, -3.3230477129109204e-05], [-0.0015691911103203893, -3.7270685425028205e-05], [-0.0015035050455480814, -4.1382634663023055e-05], [-0.001436674501746893, -4.556621934170835e-05], [-0.0013687021564692259, -4.982129030395299e-05], [-0.0012995912693440914, -5.414762927102856e-05], [-0.0012293461477383971, -5.854496703250334e-05], [-0.0011579722631722689, -6.301297253230587e-05], [-0.0010854756692424417, -6.755124923074618e-05], [-0.0010118638165295124, -7.215935329440981e-05], [-0.000937144854106009, -7.683676085434854e-05], [-0.0008613280951976776, -8.158288255799562e-05], [-0.0007844239007681608, -8.639708539703861e-05], [-0.0007064436795189977, -9.12786417757161e-05], [-0.0006273998878896236, -9.622678044252098e-05], [-0.0005473060882650316, -0.00010124065011041239], [-0.00046617694897577167, -0.00010631933400873095], [-0.00038402824429795146, -0.00011146183533128351], [-0.0003008769126608968, -0.00011666710634017363], [-0.00021674096933566034, -0.00012193401926197112], [-0.00013163959374651313, -0.0001272613590117544], [-4.5593114919029176e-05, -0.0001326478668488562], [4.1376992157893255e-05, -0.00013809218944516033], [0.00012924808834213763, -0.0001435929152648896], [0.00021799637761432678, -0.00014914856001269072], [0.0003075968998018652, -0.00015475755208171904], [0.00039802349056117237, -0.00016041824710555375], [0.0004892488941550255, -0.00016612895706202835], [0.0005812447052448988, -0.00017188789206556976], [0.000673981208819896, -0.00017769318947102875], [0.0007674277876503766, -0.0001835429429775104], [0.0008615524275228381, -0.00018943514442071319], [0.0009563221246935427, -0.0001953677274286747], [0.001051702769473195, -0.00020133855286985636], [0.0011476590298116207, -0.00020734540885314345], [0.0012441546423360705, -0.00021338602527976036], [0.0013411520048975945, -0.0002194580592913553], [0.0014386127004399896, -0.0002255590952700004], [0.001536497031338513, -0.0002316866593901068], [0.0016347646014764905, -0.00023783820506650954], [0.0017333737341687083, -0.00024401112750638276], [0.001832281704992056, -0.00025020274915732443], [0.0019314450910314918, -0.00025641039246693254], [0.002030819421634078, -0.00026263121981173754], [0.0021303591784089804, -0.00026886240812018514], [0.0022300181444734335, -0.00027510104700922966], [0.0023297492880374193, -0.00028134422609582543], [0.002429504645988345, -0.0002875888894777745], [0.0025292355567216873, -0.0002938320394605398], [0.0026288924273103476, -0.0003000705619342625], [0.0027284251991659403, -0.00030630131368525326], [0.002827783115208149, -0.0003125211223959923], [0.0029269144870340824, -0.0003187267284374684], [0.0030257676262408495, -0.0003249149303883314], [0.0031242896802723408, -0.0003310824104119092], [0.003222427563741803, -0.00033722585067152977], [0.00332012795843184, -0.0003433418751228601], [0.0034173368476331234, -0.0003494271368253976], [0.0035139997489750385, -0.0003554782597348094], [0.003610062412917614, -0.00036149175139144063], [0.003705469658598304, -0.0003674642648547888], [0.0038001665379852057, -0.0003733922785613686], [0.00389409763738513, -0.00037927235825918615], [0.003987208008766174, -0.0003851010696962476], [0.004079441539943218, -0.0003908748913090676], [0.004170743748545647, -0.00039659038884565234], [0.004261058755218983, -0.00040224409895017743], [0.004350331146270037, -0.0004078325582668185], [0.004438506439328194, -0.0004133523325435817], [0.004525529220700264, -0.0004187999584246427], [0.004611345008015633, -0.0004241720016580075], [0.004695899318903685, -0.0004294651444070041], [0.004779139067977667, -0.0004346759233158082], [0.004861010238528252, -0.0004398010787554085], [0.004941460210829973, -0.0004448372346814722], [0.005020436365157366, -0.000449781131464988], [0.005097887013107538, -0.00045462953858077526], [0.005173761397600174, -0.0004593792837113142], [0.0052480087615549564, -0.0004640271654352546], [0.005320579744875431, -0.00046857009874656796], [0.005391425918787718, -0.0004730050568468869], [0.005460498854517937, -0.0004773290129378438], [0.005527751985937357, -0.00048153905663639307], [0.005593139678239822, -0.0004856323357671499], [0.005656616296619177, -0.0004896059981547296], [0.005718139000236988, -0.0004934573080390692], [0.005777664948254824, -0.0004971835878677666], [0.005835152696818113, -0.0005007823347114027], [0.005890561733394861, -0.0005042509292252362], [0.005943853873759508, -0.0005075870431028306], [0.005994991399347782, -0.0005107882316224277], [0.0060439384542405605, -0.0005138523411005735], [0.006090659648180008, -0.0005167770432308316], [0.006135122384876013, -0.0005195604171603918], [0.006177294533699751, -0.0005222004256211221], [0.0062171462923288345, -0.0005246951477602124], [0.006254648789763451, -0.0005270427791401744], [0.006289775483310223, -0.0005292416899465024], [0.006322500761598349, -0.0005312903085723519], [0.006352801341563463, -0.0005331871216185391], [0.006380654405802488, -0.000534930732101202], [0.006406040862202644, -0.0005365199176594615], [0.006428941152989864, -0.0005379534559324384], [0.00644933944568038, -0.000539230415597558], [0.006467220839112997, -0.0005403498071245849], [0.006482572294771671, -0.0005413107573986053], [0.00649538217112422, -0.0005421126843430102], [0.006505641154944897, -0.0005427548894658685], [0.006513342261314392, -0.0005432369653135538], [0.006518478970974684, -0.0005435585626401007], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.00652136979624629, -0.0005437395302578807], [0.006519303657114506, -0.0005435672355815768], [0.006515631917864084, -0.000543261063285172], [0.0065101273357868195, -0.0005428021540865302], [0.0065027945674955845, -0.0005421907408162951], [0.00649363873526454, -0.000541427347343415], [0.00648266589269042, -0.0005405124393291771], [0.006469884887337685, -0.0005394468316808343], [0.006455305032432079, -0.0005382311646826565], [0.006438936572521925, -0.0005368663696572185], [0.006420791149139404, -0.0005353534361347556], [0.0064008827321231365, -0.0005336935282684863], [0.006379224825650454, -0.0005318877520039678], [0.0063558341935276985, -0.0005299374461174011], [0.00633072666823864, -0.0005278440658003092], [0.00630392087623477, -0.0005256090080365539], [0.006275436375290155, -0.0005232340190559626], [0.006245293188840151, -0.0005207207286730409], [0.006213512737303972, -0.0005180709413252771], [0.006180117838084698, -0.0005152865778654814], [0.00614513223990798, -0.000512369500938803], [0.006108581088483334, -0.0005093219224363565], [0.006070489529520273, -0.000506145937833935], [0.006030884571373463, -0.0005028437590226531], [0.005989794619381428, -0.0004994177725166082], [0.00594724714756012, -0.000495870248414576], [0.005903272889554501, -0.0004922037478536367], [0.005857901647686958, -0.0004884207737632096], [0.00581116508692503, -0.00048452397459186614], [0.005763094872236252, -0.0004805159696843475], [0.005713723599910736, -0.00047639949480071664], [0.005663085263222456, -0.0004721773730125278], [0.005611213855445385, -0.00046785242739133537], [0.005558144301176071, -0.0004634275974240154], [0.00550391199067235, -0.0004589057934936136], [0.005448552779853344, -0.00045429004239849746], [0.005392103455960751, -0.00044958340004086494], [0.00533460034057498, -0.00044478889321908355], [0.005276081617921591, -0.0004399097233545035], [0.005216584540903568, -0.00043494897545315325], [0.005156147759407759, -0.00042990988004021347], [0.005094809457659721, -0.00042479560943320394], [0.00503260875120759, -0.00041960939415730536], [0.004969583824276924, -0.00041435452294535935], [0.004905774723738432, -0.00040903425542637706], [0.004841221030801535, -0.00040365185122936964], [0.004775961395353079, -0.00039821062819100916], [0.004710035398602486, -0.00039271387504413724], [0.004643483553081751, -0.0003871648805215955], [0.004576344508677721, -0.00038156696246005595], [0.004508658312261105, -0.0003759234386961907], [0.004440464545041323, -0.0003702375397551805], [0.004371802322566509, -0.00036451261257752776], [0.004302710760384798, -0.00035875188768841326], [0.004233228974044323, -0.0003529586538206786], [0.004163396079093218, -0.000347136112395674], [0.004093250259757042, -0.00034128749393858016], [0.004022830165922642, -0.00033541597076691687], [0.003952173050493002, -0.0003295247443020344], [0.0038813173305243254, -0.0003236168995499611], [0.0038102997932583094, -0.0003176956088282168], [0.0037391569931060076, -0.00031176384072750807], [0.0036679254844784737, -0.0003058247093576938], [0.003596641356125474, -0.0002998811542056501], [0.0035253395326435566, -0.00029393614386208355], [0.0034540549386292696, -0.00028799258871003985], [0.0033828220330178738, -0.0002820533118210733], [0.0033116743434220552, -0.00027612116537056863], [0.003240644931793213, -0.00027019885601475835], [0.0031697661615908146, -0.00026428911951370537], [0.0030990701634436846, -0.00025839460431598127], [0.003028587670996785, -0.00025251792976632714], [0.002958349185064435, -0.0002466615696903318], [0.0028883847407996655, -0.00024082807067316025], [0.0028187232092022896, -0.0002350198192289099], [0.002749392529949546, -0.00022923917276784778], [0.0026804208755493164, -0.00022348843049257994], [0.002611834555864334, -0.00021776983339805156], [0.002543659647926688, -0.00021208553516771644], [0.0024759212974458933, -0.0002064376458292827], [0.0024086441844701767, -0.0002008282026508823], [0.0023418518248945475, -0.00019525917014107108], [0.00227556680329144, -0.00018973245460074395], [0.0022098112385720015, -0.00018424988957121968], [0.0021446063183248043, -0.0001788132358342409], [0.00207997253164649, -0.00017342418141197413], [0.0020159289706498384, -0.00016808435611892492], [0.001952494727447629, -0.0001627953170100227], [0.0018896873807534575, -0.000157558562932536], [0.0018275240436196327, -0.00015237550542224199], [0.0017660208977758884, -0.00014724748325534165], [0.001705193193629384, -0.00014217579155229032], [0.0016450557159259915, -0.00013716163812205195], [0.001585621852427721, -0.00013220615801401436], [0.001526904758065939, -0.00012731044262181967], [0.0014689163072034717, -0.0001224754669237882], [0.00141166802495718, -0.00011770221317419782], [0.0013551701558753848, -0.00011299152538413182], [0.0012994324788451195, -0.00010834422573680058], [0.0012444638414308429, -0.00010376104910392314], [0.0011902726255357265, -9.924267942551523e-05], [0.001136865932494402, -9.478974243393168e-05], [0.0010842506308108568, -9.040277655003592e-05], [0.0010324325412511826, -8.608227653894573e-05], [0.0009814169025048614, -8.182868623407558e-05], [0.0009312080219388008, -7.764236943330616e-05], [0.000881809857673943, -7.35236462787725e-05], [0.0008332254947163165, -6.94727641530335e-05], [0.0007854572613723576, -6.548994133481756e-05], [0.0007385070202872157, -6.157532334327698e-05], [0.000692375935614109, -5.772899748990312e-05], [0.000647064414806664, -5.3951011068420485e-05], [0.0006025724578648806, -5.024135680287145e-05], [0.0005588994245044887, -4.659997648559511e-05], [0.0005160439177416265, -4.3026768253184855e-05], [0.0004740042786579579, -3.9521582948509604e-05], [0.00043277809163555503, -3.608422048273496e-05], [0.0003923625044990331, -3.271444438723847e-05], [0.0003527541412040591, -2.9411974537651986e-05], [0.0003139491309411824, -2.617648715386167e-05], [0.00027594316634349525, -2.3007620256976224e-05], [0.00023873145983088762, -1.9904979126295075e-05], [0.00020230877271387726, -1.6868123566382565e-05], [0.00016666950250510126, -1.3896587915951386e-05], [0.00013180759560782462, -1.0989868314936757e-05], [9.771663462743163e-05, -8.147429070959333e-06], [6.438986019929871e-05, -5.368704933061963e-06], [3.182013097102754e-05, -2.653102455951739e-06]]}, {"name": "CX_d20_u41", "samples": [[-9.841147402767092e-05, 4.081204679096118e-06], [-0.00019914125732611865, 8.25855113362195e-06], [-0.0003022124001290649, 1.2532996152003761e-05], [-0.0004076469340361655, 1.6905452866922133e-05], [-0.0005154658574610949, 2.1376792574301362e-05], [-0.0006256889901123941, 2.5947834728867747e-05], [-0.0007383349584415555, 3.0619357858086005e-05], [-0.0008534211665391922, 3.539207682479173e-05], [-0.000970963854342699, 4.026667011203244e-05], [-0.0010909776901826262, 4.524374526226893e-05], [-0.0012134761782363057, 5.032385524827987e-05], [-0.0013384711928665638, 5.550750211114064e-05], [-0.001465973211452365, 6.0795115132350475e-05], [-0.001595991081558168, 6.618705810979009e-05], [-0.0017285319045186043, 7.168364390963688e-05], [-0.0018636015010997653, 7.72850908106193e-05], [-0.0020012035965919495, 8.299155888380483e-05], [-0.0021413404028862715, 8.880314999260008e-05], [-0.002284012036398053, 9.471985686104745e-05], [-0.0024292171001434326, 0.00010074162855744362], [-0.0025769518688321114, 0.0001068683122866787], [-0.0027272109873592854, 0.00011309967521810904], [-0.002879986772313714, 0.00011943541176151484], [-0.0030352696776390076, 0.00012587512901518494], [-0.0031930480618029833, 0.00013241832493804395], [-0.0033533081877976656, 0.0001390644465573132], [-0.0035160337574779987, 0.00014581280993297696], [-0.0036812066100537777, 0.00015266267291735858], [-0.0038488064892590046, 0.00015961316239554435], [-0.004018810112029314, 0.00016666334704495966], [-0.004191192332655191, 0.00017381217912770808], [-0.004365925677120686, 0.00018105852359440178], [-0.0045429798774421215, 0.0001884011144284159], [-0.004722323268651962, 0.00019583862740546465], [-0.0049039204604923725, 0.0002033696073340252], [-0.00508773373439908, 0.00021099249715916812], [-0.005273723509162664, 0.0002187056525144726], [-0.005461847875267267, 0.000226507312618196], [-0.0056520611979067326, 0.00023439562937710434], [-0.005844316445291042, 0.0002423686091788113], [-0.006038563326001167, 0.00025042417109943926], [-0.006234749220311642, 0.0002585601760074496], [-0.006432819180190563, 0.00026677429559640586], [-0.006632715463638306, 0.0002750641433522105], [-0.006834377069026232, 0.0002834272454492748], [-0.00703774206340313, 0.00029186095343902707], [-0.007242744322866201, 0.0003003625606652349], [-0.007449316326528788, 0.0003089292731601745], [-0.0076573872938752174, 0.00031755815143696964], [-0.007866884581744671, 0.0003262461395934224], [-0.008077731356024742, 0.0003349901526235044], [-0.008289851248264313, 0.0003437869600020349], [-0.008503163233399391, 0.00035263318568468094], [-0.008717584423720837, 0.0003615253954194486], [-0.008933030068874359, 0.0003704600967466831], [-0.009149412624537945, 0.00037943365168757737], [-0.009366641752421856, 0.0003884423349518329], [-0.00958462618291378, 0.0003974823048338294], [-0.009803270921111107, 0.00040654969052411616], [-0.01002248004078865, 0.0004156405047979206], [-0.010242155753076077, 0.0004247506440151483], [-0.010462197475135326, 0.00043387594632804394], [-0.010682502761483192, 0.00044301216257736087], [-0.010902967303991318, 0.00045215501450002193], [-0.01112348586320877, 0.0004613000783137977], [-0.011343949474394321, 0.0004704429011326283], [-0.011564250104129314, 0.0004795789427589625], [-0.011784275993704796, 0.0004887036047875881], [-0.012003915384411812, 0.0004978122306056321], [-0.01222305465489626, 0.0005069000762887299], [-0.012441577389836311, 0.0005159624270163476], [-0.01265936903655529, 0.0005249944515526295], [-0.012876312248408794, 0.0005339912604540586], [-0.013092287816107273, 0.0005429479060694575], [-0.013307176530361176, 0.0005518595571629703], [-0.013520858250558376, 0.0005607210914604366], [-0.013733213767409325, 0.0005695276195183396], [-0.013944119215011597, 0.00057827407727018], [-0.014153455384075642, 0.0005869554006494582], [-0.014361098408699036, 0.0005955665837973356], [-0.014566927216947079, 0.000604102446231991], [-0.014770817942917347, 0.0006125579820945859], [-0.01497264951467514, 0.0006209280691109598], [-0.01517229899764061, 0.0006292077014222741], [-0.015369643457233906, 0.0006373917567543685], [-0.015564562752842903, 0.0006454751710407436], [-0.015756934881210327, 0.0006534529966302216], [-0.015946637839078903, 0.0006613201694563031], [-0.01613355241715908, 0.0006690716836601496], [-0.016317561268806458, 0.0006767027080059052], [-0.016498545184731483, 0.0006842082366347313], [-0.016676386818289757, 0.0006915834965184331], [-0.016850970685482025, 0.0006988235982134938], [-0.017022183164954185, 0.0007059238851070404], [-0.017189908772706985, 0.0007128797005861998], [-0.01735403947532177, 0.0007196863298304379], [-0.017514465376734734, 0.0007263392326422036], [-0.017671076580882072, 0.0007328340434469283], [-0.01782376877963543, 0.0007391662802547216], [-0.017972437664866447, 0.0007453317521139979], [-0.018116982653737068, 0.0007513261516578496], [-0.018257303163409233, 0.0007571454043500125], [-0.01839330419898033, 0.0007627854938618839], [-0.0185248926281929, 0.0007682425202801824], [-0.018651973456144333, 0.0007735127001069486], [-0.01877446100115776, 0.0007785923080518842], [-0.01889226771891117, 0.0007834778516553342], [-0.019005311653017998, 0.0007881658966653049], [-0.019113512709736824, 0.0007926530670374632], [-0.01921679452061653, 0.0007969362777657807], [-0.01931508257985115, 0.0008010123856365681], [-0.01940830796957016, 0.0008048785384744406], [-0.019496405497193336, 0.0008085319423116744], [-0.019579308107495308, 0.0008119699778035283], [-0.019656958058476448, 0.0008151902002282441], [-0.01972929947078228, 0.0008181902812793851], [-0.019796282052993774, 0.0008209680672734976], [-0.019857853651046753, 0.0008235215209424496], [-0.019913973286747932, 0.0008258487796410918], [-0.01996459625661373, 0.0008279482135549188], [-0.020009689033031464, 0.0008298182510770857], [-0.020049216225743294, 0.0008314574952237308], [-0.020083151757717133, 0.0008328648400492966], [-0.02011146955192089, 0.0008340391796082258], [-0.020134149119257927, 0.0008349796989932656], [-0.02015117183327675, 0.0008356856415048242], [-0.02016252838075161, 0.000836156599689275], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020168917253613472, 0.000836421619169414], [-0.020165299996733665, 0.0008361588697880507], [-0.02015887014567852, 0.0008356919279322028], [-0.0201492328196764, 0.0008349919808097184], [-0.0201363917440176, 0.0008340594940818846], [-0.02012035995721817, 0.0008328952244482934], [-0.020101146772503853, 0.0008314999286085367], [-0.020078767091035843, 0.0008298746543005109], [-0.020053235813975334, 0.0008280205656774342], [-0.020024575293064117, 0.0008259391179308295], [-0.019992802292108536, 0.0008236317080445588], [-0.01995794102549553, 0.0008211000822484493], [-0.019920017570257187, 0.0008183459867723286], [-0.019879059866070747, 0.0008153715752996504], [-0.01983509585261345, 0.0008121788268908858], [-0.019788159057497978, 0.0008087701280601323], [-0.01973828114569187, 0.0008051479235291481], [-0.019685499370098114, 0.0008013148326426744], [-0.01962985098361969, 0.0007972735329531133], [-0.019571375101804733, 0.0007930269348435104], [-0.019510114565491676, 0.0007885780651122332], [-0.01944611221551895, 0.000783930066972971], [-0.01937941275537014, 0.0007790862582623959], [-0.019310064613819122, 0.0007740499568171799], [-0.01923811435699463, 0.0007688248297199607], [-0.01916361227631569, 0.000763414369430393], [-0.01908661238849163, 0.000757822475861758], [-0.019007166847586632, 0.0007520529325120151], [-0.01892532780766487, 0.0007461097557097673], [-0.018841156736016273, 0.0007399969617836177], [-0.018754705786705017, 0.000733718799892813], [-0.018666036427021027, 0.0007272794609889388], [-0.018575208261609077, 0.0007206833688542247], [-0.018482282757759094, 0.0007139348308555782], [-0.018387319520115852, 0.0007070385036058724], [-0.018290383741259575, 0.0006999988690949976], [-0.018191538751125336, 0.0006928205257281661], [-0.018090849742293358, 0.0006855083047412336], [-0.017988381907343864, 0.0006780668627470732], [-0.01788420043885708, 0.0006705010309815407], [-0.01777837425470352, 0.0006628156988881528], [-0.017670968547463417, 0.0006550157559104264], [-0.017562054097652435, 0.000647106091491878], [-0.0174516960978508, 0.0006390916532836854], [-0.01733996346592903, 0.0006309775053523481], [-0.01722692884504795, 0.0006227685953490436], [-0.01711265742778778, 0.0006144699873402715], [-0.016997218132019043, 0.0006060866871848702], [-0.016880683600902557, 0.0005976237007416785], [-0.016763122752308846, 0.0005890860920771956], [-0.01664460077881813, 0.0005804789252579212], [-0.01652519218623638, 0.0005718072061426938], [-0.01640496216714382, 0.0005630758823826909], [-0.016283981502056122, 0.0005542899598367512], [-0.016162317246198654, 0.0005454545025713742], [-0.01604003645479679, 0.0005365742836147547], [-0.015917209908366203, 0.0005276543670333922], [-0.015793902799487114, 0.0005186994676478207], [-0.015670180320739746, 0.0005097145331092179], [-0.015546109527349472, 0.0005007042782381177], [-0.015421755611896515, 0.000491673476062715], [-0.015297182835638523, 0.0004826267540920526], [-0.01517245452851057, 0.0004735687398351729], [-0.015047633089125156, 0.0004645040025934577], [-0.014922781847417355, 0.0004554370534606278], [-0.01479796040803194, 0.00044637228711508214], [-0.014673229306936264, 0.0004373140982352197], [-0.0145486481487751, 0.0004282667359802872], [-0.014424272812902927, 0.00041923439130187035], [-0.01430016290396452, 0.00041022125515155494], [-0.01417637150734663, 0.00040123131475411355], [-0.014052954502403736, 0.0003922685282304883], [-0.01392996497452259, 0.0003833367954939604], [-0.013807455077767372, 0.00037443990004248917], [-0.013685476034879684, 0.0003655815089587122], [-0.013564076274633408, 0.00035676523111760616], [-0.013443304225802422, 0.0003479945589788258], [-0.013323207385838032, 0.0003392728976905346], [-0.013203831389546394, 0.0003306035650894046], [-0.013085220009088516, 0.000321989762596786], [-0.01296741608530283, 0.0003134346043225378], [-0.012850460596382618, 0.00030494105885736644], [-0.01273439358919859, 0.0002965120365843177], [-0.012619253247976303, 0.00028815038967877626], [-0.012505077756941319, 0.00027985870838165283], [-0.012391901575028896, 0.0002716396702453494], [-0.012279760092496872, 0.0002634956908877939], [-0.012168684974312782, 0.0002554291859269142], [-0.01205870695412159, 0.000247442425461486], [-0.011949857696890831, 0.00023953753407113254], [-0.011842163279652596, 0.00023171660723164678], [-0.011735652573406696, 0.00022398158034775406], [-0.011630349792540073, 0.0002163343015126884], [-0.011526280082762241, 0.0002087765169562772], [-0.011423463933169842, 0.00020130985649302602], [-0.01132192462682724, 0.0001939358771778643], [-0.011221681721508503, 0.00018665599054656923], [-0.011122751981019974, 0.000179471549927257], [-0.011025154031813145, 0.0001723837631288916], [-0.010928901843726635, 0.00016539379430469126], [-0.010834011249244213, 0.000158502662088722], [-0.010740495286881924, 0.00015171131235547364], [-0.010648364201188087, 0.00014502058911602944], [-0.0105576291680336, 0.00013843123451806605], [-0.010468299500644207, 0.00013194391794968396], [-0.010380381718277931, 0.0001255592069355771], [-0.010293884202837944, 0.00011927758168894798], [-0.010208811610937119, 0.00011309944238746539], [-0.010125168599188328, 0.00010702508734539151], [-0.010042957030236721, 0.00010105474939337], [-0.009962179698050022, 9.518857405055314e-05], [-0.00988283846527338, 8.942661952460185e-05], [-0.009804931469261646, 8.376888581551611e-05], [-0.00972845871001482, 7.821528561180457e-05], [-0.009653417393565178, 7.276564429048449e-05], [-0.009579804725944996, 6.741975812474266e-05], [-0.009507616981863976, 6.217730697244406e-05], [-0.009436847642064095, 5.703793067368679e-05], [-0.00936749204993248, 5.2001207222929224e-05], [-0.00929954368621111, 4.706664549303241e-05], [-0.009232994168996811, 4.2233685235260054e-05], [-0.009167835116386414, 3.750172982108779e-05], [-0.009104058146476746, 3.287010622443631e-05], [-0.009041653014719486, 2.8338105039438233e-05], [-0.00898060854524374, 2.3904956833575852e-05], [-0.008920914493501186, 1.956984488060698e-05], [-0.00886255782097578, 1.5331908798543736e-05], [-0.008805527351796627, 1.1190240002179053e-05], [-0.008694091811776161, 3.0975461413618177e-06], [-0.008637061342597008, -1.0441219728818396e-06], [-0.008578704670071602, -5.282058737066109e-06], [-0.008519010618329048, -9.617170690034982e-06], [-0.008457966148853302, -1.4050319805392064e-05], [-0.008395561017096043, -1.8582320990390144e-05], [-0.008331784047186375, -2.321394276805222e-05], [-0.008266624994575977, -2.7945900001213886e-05], [-0.008200075477361679, -3.277885843999684e-05], [-0.008132127113640308, -3.771342380787246e-05], [-0.008062771521508694, -4.275014725863002e-05], [-0.007992002181708813, -4.7889519919408485e-05], [-0.007919814437627792, -5.313196743372828e-05], [-0.00784620177000761, -5.847786087542772e-05], [-0.007771160453557968, -6.39274949207902e-05], [-0.007694687694311142, -6.948110240045935e-05], [-0.007616781163960695, -7.513883610954508e-05], [-0.007537439465522766, -8.090078335953876e-05], [-0.0074566625989973545, -8.676696597831324e-05], [-0.007374451030045748, -9.273730393033475e-05], [-0.00729080755263567, -9.881165169645101e-05], [-0.007205734960734844, -0.00010498979827389121], [-0.007119237445294857, -0.00011127142352052033], [-0.0070313201285898685, -0.0001176561345346272], [-0.006941990461200476, -0.00012414345110300928], [-0.006851255428045988, -0.00013073280570097268], [-0.006759124342352152, -0.00013742352894041687], [-0.006665607914328575, -0.00014421487867366523], [-0.006570717319846153, -0.0001511060108896345], [-0.006474465597420931, -0.00015809597971383482], [-0.0063768671825528145, -0.00016518376651220024], [-0.006277937907725573, -0.00017236820713151246], [-0.006177694536745548, -0.00017964809376280755], [-0.0060761552304029465, -0.00018702207307796925], [-0.005973339546471834, -0.0001944887189893052], [-0.005869269371032715, -0.00020204651809763163], [-0.005763966590166092, -0.0002096937969326973], [-0.005657455883920193, -0.00021742882381659], [-0.0055497619323432446, -0.00022524975065607578], [-0.005440912209451199, -0.00023315464204642922], [-0.005330934654921293, -0.00024114141706377268], [-0.005219859536737204, -0.00024920792202465236], [-0.005107717588543892, -0.0002573518722783774], [-0.00499454140663147, -0.0002655709395185113], [-0.004880365915596485, -0.00027386259171180427], [-0.004765226040035486, -0.00028222426772117615], [-0.004649159032851458, -0.00029065326089039445], [-0.004532203543931246, -0.0002991468063555658], [-0.004414399154484272, -0.0003077019937336445], [-0.004295787774026394, -0.00031631579622626305], [-0.004176411312073469, -0.00032498512882739305], [-0.004056314937770367, -0.0003337067610118538], [-0.003935543354600668, -0.00034247743315063417], [-0.003814143594354391, -0.0003512937109917402], [-0.0036921638529747725, -0.0003601521020755172], [-0.003569653956219554, -0.00036904902663081884], [-0.003446664661169052, -0.00037798075936734676], [-0.003323247656226158, -0.00038694351678714156], [-0.003199456725269556, -0.00039593345718458295], [-0.003075346117839217, -0.0004049466224387288], [-0.002950971480458975, -0.0004139789380133152], [-0.002826389856636524, -0.0004230263002682477], [-0.0027016587555408478, -0.0004320845182519406], [-0.0025768375489860773, -0.0004411492554936558], [-0.002451986074447632, -0.00045021623373031616], [-0.0023271653335541487, -0.0004592809418682009], [-0.002202437026426196, -0.0004683389561250806], [-0.0020778640173375607, -0.00047738567809574306], [-0.0019535101018846035, -0.00048641650937497616], [-0.0018294394249096513, -0.0004954267642460763], [-0.001705717178992927, -0.0005044116987846792], [-0.001582409255206585, -0.0005133665399625897], [-0.0014595820102840662, -0.0005222865147516131], [-0.0013373024994507432, -0.0005311666755005717], [-0.0012156381271779537, -0.0005400021909736097], [-0.0010946569964289665, -0.0005487881135195494], [-0.0009744272101670504, -0.0005575193790718913], [-0.0008550176862627268, -0.0005661911563947797], [-0.0007364972843788564, -0.0005747983232140541], [-0.0006189350970089436, -0.0005833359318785369], [-0.0005024004494771361, -0.0005917989183217287], [-0.00038696269621141255, -0.0006001822184771299], [-0.0002726911334320903, -0.0006084808264859021], [-0.00015965505735948682, -0.0006166897364892066], [-4.7923618694767356e-05, -0.0006248038844205439], [6.243425741558895e-05, -0.0006328182644210756], [0.00017134992231149226, -0.0006407279288396239], [0.0002787550329230726, -0.0006485279300250113], [0.0003845817409455776, -0.0006562132621183991], [0.0004887625691480935, -0.0006637790938839316], [0.0005912307533435524, -0.000671220535878092], [0.0006919199950061738, -0.0006785327568650246], [0.0007907647523097694, -0.0006857110420241952], [0.0008877003565430641, -0.0006927506765350699], [0.000982662895694375, -0.0006996470619924366], [0.001075589214451611, -0.0007063955417834222], [0.001166417496278882, -0.0007129916921257973], [0.0012550866231322289, -0.0007194310310296714], [0.0013415367575362325, -0.0007257091929204762], [0.001425709342584014, -0.0007318219286389649], [0.001507546752691269, -0.0007377651636488736], [0.0015869931085035205, -0.0007435347069986165], [0.0016639934619888663, -0.0007491266005672514], [0.0017384947277605534, -0.0007545370026491582], [0.001810444868169725, -0.0007597621879540384], [0.0018797939410433173, -0.0007647984311915934], [0.001946493168361485, -0.0007696422981098294], [0.0020104956347495317, -0.0007742902962490916], [0.0020717564038932323, -0.0007787391077727079], [0.002130231587216258, -0.0007829857058823109], [0.002185879973694682, -0.000787027005571872], [0.0022386617492884398, -0.0007908601546660066], [0.0022885394282639027, -0.0007944823591969907], [0.0023354769218713045, -0.0007978910580277443], [0.002379440702497959, -0.000801083748228848], [0.002420398872345686, -0.0008040582179091871], [0.002458321861922741, -0.0008068122551776469], [0.0024931824300438166, -0.0008093439391814172], [0.0025249551981687546, -0.0008116512908600271], [0.0025536171160638332, -0.0008137327968142927], [0.0025791474618017673, -0.0008155868272297084], [0.0026015271432697773, -0.0008172121015377343], [0.0026207403279840946, -0.000818607397377491], [0.0026367728132754564, -0.0008197717252187431], [0.00264961295761168, -0.0008207042119465768], [0.0026592512149363756, -0.0008214041590690613], [0.0026656808331608772, -0.0008218711009249091], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.0026692987885326147, -0.0008221337920986116], [0.00266845291480422, -0.0008218733128160238], [0.0026669499929994345, -0.0008214104454964399], [0.0026646971236914396, -0.0008207164937630296], [0.002661695471033454, -0.0008197920979000628], [0.0026579478289932013, -0.0008186377817764878], [0.002653456525877118, -0.0008172545349225402], [0.002648225286975503, -0.0008156432304531336], [0.002642257371917367, -0.0008138051489368081], [0.0026355574373155832, -0.0008117416291497648], [0.0026281303726136684, -0.0008094541262835264], [0.002619981300085783, -0.0008069442701525986], [0.0026111165061593056, -0.0008042139234021306], [0.002601542277261615, -0.0008012651233002543], [0.0025912653654813766, -0.0007980998489074409], [0.0025802934542298317, -0.0007947205449454486], [0.0025686342269182205, -0.0007911295397207141], [0.0025562960654497147, -0.0007873294525779784], [0.002543287817388773, -0.0007833229610696435], [0.0025296187959611416, -0.0007791129755787551], [0.002515298780053854, -0.000774702406488359], [0.0025003377813845873, -0.0007700944552198052], [0.002484746277332306, -0.0007652923814021051], [0.0024685354437679052, -0.0007602995028719306], [0.0024517164565622807, -0.0007551193702965975], [0.002434301422908902, -0.0007497555343434215], [0.0024163019843399525, -0.0007442117785103619], [0.0023977309465408325, -0.0007384919445030391], [0.002378600649535656, -0.0007325999322347343], [0.0023589248303323984, -0.0007265398162417114], [0.0023387165274471045, -0.0007203157292678952], [0.0023179894778877497, -0.0007139319204725325], [0.0022967576514929533, -0.000707392580807209], [0.002275035483762622, -0.000700702250469476], [0.0022528371773660183, -0.0006938652950339019], [0.00223017786629498, -0.0006868862546980381], [0.0022070722188800573, -0.0006797698442824185], [0.0021835353691130877, -0.0006725205457769334], [0.002159582683816552, -0.0006651432486250997], [0.0021352297626435757, -0.0006576426094397902], [0.0021104919724166393, -0.000650023459456861], [0.0020853851456195116, -0.0006422906881198287], [0.0020599253475666046, -0.00063444918487221], [0.002034128410741687, -0.0006265037809498608], [0.0020080104004591703, -0.0006184595404192805], [0.0019815873820334673, -0.0006103213527239859], [0.0019548756536096334, -0.0006020942237228155], [0.001927891164086759, -0.0005937831592746079], [0.0019006504444405437, -0.0005853930488228798], [0.0018731694435700774, -0.0005769290146417916], [0.0018454643432050943, -0.0005683960043825209], [0.001817551557905972, -0.0005597989656962454], [0.0017894470365718007, -0.0005511428462341428], [0.0017611667281016707, -0.0005424326518550515], [0.001732726814225316, -0.0005336732720024884], [0.001704143127426505, -0.0005248695961199701], [0.0016754313837736845, -0.0005160264554433525], [0.001646607299335301, -0.0005071487394161522], [0.0016176863573491573, -0.0004982412210665643], [0.0015886839246377349, -0.0004893085570074618], [0.001559615251608193, -0.00048035554937087], [0.001530495472252369, -0.00047138676745817065], [0.001501339371316135, -0.00046240678057074547], [0.0014721615007147193, -0.0004534201289061457], [0.001442976645193994, -0.00044443129445426166], [0.0014137987745925784, -0.00043544461368583143], [0.0013846419751644135, -0.0004264644521754235], [0.0013555201003327966, -0.0004174950299784541], [0.0013264466542750597, -0.00040854050894267857], [0.001297434908337891, -0.0003996049927081913], [0.0012684979010373354, -0.00039069249760359526], [0.0012396483216434717, -0.0003818069526460022], [0.0012108986265957355, -0.00037295217043720186], [0.0011822610395029187, -0.00036413190537132323], [0.0011537474347278476, -0.00035534982453100383], [0.0011253694538027048, -0.0003466094785835594], [0.001097138156183064, -0.0003379143599886447], [0.0010690647177398205, -0.0003292678447905928], [0.0010411596158519387, -0.00032067319261841476], [0.0010134333278983831, -0.00031213360489346087], [0.000985895749181509, -0.0003036521375179291], [0.000958556542173028, -0.00029523175908252597], [0.0009314250783063471, -0.0002868753799702972], [0.0009045103215612471, -0.00027858573594130576], [0.000877820944879204, -0.0002703655045479536], [0.0008513652719557285, -0.00026221724692732096], [0.0008251512772403657, -0.00025414343690499663], [0.0007991865859366953, -0.00024614643189124763], [0.0007734785904176533, -0.0002382284583291039], [0.0007480341591872275, -0.0002303916699020192], [0.0007228599861264229, -0.00022263811843004078], [0.0006979622412472963, -0.00021496971021406353], [0.0006733470363542438, -0.00020738830789923668], [0.000649019842967391, -0.00019989562861155719], [0.0006249860161915421, -0.00019249330216553062], [0.0006012504454702139, -0.00018518284196034074], [0.0005778177874162793, -0.00017796567408367991], [0.000554692349396646, -0.00017084312275983393], [0.0005318780313245952, -0.00016381639579776675], [0.0005093785584904253, -0.0001568866427987814], [0.0004871971905231476, -0.00015005488239694387], [0.0004653370415326208, -0.00014332203136291355], [0.0004438007599674165, -0.00013668893370777369], [0.00042259079054929316, -0.00013015634613111615], [0.00040170925785787404, -0.00012372492346912622], [0.0003811580245383084, -0.00011739521141862497], [0.0003609385748859495, -0.00011116770474473014], [0.0003410522185731679, -0.0001050427817972377], [0.0003214999451301992, -9.902075544232503e-05], [0.00030228248215280473, -9.310185123467818e-05], [0.00028340029530227184, -8.728620741749182e-05], [0.0002648535883054137, -8.15738967503421e-05], [0.0002466423320583999, -7.596489740535617e-05], [0.0002287662646267563, -7.045913662295789e-05], [0.00021122486214153469, -6.505644705612212e-05], [0.00019401736790314317, -5.975661042612046e-05], [0.00017714285058900714, -5.45593211427331e-05], [0.00016060011694207788, -4.946422268403694e-05], [0.00014438778453040868, -4.447088940651156e-05], [0.00012850429629907012, -3.9578833820996806e-05], [0.00011294785508653149, -3.4787510230671614e-05], [9.77165182121098e-05, -3.0096314731054008e-05], [8.280814654426649e-05, -2.5504594304948114e-05], [6.822043360443786e-05, -2.101163408951834e-05], [5.3950909205013886e-05, -1.6616673747194e-05], [3.9996946725295857e-05, -1.2318907465669326e-05], [2.635577584442217e-05, -8.117478500935249e-06], [1.3024477084400132e-05, -4.011489181721117e-06]]}, {"name": "CX_d7_u12", "samples": [[-4.747937782667577e-05, 5.603913450613618e-06], [-9.607723768567666e-05, 1.1339840057189576e-05], [-0.00014580471906811, 1.7209093130077235e-05], [-0.0001966724230442196, 2.3212925952975638e-05], [-0.0002486904850229621, 2.9352533601922914e-05], [-0.0003018684801645577, 3.562904385034926e-05], [-0.00035621540155261755, 4.2043524445034564e-05], [-0.00041173966019414365, 4.859696127823554e-05], [-0.00046844902681186795, 5.5290274758590385e-05], [-0.0005263506318442523, 6.212430889718235e-05], [-0.0005854510236531496, 6.909982766956091e-05], [-0.0006457557901740074, 7.621750410180539e-05], [-0.0007072701118886471, 8.347794209839776e-05], [-0.0007699982379563153, 9.088163642445579e-05], [-0.0008339436026290059, 9.84290090855211e-05], [-0.0008991089998744428, 0.0001061203729477711], [-0.0009654962341301143, 0.00011395594628993422], [-0.001033106236718595, 0.00012193585280328989], [-0.0011019393568858504, 0.00013006009976379573], [-0.001171994605101645, 0.0001383286144118756], [-0.0012432703515514731, 0.00014674117846880108], [-0.0013157640350982547, 0.00015529748634435236], [-0.0013894719304516912, 0.0001639971014810726], [-0.0014643893809989095, 0.00017283948545809835], [-0.001540510798804462, 0.00018182398343924433], [-0.0016178294317796826, 0.00019094978051725775], [-0.0016963377129286528, 0.00020021597447339445], [-0.0017760266782715917, 0.00020962153212167323], [-0.001856886432506144, 0.00021916527475696057], [-0.0019389060325920582, 0.0002288459218107164], [-0.0020220731385052204, 0.00023866200353950262], [-0.0021063745953142643, 0.0002486119628883898], [-0.0021917959675192833, 0.0002586941118352115], [-0.002278321422636509, 0.000268906558630988], [-0.002365934196859598, 0.00027924738242290914], [-0.0024546165950596333, 0.0002897144004236907], [-0.0025443488266319036, 0.000300305342534557], [-0.002635110868141055, 0.0003110178222414106], [-0.002726880833506584, 0.00032184927840717137], [-0.002819635672494769, 0.0003327970043756068], [-0.002913351636379957, 0.0003438581479713321], [-0.0030080031137913465, 0.0003550297114998102], [-0.0031035635620355606, 0.0003663085517473519], [-0.0032000048086047173, 0.000377691350877285], [-0.003297298215329647, 0.0003891747328452766], [-0.0033954132813960314, 0.00040075508877635], [-0.0034943181090056896, 0.0004124286933802068], [-0.003593980334699154, 0.0004241916467435658], [-0.003694365732371807, 0.00043603996164165437], [-0.0037954391445964575, 0.0004479695053305477], [-0.003897164249792695, 0.0004599759413395077], [-0.0039995028637349606, 0.0004720548167824745], [-0.004102417267858982, 0.0004842015914618969], [-0.004205866251140833, 0.0004964115214534104], [-0.0043098097667098045, 0.0005086798337288201], [-0.004414204973727465, 0.0005210014060139656], [-0.004519009031355381, 0.0005333712324500084], [-0.004624177236109972, 0.0005457840743474662], [-0.0047296639531850815, 0.0005582345183938742], [-0.004835423082113266, 0.0005707171512767673], [-0.0049414075911045074, 0.000583226268645376], [-0.005047568120062351, 0.0005957562825642526], [-0.005153856240212917, 0.000608301255851984], [-0.005260221194475889, 0.0006208553095348179], [-0.005366611760109663, 0.0006334124482236803], [-0.005472976248711348, 0.0006459665019065142], [-0.005579262040555477, 0.000658511184155941], [-0.005685415118932724, 0.000671040266752243], [-0.005791381932795048, 0.0006835473468527198], [-0.005897107068449259, 0.0006960259634070098], [-0.006002535577863455, 0.0007084694807417691], [-0.006107610650360584, 0.0007208713213913143], [-0.00621227640658617, 0.0007332248496823013], [-0.006316475570201874, 0.0007455233135260642], [-0.006420150399208069, 0.0007577598444186151], [-0.006523242685943842, 0.0007699277484789491], [-0.006625695154070854, 0.0007820199825800955], [-0.0067274486646056175, 0.0007940297946333885], [-0.006828444078564644, 0.0008059501415118575], [-0.00692862318828702, 0.0008177740965038538], [-0.007027926854789257, 0.0008294947328977287], [-0.00712629547342658, 0.0008411050657741725], [-0.007223670836538076, 0.0008525981102138758], [-0.007319992873817682, 0.0008639668230898678], [-0.0074152033776044846, 0.0008752043941058218], [-0.0075092436745762825, 0.0008863037801347673], [-0.007602054625749588, 0.0008972581708803773], [-0.007693578954786062, 0.0009080605814233422], [-0.007783757522702217, 0.0009187042596749961], [-0.007872533984482288, 0.0009291823953390121], [-0.007959851063787937, 0.0009394882363267243], [-0.008045651949942112, 0.0009496152051724494], [-0.00812988169491291, 0.0009595566662028432], [-0.008212483488023281, 0.0009693061001598835], [-0.008293405175209045, 0.0009788570459932089], [-0.008372590877115726, 0.0009882033336907625], [-0.00844998937100172, 0.000997338443994522], [-0.008525547571480274, 0.0010062564397230744], [-0.008599215187132359, 0.0010149513836950064], [-0.008670941926538944, 0.001023417105898261], [-0.008740678429603577, 0.0010316480183973908], [-0.00880837719887495, 0.0010396384168416262], [-0.00887399259954691, 0.0010473828297108412], [-0.008937478065490723, 0.0010548759019002318], [-0.008998788893222809, 0.001062112394720316], [-0.009057884104549885, 0.001069087302312255], [-0.009114720858633518, 0.0010757956188172102], [-0.009169260039925575, 0.0010822328040376306], [-0.009221462532877922, 0.001088394201360643], [-0.009271291084587574, 0.0010942753870040178], [-0.00931871123611927, 0.0010998722864314914], [-0.00936368852853775, 0.0011051809415221214], [-0.009406191296875477, 0.0011101973941549659], [-0.009446188807487488, 0.0011149182682856917], [-0.00948365218937397, 0.0011193399550393224], [-0.009518553502857685, 0.0011234594276174903], [-0.009550869464874268, 0.0011272735428065062], [-0.009580575861036777, 0.0011307797394692898], [-0.009607650339603424, 0.0011339753400534391], [-0.009632074274122715, 0.0011368580162525177], [-0.009653829038143158, 0.0011394257890060544], [-0.009672899730503559, 0.0011416766792535782], [-0.0096892723813653, 0.0011436090571805835], [-0.009702933952212334, 0.0011452215258032084], [-0.009713876061141491, 0.0011465129209682345], [-0.00972208846360445, 0.0011474823113530874], [-0.009727567434310913, 0.001148128998465836], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009730651043355465, 0.0011484927963465452], [-0.009725634008646011, 0.0011480810353532434], [-0.009716720320284367, 0.001147349365055561], [-0.009703356772661209, 0.0011462523834779859], [-0.00968555361032486, 0.0011447910219430923], [-0.009663324803113937, 0.001142966328188777], [-0.009636685252189636, 0.0011407796991989017], [-0.009605655446648598, 0.0011382326483726501], [-0.009570258669555187, 0.0011353270383551717], [-0.00953051820397377, 0.0011320649646222591], [-0.009486465714871883, 0.0011284488718956709], [-0.009438131004571915, 0.0011244813213124871], [-0.009385551325976849, 0.0011201652232557535], [-0.00932876206934452, 0.0011155037209391594], [-0.009267807006835938, 0.0011105001904070377], [-0.009202728047966957, 0.0011051581241190434], [-0.009133572690188885, 0.0010994815966114402], [-0.009060390293598175, 0.0010934743331745267], [-0.008983233943581581, 0.001087140990421176], [-0.00890215765684843, 0.0010804857593029737], [-0.008817220106720924, 0.0010735136456787586], [-0.008728480897843838, 0.0010662294225767255], [-0.00863600242882967, 0.0010586383286863565], [-0.008539849892258644, 0.001050745602697134], [-0.008440091274678707, 0.0010425569489598274], [-0.008336794562637806, 0.0010340778389945626], [-0.00823003426194191, 0.0010253143263980746], [-0.00811988115310669, 0.0010162724647670984], [-0.008006413467228413, 0.0010069584241136909], [-0.007889708504080772, 0.0009973786072805524], [-0.007769845426082611, 0.0009875396499410272], [-0.0076469057239592075, 0.0009774480713531375], [-0.0075209722854197025, 0.0009671107982285321], [-0.007392129860818386, 0.0009565347572788596], [-0.00726046459749341, 0.0009457269334234297], [-0.007126063108444214, 0.0009346946026198566], [-0.0069890148006379604, 0.0009234449826180935], [-0.006849409081041813, 0.0009119854075834155], [-0.006707337219268084, 0.0009003233863040805], [-0.006562890484929085, 0.0008884664275683463], [-0.006416161544620991, 0.0008764221565797925], [-0.006267244461923838, 0.0008641982567496598], [-0.006116232834756374, 0.0008518024114891887], [-0.005963221658021212, 0.0008392424206249416], [-0.00580830592662096, 0.0008265261421911418], [-0.005651581566780806, 0.0008136613760143518], [-0.005493144039064646, 0.0008006559801287949], [-0.005333089269697666, 0.0007875178707763553], [-0.005171514116227627, 0.0007742549059912562], [-0.005008514039218426, 0.000760875060223043], [-0.004844185430556536, 0.0007473860750906169], [-0.004678624216467142, 0.0007337959250435233], [-0.004511925857514143, 0.0007201124681159854], [-0.004344185348600149, 0.0007063434459269047], [-0.004175497684627771, 0.0006924966583028436], [-0.004005956929177046, 0.0006785798468627036], [-0.0038356571458280087, 0.0006646007532253861], [-0.0036646907683461905, 0.0006505669443868101], [-0.0034931497648358345, 0.0006364859291352332], [-0.0033211258705705404, 0.0006223653326742351], [-0.0031487089581787586, 0.0006082124309614301], [-0.002975988667458296, 0.0005940346163697541], [-0.002803053008392453, 0.0005798391648568213], [-0.0026299888268113136, 0.0005656331777572632], [-0.002456882270053029, 0.0005514236399903893], [-0.002283817622810602, 0.0005372175946831703], [-0.0021108780056238174, 0.0005230217939242721], [-0.0019381454912945628, 0.0005088429898023605], [-0.0017657000571489334, 0.0004946878179907799], [-0.0015936206327751279, 0.0004805625940207392], [-0.0014219844015315175, 0.00046647380804643035], [-0.001250866916961968, 0.00045242757187224925], [-0.0010803421027958393, 0.0004384299973025918], [-0.0009104820783250034, 0.00042448699241504073], [-0.0007413573912344873, 0.00041060434887185693], [-0.0005730367265641689, 0.000396787712816149], [-0.00040558684850111604, 0.00038304252666421235], [-0.00023907277500256896, 0.00036937417462468147], [-7.355763227678835e-05, 0.0003557878371793777], [9.089737432077527e-05, 0.00034228849108330905], [0.000254232989391312, 0.0003288810548838228], [0.0004163918783888221, 0.00031557021429762244], [0.0005773186567239463, 0.0003023604804184288], [0.0007369600352831185, 0.00028925627702847123], [0.000895264616701752, 0.00027626179507933557], [0.0010521829826757312, 0.0002633811382111162], [0.0012076677521690726, 0.00025061811902560294], [0.0013616736978292465, 0.00023797649191692472], [0.0015141575131565332, 0.00022545982210431248], [0.0016650777542963624, 0.00021307150018401444], [0.0018143951892852783, 0.00020081472757738084], [0.001962072681635618, 0.00018869258929044008], [0.002108074724674225, 0.0001767079666024074], [0.0022523682564496994, 0.0001648635952733457], [0.0023949218448251486, 0.00015316205099225044], [0.002535706153139472, 0.00014160573482513428], [0.002674693940207362, 0.00013019688776694238], [0.002811859594658017, 0.00011893761256942526], [0.002947179600596428, 0.00010782983008539304], [0.0030806323047727346, 9.687533020041883e-05], [0.0032121979165822268, 8.607572090113536e-05], [0.0033418587408959866, 7.543248648289591e-05], [0.0034695982467383146, 6.494695116998628e-05], [0.0035954024642705917, 5.462029002956115e-05], [0.0037192583549767733, 4.445353624760173e-05], [0.0038411554414778948, 3.444758476689458e-05], [0.00396108441054821, 2.4603185011073947e-05], [0.004079037811607122, 1.4920958165021148e-05], [0.004195009358227253, 5.401387170422822e-06], [0.004308995325118303, -3.955173269787338e-06], [0.004420992452651262, -1.3148494872439187e-05], [0.004530999809503555, -2.2178475774126127e-05], [0.004639017395675182, -3.104513234575279e-05], [0.004745047073811293, -3.9748596464050934e-05], [0.00484909163787961, -4.828912642551586e-05], [0.004951155744493008, -5.666707147611305e-05], [0.005051244515925646, -6.488290091510862e-05], [0.005149365868419409, -7.29371968191117e-05], [0.005245526786893606, -8.083062130026519e-05], [0.005339737981557846, -8.856394561007619e-05], [0.005432008765637875, -9.613802831154317e-05], [0.005522351711988449, -0.0001035538298310712], [0.005610778462141752, -0.00011081239063059911], [0.005697303451597691, -0.00011791482393164188], [0.005781941581517458, -0.00012486234481912106], [0.005864707753062248, -0.00013165621203370392], [0.005945618264377117, -0.00013829780800733715], [0.00602469127625227, -0.00014478851517196745], [0.00617919722571969, -0.00015747117868158966], [0.006258270237594843, -0.00016396190039813519], [0.006339180748909712, -0.0001706034818198532], [0.006421946920454502, -0.00017739736358635128], [0.006506584584712982, -0.00018434486992191523], [0.006593110039830208, -0.0001914473104989156], [0.006681536789983511, -0.0001987058640224859], [0.0067718797363340855, -0.00020612166554201394], [0.006864150520414114, -0.00021369576279539615], [0.006958361249417067, -0.00022142908710520715], [0.007054522633552551, -0.00022932251158636063], [0.007152643986046314, -0.0002373767929384485], [0.007252732757478952, -0.0002455926442053169], [0.00735479686409235, -0.0002539705892559141], [0.007458841428160667, -0.0002625111083034426], [0.007564871106296778, -0.00027121457969769835], [0.007672888692468405, -0.000280081236269325], [0.007782896049320698, -0.0002891111944336444], [0.007894893176853657, -0.0002983045415021479], [0.00800887867808342, -0.0003076611028518528], [0.008124850690364838, -0.00031718064565211535], [0.008242803625762463, -0.00032686287886463106], [0.008362732827663422, -0.0003367072786204517], [0.008484629914164543, -0.00034671323373913765], [0.008608486503362656, -0.00035687998752109706], [0.008734290488064289, -0.00036720666685141623], [0.008862029761075974, -0.00037769219488836825], [0.00899169035255909, -0.0003883354365825653], [0.009123256430029869, -0.00039913502405397594], [0.00925670936703682, -0.00041008953121490777], [0.0093920286744833, -0.0004211973282508552], [0.009529194794595242, -0.0004324565816204995], [0.009668182581663132, -0.0004438654286786914], [0.009808966889977455, -0.00045542174484580755], [0.009951519779860973, -0.0004671233182307333], [0.010095813311636448, -0.00047896767500787973], [0.010241815820336342, -0.0004909522831439972], [0.010389492847025394, -0.0005030744359828532], [0.01053881086409092, -0.000515331223141402], [0.010689730755984783, -0.0005277195014059544], [0.010842214338481426, -0.0005402361857704818], [0.010996220633387566, -0.0005528778419829905], [0.011151705868542194, -0.0005656408029608428], [0.011308623477816582, -0.0005785215180367231], [0.011466928757727146, -0.0005915159708820283], [0.01162656955420971, -0.0006046202033758163], [0.011787496507167816, -0.0006178299081511796], [0.01194965559989214, -0.0006311407778412104], [0.012112990953028202, -0.0006445482140406966], [0.012277445755898952, -0.0006580475601367652], [0.01244296133518219, -0.0006716338684782386], [0.012609475292265415, -0.0006853022496215999], [0.012776925228536129, -0.0006990474066697061], [0.012945245951414108, -0.000712864042725414], [0.01311437040567398, -0.0007267466862685978], [0.0132842306047678, -0.0007406896911561489], [0.013454755768179893, -0.0007546872948296368], [0.013625873252749443, -0.0007687335018999875], [0.013797509483993053, -0.0007828223169781268], [0.013969588093459606, -0.000796947511844337], [0.014142033644020557, -0.0008111027418635786], [0.01431476604193449, -0.0008252814877778292], [0.014487706124782562, -0.0008394772885367274], [0.014660771004855633, -0.0008536833338439465], [0.014833876863121986, -0.0008678928716108203], [0.015006941743195057, -0.0008820988587103784], [0.015179877169430256, -0.0008962943684309721], [0.015352597460150719, -0.0009104721248149872], [0.015525014139711857, -0.0009246250265277922], [0.015697037801146507, -0.0009387456811964512], [0.01586857996881008, -0.0009528266382403672], [0.016039544716477394, -0.0009668604470789433], [0.01620984636247158, -0.0009808395989239216], [0.01637938618659973, -0.0009947563521564007], [0.016548072919249535, -0.0010086031397804618], [0.01671581342816353, -0.0010223721619695425], [0.016882512718439102, -0.0010360556188970804], [0.017048073932528496, -0.001049645827151835], [0.0172124020755291, -0.0010631347540766], [0.0173754021525383, -0.0010765145998448133], [0.01753697730600834, -0.0010897775646299124], [0.017697032541036606, -0.001102915732190013], [0.01785546913743019, -0.001115921069867909], [0.018012193962931633, -0.0011287858942523599], [0.01816711015999317, -0.0011415021726861596], [0.018320120871067047, -0.0011540621053427458], [0.018471132963895798, -0.001166457892395556], [0.018620049580931664, -0.0011786818504333496], [0.018766779452562332, -0.0011907260632142425], [0.018911225721240044, -0.0012025830801576376], [0.019053297117352486, -0.0012142451014369726], [0.019192904233932495, -0.0012257046764716506], [0.01932995207607746, -0.0012369543546810746], [0.01946435309946537, -0.0012479866854846478], [0.01959601789712906, -0.0012587944511324167], [0.019724860787391663, -0.00126937055028975], [0.019850794225931168, -0.0012797077652066946], [0.01997373439371586, -0.0012897993437945843], [0.02009359747171402, -0.0012996383011341095], [0.020210301503539085, -0.001309218117967248], [0.020323770120739937, -0.0013185321586206555], [0.020433923229575157, -0.0013275740202516317], [0.02054068259894848, -0.0013363375328481197], [0.02064397931098938, -0.0013448166428133845], [0.02074373885989189, -0.0013530052965506911], [0.020839890465140343, -0.0013608980225399137], [0.02093236893415451, -0.0013684891164302826], [0.021021109074354172, -0.0013757733395323157], [0.021106045693159103, -0.0013827455695718527], [0.02118712291121483, -0.001389400684274733], [0.021264279261231422, -0.0013957340270280838], [0.021337460726499557, -0.0014017412904649973], [0.021406617015600204, -0.0014074178179726005], [0.021471695974469185, -0.0014127598842605948], [0.021532651036977768, -0.0014177634147927165], [0.02158943936228752, -0.0014224249171093106], [0.021642019972205162, -0.0014267410151660442], [0.021690353751182556, -0.001430708565749228], [0.021734407171607018, -0.0014343246584758162], [0.02177414670586586, -0.0014375867322087288], [0.021809544414281845, -0.0014404923422262073], [0.021840574219822884, -0.0014430393930524588], [0.021867213770747185, -0.001445226022042334], [0.021889442577958107, -0.0014470507157966495], [0.021907245740294456, -0.001448512077331543], [0.02192060835659504, -0.0014496090589091182], [0.02192952297627926, -0.0014503407292068005], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021934539079666138, -0.0014507524902001023], [0.021927589550614357, -0.0014502928825095296], [0.021915240213274956, -0.0014494761126115918], [0.0218967255204916, -0.0014482515398412943], [0.021872062236070633, -0.0014466203283518553], [0.02184126526117325, -0.0014445834094658494], [0.021804358810186386, -0.0014421424129977822], [0.021761370822787285, -0.001439299201592803], [0.021712331101298332, -0.001436055637896061], [0.021657275035977364, -0.0014324142830446362], [0.021596243605017662, -0.0014283776981756091], [0.02152928151190281, -0.0014239487936720252], [0.021456437185406685, -0.0014191308291628957], [0.02137776091694832, -0.0014139271806925535], [0.021293314173817635, -0.0014083418063819408], [0.02120315283536911, -0.001402378547936678], [0.021107345819473267, -0.0013960418291389942], [0.021005958318710327, -0.0013893360737711191], [0.02089906483888626, -0.0013822661712765694], [0.020786741748452187, -0.0013748371275141835], [0.02066906914114952, -0.0013670541811734438], [0.02054612897336483, -0.0013589229201897979], [0.020418008789420128, -0.0013504490489140153], [0.020284799858927727, -0.001341638620942831], [0.02014659158885479, -0.0013324975734576583], [0.020003486424684525, -0.0013230325421318412], [0.019855579361319542, -0.0013132499298080802], [0.01970297284424305, -0.0013031566049903631], [0.019545774906873703, -0.0012927594361826777], [0.019384091719985008, -0.0012820656411349773], [0.01921803131699562, -0.001271082554012537], [0.019047711044549942, -0.00125981739256531], [0.018873242661356926, -0.0012482780730351806], [0.018694743514060974, -0.0012364721624180675], [0.018512332811951637, -0.001224407576955855], [0.018326133489608765, -0.0012120922328904271], [0.018136266618967056, -0.0011995343957096338], [0.01794285513460636, -0.001186742214486003], [0.017746029421687126, -0.001173724071122706], [0.0175459124147892, -0.0011604883475229144], [0.01734263263642788, -0.0011470434255897999], [0.01713632233440876, -0.0011333980364724994], [0.01692711003124714, -0.0011195606784895062], [0.01671512797474861, -0.0011055401992052794], [0.016500506550073624, -0.0010913452133536339], [0.01628337986767292, -0.001076984335668385], [0.016063880175352097, -0.0010624666465446353], [0.015842139720916748, -0.0010478007607161999], [0.015618293546140194, -0.0010329954093322158], [0.015392472967505455, -0.0010180596727877855], [0.015164811164140701, -0.0010030020494014025], [0.014935442246496677, -0.0009878316195681691], [0.014704497531056404, -0.0009725568816065788], [0.014472109265625477, -0.0009571866830810905], [0.014238408766686916, -0.0009417296969331801], [0.014003526419401169, -0.0009261945961043239], [0.013767591677606106, -0.0009105898789130151], [0.013530733995139599, -0.0008949241018854082], [0.01329308096319437, -0.0008792056469246745], [0.013054758310317993, -0.0008634429541416466], [0.01281589176505804, -0.0008476442890241742], [0.012576604261994362, -0.0008318178006447852], [0.012337017804384232, -0.0008159715798683465], [0.012097254395484924, -0.0008001136011444032], [0.011857431381940842, -0.0007842516642995179], [0.01161766704171896, -0.0007683936273679137], [0.011378075927495956, -0.0007525470573455095], [0.011138771660625935, -0.0007367194630205631], [0.010899865068495274, -0.0007209181203506887], [0.010661466047167778, -0.0007051503635011613], [0.01042367983609438, -0.0006894232355989516], [0.010186613537371159, -0.0006737436051480472], [0.009950367733836174, -0.0006581182824447751], [0.009715043008327484, -0.0006425539031624794], [0.009480737149715424, -0.0006270568701438606], [0.009247545152902603, -0.0006116335280239582], [0.00901555921882391, -0.0005962899303995073], [0.008784869685769081, -0.0005810321308672428], [0.008555564098060131, -0.0005658658919855952], [0.008327728137373924, -0.0005507967434823513], [0.008101441897451878, -0.0005358301568776369], [0.007876786403357983, -0.0005209714290685952], [0.007653838023543358, -0.0005062255659140646], [0.007432670332491398, -0.000491597515065223], [0.007213354576379061, -0.0004770919622387737], [0.006995959207415581, -0.0004627134185284376], [0.006780549883842468, -0.00044846622040495276], [0.00656718946993351, -0.00043435452971607447], [0.006355937570333481, -0.0004203823336865753], [0.006146852392703295, -0.0004065534158144146], [0.005939987022429705, -0.00039287132676690817], [0.005735394544899464, -0.0003793395298998803], [0.005533122457563877, -0.0003659612557385117], [0.005333217792212963, -0.00035273953108116984], [0.005135723389685154, -0.00033967723720707], [0.004940680228173733, -0.0003267770807724446], [0.004748126026242971, -0.00031404150649905205], [0.004558096174150705, -0.00030147293000482023], [0.004370623268187046, -0.00028907344676554203], [0.0041857375763356686, -0.00027684506494551897], [0.004003465641289949, -0.0002647896180860698], [0.003823833307251334, -0.0002529087068978697], [0.0036468624603003263, -0.00024120383022818714], [0.0034725728910416365, -0.00022967631230130792], [0.0033009822946041822, -0.00021832728816661984], [0.0031321055721491575, -0.00020715776190627366], [0.0029659555293619633, -0.00019616859208326787], [0.002802542643621564, -0.00018536043353378773], [0.0026418748311698437, -0.00017473386833444238], [0.002483958378434181, -0.0001642892457311973], [0.002328797010704875, -0.00015402685676235706], [0.0021763923577964306, -0.00014394680329132825], [0.002026744419708848, -0.00013404907076619565], [0.0018798505188897252, -0.00012433349911589175], [0.001735706813633442, -0.00011479981185402721], [0.0015943070175126195, -0.00010544761607889086], [0.0014556432142853737, -9.627638792153448e-05], [0.0013197059743106365, -8.72854798217304e-05], [0.0011864837724715471, -7.847414963180199e-05], [0.0010559636866673827, -6.984153878875077e-05], [0.000928131106775254, -6.138667959021404e-05], [0.0008029700256884098, -5.3108517022337765e-05], [0.0006804628064855933, -4.500587601796724e-05], [0.0005605905898846686, -3.707751602632925e-05], [0.00044333303230814636, -2.932209099526517e-05], [0.0003286685678176582, -2.1738171199103817e-05], [0.00021657440811395645, -1.4324253243103158e-05], [0.00010702657891670242, -7.078748240019195e-06]]}, {"name": "CX_d7_u20", "samples": [[-0.00011521264968905598, 6.5023482420656364e-06], [-0.0002331393916392699, 1.3157874491298571e-05], [-0.0003538072342053056, 1.9968101696576923e-05], [-0.0004772419633809477, 2.693448550417088e-05], [-0.0006034680991433561, 3.405841198400594e-05], [-0.0007325089536607265, 4.1341190808452666e-05], [-0.0008643862674944103, 4.878405889030546e-05], [-0.0009991205297410488, 5.638815855490975e-05], [-0.0011367304250597954, 6.415456300601363e-05], [-0.0012772335903719068, 7.208425085991621e-05], [-0.001420645508915186, 8.017809886951e-05], [-0.0015669800341129303, 8.843690739013255e-05], [-0.0017162497388198972, 9.686135308584198e-05], [-0.0018684646347537637, 0.00010545203258516267], [-0.002023633336648345, 0.00011420941882533953], [-0.002181762596592307, 0.00012313388288021088], [-0.0023428567219525576, 0.0001322256721323356], [-0.0025069182738661766, 0.0001414849393768236], [-0.002673947252333164, 0.0001509116991655901], [-0.0028439422603696585, 0.00016050583508331329], [-0.00301689887419343, 0.00017026712885126472], [-0.0031928105745464563, 0.00018019520211964846], [-0.003371668979525566, 0.00019028957467526197], [-0.003553462214767933, 0.00020054959168192], [-0.003738177241757512, 0.00021097449644003063], [-0.003925797529518604, 0.00022156337217893451], [-0.0041163042187690735, 0.00023231515660881996], [-0.004309676121920347, 0.0002432286273688078], [-0.0045058890245854855, 0.0002543024602346122], [-0.004704916384071112, 0.00026553511270321906], [-0.004906728398054838, 0.0002769249549601227], [-0.005111292935907841, 0.00028847012436017394], [-0.005318574607372284, 0.0003001686418429017], [-0.005528536159545183, 0.0003120184119325131], [-0.005741136148571968, 0.0003240170772187412], [-0.005956330802291632, 0.0003361621929798275], [-0.006174073554575443, 0.0003484511107672006], [-0.006394315045326948, 0.000360881065716967], [-0.006617002654820681, 0.00037344906013458967], [-0.006842080038040876, 0.0003861519508063793], [-0.007069489452987909, 0.00039898641989566386], [-0.007299169432371855, 0.0004119490331504494], [-0.007531054317951202, 0.0004250361234880984], [-0.007765077520161867, 0.000438243878306821], [-0.008001168258488178, 0.00045156831038184464], [-0.00823925156146288, 0.00046500522876158357], [-0.008479253388941288, 0.0004785503842867911], [-0.008721091784536839, 0.0004921992076560855], [-0.00896468572318554, 0.0005059471004642546], [-0.009209948591887951, 0.0005197892314754426], [-0.009456791914999485, 0.0005337205366231501], [-0.009705126285552979, 0.0005477359518408775], [-0.009954855777323246, 0.0005618301220238209], [-0.010205883532762527, 0.0005759976338595152], [-0.010458110831677914, 0.000590232782997191], [-0.010711435228586197, 0.0006045298068784177], [-0.010965750552713871, 0.0006188827683217824], [-0.011220949701964855, 0.0006332856719382107], [-0.01147692184895277, 0.0006477322313003242], [-0.011733556166291237, 0.0006622160435654223], [-0.011990735307335854, 0.0006767307058908045], [-0.012248343788087368, 0.0006912695243954659], [-0.01250626053661108, 0.0007058258051984012], [-0.012764363549649715, 0.000720392563380301], [-0.01302252896130085, 0.0007349628722295165], [-0.01328063104301691, 0.0007495295722037554], [-0.013538542203605175, 0.0007640855037607253], [-0.013796132057905197, 0.000778623332735151], [-0.014053269289433956, 0.0007931355503387749], [-0.014309819787740707, 0.0008076147641986609], [-0.014565650373697281, 0.0008220532326959074], [-0.014820624142885208, 0.0008364434470422566], [-0.01507460419088602, 0.0008507774909958243], [-0.0153274517506361, 0.0008650476229377091], [-0.015579027123749256, 0.0008792459848336875], [-0.015829190611839294, 0.0008933646604418755], [-0.0160777997225523, 0.0009073956171050668], [-0.016324711963534355, 0.0009213308221660554], [-0.01656978577375412, 0.0009351623011752963], [-0.016812879592180252, 0.0009488819050602615], [-0.017053848132491112, 0.0009624816011637449], [-0.017292547971010208, 0.0009759533568285406], [-0.0175288375467062, 0.0009892889065667987], [-0.017762571573257446, 0.001002480392344296], [-0.017993606626987457, 0.0010155196068808436], [-0.01822180300951004, 0.0010283984011039138], [-0.018447017297148705, 0.001041108975186944], [-0.01866910792887211, 0.0010536432964727283], [-0.01888793334364891, 0.0010659934487193823], [-0.019103357568383217, 0.0010781513992697], [-0.019315239042043686, 0.0010901095811277628], [-0.019523443654179573, 0.0011018600780516863], [-0.019727831706404686, 0.0011133954394608736], [-0.019928274676203728, 0.0011247078655287623], [-0.020124636590480804, 0.0011357901385053992], [-0.02031678706407547, 0.0011466346913948655], [-0.020504599437117577, 0.0011572345392778516], [-0.020687948912382126, 0.0011675822315737605], [-0.02086670882999897, 0.0011776711326092482], [-0.02104075998067856, 0.001187494141049683], [-0.02120998129248619, 0.0011970446212217212], [-0.021374259144067764, 0.001206316170282662], [-0.021533479914069176, 0.0012153021525591612], [-0.02168753184378147, 0.001223996514454484], [-0.021836308762431145, 0.0012323932023718953], [-0.02197970822453499, 0.001240486279129982], [-0.022117627784609795, 0.0012482701567932963], [-0.022249970585107803, 0.0012557393638417125], [-0.022376643493771553, 0.0012628885451704264], [-0.02249755896627903, 0.0012697126949205995], [-0.02261262759566307, 0.001276206923648715], [-0.02272176928818226, 0.0012823665747419], [-0.022824903950095177, 0.0012881873408332467], [-0.022921960800886154, 0.0012936650309711695], [-0.02301286906003952, 0.0012987955706194043], [-0.023097561672329903, 0.0013035754673182964], [-0.023175977170467377, 0.0013080011121928692], [-0.023248061537742615, 0.0013120693620294333], [-0.02331376075744629, 0.001315777306444943], [-0.02337302826344967, 0.0013191221514716744], [-0.023425817489624023, 0.0013221015688031912], [-0.023472094908356667, 0.0013247133465483785], [-0.023511823266744614, 0.0013269555056467652], [-0.023544974625110626, 0.0013288265326991677], [-0.023571526631712914, 0.001330325030721724], [-0.023591455072164536, 0.0013314498355612159], [-0.023604750633239746, 0.0013322001323103905], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023612231016159058, 0.0013326223706826568], [-0.023606281727552414, 0.0013322657905519009], [-0.02359570935368538, 0.001331632025539875], [-0.023579860106110573, 0.0013306819600984454], [-0.02355874516069889, 0.001329416292719543], [-0.023532381281256676, 0.0013278359547257423], [-0.02350078523159027, 0.0013259421102702618], [-0.023463983088731766, 0.0013237361563369632], [-0.02342200092971325, 0.0013212196063250303], [-0.02337486855685711, 0.0013183944392949343], [-0.02332262136042118, 0.0013152625178918242], [-0.0232652947306633, 0.0013118262868374586], [-0.023202933371067047, 0.0013080881908535957], [-0.023135580122470856, 0.0013040510239079595], [-0.023063283413648605, 0.0012997174635529518], [-0.022986099123954773, 0.001295090769417584], [-0.022904079407453537, 0.0012901743175461888], [-0.022817282006144524, 0.0012849716003984213], [-0.022725772112607956, 0.0012794863432645798], [-0.022629613056778908, 0.0012737223878502846], [-0.0225288737565279, 0.0012676839251071215], [-0.022423626855015755, 0.001261375262401998], [-0.02231394499540329, 0.001254800707101822], [-0.022199904546141624, 0.0012479649158194661], [-0.022081587463617325, 0.0012408727779984474], [-0.021959075704216957, 0.0012335291830822825], [-0.021832453086972237, 0.0012259392533451319], [-0.021701809018850327, 0.0012181081110611558], [-0.02156723290681839, 0.0012100414605811238], [-0.02142881602048874, 0.0012017445405945182], [-0.021286655217409134, 0.0011932230554521084], [-0.021140845492482185, 0.0011844829423353076], [-0.020991483703255653, 0.0011755300220102072], [-0.020838672295212746, 0.0011663702316582203], [-0.02068251371383667, 0.0011570097412914038], [-0.020523110404610634, 0.0011474547209218144], [-0.020360566675662994, 0.0011377115733921528], [-0.020194988697767258, 0.0011277865851297975], [-0.020026488229632378, 0.0011176862753927708], [-0.01985516957938671, 0.001107417163439095], [-0.019681144505739212, 0.0010969857685267925], [-0.019504522904753685, 0.0010863988427445292], [-0.019325418397784233, 0.0010756630217656493], [-0.01914394274353981, 0.0010647850576788187], [-0.01896020770072937, 0.0010537715861573815], [-0.018774328753352165, 0.0010426295921206474], [-0.018586415797472, 0.0010313658276572824], [-0.018396586179733276, 0.0010199870448559523], [-0.018204953521490097, 0.0010085002286359668], [-0.018011629581451416, 0.0009969121310859919], [-0.017816731706261635, 0.0009852295042946935], [-0.017620369791984558, 0.0009734592749737203], [-0.017422661185264587, 0.0009616081952117383], [-0.017223715782165527, 0.0009496830753050745], [-0.01702364720404148, 0.0009376905509270728], [-0.016822565346956253, 0.0009256374323740602], [-0.016620585694909096, 0.0009135302971117198], [-0.016417812556028366, 0.0009013758390210569], [-0.016214361414313316, 0.0008891805191524327], [-0.016010334715247154, 0.0008769507985562086], [-0.015805842354893684, 0.000864693196490407], [-0.015600991435348988, 0.0008524139993824065], [-0.015395884402096272, 0.0008401194936595857], [-0.015190624631941319, 0.0008278159075416625], [-0.014985314570367336, 0.0008155092364177108], [-0.014780054800212383, 0.0008032055920921266], [-0.014574943110346794, 0.0007909107953310013], [-0.014370077289640903, 0.000778630783315748], [-0.014165551401674747, 0.0007663711439818144], [-0.013961459510028362, 0.0007541375234723091], [-0.013757893815636635, 0.000741935393307358], [-0.013554942794144154, 0.0007297701667994261], [-0.013352694921195507, 0.0007176470244303346], [-0.01315123587846756, 0.0007055712048895657], [-0.012950648553669453, 0.0006935476558282971], [-0.012751014903187752, 0.0006815812666900456], [-0.0125524140894413, 0.0006696767522953451], [-0.012354923412203789, 0.0006578387692570686], [-0.012158617377281189, 0.0006460718577727675], [-0.01196356862783432, 0.0006343802670016885], [-0.011769847944378853, 0.0006227682461030781], [-0.01157752238214016, 0.0006112399278208613], [-0.011386658065021038, 0.0005997991538606584], [-0.011197318322956562, 0.0005884498241357505], [-0.011009563691914082, 0.0005771954893134534], [-0.010823453776538372, 0.0005660397000610828], [-0.01063904445618391, 0.0005549858324229717], [-0.010456387884914875, 0.0005440371460281312], [-0.010275538079440594, 0.000533196609467268], [-0.010096541605889797, 0.0005224672495387495], [-0.009919445961713791, 0.0005118518602102995], [-0.009744295850396156, 0.0005013530608266592], [-0.009571133181452751, 0.0004909733543172479], [-0.00939999707043171, 0.0004807150980923325], [-0.00923092383891344, 0.0004705805331468582], [-0.00906394887715578, 0.0004605717840604484], [-0.008899104781448841, 0.00045069074258208275], [-0.008736422285437584, 0.00044093924225308], [-0.008575928397476673, 0.00043131894199177623], [-0.008417649194598198, 0.00042183141340501606], [-0.008261608891189098, 0.000412478024372831], [-0.008107827045023441, 0.00040326008456759155], [-0.007956324145197868, 0.0003941786999348551], [-0.007807116024196148, 0.0003852349182125181], [-0.007660218980163336, 0.0003764296416193247], [-0.007515645120292902, 0.00036776362685486674], [-0.007373405620455742, 0.0003592375433072448], [-0.007233509328216314, 0.00035085188574157655], [-0.007095963228493929, 0.0003426071198191494], [-0.006960772443562746, 0.0003345035365782678], [-0.006827940233051777, 0.00032654133974574506], [-0.006697467993944883, 0.0003187206166330725], [-0.006569355726242065, 0.0003110413090325892], [-0.006443601567298174, 0.00030350335873663425], [-0.006320201326161623, 0.000296106532914564], [-0.00619915034621954, 0.00028885051142424345], [-0.006080441642552614, 0.0002817349159158766], [-0.005964066833257675, 0.00027475919341668487], [-0.005850016605108976, 0.00026792282005771995], [-0.005738279782235622, 0.0002612250973470509], [-0.005628843326121569, 0.0002546652976889163], [-0.005521694198250771, 0.00024824257707223296], [-0.005416817031800747, 0.00024195603327825665], [-0.005314195528626442, 0.00023580472043249756], [-0.005213812459260225, 0.000229787576245144], [-0.005115649197250605, 0.00022390349477063864], [-0.0050196866504848, 0.0002181513118557632], [-0.004925903398543596, 0.00021252979058772326], [-0.0047426545061171055, 0.00020154552476014942], [-0.004648871719837189, 0.00019592400349210948], [-0.004552909173071384, 0.00019017182057723403], [-0.004454745911061764, 0.00018428773910272866], [-0.004354362841695547, 0.0001782705949153751], [-0.004251741338521242, 0.00017211928206961602], [-0.0041468641720712185, 0.0001658327382756397], [-0.004039714578539133, 0.00015941001765895635], [-0.003930278588086367, 0.00015285021800082177], [-0.003818541532382369, 0.00014615249529015273], [-0.0037044913042336702, 0.00013931610737927258], [-0.003588116727769375, 0.00013234039943199605], [-0.0034694080241024494, 0.000125224789371714], [-0.0033483568113297224, 0.00011796876788139343], [-0.003224956803023815, 0.00011057194205932319], [-0.00309920241124928, 0.00010303399176336825], [-0.002971090143546462, 9.535470599075779e-05], [-0.0028406179044395685, 8.753396832617e-05], [-0.0027077856939285994, 7.957176421768963e-05], [-0.0025725949089974165, 7.146818097680807e-05], [-0.002435048809275031, 6.32234150543809e-05], [-0.0022951525170356035, 5.4837775678606704e-05], [-0.0021529130171984434, 4.631168121704832e-05], [-0.0020083391573280096, 3.7645666452590376e-05], [-0.0018614421132951975, 2.884038804040756e-05], [-0.0017122345743700862, 1.9896611775038764e-05], [-0.0015607314417138696, 1.0815238965733442e-05], [-0.0014069497119635344, 1.5972860865076655e-06], [-0.0012509087100625038, -7.75609805714339e-06], [-0.0010926296235993505, -1.724363937682938e-05], [-0.0009321357938461006, -2.686392872419674e-05], [-0.0007694530650041997, -3.661543087218888e-05], [-0.0006046092603355646, -4.6496465074596927e-05], [-0.0004376346187200397, -5.650522871292196e-05], [-0.0002685616200324148, -6.66397754685022e-05], [-9.7425036074128e-05, -7.689800986554474e-05], [7.57380184950307e-05, -8.727772365091369e-05], [0.00025088805705308914, -9.77765375864692e-05], [0.0004279832646716386, -0.0001083919414668344], [0.0006069794180803001, -0.00011912130139535293], [0.0007878299220465124, -0.00012996180157642812], [0.0009704857948236167, -0.00014091053162701428], [0.0011548956390470266, -0.0001519643992651254], [0.001341005670838058, -0.00016312017396558076], [0.0015287598362192512, -0.00017437449423596263], [0.0017180994618684053, -0.0001857238676166162], [0.001908963778987527, -0.00019716461247298867], [0.00210128934122622, -0.0002086929598590359], [0.0022950104903429747, -0.0002203049516538158], [0.0024900592397898436, -0.00023199652787297964], [0.0026863652747124434, -0.00024376348301302642], [0.0028838561847805977, -0.0002556014514993876], [0.00308245699852705, -0.0002675059367902577], [0.003282090649008751, -0.0002794723550323397], [0.0034826777409762144, -0.00029149590409360826], [0.0036841370165348053, -0.0003035717236343771], [0.003886384889483452, -0.0003156948368996382], [0.004089335445314646, -0.0003278600634075701], [0.0042929016053676605, -0.0003400621935725212], [0.004496993031352758, -0.0003522958140820265], [0.004701518453657627, -0.0003645554534159601], [0.004906384740024805, -0.00037683549453504384], [0.005111496429890394, -0.0003891302621923387], [0.0053167566657066345, -0.00040143393562175333], [0.0055220662616193295, -0.00041374057764187455], [0.0057273260317742825, -0.00042604419286362827], [0.0059324330650269985, -0.000438338698586449], [0.00613728491589427, -0.00045061789569444954], [0.0063417768105864525, -0.00046287549776025116], [0.00654580257833004, -0.0004751051892526448], [0.006749255117028952, -0.000487300509121269], [0.006952026858925819, -0.0004994550254195929], [0.007154007907956839, -0.0005115621024742723], [0.007355088368058205, -0.0005236152792349458], [0.007555157411843538, -0.0005356077454052866], [0.007754102814942598, -0.0005475328653119504], [0.007951811887323856, -0.0005593839450739324], [0.008148172870278358, -0.0005711541743949056], [0.008343071676790714, -0.000582836801186204], [0.00853639468550682, -0.0005944249569438398], [0.008728028275072575, -0.0006059117731638253], [0.008917857892811298, -0.0006172904977574944], [0.009105769917368889, -0.0006285543204285204], [0.009291649796068668, -0.0006396963144652545], [0.009475384838879108, -0.0006507096695713699], [0.009656860493123531, -0.0006615876918658614], [0.009835965000092983, -0.0006723235710524023], [0.010012585669755936, -0.0006829104968346655], [0.010186610743403435, -0.000693341891746968], [0.010357929393649101, -0.0007036110037006438], [0.010526430793106556, -0.0007137113134376705], [0.010692007839679718, -0.0007236363017000258], [0.010854551568627357, -0.0007333794492296875], [0.011013954877853394, -0.0007429344113916159], [0.011170114390552044, -0.0007522949017584324], [0.011322925798594952, -0.0007614546921104193], [0.011472286656498909, -0.0007704076124355197], [0.011618097312748432, -0.0007791477837599814], [0.011760259047150612, -0.0007876692106947303], [0.011898675002157688, -0.0007959661306813359], [0.012033251114189625, -0.0008040328393690288], [0.012163895182311535, -0.0008118638652376831], [0.01229051686823368, -0.0008194538531824946], [0.012413029558956623, -0.0008267974480986595], [0.012531346641480923, -0.0008338895859196782], [0.012645386159420013, -0.000840725377202034], [0.012755068950355053, -0.0008472999325022101], [0.012860316783189774, -0.0008536086534149945], [0.012961055152118206, -0.0008596471161581576], [0.013057214207947254, -0.0008654110715724528], [0.013148724101483822, -0.0008708963287062943], [0.01323552057147026, -0.0008760990458540618], [0.013317540287971497, -0.000881015497725457], [0.013394726440310478, -0.0008856421336531639], [0.01346702128648758, -0.0008899756358005106], [0.01353437453508377, -0.0008940129191614687], [0.013596736826002598, -0.0008977510151453316], [0.013654062524437904, -0.0009011872461996973], [0.013706310652196407, -0.0009043191093951464], [0.013753443025052547, -0.0009071442764252424], [0.013795426115393639, -0.0009096608264371753], [0.013832228258252144, -0.0009118667803704739], [0.0138638224452734, -0.0009137606248259544], [0.013890187256038189, -0.0009153409628197551], [0.013911301270127296, -0.0009166066301986575], [0.013927151449024677, -0.0009175566956400871], [0.013937723822891712, -0.000918190460652113], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013943673111498356, -0.0009185470407828689], [0.013939255848526955, -0.0009182560024783015], [0.013931404799222946, -0.0009177388274110854], [0.01391963567584753, -0.0009169635595753789], [0.013903956860303879, -0.0009159307228401303], [0.013884379528462887, -0.0009146410739049315], [0.013860918581485748, -0.0009130955440923572], [0.013833590783178806, -0.0009112953557632864], [0.013802416622638702, -0.0009092416730709374], [0.013767418451607227, -0.0009069361258298159], [0.013728621415793896, -0.0009043803438544273], [0.013686053454875946, -0.000901576189789921], [0.013639746233820915, -0.000898525700904429], [0.01358973328024149, -0.0008952310308814049], [0.013536049984395504, -0.0008916946244426072], [0.013478734530508518, -0.0008879189845174551], [0.013417830690741539, -0.0008839068468660116], [0.01335337944328785, -0.0008796611218713224], [0.013285428285598755, -0.000875184778124094], [0.01321402471512556, -0.0008704810752533376], [0.013139220885932446, -0.0008655532728880644], [0.013061068020761013, -0.0008604049799032509], [0.012979622930288315, -0.0008550396887585521], [0.012894942425191402, -0.000849461299367249], [0.012807085178792477, -0.000843673653434962], [0.012716112658381462, -0.0008376808254979551], [0.012622089125216007, -0.000831486948300153], [0.01252507884055376, -0.0008250963292084634], [0.01242514792829752, -0.0008185133920051157], [0.01232236623764038, -0.0008117425604723394], [0.01221680361777544, -0.0008047886076383293], [0.012108531780540943, -0.0007976560737006366], [0.011997622437775135, -0.0007903499063104391], [0.011884151957929134, -0.0007828749367035925], [0.01176819484680891, -0.0007752362289465964], [0.011649828404188156, -0.0007674387888982892], [0.01152913086116314, -0.0007594877388328314], [0.011406181380152702, -0.000751388375647366], [0.011281059123575687, -0.0007431458798237145], [0.011153845116496086, -0.0007347656064666808], [0.01102462224662304, -0.0007262529688887298], [0.010893471539020538, -0.0007176133804023266], [0.010760476812720299, -0.000708852254319936], [0.010625720955431461, -0.000699975120369345], [0.010489287786185741, -0.0006909875082783401], [0.010351261124014854, -0.0006818949477747083], [0.01021172571927309, -0.0006727030267938972], [0.010070767253637314, -0.0006634172750636935], [0.009928468614816666, -0.0006540432805195451], [0.00978491548448801, -0.0006445866310968995], [0.009640192613005638, -0.0006350529147312045], [0.009494383819401264, -0.0006254476611502469], [0.009347572922706604, -0.0006157764582894742], [0.009199844673275948, -0.0006060447776690125], [0.00905128289014101, -0.0005962581490166485], [0.008901969529688358, -0.0005864220438525081], [0.008751987479627132, -0.000576541933696717], [0.008601417765021324, -0.0005666230572387576], [0.008450343273580074, -0.0005566709442064166], [0.00829884223639965, -0.0005466907750815153], [0.008146995678544044, -0.0005366877885535359], [0.007994881831109524, -0.0005266672233119607], [0.007842578925192356, -0.0005166341434232891], [0.007690162397921085, -0.0005065936129540205], [0.007537708152085543, -0.0004965506377629936], [0.007385291159152985, -0.00048651007818989456], [0.0072329845279455185, -0.00047647676547057927], [0.00708085997030139, -0.0004664554726332426], [0.006928988266736269, -0.00045645085629075766], [0.006777438800781965, -0.00044646745664067566], [0.006626280024647713, -0.0004365097847767174], [0.006475577596575022, -0.000426582177169621], [0.00632539764046669, -0.0004166889993939549], [0.006175802554935217, -0.00040683435508981347], [0.006026855669915676, -0.00039702237700112164], [0.005878616590052843, -0.00038725705235265195], [0.005731144454330206, -0.00037754225195385516], [0.0055844965390861034, -0.00036788173019886017], [0.005438728258013725, -0.000358279183274135], [0.005293893627822399, -0.0003487381327431649], [0.0051500448025763035, -0.0003392620128579438], [0.005007232539355755, -0.00032985417055897415], [0.004865505266934633, -0.00032051780726760626], [0.004724910017102957, -0.0003112560079898685], [0.0045854924246668816, -0.00030207179952412844], [0.00444729533046484, -0.00029296797583810985], [0.00431036064401269, -0.0002839473308995366], [0.004174728412181139, -0.0002750125131569803], [0.004040436819195747, -0.0002661659673321992], [0.003907522186636925, -0.0002574101381469518], [0.0037760192062705755, -0.0002487473248038441], [0.003645960707217455, -0.00024017963733058423], [0.003517377423122525, -0.00023170914209913462], [0.0033902989234775305, -0.00022333778906613588], [0.0032647529151290655, -0.0002150673681171611], [0.0031407650094479322, -0.0002068995963782072], [0.003018359187990427, -0.0001988360600080341], [0.002897558268159628, -0.00019087822875007987], [0.0027783827390521765, -0.00018302747048437595], [0.0026608516927808523, -0.00017528505122754723], [0.0025449825916439295, -0.0001676521060289815], [0.0024307910352945328, -0.00016012968262657523], [0.0023182916920632124, -0.00015271871234290302], [0.0022074966691434383, -0.0001454200391890481], [0.0020984173752367496, -0.00013823439076077193], [0.001991063356399536, -0.00013116237823851407], [0.0018854426452890038, -0.0001242045545950532], [0.001781561877578497, -0.00011736135638784617], [0.0016794262919574976, -0.00011063311831094325], [0.0015790396137163043, -0.0001040200877469033], [0.0014804042875766754, -9.752243204275146e-05], [0.0013835214776918292, -9.114022395806387e-05], [0.001288390951231122, -8.487345621688291e-05], [0.001195011311210692, -7.872201967984438e-05], [0.001103379880078137, -7.268574699992314e-05], [0.0010134926997125149, -6.67643835186027e-05], [0.00092534493887797, -6.095759817981161e-05], [0.0008389303111471236, -5.526498716790229e-05], [0.0007542415987700224, -4.9686077545629814e-05], [0.0006712706526741385, -4.422031997819431e-05], [0.0005900081596337259, -3.8867106923135e-05], [0.0005104439333081245, -3.362576899235137e-05], [0.00043256671051494777, -2.8495567676145583e-05], [0.0003563645586837083, -2.3475708076148294e-05], [0.0002818245266098529, -1.856534436228685e-05], [0.00020893292094115168, -1.3763569768343586e-05], [0.00013767523341812193, -9.069431143871043e-06], [6.80362427374348e-05, -4.481924406718463e-06]]}, {"name": "QId_d0", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d1", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d10", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d11", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d12", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d13", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d14", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d15", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d16", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d17", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d18", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d19", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d2", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d20", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d21", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d22", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d23", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d24", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d25", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d26", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d3", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d4", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d5", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d6", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d7", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d8", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d9", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}], "cmd_def": [{"name": "cx", "qubits": [0, 1], "sequence": [{"name": "fc", "t0": 1680, "ch": "d0", "phase": -2.672354703084363}, {"name": "CX_d1_u0", "t0": 0, "ch": "d1"}, {"name": "fc", "t0": 1680, "ch": "d1", "phase": 0.013894260264923228}, {"name": "parametric_pulse", "t0": 0, "ch": "u0", "label": "CX_u0", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.22941187639312718, 0.12690736517838702], "duration": 1680, "sigma": 64, "width": 1424}}, {"name": "fc", "t0": 1680, "ch": "u0", "phase": 0.013894260264923228}, {"name": "fc", "t0": 1680, "ch": "u1", "phase": -2.672354703084363}, {"name": "fc", "t0": 1680, "ch": "u4", "phase": 0.013894260264923228}, {"name": "fc", "t0": 1680, "ch": "u8", "phase": 0.013894260264923228}]}, {"name": "cx", "qubits": [1, 0], "sequence": [{"name": "fc", "t0": 0, "ch": "d0", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d0", "label": "Y90p_d0", "pulse_shape": "drag", "parameters": {"amp": [9.770409061041186e-06, 0.10377801308000216], "beta": -1.0149213161488795, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 1840, "ch": "d0", "phase": -2.672354703084363}, {"name": "fc", "t0": 1840, "ch": "d0", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1840, "ch": "d0", "label": "Y90p_d0", "pulse_shape": "drag", "parameters": {"amp": [9.770409061041186e-06, 0.10377801308000216], "beta": -1.0149213161488795, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d1", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "Y90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.0008700854555585467, 0.09513967305102687], "beta": 0.3960683326669556, "duration": 160, "sigma": 40}}, {"name": "CX_d1_u0", "t0": 160, "ch": "d1"}, {"name": "fc", "t0": 1840, "ch": "d1", "phase": 0.013894260264923228}, {"name": "fc", "t0": 1840, "ch": "d1", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1840, "ch": "d1", "label": "Y90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.0008700854555585467, 0.09513967305102687], "beta": 0.3960683326669556, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u0", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u0", "label": "CX_u0", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.22941187639312718, 0.12690736517838702], "duration": 1680, "sigma": 64, "width": 1424}}, {"name": "fc", "t0": 1840, "ch": "u0", "phase": 0.013894260264923228}, {"name": "fc", "t0": 1840, "ch": "u0", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u1", "phase": -3.141592653589793}, {"name": "fc", "t0": 1840, "ch": "u1", "phase": -2.672354703084363}, {"name": "fc", "t0": 1840, "ch": "u1", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u4", "phase": -3.141592653589793}, {"name": "fc", "t0": 1840, "ch": "u4", "phase": 0.013894260264923228}, {"name": "fc", "t0": 1840, "ch": "u4", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u8", "phase": -3.141592653589793}, {"name": "fc", "t0": 1840, "ch": "u8", "phase": 0.013894260264923228}, {"name": "fc", "t0": 1840, "ch": "u8", "phase": -3.141592653589793}]}, {"name": "cx", "qubits": [1, 2], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "Ym_d1", "pulse_shape": "drag", "parameters": {"amp": [-3.4875941653944765e-17, -0.18985578360621613], "beta": 0.42285170020425616, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 800, "ch": "d1", "label": "Xp_d1", "pulse_shape": "drag", "parameters": {"amp": [0.18985578360621613, 0.0], "beta": 0.42285170020425616, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "X90p_d2", "pulse_shape": "drag", "parameters": {"amp": [0.08886323708960032, 0.0010025377502923204], "beta": -2.2376745831561644, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d2", "label": "CR90p_d2_u2", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.044423234723716884, 0.001779313464491138], "duration": 640, "sigma": 64, "width": 384}}, {"name": "parametric_pulse", "t0": 960, "ch": "d2", "label": "CR90m_d2_u2", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.044423234723716884, -0.0017793134644911327], "duration": 640, "sigma": 64, "width": 384}}, {"name": "fc", "t0": 0, "ch": "u0", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u2", "label": "CR90p_u2", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.05506675083348829, 0.2667945783293873], "duration": 640, "sigma": 64, "width": 384}}, {"name": "parametric_pulse", "t0": 960, "ch": "u2", "label": "CR90m_u2", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.055066750833488255, -0.2667945783293873], "duration": 640, "sigma": 64, "width": 384}}, {"name": "fc", "t0": 0, "ch": "u4", "phase": 1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u8", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [1, 4], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "Y90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.0008700854555585467, 0.09513967305102687], "beta": 0.3960683326669556, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d1", "label": "CR90p_d1_u8", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.02486912247953545, -0.00011779606006911412], "duration": 592, "sigma": 64, "width": 336}}, {"name": "parametric_pulse", "t0": 912, "ch": "d1", "label": "CR90m_d1_u8", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.02486912247953545, 0.00011779606006911717], "duration": 592, "sigma": 64, "width": 336}}, {"name": "fc", "t0": 1504, "ch": "d1", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1504, "ch": "d1", "label": "X90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.09513967305102687, -0.0008700854555585467], "beta": 0.3960683326669556, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d4", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "X90p_d4", "pulse_shape": "drag", "parameters": {"amp": [0.0949613228743464, 0.001476724810580528], "beta": -3.2119733651985074, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 752, "ch": "d4", "label": "Xp_d4", "pulse_shape": "drag", "parameters": {"amp": [0.18894857072270585, 0.0], "beta": -3.2151369274275954, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1504, "ch": "d4", "label": "Y90m_d4", "pulse_shape": "drag", "parameters": {"amp": [0.0014767248105804899, -0.0949613228743464], "beta": -3.2119733651985074, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u0", "phase": -3.141592653589793}, {"name": "fc", "t0": 1504, "ch": "u0", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u13", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u3", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u4", "phase": -3.141592653589793}, {"name": "fc", "t0": 1504, "ch": "u4", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u8", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u8", "label": "CR90p_u8", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.11065838780090582, -0.20422533658931907], "duration": 592, "sigma": 64, "width": 336}}, {"name": "parametric_pulse", "t0": 912, "ch": "u8", "label": "CR90m_u8", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.1106583878009058, 0.20422533658931907], "duration": 592, "sigma": 64, "width": 336}}, {"name": "fc", "t0": 1504, "ch": "u8", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [2, 1], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "X90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.09513967305102687, -0.0008700854555585467], "beta": 0.3960683326669556, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 800, "ch": "d1", "label": "Xp_d1", "pulse_shape": "drag", "parameters": {"amp": [0.18985578360621613, 0.0], "beta": 0.42285170020425616, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1600, "ch": "d1", "label": "Y90m_d1", "pulse_shape": "drag", "parameters": {"amp": [-0.0008700854555586004, -0.09513967305102687], "beta": 0.3960683326669556, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d2", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "Y90p_d2", "pulse_shape": "drag", "parameters": {"amp": [-0.0010025377502923078, 0.08886323708960032], "beta": -2.2376745831561644, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d2", "label": "CR90p_d2_u2", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.044423234723716884, 0.001779313464491138], "duration": 640, "sigma": 64, "width": 384}}, {"name": "parametric_pulse", "t0": 960, "ch": "d2", "label": "CR90m_d2_u2", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.044423234723716884, -0.0017793134644911327], "duration": 640, "sigma": 64, "width": 384}}, {"name": "fc", "t0": 1600, "ch": "d2", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1600, "ch": "d2", "label": "X90p_d2", "pulse_shape": "drag", "parameters": {"amp": [0.08886323708960032, 0.0010025377502923204], "beta": -2.2376745831561644, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u0", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u2", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u2", "label": "CR90p_u2", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.05506675083348829, 0.2667945783293873], "duration": 640, "sigma": 64, "width": 384}}, {"name": "parametric_pulse", "t0": 960, "ch": "u2", "label": "CR90m_u2", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.055066750833488255, -0.2667945783293873], "duration": 640, "sigma": 64, "width": 384}}, {"name": "fc", "t0": 1600, "ch": "u2", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u4", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u6", "phase": -3.141592653589793}, {"name": "fc", "t0": 1600, "ch": "u6", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u8", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [2, 3], "sequence": [{"name": "fc", "t0": 0, "ch": "d2", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "Y90p_d2", "pulse_shape": "drag", "parameters": {"amp": [-0.0010025377502923078, 0.08886323708960032], "beta": -2.2376745831561644, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d2", "label": "CR90p_d2_u6", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.046604775776712286, 0.0014909491691699266], "duration": 720, "sigma": 64, "width": 464}}, {"name": "parametric_pulse", "t0": 1040, "ch": "d2", "label": "CR90m_d2_u6", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.046604775776712286, -0.001490949169169921], "duration": 720, "sigma": 64, "width": 464}}, {"name": "fc", "t0": 1760, "ch": "d2", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1760, "ch": "d2", "label": "X90p_d2", "pulse_shape": "drag", "parameters": {"amp": [0.08886323708960032, 0.0010025377502923204], "beta": -2.2376745831561644, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d3", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "X90p_d3", "pulse_shape": "drag", "parameters": {"amp": [0.10661547647704614, -0.0006070553922452572], "beta": -0.5176138331574068, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 880, "ch": "d3", "label": "Xp_d3", "pulse_shape": "drag", "parameters": {"amp": [0.21327499648153633, 0.0], "beta": -0.5742099875332195, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1760, "ch": "d3", "label": "Y90m_d3", "pulse_shape": "drag", "parameters": {"amp": [-0.0006070553922452572, -0.10661547647704614], "beta": -0.5176138331574068, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u10", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u2", "phase": -3.141592653589793}, {"name": "fc", "t0": 1760, "ch": "u2", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u5", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u6", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u6", "label": "CR90p_u6", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.2487544605560869, 0.19270533949326873], "duration": 720, "sigma": 64, "width": 464}}, {"name": "parametric_pulse", "t0": 1040, "ch": "u6", "label": "CR90m_u6", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.24875446055608694, -0.1927053394932687], "duration": 720, "sigma": 64, "width": 464}}, {"name": "fc", "t0": 1760, "ch": "u6", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [3, 2], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "X90p_d2", "pulse_shape": "drag", "parameters": {"amp": [0.08886323708960032, 0.0010025377502923204], "beta": -2.2376745831561644, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d2", "label": "CR90p_d2_u6", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.046604775776712286, 0.0014909491691699266], "duration": 720, "sigma": 64, "width": 464}}, {"name": "parametric_pulse", "t0": 1040, "ch": "d2", "label": "CR90m_d2_u6", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.046604775776712286, -0.001490949169169921], "duration": 720, "sigma": 64, "width": 464}}, {"name": "fc", "t0": 0, "ch": "d3", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "Ym_d3", "pulse_shape": "drag", "parameters": {"amp": [-3.917798126689147e-17, -0.21327499648153633], "beta": -0.5742099875332195, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 880, "ch": "d3", "label": "Xp_d3", "pulse_shape": "drag", "parameters": {"amp": [0.21327499648153633, 0.0], "beta": -0.5742099875332195, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u10", "phase": 1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u5", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u6", "label": "CR90p_u6", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.2487544605560869, 0.19270533949326873], "duration": 720, "sigma": 64, "width": 464}}, {"name": "parametric_pulse", "t0": 1040, "ch": "u6", "label": "CR90m_u6", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.24875446055608694, -0.1927053394932687], "duration": 720, "sigma": 64, "width": 464}}]}, {"name": "cx", "qubits": [3, 5], "sequence": [{"name": "fc", "t0": 0, "ch": "d3", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "Y90p_d3", "pulse_shape": "drag", "parameters": {"amp": [0.0006070553922452678, 0.10661547647704614], "beta": -0.5176138331574068, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d3", "label": "CR90p_d3_u10", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.034099467656396876, -0.002078341529476721], "duration": 624, "sigma": 64, "width": 368}}, {"name": "parametric_pulse", "t0": 944, "ch": "d3", "label": "CR90m_d3_u10", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.034099467656396876, 0.0020783415294767255], "duration": 624, "sigma": 64, "width": 368}}, {"name": "fc", "t0": 1568, "ch": "d3", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1568, "ch": "d3", "label": "X90p_d3", "pulse_shape": "drag", "parameters": {"amp": [0.10661547647704614, -0.0006070553922452572], "beta": -0.5176138331574068, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d5", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "X90p_d5", "pulse_shape": "drag", "parameters": {"amp": [0.09816343223984954, 0.000240496505118405], "beta": -1.1305064781606282, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 784, "ch": "d5", "label": "Xp_d5", "pulse_shape": "drag", "parameters": {"amp": [0.19579800279892245, 0.0], "beta": -1.117320206007128, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1568, "ch": "d5", "label": "Y90m_d5", "pulse_shape": "drag", "parameters": {"amp": [0.00024049650511836782, -0.09816343223984954], "beta": -1.1305064781606282, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u10", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u10", "label": "CR90p_u10", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.39369962471143394, -0.07651464007146067], "duration": 624, "sigma": 64, "width": 368}}, {"name": "parametric_pulse", "t0": 944, "ch": "u10", "label": "CR90m_u10", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.39369962471143394, 0.07651464007146062], "duration": 624, "sigma": 64, "width": 368}}, {"name": "fc", "t0": 1568, "ch": "u10", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u16", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u5", "phase": -3.141592653589793}, {"name": "fc", "t0": 1568, "ch": "u5", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u7", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [4, 1], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "X90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.09513967305102687, -0.0008700854555585467], "beta": 0.3960683326669556, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d1", "label": "CR90p_d1_u8", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.02486912247953545, -0.00011779606006911412], "duration": 592, "sigma": 64, "width": 336}}, {"name": "parametric_pulse", "t0": 912, "ch": "d1", "label": "CR90m_d1_u8", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.02486912247953545, 0.00011779606006911717], "duration": 592, "sigma": 64, "width": 336}}, {"name": "fc", "t0": 0, "ch": "d4", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "Ym_d4", "pulse_shape": "drag", "parameters": {"amp": [-3.470928935085435e-17, -0.18894857072270585], "beta": -3.2151369274275954, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 752, "ch": "d4", "label": "Xp_d4", "pulse_shape": "drag", "parameters": {"amp": [0.18894857072270585, 0.0], "beta": -3.2151369274275954, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u13", "phase": 1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u3", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u8", "label": "CR90p_u8", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.11065838780090582, -0.20422533658931907], "duration": 592, "sigma": 64, "width": 336}}, {"name": "parametric_pulse", "t0": 912, "ch": "u8", "label": "CR90m_u8", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.1106583878009058, 0.20422533658931907], "duration": 592, "sigma": 64, "width": 336}}]}, {"name": "cx", "qubits": [4, 7], "sequence": [{"name": "fc", "t0": 0, "ch": "d4", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "Ym_d4", "pulse_shape": "drag", "parameters": {"amp": [-3.470928935085435e-17, -0.18894857072270585], "beta": -3.2151369274275954, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1520, "ch": "d4", "label": "Xp_d4", "pulse_shape": "drag", "parameters": {"amp": [0.18894857072270585, 0.0], "beta": -3.2151369274275954, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d7", "label": "X90p_d7", "pulse_shape": "drag", "parameters": {"amp": [0.11943281622859635, -0.0022674042671533006], "beta": 1.1463424017426946, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d7", "label": "CR90p_d7_u9", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.0271482173816001, -0.0008047018218863505], "duration": 1360, "sigma": 64, "width": 1104}}, {"name": "parametric_pulse", "t0": 1680, "ch": "d7", "label": "CR90m_d7_u9", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.0271482173816001, 0.0008047018218863539], "duration": 1360, "sigma": 64, "width": 1104}}, {"name": "fc", "t0": 0, "ch": "u13", "phase": 1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u3", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u9", "label": "CR90p_u9", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.11312176373654503, -0.07866671423527843], "duration": 1360, "sigma": 64, "width": 1104}}, {"name": "parametric_pulse", "t0": 1680, "ch": "u9", "label": "CR90m_u9", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.11312176373654505, 0.07866671423527842], "duration": 1360, "sigma": 64, "width": 1104}}]}, {"name": "cx", "qubits": [5, 3], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "X90p_d3", "pulse_shape": "drag", "parameters": {"amp": [0.10661547647704614, -0.0006070553922452572], "beta": -0.5176138331574068, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d3", "label": "CR90p_d3_u10", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.034099467656396876, -0.002078341529476721], "duration": 624, "sigma": 64, "width": 368}}, {"name": "parametric_pulse", "t0": 944, "ch": "d3", "label": "CR90m_d3_u10", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.034099467656396876, 0.0020783415294767255], "duration": 624, "sigma": 64, "width": 368}}, {"name": "fc", "t0": 0, "ch": "d5", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "Ym_d5", "pulse_shape": "drag", "parameters": {"amp": [-3.596750961107173e-17, -0.19579800279892245], "beta": -1.117320206007128, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 784, "ch": "d5", "label": "Xp_d5", "pulse_shape": "drag", "parameters": {"amp": [0.19579800279892245, 0.0], "beta": -1.117320206007128, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "u10", "label": "CR90p_u10", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.39369962471143394, -0.07651464007146067], "duration": 624, "sigma": 64, "width": 368}}, {"name": "parametric_pulse", "t0": 944, "ch": "u10", "label": "CR90m_u10", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.39369962471143394, 0.07651464007146062], "duration": 624, "sigma": 64, "width": 368}}, {"name": "fc", "t0": 0, "ch": "u16", "phase": 1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u7", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [5, 8], "sequence": [{"name": "fc", "t0": 0, "ch": "d5", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "Ym_d5", "pulse_shape": "drag", "parameters": {"amp": [-3.596750961107173e-17, -0.19579800279892245], "beta": -1.117320206007128, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1056, "ch": "d5", "label": "Xp_d5", "pulse_shape": "drag", "parameters": {"amp": [0.19579800279892245, 0.0], "beta": -1.117320206007128, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d8", "label": "X90p_d8", "pulse_shape": "drag", "parameters": {"amp": [0.11232769477288704, -0.001120665808023258], "beta": 1.1280238973136587, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d8", "label": "CR90p_d8_u11", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.036775142442902, -0.0016169692678441256], "duration": 896, "sigma": 64, "width": 640}}, {"name": "parametric_pulse", "t0": 1216, "ch": "d8", "label": "CR90m_d8_u11", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.036775142442902, 0.0016169692678441301], "duration": 896, "sigma": 64, "width": 640}}, {"name": "parametric_pulse", "t0": 160, "ch": "u11", "label": "CR90p_u11", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.04437939448653144, 0.12261107640839938], "duration": 896, "sigma": 64, "width": 640}}, {"name": "parametric_pulse", "t0": 1216, "ch": "u11", "label": "CR90m_u11", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.04437939448653143, -0.12261107640839938], "duration": 896, "sigma": 64, "width": 640}}, {"name": "fc", "t0": 0, "ch": "u16", "phase": 1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u7", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [6, 7], "sequence": [{"name": "fc", "t0": 1248, "ch": "d6", "phase": -0.7650587423473584}, {"name": "CX_d7_u12", "t0": 0, "ch": "d7"}, {"name": "fc", "t0": 1248, "ch": "d7", "phase": -0.005135835784204281}, {"name": "parametric_pulse", "t0": 0, "ch": "u12", "label": "CX_u12", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.10499752877735855, -0.36236803147443886], "duration": 1248, "sigma": 64, "width": 992}}, {"name": "fc", "t0": 1248, "ch": "u12", "phase": -0.005135835784204281}, {"name": "fc", "t0": 1248, "ch": "u14", "phase": -0.7650587423473584}, {"name": "fc", "t0": 1248, "ch": "u20", "phase": -0.005135835784204281}, {"name": "fc", "t0": 1248, "ch": "u9", "phase": -0.005135835784204281}]}, {"name": "cx", "qubits": [7, 4], "sequence": [{"name": "fc", "t0": 0, "ch": "d4", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "X90p_d4", "pulse_shape": "drag", "parameters": {"amp": [0.0949613228743464, 0.001476724810580528], "beta": -3.2119733651985074, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1520, "ch": "d4", "label": "Xp_d4", "pulse_shape": "drag", "parameters": {"amp": [0.18894857072270585, 0.0], "beta": -3.2151369274275954, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 3040, "ch": "d4", "label": "Y90m_d4", "pulse_shape": "drag", "parameters": {"amp": [0.0014767248105804899, -0.0949613228743464], "beta": -3.2119733651985074, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d7", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d7", "label": "Y90p_d7", "pulse_shape": "drag", "parameters": {"amp": [0.002267404267153316, 0.11943281622859635], "beta": 1.1463424017426946, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d7", "label": "CR90p_d7_u9", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.0271482173816001, -0.0008047018218863505], "duration": 1360, "sigma": 64, "width": 1104}}, {"name": "parametric_pulse", "t0": 1680, "ch": "d7", "label": "CR90m_d7_u9", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.0271482173816001, 0.0008047018218863539], "duration": 1360, "sigma": 64, "width": 1104}}, {"name": "fc", "t0": 3040, "ch": "d7", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 3040, "ch": "d7", "label": "X90p_d7", "pulse_shape": "drag", "parameters": {"amp": [0.11943281622859635, -0.0022674042671533006], "beta": 1.1463424017426946, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u12", "phase": -3.141592653589793}, {"name": "fc", "t0": 3040, "ch": "u12", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u13", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u20", "phase": -3.141592653589793}, {"name": "fc", "t0": 3040, "ch": "u20", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u3", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u9", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u9", "label": "CR90p_u9", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.11312176373654503, -0.07866671423527843], "duration": 1360, "sigma": 64, "width": 1104}}, {"name": "parametric_pulse", "t0": 1680, "ch": "u9", "label": "CR90m_u9", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.11312176373654505, 0.07866671423527842], "duration": 1360, "sigma": 64, "width": 1104}}, {"name": "fc", "t0": 3040, "ch": "u9", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [7, 6], "sequence": [{"name": "fc", "t0": 0, "ch": "d6", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d6", "label": "Y90p_d6", "pulse_shape": "drag", "parameters": {"amp": [0.00026580459344425925, 0.11277479162236688], "beta": -0.3854241491495041, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 1408, "ch": "d6", "phase": -0.7650587423473584}, {"name": "fc", "t0": 1408, "ch": "d6", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1408, "ch": "d6", "label": "Y90p_d6", "pulse_shape": "drag", "parameters": {"amp": [0.00026580459344425925, 0.11277479162236688], "beta": -0.3854241491495041, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d7", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d7", "label": "Y90p_d7", "pulse_shape": "drag", "parameters": {"amp": [0.002267404267153316, 0.11943281622859635], "beta": 1.1463424017426946, "duration": 160, "sigma": 40}}, {"name": "CX_d7_u12", "t0": 160, "ch": "d7"}, {"name": "fc", "t0": 1408, "ch": "d7", "phase": -0.005135835784204281}, {"name": "fc", "t0": 1408, "ch": "d7", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1408, "ch": "d7", "label": "Y90p_d7", "pulse_shape": "drag", "parameters": {"amp": [0.002267404267153316, 0.11943281622859635], "beta": 1.1463424017426946, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u12", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u12", "label": "CX_u12", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.10499752877735855, -0.36236803147443886], "duration": 1248, "sigma": 64, "width": 992}}, {"name": "fc", "t0": 1408, "ch": "u12", "phase": -0.005135835784204281}, {"name": "fc", "t0": 1408, "ch": "u12", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u14", "phase": -3.141592653589793}, {"name": "fc", "t0": 1408, "ch": "u14", "phase": -0.7650587423473584}, {"name": "fc", "t0": 1408, "ch": "u14", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u20", "phase": -3.141592653589793}, {"name": "fc", "t0": 1408, "ch": "u20", "phase": -0.005135835784204281}, {"name": "fc", "t0": 1408, "ch": "u20", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u9", "phase": -3.141592653589793}, {"name": "fc", "t0": 1408, "ch": "u9", "phase": -0.005135835784204281}, {"name": "fc", "t0": 1408, "ch": "u9", "phase": -3.141592653589793}]}, {"name": "cx", "qubits": [7, 10], "sequence": [{"name": "fc", "t0": 0, "ch": "d10", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d10", "label": "Y90p_d10", "pulse_shape": "drag", "parameters": {"amp": [-0.0008449320557973282, 0.10679021181971572], "beta": -2.1538513301843003, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 1232, "ch": "d10", "phase": -0.15538815622621827}, {"name": "fc", "t0": 1232, "ch": "d10", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1232, "ch": "d10", "label": "Y90p_d10", "pulse_shape": "drag", "parameters": {"amp": [-0.0008449320557973282, 0.10679021181971572], "beta": -2.1538513301843003, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d7", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d7", "label": "Y90p_d7", "pulse_shape": "drag", "parameters": {"amp": [0.002267404267153316, 0.11943281622859635], "beta": 1.1463424017426946, "duration": 160, "sigma": 40}}, {"name": "CX_d7_u20", "t0": 160, "ch": "d7"}, {"name": "fc", "t0": 1232, "ch": "d7", "phase": -0.01660331424282262}, {"name": "fc", "t0": 1232, "ch": "d7", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1232, "ch": "d7", "label": "Y90p_d7", "pulse_shape": "drag", "parameters": {"amp": [0.002267404267153316, 0.11943281622859635], "beta": 1.1463424017426946, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u12", "phase": -3.141592653589793}, {"name": "fc", "t0": 1232, "ch": "u12", "phase": -0.01660331424282262}, {"name": "fc", "t0": 1232, "ch": "u12", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u15", "phase": -3.141592653589793}, {"name": "fc", "t0": 1232, "ch": "u15", "phase": -0.15538815622621827}, {"name": "fc", "t0": 1232, "ch": "u15", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u20", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u20", "label": "CX_u20", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.21104559958679092, 0.39050199495667665], "duration": 1072, "sigma": 64, "width": 816}}, {"name": "fc", "t0": 1232, "ch": "u20", "phase": -0.01660331424282262}, {"name": "fc", "t0": 1232, "ch": "u20", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u24", "phase": -3.141592653589793}, {"name": "fc", "t0": 1232, "ch": "u24", "phase": -0.15538815622621827}, {"name": "fc", "t0": 1232, "ch": "u24", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u9", "phase": -3.141592653589793}, {"name": "fc", "t0": 1232, "ch": "u9", "phase": -0.01660331424282262}, {"name": "fc", "t0": 1232, "ch": "u9", "phase": -3.141592653589793}]}, {"name": "cx", "qubits": [8, 5], "sequence": [{"name": "fc", "t0": 0, "ch": "d5", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "X90p_d5", "pulse_shape": "drag", "parameters": {"amp": [0.09816343223984954, 0.000240496505118405], "beta": -1.1305064781606282, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1056, "ch": "d5", "label": "Xp_d5", "pulse_shape": "drag", "parameters": {"amp": [0.19579800279892245, 0.0], "beta": -1.117320206007128, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 2112, "ch": "d5", "label": "Y90m_d5", "pulse_shape": "drag", "parameters": {"amp": [0.00024049650511836782, -0.09816343223984954], "beta": -1.1305064781606282, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d8", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d8", "label": "Y90p_d8", "pulse_shape": "drag", "parameters": {"amp": [0.0011206658080232768, 0.11232769477288704], "beta": 1.1280238973136587, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d8", "label": "CR90p_d8_u11", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.036775142442902, -0.0016169692678441256], "duration": 896, "sigma": 64, "width": 640}}, {"name": "parametric_pulse", "t0": 1216, "ch": "d8", "label": "CR90m_d8_u11", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.036775142442902, 0.0016169692678441301], "duration": 896, "sigma": 64, "width": 640}}, {"name": "fc", "t0": 2112, "ch": "d8", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 2112, "ch": "d8", "label": "X90p_d8", "pulse_shape": "drag", "parameters": {"amp": [0.11232769477288704, -0.001120665808023258], "beta": 1.1280238973136587, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u11", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u11", "label": "CR90p_u11", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.04437939448653144, 0.12261107640839938], "duration": 896, "sigma": 64, "width": 640}}, {"name": "parametric_pulse", "t0": 1216, "ch": "u11", "label": "CR90m_u11", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.04437939448653143, -0.12261107640839938], "duration": 896, "sigma": 64, "width": 640}}, {"name": "fc", "t0": 2112, "ch": "u11", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u16", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u19", "phase": -3.141592653589793}, {"name": "fc", "t0": 2112, "ch": "u19", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u22", "phase": -3.141592653589793}, {"name": "fc", "t0": 2112, "ch": "u22", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u7", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [8, 9], "sequence": [{"name": "fc", "t0": 0, "ch": "d8", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d8", "label": "Y90p_d8", "pulse_shape": "drag", "parameters": {"amp": [0.0011206658080232768, 0.11232769477288704], "beta": 1.1280238973136587, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d8", "label": "CR90p_d8_u19", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.024859814908763815, -0.0010898878316567657], "duration": 576, "sigma": 64, "width": 320}}, {"name": "parametric_pulse", "t0": 896, "ch": "d8", "label": "CR90m_d8_u19", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.024859814908763815, 0.0010898878316567687], "duration": 576, "sigma": 64, "width": 320}}, {"name": "fc", "t0": 1472, "ch": "d8", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1472, "ch": "d8", "label": "X90p_d8", "pulse_shape": "drag", "parameters": {"amp": [0.11232769477288704, -0.001120665808023258], "beta": 1.1280238973136587, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d9", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d9", "label": "X90p_d9", "pulse_shape": "drag", "parameters": {"amp": [0.10976524219602081, 0.0010579794279775023], "beta": -2.401283303612347, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 736, "ch": "d9", "label": "Xp_d9", "pulse_shape": "drag", "parameters": {"amp": [0.21917054608657616, 0.0], "beta": -2.37751094183648, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1472, "ch": "d9", "label": "Y90m_d9", "pulse_shape": "drag", "parameters": {"amp": [0.0010579794279774676, -0.10976524219602081], "beta": -2.401283303612347, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u11", "phase": -3.141592653589793}, {"name": "fc", "t0": 1472, "ch": "u11", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u17", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u19", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u19", "label": "CR90p_u19", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.6579198464721498, -0.10701068071954273], "duration": 576, "sigma": 64, "width": 320}}, {"name": "parametric_pulse", "t0": 896, "ch": "u19", "label": "CR90m_u19", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.6579198464721498, 0.10701068071954264], "duration": 576, "sigma": 64, "width": 320}}, {"name": "fc", "t0": 1472, "ch": "u19", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u22", "phase": -3.141592653589793}, {"name": "fc", "t0": 1472, "ch": "u22", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [8, 11], "sequence": [{"name": "fc", "t0": 0, "ch": "d11", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d11", "label": "X90p_d11", "pulse_shape": "drag", "parameters": {"amp": [0.11907891983300731, -0.0001779950856348504], "beta": -1.0102446887715897, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1344, "ch": "d11", "label": "Xp_d11", "pulse_shape": "drag", "parameters": {"amp": [0.23814229022749572, 0.0], "beta": -0.9255336656200099, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 2688, "ch": "d11", "label": "Y90m_d11", "pulse_shape": "drag", "parameters": {"amp": [-0.00017799508563490592, -0.11907891983300731], "beta": -1.0102446887715897, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d8", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d8", "label": "Y90p_d8", "pulse_shape": "drag", "parameters": {"amp": [0.0011206658080232768, 0.11232769477288704], "beta": 1.1280238973136587, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d8", "label": "CR90p_d8_u22", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.02656426609087098, -0.0003335881338605717], "duration": 1184, "sigma": 64, "width": 928}}, {"name": "parametric_pulse", "t0": 1504, "ch": "d8", "label": "CR90m_d8_u22", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.02656426609087098, 0.000333588133860575], "duration": 1184, "sigma": 64, "width": 928}}, {"name": "fc", "t0": 2688, "ch": "d8", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 2688, "ch": "d8", "label": "X90p_d8", "pulse_shape": "drag", "parameters": {"amp": [0.11232769477288704, -0.001120665808023258], "beta": 1.1280238973136587, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u11", "phase": -3.141592653589793}, {"name": "fc", "t0": 2688, "ch": "u11", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u18", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u19", "phase": -3.141592653589793}, {"name": "fc", "t0": 2688, "ch": "u19", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u22", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u22", "label": "CR90p_u22", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.45680992432134426, 0.149442199803454], "duration": 1184, "sigma": 64, "width": 928}}, {"name": "parametric_pulse", "t0": 1504, "ch": "u22", "label": "CR90m_u22", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.45680992432134426, -0.14944219980345405], "duration": 1184, "sigma": 64, "width": 928}}, {"name": "fc", "t0": 2688, "ch": "u22", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u29", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [9, 8], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d8", "label": "X90p_d8", "pulse_shape": "drag", "parameters": {"amp": [0.11232769477288704, -0.001120665808023258], "beta": 1.1280238973136587, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d8", "label": "CR90p_d8_u19", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.024859814908763815, -0.0010898878316567657], "duration": 576, "sigma": 64, "width": 320}}, {"name": "parametric_pulse", "t0": 896, "ch": "d8", "label": "CR90m_d8_u19", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.024859814908763815, 0.0010898878316567687], "duration": 576, "sigma": 64, "width": 320}}, {"name": "fc", "t0": 0, "ch": "d9", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d9", "label": "Ym_d9", "pulse_shape": "drag", "parameters": {"amp": [-4.026097615984544e-17, -0.21917054608657616], "beta": -2.37751094183648, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 736, "ch": "d9", "label": "Xp_d9", "pulse_shape": "drag", "parameters": {"amp": [0.21917054608657616, 0.0], "beta": -2.37751094183648, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u17", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u19", "label": "CR90p_u19", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.6579198464721498, -0.10701068071954273], "duration": 576, "sigma": 64, "width": 320}}, {"name": "parametric_pulse", "t0": 896, "ch": "u19", "label": "CR90m_u19", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.6579198464721498, 0.10701068071954264], "duration": 576, "sigma": 64, "width": 320}}]}, {"name": "cx", "qubits": [10, 7], "sequence": [{"name": "fc", "t0": 1072, "ch": "d10", "phase": -0.15538815622621827}, {"name": "CX_d7_u20", "t0": 0, "ch": "d7"}, {"name": "fc", "t0": 1072, "ch": "d7", "phase": -0.01660331424282262}, {"name": "fc", "t0": 1072, "ch": "u12", "phase": -0.01660331424282262}, {"name": "fc", "t0": 1072, "ch": "u15", "phase": -0.15538815622621827}, {"name": "parametric_pulse", "t0": 0, "ch": "u20", "label": "CX_u20", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.21104559958679092, 0.39050199495667665], "duration": 1072, "sigma": 64, "width": 816}}, {"name": "fc", "t0": 1072, "ch": "u20", "phase": -0.01660331424282262}, {"name": "fc", "t0": 1072, "ch": "u24", "phase": -0.15538815622621827}, {"name": "fc", "t0": 1072, "ch": "u9", "phase": -0.01660331424282262}]}, {"name": "cx", "qubits": [10, 12], "sequence": [{"name": "fc", "t0": 0, "ch": "d10", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d10", "label": "Ym_d10", "pulse_shape": "drag", "parameters": {"amp": [-3.9154117963317525e-17, -0.21314509070739499], "beta": -2.0749548741927826, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 4960, "ch": "d10", "label": "Xp_d10", "pulse_shape": "drag", "parameters": {"amp": [0.21314509070739499, 0.0], "beta": -2.0749548741927826, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d12", "label": "X90p_d12", "pulse_shape": "drag", "parameters": {"amp": [0.12333410224784243, 0.0019417134346765398], "beta": -2.567893950899014, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d12", "label": "CR90p_d12_u21", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.028683655194675146, -0.00037558260918872844], "duration": 4800, "sigma": 64, "width": 4544}}, {"name": "parametric_pulse", "t0": 5120, "ch": "d12", "label": "CR90m_d12_u21", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.028683655194675146, 0.00037558260918873197], "duration": 4800, "sigma": 64, "width": 4544}}, {"name": "fc", "t0": 0, "ch": "u15", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u21", "label": "CR90p_u21", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.07224294276741221, -0.045620428953391357], "duration": 4800, "sigma": 64, "width": 4544}}, {"name": "parametric_pulse", "t0": 5120, "ch": "u21", "label": "CR90m_u21", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.07224294276741221, 0.04562042895339136], "duration": 4800, "sigma": 64, "width": 4544}}, {"name": "fc", "t0": 0, "ch": "u24", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [11, 8], "sequence": [{"name": "fc", "t0": 0, "ch": "d11", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d11", "label": "Ym_d11", "pulse_shape": "drag", "parameters": {"amp": [-4.374602902030839e-17, -0.23814229022749572], "beta": -0.9255336656200099, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1344, "ch": "d11", "label": "Xp_d11", "pulse_shape": "drag", "parameters": {"amp": [0.23814229022749572, 0.0], "beta": -0.9255336656200099, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d8", "label": "X90p_d8", "pulse_shape": "drag", "parameters": {"amp": [0.11232769477288704, -0.001120665808023258], "beta": 1.1280238973136587, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d8", "label": "CR90p_d8_u22", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.02656426609087098, -0.0003335881338605717], "duration": 1184, "sigma": 64, "width": 928}}, {"name": "parametric_pulse", "t0": 1504, "ch": "d8", "label": "CR90m_d8_u22", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.02656426609087098, 0.000333588133860575], "duration": 1184, "sigma": 64, "width": 928}}, {"name": "fc", "t0": 0, "ch": "u18", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u22", "label": "CR90p_u22", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.45680992432134426, 0.149442199803454], "duration": 1184, "sigma": 64, "width": 928}}, {"name": "parametric_pulse", "t0": 1504, "ch": "u22", "label": "CR90m_u22", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.45680992432134426, -0.14944219980345405], "duration": 1184, "sigma": 64, "width": 928}}, {"name": "fc", "t0": 0, "ch": "u29", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [11, 14], "sequence": [{"name": "fc", "t0": 64, "ch": "d11", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 64, "ch": "d11", "label": "Ym_d11", "pulse_shape": "drag", "parameters": {"amp": [-4.374602902030839e-17, -0.23814229022749572], "beta": -0.9255336656200099, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 944, "ch": "d11", "label": "Xp_d11", "pulse_shape": "drag", "parameters": {"amp": [0.23814229022749572, 0.0], "beta": -0.9255336656200099, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d14", "label": "X90p_d14", "pulse_shape": "drag", "parameters": {"amp": [0.0867691563869258, -0.0001786389737468895], "beta": 1.6381616092190798, "duration": 224, "sigma": 56}}, {"name": "parametric_pulse", "t0": 224, "ch": "d14", "label": "CR90p_d14_u23", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.0540494807863929, -0.0009322462648471789], "duration": 720, "sigma": 64, "width": 464}}, {"name": "parametric_pulse", "t0": 1104, "ch": "d14", "label": "CR90m_d14_u23", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.0540494807863929, 0.0009322462648471855], "duration": 720, "sigma": 64, "width": 464}}, {"name": "fc", "t0": 64, "ch": "u18", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 224, "ch": "u23", "label": "CR90p_u23", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.25609538104349444, 0.04781789853351559], "duration": 720, "sigma": 64, "width": 464}}, {"name": "parametric_pulse", "t0": 1104, "ch": "u23", "label": "CR90m_u23", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.25609538104349444, -0.047817898533515625], "duration": 720, "sigma": 64, "width": 464}}, {"name": "fc", "t0": 64, "ch": "u29", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [12, 10], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d10", "label": "X90p_d10", "pulse_shape": "drag", "parameters": {"amp": [0.10679021181971572, 0.00084493205579733], "beta": -2.1538513301843003, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d10", "label": "CR90p_d10_u24", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.0070030245137444255, 0.00017976622811867118], "duration": 3120, "sigma": 64, "width": 2864}}, {"name": "parametric_pulse", "t0": 3440, "ch": "d10", "label": "CR90m_d10_u24", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.0070030245137444255, -0.00017976622811867032], "duration": 3120, "sigma": 64, "width": 2864}}, {"name": "fc", "t0": 0, "ch": "d12", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d12", "label": "Ym_d12", "pulse_shape": "drag", "parameters": {"amp": [-4.535260126556402e-17, -0.24688806218598577], "beta": -2.5269736401267258, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 3280, "ch": "d12", "label": "Xp_d12", "pulse_shape": "drag", "parameters": {"amp": [0.24688806218598577, 0.0], "beta": -2.5269736401267258, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u21", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u24", "label": "CR90p_u24", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.1841918419693277, -0.36315970331013514], "duration": 3120, "sigma": 64, "width": 2864}}, {"name": "parametric_pulse", "t0": 3440, "ch": "u24", "label": "CR90m_u24", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.18419184196932775, 0.36315970331013514], "duration": 3120, "sigma": 64, "width": 2864}}, {"name": "fc", "t0": 0, "ch": "u27", "phase": 1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u32", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [12, 13], "sequence": [{"name": "fc", "t0": 0, "ch": "d12", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d12", "label": "Y90p_d12", "pulse_shape": "drag", "parameters": {"amp": [-0.001941713434676521, 0.12333410224784243], "beta": -2.567893950899014, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d12", "label": "CR90p_d12_u27", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.06526434945389241, 0.00041436686492511037], "duration": 816, "sigma": 64, "width": 560}}, {"name": "parametric_pulse", "t0": 1136, "ch": "d12", "label": "CR90m_d12_u27", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.06526434945389241, -0.0004143668649251024], "duration": 816, "sigma": 64, "width": 560}}, {"name": "fc", "t0": 1952, "ch": "d12", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1952, "ch": "d12", "label": "X90p_d12", "pulse_shape": "drag", "parameters": {"amp": [0.12333410224784243, 0.0019417134346765398], "beta": -2.567893950899014, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d13", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d13", "label": "X90p_d13", "pulse_shape": "drag", "parameters": {"amp": [0.103773449007206, 0.00017622277418506848], "beta": -1.8869442543880832, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 976, "ch": "d13", "label": "Xp_d13", "pulse_shape": "drag", "parameters": {"amp": [0.2078119782442765, 0.0], "beta": -1.9469493626547842, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1952, "ch": "d13", "label": "Y90m_d13", "pulse_shape": "drag", "parameters": {"amp": [0.00017622277418506804, -0.103773449007206], "beta": -1.8869442543880832, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u21", "phase": -3.141592653589793}, {"name": "fc", "t0": 1952, "ch": "u21", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u25", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u27", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u27", "label": "CR90p_u27", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.23294981254691402, 0.19712079542085015], "duration": 816, "sigma": 64, "width": 560}}, {"name": "parametric_pulse", "t0": 1136, "ch": "u27", "label": "CR90m_u27", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.232949812546914, -0.19712079542085018], "duration": 816, "sigma": 64, "width": 560}}, {"name": "fc", "t0": 1952, "ch": "u27", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u30", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u32", "phase": -3.141592653589793}, {"name": "fc", "t0": 1952, "ch": "u32", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [12, 15], "sequence": [{"name": "fc", "t0": 0, "ch": "d12", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d12", "label": "Y90p_d12", "pulse_shape": "drag", "parameters": {"amp": [-0.001941713434676521, 0.12333410224784243], "beta": -2.567893950899014, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d12", "label": "CR90p_d12_u32", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.008260801986297413, -0.0008827901705241821], "duration": 880, "sigma": 64, "width": 624}}, {"name": "parametric_pulse", "t0": 1200, "ch": "d12", "label": "CR90m_d12_u32", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.008260801986297413, 0.000882790170524183], "duration": 880, "sigma": 64, "width": 624}}, {"name": "fc", "t0": 2080, "ch": "d12", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 2080, "ch": "d12", "label": "X90p_d12", "pulse_shape": "drag", "parameters": {"amp": [0.12333410224784243, 0.0019417134346765398], "beta": -2.567893950899014, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d15", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d15", "label": "X90p_d15", "pulse_shape": "drag", "parameters": {"amp": [0.12780615832633155, 0.0019970021606818145], "beta": -2.5638015828946914, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1040, "ch": "d15", "label": "Xp_d15", "pulse_shape": "drag", "parameters": {"amp": [0.25845572259154465, 0.0], "beta": -2.601509635945852, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 2080, "ch": "d15", "label": "Y90m_d15", "pulse_shape": "drag", "parameters": {"amp": [0.001997002160681846, -0.12780615832633155], "beta": -2.5638015828946914, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u21", "phase": -3.141592653589793}, {"name": "fc", "t0": 2080, "ch": "u21", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u26", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u27", "phase": -3.141592653589793}, {"name": "fc", "t0": 2080, "ch": "u27", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u32", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u32", "label": "CR90p_u32", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.36798682564256685, -0.08192622752243602], "duration": 880, "sigma": 64, "width": 624}}, {"name": "parametric_pulse", "t0": 1200, "ch": "u32", "label": "CR90m_u32", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.36798682564256685, 0.08192622752243606], "duration": 880, "sigma": 64, "width": 624}}, {"name": "fc", "t0": 2080, "ch": "u32", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u37", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [13, 12], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d12", "label": "X90p_d12", "pulse_shape": "drag", "parameters": {"amp": [0.12333410224784243, 0.0019417134346765398], "beta": -2.567893950899014, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d12", "label": "CR90p_d12_u27", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.06526434945389241, 0.00041436686492511037], "duration": 816, "sigma": 64, "width": 560}}, {"name": "parametric_pulse", "t0": 1136, "ch": "d12", "label": "CR90m_d12_u27", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.06526434945389241, -0.0004143668649251024], "duration": 816, "sigma": 64, "width": 560}}, {"name": "fc", "t0": 0, "ch": "d13", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d13", "label": "Ym_d13", "pulse_shape": "drag", "parameters": {"amp": [-3.817444109719989e-17, -0.2078119782442765], "beta": -1.9469493626547842, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 976, "ch": "d13", "label": "Xp_d13", "pulse_shape": "drag", "parameters": {"amp": [0.2078119782442765, 0.0], "beta": -1.9469493626547842, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u25", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u27", "label": "CR90p_u27", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.23294981254691402, 0.19712079542085015], "duration": 816, "sigma": 64, "width": 560}}, {"name": "parametric_pulse", "t0": 1136, "ch": "u27", "label": "CR90m_u27", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.232949812546914, -0.19712079542085018], "duration": 816, "sigma": 64, "width": 560}}, {"name": "fc", "t0": 0, "ch": "u30", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [13, 14], "sequence": [{"name": "fc", "t0": 64, "ch": "d13", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 64, "ch": "d13", "label": "Ym_d13", "pulse_shape": "drag", "parameters": {"amp": [-3.817444109719989e-17, -0.2078119782442765], "beta": -1.9469493626547842, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1488, "ch": "d13", "label": "Xp_d13", "pulse_shape": "drag", "parameters": {"amp": [0.2078119782442765, 0.0], "beta": -1.9469493626547842, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d14", "label": "X90p_d14", "pulse_shape": "drag", "parameters": {"amp": [0.0867691563869258, -0.0001786389737468895], "beta": 1.6381616092190798, "duration": 224, "sigma": 56}}, {"name": "parametric_pulse", "t0": 224, "ch": "d14", "label": "CR90p_d14_u28", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.028225276357741105, 0.00020512356287653318], "duration": 1264, "sigma": 64, "width": 1008}}, {"name": "parametric_pulse", "t0": 1648, "ch": "d14", "label": "CR90m_d14_u28", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.028225276357741105, -0.0002051235628765297], "duration": 1264, "sigma": 64, "width": 1008}}, {"name": "fc", "t0": 64, "ch": "u25", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 224, "ch": "u28", "label": "CR90p_u28", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.012845131635039878, -0.0944243854748521], "duration": 1264, "sigma": 64, "width": 1008}}, {"name": "parametric_pulse", "t0": 1648, "ch": "u28", "label": "CR90m_u28", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.012845131635039865, 0.0944243854748521], "duration": 1264, "sigma": 64, "width": 1008}}, {"name": "fc", "t0": 64, "ch": "u30", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [14, 11], "sequence": [{"name": "fc", "t0": 64, "ch": "d11", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 64, "ch": "d11", "label": "X90p_d11", "pulse_shape": "drag", "parameters": {"amp": [0.11907891983300731, -0.0001779950856348504], "beta": -1.0102446887715897, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 944, "ch": "d11", "label": "Xp_d11", "pulse_shape": "drag", "parameters": {"amp": [0.23814229022749572, 0.0], "beta": -0.9255336656200099, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1888, "ch": "d11", "label": "Y90m_d11", "pulse_shape": "drag", "parameters": {"amp": [-0.00017799508563490592, -0.11907891983300731], "beta": -1.0102446887715897, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d14", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d14", "label": "Y90p_d14", "pulse_shape": "drag", "parameters": {"amp": [0.00017863897374688822, 0.0867691563869258], "beta": 1.6381616092190798, "duration": 224, "sigma": 56}}, {"name": "parametric_pulse", "t0": 224, "ch": "d14", "label": "CR90p_d14_u23", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.0540494807863929, -0.0009322462648471789], "duration": 720, "sigma": 64, "width": 464}}, {"name": "parametric_pulse", "t0": 1104, "ch": "d14", "label": "CR90m_d14_u23", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.0540494807863929, 0.0009322462648471855], "duration": 720, "sigma": 64, "width": 464}}, {"name": "fc", "t0": 1824, "ch": "d14", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1824, "ch": "d14", "label": "X90p_d14", "pulse_shape": "drag", "parameters": {"amp": [0.0867691563869258, -0.0001786389737468895], "beta": 1.6381616092190798, "duration": 224, "sigma": 56}}, {"name": "fc", "t0": 64, "ch": "u18", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u23", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 224, "ch": "u23", "label": "CR90p_u23", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.25609538104349444, 0.04781789853351559], "duration": 720, "sigma": 64, "width": 464}}, {"name": "parametric_pulse", "t0": 1104, "ch": "u23", "label": "CR90m_u23", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.25609538104349444, -0.047817898533515625], "duration": 720, "sigma": 64, "width": 464}}, {"name": "fc", "t0": 1824, "ch": "u23", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u28", "phase": -3.141592653589793}, {"name": "fc", "t0": 1824, "ch": "u28", "phase": -1.5707963267948966}, {"name": "fc", "t0": 64, "ch": "u29", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u34", "phase": -3.141592653589793}, {"name": "fc", "t0": 1824, "ch": "u34", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [14, 13], "sequence": [{"name": "fc", "t0": 64, "ch": "d13", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 64, "ch": "d13", "label": "X90p_d13", "pulse_shape": "drag", "parameters": {"amp": [0.103773449007206, 0.00017622277418506848], "beta": -1.8869442543880832, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1488, "ch": "d13", "label": "Xp_d13", "pulse_shape": "drag", "parameters": {"amp": [0.2078119782442765, 0.0], "beta": -1.9469493626547842, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 2976, "ch": "d13", "label": "Y90m_d13", "pulse_shape": "drag", "parameters": {"amp": [0.00017622277418506804, -0.103773449007206], "beta": -1.8869442543880832, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d14", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d14", "label": "Y90p_d14", "pulse_shape": "drag", "parameters": {"amp": [0.00017863897374688822, 0.0867691563869258], "beta": 1.6381616092190798, "duration": 224, "sigma": 56}}, {"name": "parametric_pulse", "t0": 224, "ch": "d14", "label": "CR90p_d14_u28", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.028225276357741105, 0.00020512356287653318], "duration": 1264, "sigma": 64, "width": 1008}}, {"name": "parametric_pulse", "t0": 1648, "ch": "d14", "label": "CR90m_d14_u28", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.028225276357741105, -0.0002051235628765297], "duration": 1264, "sigma": 64, "width": 1008}}, {"name": "fc", "t0": 2912, "ch": "d14", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 2912, "ch": "d14", "label": "X90p_d14", "pulse_shape": "drag", "parameters": {"amp": [0.0867691563869258, -0.0001786389737468895], "beta": 1.6381616092190798, "duration": 224, "sigma": 56}}, {"name": "fc", "t0": 0, "ch": "u23", "phase": -3.141592653589793}, {"name": "fc", "t0": 2912, "ch": "u23", "phase": -1.5707963267948966}, {"name": "fc", "t0": 64, "ch": "u25", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u28", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 224, "ch": "u28", "label": "CR90p_u28", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.012845131635039878, -0.0944243854748521], "duration": 1264, "sigma": 64, "width": 1008}}, {"name": "parametric_pulse", "t0": 1648, "ch": "u28", "label": "CR90m_u28", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.012845131635039865, 0.0944243854748521], "duration": 1264, "sigma": 64, "width": 1008}}, {"name": "fc", "t0": 2912, "ch": "u28", "phase": -1.5707963267948966}, {"name": "fc", "t0": 64, "ch": "u30", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u34", "phase": -3.141592653589793}, {"name": "fc", "t0": 2912, "ch": "u34", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [14, 16], "sequence": [{"name": "fc", "t0": 0, "ch": "d14", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d14", "label": "Ym_d14", "pulse_shape": "drag", "parameters": {"amp": [-3.188903347716755e-17, -0.17359581281922776], "beta": 1.6832227623818992, "duration": 224, "sigma": 56}}, {"name": "parametric_pulse", "t0": 1184, "ch": "d14", "label": "Xp_d14", "pulse_shape": "drag", "parameters": {"amp": [0.17359581281922776, 0.0], "beta": 1.6832227623818992, "duration": 224, "sigma": 56}}, {"name": "parametric_pulse", "t0": 0, "ch": "d16", "label": "X90p_d16", "pulse_shape": "drag", "parameters": {"amp": [0.10747776649112639, -9.675217802450346e-05], "beta": -0.675308043309437, "duration": 224, "sigma": 56}}, {"name": "parametric_pulse", "t0": 224, "ch": "d16", "label": "CR90p_d16_u31", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.044709872988402136, -0.0009141081039396015], "duration": 960, "sigma": 64, "width": 704}}, {"name": "parametric_pulse", "t0": 1408, "ch": "d16", "label": "CR90m_d16_u31", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.044709872988402136, 0.000914108103939607], "duration": 960, "sigma": 64, "width": 704}}, {"name": "fc", "t0": 0, "ch": "u23", "phase": 1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u28", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 224, "ch": "u31", "label": "CR90p_u31", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.09461323070028362, -0.07890362337235855], "duration": 960, "sigma": 64, "width": 704}}, {"name": "parametric_pulse", "t0": 1408, "ch": "u31", "label": "CR90m_u31", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.0946132307002836, 0.07890362337235857], "duration": 960, "sigma": 64, "width": 704}}, {"name": "fc", "t0": 0, "ch": "u34", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [15, 12], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d12", "label": "X90p_d12", "pulse_shape": "drag", "parameters": {"amp": [0.12333410224784243, 0.0019417134346765398], "beta": -2.567893950899014, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d12", "label": "CR90p_d12_u32", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.008260801986297413, -0.0008827901705241821], "duration": 880, "sigma": 64, "width": 624}}, {"name": "parametric_pulse", "t0": 1200, "ch": "d12", "label": "CR90m_d12_u32", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.008260801986297413, 0.000882790170524183], "duration": 880, "sigma": 64, "width": 624}}, {"name": "fc", "t0": 0, "ch": "d15", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d15", "label": "Ym_d15", "pulse_shape": "drag", "parameters": {"amp": [-4.747754600895771e-17, -0.25845572259154465], "beta": -2.601509635945852, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1040, "ch": "d15", "label": "Xp_d15", "pulse_shape": "drag", "parameters": {"amp": [0.25845572259154465, 0.0], "beta": -2.601509635945852, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u26", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u32", "label": "CR90p_u32", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.36798682564256685, -0.08192622752243602], "duration": 880, "sigma": 64, "width": 624}}, {"name": "parametric_pulse", "t0": 1200, "ch": "u32", "label": "CR90m_u32", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.36798682564256685, 0.08192622752243606], "duration": 880, "sigma": 64, "width": 624}}, {"name": "fc", "t0": 0, "ch": "u37", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [15, 18], "sequence": [{"name": "fc", "t0": 0, "ch": "d15", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d15", "label": "Y90p_d15", "pulse_shape": "drag", "parameters": {"amp": [-0.0019970021606818054, 0.12780615832633155], "beta": -2.5638015828946914, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d15", "label": "CR90p_d15_u37", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.02472247971889065, 0.0004797150661554713], "duration": 1392, "sigma": 64, "width": 1136}}, {"name": "parametric_pulse", "t0": 1712, "ch": "d15", "label": "CR90m_d15_u37", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.02472247971889065, -0.0004797150661554683], "duration": 1392, "sigma": 64, "width": 1136}}, {"name": "fc", "t0": 3104, "ch": "d15", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 3104, "ch": "d15", "label": "X90p_d15", "pulse_shape": "drag", "parameters": {"amp": [0.12780615832633155, 0.0019970021606818145], "beta": -2.5638015828946914, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d18", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d18", "label": "X90p_d18", "pulse_shape": "drag", "parameters": {"amp": [0.10509771899692791, -0.00046413034620189874], "beta": -0.2302046639392253, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1552, "ch": "d18", "label": "Xp_d18", "pulse_shape": "drag", "parameters": {"amp": [0.20998704099452967, 0.0], "beta": -0.2169641209301092, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 3104, "ch": "d18", "label": "Y90m_d18", "pulse_shape": "drag", "parameters": {"amp": [-0.00046413034620195544, -0.10509771899692791], "beta": -0.2302046639392253, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u26", "phase": -3.141592653589793}, {"name": "fc", "t0": 3104, "ch": "u26", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u33", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u36", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u37", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u37", "label": "CR90p_u37", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.031556175682002634, -0.0575477504416459], "duration": 1392, "sigma": 64, "width": 1136}}, {"name": "parametric_pulse", "t0": 1712, "ch": "u37", "label": "CR90m_u37", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.03155617568200263, 0.05754775044164591], "duration": 1392, "sigma": 64, "width": 1136}}, {"name": "fc", "t0": 3104, "ch": "u37", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u44", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [16, 14], "sequence": [{"name": "fc", "t0": 0, "ch": "d14", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d14", "label": "X90p_d14", "pulse_shape": "drag", "parameters": {"amp": [0.0867691563869258, -0.0001786389737468895], "beta": 1.6381616092190798, "duration": 224, "sigma": 56}}, {"name": "parametric_pulse", "t0": 1184, "ch": "d14", "label": "Xp_d14", "pulse_shape": "drag", "parameters": {"amp": [0.17359581281922776, 0.0], "beta": 1.6832227623818992, "duration": 224, "sigma": 56}}, {"name": "parametric_pulse", "t0": 2368, "ch": "d14", "label": "Y90m_d14", "pulse_shape": "drag", "parameters": {"amp": [-0.0001786389737469374, -0.0867691563869258], "beta": 1.6381616092190798, "duration": 224, "sigma": 56}}, {"name": "fc", "t0": 0, "ch": "d16", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d16", "label": "Y90p_d16", "pulse_shape": "drag", "parameters": {"amp": [9.675217802451387e-05, 0.10747776649112639], "beta": -0.675308043309437, "duration": 224, "sigma": 56}}, {"name": "parametric_pulse", "t0": 224, "ch": "d16", "label": "CR90p_d16_u31", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.044709872988402136, -0.0009141081039396015], "duration": 960, "sigma": 64, "width": 704}}, {"name": "parametric_pulse", "t0": 1408, "ch": "d16", "label": "CR90m_d16_u31", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.044709872988402136, 0.000914108103939607], "duration": 960, "sigma": 64, "width": 704}}, {"name": "fc", "t0": 2368, "ch": "d16", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 2368, "ch": "d16", "label": "X90p_d16", "pulse_shape": "drag", "parameters": {"amp": [0.10747776649112639, -9.675217802450346e-05], "beta": -0.675308043309437, "duration": 224, "sigma": 56}}, {"name": "fc", "t0": 0, "ch": "u23", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u28", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u31", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 224, "ch": "u31", "label": "CR90p_u31", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.09461323070028362, -0.07890362337235855], "duration": 960, "sigma": 64, "width": 704}}, {"name": "parametric_pulse", "t0": 1408, "ch": "u31", "label": "CR90m_u31", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.0946132307002836, 0.07890362337235857], "duration": 960, "sigma": 64, "width": 704}}, {"name": "fc", "t0": 2368, "ch": "u31", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u34", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u40", "phase": -3.141592653589793}, {"name": "fc", "t0": 2368, "ch": "u40", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [16, 19], "sequence": [{"name": "fc", "t0": 0, "ch": "d16", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d16", "label": "Y90p_d16", "pulse_shape": "drag", "parameters": {"amp": [9.675217802451387e-05, 0.10747776649112639], "beta": -0.675308043309437, "duration": 224, "sigma": 56}}, {"name": "parametric_pulse", "t0": 224, "ch": "d16", "label": "CR90p_d16_u40", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.05789121219872356, 3.7047078004946636e-06], "duration": 848, "sigma": 64, "width": 592}}, {"name": "parametric_pulse", "t0": 1232, "ch": "d16", "label": "CR90m_d16_u40", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.05789121219872356, -3.704707800487574e-06], "duration": 848, "sigma": 64, "width": 592}}, {"name": "fc", "t0": 2080, "ch": "d16", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 2080, "ch": "d16", "label": "X90p_d16", "pulse_shape": "drag", "parameters": {"amp": [0.10747776649112639, -9.675217802450346e-05], "beta": -0.675308043309437, "duration": 224, "sigma": 56}}, {"name": "fc", "t0": 64, "ch": "d19", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 64, "ch": "d19", "label": "X90p_d19", "pulse_shape": "drag", "parameters": {"amp": [0.10472315050694099, 0.001404359413591613], "beta": -3.1348249974094102, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1072, "ch": "d19", "label": "Xp_d19", "pulse_shape": "drag", "parameters": {"amp": [0.20908015594565632, 0.0], "beta": -3.1449194923112707, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 2144, "ch": "d19", "label": "Y90m_d19", "pulse_shape": "drag", "parameters": {"amp": [0.001404359413591633, -0.10472315050694099], "beta": -3.1348249974094102, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u31", "phase": -3.141592653589793}, {"name": "fc", "t0": 2080, "ch": "u31", "phase": -1.5707963267948966}, {"name": "fc", "t0": 64, "ch": "u35", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u40", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 224, "ch": "u40", "label": "CR90p_u40", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.07942114284240295, 0.31749624813222305], "duration": 848, "sigma": 64, "width": 592}}, {"name": "parametric_pulse", "t0": 1232, "ch": "u40", "label": "CR90m_u40", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.07942114284240291, -0.31749624813222305], "duration": 848, "sigma": 64, "width": 592}}, {"name": "fc", "t0": 2080, "ch": "u40", "phase": -1.5707963267948966}, {"name": "fc", "t0": 64, "ch": "u43", "phase": -1.5707963267948966}, {"name": "fc", "t0": 64, "ch": "u46", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [17, 18], "sequence": [{"name": "fc", "t0": 0, "ch": "d17", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d17", "label": "Y90p_d17", "pulse_shape": "drag", "parameters": {"amp": [0.0012405533901464266, 0.10028012827985704], "beta": 0.650439081116248, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d17", "label": "CR90p_d17_u38", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.03397874828828952, -0.0009288502896280932], "duration": 928, "sigma": 64, "width": 672}}, {"name": "parametric_pulse", "t0": 1248, "ch": "d17", "label": "CR90m_d17_u38", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.03397874828828952, 0.0009288502896280973], "duration": 928, "sigma": 64, "width": 672}}, {"name": "fc", "t0": 2176, "ch": "d17", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 2176, "ch": "d17", "label": "X90p_d17", "pulse_shape": "drag", "parameters": {"amp": [0.10028012827985704, -0.0012405533901464092], "beta": 0.650439081116248, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d18", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d18", "label": "X90p_d18", "pulse_shape": "drag", "parameters": {"amp": [0.10509771899692791, -0.00046413034620189874], "beta": -0.2302046639392253, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1088, "ch": "d18", "label": "Xp_d18", "pulse_shape": "drag", "parameters": {"amp": [0.20998704099452967, 0.0], "beta": -0.2169641209301092, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 2176, "ch": "d18", "label": "Y90m_d18", "pulse_shape": "drag", "parameters": {"amp": [-0.00046413034620195544, -0.10509771899692791], "beta": -0.2302046639392253, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u33", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u36", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u38", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u38", "label": "CR90p_u38", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.2233102153377555, 0.044833514350599284], "duration": 928, "sigma": 64, "width": 672}}, {"name": "parametric_pulse", "t0": 1248, "ch": "u38", "label": "CR90m_u38", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.2233102153377555, -0.04483351435059931], "duration": 928, "sigma": 64, "width": 672}}, {"name": "fc", "t0": 2176, "ch": "u38", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u44", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [18, 15], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d15", "label": "X90p_d15", "pulse_shape": "drag", "parameters": {"amp": [0.12780615832633155, 0.0019970021606818145], "beta": -2.5638015828946914, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d15", "label": "CR90p_d15_u37", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.02472247971889065, 0.0004797150661554713], "duration": 1392, "sigma": 64, "width": 1136}}, {"name": "parametric_pulse", "t0": 1712, "ch": "d15", "label": "CR90m_d15_u37", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.02472247971889065, -0.0004797150661554683], "duration": 1392, "sigma": 64, "width": 1136}}, {"name": "fc", "t0": 0, "ch": "d18", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d18", "label": "Ym_d18", "pulse_shape": "drag", "parameters": {"amp": [-3.857399364245622e-17, -0.20998704099452967], "beta": -0.2169641209301092, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1552, "ch": "d18", "label": "Xp_d18", "pulse_shape": "drag", "parameters": {"amp": [0.20998704099452967, 0.0], "beta": -0.2169641209301092, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u33", "phase": 1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u36", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u37", "label": "CR90p_u37", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.031556175682002634, -0.0575477504416459], "duration": 1392, "sigma": 64, "width": 1136}}, {"name": "parametric_pulse", "t0": 1712, "ch": "u37", "label": "CR90m_u37", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.03155617568200263, 0.05754775044164591], "duration": 1392, "sigma": 64, "width": 1136}}, {"name": "fc", "t0": 0, "ch": "u44", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [18, 17], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d17", "label": "X90p_d17", "pulse_shape": "drag", "parameters": {"amp": [0.10028012827985704, -0.0012405533901464092], "beta": 0.650439081116248, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d17", "label": "CR90p_d17_u38", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.03397874828828952, -0.0009288502896280932], "duration": 928, "sigma": 64, "width": 672}}, {"name": "parametric_pulse", "t0": 1248, "ch": "d17", "label": "CR90m_d17_u38", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.03397874828828952, 0.0009288502896280973], "duration": 928, "sigma": 64, "width": 672}}, {"name": "fc", "t0": 0, "ch": "d18", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d18", "label": "Ym_d18", "pulse_shape": "drag", "parameters": {"amp": [-3.857399364245622e-17, -0.20998704099452967], "beta": -0.2169641209301092, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1088, "ch": "d18", "label": "Xp_d18", "pulse_shape": "drag", "parameters": {"amp": [0.20998704099452967, 0.0], "beta": -0.2169641209301092, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u33", "phase": 1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u36", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u38", "label": "CR90p_u38", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.2233102153377555, 0.044833514350599284], "duration": 928, "sigma": 64, "width": 672}}, {"name": "parametric_pulse", "t0": 1248, "ch": "u38", "label": "CR90m_u38", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.2233102153377555, -0.04483351435059931], "duration": 928, "sigma": 64, "width": 672}}, {"name": "fc", "t0": 0, "ch": "u44", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [18, 21], "sequence": [{"name": "fc", "t0": 0, "ch": "d18", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d18", "label": "Ym_d18", "pulse_shape": "drag", "parameters": {"amp": [-3.857399364245622e-17, -0.20998704099452967], "beta": -0.2169641209301092, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1280, "ch": "d18", "label": "Xp_d18", "pulse_shape": "drag", "parameters": {"amp": [0.20998704099452967, 0.0], "beta": -0.2169641209301092, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d21", "label": "X90p_d21", "pulse_shape": "drag", "parameters": {"amp": [0.10055957599496994, -0.001614157195272922], "beta": 3.3019402371998003, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d21", "label": "CR90p_d21_u39", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.027192023175069316, -0.002052806681049806], "duration": 1120, "sigma": 64, "width": 864}}, {"name": "parametric_pulse", "t0": 1440, "ch": "d21", "label": "CR90m_d21_u39", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.027192023175069316, 0.0020528066810498093], "duration": 1120, "sigma": 64, "width": 864}}, {"name": "fc", "t0": 0, "ch": "u33", "phase": 1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u36", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u39", "label": "CR90p_u39", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.09464595227717112, -0.18564345372396748], "duration": 1120, "sigma": 64, "width": 864}}, {"name": "parametric_pulse", "t0": 1440, "ch": "u39", "label": "CR90m_u39", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.0946459522771711, 0.18564345372396748], "duration": 1120, "sigma": 64, "width": 864}}, {"name": "fc", "t0": 0, "ch": "u44", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [19, 16], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d16", "label": "X90p_d16", "pulse_shape": "drag", "parameters": {"amp": [0.10747776649112639, -9.675217802450346e-05], "beta": -0.675308043309437, "duration": 224, "sigma": 56}}, {"name": "parametric_pulse", "t0": 224, "ch": "d16", "label": "CR90p_d16_u40", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.05789121219872356, 3.7047078004946636e-06], "duration": 848, "sigma": 64, "width": 592}}, {"name": "parametric_pulse", "t0": 1232, "ch": "d16", "label": "CR90m_d16_u40", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.05789121219872356, -3.704707800487574e-06], "duration": 848, "sigma": 64, "width": 592}}, {"name": "fc", "t0": 64, "ch": "d19", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 64, "ch": "d19", "label": "Ym_d19", "pulse_shape": "drag", "parameters": {"amp": [-3.840740156161162e-17, -0.20908015594565632], "beta": -3.1449194923112707, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1072, "ch": "d19", "label": "Xp_d19", "pulse_shape": "drag", "parameters": {"amp": [0.20908015594565632, 0.0], "beta": -3.1449194923112707, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 64, "ch": "u35", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 224, "ch": "u40", "label": "CR90p_u40", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.07942114284240295, 0.31749624813222305], "duration": 848, "sigma": 64, "width": 592}}, {"name": "parametric_pulse", "t0": 1232, "ch": "u40", "label": "CR90m_u40", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.07942114284240291, -0.31749624813222305], "duration": 848, "sigma": 64, "width": 592}}, {"name": "fc", "t0": 64, "ch": "u43", "phase": 1.5707963267948966}, {"name": "fc", "t0": 64, "ch": "u46", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [19, 20], "sequence": [{"name": "fc", "t0": 1744, "ch": "d19", "phase": 0.12631909523827917}, {"name": "CX_d20_u41", "t0": 0, "ch": "d20"}, {"name": "fc", "t0": 1744, "ch": "d20", "phase": -0.011888241260744527}, {"name": "fc", "t0": 1744, "ch": "u35", "phase": 0.12631909523827917}, {"name": "parametric_pulse", "t0": 0, "ch": "u41", "label": "CX_u41", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.19013752845375925, 0.42399381620856724], "duration": 1744, "sigma": 64, "width": 1488}}, {"name": "fc", "t0": 1744, "ch": "u41", "phase": -0.011888241260744527}, {"name": "fc", "t0": 1744, "ch": "u43", "phase": 0.12631909523827917}, {"name": "fc", "t0": 1744, "ch": "u46", "phase": 0.12631909523827917}]}, {"name": "cx", "qubits": [19, 22], "sequence": [{"name": "fc", "t0": 0, "ch": "d19", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d19", "label": "Y90p_d19", "pulse_shape": "drag", "parameters": {"amp": [-0.0014043594135915993, 0.10472315050694099], "beta": -3.1348249974094102, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d19", "label": "CR90p_d19_u46", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.038161536066229476, 0.0009531971408767625], "duration": 800, "sigma": 64, "width": 544}}, {"name": "parametric_pulse", "t0": 1120, "ch": "d19", "label": "CR90m_d19_u46", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.038161536066229476, -0.0009531971408767579], "duration": 800, "sigma": 64, "width": 544}}, {"name": "fc", "t0": 1920, "ch": "d19", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1920, "ch": "d19", "label": "X90p_d19", "pulse_shape": "drag", "parameters": {"amp": [0.10472315050694099, 0.001404359413591613], "beta": -3.1348249974094102, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d22", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d22", "label": "X90p_d22", "pulse_shape": "drag", "parameters": {"amp": [0.10215481542130887, 0.001026211691743867], "beta": -1.4661821229995018, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 960, "ch": "d22", "label": "Xp_d22", "pulse_shape": "drag", "parameters": {"amp": [0.20193314480317487, 0.0], "beta": -1.4239236928422578, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1920, "ch": "d22", "label": "Y90m_d22", "pulse_shape": "drag", "parameters": {"amp": [0.0010262116917438534, -0.10215481542130887], "beta": -1.4661821229995018, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u35", "phase": -3.141592653589793}, {"name": "fc", "t0": 1920, "ch": "u35", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u42", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u43", "phase": -3.141592653589793}, {"name": "fc", "t0": 1920, "ch": "u43", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u46", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u46", "label": "CR90p_u46", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.24974967098806886, 0.011858490107280111], "duration": 800, "sigma": 64, "width": 544}}, {"name": "parametric_pulse", "t0": 1120, "ch": "u46", "label": "CR90m_u46", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.24974967098806886, -0.011858490107280142], "duration": 800, "sigma": 64, "width": 544}}, {"name": "fc", "t0": 1920, "ch": "u46", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u52", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [20, 19], "sequence": [{"name": "fc", "t0": 0, "ch": "d19", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d19", "label": "Y90p_d19", "pulse_shape": "drag", "parameters": {"amp": [-0.0014043594135915993, 0.10472315050694099], "beta": -3.1348249974094102, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 1904, "ch": "d19", "phase": 0.12631909523827917}, {"name": "fc", "t0": 1904, "ch": "d19", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1904, "ch": "d19", "label": "Y90p_d19", "pulse_shape": "drag", "parameters": {"amp": [-0.0014043594135915993, 0.10472315050694099], "beta": -3.1348249974094102, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d20", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d20", "label": "Y90p_d20", "pulse_shape": "drag", "parameters": {"amp": [0.0002954714864645744, 0.12401715565059833], "beta": -0.4358998158420476, "duration": 160, "sigma": 40}}, {"name": "CX_d20_u41", "t0": 160, "ch": "d20"}, {"name": "fc", "t0": 1904, "ch": "d20", "phase": -0.011888241260744527}, {"name": "fc", "t0": 1904, "ch": "d20", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1904, "ch": "d20", "label": "Y90p_d20", "pulse_shape": "drag", "parameters": {"amp": [0.0002954714864645744, 0.12401715565059833], "beta": -0.4358998158420476, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u35", "phase": -3.141592653589793}, {"name": "fc", "t0": 1904, "ch": "u35", "phase": 0.12631909523827917}, {"name": "fc", "t0": 1904, "ch": "u35", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u41", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u41", "label": "CX_u41", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.19013752845375925, 0.42399381620856724], "duration": 1744, "sigma": 64, "width": 1488}}, {"name": "fc", "t0": 1904, "ch": "u41", "phase": -0.011888241260744527}, {"name": "fc", "t0": 1904, "ch": "u41", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u43", "phase": -3.141592653589793}, {"name": "fc", "t0": 1904, "ch": "u43", "phase": 0.12631909523827917}, {"name": "fc", "t0": 1904, "ch": "u43", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u46", "phase": -3.141592653589793}, {"name": "fc", "t0": 1904, "ch": "u46", "phase": 0.12631909523827917}, {"name": "fc", "t0": 1904, "ch": "u46", "phase": -3.141592653589793}]}, {"name": "cx", "qubits": [21, 18], "sequence": [{"name": "fc", "t0": 0, "ch": "d18", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d18", "label": "X90p_d18", "pulse_shape": "drag", "parameters": {"amp": [0.10509771899692791, -0.00046413034620189874], "beta": -0.2302046639392253, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1280, "ch": "d18", "label": "Xp_d18", "pulse_shape": "drag", "parameters": {"amp": [0.20998704099452967, 0.0], "beta": -0.2169641209301092, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 2560, "ch": "d18", "label": "Y90m_d18", "pulse_shape": "drag", "parameters": {"amp": [-0.00046413034620195544, -0.10509771899692791], "beta": -0.2302046639392253, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d21", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d21", "label": "Y90p_d21", "pulse_shape": "drag", "parameters": {"amp": [0.0016141571952729271, 0.10055957599496994], "beta": 3.3019402371998003, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d21", "label": "CR90p_d21_u39", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.027192023175069316, -0.002052806681049806], "duration": 1120, "sigma": 64, "width": 864}}, {"name": "parametric_pulse", "t0": 1440, "ch": "d21", "label": "CR90m_d21_u39", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.027192023175069316, 0.0020528066810498093], "duration": 1120, "sigma": 64, "width": 864}}, {"name": "fc", "t0": 2560, "ch": "d21", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 2560, "ch": "d21", "label": "X90p_d21", "pulse_shape": "drag", "parameters": {"amp": [0.10055957599496994, -0.001614157195272922], "beta": 3.3019402371998003, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u33", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u36", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u39", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u39", "label": "CR90p_u39", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.09464595227717112, -0.18564345372396748], "duration": 1120, "sigma": 64, "width": 864}}, {"name": "parametric_pulse", "t0": 1440, "ch": "u39", "label": "CR90m_u39", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.0946459522771711, 0.18564345372396748], "duration": 1120, "sigma": 64, "width": 864}}, {"name": "fc", "t0": 2560, "ch": "u39", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u44", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u48", "phase": -3.141592653589793}, {"name": "fc", "t0": 2560, "ch": "u48", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [21, 23], "sequence": [{"name": "fc", "t0": 0, "ch": "d21", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d21", "label": "Y90p_d21", "pulse_shape": "drag", "parameters": {"amp": [0.0016141571952729271, 0.10055957599496994], "beta": 3.3019402371998003, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d21", "label": "CR90p_d21_u48", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.024006973887567798, 6.917627438865443e-05], "duration": 1536, "sigma": 64, "width": 1280}}, {"name": "parametric_pulse", "t0": 1856, "ch": "d21", "label": "CR90m_d21_u48", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.024006973887567798, -6.917627438865149e-05], "duration": 1536, "sigma": 64, "width": 1280}}, {"name": "fc", "t0": 3392, "ch": "d21", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 3392, "ch": "d21", "label": "X90p_d21", "pulse_shape": "drag", "parameters": {"amp": [0.10055957599496994, -0.001614157195272922], "beta": 3.3019402371998003, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d23", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d23", "label": "X90p_d23", "pulse_shape": "drag", "parameters": {"amp": [0.09966491293126645, 0.0007347229897852622], "beta": -2.5699967175031464, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1696, "ch": "d23", "label": "Xp_d23", "pulse_shape": "drag", "parameters": {"amp": [0.19888046579575155, 0.0], "beta": -2.4571800963807013, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 3392, "ch": "d23", "label": "Y90m_d23", "pulse_shape": "drag", "parameters": {"amp": [0.0007347229897852598, -0.09966491293126645], "beta": -2.5699967175031464, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u39", "phase": -3.141592653589793}, {"name": "fc", "t0": 3392, "ch": "u39", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u45", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u48", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u48", "label": "CR90p_u48", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.029165049131582722, -0.08886596923395927], "duration": 1536, "sigma": 64, "width": 1280}}, {"name": "parametric_pulse", "t0": 1856, "ch": "u48", "label": "CR90m_u48", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.029165049131582733, 0.08886596923395927], "duration": 1536, "sigma": 64, "width": 1280}}, {"name": "fc", "t0": 3392, "ch": "u48", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u50", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [22, 19], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d19", "label": "X90p_d19", "pulse_shape": "drag", "parameters": {"amp": [0.10472315050694099, 0.001404359413591613], "beta": -3.1348249974094102, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d19", "label": "CR90p_d19_u46", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.038161536066229476, 0.0009531971408767625], "duration": 800, "sigma": 64, "width": 544}}, {"name": "parametric_pulse", "t0": 1120, "ch": "d19", "label": "CR90m_d19_u46", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.038161536066229476, -0.0009531971408767579], "duration": 800, "sigma": 64, "width": 544}}, {"name": "fc", "t0": 0, "ch": "d22", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d22", "label": "Ym_d22", "pulse_shape": "drag", "parameters": {"amp": [-3.709451691374506e-17, -0.20193314480317487], "beta": -1.4239236928422578, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 960, "ch": "d22", "label": "Xp_d22", "pulse_shape": "drag", "parameters": {"amp": [0.20193314480317487, 0.0], "beta": -1.4239236928422578, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u42", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u46", "label": "CR90p_u46", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.24974967098806886, 0.011858490107280111], "duration": 800, "sigma": 64, "width": 544}}, {"name": "parametric_pulse", "t0": 1120, "ch": "u46", "label": "CR90m_u46", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.24974967098806886, -0.011858490107280142], "duration": 800, "sigma": 64, "width": 544}}, {"name": "fc", "t0": 0, "ch": "u52", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [22, 25], "sequence": [{"name": "fc", "t0": 0, "ch": "d22", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d22", "label": "Ym_d22", "pulse_shape": "drag", "parameters": {"amp": [-3.709451691374506e-17, -0.20193314480317487], "beta": -1.4239236928422578, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 912, "ch": "d22", "label": "Xp_d22", "pulse_shape": "drag", "parameters": {"amp": [0.20193314480317487, 0.0], "beta": -1.4239236928422578, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d25", "label": "X90p_d25", "pulse_shape": "drag", "parameters": {"amp": [0.1182983094904508, -0.0007061463483446628], "beta": 0.8067793714645428, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d25", "label": "CR90p_d25_u47", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.04249774484882339, 0.0024321327395304443], "duration": 752, "sigma": 64, "width": 496}}, {"name": "parametric_pulse", "t0": 1072, "ch": "d25", "label": "CR90m_d25_u47", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.04249774484882339, -0.002432132739530439], "duration": 752, "sigma": 64, "width": 496}}, {"name": "fc", "t0": 0, "ch": "u42", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u47", "label": "CR90p_u47", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.10221945129321065, 0.005945838177380025], "duration": 752, "sigma": 64, "width": 496}}, {"name": "parametric_pulse", "t0": 1072, "ch": "u47", "label": "CR90m_u47", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.10221945129321065, -0.005945838177380013], "duration": 752, "sigma": 64, "width": 496}}, {"name": "fc", "t0": 0, "ch": "u52", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [23, 21], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d21", "label": "X90p_d21", "pulse_shape": "drag", "parameters": {"amp": [0.10055957599496994, -0.001614157195272922], "beta": 3.3019402371998003, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d21", "label": "CR90p_d21_u48", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.024006973887567798, 6.917627438865443e-05], "duration": 1536, "sigma": 64, "width": 1280}}, {"name": "parametric_pulse", "t0": 1856, "ch": "d21", "label": "CR90m_d21_u48", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.024006973887567798, -6.917627438865149e-05], "duration": 1536, "sigma": 64, "width": 1280}}, {"name": "fc", "t0": 0, "ch": "d23", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d23", "label": "Ym_d23", "pulse_shape": "drag", "parameters": {"amp": [-3.6533748877455266e-17, -0.19888046579575155], "beta": -2.4571800963807013, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1696, "ch": "d23", "label": "Xp_d23", "pulse_shape": "drag", "parameters": {"amp": [0.19888046579575155, 0.0], "beta": -2.4571800963807013, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u45", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u48", "label": "CR90p_u48", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.029165049131582722, -0.08886596923395927], "duration": 1536, "sigma": 64, "width": 1280}}, {"name": "parametric_pulse", "t0": 1856, "ch": "u48", "label": "CR90m_u48", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.029165049131582733, 0.08886596923395927], "duration": 1536, "sigma": 64, "width": 1280}}, {"name": "fc", "t0": 0, "ch": "u50", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [23, 24], "sequence": [{"name": "fc", "t0": 0, "ch": "d23", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d23", "label": "Ym_d23", "pulse_shape": "drag", "parameters": {"amp": [-3.6533748877455266e-17, -0.19888046579575155], "beta": -2.4571800963807013, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 960, "ch": "d23", "label": "Xp_d23", "pulse_shape": "drag", "parameters": {"amp": [0.19888046579575155, 0.0], "beta": -2.4571800963807013, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d24", "label": "X90p_d24", "pulse_shape": "drag", "parameters": {"amp": [0.10509208156374965, -0.0004234540234449305], "beta": -0.614208421484813, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d24", "label": "CR90p_d24_u49", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.03455491246414818, -0.001212846023541904], "duration": 800, "sigma": 64, "width": 544}}, {"name": "parametric_pulse", "t0": 1120, "ch": "d24", "label": "CR90m_d24_u49", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.03455491246414818, 0.0012128460235419083], "duration": 800, "sigma": 64, "width": 544}}, {"name": "fc", "t0": 0, "ch": "u45", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u49", "label": "CR90p_u49", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.17715320584090247, 0.04440926876845253], "duration": 800, "sigma": 64, "width": 544}}, {"name": "parametric_pulse", "t0": 1120, "ch": "u49", "label": "CR90m_u49", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.17715320584090247, -0.04440926876845251], "duration": 800, "sigma": 64, "width": 544}}, {"name": "fc", "t0": 0, "ch": "u50", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [24, 23], "sequence": [{"name": "fc", "t0": 0, "ch": "d23", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d23", "label": "X90p_d23", "pulse_shape": "drag", "parameters": {"amp": [0.09966491293126645, 0.0007347229897852622], "beta": -2.5699967175031464, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 960, "ch": "d23", "label": "Xp_d23", "pulse_shape": "drag", "parameters": {"amp": [0.19888046579575155, 0.0], "beta": -2.4571800963807013, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1920, "ch": "d23", "label": "Y90m_d23", "pulse_shape": "drag", "parameters": {"amp": [0.0007347229897852598, -0.09966491293126645], "beta": -2.5699967175031464, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d24", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d24", "label": "Y90p_d24", "pulse_shape": "drag", "parameters": {"amp": [0.00042345402344494827, 0.10509208156374965], "beta": -0.614208421484813, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d24", "label": "CR90p_d24_u49", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.03455491246414818, -0.001212846023541904], "duration": 800, "sigma": 64, "width": 544}}, {"name": "parametric_pulse", "t0": 1120, "ch": "d24", "label": "CR90m_d24_u49", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.03455491246414818, 0.0012128460235419083], "duration": 800, "sigma": 64, "width": 544}}, {"name": "fc", "t0": 1920, "ch": "d24", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1920, "ch": "d24", "label": "X90p_d24", "pulse_shape": "drag", "parameters": {"amp": [0.10509208156374965, -0.0004234540234449305], "beta": -0.614208421484813, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u45", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u49", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u49", "label": "CR90p_u49", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.17715320584090247, 0.04440926876845253], "duration": 800, "sigma": 64, "width": 544}}, {"name": "parametric_pulse", "t0": 1120, "ch": "u49", "label": "CR90m_u49", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.17715320584090247, -0.04440926876845251], "duration": 800, "sigma": 64, "width": 544}}, {"name": "fc", "t0": 1920, "ch": "u49", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u50", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u53", "phase": -3.141592653589793}, {"name": "fc", "t0": 1920, "ch": "u53", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [24, 25], "sequence": [{"name": "fc", "t0": 0, "ch": "d24", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d24", "label": "Ym_d24", "pulse_shape": "drag", "parameters": {"amp": [-3.865566657035069e-17, -0.21043164770590328], "beta": -0.5631209330522283, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1168, "ch": "d24", "label": "Xp_d24", "pulse_shape": "drag", "parameters": {"amp": [0.21043164770590328, 0.0], "beta": -0.5631209330522283, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d25", "label": "X90p_d25", "pulse_shape": "drag", "parameters": {"amp": [0.1182983094904508, -0.0007061463483446628], "beta": 0.8067793714645428, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d25", "label": "CR90p_d25_u51", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.03164237316367921, -0.0012960226757690234], "duration": 1008, "sigma": 64, "width": 752}}, {"name": "parametric_pulse", "t0": 1328, "ch": "d25", "label": "CR90m_d25_u51", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.03164237316367921, 0.0012960226757690273], "duration": 1008, "sigma": 64, "width": 752}}, {"name": "fc", "t0": 0, "ch": "u49", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u51", "label": "CR90p_u51", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.20687323205168864, 0.07196618343832084], "duration": 1008, "sigma": 64, "width": 752}}, {"name": "parametric_pulse", "t0": 1328, "ch": "u51", "label": "CR90m_u51", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.20687323205168864, -0.07196618343832087], "duration": 1008, "sigma": 64, "width": 752}}, {"name": "fc", "t0": 0, "ch": "u53", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [25, 22], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d22", "label": "X90p_d22", "pulse_shape": "drag", "parameters": {"amp": [0.10215481542130887, 0.001026211691743867], "beta": -1.4661821229995018, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d22", "label": "CR90p_d22_u52", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.03711643467543796, -0.00037476765818634513], "duration": 848, "sigma": 64, "width": 592}}, {"name": "parametric_pulse", "t0": 1168, "ch": "d22", "label": "CR90m_d22_u52", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.03711643467543796, 0.0003747676581863497], "duration": 848, "sigma": 64, "width": 592}}, {"name": "fc", "t0": 0, "ch": "d25", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d25", "label": "Ym_d25", "pulse_shape": "drag", "parameters": {"amp": [-4.381383742145316e-17, -0.23851142197057992], "beta": 0.913064895986392, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1008, "ch": "d25", "label": "Xp_d25", "pulse_shape": "drag", "parameters": {"amp": [0.23851142197057992, 0.0], "beta": 0.913064895986392, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u47", "phase": 1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u51", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u52", "label": "CR90p_u52", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.17657740166922253, -0.04598065793180122], "duration": 848, "sigma": 64, "width": 592}}, {"name": "parametric_pulse", "t0": 1168, "ch": "u52", "label": "CR90m_u52", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.17657740166922253, 0.0459806579318012], "duration": 848, "sigma": 64, "width": 592}}, {"name": "fc", "t0": 0, "ch": "u55", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [25, 24], "sequence": [{"name": "fc", "t0": 0, "ch": "d24", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d24", "label": "X90p_d24", "pulse_shape": "drag", "parameters": {"amp": [0.10509208156374965, -0.0004234540234449305], "beta": -0.614208421484813, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1168, "ch": "d24", "label": "Xp_d24", "pulse_shape": "drag", "parameters": {"amp": [0.21043164770590328, 0.0], "beta": -0.5631209330522283, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 2336, "ch": "d24", "label": "Y90m_d24", "pulse_shape": "drag", "parameters": {"amp": [-0.00042345402344491444, -0.10509208156374965], "beta": -0.614208421484813, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d25", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d25", "label": "Y90p_d25", "pulse_shape": "drag", "parameters": {"amp": [0.0007061463483446582, 0.1182983094904508], "beta": 0.8067793714645428, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d25", "label": "CR90p_d25_u51", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.03164237316367921, -0.0012960226757690234], "duration": 1008, "sigma": 64, "width": 752}}, {"name": "parametric_pulse", "t0": 1328, "ch": "d25", "label": "CR90m_d25_u51", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.03164237316367921, 0.0012960226757690273], "duration": 1008, "sigma": 64, "width": 752}}, {"name": "fc", "t0": 2336, "ch": "d25", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 2336, "ch": "d25", "label": "X90p_d25", "pulse_shape": "drag", "parameters": {"amp": [0.1182983094904508, -0.0007061463483446628], "beta": 0.8067793714645428, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u47", "phase": -3.141592653589793}, {"name": "fc", "t0": 2336, "ch": "u47", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u49", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u51", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u51", "label": "CR90p_u51", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.20687323205168864, 0.07196618343832084], "duration": 1008, "sigma": 64, "width": 752}}, {"name": "parametric_pulse", "t0": 1328, "ch": "u51", "label": "CR90m_u51", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.20687323205168864, -0.07196618343832087], "duration": 1008, "sigma": 64, "width": 752}}, {"name": "fc", "t0": 2336, "ch": "u51", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u53", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u55", "phase": -3.141592653589793}, {"name": "fc", "t0": 2336, "ch": "u55", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [25, 26], "sequence": [{"name": "fc", "t0": 0, "ch": "d25", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d25", "label": "Y90p_d25", "pulse_shape": "drag", "parameters": {"amp": [0.0007061463483446582, 0.1182983094904508], "beta": 0.8067793714645428, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d25", "label": "CR90p_d25_u55", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.09956139244246727, 0.0], "duration": 416, "sigma": 64, "width": 160}}, {"name": "parametric_pulse", "t0": 736, "ch": "d25", "label": "CR90m_d25_u55", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.09956139244246727, 1.2192754057332102e-17], "duration": 416, "sigma": 64, "width": 160}}, {"name": "fc", "t0": 1152, "ch": "d25", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1152, "ch": "d25", "label": "X90p_d25", "pulse_shape": "drag", "parameters": {"amp": [0.1182983094904508, -0.0007061463483446628], "beta": 0.8067793714645428, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d26", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d26", "label": "X90p_d26", "pulse_shape": "drag", "parameters": {"amp": [0.0854607765253132, -0.0008496528450102033], "beta": 0.6053670972416939, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 576, "ch": "d26", "label": "Xp_d26", "pulse_shape": "drag", "parameters": {"amp": [0.1704704930653871, 0.0], "beta": 0.6301150997678077, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1152, "ch": "d26", "label": "Y90m_d26", "pulse_shape": "drag", "parameters": {"amp": [-0.0008496528450101955, -0.0854607765253132], "beta": 0.6053670972416939, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u47", "phase": -3.141592653589793}, {"name": "fc", "t0": 1152, "ch": "u47", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u51", "phase": -3.141592653589793}, {"name": "fc", "t0": 1152, "ch": "u51", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u54", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u55", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u55", "label": "CR90p_u55", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.9006789054430967, 0.3259568256782879], "duration": 416, "sigma": 64, "width": 160}}, {"name": "parametric_pulse", "t0": 736, "ch": "u55", "label": "CR90m_u55", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.9006789054430967, -0.32595682567828776], "duration": 416, "sigma": 64, "width": 160}}, {"name": "fc", "t0": 1152, "ch": "u55", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [26, 25], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d25", "label": "X90p_d25", "pulse_shape": "drag", "parameters": {"amp": [0.1182983094904508, -0.0007061463483446628], "beta": 0.8067793714645428, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d25", "label": "CR90p_d25_u55", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.09956139244246727, 0.0], "duration": 416, "sigma": 64, "width": 160}}, {"name": "parametric_pulse", "t0": 736, "ch": "d25", "label": "CR90m_d25_u55", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.09956139244246727, 1.2192754057332102e-17], "duration": 416, "sigma": 64, "width": 160}}, {"name": "fc", "t0": 0, "ch": "d26", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d26", "label": "Ym_d26", "pulse_shape": "drag", "parameters": {"amp": [-3.1314921552239606e-17, -0.1704704930653871], "beta": 0.6301150997678077, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 576, "ch": "d26", "label": "Xp_d26", "pulse_shape": "drag", "parameters": {"amp": [0.1704704930653871, 0.0], "beta": 0.6301150997678077, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u54", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u55", "label": "CR90p_u55", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.9006789054430967, 0.3259568256782879], "duration": 416, "sigma": 64, "width": 160}}, {"name": "parametric_pulse", "t0": 736, "ch": "u55", "label": "CR90m_u55", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.9006789054430967, -0.32595682567828776], "duration": 416, "sigma": 64, "width": 160}}]}, {"name": "id", "qubits": [0], "sequence": [{"name": "QId_d0", "t0": 0, "ch": "d0"}]}, {"name": "id", "qubits": [1], "sequence": [{"name": "QId_d1", "t0": 0, "ch": "d1"}]}, {"name": "id", "qubits": [2], "sequence": [{"name": "QId_d2", "t0": 0, "ch": "d2"}]}, {"name": "id", "qubits": [3], "sequence": [{"name": "QId_d3", "t0": 0, "ch": "d3"}]}, {"name": "id", "qubits": [4], "sequence": [{"name": "QId_d4", "t0": 0, "ch": "d4"}]}, {"name": "id", "qubits": [5], "sequence": [{"name": "QId_d5", "t0": 0, "ch": "d5"}]}, {"name": "id", "qubits": [6], "sequence": [{"name": "QId_d6", "t0": 0, "ch": "d6"}]}, {"name": "id", "qubits": [7], "sequence": [{"name": "QId_d7", "t0": 0, "ch": "d7"}]}, {"name": "id", "qubits": [8], "sequence": [{"name": "QId_d8", "t0": 0, "ch": "d8"}]}, {"name": "id", "qubits": [9], "sequence": [{"name": "QId_d9", "t0": 0, "ch": "d9"}]}, {"name": "id", "qubits": [10], "sequence": [{"name": "QId_d10", "t0": 0, "ch": "d10"}]}, {"name": "id", "qubits": [11], "sequence": [{"name": "QId_d11", "t0": 0, "ch": "d11"}]}, {"name": "id", "qubits": [12], "sequence": [{"name": "QId_d12", "t0": 0, "ch": "d12"}]}, {"name": "id", "qubits": [13], "sequence": [{"name": "QId_d13", "t0": 0, "ch": "d13"}]}, {"name": "id", "qubits": [14], "sequence": [{"name": "QId_d14", "t0": 0, "ch": "d14"}]}, {"name": "id", "qubits": [15], "sequence": [{"name": "QId_d15", "t0": 0, "ch": "d15"}]}, {"name": "id", "qubits": [16], "sequence": [{"name": "QId_d16", "t0": 0, "ch": "d16"}]}, {"name": "id", "qubits": [17], "sequence": [{"name": "QId_d17", "t0": 0, "ch": "d17"}]}, {"name": "id", "qubits": [18], "sequence": [{"name": "QId_d18", "t0": 0, "ch": "d18"}]}, {"name": "id", "qubits": [19], "sequence": [{"name": "QId_d19", "t0": 0, "ch": "d19"}]}, {"name": "id", "qubits": [20], "sequence": [{"name": "QId_d20", "t0": 0, "ch": "d20"}]}, {"name": "id", "qubits": [21], "sequence": [{"name": "QId_d21", "t0": 0, "ch": "d21"}]}, {"name": "id", "qubits": [22], "sequence": [{"name": "QId_d22", "t0": 0, "ch": "d22"}]}, {"name": "id", "qubits": [23], "sequence": [{"name": "QId_d23", "t0": 0, "ch": "d23"}]}, {"name": "id", "qubits": [24], "sequence": [{"name": "QId_d24", "t0": 0, "ch": "d24"}]}, {"name": "id", "qubits": [25], "sequence": [{"name": "QId_d25", "t0": 0, "ch": "d25"}]}, {"name": "id", "qubits": [26], "sequence": [{"name": "QId_d26", "t0": 0, "ch": "d26"}]}, {"name": "measure", "qubits": [0], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m0", "label": "M_m0", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.12266217950601949, 0.10273261273243786], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m0", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m0", "label": "M_m0", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.12266217950601949, 0.10273261273243786], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m0", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m1", "label": "M_m1", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.13619469826841404, -0.03241919436962709], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m1", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m10", "label": "M_m10", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.22500055605161653, -0.19843071782480087], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m10", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m11", "label": "M_m11", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.3760811841099962, 0.06045336416960721], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m11", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m12", "label": "M_m12", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.07963442504111665, 0.007639263601341006], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m12", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m13", "label": "M_m13", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.12239057017057665, -0.10305604462291941], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m13", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m14", "label": "M_m14", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.14109725989956104, 0.05090739876320263], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m14", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m15", "label": "M_m15", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.1230893652892274, 0.08572635623129644], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m15", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m16", "label": "M_m16", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.1593931342404477, 0.013922239654833551], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m16", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m17", "label": "M_m17", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.055360458087106774, -0.16073338072841528], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m17", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m18", "label": "M_m18", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.07686040988571065, 0.25322226263146874], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m18", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m19", "label": "M_m19", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.10540076410988734, -0.03147505242333812], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m19", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m2", "label": "M_m2", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.09705410035689166, 0.024093600891406858], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m2", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m20", "label": "M_m20", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.12039156890079071, 0.0894755281493558], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m20", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m21", "label": "M_m21", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.13304446902232653, 0.2688850484176597], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m21", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m22", "label": "M_m22", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.05947624125027703, -0.0925341922034166], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m22", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m23", "label": "M_m23", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.06990064374139505, -0.0037282709851308975], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m23", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m24", "label": "M_m24", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.046939642799484614, -0.2455538025237174], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m24", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m25", "label": "M_m25", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.07504300425794548, 0.09364052280899533], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m25", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m26", "label": "M_m26", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.2439807079397257, -0.17456636031386533], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m26", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m3", "label": "M_m3", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.05186548643842263, 0.16219167236611717], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m3", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m4", "label": "M_m4", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.1606587262374525, -0.05557673689376964], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m4", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m5", "label": "M_m5", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.09817282147599087, -0.17424722988743102], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m5", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m6", "label": "M_m6", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.18464046076916754, -0.1685464335040926], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m6", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m7", "label": "M_m7", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.04066807756576532, 0.16506394962893897], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m7", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m8", "label": "M_m8", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.18843466313384427, 0.06702520219764087], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m8", "duration": 1872}, {"name": "parametric_pulse", "t0": 0, "ch": "m9", "label": "M_m9", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.3537913887564507, -0.2500778853593056], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m9", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [1], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m1", "label": "M_m1", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.13619469826841404, -0.03241919436962709], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m1", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [2], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m2", "label": "M_m2", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.09705410035689166, 0.024093600891406858], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m2", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [3], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m3", "label": "M_m3", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.05186548643842263, 0.16219167236611717], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m3", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [4], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m4", "label": "M_m4", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.1606587262374525, -0.05557673689376964], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m4", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [5], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m5", "label": "M_m5", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.09817282147599087, -0.17424722988743102], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m5", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [6], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m6", "label": "M_m6", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.18464046076916754, -0.1685464335040926], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m6", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [7], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m7", "label": "M_m7", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.04066807756576532, 0.16506394962893897], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m7", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [8], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m8", "label": "M_m8", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.18843466313384427, 0.06702520219764087], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m8", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [9], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m9", "label": "M_m9", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.3537913887564507, -0.2500778853593056], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m9", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [10], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m10", "label": "M_m10", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.22500055605161653, -0.19843071782480087], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m10", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [11], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m11", "label": "M_m11", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.3760811841099962, 0.06045336416960721], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m11", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [12], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m12", "label": "M_m12", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.07963442504111665, 0.007639263601341006], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m12", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [13], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m13", "label": "M_m13", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.12239057017057665, -0.10305604462291941], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m13", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [14], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m14", "label": "M_m14", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.14109725989956104, 0.05090739876320263], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m14", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [15], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m15", "label": "M_m15", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.1230893652892274, 0.08572635623129644], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m15", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [16], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m16", "label": "M_m16", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.1593931342404477, 0.013922239654833551], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m16", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [17], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m17", "label": "M_m17", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.055360458087106774, -0.16073338072841528], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m17", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [18], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m18", "label": "M_m18", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.07686040988571065, 0.25322226263146874], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m18", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [19], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m19", "label": "M_m19", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.10540076410988734, -0.03147505242333812], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m19", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [20], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m20", "label": "M_m20", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.12039156890079071, 0.0894755281493558], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m20", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [21], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m21", "label": "M_m21", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.13304446902232653, 0.2688850484176597], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m21", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [22], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m22", "label": "M_m22", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.05947624125027703, -0.0925341922034166], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m22", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [23], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m23", "label": "M_m23", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.06990064374139505, -0.0037282709851308975], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m23", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [24], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m24", "label": "M_m24", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.046939642799484614, -0.2455538025237174], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m24", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [25], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m25", "label": "M_m25", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.07504300425794548, 0.09364052280899533], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m25", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "measure", "qubits": [26], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m26", "label": "M_m26", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.2439807079397257, -0.17456636031386533], "duration": 4480, "sigma": 64, "width": 4224}}, {"name": "delay", "t0": 4480, "ch": "m26", "duration": 1872}, {"name": "acquire", "t0": 0, "duration": 4480, "qubits": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "memory_slot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}]}, {"name": "rz", "qubits": [0], "sequence": [{"name": "fc", "t0": 0, "ch": "d0", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u1", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [1], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u0", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u4", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u8", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [2], "sequence": [{"name": "fc", "t0": 0, "ch": "d2", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u2", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u6", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [3], "sequence": [{"name": "fc", "t0": 0, "ch": "d3", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u10", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u5", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [4], "sequence": [{"name": "fc", "t0": 0, "ch": "d4", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u13", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u3", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [5], "sequence": [{"name": "fc", "t0": 0, "ch": "d5", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u16", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u7", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [6], "sequence": [{"name": "fc", "t0": 0, "ch": "d6", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u14", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [7], "sequence": [{"name": "fc", "t0": 0, "ch": "d7", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u12", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u20", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u9", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [8], "sequence": [{"name": "fc", "t0": 0, "ch": "d8", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u11", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u19", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u22", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [9], "sequence": [{"name": "fc", "t0": 0, "ch": "d9", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u17", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [10], "sequence": [{"name": "fc", "t0": 0, "ch": "d10", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u15", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u24", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [11], "sequence": [{"name": "fc", "t0": 0, "ch": "d11", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u18", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u29", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [12], "sequence": [{"name": "fc", "t0": 0, "ch": "d12", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u21", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u27", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u32", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [13], "sequence": [{"name": "fc", "t0": 0, "ch": "d13", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u25", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u30", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [14], "sequence": [{"name": "fc", "t0": 0, "ch": "d14", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u23", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u28", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u34", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [15], "sequence": [{"name": "fc", "t0": 0, "ch": "d15", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u26", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u37", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [16], "sequence": [{"name": "fc", "t0": 0, "ch": "d16", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u31", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u40", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [17], "sequence": [{"name": "fc", "t0": 0, "ch": "d17", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u38", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [18], "sequence": [{"name": "fc", "t0": 0, "ch": "d18", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u33", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u36", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u44", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [19], "sequence": [{"name": "fc", "t0": 0, "ch": "d19", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u35", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u43", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u46", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [20], "sequence": [{"name": "fc", "t0": 0, "ch": "d20", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u41", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [21], "sequence": [{"name": "fc", "t0": 0, "ch": "d21", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u39", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u48", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [22], "sequence": [{"name": "fc", "t0": 0, "ch": "d22", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u42", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u52", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [23], "sequence": [{"name": "fc", "t0": 0, "ch": "d23", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u45", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u50", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [24], "sequence": [{"name": "fc", "t0": 0, "ch": "d24", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u49", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u53", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [25], "sequence": [{"name": "fc", "t0": 0, "ch": "d25", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u47", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u51", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u55", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [26], "sequence": [{"name": "fc", "t0": 0, "ch": "d26", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u54", "phase": "-(P0)"}]}, {"name": "sx", "qubits": [0], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d0", "label": "X90p_d0", "pulse_shape": "drag", "parameters": {"amp": [0.10377801308000216, -9.770409061042122e-06], "beta": -1.0149213161488795, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [1], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "X90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.09513967305102687, -0.0008700854555585467], "beta": 0.3960683326669556, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [2], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "X90p_d2", "pulse_shape": "drag", "parameters": {"amp": [0.08886323708960032, 0.0010025377502923204], "beta": -2.2376745831561644, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [3], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "X90p_d3", "pulse_shape": "drag", "parameters": {"amp": [0.10661547647704614, -0.0006070553922452572], "beta": -0.5176138331574068, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [4], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "X90p_d4", "pulse_shape": "drag", "parameters": {"amp": [0.0949613228743464, 0.001476724810580528], "beta": -3.2119733651985074, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [5], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "X90p_d5", "pulse_shape": "drag", "parameters": {"amp": [0.09816343223984954, 0.000240496505118405], "beta": -1.1305064781606282, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [6], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d6", "label": "X90p_d6", "pulse_shape": "drag", "parameters": {"amp": [0.11277479162236688, -0.0002658045934442615], "beta": -0.3854241491495041, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [7], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d7", "label": "X90p_d7", "pulse_shape": "drag", "parameters": {"amp": [0.11943281622859635, -0.0022674042671533006], "beta": 1.1463424017426946, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [8], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d8", "label": "X90p_d8", "pulse_shape": "drag", "parameters": {"amp": [0.11232769477288704, -0.001120665808023258], "beta": 1.1280238973136587, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [9], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d9", "label": "X90p_d9", "pulse_shape": "drag", "parameters": {"amp": [0.10976524219602081, 0.0010579794279775023], "beta": -2.401283303612347, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [10], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d10", "label": "X90p_d10", "pulse_shape": "drag", "parameters": {"amp": [0.10679021181971572, 0.00084493205579733], "beta": -2.1538513301843003, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [11], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d11", "label": "X90p_d11", "pulse_shape": "drag", "parameters": {"amp": [0.11907891983300731, -0.0001779950856348504], "beta": -1.0102446887715897, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [12], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d12", "label": "X90p_d12", "pulse_shape": "drag", "parameters": {"amp": [0.12333410224784243, 0.0019417134346765398], "beta": -2.567893950899014, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [13], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d13", "label": "X90p_d13", "pulse_shape": "drag", "parameters": {"amp": [0.103773449007206, 0.00017622277418506848], "beta": -1.8869442543880832, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [14], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d14", "label": "X90p_d14", "pulse_shape": "drag", "parameters": {"amp": [0.0867691563869258, -0.0001786389737468895], "beta": 1.6381616092190798, "duration": 224, "sigma": 56}}]}, {"name": "sx", "qubits": [15], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d15", "label": "X90p_d15", "pulse_shape": "drag", "parameters": {"amp": [0.12780615832633155, 0.0019970021606818145], "beta": -2.5638015828946914, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [16], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d16", "label": "X90p_d16", "pulse_shape": "drag", "parameters": {"amp": [0.10747776649112639, -9.675217802450346e-05], "beta": -0.675308043309437, "duration": 224, "sigma": 56}}]}, {"name": "sx", "qubits": [17], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d17", "label": "X90p_d17", "pulse_shape": "drag", "parameters": {"amp": [0.10028012827985704, -0.0012405533901464092], "beta": 0.650439081116248, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [18], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d18", "label": "X90p_d18", "pulse_shape": "drag", "parameters": {"amp": [0.10509771899692791, -0.00046413034620189874], "beta": -0.2302046639392253, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [19], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d19", "label": "X90p_d19", "pulse_shape": "drag", "parameters": {"amp": [0.10472315050694099, 0.001404359413591613], "beta": -3.1348249974094102, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [20], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d20", "label": "X90p_d20", "pulse_shape": "drag", "parameters": {"amp": [0.12401715565059833, -0.00029547148646456454], "beta": -0.4358998158420476, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [21], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d21", "label": "X90p_d21", "pulse_shape": "drag", "parameters": {"amp": [0.10055957599496994, -0.001614157195272922], "beta": 3.3019402371998003, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [22], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d22", "label": "X90p_d22", "pulse_shape": "drag", "parameters": {"amp": [0.10215481542130887, 0.001026211691743867], "beta": -1.4661821229995018, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [23], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d23", "label": "X90p_d23", "pulse_shape": "drag", "parameters": {"amp": [0.09966491293126645, 0.0007347229897852622], "beta": -2.5699967175031464, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [24], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d24", "label": "X90p_d24", "pulse_shape": "drag", "parameters": {"amp": [0.10509208156374965, -0.0004234540234449305], "beta": -0.614208421484813, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [25], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d25", "label": "X90p_d25", "pulse_shape": "drag", "parameters": {"amp": [0.1182983094904508, -0.0007061463483446628], "beta": 0.8067793714645428, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [26], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d26", "label": "X90p_d26", "pulse_shape": "drag", "parameters": {"amp": [0.0854607765253132, -0.0008496528450102033], "beta": 0.6053670972416939, "duration": 160, "sigma": 40}}]}, {"name": "u1", "qubits": [0], "sequence": [{"name": "fc", "t0": 0, "ch": "d0", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u1", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [1], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u0", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u4", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u8", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [2], "sequence": [{"name": "fc", "t0": 0, "ch": "d2", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u2", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u6", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [3], "sequence": [{"name": "fc", "t0": 0, "ch": "d3", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u10", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u5", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [4], "sequence": [{"name": "fc", "t0": 0, "ch": "d4", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u13", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u3", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [5], "sequence": [{"name": "fc", "t0": 0, "ch": "d5", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u16", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u7", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [6], "sequence": [{"name": "fc", "t0": 0, "ch": "d6", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u14", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [7], "sequence": [{"name": "fc", "t0": 0, "ch": "d7", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u12", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u20", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u9", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [8], "sequence": [{"name": "fc", "t0": 0, "ch": "d8", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u11", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u19", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u22", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [9], "sequence": [{"name": "fc", "t0": 0, "ch": "d9", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u17", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [10], "sequence": [{"name": "fc", "t0": 0, "ch": "d10", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u15", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u24", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [11], "sequence": [{"name": "fc", "t0": 0, "ch": "d11", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u18", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u29", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [12], "sequence": [{"name": "fc", "t0": 0, "ch": "d12", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u21", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u27", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u32", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [13], "sequence": [{"name": "fc", "t0": 0, "ch": "d13", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u25", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u30", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [14], "sequence": [{"name": "fc", "t0": 0, "ch": "d14", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u23", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u28", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u34", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [15], "sequence": [{"name": "fc", "t0": 0, "ch": "d15", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u26", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u37", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [16], "sequence": [{"name": "fc", "t0": 0, "ch": "d16", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u31", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u40", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [17], "sequence": [{"name": "fc", "t0": 0, "ch": "d17", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u38", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [18], "sequence": [{"name": "fc", "t0": 0, "ch": "d18", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u33", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u36", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u44", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [19], "sequence": [{"name": "fc", "t0": 0, "ch": "d19", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u35", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u43", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u46", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [20], "sequence": [{"name": "fc", "t0": 0, "ch": "d20", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u41", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [21], "sequence": [{"name": "fc", "t0": 0, "ch": "d21", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u39", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u48", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [22], "sequence": [{"name": "fc", "t0": 0, "ch": "d22", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u42", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u52", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [23], "sequence": [{"name": "fc", "t0": 0, "ch": "d23", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u45", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u50", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [24], "sequence": [{"name": "fc", "t0": 0, "ch": "d24", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u49", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u53", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [25], "sequence": [{"name": "fc", "t0": 0, "ch": "d25", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u47", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u51", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u55", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [26], "sequence": [{"name": "fc", "t0": 0, "ch": "d26", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u54", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [0], "sequence": [{"name": "fc", "t0": 0, "ch": "d0", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d0", "label": "Y90p_d0", "pulse_shape": "drag", "parameters": {"amp": [9.770409061041186e-06, 0.10377801308000216], "beta": -1.0149213161488795, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d0", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u1", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u1", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [1], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "Y90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.0008700854555585467, 0.09513967305102687], "beta": 0.3960683326669556, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d1", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u0", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u0", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u4", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u4", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u8", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u8", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [2], "sequence": [{"name": "fc", "t0": 0, "ch": "d2", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "Y90p_d2", "pulse_shape": "drag", "parameters": {"amp": [-0.0010025377502923078, 0.08886323708960032], "beta": -2.2376745831561644, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d2", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u2", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u2", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u6", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u6", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [3], "sequence": [{"name": "fc", "t0": 0, "ch": "d3", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "Y90p_d3", "pulse_shape": "drag", "parameters": {"amp": [0.0006070553922452678, 0.10661547647704614], "beta": -0.5176138331574068, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d3", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u10", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u10", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u5", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u5", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [4], "sequence": [{"name": "fc", "t0": 0, "ch": "d4", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "Y90p_d4", "pulse_shape": "drag", "parameters": {"amp": [-0.0014767248105805226, 0.0949613228743464], "beta": -3.2119733651985074, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d4", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u13", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u13", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u3", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u3", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [5], "sequence": [{"name": "fc", "t0": 0, "ch": "d5", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "Y90p_d5", "pulse_shape": "drag", "parameters": {"amp": [-0.00024049650511840165, 0.09816343223984954], "beta": -1.1305064781606282, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d5", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u16", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u16", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u7", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u7", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [6], "sequence": [{"name": "fc", "t0": 0, "ch": "d6", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d6", "label": "Y90p_d6", "pulse_shape": "drag", "parameters": {"amp": [0.00026580459344425925, 0.11277479162236688], "beta": -0.3854241491495041, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d6", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u14", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u14", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [7], "sequence": [{"name": "fc", "t0": 0, "ch": "d7", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d7", "label": "Y90p_d7", "pulse_shape": "drag", "parameters": {"amp": [0.002267404267153316, 0.11943281622859635], "beta": 1.1463424017426946, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d7", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u12", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u12", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u20", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u20", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u9", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u9", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [8], "sequence": [{"name": "fc", "t0": 0, "ch": "d8", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d8", "label": "Y90p_d8", "pulse_shape": "drag", "parameters": {"amp": [0.0011206658080232768, 0.11232769477288704], "beta": 1.1280238973136587, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d8", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u11", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u11", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u19", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u19", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u22", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u22", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [9], "sequence": [{"name": "fc", "t0": 0, "ch": "d9", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d9", "label": "Y90p_d9", "pulse_shape": "drag", "parameters": {"amp": [-0.0010579794279775056, 0.10976524219602081], "beta": -2.401283303612347, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d9", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u17", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u17", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [10], "sequence": [{"name": "fc", "t0": 0, "ch": "d10", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d10", "label": "Y90p_d10", "pulse_shape": "drag", "parameters": {"amp": [-0.0008449320557973282, 0.10679021181971572], "beta": -2.1538513301843003, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d10", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u15", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u15", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u24", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u24", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [11], "sequence": [{"name": "fc", "t0": 0, "ch": "d11", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d11", "label": "Y90p_d11", "pulse_shape": "drag", "parameters": {"amp": [0.0001779950856348649, 0.11907891983300731], "beta": -1.0102446887715897, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d11", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u18", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u18", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u29", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u29", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [12], "sequence": [{"name": "fc", "t0": 0, "ch": "d12", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d12", "label": "Y90p_d12", "pulse_shape": "drag", "parameters": {"amp": [-0.001941713434676521, 0.12333410224784243], "beta": -2.567893950899014, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d12", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u21", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u21", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u27", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u27", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u32", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u32", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [13], "sequence": [{"name": "fc", "t0": 0, "ch": "d13", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d13", "label": "Y90p_d13", "pulse_shape": "drag", "parameters": {"amp": [-0.00017622277418505772, 0.103773449007206], "beta": -1.8869442543880832, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d13", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u25", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u25", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u30", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u30", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [14], "sequence": [{"name": "fc", "t0": 0, "ch": "d14", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d14", "label": "Y90p_d14", "pulse_shape": "drag", "parameters": {"amp": [0.00017863897374688822, 0.0867691563869258], "beta": 1.6381616092190798, "duration": 224, "sigma": 56}}, {"name": "fc", "t0": 224, "ch": "d14", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u23", "phase": "-(P1)"}, {"name": "fc", "t0": 224, "ch": "u23", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u28", "phase": "-(P1)"}, {"name": "fc", "t0": 224, "ch": "u28", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u34", "phase": "-(P1)"}, {"name": "fc", "t0": 224, "ch": "u34", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [15], "sequence": [{"name": "fc", "t0": 0, "ch": "d15", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d15", "label": "Y90p_d15", "pulse_shape": "drag", "parameters": {"amp": [-0.0019970021606818054, 0.12780615832633155], "beta": -2.5638015828946914, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d15", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u26", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u26", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u37", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u37", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [16], "sequence": [{"name": "fc", "t0": 0, "ch": "d16", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d16", "label": "Y90p_d16", "pulse_shape": "drag", "parameters": {"amp": [9.675217802451387e-05, 0.10747776649112639], "beta": -0.675308043309437, "duration": 224, "sigma": 56}}, {"name": "fc", "t0": 224, "ch": "d16", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u31", "phase": "-(P1)"}, {"name": "fc", "t0": 224, "ch": "u31", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u40", "phase": "-(P1)"}, {"name": "fc", "t0": 224, "ch": "u40", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [17], "sequence": [{"name": "fc", "t0": 0, "ch": "d17", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d17", "label": "Y90p_d17", "pulse_shape": "drag", "parameters": {"amp": [0.0012405533901464266, 0.10028012827985704], "beta": 0.650439081116248, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d17", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u38", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u38", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [18], "sequence": [{"name": "fc", "t0": 0, "ch": "d18", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d18", "label": "Y90p_d18", "pulse_shape": "drag", "parameters": {"amp": [0.0004641303462018959, 0.10509771899692791], "beta": -0.2302046639392253, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d18", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u33", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u33", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u36", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u36", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u44", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u44", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [19], "sequence": [{"name": "fc", "t0": 0, "ch": "d19", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d19", "label": "Y90p_d19", "pulse_shape": "drag", "parameters": {"amp": [-0.0014043594135915993, 0.10472315050694099], "beta": -3.1348249974094102, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d19", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u35", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u35", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u43", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u43", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u46", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u46", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [20], "sequence": [{"name": "fc", "t0": 0, "ch": "d20", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d20", "label": "Y90p_d20", "pulse_shape": "drag", "parameters": {"amp": [0.0002954714864645744, 0.12401715565059833], "beta": -0.4358998158420476, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d20", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u41", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u41", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [21], "sequence": [{"name": "fc", "t0": 0, "ch": "d21", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d21", "label": "Y90p_d21", "pulse_shape": "drag", "parameters": {"amp": [0.0016141571952729271, 0.10055957599496994], "beta": 3.3019402371998003, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d21", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u39", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u39", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u48", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u48", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [22], "sequence": [{"name": "fc", "t0": 0, "ch": "d22", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d22", "label": "Y90p_d22", "pulse_shape": "drag", "parameters": {"amp": [-0.001026211691743866, 0.10215481542130887], "beta": -1.4661821229995018, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d22", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u42", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u42", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u52", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u52", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [23], "sequence": [{"name": "fc", "t0": 0, "ch": "d23", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d23", "label": "Y90p_d23", "pulse_shape": "drag", "parameters": {"amp": [-0.0007347229897852498, 0.09966491293126645], "beta": -2.5699967175031464, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d23", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u45", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u45", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u50", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u50", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [24], "sequence": [{"name": "fc", "t0": 0, "ch": "d24", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d24", "label": "Y90p_d24", "pulse_shape": "drag", "parameters": {"amp": [0.00042345402344494827, 0.10509208156374965], "beta": -0.614208421484813, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d24", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u49", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u49", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u53", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u53", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [25], "sequence": [{"name": "fc", "t0": 0, "ch": "d25", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d25", "label": "Y90p_d25", "pulse_shape": "drag", "parameters": {"amp": [0.0007061463483446582, 0.1182983094904508], "beta": 0.8067793714645428, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d25", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u47", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u47", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u51", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u51", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u55", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u55", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [26], "sequence": [{"name": "fc", "t0": 0, "ch": "d26", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d26", "label": "Y90p_d26", "pulse_shape": "drag", "parameters": {"amp": [0.000849652845010204, 0.0854607765253132], "beta": 0.6053670972416939, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d26", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u54", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u54", "phase": "-(P0)"}]}, {"name": "u3", "qubits": [0], "sequence": [{"name": "fc", "t0": 0, "ch": "d0", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d0", "label": "X90p_d0", "pulse_shape": "drag", "parameters": {"amp": [0.10377801308000216, -9.770409061042122e-06], "beta": -1.0149213161488795, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d0", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d0", "label": "X90m_d0", "pulse_shape": "drag", "parameters": {"amp": [-0.10377801308000216, 9.770409061070583e-06], "beta": -1.0149213161488795, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d0", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u1", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u1", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u1", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [1], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "X90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.09513967305102687, -0.0008700854555585467], "beta": 0.3960683326669556, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d1", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d1", "label": "X90m_d1", "pulse_shape": "drag", "parameters": {"amp": [-0.09513967305102687, 0.0008700854555585524], "beta": 0.3960683326669556, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d1", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u0", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u0", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u0", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u4", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u4", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u4", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u8", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u8", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u8", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [2], "sequence": [{"name": "fc", "t0": 0, "ch": "d2", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "X90p_d2", "pulse_shape": "drag", "parameters": {"amp": [0.08886323708960032, 0.0010025377502923204], "beta": -2.2376745831561644, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d2", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d2", "label": "X90m_d2", "pulse_shape": "drag", "parameters": {"amp": [-0.08886323708960032, -0.0010025377502923222], "beta": -2.2376745831561644, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d2", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u2", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u2", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u2", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u6", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u6", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u6", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [3], "sequence": [{"name": "fc", "t0": 0, "ch": "d3", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "X90p_d3", "pulse_shape": "drag", "parameters": {"amp": [0.10661547647704614, -0.0006070553922452572], "beta": -0.5176138331574068, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d3", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d3", "label": "X90m_d3", "pulse_shape": "drag", "parameters": {"amp": [-0.10661547647704614, 0.0006070553922452507], "beta": -0.5176138331574068, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d3", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u10", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u10", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u10", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u5", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u5", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u5", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [4], "sequence": [{"name": "fc", "t0": 0, "ch": "d4", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "X90p_d4", "pulse_shape": "drag", "parameters": {"amp": [0.0949613228743464, 0.001476724810580528], "beta": -3.2119733651985074, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d4", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d4", "label": "X90m_d4", "pulse_shape": "drag", "parameters": {"amp": [-0.0949613228743464, -0.0014767248105804957], "beta": -3.2119733651985074, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d4", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u13", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u13", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u13", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u3", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u3", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u3", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [5], "sequence": [{"name": "fc", "t0": 0, "ch": "d5", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "X90p_d5", "pulse_shape": "drag", "parameters": {"amp": [0.09816343223984954, 0.000240496505118405], "beta": -1.1305064781606282, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d5", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d5", "label": "X90m_d5", "pulse_shape": "drag", "parameters": {"amp": [-0.09816343223984954, -0.00024049650511837384], "beta": -1.1305064781606282, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d5", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u16", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u16", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u16", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u7", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u7", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u7", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [6], "sequence": [{"name": "fc", "t0": 0, "ch": "d6", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d6", "label": "X90p_d6", "pulse_shape": "drag", "parameters": {"amp": [0.11277479162236688, -0.0002658045934442615], "beta": -0.3854241491495041, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d6", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d6", "label": "X90m_d6", "pulse_shape": "drag", "parameters": {"amp": [-0.11277479162236688, 0.00026580459344426613], "beta": -0.3854241491495041, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d6", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u14", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u14", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u14", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [7], "sequence": [{"name": "fc", "t0": 0, "ch": "d7", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d7", "label": "X90p_d7", "pulse_shape": "drag", "parameters": {"amp": [0.11943281622859635, -0.0022674042671533006], "beta": 1.1463424017426946, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d7", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d7", "label": "X90m_d7", "pulse_shape": "drag", "parameters": {"amp": [-0.11943281622859635, 0.0022674042671533235], "beta": 1.1463424017426946, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d7", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u12", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u12", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u12", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u20", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u20", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u20", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u9", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u9", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u9", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [8], "sequence": [{"name": "fc", "t0": 0, "ch": "d8", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d8", "label": "X90p_d8", "pulse_shape": "drag", "parameters": {"amp": [0.11232769477288704, -0.001120665808023258], "beta": 1.1280238973136587, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d8", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d8", "label": "X90m_d8", "pulse_shape": "drag", "parameters": {"amp": [-0.11232769477288704, 0.0011206658080232586], "beta": 1.1280238973136587, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d8", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u11", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u11", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u11", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u19", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u19", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u19", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u22", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u22", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u22", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [9], "sequence": [{"name": "fc", "t0": 0, "ch": "d9", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d9", "label": "X90p_d9", "pulse_shape": "drag", "parameters": {"amp": [0.10976524219602081, 0.0010579794279775023], "beta": -2.401283303612347, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d9", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d9", "label": "X90m_d9", "pulse_shape": "drag", "parameters": {"amp": [-0.10976524219602081, -0.0010579794279774743], "beta": -2.401283303612347, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d9", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u17", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u17", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u17", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [10], "sequence": [{"name": "fc", "t0": 0, "ch": "d10", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d10", "label": "X90p_d10", "pulse_shape": "drag", "parameters": {"amp": [0.10679021181971572, 0.00084493205579733], "beta": -2.1538513301843003, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d10", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d10", "label": "X90m_d10", "pulse_shape": "drag", "parameters": {"amp": [-0.10679021181971572, -0.000844932055797298], "beta": -2.1538513301843003, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d10", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u15", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u15", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u15", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u24", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u24", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u24", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [11], "sequence": [{"name": "fc", "t0": 0, "ch": "d11", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d11", "label": "X90p_d11", "pulse_shape": "drag", "parameters": {"amp": [0.11907891983300731, -0.0001779950856348504], "beta": -1.0102446887715897, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d11", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d11", "label": "X90m_d11", "pulse_shape": "drag", "parameters": {"amp": [-0.11907891983300731, 0.00017799508563484572], "beta": -1.0102446887715897, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d11", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u18", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u18", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u18", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u29", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u29", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u29", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [12], "sequence": [{"name": "fc", "t0": 0, "ch": "d12", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d12", "label": "X90p_d12", "pulse_shape": "drag", "parameters": {"amp": [0.12333410224784243, 0.0019417134346765398], "beta": -2.567893950899014, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d12", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d12", "label": "X90m_d12", "pulse_shape": "drag", "parameters": {"amp": [-0.12333410224784243, -0.0019417134346765134], "beta": -2.567893950899014, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d12", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u21", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u21", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u21", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u27", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u27", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u27", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u32", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u32", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u32", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [13], "sequence": [{"name": "fc", "t0": 0, "ch": "d13", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d13", "label": "X90p_d13", "pulse_shape": "drag", "parameters": {"amp": [0.103773449007206, 0.00017622277418506848], "beta": -1.8869442543880832, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d13", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d13", "label": "X90m_d13", "pulse_shape": "drag", "parameters": {"amp": [-0.103773449007206, -0.00017622277418507441], "beta": -1.8869442543880832, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d13", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u25", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u25", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u25", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u30", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u30", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u30", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [14], "sequence": [{"name": "fc", "t0": 0, "ch": "d14", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d14", "label": "X90p_d14", "pulse_shape": "drag", "parameters": {"amp": [0.0867691563869258, -0.0001786389737468895], "beta": 1.6381616092190798, "duration": 224, "sigma": 56}}, {"name": "fc", "t0": 224, "ch": "d14", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 224, "ch": "d14", "label": "X90m_d14", "pulse_shape": "drag", "parameters": {"amp": [-0.0867691563869258, 0.00017863897374689356], "beta": 1.6381616092190798, "duration": 224, "sigma": 56}}, {"name": "fc", "t0": 448, "ch": "d14", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u23", "phase": "-(P2)"}, {"name": "fc", "t0": 224, "ch": "u23", "phase": "-(P0)"}, {"name": "fc", "t0": 448, "ch": "u23", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u28", "phase": "-(P2)"}, {"name": "fc", "t0": 224, "ch": "u28", "phase": "-(P0)"}, {"name": "fc", "t0": 448, "ch": "u28", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u34", "phase": "-(P2)"}, {"name": "fc", "t0": 224, "ch": "u34", "phase": "-(P0)"}, {"name": "fc", "t0": 448, "ch": "u34", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [15], "sequence": [{"name": "fc", "t0": 0, "ch": "d15", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d15", "label": "X90p_d15", "pulse_shape": "drag", "parameters": {"amp": [0.12780615832633155, 0.0019970021606818145], "beta": -2.5638015828946914, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d15", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d15", "label": "X90m_d15", "pulse_shape": "drag", "parameters": {"amp": [-0.12780615832633155, -0.0019970021606817976], "beta": -2.5638015828946914, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d15", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u26", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u26", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u26", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u37", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u37", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u37", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [16], "sequence": [{"name": "fc", "t0": 0, "ch": "d16", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d16", "label": "X90p_d16", "pulse_shape": "drag", "parameters": {"amp": [0.10747776649112639, -9.675217802450346e-05], "beta": -0.675308043309437, "duration": 224, "sigma": 56}}, {"name": "fc", "t0": 224, "ch": "d16", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 224, "ch": "d16", "label": "X90m_d16", "pulse_shape": "drag", "parameters": {"amp": [-0.10747776649112639, 9.675217802449658e-05], "beta": -0.675308043309437, "duration": 224, "sigma": 56}}, {"name": "fc", "t0": 448, "ch": "d16", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u31", "phase": "-(P2)"}, {"name": "fc", "t0": 224, "ch": "u31", "phase": "-(P0)"}, {"name": "fc", "t0": 448, "ch": "u31", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u40", "phase": "-(P2)"}, {"name": "fc", "t0": 224, "ch": "u40", "phase": "-(P0)"}, {"name": "fc", "t0": 448, "ch": "u40", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [17], "sequence": [{"name": "fc", "t0": 0, "ch": "d17", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d17", "label": "X90p_d17", "pulse_shape": "drag", "parameters": {"amp": [0.10028012827985704, -0.0012405533901464092], "beta": 0.650439081116248, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d17", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d17", "label": "X90m_d17", "pulse_shape": "drag", "parameters": {"amp": [-0.10028012827985704, 0.0012405533901464327], "beta": 0.650439081116248, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d17", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u38", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u38", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u38", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [18], "sequence": [{"name": "fc", "t0": 0, "ch": "d18", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d18", "label": "X90p_d18", "pulse_shape": "drag", "parameters": {"amp": [0.10509771899692791, -0.00046413034620189874], "beta": -0.2302046639392253, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d18", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d18", "label": "X90m_d18", "pulse_shape": "drag", "parameters": {"amp": [-0.10509771899692791, 0.0004641303462019023], "beta": -0.2302046639392253, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d18", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u33", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u33", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u33", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u36", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u36", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u36", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u44", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u44", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u44", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [19], "sequence": [{"name": "fc", "t0": 0, "ch": "d19", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d19", "label": "X90p_d19", "pulse_shape": "drag", "parameters": {"amp": [0.10472315050694099, 0.001404359413591613], "beta": -3.1348249974094102, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d19", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d19", "label": "X90m_d19", "pulse_shape": "drag", "parameters": {"amp": [-0.10472315050694099, -0.0014043594135915928], "beta": -3.1348249974094102, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d19", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u35", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u35", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u35", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u43", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u43", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u43", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u46", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u46", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u46", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [20], "sequence": [{"name": "fc", "t0": 0, "ch": "d20", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d20", "label": "X90p_d20", "pulse_shape": "drag", "parameters": {"amp": [0.12401715565059833, -0.00029547148646456454], "beta": -0.4358998158420476, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d20", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d20", "label": "X90m_d20", "pulse_shape": "drag", "parameters": {"amp": [-0.12401715565059833, 0.00029547148646458195], "beta": -0.4358998158420476, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d20", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u41", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u41", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u41", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [21], "sequence": [{"name": "fc", "t0": 0, "ch": "d21", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d21", "label": "X90p_d21", "pulse_shape": "drag", "parameters": {"amp": [0.10055957599496994, -0.001614157195272922], "beta": 3.3019402371998003, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d21", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d21", "label": "X90m_d21", "pulse_shape": "drag", "parameters": {"amp": [-0.10055957599496994, 0.0016141571952729558], "beta": 3.3019402371998003, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d21", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u39", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u39", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u39", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u48", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u48", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u48", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [22], "sequence": [{"name": "fc", "t0": 0, "ch": "d22", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d22", "label": "X90p_d22", "pulse_shape": "drag", "parameters": {"amp": [0.10215481542130887, 0.001026211691743867], "beta": -1.4661821229995018, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d22", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d22", "label": "X90m_d22", "pulse_shape": "drag", "parameters": {"amp": [-0.10215481542130887, -0.0010262116917438596], "beta": -1.4661821229995018, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d22", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u42", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u42", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u42", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u52", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u52", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u52", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [23], "sequence": [{"name": "fc", "t0": 0, "ch": "d23", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d23", "label": "X90p_d23", "pulse_shape": "drag", "parameters": {"amp": [0.09966491293126645, 0.0007347229897852622], "beta": -2.5699967175031464, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d23", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d23", "label": "X90m_d23", "pulse_shape": "drag", "parameters": {"amp": [-0.09966491293126645, -0.0007347229897852658], "beta": -2.5699967175031464, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d23", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u45", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u45", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u45", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u50", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u50", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u50", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [24], "sequence": [{"name": "fc", "t0": 0, "ch": "d24", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d24", "label": "X90p_d24", "pulse_shape": "drag", "parameters": {"amp": [0.10509208156374965, -0.0004234540234449305], "beta": -0.614208421484813, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d24", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d24", "label": "X90m_d24", "pulse_shape": "drag", "parameters": {"amp": [-0.10509208156374965, 0.0004234540234449547], "beta": -0.614208421484813, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d24", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u49", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u49", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u49", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u53", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u53", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u53", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [25], "sequence": [{"name": "fc", "t0": 0, "ch": "d25", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d25", "label": "X90p_d25", "pulse_shape": "drag", "parameters": {"amp": [0.1182983094904508, -0.0007061463483446628], "beta": 0.8067793714645428, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d25", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d25", "label": "X90m_d25", "pulse_shape": "drag", "parameters": {"amp": [-0.1182983094904508, 0.0007061463483446653], "beta": 0.8067793714645428, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d25", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u47", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u47", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u47", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u51", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u51", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u51", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u55", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u55", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u55", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [26], "sequence": [{"name": "fc", "t0": 0, "ch": "d26", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d26", "label": "X90p_d26", "pulse_shape": "drag", "parameters": {"amp": [0.0854607765253132, -0.0008496528450102033], "beta": 0.6053670972416939, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d26", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d26", "label": "X90m_d26", "pulse_shape": "drag", "parameters": {"amp": [-0.0854607765253132, 0.0008496528450102282], "beta": 0.6053670972416939, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d26", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u54", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u54", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u54", "phase": "-(P1)"}]}, {"name": "x", "qubits": [0], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d0", "label": "Xp_d0", "pulse_shape": "drag", "parameters": {"amp": [0.206433212088743, 0.0], "beta": -1.0462743263145418, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [1], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "Xp_d1", "pulse_shape": "drag", "parameters": {"amp": [0.18985578360621613, 0.0], "beta": 0.42285170020425616, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [2], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "Xp_d2", "pulse_shape": "drag", "parameters": {"amp": [0.17693856837843275, 0.0], "beta": -2.366495281879335, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [3], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "Xp_d3", "pulse_shape": "drag", "parameters": {"amp": [0.21327499648153633, 0.0], "beta": -0.5742099875332195, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [4], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "Xp_d4", "pulse_shape": "drag", "parameters": {"amp": [0.18894857072270585, 0.0], "beta": -3.2151369274275954, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [5], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "Xp_d5", "pulse_shape": "drag", "parameters": {"amp": [0.19579800279892245, 0.0], "beta": -1.117320206007128, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [6], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d6", "label": "Xp_d6", "pulse_shape": "drag", "parameters": {"amp": [0.22490568935729358, 0.0], "beta": -0.33763314549034373, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [7], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d7", "label": "Xp_d7", "pulse_shape": "drag", "parameters": {"amp": [0.23855254311194146, 0.0], "beta": 1.069546030555969, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [8], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d8", "label": "Xp_d8", "pulse_shape": "drag", "parameters": {"amp": [0.22444076840383925, 0.0], "beta": 1.077780150248116, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [9], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d9", "label": "Xp_d9", "pulse_shape": "drag", "parameters": {"amp": [0.21917054608657616, 0.0], "beta": -2.37751094183648, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [10], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d10", "label": "Xp_d10", "pulse_shape": "drag", "parameters": {"amp": [0.21314509070739499, 0.0], "beta": -2.0749548741927826, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [11], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d11", "label": "Xp_d11", "pulse_shape": "drag", "parameters": {"amp": [0.23814229022749572, 0.0], "beta": -0.9255336656200099, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [12], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d12", "label": "Xp_d12", "pulse_shape": "drag", "parameters": {"amp": [0.24688806218598577, 0.0], "beta": -2.5269736401267258, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [13], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d13", "label": "Xp_d13", "pulse_shape": "drag", "parameters": {"amp": [0.2078119782442765, 0.0], "beta": -1.9469493626547842, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [14], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d14", "label": "Xp_d14", "pulse_shape": "drag", "parameters": {"amp": [0.17359581281922776, 0.0], "beta": 1.6832227623818992, "duration": 224, "sigma": 56}}]}, {"name": "x", "qubits": [15], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d15", "label": "Xp_d15", "pulse_shape": "drag", "parameters": {"amp": [0.25845572259154465, 0.0], "beta": -2.601509635945852, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [16], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d16", "label": "Xp_d16", "pulse_shape": "drag", "parameters": {"amp": [0.21396370478808385, 0.0], "beta": -0.5013376612687733, "duration": 224, "sigma": 56}}]}, {"name": "x", "qubits": [17], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d17", "label": "Xp_d17", "pulse_shape": "drag", "parameters": {"amp": [0.19983176029960872, 0.0], "beta": 0.7182849803753812, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [18], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d18", "label": "Xp_d18", "pulse_shape": "drag", "parameters": {"amp": [0.20998704099452967, 0.0], "beta": -0.2169641209301092, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [19], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d19", "label": "Xp_d19", "pulse_shape": "drag", "parameters": {"amp": [0.20908015594565632, 0.0], "beta": -3.1449194923112707, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [20], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d20", "label": "Xp_d20", "pulse_shape": "drag", "parameters": {"amp": [0.24708185274149755, 0.0], "beta": -0.27363682146922064, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [21], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d21", "label": "Xp_d21", "pulse_shape": "drag", "parameters": {"amp": [0.20036759389652775, 0.0], "beta": 2.130656231196732, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [22], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d22", "label": "Xp_d22", "pulse_shape": "drag", "parameters": {"amp": [0.20193314480317487, 0.0], "beta": -1.4239236928422578, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [23], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d23", "label": "Xp_d23", "pulse_shape": "drag", "parameters": {"amp": [0.19888046579575155, 0.0], "beta": -2.4571800963807013, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [24], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d24", "label": "Xp_d24", "pulse_shape": "drag", "parameters": {"amp": [0.21043164770590328, 0.0], "beta": -0.5631209330522283, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [25], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d25", "label": "Xp_d25", "pulse_shape": "drag", "parameters": {"amp": [0.23851142197057992, 0.0], "beta": 0.913064895986392, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [26], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d26", "label": "Xp_d26", "pulse_shape": "drag", "parameters": {"amp": [0.1704704930653871, 0.0], "beta": 0.6301150997678077, "duration": 160, "sigma": 40}}]}], "meas_kernel": {"name": "hw_qmfk", "params": {}}, "discriminator": {"name": "hw_qmfk", "params": {}}, "_data": {}} \ No newline at end of file diff --git a/qiskit/providers/fake_provider/backends/geneva/fake_geneva.py b/qiskit/providers/fake_provider/backends/geneva/fake_geneva.py new file mode 100644 index 000000000000..693b0967c5f2 --- /dev/null +++ b/qiskit/providers/fake_provider/backends/geneva/fake_geneva.py @@ -0,0 +1,29 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + + +""" +Fake Geneva device (27 qubits). +""" + +import os +from qiskit.providers.fake_provider import fake_backend + + +class FakeGeneva(fake_backend.FakeBackendV2): + """A fake 27 qubit backend.""" + + dirname = os.path.dirname(__file__) + conf_filename = "conf_geneva.json" + props_filename = "props_geneva.json" + defs_filename = "defs_geneva.json" + backend_name = "fake_geneva" diff --git a/qiskit/providers/fake_provider/backends/geneva/props_geneva.json b/qiskit/providers/fake_provider/backends/geneva/props_geneva.json new file mode 100644 index 000000000000..ece4c71247a2 --- /dev/null +++ b/qiskit/providers/fake_provider/backends/geneva/props_geneva.json @@ -0,0 +1 @@ +{"backend_name": "ibm_geneva", "backend_version": "1.0.0", "last_update_date": "2022-06-24T23:00:30+02:00", "qubits": [[{"date": "2022-06-24T13:50:52+02:00", "name": "T1", "unit": "us", "value": 487.9070849087785}, {"date": "2022-06-24T06:54:14+02:00", "name": "T2", "unit": "us", "value": 364.52561156080526}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.825735321099647}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_error", "unit": "", "value": 0.023600000000000065}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.018000000000000016}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0292}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T22:33:28+02:00", "name": "T1", "unit": "us", "value": 296.1624902663555}, {"date": "2022-06-22T06:47:31+02:00", "name": "T2", "unit": "us", "value": 288.2315166861065}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.672882730661185}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_error", "unit": "", "value": 0.024399999999999977}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.02400000000000002}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0248}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T22:30:37+02:00", "name": "T1", "unit": "us", "value": 370.5116049597909}, {"date": "2022-06-24T06:54:14+02:00", "name": "T2", "unit": "us", "value": 363.8275730376444}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.5807033741199525}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_error", "unit": "", "value": 0.034599999999999964}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.0294}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.03979999999999995}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T05:24:37+02:00", "name": "T1", "unit": "us", "value": 371.9660617889001}, {"date": "2022-06-24T06:59:40+02:00", "name": "T2", "unit": "us", "value": 309.6708495479936}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.674677140115402}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_error", "unit": "", "value": 0.037900000000000045}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.031399999999999983}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0444}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T18:00:11+02:00", "name": "T1", "unit": "us", "value": 386.0470015462169}, {"date": "2022-06-24T06:54:14+02:00", "name": "T2", "unit": "us", "value": 356.5933145970715}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.7375843012469}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_error", "unit": "", "value": 0.026899999999999924}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.0252}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.02859999999999996}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T22:30:37+02:00", "name": "T1", "unit": "us", "value": 414.8911084683994}, {"date": "2022-06-24T06:54:14+02:00", "name": "T2", "unit": "us", "value": 320.9309944158441}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.799227589416612}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_error", "unit": "", "value": 0.035699999999999954}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.0296}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.04179999999999995}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T22:30:37+02:00", "name": "T1", "unit": "us", "value": 302.218398895039}, {"date": "2022-06-24T06:54:14+02:00", "name": "T2", "unit": "us", "value": 417.6395571316735}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.879495348461902}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_error", "unit": "", "value": 0.025900000000000034}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.027}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.024800000000000044}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T09:45:03+02:00", "name": "T1", "unit": "us", "value": 361.48522863194466}, {"date": "2022-06-24T06:59:40+02:00", "name": "T2", "unit": "us", "value": 91.38202868827939}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.618040839710748}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_error", "unit": "", "value": 0.03289999999999993}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.02959999999999996}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0362}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T18:14:53+02:00", "name": "T1", "unit": "us", "value": 330.2285992012619}, {"date": "2022-06-24T06:59:40+02:00", "name": "T2", "unit": "us", "value": 171.41155109399645}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.853255709517841}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_error", "unit": "", "value": 0.023600000000000065}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.024399999999999977}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0228}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T22:30:37+02:00", "name": "T1", "unit": "us", "value": 445.8464958656772}, {"date": "2022-06-19T06:31:23+02:00", "name": "T2", "unit": "us", "value": 438.8374077976734}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.759012480759683}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_error", "unit": "", "value": 0.02529999999999999}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.0254}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0252}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T22:30:37+02:00", "name": "T1", "unit": "us", "value": 310.0944813693592}, {"date": "2022-06-24T06:54:14+02:00", "name": "T2", "unit": "us", "value": 309.7954250990415}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.859045247047054}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T19:47:31+02:00", "name": "readout_error", "unit": "", "value": 0.018333333333333313}, {"date": "2022-06-24T19:47:31+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.013333333333333308}, {"date": "2022-06-24T19:47:31+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.023333333333333334}, {"date": "2022-06-24T19:47:31+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T18:00:11+02:00", "name": "T1", "unit": "us", "value": 396.6123933934131}, {"date": "2022-06-24T06:54:14+02:00", "name": "T2", "unit": "us", "value": 213.79734313522167}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.699117849755265}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_error", "unit": "", "value": 0.01990000000000003}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.020199999999999996}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0196}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T22:33:28+02:00", "name": "T1", "unit": "us", "value": 474.78030129591826}, {"date": "2022-06-24T06:59:40+02:00", "name": "T2", "unit": "us", "value": 24.417435993578938}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.554280185755752}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T19:47:31+02:00", "name": "readout_error", "unit": "", "value": 0.025000000000000022}, {"date": "2022-06-24T19:47:31+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.020000000000000018}, {"date": "2022-06-24T19:47:31+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.03}, {"date": "2022-06-24T19:47:31+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T17:26:58+02:00", "name": "T1", "unit": "us", "value": 373.87298475038244}, {"date": "2022-06-23T09:14:18+02:00", "name": "T2", "unit": "us", "value": 368.4028194366711}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.677985718729803}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_error", "unit": "", "value": 0.045399999999999996}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.03539999999999999}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0554}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-23T08:57:50+02:00", "name": "T1", "unit": "us", "value": 464.2083679170187}, {"date": "2022-06-24T06:59:40+02:00", "name": "T2", "unit": "us", "value": 201.8240122294295}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.625309935573857}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_error", "unit": "", "value": 0.11450000000000005}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.10799999999999998}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.121}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T06:50:38+02:00", "name": "T1", "unit": "us", "value": 304.2705682704628}, {"date": "2022-06-24T06:54:14+02:00", "name": "T2", "unit": "us", "value": 253.66532759453546}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.661971057300068}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_error", "unit": "", "value": 0.1257999999999999}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.12219999999999998}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.1294}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T18:00:11+02:00", "name": "T1", "unit": "us", "value": 404.01689068196066}, {"date": "2022-06-23T09:14:18+02:00", "name": "T2", "unit": "us", "value": 338.5590979494528}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.590398793245317}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_error", "unit": "", "value": 0.14139999999999997}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.13739999999999997}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.1454}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T22:30:37+02:00", "name": "T1", "unit": "us", "value": 372.81891739058506}, {"date": "2022-06-24T06:54:14+02:00", "name": "T2", "unit": "us", "value": 245.25012743054003}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.610081120896085}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_error", "unit": "", "value": 0.019500000000000073}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.023}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.016000000000000014}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T22:33:28+02:00", "name": "T1", "unit": "us", "value": 144.95222152557906}, {"date": "2022-06-24T06:59:40+02:00", "name": "T2", "unit": "us", "value": 41.307352579973056}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.6955575957594125}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_error", "unit": "", "value": 0.013800000000000034}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.0162}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.011399999999999966}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T09:45:03+02:00", "name": "T1", "unit": "us", "value": 123.84485005459157}, {"date": "2022-06-24T06:59:40+02:00", "name": "T2", "unit": "us", "value": 162.33182281978569}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.708139184005674}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_error", "unit": "", "value": 0.020499999999999963}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.02}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.02100000000000002}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T18:00:11+02:00", "name": "T1", "unit": "us", "value": 307.7570234137895}, {"date": "2022-06-24T06:54:14+02:00", "name": "T2", "unit": "us", "value": 184.54821492915053}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.830173042903818}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_error", "unit": "", "value": 0.031299999999999994}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.049}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.013599999999999945}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T06:50:38+02:00", "name": "T1", "unit": "us", "value": 383.85567998115835}, {"date": "2022-06-21T08:14:05+02:00", "name": "T2", "unit": "us", "value": 359.23359168150546}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.550090405591869}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_error", "unit": "", "value": 0.03949999999999998}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.03259999999999996}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0464}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T05:20:25+02:00", "name": "T1", "unit": "us", "value": 390.9438377333062}, {"date": "2022-06-23T09:14:18+02:00", "name": "T2", "unit": "us", "value": 436.0622150079949}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.6289866241126845}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_error", "unit": "", "value": 0.039100000000000024}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.0342}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.04400000000000004}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T09:45:03+02:00", "name": "T1", "unit": "us", "value": 107.17373012427926}, {"date": "2022-06-24T06:59:40+02:00", "name": "T2", "unit": "us", "value": 451.9454064599081}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.627881549881101}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_error", "unit": "", "value": 0.02950000000000008}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.022800000000000042}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0362}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T19:48:43+02:00", "name": "T1", "unit": "us", "value": 365.4366188769805}, {"date": "2022-06-23T09:14:18+02:00", "name": "T2", "unit": "us", "value": 414.2355869115461}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.678946307938037}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T19:47:31+02:00", "name": "readout_error", "unit": "", "value": 0.02499999999999991}, {"date": "2022-06-24T19:47:31+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.013333333333333334}, {"date": "2022-06-24T19:47:31+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.036666666666666625}, {"date": "2022-06-24T19:47:31+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T18:14:53+02:00", "name": "T1", "unit": "us", "value": 459.2231818747381}, {"date": "2022-06-24T06:59:40+02:00", "name": "T2", "unit": "us", "value": 410.769217214854}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.596386531721908}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T19:47:31+02:00", "name": "readout_error", "unit": "", "value": 0.030000000000000027}, {"date": "2022-06-24T19:47:31+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.033333333333333326}, {"date": "2022-06-24T19:47:31+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.02666666666666667}, {"date": "2022-06-24T19:47:31+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}], [{"date": "2022-06-24T18:00:11+02:00", "name": "T1", "unit": "us", "value": 391.38584731800245}, {"date": "2022-06-24T06:54:14+02:00", "name": "T2", "unit": "us", "value": 493.264613393496}, {"date": "2022-06-24T23:00:30+02:00", "name": "frequency", "unit": "GHz", "value": 4.669859579391738}, {"date": "2022-06-24T23:00:30+02:00", "name": "anharmonicity", "unit": "GHz", "value": 0}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_error", "unit": "", "value": 0.04190000000000005}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.0318}, {"date": "2022-06-24T06:45:06+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.052000000000000046}, {"date": "2022-06-24T06:45:06+02:00", "name": "readout_length", "unit": "ns", "value": 1411.5555555555554}]], "gates": [{"qubits": [0], "gate": "id", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.00013038147938616084}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id0"}, {"qubits": [1], "gate": "id", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.00019270976568275602}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id1"}, {"qubits": [2], "gate": "id", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.00010970704160830165}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id2"}, {"qubits": [3], "gate": "id", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.00015310935262366902}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id3"}, {"qubits": [4], "gate": "id", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.00029332565181845125}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id4"}, {"qubits": [5], "gate": "id", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.00014631854702407474}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id5"}, {"qubits": [6], "gate": "id", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 9.170819313280846e-05}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id6"}, {"qubits": [7], "gate": "id", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.0001654650694544736}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id7"}, {"qubits": [8], "gate": "id", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.00011969348848821518}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id8"}, {"qubits": [9], "gate": "id", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.00016980106649375307}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id9"}, {"qubits": [10], "gate": "id", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.0001225536925261963}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id10"}, {"qubits": [11], "gate": "id", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.0002700225240273589}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id11"}, {"qubits": [12], "gate": "id", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.0003721839433431682}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id12"}, {"qubits": [13], "gate": "id", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.00017905393319239842}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id13"}, {"qubits": [14], "gate": "id", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.00033204741346142935}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 49.77777777777777}], "name": "id14"}, {"qubits": [15], "gate": "id", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.0010173961620447492}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id15"}, {"qubits": [16], "gate": "id", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.0003711840812518652}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 49.77777777777777}], "name": "id16"}, {"qubits": [17], "gate": "id", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.0020630452712244417}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id17"}, {"qubits": [18], "gate": "id", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.0006959934330447976}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id18"}, {"qubits": [19], "gate": "id", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.00011042251486345903}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id19"}, {"qubits": [20], "gate": "id", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.0006215842520366939}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id20"}, {"qubits": [21], "gate": "id", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.0001758375553909665}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id21"}, {"qubits": [22], "gate": "id", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.0018458262666584894}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id22"}, {"qubits": [23], "gate": "id", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.00019854530645619322}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id23"}, {"qubits": [24], "gate": "id", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.00015909895737076696}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id24"}, {"qubits": [25], "gate": "id", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.0007750264555684673}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id25"}, {"qubits": [26], "gate": "id", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.00018799166419215644}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id26"}, {"qubits": [0], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz0"}, {"qubits": [1], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz1"}, {"qubits": [2], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz2"}, {"qubits": [3], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz3"}, {"qubits": [4], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz4"}, {"qubits": [5], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz5"}, {"qubits": [6], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz6"}, {"qubits": [7], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz7"}, {"qubits": [8], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz8"}, {"qubits": [9], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz9"}, {"qubits": [10], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz10"}, {"qubits": [11], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz11"}, {"qubits": [12], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz12"}, {"qubits": [13], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz13"}, {"qubits": [14], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz14"}, {"qubits": [15], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz15"}, {"qubits": [16], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz16"}, {"qubits": [17], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz17"}, {"qubits": [18], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz18"}, {"qubits": [19], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz19"}, {"qubits": [20], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz20"}, {"qubits": [21], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz21"}, {"qubits": [22], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz22"}, {"qubits": [23], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz23"}, {"qubits": [24], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz24"}, {"qubits": [25], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz25"}, {"qubits": [26], "gate": "rz", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz26"}, {"qubits": [0], "gate": "sx", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.00013038147938616084}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx0"}, {"qubits": [1], "gate": "sx", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.00019270976568275602}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx1"}, {"qubits": [2], "gate": "sx", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.00010970704160830165}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx2"}, {"qubits": [3], "gate": "sx", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.00015310935262366902}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx3"}, {"qubits": [4], "gate": "sx", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.00029332565181845125}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx4"}, {"qubits": [5], "gate": "sx", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.00014631854702407474}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx5"}, {"qubits": [6], "gate": "sx", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 9.170819313280846e-05}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx6"}, {"qubits": [7], "gate": "sx", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.0001654650694544736}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx7"}, {"qubits": [8], "gate": "sx", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.00011969348848821518}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx8"}, {"qubits": [9], "gate": "sx", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.00016980106649375307}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx9"}, {"qubits": [10], "gate": "sx", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.0001225536925261963}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx10"}, {"qubits": [11], "gate": "sx", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.0002700225240273589}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx11"}, {"qubits": [12], "gate": "sx", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.0003721839433431682}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx12"}, {"qubits": [13], "gate": "sx", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.00017905393319239842}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx13"}, {"qubits": [14], "gate": "sx", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.00033204741346142935}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 49.77777777777777}], "name": "sx14"}, {"qubits": [15], "gate": "sx", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.0010173961620447492}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx15"}, {"qubits": [16], "gate": "sx", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.0003711840812518652}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 49.77777777777777}], "name": "sx16"}, {"qubits": [17], "gate": "sx", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.0020630452712244417}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx17"}, {"qubits": [18], "gate": "sx", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.0006959934330447976}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx18"}, {"qubits": [19], "gate": "sx", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.00011042251486345903}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx19"}, {"qubits": [20], "gate": "sx", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.0006215842520366939}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx20"}, {"qubits": [21], "gate": "sx", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.0001758375553909665}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx21"}, {"qubits": [22], "gate": "sx", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.0018458262666584894}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx22"}, {"qubits": [23], "gate": "sx", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.00019854530645619322}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx23"}, {"qubits": [24], "gate": "sx", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.00015909895737076696}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx24"}, {"qubits": [25], "gate": "sx", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.0007750264555684673}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx25"}, {"qubits": [26], "gate": "sx", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.00018799166419215644}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx26"}, {"qubits": [0], "gate": "x", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.00013038147938616084}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x0"}, {"qubits": [1], "gate": "x", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.00019270976568275602}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x1"}, {"qubits": [2], "gate": "x", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.00010970704160830165}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x2"}, {"qubits": [3], "gate": "x", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.00015310935262366902}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x3"}, {"qubits": [4], "gate": "x", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.00029332565181845125}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x4"}, {"qubits": [5], "gate": "x", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.00014631854702407474}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x5"}, {"qubits": [6], "gate": "x", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 9.170819313280846e-05}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x6"}, {"qubits": [7], "gate": "x", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.0001654650694544736}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x7"}, {"qubits": [8], "gate": "x", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.00011969348848821518}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x8"}, {"qubits": [9], "gate": "x", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.00016980106649375307}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x9"}, {"qubits": [10], "gate": "x", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.0001225536925261963}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x10"}, {"qubits": [11], "gate": "x", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.0002700225240273589}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x11"}, {"qubits": [12], "gate": "x", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.0003721839433431682}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x12"}, {"qubits": [13], "gate": "x", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.00017905393319239842}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x13"}, {"qubits": [14], "gate": "x", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.00033204741346142935}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 49.77777777777777}], "name": "x14"}, {"qubits": [15], "gate": "x", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.0010173961620447492}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x15"}, {"qubits": [16], "gate": "x", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.0003711840812518652}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 49.77777777777777}], "name": "x16"}, {"qubits": [17], "gate": "x", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.0020630452712244417}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x17"}, {"qubits": [18], "gate": "x", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.0006959934330447976}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x18"}, {"qubits": [19], "gate": "x", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.00011042251486345903}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x19"}, {"qubits": [20], "gate": "x", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.0006215842520366939}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x20"}, {"qubits": [21], "gate": "x", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.0001758375553909665}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x21"}, {"qubits": [22], "gate": "x", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.0018458262666584894}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x22"}, {"qubits": [23], "gate": "x", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.00019854530645619322}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x23"}, {"qubits": [24], "gate": "x", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.00015909895737076696}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x24"}, {"qubits": [25], "gate": "x", "parameters": [{"date": "2022-06-24T07:09:30+02:00", "name": "gate_error", "unit": "", "value": 0.0007750264555684673}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x25"}, {"qubits": [26], "gate": "x", "parameters": [{"date": "2022-06-24T07:03:35+02:00", "name": "gate_error", "unit": "", "value": 0.00018799166419215644}, {"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x26"}, {"qubits": [24, 25], "gate": "cx", "parameters": [{"date": "2022-06-24T19:37:40+02:00", "name": "gate_error", "unit": "", "value": 0.03793982950243319}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 519.1111111111111}], "name": "cx24_25"}, {"qubits": [25, 24], "gate": "cx", "parameters": [{"date": "2022-06-24T19:37:40+02:00", "name": "gate_error", "unit": "", "value": 0.03793982950243319}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 554.6666666666666}], "name": "cx25_24"}, {"qubits": [23, 24], "gate": "cx", "parameters": [{"date": "2022-06-24T19:26:23+02:00", "name": "gate_error", "unit": "", "value": 0.007780639337768069}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 426.66666666666663}], "name": "cx23_24"}, {"qubits": [24, 23], "gate": "cx", "parameters": [{"date": "2022-06-24T19:26:23+02:00", "name": "gate_error", "unit": "", "value": 0.007780639337768069}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 462.2222222222222}], "name": "cx24_23"}, {"qubits": [13, 14], "gate": "cx", "parameters": [{"date": "2022-06-24T19:22:05+02:00", "name": "gate_error", "unit": "", "value": 0.01049227682364573}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 647.1111111111111}], "name": "cx13_14"}, {"qubits": [14, 13], "gate": "cx", "parameters": [{"date": "2022-06-24T19:22:05+02:00", "name": "gate_error", "unit": "", "value": 0.01049227682364573}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 696.8888888888888}], "name": "cx14_13"}, {"qubits": [5, 3], "gate": "cx", "parameters": [{"date": "2022-06-24T19:14:15+02:00", "name": "gate_error", "unit": "", "value": 0.004723029241100629}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 348.4444444444444}], "name": "cx5_3"}, {"qubits": [3, 5], "gate": "cx", "parameters": [{"date": "2022-06-24T19:14:15+02:00", "name": "gate_error", "unit": "", "value": 0.004723029241100629}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 384}], "name": "cx3_5"}, {"qubits": [22, 25], "gate": "cx", "parameters": [{"date": "2022-06-24T19:14:15+02:00", "name": "gate_error", "unit": "", "value": 0.02933451803096196}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 405.3333333333333}], "name": "cx22_25"}, {"qubits": [15, 12], "gate": "cx", "parameters": [{"date": "2022-06-24T19:06:05+02:00", "name": "gate_error", "unit": "", "value": 0.04223846746067922}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 462.2222222222222}], "name": "cx15_12"}, {"qubits": [22, 19], "gate": "cx", "parameters": [{"date": "2022-06-24T19:06:05+02:00", "name": "gate_error", "unit": "", "value": 0.008309815959425731}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 426.66666666666663}], "name": "cx22_19"}, {"qubits": [19, 22], "gate": "cx", "parameters": [{"date": "2022-06-24T19:06:05+02:00", "name": "gate_error", "unit": "", "value": 0.008309815959425731}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 462.2222222222222}], "name": "cx19_22"}, {"qubits": [12, 10], "gate": "cx", "parameters": [{"date": "2022-06-24T18:59:27+02:00", "name": "gate_error", "unit": "", "value": 0.016293167652782742}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1457.7777777777776}], "name": "cx12_10"}, {"qubits": [1, 2], "gate": "cx", "parameters": [{"date": "2022-06-24T18:52:47+02:00", "name": "gate_error", "unit": "", "value": 0.005433789282729057}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 355.55555555555554}], "name": "cx1_2"}, {"qubits": [2, 1], "gate": "cx", "parameters": [{"date": "2022-06-24T18:52:47+02:00", "name": "gate_error", "unit": "", "value": 0.005433789282729057}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 391.1111111111111}], "name": "cx2_1"}, {"qubits": [11, 14], "gate": "cx", "parameters": [{"date": "2022-06-24T18:52:47+02:00", "name": "gate_error", "unit": "", "value": 0.006620861933892552}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 405.3333333333333}], "name": "cx11_14"}, {"qubits": [14, 11], "gate": "cx", "parameters": [{"date": "2022-06-24T18:52:47+02:00", "name": "gate_error", "unit": "", "value": 0.006620861933892552}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 455.1111111111111}], "name": "cx14_11"}, {"qubits": [26, 25], "gate": "cx", "parameters": [{"date": "2022-06-24T18:46:53+02:00", "name": "gate_error", "unit": "", "value": 0.008012006371157954}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 256}], "name": "cx26_25"}, {"qubits": [25, 26], "gate": "cx", "parameters": [{"date": "2022-06-24T18:46:53+02:00", "name": "gate_error", "unit": "", "value": 0.008012006371157954}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 291.55555555555554}], "name": "cx25_26"}, {"qubits": [4, 7], "gate": "cx", "parameters": [{"date": "2022-06-24T18:40:45+02:00", "name": "gate_error", "unit": "", "value": 0.004798261042562951}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 675.5555555555555}], "name": "cx4_7"}, {"qubits": [7, 4], "gate": "cx", "parameters": [{"date": "2022-06-24T18:40:45+02:00", "name": "gate_error", "unit": "", "value": 0.004798261042562951}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 711.1111111111111}], "name": "cx7_4"}, {"qubits": [23, 21], "gate": "cx", "parameters": [{"date": "2022-06-24T18:40:45+02:00", "name": "gate_error", "unit": "", "value": 0.0106382767505942}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 753.7777777777777}], "name": "cx23_21"}, {"qubits": [21, 23], "gate": "cx", "parameters": [{"date": "2022-06-24T18:40:45+02:00", "name": "gate_error", "unit": "", "value": 0.0106382767505942}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 789.3333333333333}], "name": "cx21_23"}, {"qubits": [18, 17], "gate": "cx", "parameters": [{"date": "2022-06-24T18:33:08+02:00", "name": "gate_error", "unit": "", "value": 0.012744638146883952}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 483.55555555555554}], "name": "cx18_17"}, {"qubits": [17, 18], "gate": "cx", "parameters": [{"date": "2022-06-24T18:33:08+02:00", "name": "gate_error", "unit": "", "value": 0.012744638146883952}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 519.1111111111111}], "name": "cx17_18"}, {"qubits": [19, 16], "gate": "cx", "parameters": [{"date": "2022-06-24T18:33:08+02:00", "name": "gate_error", "unit": "", "value": 0.010215343808732263}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 462.2222222222222}], "name": "cx19_16"}, {"qubits": [16, 19], "gate": "cx", "parameters": [{"date": "2022-06-24T18:33:08+02:00", "name": "gate_error", "unit": "", "value": 0.010215343808732263}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 512}], "name": "cx16_19"}, {"qubits": [14, 16], "gate": "cx", "parameters": [{"date": "2022-06-24T18:25:14+02:00", "name": "gate_error", "unit": "", "value": 0.02351279736572251}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 526.2222222222222}], "name": "cx14_16"}, {"qubits": [18, 21], "gate": "cx", "parameters": [{"date": "2022-06-24T18:25:14+02:00", "name": "gate_error", "unit": "", "value": 0.012679568612064068}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 568.8888888888889}], "name": "cx18_21"}, {"qubits": [21, 18], "gate": "cx", "parameters": [{"date": "2022-06-24T18:25:14+02:00", "name": "gate_error", "unit": "", "value": 0.012679568612064068}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 604.4444444444445}], "name": "cx21_18"}, {"qubits": [11, 8], "gate": "cx", "parameters": [{"date": "2022-06-24T18:13:38+02:00", "name": "gate_error", "unit": "", "value": 0.0036374726489654674}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 597.3333333333333}], "name": "cx11_8"}, {"qubits": [8, 11], "gate": "cx", "parameters": [{"date": "2022-06-24T18:13:38+02:00", "name": "gate_error", "unit": "", "value": 0.0036374726489654674}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 632.8888888888888}], "name": "cx8_11"}, {"qubits": [18, 15], "gate": "cx", "parameters": [{"date": "2022-06-24T18:13:38+02:00", "name": "gate_error", "unit": "", "value": 0.014468840399930238}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 689.7777777777777}], "name": "cx18_15"}, {"qubits": [4, 1], "gate": "cx", "parameters": [{"date": "2022-06-24T17:29:05+02:00", "name": "gate_error", "unit": "", "value": 0.009476193203188293}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 334.22222222222223}], "name": "cx4_1"}, {"qubits": [1, 4], "gate": "cx", "parameters": [{"date": "2022-06-24T17:29:05+02:00", "name": "gate_error", "unit": "", "value": 0.009476193203188293}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 369.77777777777777}], "name": "cx1_4"}, {"qubits": [9, 8], "gate": "cx", "parameters": [{"date": "2022-06-24T17:29:05+02:00", "name": "gate_error", "unit": "", "value": 0.0051695682581706925}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 327.1111111111111}], "name": "cx9_8"}, {"qubits": [8, 9], "gate": "cx", "parameters": [{"date": "2022-06-24T17:29:05+02:00", "name": "gate_error", "unit": "", "value": 0.0051695682581706925}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 362.66666666666663}], "name": "cx8_9"}, {"qubits": [3, 2], "gate": "cx", "parameters": [{"date": "2022-06-24T17:04:08+02:00", "name": "gate_error", "unit": "", "value": 0.0041657105529510075}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 391.1111111111111}], "name": "cx3_2"}, {"qubits": [2, 3], "gate": "cx", "parameters": [{"date": "2022-06-24T17:04:08+02:00", "name": "gate_error", "unit": "", "value": 0.0041657105529510075}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 426.66666666666663}], "name": "cx2_3"}, {"qubits": [13, 12], "gate": "cx", "parameters": [{"date": "2022-06-24T17:04:08+02:00", "name": "gate_error", "unit": "", "value": 0.005234139802573895}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 433.77777777777777}], "name": "cx13_12"}, {"qubits": [25, 22], "gate": "cx", "parameters": [{"date": "2022-06-24T17:04:08+02:00", "name": "gate_error", "unit": "", "value": 0.007989504507625977}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 448}], "name": "cx25_22"}, {"qubits": [10, 7], "gate": "cx", "parameters": [{"date": "2022-06-24T16:15:17+02:00", "name": "gate_error", "unit": "", "value": 0.004024289832987499}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 238.2222222222222}], "name": "cx10_7"}, {"qubits": [7, 10], "gate": "cx", "parameters": [{"date": "2022-06-24T16:15:17+02:00", "name": "gate_error", "unit": "", "value": 0.004024289832987499}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 309.3333333333333}], "name": "cx7_10"}, {"qubits": [6, 7], "gate": "cx", "parameters": [{"date": "2022-06-24T15:55:03+02:00", "name": "gate_error", "unit": "", "value": 0.008698027488511645}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 277.3333333333333}], "name": "cx6_7"}, {"qubits": [0, 1], "gate": "cx", "parameters": [{"date": "2022-06-24T15:38:53+02:00", "name": "gate_error", "unit": "", "value": 0.009436652319724764}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 373.3333333333333}], "name": "cx0_1"}, {"qubits": [1, 0], "gate": "cx", "parameters": [{"date": "2022-06-24T15:38:53+02:00", "name": "gate_error", "unit": "", "value": 0.009436652319724764}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 444.4444444444444}], "name": "cx1_0"}, {"qubits": [19, 20], "gate": "cx", "parameters": [{"date": "2022-06-24T15:38:53+02:00", "name": "gate_error", "unit": "", "value": 0.015235706317329872}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 387.55555555555554}], "name": "cx19_20"}, {"qubits": [12, 15], "gate": "cx", "parameters": [{"date": "2022-06-22T21:26:56+02:00", "name": "gate_error", "unit": "", "value": 0.11299665401373056}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 497.77777777777777}], "name": "cx12_15"}, {"qubits": [15, 18], "gate": "cx", "parameters": [{"date": "2022-06-22T16:28:02+02:00", "name": "gate_error", "unit": "", "value": 0.026928792951891406}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 725.3333333333333}], "name": "cx15_18"}, {"qubits": [12, 13], "gate": "cx", "parameters": [{"date": "2022-06-22T16:08:25+02:00", "name": "gate_error", "unit": "", "value": 0.004136301919980739}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 469.3333333333333}], "name": "cx12_13"}, {"qubits": [7, 6], "gate": "cx", "parameters": [{"date": "2022-06-22T15:37:56+02:00", "name": "gate_error", "unit": "", "value": 0.005987676569414985}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 348.4444444444444}], "name": "cx7_6"}, {"qubits": [10, 12], "gate": "cx", "parameters": [{"date": "2022-06-22T08:17:07+02:00", "name": "gate_error", "unit": "", "value": 0.008620644691067214}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 2204.4444444444443}], "name": "cx10_12"}, {"qubits": [5, 8], "gate": "cx", "parameters": [{"date": "2022-06-22T07:17:38+02:00", "name": "gate_error", "unit": "", "value": 0.009271043345643881}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 469.3333333333333}], "name": "cx5_8"}, {"qubits": [8, 5], "gate": "cx", "parameters": [{"date": "2022-06-22T07:17:38+02:00", "name": "gate_error", "unit": "", "value": 0.009271043345643881}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 504.88888888888886}], "name": "cx8_5"}, {"qubits": [20, 19], "gate": "cx", "parameters": [{"date": "2022-06-24T23:04:01.429907+02:00", "name": "gate_error", "unit": "", "value": 1}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 458.66666666666663}], "name": "cx20_19"}, {"qubits": [16, 14], "gate": "cx", "parameters": [{"date": "2022-06-24T23:04:01.430723+02:00", "name": "gate_error", "unit": "", "value": 1}, {"date": "2022-06-21T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 576}], "name": "cx16_14"}, {"qubits": [0], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1475.5555555555554}], "name": "reset0"}, {"qubits": [1], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1447.111111111111}], "name": "reset1"}, {"qubits": [2], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1447.111111111111}], "name": "reset2"}, {"qubits": [3], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1447.111111111111}], "name": "reset3"}, {"qubits": [4], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1447.111111111111}], "name": "reset4"}, {"qubits": [5], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1447.111111111111}], "name": "reset5"}, {"qubits": [6], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1447.111111111111}], "name": "reset6"}, {"qubits": [7], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1447.111111111111}], "name": "reset7"}, {"qubits": [8], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1447.111111111111}], "name": "reset8"}, {"qubits": [9], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1447.111111111111}], "name": "reset9"}, {"qubits": [10], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1546.6666666666665}], "name": "reset10"}, {"qubits": [11], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1546.6666666666665}], "name": "reset11"}, {"qubits": [12], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1546.6666666666665}], "name": "reset12"}, {"qubits": [13], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1461.3333333333333}], "name": "reset13"}, {"qubits": [14], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1475.5555555555554}], "name": "reset14"}, {"qubits": [15], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1447.111111111111}], "name": "reset15"}, {"qubits": [16], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1560.888888888889}], "name": "reset16"}, {"qubits": [17], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1546.6666666666665}], "name": "reset17"}, {"qubits": [18], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1546.6666666666665}], "name": "reset18"}, {"qubits": [19], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1546.6666666666665}], "name": "reset19"}, {"qubits": [20], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1546.6666666666665}], "name": "reset20"}, {"qubits": [21], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1546.6666666666665}], "name": "reset21"}, {"qubits": [22], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1461.3333333333333}], "name": "reset22"}, {"qubits": [23], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1589.3333333333333}], "name": "reset23"}, {"qubits": [24], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1546.6666666666665}], "name": "reset24"}, {"qubits": [25], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1447.111111111111}], "name": "reset25"}, {"qubits": [26], "gate": "reset", "parameters": [{"date": "2022-06-24T23:00:30+02:00", "name": "gate_length", "unit": "ns", "value": 1546.6666666666665}], "name": "reset26"}], "general": [{"date": "2022-06-24T23:00:30+02:00", "name": "jq_1213", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_1213", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_1416", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_1416", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_89", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_89", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_1718", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_1718", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_1114", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_1114", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_1012", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_1012", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_1314", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_1314", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_710", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_710", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_1619", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_1619", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_1215", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_1215", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_2225", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_2225", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_2324", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_2324", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_811", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_811", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_01", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_01", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_12", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_12", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_1920", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_1920", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_67", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_67", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_2425", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_2425", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_1821", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_1821", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_47", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_47", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_2123", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_2123", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_35", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_35", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_58", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_58", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_14", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_14", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_23", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_23", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_1922", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_1922", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_1518", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_1518", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "jq_2526", "unit": "GHz", "value": 0}, {"date": "2022-06-24T23:00:30+02:00", "name": "zz_2526", "unit": "GHz", "value": 0}]} \ No newline at end of file diff --git a/test/python/algorithms/evolvers/variational/solvers/expected_results/__init__.py b/qiskit/providers/fake_provider/backends/oslo/__init__.py similarity index 87% rename from test/python/algorithms/evolvers/variational/solvers/expected_results/__init__.py rename to qiskit/providers/fake_provider/backends/oslo/__init__.py index 9c3165f57a2a..a8b829d3b5dd 100644 --- a/test/python/algorithms/evolvers/variational/solvers/expected_results/__init__.py +++ b/qiskit/providers/fake_provider/backends/oslo/__init__.py @@ -9,4 +9,7 @@ # Any modifications or derivative works of this code must retain this # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -"""Stores expected results that are lengthy.""" + +"""Fake Oslo device (7 qubits)""" + +from .fake_oslo import FakeOslo diff --git a/qiskit/providers/fake_provider/backends/oslo/conf_oslo.json b/qiskit/providers/fake_provider/backends/oslo/conf_oslo.json new file mode 100644 index 000000000000..1de5c9cfd60f --- /dev/null +++ b/qiskit/providers/fake_provider/backends/oslo/conf_oslo.json @@ -0,0 +1 @@ +{"backend_name": "ibm_oslo", "backend_version": "1.0.5", "n_qubits": 7, "basis_gates": ["id", "rz", "sx", "x", "cx", "reset"], "gates": [{"name": "id", "parameters": [], "qasm_def": "gate id q { U(0, 0, 0) q; }", "coupling_map": [[0], [1], [2], [3], [4], [5], [6]]}, {"name": "rz", "parameters": ["theta"], "qasm_def": "gate rz(theta) q { U(0, 0, theta) q; }", "coupling_map": [[0], [1], [2], [3], [4], [5], [6]]}, {"name": "sx", "parameters": [], "qasm_def": "gate sx q { U(pi/2, 3*pi/2, pi/2) q; }", "coupling_map": [[0], [1], [2], [3], [4], [5], [6]]}, {"name": "x", "parameters": [], "qasm_def": "gate x q { U(pi, 0, pi) q; }", "coupling_map": [[0], [1], [2], [3], [4], [5], [6]]}, {"name": "cx", "parameters": [], "qasm_def": "gate cx q0, q1 { CX q0, q1; }", "coupling_map": [[0, 1], [1, 0], [1, 2], [1, 3], [2, 1], [3, 1], [3, 5], [4, 5], [5, 3], [5, 4], [5, 6], [6, 5]]}, {"name": "reset", "parameters": null, "qasm_def": null}], "local": false, "simulator": false, "conditional": false, "open_pulse": false, "memory": true, "max_shots": 100000, "coupling_map": [[0, 1], [1, 0], [1, 2], [1, 3], [2, 1], [3, 1], [3, 5], [4, 5], [5, 3], [5, 4], [5, 6], [6, 5]], "dynamic_reprate_enabled": true, "supported_instructions": ["cx", "u1", "measure", "reset", "u2", "shiftf", "delay", "rz", "play", "id", "u3", "acquire", "x", "setf", "sx"], "rep_delay_range": [0.0, 500.0], "default_rep_delay": 250.0, "max_experiments": 300, "sample_name": "family: Falcon, revision: 5.11, segment: H", "n_registers": 1, "credits_required": true, "online_date": "2022-03-25T04:00:00+00:00", "description": "7 qubit device", "dt": 0.2222222222222222, "dtm": 0.2222222222222222, "processor_type": {"family": "Falcon", "revision": "5.11", "segment": "H"}, "parametric_pulses": ["gaussian", "gaussian_square", "drag", "constant"], "allow_q_object": true, "clops": 2645, "measure_esp_enabled": false, "multi_meas_enabled": true, "parallel_compilation": false, "quantum_volume": 32, "qubit_channel_mapping": [["u0", "d0", "u1", "m0"], ["u1", "u2", "d1", "u5", "u0", "u4", "m1", "u3"], ["d2", "u2", "u4", "m2"], ["d3", "m3", "u5", "u3", "u6", "u8"], ["u9", "d4", "u7", "m4"], ["u10", "u11", "u9", "d5", "u7", "u6", "u8", "m5"], ["m6", "d6", "u11", "u10"]], "supported_features": ["qobj"], "timing_constraints": {"acquire_alignment": 16, "granularity": 16, "min_length": 64, "pulse_alignment": 16}, "uchannels_enabled": true, "url": "None", "input_allowed": ["job", "runtime"], "allow_object_storage": true, "pulse_num_channels": 9, "pulse_num_qubits": 3, "live_data": false, "n_uchannels": 12, "u_channel_lo": [[{"q": 1, "scale": [1.0, 0.0]}], [{"q": 0, "scale": [1.0, 0.0]}], [{"q": 2, "scale": [1.0, 0.0]}], [{"q": 3, "scale": [1.0, 0.0]}], [{"q": 1, "scale": [1.0, 0.0]}], [{"q": 1, "scale": [1.0, 0.0]}], [{"q": 5, "scale": [1.0, 0.0]}], [{"q": 5, "scale": [1.0, 0.0]}], [{"q": 3, "scale": [1.0, 0.0]}], [{"q": 4, "scale": [1.0, 0.0]}], [{"q": 6, "scale": [1.0, 0.0]}], [{"q": 5, "scale": [1.0, 0.0]}]], "meas_levels": [1, 2], "qubit_lo_range": [[4.425043161619499, 5.425043161619499], [4.54627284903205, 5.54627284903205], [4.4619984906787, 5.4619984906787], [4.608098767473062, 5.608098767473062], [4.511074105950458, 5.511074105950458], [4.673290077743308, 5.673290077743308], [4.819311606468152, 5.819311606468152]], "meas_lo_range": [[6.729836446, 7.729836446], [6.604835349, 7.604835349000001], [6.8306589760000005, 7.8306589760000005], [6.632327716000001, 7.632327716000001], [6.713651857, 7.713651857], [6.812390622000001, 7.812390622000001], [6.7878388140000006, 7.7878388140000006]], "meas_kernels": ["hw_qmfk"], "discriminators": ["linear_discriminator", "hw_qmfk", "quadratic_discriminator"], "rep_times": [1000.0], "meas_map": [[0, 1, 2, 3, 4, 5, 6]], "acquisition_latency": [], "conditional_latency": [], "hamiltonian": {"description": "Qubits are modeled as Duffing oscillators. In this case, the system includes higher energy states, i.e. not just |0> and |1>. The Pauli operators are generalized via the following set of transformations:\n\n$(\\mathbb{I}-\\sigma_{i}^z)/2 \\rightarrow O_i \\equiv b^\\dagger_{i} b_{i}$,\n\n$\\sigma_{+} \\rightarrow b^\\dagger$,\n\n$\\sigma_{-} \\rightarrow b$,\n\n$\\sigma_{i}^X \\rightarrow b^\\dagger_{i} + b_{i}$.\n\nQubits are coupled through resonator buses. The provided Hamiltonian has been projected into the zero excitation subspace of the resonator buses leading to an effective qubit-qubit flip-flop interaction. The qubit resonance frequencies in the Hamiltonian are the cavity dressed frequencies and not exactly what is returned by the backend defaults, which also includes the dressing due to the qubit-qubit interactions.\n\nQuantities are returned in angular frequencies, with units 2*pi*GHz.\n\nWARNING: Currently not all system Hamiltonian information is available to the public, missing values have been replaced with 0.\n", "h_latex": "\\begin{align} \\mathcal{H}/\\hbar = & \\sum_{i=0}^{6}\\left(\\frac{\\omega_{q,i}}{2}(\\mathbb{I}-\\sigma_i^{z})+\\frac{\\Delta_{i}}{2}(O_i^2-O_i)+\\Omega_{d,i}D_i(t)\\sigma_i^{X}\\right) \\\\ & + J_{0,1}(\\sigma_{0}^{+}\\sigma_{1}^{-}+\\sigma_{0}^{-}\\sigma_{1}^{+}) + J_{1,2}(\\sigma_{1}^{+}\\sigma_{2}^{-}+\\sigma_{1}^{-}\\sigma_{2}^{+}) + J_{4,5}(\\sigma_{4}^{+}\\sigma_{5}^{-}+\\sigma_{4}^{-}\\sigma_{5}^{+}) + J_{5,6}(\\sigma_{5}^{+}\\sigma_{6}^{-}+\\sigma_{5}^{-}\\sigma_{6}^{+}) \\\\ & + J_{1,3}(\\sigma_{1}^{+}\\sigma_{3}^{-}+\\sigma_{1}^{-}\\sigma_{3}^{+}) + J_{3,5}(\\sigma_{3}^{+}\\sigma_{5}^{-}+\\sigma_{3}^{-}\\sigma_{5}^{+}) \\\\ & + \\Omega_{d,0}(U_{0}^{(0,1)}(t))\\sigma_{0}^{X} + \\Omega_{d,1}(U_{1}^{(1,0)}(t)+U_{3}^{(1,3)}(t)+U_{2}^{(1,2)}(t))\\sigma_{1}^{X} \\\\ & + \\Omega_{d,2}(U_{4}^{(2,1)}(t))\\sigma_{2}^{X} + \\Omega_{d,3}(U_{5}^{(3,1)}(t)+U_{6}^{(3,5)}(t))\\sigma_{3}^{X} \\\\ & + \\Omega_{d,4}(U_{7}^{(4,5)}(t))\\sigma_{4}^{X} + \\Omega_{d,5}(U_{8}^{(5,3)}(t)+U_{10}^{(5,6)}(t)+U_{9}^{(5,4)}(t))\\sigma_{5}^{X} \\\\ & + \\Omega_{d,6}(U_{11}^{(6,5)}(t))\\sigma_{6}^{X} \\\\ \\end{align}", "h_str": ["_SUM[i,0,6,wq{i}/2*(I{i}-Z{i})]", "_SUM[i,0,6,delta{i}/2*O{i}*O{i}]", "_SUM[i,0,6,-delta{i}/2*O{i}]", "_SUM[i,0,6,omegad{i}*X{i}||D{i}]", "jq0q1*Sp0*Sm1", "jq0q1*Sm0*Sp1", "jq1q2*Sp1*Sm2", "jq1q2*Sm1*Sp2", "jq4q5*Sp4*Sm5", "jq4q5*Sm4*Sp5", "jq5q6*Sp5*Sm6", "jq5q6*Sm5*Sp6", "jq1q3*Sp1*Sm3", "jq1q3*Sm1*Sp3", "jq3q5*Sp3*Sm5", "jq3q5*Sm3*Sp5", "omegad1*X0||U0", "omegad0*X1||U1", "omegad3*X1||U3", "omegad2*X1||U2", "omegad1*X2||U4", "omegad1*X3||U5", "omegad5*X3||U6", "omegad5*X4||U7", "omegad3*X5||U8", "omegad6*X5||U10", "omegad4*X5||U9", "omegad5*X6||U11"], "osc": {}, "qub": {"0": 3, "1": 3, "2": 3, "3": 3, "4": 3, "5": 3, "6": 3}, "vars": {"delta0": -2.1710731135187147, "delta1": -2.1542170061400743, "delta2": -2.163170672110012, "delta3": -2.1485510754736845, "delta4": -2.1651009023029526, "delta5": -2.154771444964597, "delta6": -2.128894839231473, "jq0q1": 0.01984891041244237, "jq1q2": 0.019839140193104857, "jq1q3": 0.014778217170848052, "jq3q5": 0.020747024193950764, "jq4q5": 0.020361306329770044, "jq5q6": 0.010931407400838719, "omegad0": 1.0653674870347911, "omegad1": 1.103779874643512, "omegad2": 0.9848018924014904, "omegad3": 0.9820860734963635, "omegad4": 0.9675082231273433, "omegad5": 1.0188554881910525, "omegad6": 1.1944151797596076, "wq0": 30.944958830312927, "wq1": 31.70666742105745, "wq2": 31.177156010879695, "wq3": 32.0951311234089, "wq4": 31.485507195696, "wq5": 32.504740206254695, "wq6": 33.42222053007053}}, "channels": {"acquire0": {"operates": {"qubits": [0]}, "purpose": "acquire", "type": "acquire"}, "acquire1": {"operates": {"qubits": [1]}, "purpose": "acquire", "type": "acquire"}, "acquire2": {"operates": {"qubits": [2]}, "purpose": "acquire", "type": "acquire"}, "acquire3": {"operates": {"qubits": [3]}, "purpose": "acquire", "type": "acquire"}, "acquire4": {"operates": {"qubits": [4]}, "purpose": "acquire", "type": "acquire"}, "acquire5": {"operates": {"qubits": [5]}, "purpose": "acquire", "type": "acquire"}, "acquire6": {"operates": {"qubits": [6]}, "purpose": "acquire", "type": "acquire"}, "d0": {"operates": {"qubits": [0]}, "purpose": "drive", "type": "drive"}, "d1": {"operates": {"qubits": [1]}, "purpose": "drive", "type": "drive"}, "d2": {"operates": {"qubits": [2]}, "purpose": "drive", "type": "drive"}, "d3": {"operates": {"qubits": [3]}, "purpose": "drive", "type": "drive"}, "d4": {"operates": {"qubits": [4]}, "purpose": "drive", "type": "drive"}, "d5": {"operates": {"qubits": [5]}, "purpose": "drive", "type": "drive"}, "d6": {"operates": {"qubits": [6]}, "purpose": "drive", "type": "drive"}, "m0": {"operates": {"qubits": [0]}, "purpose": "measure", "type": "measure"}, "m1": {"operates": {"qubits": [1]}, "purpose": "measure", "type": "measure"}, "m2": {"operates": {"qubits": [2]}, "purpose": "measure", "type": "measure"}, "m3": {"operates": {"qubits": [3]}, "purpose": "measure", "type": "measure"}, "m4": {"operates": {"qubits": [4]}, "purpose": "measure", "type": "measure"}, "m5": {"operates": {"qubits": [5]}, "purpose": "measure", "type": "measure"}, "m6": {"operates": {"qubits": [6]}, "purpose": "measure", "type": "measure"}, "u0": {"operates": {"qubits": [0, 1]}, "purpose": "cross-resonance", "type": "control"}, "u1": {"operates": {"qubits": [1, 0]}, "purpose": "cross-resonance", "type": "control"}, "u10": {"operates": {"qubits": [5, 6]}, "purpose": "cross-resonance", "type": "control"}, "u11": {"operates": {"qubits": [6, 5]}, "purpose": "cross-resonance", "type": "control"}, "u2": {"operates": {"qubits": [1, 2]}, "purpose": "cross-resonance", "type": "control"}, "u3": {"operates": {"qubits": [1, 3]}, "purpose": "cross-resonance", "type": "control"}, "u4": {"operates": {"qubits": [2, 1]}, "purpose": "cross-resonance", "type": "control"}, "u5": {"operates": {"qubits": [3, 1]}, "purpose": "cross-resonance", "type": "control"}, "u6": {"operates": {"qubits": [3, 5]}, "purpose": "cross-resonance", "type": "control"}, "u7": {"operates": {"qubits": [4, 5]}, "purpose": "cross-resonance", "type": "control"}, "u8": {"operates": {"qubits": [5, 3]}, "purpose": "cross-resonance", "type": "control"}, "u9": {"operates": {"qubits": [5, 4]}, "purpose": "cross-resonance", "type": "control"}}} \ No newline at end of file diff --git a/qiskit/providers/fake_provider/backends/oslo/defs_oslo.json b/qiskit/providers/fake_provider/backends/oslo/defs_oslo.json new file mode 100644 index 000000000000..8e330ef3e90b --- /dev/null +++ b/qiskit/providers/fake_provider/backends/oslo/defs_oslo.json @@ -0,0 +1 @@ +{"qubit_freq_est": [4.925043161619499, 5.04627284903205, 4.9619984906787, 5.108098767473062, 5.011074105950458, 5.173290077743308, 5.319311606468152], "meas_freq_est": [7.229836446, 7.104835349, 7.3306589760000005, 7.132327716000001, 7.213651857, 7.312390622000001, 7.2878388140000006], "buffer": 0, "pulse_library": [{"name": "CX_d1_u0", "samples": [[-7.307217310881242e-05, 5.839001460117288e-06], [-0.00014786572137381881, 1.1815553989436012e-05], [-0.00022439777967520058, 1.793102637748234e-05], [-0.0003026846970897168, 2.4186723749153316e-05], [-0.00038274205871857703, 3.058389120269567e-05], [-0.00046458456199616194, 3.712370744324289e-05], [-0.0005482261185534298, 4.3807278416352347e-05], [-0.0006336795631796122, 5.0635637308005244e-05], [-0.0007209570030681789, 5.760974090662785e-05], [-0.0008100693230517209, 6.473046960309148e-05], [-0.0009010264766402543, 7.199861283879727e-05], [-0.0009938373696058989, 7.941488001961261e-05], [-0.0010885096853598952, 8.697989687789232e-05], [-0.0011850501177832484, 9.4694180006627e-05], [-0.0012834640219807625, 0.00010255817323923111], [-0.0013837554724887013, 0.00011057218944188207], [-0.0014859273796901107, 0.00011873647599713877], [-0.0015899812569841743, 0.0001270511420443654], [-0.0016959173372015357, 0.00013551620941143483], [-0.0018037344561889768, 0.00014413159806281328], [-0.0019134300528094172, 0.0001528970751678571], [-0.0020249998196959496, 0.0001618123205844313], [-0.0021384384017437696, 0.00017087689775507897], [-0.002253738697618246, 0.00018009022460319102], [-0.00237089185975492, 0.0001894516171887517], [-0.0024898876436054707, 0.000198960246052593], [-0.0026107141748070717, 0.0002086151798721403], [-0.0027333577163517475, 0.000218415298149921], [-0.0028578033670783043, 0.0002283594076288864], [-0.0029840338975191116, 0.00023844615498092026], [-0.0031120306812226772, 0.00024867404135875404], [-0.003241772996261716, 0.0002590414078440517], [-0.003373238956555724, 0.00026954649365507066], [-0.003506404347717762, 0.0002801873779390007], [-0.00364124309271574, 0.0002909619943238795], [-0.0037777277175337076, 0.00030186810181476176], [-0.003915828187018633, 0.000312903372105211], [-0.00405551353469491, 0.00032406524405814707], [-0.004196750465780497, 0.0003353510983288288], [-0.00433950312435627, 0.0003467580827418715], [-0.0044837347231805325, 0.0003582832287065685], [-0.004629406146705151, 0.0003699234512168914], [-0.004776476416736841, 0.0003816754324361682], [-0.004924902692437172, 0.0003935357672162354], [-0.005074639804661274, 0.00040550087578594685], [-0.005225641652941704, 0.00041756703285500407], [-0.005377859342843294, 0.0004297303385101259], [-0.005531242582947016, 0.0004419867764227092], [-0.005685738753527403, 0.00045433215564116836], [-0.005841293837875128, 0.0004667621396947652], [-0.005997851490974426, 0.00047927224659360945], [-0.006155353970825672, 0.000491857819724828], [-0.00631374167278409, 0.0005045142024755478], [-0.006472953129559755, 0.0005172363598830998], [-0.006632925011217594, 0.0005300192860886455], [-0.006793592590838671, 0.0005428578006103635], [-0.006954888813197613, 0.0005557465483434498], [-0.007116745691746473, 0.0005686801159754395], [-0.007279093377292156, 0.000581652857363224], [-0.007441860157996416, 0.0005946591263636947], [-0.007604972925037146, 0.0006076930440030992], [-0.007768357638269663, 0.0006207486731000245], [-0.007931937463581562, 0.0006338199018500745], [-0.0080956369638443, 0.0006469006184488535], [-0.008259374648332596, 0.0006599845364689827], [-0.008423073217272758, 0.0006730651948601007], [-0.008586649782955647, 0.0006861361907795072], [-0.008750022388994694, 0.0006991908885538578], [-0.008913109079003334, 0.0007122226525098085], [-0.009075823239982128, 0.0007252247305586934], [-0.009238080121576786, 0.0007381902541965246], [-0.009399794042110443, 0.0007511124131269753], [-0.00956087838858366, 0.0007639841642230749], [-0.009721243754029274, 0.0007767985225655138], [-0.009880801662802696, 0.0007895483868196607], [-0.010039464570581913, 0.0008022267138585448], [-0.010197141207754612, 0.0008148262859322131], [-0.010353743098676205, 0.0008273398852907121], [-0.010509178042411804, 0.0008397602941840887], [-0.010663356631994247, 0.0008520802948623896], [-0.010816188529133797, 0.0008642926113680005], [-0.01096758060157299, 0.0008763900259509683], [-0.011117443442344666, 0.0008883651462383568], [-0.011265686713159084, 0.0009002108708955348], [-0.01141221821308136, 0.000911919807549566], [-0.011556949466466904, 0.0009234848548658192], [-0.011699788272380829, 0.0009348987368866801], [-0.011840646155178547, 0.0009461542940698564], [-0.01197943463921547, 0.0009572444832883775], [-0.012116063386201859, 0.000968162203207612], [-0.01225044671446085, 0.0009789004689082503], [-0.01238249707967043, 0.0009894522372633219], [-0.012512128800153732, 0.0009998107561841607], [-0.012639256194233894, 0.001009969157166779], [-0.012763796374201775, 0.0010199208045378327], [-0.012885666452348232, 0.0010296590626239777], [-0.013004784472286701, 0.0010391775285825133], [-0.013121071271598339, 0.0010484695667400956], [-0.013234446756541729, 0.0010575292399153113], [-0.013344836421310902, 0.00106635014526546], [-0.013452163897454739, 0.0010749263456091285], [-0.01355635467916727, 0.0010832520201802254], [-0.013657337985932827, 0.0010913212317973375], [-0.013755043968558311, 0.0010991287417709827], [-0.013849403709173203, 0.0011066687293350697], [-0.013940352946519852, 0.0011139361886307597], [-0.014027826488018036, 0.0011209259973838925], [-0.01411176286637783, 0.0011276332661509514], [-0.01419210433959961, 0.0011340531054884195], [-0.014268793165683746, 0.0011401809751987457], [-0.014341773465275764, 0.0011460126843303442], [-0.014410994946956635, 0.0011515440419316292], [-0.014476408250629902, 0.0011567709734663367], [-0.014537964947521687, 0.0011616898700594902], [-0.014595621265470982, 0.0011662970064207911], [-0.014649337157607079, 0.0011705892393365502], [-0.014699071645736694, 0.0011745634255930781], [-0.014744790270924568, 0.0011782166548073292], [-0.014786459505558014, 0.0011815463658422232], [-0.014824047684669495, 0.00118454999756068], [-0.014857529662549496, 0.0011872254544869065], [-0.014886880293488503, 0.001189570757560432], [-0.014912078157067299, 0.0011915841605514288], [-0.014933103695511818, 0.001193264382891357], [-0.01494994293898344, 0.0011946099111810327], [-0.014962583780288696, 0.0011956199305132031], [-0.014971015974879265, 0.0011962937423959374], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.014975760132074356, 0.0011966729070991278], [-0.01497290562838316, 0.0011963318102061749], [-0.014967833645641804, 0.001195725635625422], [-0.014960229396820068, 0.0011948170140385628], [-0.014950099401175976, 0.0011936065275222063], [-0.014937451109290123, 0.0011920949909836054], [-0.014922292903065681, 0.0011902836849913], [-0.014904635958373547, 0.0011881738901138306], [-0.014884494245052338, 0.0011857670033350587], [-0.014861881732940674, 0.0011830648873001337], [-0.014836815185844898, 0.0011800695210695267], [-0.014809312298893929, 0.0011767830001190305], [-0.014779392629861832, 0.0011732077691704035], [-0.014747079461812973, 0.0011693463893607259], [-0.014712394215166569, 0.0011652017710730433], [-0.014675363898277283, 0.0011607767082750797], [-0.014636012725532055, 0.0011560744605958462], [-0.014594371430575848, 0.0011510984040796757], [-0.0145504679530859, 0.0011458521476015449], [-0.014504333958029747, 0.0011403393000364304], [-0.014456002973020077, 0.0011345639359205961], [-0.01440550945699215, 0.001128530129790306], [-0.014352886937558651, 0.001122242072597146], [-0.01429817546159029, 0.0011157040717080235], [-0.014241410419344902, 0.0011089210165664554], [-0.014182633720338345, 0.001101897330954671], [-0.014121884480118752, 0.0010946381371468306], [-0.01405920647084713, 0.001087148324586451], [-0.013994641602039337, 0.0010794330155476928], [-0.01392823364585638, 0.0010714975651353598], [-0.013860030099749565, 0.0010633474448695779], [-0.013790074735879898, 0.001054988126270473], [-0.013718416914343834, 0.0010464253136888146], [-0.013645103201270103, 0.0010376645950600505], [-0.013570183888077736, 0.0010287120239809155], [-0.013493707403540611, 0.0010195733048021793], [-0.013415724039077759, 0.0010102547239512205], [-0.013336286880075932, 0.0010007622186094522], [-0.013255445286631584, 0.0009911019587889314], [-0.01317325234413147, 0.0009812802309170365], [-0.013089761137962341, 0.0009713034378364682], [-0.013005024753510952, 0.0009611777495592833], [-0.01291909720748663, 0.000950909685343504], [-0.012832030653953552, 0.0009405056480318308], [-0.012743881903588772, 0.0009299721568822861], [-0.012654702179133892, 0.0009193156147375703], [-0.012564549222588539, 0.0009085425990633667], [-0.012473475188016891, 0.0008976596873253584], [-0.012381535954773426, 0.0008866733405739069], [-0.012288786470890045, 0.0008755901362746954], [-0.012195280753076077, 0.0008644165354780853], [-0.012101073749363422, 0.0008531591738574207], [-0.01200621947646141, 0.0008418244542554021], [-0.011910772882401943, 0.0008304188959300518], [-0.011814787052571774, 0.0008189489599317312], [-0.011718315072357655, 0.0008074209908954799], [-0.011621411889791489, 0.0007958413916639984], [-0.01152412872761488, 0.0007842165068723261], [-0.011426519602537155, 0.000772552564740181], [-0.011328634805977345, 0.0007608557352796197], [-0.011230526491999626, 0.0007491321885026991], [-0.011132245883345604, 0.0007373880362138152], [-0.011033843271434307, 0.0007256292155943811], [-0.010935366153717041, 0.0007138617220334709], [-0.01083686575293541, 0.0007020912598818541], [-0.010738389566540718, 0.0006903237081132829], [-0.010639984160661697, 0.0006785646546632051], [-0.010541696101427078, 0.0006668196292594075], [-0.010443571954965591, 0.0006550941616296768], [-0.010345655493438244, 0.0006433936068788171], [-0.010247992351651192, 0.0006317231454886496], [-0.010150623507797718, 0.0006200879579409957], [-0.010053591802716255, 0.0006084931083023548], [-0.00995693914592266, 0.0005969434278085828], [-0.009860703721642494, 0.0005854437476955354], [-0.009764926508069038, 0.0005739987827837467], [-0.009669644758105278, 0.0005626129568554461], [-0.009574895724654198, 0.0005512908101081848], [-0.009480714797973633, 0.0005400365334935486], [-0.009387137368321419, 0.0005288543761707842], [-0.009294196963310242, 0.0005177483544684947], [-0.009201925247907639, 0.0005067223100923002], [-0.009110355749726295, 0.0004957800847478211], [-0.009019517339766026, 0.0004849252291023731], [-0.008929438889026642, 0.00047416126471944153], [-0.008840150199830532, 0.0004634915676433593], [-0.00875167641788721, 0.0004529193392954767], [-0.008664044551551342, 0.00044244766468182206], [-0.008577278815209866, 0.0004320794832892716], [-0.008491402491927147, 0.00042181764729321003], [-0.008406438864767551, 0.000411664746934548], [-0.008322407491505146, 0.00040162340155802667], [-0.008239329792559147, 0.0003916959394700825], [-0.008157224394381046, 0.0003818846889771521], [-0.008076108992099762, 0.00037219171645119786], [-0.007996000349521637, 0.00036261905916035175], [-0.00791691429913044, 0.00035316855064593256], [-0.00783886481076479, 0.00034384193713776767], [-0.007761865388602018, 0.0003346408193465322], [-0.007685928605496883, 0.0003255666815675795], [-0.00761106563732028, 0.00031662083347328007], [-0.007537286728620529, 0.00030780452652834356], [-0.0074646007269620895, 0.00029911883757449687], [-0.007393016014248133, 0.0002905647561419755], [-0.007322540041059256, 0.0002821431262418628], [-0.007253178395330906, 0.0002738547045737505], [-0.007184937130659819, 0.0002657001023180783], [-0.007117819506675005, 0.00025767984334379435], [-0.007051829714328051, 0.0002497943351045251], [-0.006986970081925392, 0.0002420438249828294], [-0.006923241540789604, 0.0002344285458093509], [-0.006860645487904549, 0.00022694857034366578], [-0.0067991819232702255, 0.000219603898585774], [-0.006738849449902773, 0.0002123943850165233], [-0.0066796462051570415, 0.00020531985501293093], [-0.006621569860726595, 0.00019837998843286186], [-0.006564617622643709, 0.00019157440692652017], [-0.0065087852999567986, 0.00018490264483261853], [-0.006454067770391703, 0.00017836413462646306], [-0.006400460377335548, 0.0001719582505756989], [-0.0063479566015303135, 0.00016568426508456469], [-0.006296550389379263, 0.00015954139234963804], [-0.0062462338246405125, 0.00015352877380792052], [-0.006196999456733465, 0.00014764547813683748], [-0.006148839369416237, 0.0001418905012542382], [-0.006101743783801794, 0.00013626280997414142], [-0.006055704317986965, 0.00013076125469524413], [-0.0060107107274234295, 0.0001253846858162433], [-0.005922794342041016, 0.0001148790106526576], [-0.005877800285816193, 0.00010950243449769914], [-0.005831760820001364, 0.00010400087921880186], [-0.005784665700048208, 9.837318066274747e-05], [-0.005736505147069693, 9.261821105610579e-05], [-0.005687270779162645, 8.673492266098037e-05], [-0.005636954680085182, 8.072229684330523e-05], [-0.005585548002272844, 7.45794313843362e-05], [-0.005533044226467609, 6.830544589320198e-05], [-0.005479436833411455, 6.189955456648022e-05], [-0.005424719303846359, 5.536104436032474e-05], [-0.005368886981159449, 4.86892786284443e-05], [-0.005311934743076563, 4.188370439806022e-05], [-0.005253858398646116, 3.494384145596996e-05], [-0.005194655619561672, 2.7869304176419973e-05], [-0.00513432314619422, 2.0659797883126885e-05], [-0.005072859115898609, 1.3315112482814584e-05], [-0.005010263063013554, 5.8351379266241565e-06], [-0.004946534987539053, -1.7801401099859504e-06], [-0.004881674889475107, -9.530636816634797e-06], [-0.004815685097128153, -1.741616324579809e-05], [-0.0047485679388046265, -2.543642585806083e-05], [-0.004680326208472252, -3.3591022656764835e-05], [-0.004610964562743902, -4.187944432487711e-05], [-0.004540488589555025, -5.030106331105344e-05], [-0.004468903876841068, -5.8855141105595976e-05], [-0.004396218340843916, -6.754082278348505e-05], [-0.004322438966482878, -7.635713700437918e-05], [-0.004247575998306274, -8.5302977822721e-05], [-0.0041716392152011395, -9.437713015358895e-05], [-0.004094639793038368, -0.0001035782479448244], [-0.004016590304672718, -0.00011290485417703167], [-0.0039375037886202335, -0.00012235535541549325], [-0.003857395378872752, -0.0001319280272582546], [-0.003776279976591468, -0.0001416209852322936], [-0.0036941745784133673, -0.00015143226482905447], [-0.0036110971122980118, -0.0001613597123650834], [-0.0035270662046968937, -0.00017140107229351997], [-0.003442102111876011, -0.00018155394354835153], [-0.003356226021423936, -0.00019181580864824355], [-0.003269460052251816, -0.0002021839754888788], [-0.003181828185915947, -0.0002126556501025334], [-0.003093354869633913, -0.00022322787845041603], [-0.003004065714776516, -0.00023389757552649826], [-0.0029139877296984196, -0.0002446615253575146], [-0.002823149086907506, -0.0002555163810029626], [-0.0027315791230648756, -0.00026645863545127213], [-0.0026393081061542034, -0.0002774846798274666], [-0.0025463674683123827, -0.0002885907015297562], [-0.002452789805829525, -0.0002997728588525206], [-0.00235860887914896, -0.0003110271063633263], [-0.002263859612867236, -0.00032234928221441805], [-0.0021685778629034758, -0.0003337350790388882], [-0.00207280064933002, -0.0003451800730545074], [-0.0019765659235417843, -0.00035667975316755474], [-0.0018799128010869026, -0.00036822943366132677], [-0.0017828813288360834, -0.00037982428329996765], [-0.0016855127178132534, -0.00039145947084762156], [-0.0015878488775342703, -0.00040312993223778903], [-0.0014899327652528882, -0.00041483048698864877], [-0.0013918085023760796, -0.0004265559546183795], [-0.001293520792387426, -0.00043830095091834664], [-0.0011951153865084052, -0.00045006003347225487], [-0.0010966387344524264, -0.000461827585240826], [-0.0009981382172554731, -0.00047359801828861237], [-0.0008996619144454598, -0.00048536554095335305], [-0.000801258604042232, -0.0004971243324689567], [-0.000702977878972888, -0.0005088685429655015], [-0.0006048698560334742, -0.0005205920315347612], [-0.0005069853505119681, -0.0005322888609953225], [-0.0004093758179806173, -0.0005439528031274676], [-0.00031209306325763464, -0.0005555777461268008], [-0.0002151895605493337, -0.0005671572871506214], [-0.00011871815513586625, -0.0005786852561868727], [-2.2732094294042327e-05, -0.0005901551921851933], [7.271499634953216e-05, -0.0006015607505105436], [0.0001675692037679255, -0.0006128954701125622], [0.00026177632389590144, -0.0006241528317332268], [0.00035528201260603964, -0.0006353264325298369], [0.0004480316711124033, -0.0006464096368290484], [0.0005399707006290555, -0.0006573959835804999], [0.0006310443277470767, -0.0006682789535261691], [0.0007211979245766997, -0.0006790519109927118], [0.0008103767177090049, -0.0006897084531374276], [0.0008985262829810381, -0.0007002420024946332], [0.0009855922544375062, -0.0007106460398063064], [0.001071520266123116, -0.0007209141040220857], [0.0011562566505745053, -0.0007310397340916097], [0.001239747740328312, -0.0007410165853798389], [0.0013219403335824609, -0.0007508383132517338], [0.0014027816941961646, -0.0007604985148645937], [0.0014822195516899228, -0.000769991020206362], [0.0015602023340761662, -0.0007793096592649817], [0.0016366788186132908, -0.000788448320236057], [0.0017115987138822675, -0.0007974009495228529], [0.0017849121941253543, -0.0008061616099439561], [0.001856570364907384, -0.0008147244807332754], [0.0019265251467004418, -0.0008230837993323803], [0.0019947292748838663, -0.0008312339195981622], [0.002061136532574892, -0.0008391693118028343], [0.0021257014013826847, -0.0008468845626339316], [0.0021883798763155937, -0.0008543744334019721], [0.0022491286508738995, -0.0008616336272098124], [0.0023079058155417442, -0.0008686573128215969], [0.002364670392125845, -0.000875440426170826], [0.002419382566586137, -0.0008819783106446266], [0.0024720043875277042, -0.0008882664260454476], [0.0025224986020475626, -0.0008943002903833985], [0.002570829587057233, -0.0009000756544992328], [0.0026169633492827415, -0.0009055884438566864], [0.002660866593942046, -0.0009108347003348172], [0.0027025083545595407, -0.0009158107568509877], [0.0027418588288128376, -0.0009205130045302212], [0.0027788898441940546, -0.0009249380091205239], [0.0028135746251791716, -0.0009290827438235283], [0.0028458882588893175, -0.000932944065425545], [0.0028758072294294834, -0.000936519296374172], [0.0029033103492110968, -0.0009398057591170073], [0.002928377129137516, -0.0009428011835552752], [0.00295098964124918, -0.0009455032995902002], [0.0029711315874010324, -0.0009479101281613111], [0.0029887878336012363, -0.0009500200394541025], [0.003003946039825678, -0.0009518313454464078], [0.003016594797372818, -0.0009533428237773478], [0.0030267247930169106, -0.0009545533102937043], [0.0030343288090080023, -0.0009554619900882244], [0.0030394012574106455, -0.0009560681064613163], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003042255761101842, -0.0009564092033542693], [0.003041291842237115, -0.0009561061742715538], [0.0030395789071917534, -0.0009555676952004433], [0.003037011018022895, -0.0009547604131512344], [0.003033590270206332, -0.0009536850266158581], [0.0030293187592178583, -0.0009523421758785844], [0.0030242002103477716, -0.0009507330250926316], [0.0030182376503944397, -0.0009488585637882352], [0.003011435968801379, -0.000946720305364579], [0.003003800055012107, -0.0009443197050131857], [0.002995335031300783, -0.0009416585671715438], [0.002986047649756074, -0.0009387388126924634], [0.002975944196805358, -0.0009355625370517373], [0.0029650323558598757, -0.000932132126763463], [0.002953319577500224, -0.0009284499101340771], [0.0029408144764602184, -0.0009245186811313033], [0.0029275263659656048, -0.0009203411755152047], [0.0029134643264114857, -0.0009159204200841486], [0.002898638369515538, -0.0009112595580518246], [0.002883059671148658, -0.0009063619654625654], [0.002866738708689809, -0.0009012310765683651], [0.0028496873565018177, -0.0008958705002442002], [0.0028319174889475107, -0.000890284136403352], [0.002813441678881645, -0.0008844757685437799], [0.002794272731989622, -0.0008784495876170695], [0.002774424385279417, -0.0008722097263671458], [0.0027539099100977182, -0.0008657605503685772], [0.002732743974775076, -0.0008591064834035933], [0.0027109410148113966, -0.000852252182085067], [0.002688515931367874, -0.0008452023030258715], [0.0026654840912669897, -0.0008379616774618626], [0.002641861094161868, -0.000830535136628896], [0.0026176627725362778, -0.0008229278028011322], [0.002592905657365918, -0.0008151447400450706], [0.0025676058139652014, -0.0008071911870501935], [0.002541780471801758, -0.0007990723242983222], [0.0025154463946819305, -0.0007907935651019216], [0.0024886210449039936, -0.0007823603227734566], [0.0024613216519355774, -0.0007737780688330531], [0.0024335659109055996, -0.0007650523912161589], [0.002405371982604265, -0.0007561888778582215], [0.0023767570964992046, -0.0007471931166946888], [0.002347740111872554, -0.0007380708702839911], [0.0023183387238532305, -0.000728827842976898], [0.002288571558892727, -0.0007194697391241789], [0.002258456777781248, -0.0007100023794919252], [0.0022280127741396427, -0.0007004315848462284], [0.0021972579415887594, -0.0006907630595378578], [0.002166211139410734, -0.0006810026825405657], [0.0021348902955651283, -0.0006711562164127827], [0.0021033145021647215, -0.0006612295401282609], [0.002071501687169075, -0.0006512283580377698], [0.0020394702441990376, -0.0006411584909074008], [0.0020072385668754578, -0.0006310257012955844], [0.0019748250488191843, -0.0006208356935530901], [0.0019422476179897785, -0.0006105941720306873], [0.0019095242023468018, -0.0006003067246638238], [0.0018766728462651372, -0.0005899790558032691], [0.0018437110120430589, -0.00057961669517681], [0.0018106562783941627, -0.0005692251143045723], [0.0017775262240320444, -0.0005588098429143429], [0.001744337729178369, -0.0005483762361109257], [0.0017111079068854451, -0.0005379295907914639], [0.0016778534045442939, -0.0005274752038531005], [0.001644590636715293, -0.000517018255777657], [0.0016113360179588199, -0.0005065638106316328], [0.001578105497173965, -0.0004961169324815273], [0.001544914674013853, -0.0004856825980823487], [0.0015117790317162871, -0.00047526558046229184], [0.0014787137042731047, -0.0004648706817533821], [0.0014457335928454995, -0.0004545025294646621], [0.0014128531329333782, -0.0004441657511051744], [0.0013800865272060037, -0.0004338647413533181], [0.001347447745501995, -0.0004236039239913225], [0.0013149501755833626, -0.00041338748997077346], [0.0012826070887967944, -0.0004032196302432567], [0.0012504314072430134, -0.0003931043902412057], [0.0012184354709461331, -0.0003830456698779017], [0.0011866315035149455, -0.0003730473108589649], [0.001155031262896955, -0.000363112980267033], [0.0011236460413783789, -0.00035324625787325203], [0.0010924870148301125, -0.0003434506361372769], [0.0010615646606311202, -0.0003337294328957796], [0.0010308893397450447, -0.0003240858786739409], [0.0010004709474742413, -0.00031452305847778916], [0.000970318797044456, -0.0003050439991056919], [0.0009404422016814351, -0.0002956515527330339], [0.0009108497179113328, -0.00028634839691221714], [0.0008815497276373208, -0.0002771372382994741], [0.000852550205308944, -0.00026802049251273274], [0.0008238586597144604, -0.0002590005751699209], [0.0007954821921885014, -0.0002500797563698143], [0.0007674277294427156, -0.00024126010248437524], [0.000739701499696821, -0.00023254367988556623], [0.0007123096147552133, -0.00022393236577045172], [0.0006852577207610011, -0.00021542792092077434], [0.0006585510564036667, -0.00020703200425487012], [0.000632194452919066, -0.00019874615827575326], [0.0006061925087124109, -0.00019057179451920092], [0.0005805494147352874, -0.00018251023720949888], [0.000555268838070333, -0.00017456266505178064], [0.0005303543875925243, -0.00016673016943968832], [0.0005058090318925679, -0.00015901372535154223], [0.00048163559404201806, -0.00015141420590225607], [0.0004578364605549723, -0.00014393235323950648], [0.0004344137851148844, -0.00013656883675139397], [0.0004113692557439208, -0.00012932422396261245], [0.00038870435673743486, -0.00012219895143061876], [0.00036642022314481437, -0.00011519336840137839], [0.0003445176698733121, -0.0001083077586372383], [0.00032299724989570677, -0.00010154226765735075], [0.000301859196042642, -9.489699004916474e-05], [0.0002811034501064569, -8.837190398480743e-05], [0.00026072972104884684, -8.196690760087222e-05], [0.0002407373976893723, -7.568182627437636e-05], [0.00022112566512078047, -6.951638351893052e-05], [0.00020189341739751399, -6.347024464048445e-05], [0.00018303931574337184, -5.754298763349652e-05], [0.00016456178855150938, -5.173411773284897e-05], [0.00014645903138443828, -4.6043063775869086e-05], [0.00012872903607785702, -4.046919639222324e-05], [0.00011136956891277805, -3.5011809814022854e-05], [9.437817789148539e-05, -2.967014370369725e-05], [7.775225822115317e-05, -2.4443368602078408e-05], [6.148897955426946e-05, -1.9330600480316207e-05], [4.558535874821246e-05, -1.4330898920889013e-05], [3.0038230761419982e-05, -9.443269846087787e-06], [1.4844269571767654e-05, -4.666667791752843e-06]]}, {"name": "CX_d3_u3", "samples": [[-0.00011155640822835267, 3.51699623024615e-06], [-0.00022574077593162656, 7.1168437898450065e-06], [-0.0003425792674534023, 1.080036599887535e-05], [-0.00046209682477638125, 1.456835070712259e-05], [-0.0005843171966262162, 1.8421545973978937e-05], [-0.0007092629675753415, 2.2360663933795877e-05], [-0.0008369552087970078, 2.6386367608211003e-05], [-0.0009674136526882648, 3.0499280910589732e-05], [-0.0011006565764546394, 3.469998046057299e-05], [-0.0012367009185254574, 3.8988997403066605e-05], [-0.0013755616964772344, 4.336680649430491e-05], [-0.0015172524144873023, 4.783383701578714e-05], [-0.0016617849469184875, 5.2390460041351616e-05], [-0.001809169421903789, 5.7036995713133365e-05], [-0.0019594139885157347, 6.177369505167007e-05], [-0.002112525049597025, 6.660076905973256e-05], [-0.0022685066796839237, 7.151834870455787e-05], [-0.002427361672744155, 7.652650674572214e-05], [-0.002589090261608362, 8.162526501109824e-05], [-0.0027536903508007526, 8.681455074111e-05], [-0.002921158215031028, 9.20942475204356e-05], [-0.003091487567871809, 9.746415162226185e-05], [-0.003264669794589281, 0.00010292400111211464], [-0.003440694184973836, 0.00010847345401998609], [-0.0036195472348481417, 0.0001141120883403346], [-0.0038012133445590734, 0.00011983940930804238], [-0.00398567458614707, 0.00012565484212245792], [-0.004172909539192915, 0.00013155773922335356], [-0.004362896084785461, 0.00013754735118709505], [-0.0045556072145700455, 0.00014362289221026003], [-0.004751014523208141, 0.0001497834309702739], [-0.004949087277054787, 0.00015602799248881638], [-0.005149791017174721, 0.00016235549992416054], [-0.005353089421987534, 0.00016876481822691858], [-0.005558942444622517, 0.0001752546668285504], [-0.005767308175563812, 0.00018182372150477022], [-0.005978140980005264, 0.0001884705707198009], [-0.006191393360495567, 0.00019519370107445866], [-0.00640701362863183, 0.00020199148275423795], [-0.0066249486990273, 0.00020886222773697227], [-0.0068451412953436375, 0.00021580416068900377], [-0.007067531812936068, 0.00022281538986135274], [-0.007292058318853378, 0.00022989395074546337], [-0.007518654689192772, 0.000237037762417458], [-0.0077472529374063015, 0.0002442447002977133], [-0.007977781817317009, 0.00025151247973553836], [-0.008210166357457638, 0.00025883878697641194], [-0.008444329723715782, 0.00026622117729857564], [-0.008680193684995174, 0.0002736571477726102], [-0.00891767255961895, 0.0002811440790537745], [-0.009156683459877968, 0.00028867926448583603], [-0.009397136978805065, 0.00029625993920490146], [-0.009638940915465355, 0.00030388322193175554], [-0.00988200306892395, 0.0003115461440756917], [-0.010126225650310516, 0.00031924564973451197], [-0.010371509939432144, 0.00032697865390218794], [-0.010617755353450775, 0.0003347419260535389], [-0.010864855721592903, 0.00034253214835189283], [-0.011112704873085022, 0.00035034603206440806], [-0.011361194774508476, 0.00035818005562759936], [-0.011610212735831738, 0.00036603075568564236], [-0.011859646067023277, 0.00037389452336356044], [-0.012109377421438694, 0.0003817677206825465], [-0.012359289452433586, 0.0003896466223523021], [-0.012609262019395828, 0.00039752741577103734], [-0.01285917405039072, 0.00040540628833696246], [-0.01310889981687069, 0.0004132793110329658], [-0.013358315452933311, 0.0004211425257381052], [-0.01360729243606329, 0.00042899191612377763], [-0.013855701312422752, 0.00043682343675754964], [-0.014103413559496403, 0.00044463295489549637], [-0.01435029599815607, 0.0004524163086898625], [-0.014596216380596161, 0.0004601693362928927], [-0.014841039665043354, 0.0004678877885453403], [-0.015084630809724331, 0.0004755674162879586], [-0.015326854772865772, 0.00048320391215384007], [-0.01556757465004921, 0.000490792968776077], [-0.0158066526055336, 0.0004983302787877619], [-0.016043948009610176, 0.0005058114766143262], [-0.016279326751828194, 0.0005132321384735405], [-0.01651264913380146, 0.0005205879569984972], [-0.016743773594498634, 0.0005278745666146278], [-0.016972564160823822, 0.0005350875435397029], [-0.01719888113439083, 0.0005422225221991539], [-0.01742258481681347, 0.0005492751952260733], [-0.017643539234995842, 0.0005562411388382316], [-0.017861606553196907, 0.0005631160456687212], [-0.01807664893567562, 0.0005698956083506346], [-0.01828853040933609, 0.0005765755195170641], [-0.01849711686372757, 0.000583151588216424], [-0.018702276051044464, 0.0005896195070818067], [-0.01890387199819088, 0.0005959751433692873], [-0.01910177432000637, 0.0006022143643349409], [-0.01929585449397564, 0.0006083330954425037], [-0.01948598586022854, 0.0006143272621557117], [-0.01967203989624977, 0.0006201929063536227], [-0.01985389180481434, 0.0006259260699152946], [-0.02003142237663269, 0.0006315230275504291], [-0.020204508677124977, 0.0006369798793457448], [-0.020373037084937096, 0.0006422929582186043], [-0.020536888390779495, 0.0006474586552940309], [-0.02069595269858837, 0.0006524734199047089], [-0.02085012011229992, 0.0006573337595909834], [-0.020999282598495483, 0.0006620364147238433], [-0.021143339574337006, 0.0006665780092589557], [-0.02128218673169613, 0.0006709553999826312], [-0.02141573093831539, 0.0006751655600965023], [-0.021543873474001884, 0.0006792054628022015], [-0.021666526794433594, 0.0006830723723396659], [-0.021783603355288506, 0.0006867633783258498], [-0.021895021200180054, 0.0006902759778313339], [-0.022000698372721672, 0.0006936076679266989], [-0.02210056222975254, 0.0006967560038901865], [-0.02219453826546669, 0.000699718773830682], [-0.022282561287283897, 0.0007024938240647316], [-0.02236456610262394, 0.0007050791173242033], [-0.02244049310684204, 0.0007074729073792696], [-0.022510290145874023, 0.0007096733315847814], [-0.02257390506565571, 0.0007116788765415549], [-0.022631291300058365, 0.0007134880870580673], [-0.02268240600824356, 0.0007150995661504567], [-0.02272721379995346, 0.0007165122078731656], [-0.022765683010220528, 0.0007177249644882977], [-0.022797781974077225, 0.0007187369628809392], [-0.02282349020242691, 0.0007195474463514984], [-0.022842787206172943, 0.0007201558328233659], [-0.022855659946799278, 0.0007205617148429155], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022862903773784637, 0.0007207900634966791], [-0.022858617827296257, 0.0007205370347946882], [-0.0228510033339262, 0.0007200873224064708], [-0.022839585319161415, 0.0007194132194854319], [-0.022824376821517944, 0.0007185151916928589], [-0.022805387154221535, 0.0007173938793130219], [-0.02278262935578823, 0.0007160500972531736], [-0.022756120190024376, 0.0007144848932512105], [-0.02272588014602661, 0.0007126993150450289], [-0.02269192971289158, 0.00071069470141083], [-0.022654294967651367, 0.0007084725075401366], [-0.022613003849983215, 0.0007060343632474542], [-0.022568082436919212, 0.0007033820147626102], [-0.022519567981362343, 0.0007005173829384148], [-0.022467494010925293, 0.0006974425632506609], [-0.022411895915865898, 0.0006941597675904632], [-0.02235281653702259, 0.0006906713242642581], [-0.022290296852588654, 0.000686979794409126], [-0.02222438156604767, 0.000683087739162147], [-0.022155119106173515, 0.000678997952491045], [-0.022082556039094925, 0.0006747134029865265], [-0.022006744518876076, 0.0006702370592392981], [-0.021927740424871445, 0.0006655721226707101], [-0.02184559777379036, 0.0006607218529097736], [-0.021760372444987297, 0.0006556896842084825], [-0.021672125905752182, 0.0006504790508188307], [-0.02158091962337494, 0.0006450936780311167], [-0.021486816927790642, 0.000639537232927978], [-0.021389879286289215, 0.000633813499007374], [-0.02129017747938633, 0.0006279264925979078], [-0.021187778562307358, 0.0006218801718205214], [-0.02108275145292282, 0.0006156786694191396], [-0.02097516506910324, 0.0006093261181376874], [-0.020865093916654587, 0.0006028268835507333], [-0.020752612501382828, 0.000596185214817524], [-0.020637791603803635, 0.0005894055357202888], [-0.020520711317658424, 0.0005824923282489181], [-0.020401446148753166, 0.0005754501326009631], [-0.02028007246553898, 0.0005682834889739752], [-0.02015667036175728, 0.0005609971121884882], [-0.020031319931149483, 0.0005535956006497145], [-0.01990409940481186, 0.0005460836691781878], [-0.019775088876485825, 0.0005384661490097642], [-0.019644372165203094, 0.0005307476967573166], [-0.019512025639414787, 0.0005229332018643618], [-0.019378134980797768, 0.0005150274955667555], [-0.0192427821457386, 0.0005070353508926928], [-0.019106047227978706, 0.0004989616572856903], [-0.018968012183904648, 0.000490811187773943], [-0.01882876083254814, 0.0004825889191124588], [-0.018688373267650604, 0.0004742995952256024], [-0.01854693330824375, 0.00046594810555689037], [-0.01840452291071415, 0.0004575392522383481], [-0.018261220306158066, 0.000449077837402001], [-0.018117111176252365, 0.00044056863407604396], [-0.017972271889448166, 0.00043201641528867185], [-0.017826782539486885, 0.0004234258958604187], [-0.01768072508275509, 0.0004148017324041575], [-0.017534177750349045, 0.0004061486106365919], [-0.01738721691071987, 0.000397471128962934], [-0.017239920794963837, 0.00038877379847690463], [-0.01709236390888691, 0.00038006118847988546], [-0.016944624483585358, 0.00037133769365027547], [-0.01679677516222, 0.0003626077377703041], [-0.01664888858795166, 0.0003538756282068789], [-0.016501039266586304, 0.00034514564322307706], [-0.016353296115994453, 0.00033642197377048433], [-0.01620572991669178, 0.0003277087234891951], [-0.016058409586548805, 0.0003190099960193038], [-0.015911400318145752, 0.0003103296912740916], [-0.015764771029353142, 0.00030167176737450063], [-0.015618585050106049, 0.0002930399787146598], [-0.015472904779016972, 0.0002844381087925285], [-0.01532779261469841, 0.0002758697955869138], [-0.01518330816179514, 0.00026733853155747056], [-0.015039511024951935, 0.00025884786737151444], [-0.014896458014845848, 0.0002504010917618871], [-0.014754204079508781, 0.00024200153711717576], [-0.014612804166972637, 0.00023365237575490028], [-0.01447230949997902, 0.00022535669268108904], [-0.014332770369946957, 0.00021711747103836387], [-0.014194237999618053, 0.0002089376066578552], [-0.014056757092475891, 0.0002008198935072869], [-0.013920375145971775, 0.0001927670236909762], [-0.013785134069621563, 0.00018478158744983375], [-0.013651078566908836, 0.0001768660731613636], [-0.013518246822059155, 0.0001690228673396632], [-0.013386678881943226, 0.00016125426918733865], [-0.01325641106814146, 0.00015356246149167418], [-0.013127479702234268, 0.00014594951062463224], [-0.012999916449189186, 0.0001384174101985991], [-0.012873755767941475, 0.00013096803741063923], [-0.012749024666845798, 0.0001236031821463257], [-0.012625754810869694, 0.00011632451059995219], [-0.0125039704144001, 0.00010913360893027857], [-0.012383697554469109, 0.00010203195415670052], [-0.012264959514141083, 9.502092143520713e-05], [-0.012147778645157814, 8.810180588625371e-05], [-0.012032173573970795, 8.127579349093139e-05], [-0.011918164789676666, 7.454396836692467e-05], [-0.011805767193436623, 6.79073273204267e-05], [-0.011694997549057007, 6.136678712209687e-05], [-0.011585868895053864, 5.492315540323034e-05], [-0.011478394269943237, 4.857715612160973e-05], [-0.011372582986950874, 4.232942228554748e-05], [-0.01126844622194767, 3.618050686782226e-05], [-0.011165990494191647, 3.0130868253763765e-05], [-0.011065222322940826, 2.4180890250136144e-05], [-0.010966147296130657, 1.8330867533222772e-05], [-0.010868768207728863, 1.2581021110236179e-05], [-0.010773088783025742, 6.931487405381631e-06], [-0.010679109022021294, 1.382331447530305e-06], [-0.010586828924715519, -4.06645722250687e-06], [-0.010496247559785843, -9.414961823495105e-06], [-0.010407361201941967, -1.466333560529165e-05], [-0.010320167988538742, -1.9811799575109035e-05], [-0.010234661400318146, -2.486064113327302e-05], [-0.01015083584934473, -2.981021134473849e-05], [-0.010068684816360474, -3.466092312010005e-05], [-0.009988199919462204, -3.941325121559203e-05], [-0.00990937277674675, -4.406772131915204e-05], [-0.009832192212343216, -4.862492278334685e-05], [-0.009756648913025856, -5.308549589244649e-05], [-0.009682729840278625, -5.74501245864667e-05], [-0.009610423818230629, -6.171955465106294e-05], [-0.009539715945720673, -6.589456461369991e-05], [-0.009470593184232712, -6.997599120950326e-05], [-0.009403041563928127, -7.396470027742907e-05], [-0.00927104614675045, -8.1758524174802e-05], [-0.009203493595123291, -8.574724051868543e-05], [-0.00913437083363533, -8.982866711448878e-05], [-0.009063663892447948, -9.400367707712576e-05], [-0.008991356939077377, -9.8273107141722e-05], [-0.008917438797652721, -0.0001026377358357422], [-0.008841894567012787, -0.00010709830530686304], [-0.008764714933931828, -0.00011165550677105784], [-0.008685886859893799, -0.00011630998051259667], [-0.00860540196299553, -0.00012106230860808864], [-0.008523250930011272, -0.0001259130222024396], [-0.008439426310360432, -0.00013086259423289448], [-0.008353919722139835, -0.00013591142487712204], [-0.008266725577414036, -0.00014105989248491824], [-0.008177840150892735, -0.0001463082735426724], [-0.008087258785963058, -0.00015165677177719772], [-0.007994978688657284, -0.00015710556181147695], [-0.007900998927652836, -0.00016265471640508622], [-0.007805319037288427, -0.00016830425010994077], [-0.00770794041454792, -0.00017405410471837968], [-0.007608864922076464, -0.00017990412015933543], [-0.007508097216486931, -0.00018585409270599484], [-0.00740564102306962, -0.00019190373132005334], [-0.0073015037924051285, -0.00019805265765171498], [-0.007195692975074053, -0.00020430039148777723], [-0.007088217884302139, -0.00021064637985546142], [-0.006979089695960283, -0.00021709001157432795], [-0.0068683200515806675, -0.0002236305590486154], [-0.006755922455340624, -0.00023026719281915575], [-0.006641913205385208, -0.00023699902521912009], [-0.006526308599859476, -0.0002438250376144424], [-0.006409127730876207, -0.00025074416771531105], [-0.0062903896905481815, -0.00025775519316084683], [-0.006170116830617189, -0.0002648568479344249], [-0.006048332899808884, -0.00027204773505218327], [-0.005925062112510204, -0.00027932639932259917], [-0.0058003319427371025, -0.0002866912691388279], [-0.005674170330166817, -0.00029414062737487257], [-0.005546607542783022, -0.0003016727278009057], [-0.005417675711214542, -0.00030928567866794765], [-0.005287408363074064, -0.00031697750091552734], [-0.005155840422958136, -0.0003247460990678519], [-0.005023008678108454, -0.00033258929033763707], [-0.00488895270973444, -0.0003405048046261072], [-0.004753712564706802, -0.0003484902554191649], [-0.004617330152541399, -0.00035654311068356037], [-0.004479849711060524, -0.0003646608383860439], [-0.004341316409409046, -0.00037284070276655257], [-0.004201778210699558, -0.0003810799098573625], [-0.00406128354370594, -0.00038937560748308897], [-0.003919883165508509, -0.00039772476884536445], [-0.003777629230171442, -0.000406124338041991], [-0.0036345759872347116, -0.0004145710845477879], [-0.003490778850391507, -0.0004230617778375745], [-0.0033462948631495237, -0.0004315930127631873], [-0.003201182698830962, -0.00044016135507263243], [-0.003055502427741885, -0.00044876322499476373], [-0.0029093159828335047, -0.0004573949845507741], [-0.002762686461210251, -0.0004660529375541955], [-0.002615678124129772, -0.00047473321319557726], [-0.00246835732832551, -0.00048343196976929903], [-0.002320790896192193, -0.0004921451909467578], [-0.0021730479784309864, -0.000500868889503181], [-0.002025197958573699, -0.0005095988744869828], [-0.0018773121992126107, -0.0005183309549465775], [-0.0017294627614319324, -0.0005270609399303794], [-0.0015817229868844151, -0.0005357844056561589], [-0.0014341671485453844, -0.0005444970447570086], [-0.0012868705671280622, -0.0005531943752430379], [-0.001139909727498889, -0.0005618718569166958], [-0.0009933615801855922, -0.000570524949580431], [-0.0008473041234537959, -0.0005791491130366921], [-0.0007018160540610552, -0.0005877396324649453], [-0.000556976709049195, -0.0005962918512523174], [-0.0004128660657443106, -0.0006048010545782745], [-0.0002695646253414452, -0.0006132624694146216], [-0.00012715329648926854, -0.0006216713227331638], [1.4286525583884213e-05, -0.0006300228415057063], [0.0001546731946291402, -0.0006383121362887323], [0.0002939248224720359, -0.0006465344340540469], [0.00043195937178097665, -0.0006546848453581333], [0.0005686946678906679, -0.0006627585971727967], [0.0007040485506877303, -0.0006707507418468595], [0.0008379390928894281, -0.0006786564481444657], [0.0009702842216938734, -0.0006864709430374205], [0.0011010024463757873, -0.0006941893370822072], [0.0012300123926252127, -0.0007018069154582918], [0.001357233035378158, -0.0007093188469298184], [0.001482584048062563, -0.0007167203584685922], [0.001605985569767654, -0.0007240067352540791], [0.0017273584380745888, -0.000731173378881067], [0.001846624189056456, -0.000738215574529022], [0.001963705290108919, -0.0007451287237927318], [0.0020785247907042503, -0.000751908402889967], [0.0021910073701292276, -0.0007585500716231763], [0.0023010780569165945, -0.0007650493644177914], [0.0024086635094136, -0.0007714018574915826], [0.0025136915501207113, -0.0007776033598929644], [0.002616091165691614, -0.0007836496806703508], [0.0027157929725944996, -0.000789536745287478], [0.0028127289842814207, -0.000795260421000421], [0.0029068326111882925, -0.0008008169243112206], [0.0029980388935655355, -0.0008062022970989347], [0.003086285199970007, -0.0008114129304885864], [0.0031715098302811384, -0.0008164450991898775], [0.0032536531798541546, -0.000821295368950814], [0.0033326579723507166, -0.000825960305519402], [0.003408468561246991, -0.0008304366492666304], [0.003481031395494938, -0.0008347211987711489], [0.0035502950195223093, -0.000838810985442251], [0.0036162103060632944, -0.00084270304068923], [0.0036787299904972315, -0.0008463945705443621], [0.0037378096021711826, -0.0008498830138705671], [0.003793406765908003, -0.0008531658095307648], [0.0038454814348369837, -0.0008562406292185187], [0.003893996123224497, -0.0008591052610427141], [0.003938915673643351, -0.0008617576095275581], [0.003980208188295364, -0.0008641957538202405], [0.0040178424678742886, -0.000866417889483273], [0.004051792435348034, -0.0008684225031174719], [0.004082032945007086, -0.0008702080813236535], [0.0041085416451096535, -0.0008717733435332775], [0.004131299443542957, -0.0008731171255931258], [0.0041502900421619415, -0.0008742384379729629], [0.0041654990054667, -0.0008751364657655358], [0.0041769156232476234, -0.0008758105686865747], [0.004184531047940254, -0.0008762602228671312], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.004188816528767347, -0.000876513309776783], [0.00418748939409852, -0.0008762356010265648], [0.004185130819678307, -0.0008757420582696795], [0.004181595519185066, -0.0008750022388994694], [0.0041768853552639484, -0.0008740166667848825], [0.004171004053205252, -0.00087278604041785], [0.004163956269621849, -0.0008713112329132855], [0.004155746661126614, -0.0008695934084244072], [0.004146381746977568, -0.0008676337311044335], [0.004135867580771446, -0.0008654337143525481], [0.004124212544411421, -0.0008629948715679348], [0.004111425019800663, -0.0008603190071880817], [0.004097513854503632, -0.0008574081002734601], [0.004082489293068647, -0.0008542642462998629], [0.004066362511366606, -0.0008508896571584046], [0.004049144219607115, -0.0008472867775708437], [0.004030847921967506, -0.0008434582850895822], [0.004011486191302538, -0.0008394067990593612], [0.0039910729974508286, -0.0008351353462785482], [0.003969622775912285, -0.0008306468371301889], [0.003947150893509388, -0.0008259445894509554], [0.003923673182725906, -0.0008210318628698587], [0.003899206407368183, -0.0008159120916388929], [0.0038737673312425613, -0.0008105890010483563], [0.003847374115139246, -0.0008050661999732256], [0.0038200451526790857, -0.000799347588326782], [0.00379179953597486, -0.0007934371824376285], [0.0037626565899699926, -0.0007873389986343682], [0.003732636570930481, -0.0007810572860762477], [0.0037017599679529667, -0.0007745962939225137], [0.0036700479686260223, -0.0007679605041630566], [0.0036375217605382204, -0.0007611543987877667], [0.0036042036954313517, -0.0007541825762018561], [0.003570116125047207, -0.000747049693018198], [0.003535281401127577, -0.0007397605222649872], [0.0034997230395674706, -0.0007323198951780796], [0.0034634643234312534, -0.0007247327012009919], [0.0034265287686139345, -0.0007170039461925626], [0.003388941055163741, -0.0007091386942192912], [0.003350724931806326, -0.0007011418929323554], [0.0033119048457592726, -0.0006930188392288983], [0.0032725059427320957, -0.0006847745389677584], [0.0032325529027730227, -0.0006764143472537398], [0.003192070871591568, -0.0006679434445686638], [0.0031510849948972464, -0.0006593671278096735], [0.003109620651230216, -0.0006506906356662512], [0.0030677029862999916, -0.0006419193232432008], [0.0030253573786467314, -0.0006330584874376655], [0.002982609672471881, -0.0006241134833544493], [0.002939484780654311, -0.0006150896078906953], [0.0028960085473954678, -0.0006059921579435468], [0.0028522061184048653, -0.0005968264304101467], [0.002808102872222662, -0.0005875978386029601], [0.0027637239545583725, -0.0005783115047961473], [0.002719094278290868, -0.0005689727258868515], [0.0026742389891296625, -0.0005595867405645549], [0.0026291829999536276, -0.0005501586711034179], [0.002583950525149703, -0.0005406937561929226], [0.0025385660119354725, -0.0005311970598995686], [0.0024930539075285196, -0.0005216735298745334], [0.0024474377278238535, -0.0005121283465996385], [0.0024017412215471268, -0.0005025662831030786], [0.002355987671762705, -0.0004929923452436924], [0.002310200361534953, -0.00048341130604967475], [0.0022644016426056623, -0.00047382788034155965], [0.002218614099547267, -0.00046424681204371154], [0.0021728596184402704, -0.0004546726413536817], [0.0021271598525345325, -0.0004451099375728518], [0.0020815362222492695, -0.0004355631535872817], [0.0020360092166811228, -0.00042603659676387906], [0.0019905995577573776, -0.0004165346035733819], [0.0019453271524980664, -0.0004070613067597151], [0.001900211558677256, -0.000397620809962973], [0.0018552718684077263, -0.00038821715861558914], [0.0018105267081409693, -0.0003788541944231838], [0.00176599423866719, -0.0003695357299875468], [0.0017216921551153064, -0.0003602654905989766], [0.0016776375705376267, -0.0003510470560286194], [0.001633847365155816, -0.00034188391873613], [0.0015903377206996083, -0.00033277945476584136], [0.0015471241204068065, -0.0003237369819544256], [0.0015042219310998917, -0.0003147596726194024], [0.0014616455882787704, -0.00030585055355913937], [0.0014194094110280275, -0.00029701259336434305], [0.0013775269035249949, -0.0002882486442103982], [0.001336011104285717, -0.00027956144185736775], [0.0012948747025802732, -0.00027095357654616237], [0.0012541294563561678, -0.00026242760941386223], [0.0012137868907302618, -0.00025398589787073433], [0.0011738580651581287, -0.0002456307702232152], [0.0011343533406034112, -0.00023736435105092824], [0.0010952823795378208, -0.00022918873582966626], [0.0010566547280177474, -0.0002211058745160699], [0.001018479117192328, -0.00021311758609954268], [0.0009807638125494123, -0.00020522563136182725], [0.0009435166721232235, -0.00019743162556551397], [0.0009067447972483933, -0.00018973708210978657], [0.0008704549982212484, -0.0001821434125304222], [0.0008346535032615066, -0.00017465192649979144], [0.0007993460167199373, -0.00016726380272302777], [0.0007645377772860229, -0.00015998014714568853], [0.0007302335579879582, -0.0001528019638499245], [0.0006964376079849899, -0.0001457301405025646], [0.0006631537107750773, -0.00013876544835511595], [0.0006303852424025536, -0.00013190861500333995], [0.0005981349968351424, -0.00012516023707576096], [0.0005664054770022631, -0.00011852081661345437], [0.0005351987201720476, -0.00011199076834600419], [0.0005045161233283579, -0.00010557041969150305], [0.0004743589961435646, -9.926001075655222e-05], [0.0004447279789019376, -9.30596943362616e-05], [0.00041562344995327294, -8.696954319020733e-05], [0.00038704529288224876, -8.098954276647419e-05], [0.00035899312933906913, -7.51196057535708e-05], [0.00033146614441648126, -6.935956480447203e-05], [0.0003044631739612669, -6.37091652606614e-05], [0.00027798270457424223, -5.8168108807876706e-05], [0.00025202290271408856, -5.2735998906427994e-05], [0.00022658160014543682, -4.741238444694318e-05], [0.00020165630849078298, -4.2196745198452845e-05], [0.0001772442483343184, -3.708850636030547e-05], [0.00015334236377384514, -3.208701673429459e-05], [0.00012994729331694543, -2.7191577828489244e-05], [0.00010705541353672743, -2.240143294329755e-05], [8.466286089969799e-05, -1.7715772628434934e-05], [6.276550266193226e-05, -1.313373286393471e-05], [4.135899507673457e-05, -8.654403245600406e-06], [2.0438756109797396e-05, -4.276826530258404e-06]]}, {"name": "CX_d3_u8", "samples": [[-0.0001311587548116222, 3.3683913898130413e-06], [-0.0002654072595760226, 6.816133009124314e-06], [-0.00040277623338624835, 1.0344013389840256e-05], [-0.0005432950565591455, 1.395278832205804e-05], [-0.0006869916687719524, 1.764317312336061e-05], [-0.0008338924963027239, 2.14158499147743e-05], [-0.00098402239382267, 2.527145443309564e-05], [-0.0011374045861884952, 2.9210583306849003e-05], [-0.0012940606102347374, 3.3233791327802464e-05], [-0.0014540102565661073, 3.734158235602081e-05], [-0.0016172711038962007, 4.153441477683373e-05], [-0.0017838593339547515, 4.581269604386762e-05], [-0.001953788800165057, 5.017678631702438e-05], [-0.0021270711440593004, 5.4626987548545e-05], [-0.0023037162609398365, 5.9163550758967176e-05], [-0.0024837313685566187, 6.378666148521006e-05], [-0.002667121822014451, 6.849645433248952e-05], [-0.0028538904152810574, 7.32930056983605e-05], [-0.0030440373811870813, 7.817631558282301e-05], [-0.00323756062425673, 8.314634033013135e-05], [-0.003434455255046487, 8.820294897304848e-05], [-0.003634714288637042, 9.334595961263403e-05], [-0.0038383277133107185, 9.857511759037152e-05], [-0.004045282490551472, 0.00010389008093625307], [-0.004255563020706177, 0.00010929046402452514], [-0.004469151142984629, 0.00011477578664198518], [-0.004686024971306324, 0.00012034549581585452], [-0.00490616075694561, 0.00012599898036569357], [-0.005129530560225248, 0.00013173551997169852], [-0.005356104578822851, 0.00013755433610640466], [-0.005585848353803158, 0.00014345457020681351], [-0.0058187260292470455, 0.00014943527639843524], [-0.006054696626961231, 0.00015549543604720384], [-0.00629371777176857, 0.00016163392865564674], [-0.006535742897540331, 0.00016784956096671522], [-0.006780721712857485, 0.00017414105241186917], [-0.007028601597994566, 0.00018050704966299236], [-0.007279325742274523, 0.00018694609752856195], [-0.00753283454105258, 0.00019345665350556374], [-0.007789064198732376, 0.00020003708777949214], [-0.008047948591411114, 0.00020668569777626544], [-0.00830941740423441, 0.00021340067905839533], [-0.008573396131396294, 0.0002201801398769021], [-0.008839810267090797, 0.00022702211572322994], [-0.00910857692360878, 0.0002339245256735012], [-0.0093796132132411, 0.00024088521604426205], [-0.009652831591665745, 0.0002479019749443978], [-0.009928141720592976, 0.00025497243041172624], [-0.010205450467765331, 0.0002620941959321499], [-0.010484659112989902, 0.00026926479768007994], [-0.010765668004751205, 0.0002764815872069448], [-0.011048372834920883, 0.00028374194516800344], [-0.011332666501402855, 0.00029104313580319285], [-0.011618438176810741, 0.0002983822487294674], [-0.011905575171113014, 0.0003057564317714423], [-0.012193960137665272, 0.0003131626872345805], [-0.012483474798500538, 0.00032059793011285365], [-0.012773994356393814, 0.00032805901719257236], [-0.013065395876765251, 0.00033554271794855595], [-0.013357548974454403, 0.0003430457436479628], [-0.013650324195623398, 0.00035056471824645996], [-0.013943586498498917, 0.0003580962074920535], [-0.014237199909985065, 0.0003656367480289191], [-0.014531025663018227, 0.0003731827309820801], [-0.014824923127889633, 0.0003807305183727294], [-0.015118748880922794, 0.0003882765013258904], [-0.015412355773150921, 0.0003958168381359428], [-0.015705598518252373, 0.0004033478326164186], [-0.015998324379324913, 0.0004108655557502061], [-0.01629038341343403, 0.00041836616583168507], [-0.016581622883677483, 0.00042584570473991334], [-0.01687188632786274, 0.0004333001852501184], [-0.017161019146442413, 0.0004407256201375276], [-0.01744886115193367, 0.0004481179639697075], [-0.017735255882143974, 0.00045547308400273323], [-0.018020043149590492, 0.00046278690570034087], [-0.01830306090414524, 0.000470055325422436], [-0.018584148958325386, 0.00047727415221743286], [-0.018863143399357796, 0.0004844392242375761], [-0.019139880314469337, 0.00049154635053128], [-0.019414201378822327, 0.0004985913983546197], [-0.019685938954353333, 0.0005055700894445181], [-0.019954930990934372, 0.0005124782910570502], [-0.020221015438437462, 0.0005193118122406304], [-0.02048402838408947, 0.0005260664620436728], [-0.020743807777762413, 0.0005327380495145917], [-0.021000193431973457, 0.0005393225001171231], [-0.02125302143394947, 0.0005458155646920204], [-0.021502135321497917, 0.0005522132851183414], [-0.021747374907135963, 0.0005585114704445004], [-0.021988581866025925, 0.0005647061043418944], [-0.022225601598620415, 0.0005707931704819202], [-0.022458279505372047, 0.0005767687689512968], [-0.022686464712023735, 0.000582628941629082], [-0.02291000448167324, 0.0005883698468096554], [-0.023128749802708626, 0.0005939876427873969], [-0.0233425572514534, 0.0005994786042720079], [-0.02355128340423107, 0.0006048390059731901], [-0.02375478483736515, 0.0006100652972236276], [-0.023952923715114594, 0.0006151539273560047], [-0.024145567789673805, 0.0006201013457030058], [-0.02433258295059204, 0.0006249041762202978], [-0.024513838812708855, 0.0006295592174865305], [-0.024689212441444397, 0.0006340631516650319], [-0.024858582764863968, 0.0006384128355421126], [-0.025021828711032867, 0.000642605300527066], [-0.025178836658596992, 0.0006466375198215246], [-0.02532949671149254, 0.0006505067576654255], [-0.025473702698946, 0.0006542102200910449], [-0.025611352175474167, 0.0006577452877536416], [-0.02574234828352928, 0.0006611095159314573], [-0.025866594165563583, 0.0006643004016950727], [-0.025984006002545357, 0.0006673156749457121], [-0.02609449438750744, 0.0006701532402075827], [-0.02619798481464386, 0.0006728110602125525], [-0.026294399052858353, 0.0006752871559001505], [-0.026383668184280396, 0.0006775797810405493], [-0.026465730741620064, 0.0006796872476115823], [-0.026540521532297134, 0.0006816080422140658], [-0.026607992127537727, 0.0006833407678641379], [-0.026668088510632515, 0.0006848842022009194], [-0.026720771566033363, 0.000686237181071192], [-0.02676599845290184, 0.0006873986567370594], [-0.02680373750627041, 0.0006883679307065904], [-0.02683396451175213, 0.0006891441298648715], [-0.02685665152966976, 0.0006897268467582762], [-0.026871787384152412, 0.0006901154993101954], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026880303397774696, 0.0006903342436999083], [-0.026873087510466576, 0.0006901824381202459], [-0.02686026319861412, 0.0006899125874042511], [-0.026841038838028908, 0.0006895081605762243], [-0.026815427467226982, 0.0006889693322591484], [-0.026783449575304985, 0.0006882965681143105], [-0.026745127514004707, 0.0006874902755953372], [-0.026700489223003387, 0.0006865511531941593], [-0.026649566367268562, 0.0006854798411950469], [-0.026592398062348366, 0.000684277038089931], [-0.02652902342379093, 0.000682943791616708], [-0.02645949088037014, 0.0006814809166826308], [-0.02638385072350502, 0.0006798895192332566], [-0.02630215510725975, 0.0006781707634218037], [-0.026214465498924255, 0.0006763258716091514], [-0.02612084522843361, 0.0006743561825715005], [-0.026021359488368034, 0.0006722631515003741], [-0.02591608092188835, 0.0006700482335872948], [-0.02580508589744568, 0.0006677130586467683], [-0.025688450783491135, 0.0006652591982856393], [-0.025566261261701584, 0.0006626885151490569], [-0.02543860301375389, 0.0006600026972591877], [-0.02530556544661522, 0.0006572037818841636], [-0.02516724169254303, 0.0006542936316691339], [-0.025023730471730232, 0.0006512743420898914], [-0.024875132367014885, 0.0006481480086222291], [-0.024721547961235046, 0.0006449167849496007], [-0.024563085287809372, 0.0006415829411707819], [-0.024399852380156517, 0.0006381487473845482], [-0.024231962859630585, 0.0006346165901049972], [-0.024059530347585678, 0.0006309887976385653], [-0.0238826721906662, 0.0006272679311223328], [-0.023701507598161697, 0.000623456435278058], [-0.023516157642006874, 0.0006195569294504821], [-0.023326745256781578, 0.0006155719747766852], [-0.023133398965001106, 0.0006115041906014085], [-0.022936243563890457, 0.0006073563126847148], [-0.022735411301255226, 0.0006031310185790062], [-0.02253102883696556, 0.0005988311022520065], [-0.022323230281472206, 0.0005944592994637787], [-0.022112149745225906, 0.0005900184623897076], [-0.021897921338677406, 0.000585511326789856], [-0.02168067917227745, 0.0005809408612549305], [-0.021460559219121933, 0.000576309859752655], [-0.021237701177597046, 0.0005716211744584143], [-0.021012241020798683, 0.0005668777739629149], [-0.020784316584467888, 0.0005620825104415417], [-0.020554065704345703, 0.0005572383524850011], [-0.020321626216173172, 0.000552348152268678], [-0.020087137818336487, 0.0005474148201756179], [-0.01985073834657669, 0.0005424412665888667], [-0.019612565636634827, 0.00053743040189147], [-0.01937275566160679, 0.0005323851364664733], [-0.01913144811987877, 0.0005273083224892616], [-0.018888777121901512, 0.0005222028703428805], [-0.01864488050341606, 0.0005170715739950538], [-0.018399890512228012, 0.0005119172856211662], [-0.01815394125878811, 0.0005067428573966026], [-0.017907166853547096, 0.0005015510250814259], [-0.01765969581902027, 0.0004963445826433599], [-0.01741166226565838, 0.0004911262658424675], [-0.017163189128041267, 0.0004858987231273204], [-0.016914408653974533, 0.00048066466115415096], [-0.016665441915392876, 0.00047542675747536123], [-0.016416413709521294, 0.0004701875150203705], [-0.016167446970939636, 0.0004649495822377503], [-0.015918659046292305, 0.0004597154329530895], [-0.015670171007514, 0.0004544875118881464], [-0.0154220936819911, 0.00044926832197234035], [-0.015174544416368008, 0.00044406019151210785], [-0.014927632175385952, 0.0004388654779177159], [-0.014681465923786163, 0.00043368645128794014], [-0.014436152763664722, 0.0004285253817215562], [-0.014191796071827412, 0.00042338442290201783], [-0.01394849643111229, 0.0004182657285127789], [-0.01370635349303484, 0.00041317136492580175], [-0.013465464115142822, 0.000408103340305388], [-0.013225920498371124, 0.00040306366281583905], [-0.012987813912332058, 0.0003980541951023042], [-0.012751232832670212, 0.00039307682891376317], [-0.012516261078417301, 0.00038813333958387375], [-0.012282982468605042, 0.0003832254733424634], [-0.01205147709697485, 0.0003783548891078681], [-0.01182182040065527, 0.00037352321669459343], [-0.01159408688545227, 0.00036873199860565364], [-0.011368347331881523, 0.000363982719136402], [-0.011144669726490974, 0.00035927683347836137], [-0.010923120193183422, 0.00035461573861539364], [-0.01070376019924879, 0.00035000068601220846], [-0.01048665028065443, 0.00034543295623734593], [-0.010271844454109669, 0.0003409137425478548], [-0.010059399530291557, 0.00033644415088929236], [-0.009849363937973976, 0.000332025287207216], [-0.009641786105930805, 0.00032765811192803085], [-0.0094367116689682, 0.00032334361458197236], [-0.00923418253660202, 0.0003190826391801238], [-0.009034237824380398, 0.0003148760588373989], [-0.008836913853883743, 0.0003107246302533895], [-0.008642245084047318, 0.00030662905192002654], [-0.008450263179838657, 0.0003025899932254106], [-0.008260995149612427, 0.0002986080653499812], [-0.00807446800172329, 0.00029468376305885613], [-0.007890705019235611, 0.0002908176102209836], [-0.007709725759923458, 0.0002870100433938205], [-0.007531548850238323, 0.00028326144092716277], [-0.007356190588325262, 0.0002795721229631454], [-0.007183663081377745, 0.0002759423805400729], [-0.007013977970927954, 0.0002723724173847586], [-0.006847143638879061, 0.0002688624372240156], [-0.006683166138827801, 0.00026541255647316575], [-0.006522049196064472, 0.00026202286244370043], [-0.006363795138895512, 0.00025869341334328055], [-0.006208403035998344, 0.00025542418006807566], [-0.006055871024727821, 0.00025221510441042483], [-0.005906194914132357, 0.0002490660990588367], [-0.005759367719292641, 0.00024597704759798944], [-0.0056153819896280766, 0.00024294776085298508], [-0.005474227014929056, 0.00023997804964892566], [-0.005335891153663397, 0.00023706765205133706], [-0.005200361832976341, 0.00023421627702191472], [-0.005067622754722834, 0.00023142361897043884], [-0.004937657620757818, 0.00022868932865094393], [-0.00481044827029109, 0.00022601299860980362], [-0.004685975145548582, 0.00022339425049722195], [-0.004564216826111078, 0.00022083261865191162], [-0.004445151425898075, 0.00021832763741258532], [-0.004328754730522633, 0.00021587879746221006], [-0.0042150020599365234, 0.00021348558948375285], [-0.003992733079940081, 0.00020880933152511716], [-0.003878980642184615, 0.00020641613809857517], [-0.0037625841796398163, 0.00020396729814819992], [-0.0036435185465961695, 0.00020146231690887362], [-0.0035217604599893093, 0.0001989006850635633], [-0.0033972871024161577, 0.0001962819223990664], [-0.003270077984780073, 0.0001936056069098413], [-0.0031401128508150578, 0.00019087130203843117], [-0.00300737377256155, 0.00018807864398695529], [-0.0028718439862132072, 0.00018522728350944817], [-0.0027335085906088352, 0.00018231687135994434], [-0.002592353615909815, 0.00017934716015588492], [-0.002448367653414607, 0.0001763178879627958], [-0.0023015406914055347, 0.00017322883650194854], [-0.0021518643479794264, 0.0001700798311503604], [-0.0019993323367089033, 0.00016687075549270958], [-0.0018439404666423798, 0.00016360152221750468], [-0.0016856862930580974, 0.00016027205856516957], [-0.0015245694667100906, 0.00015688236453570426], [-0.001360591733828187, 0.0001534324837848544], [-0.0011937572853639722, 0.00014992250362411141], [-0.0010240721749141812, 0.0001463525404687971], [-0.0008515449007973075, 0.00014272279804572463], [-0.0006761864060536027, 0.00013903348008170724], [-0.0004980097291991115, 0.00013528487761504948], [-0.0003170306154061109, 0.00013147731078788638], [-0.00013326718180906028, 0.00012761115795001388], [5.32599697180558e-05, 0.00012368687021080405], [0.00024252760340459645, 0.00011970492778345942], [0.00043450991506688297, 0.00011566586181288585], [0.0006291784229688346, 0.00011157029075548053], [0.0008265020442195237, 0.0001074188548955135], [0.001026446814648807, 0.00010321227455278859], [0.0012289761798456311, 9.895132097881287e-05], [0.0014340507332235575, 9.463681635679677e-05], [0.0016416283324360847, 9.026965562952682e-05], [0.001851663808338344, 8.585077739553526e-05], [0.0020641095470637083, 8.138120028888807e-05], [0.0022789144422858953, 7.68619793234393e-05], [0.0024960250593721867, 7.229424954857677e-05], [0.002715385053306818, 6.767920422134921e-05], [0.0029369345866143703, 6.301808025455102e-05], [0.0031606119591742754, 5.8312201872467995e-05], [0.003386351279914379, 5.356293695513159e-05], [0.0036140847951173782, 4.8771718866191804e-05], [0.0038437414914369583, 4.3940039176959544e-05], [0.004075247328728437, 3.906945130438544e-05], [0.004308525938540697, 3.416157778701745e-05], [0.004543496761471033, 2.9218088457128033e-05], [0.0047800783067941666, 2.4240720449597575e-05], [0.005018184892833233, 1.9231265468988568e-05], [0.005257728509604931, 1.4191577974997927e-05], [0.0054986183531582355, 9.123566997004673e-06], [0.005740760825574398, 4.029199317301391e-06], [0.005984060000628233, -1.089500756279449e-06], [0.006228417158126831, -6.230455710465321e-06], [0.006473730783909559, -1.1391533007554244e-05], [0.006719896569848061, -1.6570547813898884e-05], [0.006966808810830116, -2.176526322728023e-05], [0.007214358542114496, -2.697339004953392e-05], [0.007462434936314821, -3.21925945172552e-05], [0.007710924372076988, -3.742049011634663e-05], [0.007959711365401745, -4.2654650314943865e-05], [0.008208679035305977, -4.7892597649479285e-05], [0.008457706309854984, -5.313181463861838e-05], [0.008706672117114067, -5.8369743783259764e-05], [0.00895545445382595, -6.360378756653517e-05], [0.009203925728797913, -6.883131572976708e-05], [0.009451961144804955, -7.404965435853228e-05], [0.009699431248009205, -7.92561040725559e-05], [0.009946206584572792, -8.444793638773263e-05], [0.01019215490669012, -8.962237916421145e-05], [0.01043714489787817, -9.477664571022615e-05], [0.010681042447686195, -9.990793478209525e-05], [0.010923713445663452, -0.00010501340875634924], [0.011165020987391472, -0.00011009021545760334], [0.011404830031096935, -0.00011513548815855756], [0.0116430027410388, -0.00012014633830403909], [0.011879402212798595, -0.0001251198846148327], [0.01211389061063528, -0.00013005321670789272], [0.012346329167485237, -0.00013494341692421585], [0.012576580978929996, -0.0001397876039845869], [0.012804505415260792, -0.00014458285295404494], [0.013029965572059155, -0.0001493262534495443], [0.013252824544906616, -0.00015401490963995457], [0.013472942635416985, -0.00015864591114223003], [0.01369018480181694, -0.00016321640578098595], [0.013904414139688015, -0.0001677235122770071], [0.014115494675934315, -0.00017216437845490873], [0.01432329323142767, -0.00017653618124313653], [0.01452767476439476, -0.00018083611212205142], [0.01472850888967514, -0.0001850613916758448], [0.014925663359463215, -0.0001892092841444537], [0.015119010582566261, -0.0001932770392159], [0.015308421105146408, -0.00019726200844161212], [0.015493771061301231, -0.00020116152882110327], [0.015674935653805733, -0.0002049730101134628], [0.01585179567337036, -0.00020869389118161052], [0.016024228185415268, -0.00021232165454421192], [0.0161921177059412, -0.00021585382637567818], [0.016355348750948906, -0.00021928802016191185], [0.01651381142437458, -0.00022262187849264592], [0.01666739583015442, -0.0002258530876133591], [0.016815995797514915, -0.00022897942108102143], [0.016959507018327713, -0.0002319987106602639], [0.017097830772399902, -0.00023490884632337838], [0.017230868339538574, -0.00023770779080223292], [0.017358526587486267, -0.00024039356503635645], [0.017480716109275818, -0.00024296427727676928], [0.017597349360585213, -0.00024541810853406787], [0.017708346247673035, -0.0002477533125784248], [0.017813624814152718, -0.0002499682304915041], [0.017913108691573143, -0.000252061290666461], [0.01800673082470894, -0.00025403095060028136], [0.018094420433044434, -0.00025587581330910325], [0.018176114186644554, -0.0002575945691205561], [0.018251756206154823, -0.0002591859665699303], [0.018321288749575615, -0.0002606488415040076], [0.0183846615254879, -0.00026198214618489146], [0.018441829830408096, -0.00026318489108234644], [0.01849275268614292, -0.00026425623218528926], [0.01853739097714424, -0.00026519535458646715], [0.01857571490108967, -0.00026600161800161004], [0.018607692793011665, -0.00026667441125027835], [0.018633302301168442, -0.00026721321046352386], [0.018652526661753654, -0.0002676176663953811], [0.01866535097360611, -0.00026788748800754547], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.01867256872355938, -0.0002680392935872078], [0.018666651099920273, -0.00026795436860993505], [0.018656138330698013, -0.0002678034652490169], [0.01864037849009037, -0.00026757721207104623], [0.01861938089132309, -0.00026727584190666676], [0.018593166023492813, -0.00026689950027503073], [0.018561746925115585, -0.0002664485073182732], [0.018525151535868645, -0.00026592318317852914], [0.01848340593278408, -0.000265323935309425], [0.018436536192893982, -0.0002646511420607567], [0.018384581431746483, -0.0002639053564053029], [0.01832757703959942, -0.00026308707310818136], [0.01826556585729122, -0.0002621969033498317], [0.018198590725660324, -0.00026123548741452396], [0.018126701936125755, -0.00026020355289801955], [0.018049949780106544, -0.00025910179829224944], [0.01796838827431202, -0.00025793100940063596], [0.017882080748677254, -0.00025669208844192326], [0.017791083082556725, -0.00025538585032336414], [0.017695464193820953, -0.00025401325547136366], [0.017595291137695312, -0.00025257529341615736], [0.017490632832050323, -0.00025107298279181123], [0.017381567507982254, -0.00024950734223239124], [0.017268167808651924, -0.00024787953589111567], [0.01715051382780075, -0.00024619066971354187], [0.01702868938446045, -0.0002444419078528881], [0.016902778297662735, -0.00024263447267003357], [0.016772866249084473, -0.00024076964473351836], [0.016639046370983124, -0.00023884869005996734], [0.016501406207680702, -0.00023687291832175106], [0.016360042616724968, -0.00023484368284698576], [0.016215050593018532, -0.00023276236606761813], [0.016066528856754303, -0.0002306303649675101], [0.01591457426548004, -0.00022844910563435405], [0.015759291127324104, -0.00022622007236350328], [0.015600782819092274, -0.00022394470579456538], [0.015439150854945183, -0.00022162453387863934], [0.015274503268301487, -0.0002192610700149089], [0.015106947161257267, -0.0002168558567063883], [0.014936590567231178, -0.00021441042190417647], [0.01476354245096445, -0.00021192636631894857], [0.01458791270852089, -0.00020940526155754924], [0.014409814029932022, -0.00020684869377873838], [0.014229356311261654, -0.00020425827824510634], [0.014046652242541313, -0.00020163563021924347], [0.013861815445125103, -0.00019898235041182488], [0.013674957677721977, -0.00019630006863735616], [0.013486193493008614, -0.00019359040015842766], [0.01329563558101654, -0.0001908550038933754], [0.013103397563099861, -0.0001880954805528745], [0.012909593060612679, -0.00018531345995143056], [0.012714333832263947, -0.00018251058645546436], [0.012517733499407768, -0.0001796884462237358], [0.012319904752075672, -0.00017684866907075047], [0.012120959348976612, -0.00017399285570718348], [0.011921007186174393, -0.00017112260684370995], [0.011720159091055393, -0.00016823949408717453], [0.011518525891005993, -0.00016534510359633714], [0.011316214688122272, -0.0001624409924261272], [0.011113334447145462, -0.00015952868852764368], [0.010909990407526493, -0.00015660974895581603], [0.010706287808716297, -0.00015368565800599754], [0.010502331890165806, -0.00015075792907737195], [0.010298224166035652, -0.00014782803191337734], [0.01009406615048647, -0.00014489740715362132], [0.009889958426356316, -0.00014196749543771148], [0.009685997851192951, -0.00013903969374950975], [0.009482281282544136, -0.00013611539907287806], [0.009278903715312481, -0.00013319597928784788], [0.009075957350432873, -0.00013028274406678975], [0.008873534388840199, -0.00012737700308207422], [0.008671722374856472, -0.00012448006600607187], [0.008470609784126282, -0.00012159314792370424], [0.008270280435681343, -0.00011871748574776575], [0.008070819079875946, -0.00011585427273530513], [0.007872305810451508, -0.00011300467303954065], [0.00767481978982687, -0.0001101698144339025], [0.007478437386453152, -0.00010735080286394805], [0.007283233106136322, -0.00010454870061948895], [0.007089278660714626, -0.00010176454088650644], [0.006896644830703735, -9.899934229906648e-05], [0.0067053986713290215, -9.625405800761655e-05], [0.006515605840831995, -9.352963388664648e-05], [0.006327328737825155, -9.082697215490043e-05], [0.0061406283639371395, -8.81469386513345e-05], [0.005955562461167574, -8.549037738703191e-05], [0.00577218784019351, -8.285808144137263e-05], [0.005590557120740414, -8.025082206586376e-05], [0.005410721525549889, -7.766933413222432e-05], [0.005232729949057102, -7.51143234083429e-05], [0.005056628491729498, -7.258643745444715e-05], [0.00488246139138937, -7.008631655480713e-05], [0.004710270091891289, -6.76145646139048e-05], [0.0045400941744446754, -6.517173460451886e-05], [0.00437196996062994, -6.275835767155513e-05], [0.004205932375043631, -6.03749394940678e-05], [0.004042013548314571, -5.802193481940776e-05], [0.003880243981257081, -5.569977656705305e-05], [0.003720650915056467, -5.340886491467245e-05], [0.0035632599610835314, -5.114956366014667e-05], [0.003408094635233283, -4.892221113550477e-05], [0.0032551761250942945, -4.6727109292987734e-05], [0.003104523289948702, -4.45645309810061e-05], [0.002956152893602848, -4.243471994413994e-05], [0.0028100803028792143, -4.033788718516007e-05], [0.002666317857801914, -3.8274221878964454e-05], [0.0025248767342418432, -3.624387318268418e-05], [0.0023857655469328165, -3.4246972063556314e-05], [0.0022489912807941437, -3.2283620384987444e-05], [0.0021145592909306288, -3.0353885449585505e-05], [0.0019824723713099957, -2.8457818189053796e-05], [0.0018527326174080372, -2.6595438612275757e-05], [0.0017253393307328224, -2.4766744900261983e-05], [0.0016002906486392021, -2.297170794918202e-05], [0.0014775830786675215, -2.1210276827332564e-05], [0.0013572113821282983, -1.948237513715867e-05], [0.0012391688069328666, -1.7787910110200755e-05], [0.0011234473204240203, -1.6126761693158187e-05], [0.001010037143714726, -1.4498790733341593e-05], [0.0008989271591417491, -1.2903838978672866e-05], [0.0007901050848886371, -1.134172998717986e-05], [0.0006835571839474142, -9.812265489017591e-06], [0.0005792685551568866, -8.31523175293114e-06], [0.0004772229876834899, -6.850397767266259e-06], [0.0003774032520595938, -5.41751433047466e-06], [0.00027979098376818, -4.016318598587532e-06], [0.00018436678510624915, -2.6465318114787806e-06], [9.111023973673582e-05, -1.3078609981675982e-06]]}, {"name": "CX_d5_u11", "samples": [[-5.756465543527156e-05, 3.4775500807882054e-06], [-0.00011648538202280179, 7.0370219873439055e-06], [-0.00017677566211204976, 1.0679230399546213e-05], [-0.0002384483814239502, 1.4404953617486171e-05], [-0.000301515799947083, 1.8214932424598373e-05], [-0.0003659895446617156, 2.2109868950792588e-05], [-0.0004318805004004389, 2.60904216702329e-05], [-0.0004991989117115736, 3.0157205401337706e-05], [-0.0005679540918208659, 3.4310793125769123e-05], [-0.0006381548591889441, 3.855170143651776e-05], [-0.0007098088972270489, 4.2880412365775555e-05], [-0.0007829233072698116, 4.729734064312652e-05], [-0.0008575041429139674, 5.180285734240897e-05], [-0.0009335565264336765, 5.639727532980032e-05], [-0.0010110848816111684, 6.108084926381707e-05], [-0.0010900922352448106, 6.585378287127241e-05], [-0.0011705809738487005, 7.071621075738221e-05], [-0.0012525523779913783, 7.5668198405765e-05], [-0.0013360065640881658, 8.07097676442936e-05], [-0.0014209426008164883, 8.58408457133919e-05], [-0.0015073582762852311, 9.106133074965328e-05], [-0.0015952505636960268, 9.637100447434932e-05], [-0.001684615039266646, 0.00010176961950492114], [-0.001775445998646319, 0.00010725682659540325], [-0.0018677366897463799, 0.00011283221829216927], [-0.001961478963494301, 0.00011849529983010143], [-0.002056663390249014, 0.00012424551823642105], [-0.0021532794926315546, 0.00013008220412302762], [-0.0022513149306178093, 0.00013600464444607496], [-0.0023507566656917334, 0.0001420120388502255], [-0.0024515895638614893, 0.00014810347056481987], [-0.0025537977926433086, 0.0001542779937153682], [-0.0026573638897389174, 0.00016053454601205885], [-0.002762268530204892, 0.00016687196330167353], [-0.002868491690605879, 0.00017328902322333306], [-0.0029760112520307302, 0.0001797844161046669], [-0.003084803931415081, 0.00018635671585798264], [-0.00319484481588006, 0.00019300442363601178], [-0.003306108061224222, 0.00019972596783190966], [-0.003418565494939685, 0.00020651966042350978], [-0.0035321880131959915, 0.00021338372607715428], [-0.003646944649517536, 0.00022031631669960916], [-0.0037628035061061382, 0.00022731548233423382], [-0.0038797303568571806, 0.0002343791857128963], [-0.0039976900443434715, 0.00024150527315214276], [-0.004116646014153957, 0.00024869153276085854], [-0.004236559849232435, 0.00025593567988835275], [-0.004357391502708197, 0.00026323526981286705], [-0.004479100462049246, 0.00027058785781264305], [-0.004601643420755863, 0.0002779907954391092], [-0.0047249761410057545, 0.00028544149245135486], [-0.0048490529879927635, 0.0002929371257778257], [-0.0049738273955881596, 0.0003004749014507979], [-0.005099250935018063, 0.00030805187998339534], [-0.005225273314863443, 0.0003156650345772505], [-0.005351843312382698, 0.0003233113093301654], [-0.0054789092391729355, 0.0003309875028207898], [-0.005606416612863541, 0.0003386903554201126], [-0.005734310485422611, 0.00034641657839529216], [-0.005862534511834383, 0.00035416276659816504], [-0.00599103095009923, 0.00036192539846524596], [-0.0061197420582175255, 0.00036970098153688014], [-0.006248606834560633, 0.00037748587783426046], [-0.006377565208822489, 0.00038527639117091894], [-0.0065065547823905945, 0.0003930687962565571], [-0.006635512690991163, 0.00040085928048938513], [-0.006764374673366547, 0.0004086440021637827], [-0.006893076468259096, 0.0004164190322626382], [-0.007021551951766014, 0.00042418038356117904], [-0.0071497345343232155, 0.00043192406883463264], [-0.007277557160705328, 0.0004396459844429046], [-0.007404952310025692, 0.00044734205584973097], [-0.007531850133091211, 0.0004550081503111869], [-0.007658182643353939, 0.00046264001866802573], [-0.007783879525959492, 0.0004702335281763226], [-0.007908870466053486, 0.00047778437146916986], [-0.00803308468312025, 0.00048528832849115133], [-0.00815645232796669, 0.000492741062771529], [-0.008278900757431984, 0.000500138325151056], [-0.008400359191000462, 0.000507475808262825], [-0.008520755916833878, 0.0005147491465322673], [-0.008640020154416561, 0.0005219539743848145], [-0.008758078329265118, 0.0005290861008688807], [-0.008874861523509026, 0.0005361410439945757], [-0.00899029616266489, 0.0005431146128103137], [-0.009104311466217041, 0.0005500023835338652], [-0.009216836653649807, 0.0005568002234213054], [-0.009327801875770092, 0.0005635037086904049], [-0.00943713542073965, 0.0005701087065972388], [-0.009544769302010536, 0.0005766110261902213], [-0.009650633670389652, 0.0005830064183101058], [-0.009754660539329052, 0.0005892907502129674], [-0.009856780990958214, 0.0005954600055702031], [-0.009956929832696915, 0.0006015101098455489], [-0.010055039077997208, 0.0006074370467104018], [-0.010151045396924019, 0.0006132368580438197], [-0.0102448845282197, 0.0006189057603478432], [-0.010336492210626602, 0.000624439911916852], [-0.010425807908177376, 0.0006298355874605477], [-0.010512770153582096, 0.0006350890616886318], [-0.010597319342195988, 0.0006401968421414495], [-0.010679399594664574, 0.000645155378151685], [-0.010758951306343079, 0.0006499612354673445], [-0.010835922323167324, 0.000654611096251756], [-0.010910256765782833, 0.000659101759083569], [-0.010981904342770576, 0.0006634300807490945], [-0.011050814762711525, 0.0006675929762423038], [-0.01111693773418665, 0.0006715875933878124], [-0.011180229485034943, 0.0006754110800102353], [-0.0112406425178051, 0.0006790607585571706], [-0.011298134922981262, 0.0006825339514762163], [-0.011352666653692722, 0.000685828214045614], [-0.011404196731746197, 0.0006889412761665881], [-0.011452690698206425, 0.000691870809532702], [-0.011498111300170422, 0.0006946147186681628], [-0.01154042687267065, 0.0006971710827201605], [-0.011579606682062149, 0.0006995379808358848], [-0.011615622788667679, 0.0007017137249931693], [-0.011648448184132576, 0.0007036968017928302], [-0.01167806051671505, 0.0007054856978356838], [-0.011704436503350735, 0.00070707913255319], [-0.011727558448910713, 0.0007084759417921305], [-0.011747408658266068, 0.0007096750778146088], [-0.011763972230255604, 0.0007106757257133722], [-0.011777237989008427, 0.0007114771287888288], [-0.011787195689976215, 0.0007120786467567086], [-0.011793837882578373, 0.0007124799303710461], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.01179757621139288, 0.0007127057760953903], [-0.011794387362897396, 0.0007125428528524935], [-0.011788721196353436, 0.000712253269739449], [-0.011780226603150368, 0.0007118192734196782], [-0.011768910102546215, 0.0007112410385161638], [-0.011754780076444149, 0.0007105190306901932], [-0.011737847700715065, 0.0007096537738107145], [-0.011718123219907284, 0.0007086459663696587], [-0.011695623397827148, 0.0007074962486512959], [-0.011670363135635853, 0.0007062054937705398], [-0.011642360128462315, 0.0007047746330499649], [-0.011611636728048325, 0.0007032047724351287], [-0.011578214354813099, 0.0007014969596639276], [-0.011542117223143578, 0.0006996524753049016], [-0.011503370478749275, 0.0006976725999265909], [-0.01146200392395258, 0.0006955588469281793], [-0.011418045498430729, 0.0006933126715011895], [-0.011371527798473835, 0.000690935761667788], [-0.01132248342037201, 0.0006884296890348196], [-0.011270947754383087, 0.0006857963744550943], [-0.011216957122087479, 0.0006830375641584396], [-0.011160549707710743, 0.0006801552954129875], [-0.011101766489446163, 0.0006771516054868698], [-0.011040647514164448, 0.0006740285898558795], [-0.010977235622704029, 0.0006707884022034705], [-0.010911576449871063, 0.0006674333708360791], [-0.010843713767826557, 0.0006639657658524811], [-0.010773696005344391, 0.0006603880319744349], [-0.01070157065987587, 0.0006567026139236987], [-0.010627387091517448, 0.0006529120146296918], [-0.01055119652301073, 0.0006490189116448164], [-0.010473051108419895, 0.0006450258078984916], [-0.010393001139163971, 0.0006409354973584414], [-0.01031110342592001, 0.0006367507157847285], [-0.01022741012275219, 0.0006324741989374161], [-0.010141978971660137, 0.0006281088571995497], [-0.010054864920675755, 0.0006236575427465141], [-0.009966124780476093, 0.000619123165961355], [-0.009875817224383354, 0.000614508637227118], [-0.009783999994397163, 0.0006098170415498316], [-0.009690732695162296, 0.0006050512893125415], [-0.009596074000000954, 0.000600214465521276], [-0.009500083513557911, 0.0005953095969744027], [-0.009402822703123093, 0.0005903398268856108], [-0.009304351173341274, 0.000585308182053268], [-0.009204729460179806, 0.0005802177474834025], [-0.009104019030928612, 0.0005750717245973647], [-0.009002281352877617, 0.000569873140193522], [-0.008899576030671597, 0.0005646251956932247], [-0.008795966394245625, 0.0005593309761025012], [-0.008691511116921902, 0.0005539935664273798], [-0.008586272597312927, 0.0005486161098815501], [-0.008480311371386051, 0.0005432017496787012], [-0.008373687975108624, 0.0005377535708248615], [-0.00826646201312542, 0.0005322746001183987], [-0.00815869402140379, 0.000526767922565341], [-0.008050443604588509, 0.0005212366231717169], [-0.007941769436001778, 0.0005156836123205721], [-0.007832730188965797, 0.000510111975017935], [-0.007723383605480194, 0.0005045246216468513], [-0.007613787427544594, 0.0004989245207980275], [-0.007503998000174761, 0.0004933145828545094], [-0.007394072134047747, 0.0004876976599916816], [-0.007284064777195454, 0.00048207654617726803], [-0.0071740299463272095, 0.00047645403537899256], [-0.007064022123813629, 0.00047083289246074855], [-0.006954093463718891, 0.0004652158240787685], [-0.006844296585768461, 0.00045960547868162394], [-0.006734682247042656, 0.000454004475614056], [-0.0066253007389605045, 0.0004484153469093144], [-0.006516200490295887, 0.0004428405954968184], [-0.006407430395483971, 0.0004372826952021569], [-0.006299037020653486, 0.00043174406164325774], [-0.00619106600061059, 0.00042622702312655747], [-0.006083562504500151, 0.0004207338497508317], [-0.005976569838821888, 0.0004152668116148561], [-0.005870130844414234, 0.000409828033298254], [-0.00576428696513176, 0.0004044196684844792], [-0.005659077782183886, 0.0003990437544416636], [-0.005554542411118746, 0.0003937022411264479], [-0.0054507190361619, 0.0003883971075993031], [-0.005347643047571182, 0.0003831302165053785], [-0.0052453503012657166, 0.0003779033140745014], [-0.005143874790519476, 0.00037271814653649926], [-0.005043249111622572, 0.00036757643101736903], [-0.004943504463881254, 0.00036247973912395537], [-0.004844671115279198, 0.000357429584255442], [-0.0047467779368162155, 0.00035242747981101274], [-0.0046498519368469715, 0.00034747482277452946], [-0.0045539201237261295, 0.0003425729228183627], [-0.004459007177501917, 0.0003377231187187135], [-0.004365136381238699, 0.0003329265455249697], [-0.004272330552339554, 0.00032818439649417996], [-0.004180611111223698, 0.0003234977484680712], [-0.00408999715000391, 0.00031886762008070946], [-0.004000508226454258, 0.0003142949426546693], [-0.0039121611043810844, 0.0003097806475125253], [-0.003824972314760089, 0.00030532549135386944], [-0.0037389565259218216, 0.0003009303181897849], [-0.0036541277077049017, 0.0002965957683045417], [-0.0035704984329640865, 0.0002923225110862404], [-0.003488080110400915, 0.0002881111577153206], [-0.0034068827517330647, 0.00028396217385306954], [-0.003326915903016925, 0.00027987605426460505], [-0.0032481872476637363, 0.0002758532064035535], [-0.0031707037705928087, 0.0002718940086197108], [-0.0030944712925702333, 0.0002679987228475511], [-0.003019494703039527, 0.0002641676110215485], [-0.002945777727290988, 0.00026040084776468575], [-0.0028733229264616966, 0.0002566985785961151], [-0.002802132396027446, 0.0002530609199311584], [-0.0027322066016495228, 0.00024948790087364614], [-0.0026635455433279276, 0.00024597946321591735], [-0.002596148056909442, 0.0002425356360618025], [-0.0025300125125795603, 0.00023915627389214933], [-0.002465135883539915, 0.00023584124573972076], [-0.0024015146773308516, 0.00023259036242961884], [-0.0023391444701701403, 0.0002294033911311999], [-0.002278019906952977, 0.00022628006990998983], [-0.0022181349340826273, 0.00022322010772768408], [-0.002159483265131712, 0.00022022315533831716], [-0.0021020572166889906, 0.0002172888198401779], [-0.002045848872512579, 0.00021441672288347036], [-0.0019908493850380182, 0.000211606384254992], [-0.0019370497902855277, 0.00020885735284537077], [-0.0018844397272914648, 0.00020616910478565842], [-0.0018330090679228306, 0.00020354113075882196], [-0.0017827467527240515, 0.00020097284868825227], [-0.0016845355276018381, 0.00019595450430642813], [-0.0016342730959877372, 0.00019338622223585844], [-0.001582842436619103, 0.00019075823365710676], [-0.0015302324900403619, 0.00018807000014930964], [-0.0014764327788725495, 0.0001853209687396884], [-0.0014214332913979888, 0.00018251063011121005], [-0.0013652249472215772, 0.00017963851860258728], [-0.0013077990151941776, 0.00017670419765636325], [-0.0012491472298279405, 0.00017370724526699632], [-0.0011892624897882342, 0.00017064726853277534], [-0.0011281378101557493, 0.0001675239618634805], [-0.0010657674865797162, 0.00016433699056506157], [-0.0010021462803706527, 0.00016108610725495964], [-0.0009372697095386684, 0.00015777106455061585], [-0.0008711341070011258, 0.00015439170238096267], [-0.000803736736997962, 0.00015094787522684783], [-0.0007350757368840277, 0.0001474394666729495], [-0.0006651499425061047, 0.00014386643306352198], [-0.000593959295656532, 0.00014022875984665006], [-0.0005215045530349016, 0.00013652650522999465], [-0.00044778751907870173, 0.0001327597419731319], [-0.00037281090044416487, 0.0001289286301471293], [-0.0002965784806292504, 0.0001250333443749696], [-0.0002190950035583228, 0.00012107412476325408], [-0.00014036634820513427, 0.00011705129145411775], [-6.03994085395243e-05, 0.00011296517914161086], [2.0797817342099734e-05, 0.00010881620255531743], [0.00010321620356990024, 0.00010460482735652477], [0.00018684550013858825, 0.00010033157741418108], [0.00027167427469976246, 9.599703480489552e-05], [0.0003576900053303689, 9.160184708889574e-05], [0.00044487888226285577, 8.71467127581127e-05], [0.0005332259461283684, 8.263239578809589e-05], [0.0006227150443010032, 7.805972563801333e-05], [0.0007133287144824862, 7.342958997469395e-05], [0.0008050483884289861, 6.874294194858521e-05], [0.0008978541009128094, 6.40008001937531e-05], [0.0009917247807607055, 5.92042415519245e-05], [0.0010866379598155618, 5.4354415624402463e-05], [0.0011825698893517256, 4.945253022015095e-05], [0.001279495656490326, 4.4499865907710046e-05], [0.00137738895136863, 3.949775782530196e-05], [0.0014762224163860083, 3.444761750870384e-05], [0.001575967064127326, 2.9350912882364355e-05], [0.00167659274302423, 2.4209186449297704e-05], [0.0017780682537704706, 1.9024042558157817e-05], [0.0018803608836606145, 1.3797144674754236e-05], [0.0019834365230053663, 8.530229933967348e-06], [0.0020872603636235, 3.225095724701532e-06], [0.002191795501857996, -2.116396672136034e-06], [0.00229700468480587, -7.4923223110090476e-06], [0.0024028487969189882, -1.2900693036499433e-05], [0.002509287791326642, -1.833945862017572e-05], [0.002616280224174261, -2.3806509489077143e-05], [0.0027237837202847004, -2.9299671950866468e-05], [0.0028317547403275967, -3.4816719562513754e-05], [0.002940148115158081, -4.0355356759391725e-05], [0.003048918442800641, -4.591324977809563e-05], [0.003158018458634615, -5.1487986638676375e-05], [0.00326740019954741, -5.707711898139678e-05], [0.0033770145382732153, -6.267814023885876e-05], [0.003486811416223645, -6.828848563600332e-05], [0.0035967398434877396, -7.390555401798338e-05], [0.00370674766600132, -7.952668966026977e-05], [0.0038167822640389204, -8.514918590663001e-05], [0.003926789853721857, -9.077029972104356e-05], [0.004036715719848871, -9.638725168770179e-05], [0.004146505147218704, -0.00010199719690717757], [0.0042561013251543045, -0.00010759729048004374], [0.0043654474429786205, -0.00011318462202325463], [0.004474487155675888, -0.00011875626660184935], [0.004583161324262619, -0.00012430924107320607], [0.0046914117410779, -0.00012984058412257582], [0.00479917973279953, -0.0001353472616756335], [0.004906405694782734, -0.00014082623238209635], [0.005013029091060162, -0.00014627442578785121], [0.005118990316987038, -0.00015168878599070013], [0.005224228836596012, -0.00015706621343269944], [0.005328684113919735, -0.00016240360855590552], [0.005432294216006994, -0.00016769784269854426], [0.005534999072551727, -0.0001729458017507568], [0.0056367372162640095, -0.00017814435705076903], [0.005737447179853916, -0.00018329040904063731], [0.005837068893015385, -0.00018838081450667232], [0.005935540422797203, -0.00019341245933901519], [0.006032801698893309, -0.0001983822585316375], [0.006128791254013777, -0.0002032871125265956], [0.006223450414836407, -0.00020812393631786108], [0.006316717714071274, -0.00021288968855515122], [0.006408534944057465, -0.00021758131333626807], [0.006498842500150204, -0.00022219579841475934], [0.006587582174688578, -0.00022673018975183368], [0.006674696691334248, -0.0002311815187567845], [0.006760128308087587, -0.0002355468604946509], [0.00684382114559412, -0.0002398233482381329], [0.006925719324499369, -0.00024400814436376095], [0.007005768362432718, -0.0002480984549038112], [0.0070839147083461285, -0.00025209152954630554], [0.007160105276852846, -0.0002559846907388419], [0.00723428837954998, -0.00025977526092901826], [0.007306413725018501, -0.0002634607080835849], [0.007376431953161955, -0.0002670384419616312], [0.007444294169545174, -0.00027050604694522917], [0.007509953808039427, -0.0002738610783126205], [0.007573365233838558, -0.00027710123686119914], [0.007634484209120274, -0.00028022428159601986], [0.007693267893046141, -0.0002832279715221375], [0.007749674841761589, -0.0002861102402675897], [0.007803665474057198, -0.00028886902146041393], [0.00785520114004612, -0.00029150236514396966], [0.007904245518147945, -0.0002940084086731076], [0.00795076321810484, -0.0002963853476103395], [0.00799472164362669, -0.00029863149393349886], [0.008036088198423386, -0.00030074527603574097], [0.008074834942817688, -0.00030272509320639074], [0.00811093207448721, -0.0003045695775654167], [0.008144354447722435, -0.00030627739033661783], [0.008175078779459, -0.00030784730915911496], [0.008203080855309963, -0.00030927814077585936], [0.008228341117501259, -0.00031056886655278504], [0.008250840939581394, -0.00031171858427114785], [0.008270565420389175, -0.0003127264208160341], [0.00828749779611826, -0.00031359167769551277], [0.008301627822220325, -0.00031431365641765296], [0.008312944322824478, -0.00031489189132116735], [0.008321438916027546, -0.0003153259458485991], [0.008327105082571507, -0.0003156154998578131], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00833029393106699, -0.0003157784231007099], [0.00832765456289053, -0.00031567836413159966], [0.008322964422404766, -0.0003155005688313395], [0.00831593293696642, -0.0003152340359520167], [0.008306565694510937, -0.00031487896922044456], [0.008294870145618916, -0.0003144356014672667], [0.008280853740870953, -0.000313904311042279], [0.008264527656137943, -0.00031328541808761656], [0.008245903998613358, -0.0003125794173683971], [0.008224994875490665, -0.00031178680364973843], [0.008201816119253635, -0.0003109081881120801], [0.008176385425031185, -0.0003099441819358617], [0.008148720487952232, -0.00030889545450918376], [0.008118840865790844, -0.00030776282073929906], [0.00808676891028881, -0.0003065470664296299], [0.008052527904510498, -0.0003052490937989205], [0.008016142062842846, -0.000303869805065915], [0.007977637462317944, -0.0003024101897608489], [0.00793704204261303, -0.0003008713247254491], [0.007894383743405342, -0.0002992542868014425], [0.007849694229662418, -0.00029756021103821695], [0.007803003769367933, -0.0002957903197966516], [0.00775434635579586, -0.00029394583543762565], [0.007703755982220173, -0.0002920280967373401], [0.0076512680388987064, -0.0002900384133681655], [0.007596918847411871, -0.00028797821141779423], [0.007540746591985226, -0.00028584885876625776], [0.0074827903881669044, -0.0002836518979165703], [0.007423089351505041, -0.00028138881316408515], [0.007361685391515493, -0.0002790611470118165], [0.007298619486391544, -0.0002766705001704395], [0.007233934942632914, -0.0002742184733506292], [0.007167675066739321, -0.0002717067545745522], [0.007099885027855635, -0.0002691370318643749], [0.007030609529465437, -0.00026651096413843334], [0.006959894206374884, -0.0002638303558342159], [0.00688778655603528, -0.0002610969531815499], [0.0068143331445753574, -0.00025831256061792374], [0.006739582400768995, -0.00025547895347699523], [0.006663581822067499, -0.00025259796530008316], [0.006586380768567324, -0.0002496714878361672], [0.006508028134703636, -0.00024670138373039663], [0.0064285737462341785, -0.00024368947197217494], [0.006348067428916693, -0.00024063768796622753], [0.006266558542847633, -0.00023754792346153408], [0.006184098310768604, -0.00023442207020707428], [0.006100736558437347, -0.0002312620636075735], [0.006016524042934179, -0.00022806980996392667], [0.0059315115213394165, -0.0002248472155770287], [0.005845749285072088, -0.00022159621585160494], [0.005759288091212511, -0.0002183187025366351], [0.005672178231179714, -0.00021501661103684455], [0.005584470462054014, -0.00021169183310121298], [0.005496214143931866, -0.0002083462750306353], [0.005407459102571011, -0.0002049818285740912], [0.005318255629390478, -0.00020160037092864513], [0.005228652618825436, -0.00019820377929136157], [0.00513869896531105, -0.00019479387265164405], [0.0050484430976212025, -0.00019137252820655704], [0.0049579329788684845, -0.0001879415358416736], [0.004867216106504202, -0.00018450271454639733], [0.004776339512318373, -0.00018105782510247082], [0.004685349762439728, -0.00017760865739546716], [0.004594292026013136, -0.00017415692855138332], [0.004503212403506041, -0.000170704341144301], [0.004412154667079449, -0.00016725259774830192], [0.0043211630545556545, -0.0001638033427298069], [0.004230279941111803, -0.00016035822045523673], [0.004139548167586327, -0.00015691883163526654], [0.004049008712172508, -0.00015348673332482576], [0.003958702553063631, -0.00015006348257884383], [0.00386866950429976, -0.00014665056369267404], [0.003778948215767741, -0.0001432494755135849], [0.0036895766388624907, -0.00013986165868118405], [0.003600592026486993, -0.00013648849562741816], [0.0035120302345603704, -0.00013313136878423393], [0.0034239268861711025, -0.00012979160237591714], [0.003336315741762519, -0.00012647050607483834], [0.003249230096116662, -0.00012316933134570718], [0.0031627025455236435, -0.00011988930782536045], [0.003076763590797782, -0.00011663160694297403], [0.0029914439655840397, -0.00011339737829985097], [0.0029067727737128735, -0.00011018772056559101], [0.002822777722030878, -0.00010700369603000581], [0.002739486051723361, -0.00010384634515503421], [0.002656923606991768, -0.00010071662836708128], [0.0025751155335456133, -9.761551336850971e-05], [0.00249408558011055, -9.454388782614842e-05], [0.002413856564089656, -9.150262485491112e-05], [0.0023344499059021473, -8.849254663800821e-05], [0.0022558867931365967, -8.551443897886202e-05], [0.0021781865507364273, -8.256903674919158e-05], [0.0021013678051531315, -7.965704571688548e-05], [0.0020254480186849833, -7.677914254600182e-05], [0.001950443722307682, -7.393593114102259e-05], [0.001876370282843709, -7.112801540642977e-05], [0.0018032421357929707, -6.835592648712918e-05], [0.0017310726689174771, -6.562018097611144e-05], [0.001659874222241342, -6.292124453466386e-05], [0.0015896583208814263, -6.0259553720243275e-05], [0.0015204352093860507, -5.763549779658206e-05], [0.001452214433811605, -5.504943692358211e-05], [0.0013850044924765825, -5.2501691243378446e-05], [0.0013188128359615803, -4.999255179427564e-05], [0.0012536462163552642, -4.752226595883258e-05], [0.0011895103380084038, -4.509104837779887e-05], [0.0011264098575338721, -4.269908458809368e-05], [0.001064348965883255, -4.0346527384826913e-05], [0.001003330573439598, -3.803348954534158e-05], [0.0009433571249246597, -3.576006201910786e-05], [0.000884429959114641, -3.352629573782906e-05], [0.0008265497745014727, -3.133221616735682e-05], [0.0007697164546698332, -2.9177825126680546e-05], [0.0007139291847124696, -2.706308259803336e-05], [0.0006591862766072154, -2.4987930373754352e-05], [0.000605485518462956, -2.2952282961341552e-05], [0.0005528238252736628, -2.0956023945473135e-05], [0.0005011975881643593, -1.8999016901943833e-05], [0.00045060249976813793, -1.7081096302717924e-05], [0.00040103361243382096, -1.5202076610876247e-05], [0.00035248539643362164, -1.3361747733142693e-05], [0.0003049517690669745, -1.155987865786301e-05], [0.0002584260073490441, -9.796215636015404e-06], [0.0002129009662894532, -8.070486728684045e-06], [0.00016836891882121563, -6.3824004428170156e-06], [0.00012482167221605778, -4.7316448217316065e-06], [8.225057536037639e-05, -3.117891992587829e-06], [4.064652603119612e-05, -1.5407974842673866e-06]]}, {"name": "QId_d0", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d1", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d2", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d3", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d4", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d5", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d6", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}], "cmd_def": [{"name": "cx", "qubits": [0, 1], "sequence": [{"name": "fc", "t0": 1536, "ch": "d0", "phase": -1.8750369474434427}, {"name": "CX_d1_u0", "t0": 0, "ch": "d1"}, {"name": "fc", "t0": 1536, "ch": "d1", "phase": -0.027845207158829738}, {"name": "parametric_pulse", "t0": 0, "ch": "u0", "label": "CX_u0", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.14297109472488193, -0.17212078701403205], "duration": 1536, "sigma": 64, "width": 1280}}, {"name": "fc", "t0": 1536, "ch": "u0", "phase": -0.027845207158829738}, {"name": "fc", "t0": 1536, "ch": "u1", "phase": -1.8750369474434427}, {"name": "fc", "t0": 1536, "ch": "u4", "phase": -0.027845207158829738}, {"name": "fc", "t0": 1536, "ch": "u5", "phase": -0.027845207158829738}]}, {"name": "cx", "qubits": [1, 0], "sequence": [{"name": "fc", "t0": 0, "ch": "d0", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d0", "label": "Y90p_d0", "pulse_shape": "drag", "parameters": {"amp": [0.0006012669861576026, 0.08946691149801805], "beta": 0.25210261654843047, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 1696, "ch": "d0", "phase": -1.8750369474434427}, {"name": "fc", "t0": 1696, "ch": "d0", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1696, "ch": "d0", "label": "Y90p_d0", "pulse_shape": "drag", "parameters": {"amp": [0.0006012669861576026, 0.08946691149801805], "beta": 0.25210261654843047, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d1", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "Y90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.00017242693036170322, 0.08609165698258295], "beta": -0.6816138281091626, "duration": 160, "sigma": 40}}, {"name": "CX_d1_u0", "t0": 160, "ch": "d1"}, {"name": "fc", "t0": 1696, "ch": "d1", "phase": -0.027845207158829738}, {"name": "fc", "t0": 1696, "ch": "d1", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1696, "ch": "d1", "label": "Y90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.00017242693036170322, 0.08609165698258295], "beta": -0.6816138281091626, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u0", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u0", "label": "CX_u0", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.14297109472488193, -0.17212078701403205], "duration": 1536, "sigma": 64, "width": 1280}}, {"name": "fc", "t0": 1696, "ch": "u0", "phase": -0.027845207158829738}, {"name": "fc", "t0": 1696, "ch": "u0", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u1", "phase": -3.141592653589793}, {"name": "fc", "t0": 1696, "ch": "u1", "phase": -1.8750369474434427}, {"name": "fc", "t0": 1696, "ch": "u1", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u4", "phase": -3.141592653589793}, {"name": "fc", "t0": 1696, "ch": "u4", "phase": -0.027845207158829738}, {"name": "fc", "t0": 1696, "ch": "u4", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u5", "phase": -3.141592653589793}, {"name": "fc", "t0": 1696, "ch": "u5", "phase": -0.027845207158829738}, {"name": "fc", "t0": 1696, "ch": "u5", "phase": -3.141592653589793}]}, {"name": "cx", "qubits": [1, 2], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "Y90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.00017242693036170322, 0.08609165698258295], "beta": -0.6816138281091626, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d1", "label": "CR90p_d1_u4", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.0862436893436641, -0.0032901415303890026], "duration": 320, "sigma": 64, "width": 64}}, {"name": "parametric_pulse", "t0": 640, "ch": "d1", "label": "CR90m_d1_u4", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.0862436893436641, 0.003290141530389013], "duration": 320, "sigma": 64, "width": 64}}, {"name": "fc", "t0": 960, "ch": "d1", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 960, "ch": "d1", "label": "X90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.08609165698258295, -0.00017242693036170073], "beta": -0.6816138281091626, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d2", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "X90p_d2", "pulse_shape": "drag", "parameters": {"amp": [0.09671414353299662, 0.001892418687104633], "beta": -1.7521753200289991, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 480, "ch": "d2", "label": "Xp_d2", "pulse_shape": "drag", "parameters": {"amp": [0.19246634180374358, 0.0], "beta": -1.747165110510683, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 960, "ch": "d2", "label": "Y90m_d2", "pulse_shape": "drag", "parameters": {"amp": [0.0018924186871046263, -0.09671414353299662], "beta": -1.7521753200289991, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u0", "phase": -3.141592653589793}, {"name": "fc", "t0": 960, "ch": "u0", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u2", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u4", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u4", "label": "CR90p_u4", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.8253860473271264, 0.10811216727128682], "duration": 320, "sigma": 64, "width": 64}}, {"name": "parametric_pulse", "t0": 640, "ch": "u4", "label": "CR90m_u4", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.8253860473271264, -0.10811216727128692], "duration": 320, "sigma": 64, "width": 64}}, {"name": "fc", "t0": 960, "ch": "u4", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u5", "phase": -3.141592653589793}, {"name": "fc", "t0": 960, "ch": "u5", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [1, 3], "sequence": [{"name": "fc", "t0": 1184, "ch": "d1", "phase": 2.076766052335569}, {"name": "CX_d3_u3", "t0": 0, "ch": "d3"}, {"name": "fc", "t0": 1184, "ch": "d3", "phase": -0.027196709087550414}, {"name": "fc", "t0": 1184, "ch": "u0", "phase": 2.076766052335569}, {"name": "parametric_pulse", "t0": 0, "ch": "u3", "label": "CX_u3", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.17142256125188243, -0.07353323702846441], "duration": 1184, "sigma": 64, "width": 928}}, {"name": "fc", "t0": 1184, "ch": "u3", "phase": -0.027196709087550414}, {"name": "fc", "t0": 1184, "ch": "u4", "phase": 2.076766052335569}, {"name": "fc", "t0": 1184, "ch": "u5", "phase": 2.076766052335569}, {"name": "fc", "t0": 1184, "ch": "u8", "phase": -0.027196709087550414}]}, {"name": "cx", "qubits": [2, 1], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "X90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.08609165698258295, -0.00017242693036170073], "beta": -0.6816138281091626, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d1", "label": "CR90p_d1_u4", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.0862436893436641, -0.0032901415303890026], "duration": 320, "sigma": 64, "width": 64}}, {"name": "parametric_pulse", "t0": 640, "ch": "d1", "label": "CR90m_d1_u4", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.0862436893436641, 0.003290141530389013], "duration": 320, "sigma": 64, "width": 64}}, {"name": "fc", "t0": 0, "ch": "d2", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "Ym_d2", "pulse_shape": "drag", "parameters": {"amp": [-3.535549341503325e-17, -0.19246634180374358], "beta": -1.747165110510683, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 480, "ch": "d2", "label": "Xp_d2", "pulse_shape": "drag", "parameters": {"amp": [0.19246634180374358, 0.0], "beta": -1.747165110510683, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u2", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u4", "label": "CR90p_u4", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.8253860473271264, 0.10811216727128682], "duration": 320, "sigma": 64, "width": 64}}, {"name": "parametric_pulse", "t0": 640, "ch": "u4", "label": "CR90m_u4", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.8253860473271264, -0.10811216727128692], "duration": 320, "sigma": 64, "width": 64}}]}, {"name": "cx", "qubits": [3, 1], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "Y90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.00017242693036170322, 0.08609165698258295], "beta": -0.6816138281091626, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 1344, "ch": "d1", "phase": 2.076766052335569}, {"name": "fc", "t0": 1344, "ch": "d1", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1344, "ch": "d1", "label": "Y90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.00017242693036170322, 0.08609165698258295], "beta": -0.6816138281091626, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d3", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "Y90p_d3", "pulse_shape": "drag", "parameters": {"amp": [0.0001670663099105773, 0.09653082608263493], "beta": -0.4845695954465901, "duration": 160, "sigma": 40}}, {"name": "CX_d3_u3", "t0": 160, "ch": "d3"}, {"name": "fc", "t0": 1344, "ch": "d3", "phase": -0.027196709087550414}, {"name": "fc", "t0": 1344, "ch": "d3", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1344, "ch": "d3", "label": "Y90p_d3", "pulse_shape": "drag", "parameters": {"amp": [0.0001670663099105773, 0.09653082608263493], "beta": -0.4845695954465901, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u0", "phase": -3.141592653589793}, {"name": "fc", "t0": 1344, "ch": "u0", "phase": 2.076766052335569}, {"name": "fc", "t0": 1344, "ch": "u0", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u3", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u3", "label": "CX_u3", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.17142256125188243, -0.07353323702846441], "duration": 1184, "sigma": 64, "width": 928}}, {"name": "fc", "t0": 1344, "ch": "u3", "phase": -0.027196709087550414}, {"name": "fc", "t0": 1344, "ch": "u3", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u4", "phase": -3.141592653589793}, {"name": "fc", "t0": 1344, "ch": "u4", "phase": 2.076766052335569}, {"name": "fc", "t0": 1344, "ch": "u4", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u5", "phase": -3.141592653589793}, {"name": "fc", "t0": 1344, "ch": "u5", "phase": 2.076766052335569}, {"name": "fc", "t0": 1344, "ch": "u5", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u8", "phase": -3.141592653589793}, {"name": "fc", "t0": 1344, "ch": "u8", "phase": -0.027196709087550414}, {"name": "fc", "t0": 1344, "ch": "u8", "phase": -3.141592653589793}]}, {"name": "cx", "qubits": [3, 5], "sequence": [{"name": "fc", "t0": 0, "ch": "d3", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "Y90p_d3", "pulse_shape": "drag", "parameters": {"amp": [0.0001670663099105773, 0.09653082608263493], "beta": -0.4845695954465901, "duration": 160, "sigma": 40}}, {"name": "CX_d3_u8", "t0": 160, "ch": "d3"}, {"name": "fc", "t0": 912, "ch": "d3", "phase": 0.09040667315521438}, {"name": "fc", "t0": 912, "ch": "d3", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 912, "ch": "d3", "label": "Y90p_d3", "pulse_shape": "drag", "parameters": {"amp": [0.0001670663099105773, 0.09653082608263493], "beta": -0.4845695954465901, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d5", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "Y90p_d5", "pulse_shape": "drag", "parameters": {"amp": [0.002301628241176777, 0.09351282785575576], "beta": 2.304928713275625, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 912, "ch": "d5", "phase": 2.214870709523857}, {"name": "fc", "t0": 912, "ch": "d5", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 912, "ch": "d5", "label": "Y90p_d5", "pulse_shape": "drag", "parameters": {"amp": [0.002301628241176777, 0.09351282785575576], "beta": 2.304928713275625, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u11", "phase": -3.141592653589793}, {"name": "fc", "t0": 912, "ch": "u11", "phase": 2.214870709523857}, {"name": "fc", "t0": 912, "ch": "u11", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u3", "phase": -3.141592653589793}, {"name": "fc", "t0": 912, "ch": "u3", "phase": 0.09040667315521438}, {"name": "fc", "t0": 912, "ch": "u3", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u6", "phase": -3.141592653589793}, {"name": "fc", "t0": 912, "ch": "u6", "phase": 2.214870709523857}, {"name": "fc", "t0": 912, "ch": "u6", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u7", "phase": -3.141592653589793}, {"name": "fc", "t0": 912, "ch": "u7", "phase": 2.214870709523857}, {"name": "fc", "t0": 912, "ch": "u7", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u8", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u8", "label": "CX_u8", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.10836859489818579, -0.17727820486214946], "duration": 752, "sigma": 64, "width": 496}}, {"name": "fc", "t0": 912, "ch": "u8", "phase": 0.09040667315521438}, {"name": "fc", "t0": 912, "ch": "u8", "phase": -3.141592653589793}]}, {"name": "cx", "qubits": [4, 5], "sequence": [{"name": "fc", "t0": 0, "ch": "d4", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "Ym_d4", "pulse_shape": "drag", "parameters": {"amp": [-3.598745310579333e-17, -0.19590657012753498], "beta": -0.9666494187533101, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 688, "ch": "d4", "label": "Xp_d4", "pulse_shape": "drag", "parameters": {"amp": [0.19590657012753498, 0.0], "beta": -0.9666494187533101, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "X90p_d5", "pulse_shape": "drag", "parameters": {"amp": [0.09351282785575576, -0.002301628241176761], "beta": 2.304928713275625, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d5", "label": "CR90p_d5_u7", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.042042518042435424, -0.0033167259899327456], "duration": 528, "sigma": 64, "width": 272}}, {"name": "parametric_pulse", "t0": 848, "ch": "d5", "label": "CR90m_d5_u7", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.042042518042435424, 0.0033167259899327508], "duration": 528, "sigma": 64, "width": 272}}, {"name": "parametric_pulse", "t0": 160, "ch": "u7", "label": "CR90p_u7", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.6061709832131271, 0.3798162094852223], "duration": 528, "sigma": 64, "width": 272}}, {"name": "parametric_pulse", "t0": 848, "ch": "u7", "label": "CR90m_u7", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.6061709832131271, -0.37981620948522227], "duration": 528, "sigma": 64, "width": 272}}, {"name": "fc", "t0": 0, "ch": "u9", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [5, 3], "sequence": [{"name": "CX_d3_u8", "t0": 0, "ch": "d3"}, {"name": "fc", "t0": 752, "ch": "d3", "phase": 0.09040667315521438}, {"name": "fc", "t0": 752, "ch": "d5", "phase": 2.214870709523857}, {"name": "fc", "t0": 752, "ch": "u11", "phase": 2.214870709523857}, {"name": "fc", "t0": 752, "ch": "u3", "phase": 0.09040667315521438}, {"name": "fc", "t0": 752, "ch": "u6", "phase": 2.214870709523857}, {"name": "fc", "t0": 752, "ch": "u7", "phase": 2.214870709523857}, {"name": "parametric_pulse", "t0": 0, "ch": "u8", "label": "CX_u8", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.10836859489818579, -0.17727820486214946], "duration": 752, "sigma": 64, "width": 496}}, {"name": "fc", "t0": 752, "ch": "u8", "phase": 0.09040667315521438}]}, {"name": "cx", "qubits": [5, 4], "sequence": [{"name": "fc", "t0": 0, "ch": "d4", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "X90p_d4", "pulse_shape": "drag", "parameters": {"amp": [0.09808602148580131, 0.00022049906309917452], "beta": -1.171101058049454, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 688, "ch": "d4", "label": "Xp_d4", "pulse_shape": "drag", "parameters": {"amp": [0.19590657012753498, 0.0], "beta": -0.9666494187533101, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1376, "ch": "d4", "label": "Y90m_d4", "pulse_shape": "drag", "parameters": {"amp": [0.00022049906309919222, -0.09808602148580131], "beta": -1.171101058049454, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d5", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "Y90p_d5", "pulse_shape": "drag", "parameters": {"amp": [0.002301628241176777, 0.09351282785575576], "beta": 2.304928713275625, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d5", "label": "CR90p_d5_u7", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.042042518042435424, -0.0033167259899327456], "duration": 528, "sigma": 64, "width": 272}}, {"name": "parametric_pulse", "t0": 848, "ch": "d5", "label": "CR90m_d5_u7", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.042042518042435424, 0.0033167259899327508], "duration": 528, "sigma": 64, "width": 272}}, {"name": "fc", "t0": 1376, "ch": "d5", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1376, "ch": "d5", "label": "X90p_d5", "pulse_shape": "drag", "parameters": {"amp": [0.09351282785575576, -0.002301628241176761], "beta": 2.304928713275625, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u11", "phase": -3.141592653589793}, {"name": "fc", "t0": 1376, "ch": "u11", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u6", "phase": -3.141592653589793}, {"name": "fc", "t0": 1376, "ch": "u6", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u7", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u7", "label": "CR90p_u7", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.6061709832131271, 0.3798162094852223], "duration": 528, "sigma": 64, "width": 272}}, {"name": "parametric_pulse", "t0": 848, "ch": "u7", "label": "CR90m_u7", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.6061709832131271, -0.37981620948522227], "duration": 528, "sigma": 64, "width": 272}}, {"name": "fc", "t0": 1376, "ch": "u7", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u9", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [5, 6], "sequence": [{"name": "fc", "t0": 0, "ch": "d5", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "Y90p_d5", "pulse_shape": "drag", "parameters": {"amp": [0.002301628241176777, 0.09351282785575576], "beta": 2.304928713275625, "duration": 160, "sigma": 40}}, {"name": "CX_d5_u11", "t0": 160, "ch": "d5"}, {"name": "fc", "t0": 1664, "ch": "d5", "phase": 0.076686974024697}, {"name": "fc", "t0": 1664, "ch": "d5", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1664, "ch": "d5", "label": "Y90p_d5", "pulse_shape": "drag", "parameters": {"amp": [0.002301628241176777, 0.09351282785575576], "beta": 2.304928713275625, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d6", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d6", "label": "Y90p_d6", "pulse_shape": "drag", "parameters": {"amp": [0.001992355232234488, 0.07967098932798254], "beta": 3.854894407786853, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 1664, "ch": "d6", "phase": -1.4146936998119433}, {"name": "fc", "t0": 1664, "ch": "d6", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 1664, "ch": "d6", "label": "Y90p_d6", "pulse_shape": "drag", "parameters": {"amp": [0.001992355232234488, 0.07967098932798254], "beta": 3.854894407786853, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u10", "phase": -3.141592653589793}, {"name": "fc", "t0": 1664, "ch": "u10", "phase": -1.4146936998119433}, {"name": "fc", "t0": 1664, "ch": "u10", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u11", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u11", "label": "CX_u11", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.165388980791369, -0.1887379038133816], "duration": 1504, "sigma": 64, "width": 1248}}, {"name": "fc", "t0": 1664, "ch": "u11", "phase": 0.076686974024697}, {"name": "fc", "t0": 1664, "ch": "u11", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u6", "phase": -3.141592653589793}, {"name": "fc", "t0": 1664, "ch": "u6", "phase": 0.076686974024697}, {"name": "fc", "t0": 1664, "ch": "u6", "phase": -3.141592653589793}, {"name": "fc", "t0": 0, "ch": "u7", "phase": -3.141592653589793}, {"name": "fc", "t0": 1664, "ch": "u7", "phase": 0.076686974024697}, {"name": "fc", "t0": 1664, "ch": "u7", "phase": -3.141592653589793}]}, {"name": "cx", "qubits": [6, 5], "sequence": [{"name": "CX_d5_u11", "t0": 0, "ch": "d5"}, {"name": "fc", "t0": 1504, "ch": "d5", "phase": 0.076686974024697}, {"name": "fc", "t0": 1504, "ch": "d6", "phase": -1.4146936998119433}, {"name": "fc", "t0": 1504, "ch": "u10", "phase": -1.4146936998119433}, {"name": "parametric_pulse", "t0": 0, "ch": "u11", "label": "CX_u11", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.165388980791369, -0.1887379038133816], "duration": 1504, "sigma": 64, "width": 1248}}, {"name": "fc", "t0": 1504, "ch": "u11", "phase": 0.076686974024697}, {"name": "fc", "t0": 1504, "ch": "u6", "phase": 0.076686974024697}, {"name": "fc", "t0": 1504, "ch": "u7", "phase": 0.076686974024697}]}, {"name": "id", "qubits": [0], "sequence": [{"name": "QId_d0", "t0": 0, "ch": "d0"}]}, {"name": "id", "qubits": [1], "sequence": [{"name": "QId_d1", "t0": 0, "ch": "d1"}]}, {"name": "id", "qubits": [2], "sequence": [{"name": "QId_d2", "t0": 0, "ch": "d2"}]}, {"name": "id", "qubits": [3], "sequence": [{"name": "QId_d3", "t0": 0, "ch": "d3"}]}, {"name": "id", "qubits": [4], "sequence": [{"name": "QId_d4", "t0": 0, "ch": "d4"}]}, {"name": "id", "qubits": [5], "sequence": [{"name": "QId_d5", "t0": 0, "ch": "d5"}]}, {"name": "id", "qubits": [6], "sequence": [{"name": "QId_d6", "t0": 0, "ch": "d6"}]}, {"name": "measure", "qubits": [0], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m0", "label": "M_m0", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.18727804370820855, 0.165610791752308], "duration": 2240, "sigma": 64, "width": 1984}}, {"name": "delay", "t0": 2240, "ch": "m0", "duration": 1856}, {"name": "acquire", "t0": 0, "duration": 2240, "qubits": [0, 1, 2, 3, 4, 5, 6], "memory_slot": [0, 1, 2, 3, 4, 5, 6]}]}, {"name": "measure", "qubits": [0, 1, 2, 3, 4, 5, 6], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m0", "label": "M_m0", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.18727804370820855, 0.165610791752308], "duration": 2240, "sigma": 64, "width": 1984}}, {"name": "delay", "t0": 2240, "ch": "m0", "duration": 1856}, {"name": "parametric_pulse", "t0": 0, "ch": "m1", "label": "M_m1", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.3499997930266485, -0.0003806327668397871], "duration": 2240, "sigma": 64, "width": 1984}}, {"name": "delay", "t0": 2240, "ch": "m1", "duration": 1856}, {"name": "parametric_pulse", "t0": 0, "ch": "m2", "label": "M_m2", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.11452767199060827, -0.27727858256347826], "duration": 2240, "sigma": 64, "width": 1984}}, {"name": "delay", "t0": 2240, "ch": "m2", "duration": 1856}, {"name": "parametric_pulse", "t0": 0, "ch": "m3", "label": "M_m3", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.15106528828492172, -0.2475465182049497], "duration": 2240, "sigma": 64, "width": 1984}}, {"name": "delay", "t0": 2240, "ch": "m3", "duration": 1856}, {"name": "parametric_pulse", "t0": 0, "ch": "m4", "label": "M_m4", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.12190343658814644, -0.4601255830183753], "duration": 2240, "sigma": 64, "width": 1984}}, {"name": "delay", "t0": 2240, "ch": "m4", "duration": 1856}, {"name": "parametric_pulse", "t0": 0, "ch": "m5", "label": "M_m5", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.3804085418453475, 0.22110934238764424], "duration": 2240, "sigma": 64, "width": 1984}}, {"name": "delay", "t0": 2240, "ch": "m5", "duration": 1856}, {"name": "parametric_pulse", "t0": 0, "ch": "m6", "label": "M_m6", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.09112903361820612, -0.4671953544630039], "duration": 2240, "sigma": 64, "width": 1984}}, {"name": "delay", "t0": 2240, "ch": "m6", "duration": 1856}, {"name": "acquire", "t0": 0, "duration": 2240, "qubits": [0, 1, 2, 3, 4, 5, 6], "memory_slot": [0, 1, 2, 3, 4, 5, 6]}]}, {"name": "measure", "qubits": [1], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m1", "label": "M_m1", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.3499997930266485, -0.0003806327668397871], "duration": 2240, "sigma": 64, "width": 1984}}, {"name": "delay", "t0": 2240, "ch": "m1", "duration": 1856}, {"name": "acquire", "t0": 0, "duration": 2240, "qubits": [0, 1, 2, 3, 4, 5, 6], "memory_slot": [0, 1, 2, 3, 4, 5, 6]}]}, {"name": "measure", "qubits": [2], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m2", "label": "M_m2", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.11452767199060827, -0.27727858256347826], "duration": 2240, "sigma": 64, "width": 1984}}, {"name": "delay", "t0": 2240, "ch": "m2", "duration": 1856}, {"name": "acquire", "t0": 0, "duration": 2240, "qubits": [0, 1, 2, 3, 4, 5, 6], "memory_slot": [0, 1, 2, 3, 4, 5, 6]}]}, {"name": "measure", "qubits": [3], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m3", "label": "M_m3", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.15106528828492172, -0.2475465182049497], "duration": 2240, "sigma": 64, "width": 1984}}, {"name": "delay", "t0": 2240, "ch": "m3", "duration": 1856}, {"name": "acquire", "t0": 0, "duration": 2240, "qubits": [0, 1, 2, 3, 4, 5, 6], "memory_slot": [0, 1, 2, 3, 4, 5, 6]}]}, {"name": "measure", "qubits": [4], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m4", "label": "M_m4", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.12190343658814644, -0.4601255830183753], "duration": 2240, "sigma": 64, "width": 1984}}, {"name": "delay", "t0": 2240, "ch": "m4", "duration": 1856}, {"name": "acquire", "t0": 0, "duration": 2240, "qubits": [0, 1, 2, 3, 4, 5, 6], "memory_slot": [0, 1, 2, 3, 4, 5, 6]}]}, {"name": "measure", "qubits": [5], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m5", "label": "M_m5", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.3804085418453475, 0.22110934238764424], "duration": 2240, "sigma": 64, "width": 1984}}, {"name": "delay", "t0": 2240, "ch": "m5", "duration": 1856}, {"name": "acquire", "t0": 0, "duration": 2240, "qubits": [0, 1, 2, 3, 4, 5, 6], "memory_slot": [0, 1, 2, 3, 4, 5, 6]}]}, {"name": "measure", "qubits": [6], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m6", "label": "M_m6", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.09112903361820612, -0.4671953544630039], "duration": 2240, "sigma": 64, "width": 1984}}, {"name": "delay", "t0": 2240, "ch": "m6", "duration": 1856}, {"name": "acquire", "t0": 0, "duration": 2240, "qubits": [0, 1, 2, 3, 4, 5, 6], "memory_slot": [0, 1, 2, 3, 4, 5, 6]}]}, {"name": "rz", "qubits": [0], "sequence": [{"name": "fc", "t0": 0, "ch": "d0", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u1", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [1], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u0", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u4", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u5", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [2], "sequence": [{"name": "fc", "t0": 0, "ch": "d2", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u2", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [3], "sequence": [{"name": "fc", "t0": 0, "ch": "d3", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u3", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u8", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [4], "sequence": [{"name": "fc", "t0": 0, "ch": "d4", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u9", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [5], "sequence": [{"name": "fc", "t0": 0, "ch": "d5", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u11", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u6", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u7", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [6], "sequence": [{"name": "fc", "t0": 0, "ch": "d6", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u10", "phase": "-(P0)"}]}, {"name": "sx", "qubits": [0], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d0", "label": "X90p_d0", "pulse_shape": "drag", "parameters": {"amp": [0.08946691149801805, -0.0006012669861576055], "beta": 0.25210261654843047, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [1], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "X90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.08609165698258295, -0.00017242693036170073], "beta": -0.6816138281091626, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [2], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "X90p_d2", "pulse_shape": "drag", "parameters": {"amp": [0.09671414353299662, 0.001892418687104633], "beta": -1.7521753200289991, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [3], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "X90p_d3", "pulse_shape": "drag", "parameters": {"amp": [0.09653082608263493, -0.00016706630991058166], "beta": -0.4845695954465901, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [4], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "X90p_d4", "pulse_shape": "drag", "parameters": {"amp": [0.09808602148580131, 0.00022049906309917452], "beta": -1.171101058049454, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [5], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "X90p_d5", "pulse_shape": "drag", "parameters": {"amp": [0.09351282785575576, -0.002301628241176761], "beta": 2.304928713275625, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [6], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d6", "label": "X90p_d6", "pulse_shape": "drag", "parameters": {"amp": [0.07967098932798254, -0.001992355232234487], "beta": 3.854894407786853, "duration": 160, "sigma": 40}}]}, {"name": "u1", "qubits": [0], "sequence": [{"name": "fc", "t0": 0, "ch": "d0", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u1", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [1], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u0", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u4", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u5", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [2], "sequence": [{"name": "fc", "t0": 0, "ch": "d2", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u2", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [3], "sequence": [{"name": "fc", "t0": 0, "ch": "d3", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u3", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u8", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [4], "sequence": [{"name": "fc", "t0": 0, "ch": "d4", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u9", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [5], "sequence": [{"name": "fc", "t0": 0, "ch": "d5", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u11", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u6", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u7", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [6], "sequence": [{"name": "fc", "t0": 0, "ch": "d6", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u10", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [0], "sequence": [{"name": "fc", "t0": 0, "ch": "d0", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d0", "label": "Y90p_d0", "pulse_shape": "drag", "parameters": {"amp": [0.0006012669861576026, 0.08946691149801805], "beta": 0.25210261654843047, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d0", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u1", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u1", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [1], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "Y90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.00017242693036170322, 0.08609165698258295], "beta": -0.6816138281091626, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d1", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u0", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u0", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u4", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u4", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u5", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u5", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [2], "sequence": [{"name": "fc", "t0": 0, "ch": "d2", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "Y90p_d2", "pulse_shape": "drag", "parameters": {"amp": [-0.0018924186871046166, 0.09671414353299662], "beta": -1.7521753200289991, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d2", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u2", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u2", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [3], "sequence": [{"name": "fc", "t0": 0, "ch": "d3", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "Y90p_d3", "pulse_shape": "drag", "parameters": {"amp": [0.0001670663099105773, 0.09653082608263493], "beta": -0.4845695954465901, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d3", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u3", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u3", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u8", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u8", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [4], "sequence": [{"name": "fc", "t0": 0, "ch": "d4", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "Y90p_d4", "pulse_shape": "drag", "parameters": {"amp": [-0.00022049906309916067, 0.09808602148580131], "beta": -1.171101058049454, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d4", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u9", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u9", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [5], "sequence": [{"name": "fc", "t0": 0, "ch": "d5", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "Y90p_d5", "pulse_shape": "drag", "parameters": {"amp": [0.002301628241176777, 0.09351282785575576], "beta": 2.304928713275625, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d5", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u11", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u11", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u6", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u6", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u7", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u7", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [6], "sequence": [{"name": "fc", "t0": 0, "ch": "d6", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d6", "label": "Y90p_d6", "pulse_shape": "drag", "parameters": {"amp": [0.001992355232234488, 0.07967098932798254], "beta": 3.854894407786853, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d6", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u10", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u10", "phase": "-(P0)"}]}, {"name": "u3", "qubits": [0], "sequence": [{"name": "fc", "t0": 0, "ch": "d0", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d0", "label": "X90p_d0", "pulse_shape": "drag", "parameters": {"amp": [0.08946691149801805, -0.0006012669861576055], "beta": 0.25210261654843047, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d0", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d0", "label": "X90m_d0", "pulse_shape": "drag", "parameters": {"amp": [-0.08946691149801805, 0.000601266986157608], "beta": 0.25210261654843047, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d0", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u1", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u1", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u1", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [1], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "X90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.08609165698258295, -0.00017242693036170073], "beta": -0.6816138281091626, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d1", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d1", "label": "X90m_d1", "pulse_shape": "drag", "parameters": {"amp": [-0.08609165698258295, 0.00017242693036170848], "beta": -0.6816138281091626, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d1", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u0", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u0", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u0", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u4", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u4", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u4", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u5", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u5", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u5", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [2], "sequence": [{"name": "fc", "t0": 0, "ch": "d2", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "X90p_d2", "pulse_shape": "drag", "parameters": {"amp": [0.09671414353299662, 0.001892418687104633], "beta": -1.7521753200289991, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d2", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d2", "label": "X90m_d2", "pulse_shape": "drag", "parameters": {"amp": [-0.09671414353299662, -0.0018924186871046324], "beta": -1.7521753200289991, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d2", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u2", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u2", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u2", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [3], "sequence": [{"name": "fc", "t0": 0, "ch": "d3", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "X90p_d3", "pulse_shape": "drag", "parameters": {"amp": [0.09653082608263493, -0.00016706630991058166], "beta": -0.4845695954465901, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d3", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d3", "label": "X90m_d3", "pulse_shape": "drag", "parameters": {"amp": [-0.09653082608263493, 0.00016706630991060464], "beta": -0.4845695954465901, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d3", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u3", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u3", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u3", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u8", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u8", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u8", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [4], "sequence": [{"name": "fc", "t0": 0, "ch": "d4", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "X90p_d4", "pulse_shape": "drag", "parameters": {"amp": [0.09808602148580131, 0.00022049906309917452], "beta": -1.171101058049454, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d4", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d4", "label": "X90m_d4", "pulse_shape": "drag", "parameters": {"amp": [-0.09808602148580131, -0.00022049906309915465], "beta": -1.171101058049454, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d4", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u9", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u9", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u9", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [5], "sequence": [{"name": "fc", "t0": 0, "ch": "d5", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "X90p_d5", "pulse_shape": "drag", "parameters": {"amp": [0.09351282785575576, -0.002301628241176761], "beta": 2.304928713275625, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d5", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d5", "label": "X90m_d5", "pulse_shape": "drag", "parameters": {"amp": [-0.09351282785575576, 0.0023016282411767825], "beta": 2.304928713275625, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d5", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u11", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u11", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u11", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u6", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u6", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u6", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u7", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u7", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u7", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [6], "sequence": [{"name": "fc", "t0": 0, "ch": "d6", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d6", "label": "X90p_d6", "pulse_shape": "drag", "parameters": {"amp": [0.07967098932798254, -0.001992355232234487], "beta": 3.854894407786853, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d6", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d6", "label": "X90m_d6", "pulse_shape": "drag", "parameters": {"amp": [-0.07967098932798253, 0.0019923552322345106], "beta": 3.854894407786853, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d6", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u10", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u10", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u10", "phase": "-(P1)"}]}, {"name": "x", "qubits": [0], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d0", "label": "Xp_d0", "pulse_shape": "drag", "parameters": {"amp": [0.17791158187010278, 0.0], "beta": 0.25931866637047774, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [1], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "Xp_d1", "pulse_shape": "drag", "parameters": {"amp": [0.17172012521051147, 0.0], "beta": -0.5461967065159612, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [2], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "Xp_d2", "pulse_shape": "drag", "parameters": {"amp": [0.19246634180374358, 0.0], "beta": -1.747165110510683, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [3], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "Xp_d3", "pulse_shape": "drag", "parameters": {"amp": [0.19299857560450118, 0.0], "beta": -0.5387397003716026, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [4], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "Xp_d4", "pulse_shape": "drag", "parameters": {"amp": [0.19590657012753498, 0.0], "beta": -0.9666494187533101, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [5], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "Xp_d5", "pulse_shape": "drag", "parameters": {"amp": [0.18603346715209645, 0.0], "beta": 2.401542893863777, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [6], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d6", "label": "Xp_d6", "pulse_shape": "drag", "parameters": {"amp": [0.15868955309502078, 0.0], "beta": 3.784349150105813, "duration": 160, "sigma": 40}}]}], "meas_kernel": {"name": "hw_qmfk", "params": {}}, "discriminator": {"name": "hw_qmfk", "params": {}}, "_data": {}} \ No newline at end of file diff --git a/qiskit/providers/fake_provider/backends/oslo/fake_oslo.py b/qiskit/providers/fake_provider/backends/oslo/fake_oslo.py new file mode 100644 index 000000000000..f47552de21bc --- /dev/null +++ b/qiskit/providers/fake_provider/backends/oslo/fake_oslo.py @@ -0,0 +1,29 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + + +""" +Fake Oslo device (7 qubits). +""" + +import os +from qiskit.providers.fake_provider import fake_backend + + +class FakeOslo(fake_backend.FakeBackendV2): + """A fake 7 qubit backend.""" + + dirname = os.path.dirname(__file__) + conf_filename = "conf_oslo.json" + props_filename = "props_oslo.json" + defs_filename = "defs_oslo.json" + backend_name = "fake_oslo" diff --git a/qiskit/providers/fake_provider/backends/oslo/props_oslo.json b/qiskit/providers/fake_provider/backends/oslo/props_oslo.json new file mode 100644 index 000000000000..18d02087ebaf --- /dev/null +++ b/qiskit/providers/fake_provider/backends/oslo/props_oslo.json @@ -0,0 +1 @@ +{"backend_name": "ibm_oslo", "backend_version": "1.0.5", "last_update_date": "2022-07-17T22:01:55+02:00", "qubits": [[{"date": "2022-07-17T21:50:55+02:00", "name": "T1", "unit": "us", "value": 148.84747328441438}, {"date": "2022-07-17T06:53:09+02:00", "name": "T2", "unit": "us", "value": 73.69298024352507}, {"date": "2022-07-17T22:01:55+02:00", "name": "frequency", "unit": "GHz", "value": 4.925043161619499}, {"date": "2022-07-17T22:01:55+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.34553701783041496}, {"date": "2022-07-17T06:43:01+02:00", "name": "readout_error", "unit": "", "value": 0.009800000000000031}, {"date": "2022-07-17T06:43:01+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.0102}, {"date": "2022-07-17T06:43:01+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.009399999999999964}, {"date": "2022-07-17T06:43:01+02:00", "name": "readout_length", "unit": "ns", "value": 910.2222222222222}], [{"date": "2022-07-17T21:52:41+02:00", "name": "T1", "unit": "us", "value": 137.06651413337354}, {"date": "2022-07-17T06:55:13+02:00", "name": "T2", "unit": "us", "value": 37.0201555236948}, {"date": "2022-07-17T22:01:55+02:00", "name": "frequency", "unit": "GHz", "value": 5.04627284903205}, {"date": "2022-07-17T22:01:55+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.34285428501981674}, {"date": "2022-07-17T06:43:01+02:00", "name": "readout_error", "unit": "", "value": 0.01429999999999998}, {"date": "2022-07-17T06:43:01+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.012}, {"date": "2022-07-17T06:43:01+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.016599999999999948}, {"date": "2022-07-17T06:43:01+02:00", "name": "readout_length", "unit": "ns", "value": 910.2222222222222}], [{"date": "2022-07-17T21:50:55+02:00", "name": "T1", "unit": "us", "value": 219.21703514896734}, {"date": "2022-07-17T06:53:09+02:00", "name": "T2", "unit": "us", "value": 46.69878652698784}, {"date": "2022-07-17T22:01:55+02:00", "name": "frequency", "unit": "GHz", "value": 4.9619984906787}, {"date": "2022-07-17T22:01:55+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.34427930521772604}, {"date": "2022-07-17T06:43:01+02:00", "name": "readout_error", "unit": "", "value": 0.00770000000000004}, {"date": "2022-07-17T06:43:01+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.009199999999999986}, {"date": "2022-07-17T06:43:01+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0062}, {"date": "2022-07-17T06:43:01+02:00", "name": "readout_length", "unit": "ns", "value": 910.2222222222222}], [{"date": "2022-07-17T21:50:55+02:00", "name": "T1", "unit": "us", "value": 121.28335234199257}, {"date": "2022-07-17T06:53:09+02:00", "name": "T2", "unit": "us", "value": 46.487660104851436}, {"date": "2022-07-17T22:01:55+02:00", "name": "frequency", "unit": "GHz", "value": 5.108098767473062}, {"date": "2022-07-17T22:01:55+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.3419525241470448}, {"date": "2022-07-17T06:43:01+02:00", "name": "readout_error", "unit": "", "value": 0.01539999999999997}, {"date": "2022-07-17T06:43:01+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.0124}, {"date": "2022-07-17T06:43:01+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.018399999999999972}, {"date": "2022-07-17T06:43:01+02:00", "name": "readout_length", "unit": "ns", "value": 910.2222222222222}], [{"date": "2022-07-17T21:50:55+02:00", "name": "T1", "unit": "us", "value": 188.1384270262949}, {"date": "2022-07-17T06:53:09+02:00", "name": "T2", "unit": "us", "value": 184.3690321834765}, {"date": "2022-07-17T22:01:55+02:00", "name": "frequency", "unit": "GHz", "value": 5.011074105950458}, {"date": "2022-07-17T22:01:55+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.34458651089423753}, {"date": "2022-07-17T06:43:01+02:00", "name": "readout_error", "unit": "", "value": 0.023700000000000054}, {"date": "2022-07-17T06:43:01+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.021}, {"date": "2022-07-17T06:43:01+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.02639999999999998}, {"date": "2022-07-17T06:43:01+02:00", "name": "readout_length", "unit": "ns", "value": 910.2222222222222}], [{"date": "2022-07-17T21:52:41+02:00", "name": "T1", "unit": "us", "value": 142.17817897014814}, {"date": "2022-07-17T06:55:13+02:00", "name": "T2", "unit": "us", "value": 41.13094933306526}, {"date": "2022-07-17T22:01:55+02:00", "name": "frequency", "unit": "GHz", "value": 5.173290077743308}, {"date": "2022-07-17T22:01:55+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.34294252669938147}, {"date": "2022-07-17T06:43:01+02:00", "name": "readout_error", "unit": "", "value": 0.00990000000000002}, {"date": "2022-07-17T06:43:01+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.012599999999999945}, {"date": "2022-07-17T06:43:01+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0072}, {"date": "2022-07-17T06:43:01+02:00", "name": "readout_length", "unit": "ns", "value": 910.2222222222222}], [{"date": "2022-07-17T21:50:55+02:00", "name": "T1", "unit": "us", "value": 103.0457879895173}, {"date": "2022-07-17T06:53:09+02:00", "name": "T2", "unit": "us", "value": 208.46324125703032}, {"date": "2022-07-17T22:01:55+02:00", "name": "frequency", "unit": "GHz", "value": 5.319311606468152}, {"date": "2022-07-17T22:01:55+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.33882413698651476}, {"date": "2022-07-17T06:43:01+02:00", "name": "readout_error", "unit": "", "value": 0.02939999999999998}, {"date": "2022-07-17T06:43:01+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.024599999999999955}, {"date": "2022-07-17T06:43:01+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0342}, {"date": "2022-07-17T06:43:01+02:00", "name": "readout_length", "unit": "ns", "value": 910.2222222222222}]], "gates": [{"qubits": [0], "gate": "id", "parameters": [{"date": "2022-07-17T06:57:29+02:00", "name": "gate_error", "unit": "", "value": 0.0002155730497444277}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id0"}, {"qubits": [1], "gate": "id", "parameters": [{"date": "2022-07-17T07:00:04+02:00", "name": "gate_error", "unit": "", "value": 0.0002993132781582579}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id1"}, {"qubits": [2], "gate": "id", "parameters": [{"date": "2022-07-17T06:57:29+02:00", "name": "gate_error", "unit": "", "value": 0.00026007592653822426}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id2"}, {"qubits": [3], "gate": "id", "parameters": [{"date": "2022-07-17T06:57:29+02:00", "name": "gate_error", "unit": "", "value": 0.0005817781152172266}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id3"}, {"qubits": [4], "gate": "id", "parameters": [{"date": "2022-07-17T06:57:29+02:00", "name": "gate_error", "unit": "", "value": 0.00016640155546641838}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id4"}, {"qubits": [5], "gate": "id", "parameters": [{"date": "2022-07-17T07:00:04+02:00", "name": "gate_error", "unit": "", "value": 0.00035485711216763524}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id5"}, {"qubits": [6], "gate": "id", "parameters": [{"date": "2022-07-17T06:57:29+02:00", "name": "gate_error", "unit": "", "value": 0.000251929116208104}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id6"}, {"qubits": [0], "gate": "rz", "parameters": [{"date": "2022-07-17T22:01:55+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz0"}, {"qubits": [1], "gate": "rz", "parameters": [{"date": "2022-07-17T22:01:55+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz1"}, {"qubits": [2], "gate": "rz", "parameters": [{"date": "2022-07-17T22:01:55+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz2"}, {"qubits": [3], "gate": "rz", "parameters": [{"date": "2022-07-17T22:01:55+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz3"}, {"qubits": [4], "gate": "rz", "parameters": [{"date": "2022-07-17T22:01:55+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz4"}, {"qubits": [5], "gate": "rz", "parameters": [{"date": "2022-07-17T22:01:55+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz5"}, {"qubits": [6], "gate": "rz", "parameters": [{"date": "2022-07-17T22:01:55+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz6"}, {"qubits": [0], "gate": "sx", "parameters": [{"date": "2022-07-17T06:57:29+02:00", "name": "gate_error", "unit": "", "value": 0.0002155730497444277}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx0"}, {"qubits": [1], "gate": "sx", "parameters": [{"date": "2022-07-17T07:00:04+02:00", "name": "gate_error", "unit": "", "value": 0.0002993132781582579}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx1"}, {"qubits": [2], "gate": "sx", "parameters": [{"date": "2022-07-17T06:57:29+02:00", "name": "gate_error", "unit": "", "value": 0.00026007592653822426}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx2"}, {"qubits": [3], "gate": "sx", "parameters": [{"date": "2022-07-17T06:57:29+02:00", "name": "gate_error", "unit": "", "value": 0.0005817781152172266}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx3"}, {"qubits": [4], "gate": "sx", "parameters": [{"date": "2022-07-17T06:57:29+02:00", "name": "gate_error", "unit": "", "value": 0.00016640155546641838}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx4"}, {"qubits": [5], "gate": "sx", "parameters": [{"date": "2022-07-17T07:00:04+02:00", "name": "gate_error", "unit": "", "value": 0.00035485711216763524}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx5"}, {"qubits": [6], "gate": "sx", "parameters": [{"date": "2022-07-17T06:57:29+02:00", "name": "gate_error", "unit": "", "value": 0.000251929116208104}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx6"}, {"qubits": [0], "gate": "x", "parameters": [{"date": "2022-07-17T06:57:29+02:00", "name": "gate_error", "unit": "", "value": 0.0002155730497444277}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x0"}, {"qubits": [1], "gate": "x", "parameters": [{"date": "2022-07-17T07:00:04+02:00", "name": "gate_error", "unit": "", "value": 0.0002993132781582579}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x1"}, {"qubits": [2], "gate": "x", "parameters": [{"date": "2022-07-17T06:57:29+02:00", "name": "gate_error", "unit": "", "value": 0.00026007592653822426}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x2"}, {"qubits": [3], "gate": "x", "parameters": [{"date": "2022-07-17T06:57:29+02:00", "name": "gate_error", "unit": "", "value": 0.0005817781152172266}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x3"}, {"qubits": [4], "gate": "x", "parameters": [{"date": "2022-07-17T06:57:29+02:00", "name": "gate_error", "unit": "", "value": 0.00016640155546641838}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x4"}, {"qubits": [5], "gate": "x", "parameters": [{"date": "2022-07-17T07:00:04+02:00", "name": "gate_error", "unit": "", "value": 0.00035485711216763524}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x5"}, {"qubits": [6], "gate": "x", "parameters": [{"date": "2022-07-17T06:57:29+02:00", "name": "gate_error", "unit": "", "value": 0.000251929116208104}, {"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x6"}, {"qubits": [4, 5], "gate": "cx", "parameters": [{"date": "2022-07-17T08:06:39+02:00", "name": "gate_error", "unit": "", "value": 0.008562604964982262}, {"date": "2022-07-14T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 305.77777777777777}], "name": "cx4_5"}, {"qubits": [5, 4], "gate": "cx", "parameters": [{"date": "2022-07-17T08:06:39+02:00", "name": "gate_error", "unit": "", "value": 0.008562604964982262}, {"date": "2022-07-14T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 341.3333333333333}], "name": "cx5_4"}, {"qubits": [2, 1], "gate": "cx", "parameters": [{"date": "2022-07-17T07:58:48+02:00", "name": "gate_error", "unit": "", "value": 0.006700619069209907}, {"date": "2022-07-14T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 213.33333333333331}], "name": "cx2_1"}, {"qubits": [1, 2], "gate": "cx", "parameters": [{"date": "2022-07-17T07:58:48+02:00", "name": "gate_error", "unit": "", "value": 0.006700619069209907}, {"date": "2022-07-14T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 248.88888888888889}], "name": "cx1_2"}, {"qubits": [1, 3], "gate": "cx", "parameters": [{"date": "2022-07-17T07:50:30+02:00", "name": "gate_error", "unit": "", "value": 0.0090091804177925}, {"date": "2022-07-14T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 263.1111111111111}], "name": "cx1_3"}, {"qubits": [3, 1], "gate": "cx", "parameters": [{"date": "2022-07-17T07:50:30+02:00", "name": "gate_error", "unit": "", "value": 0.0090091804177925}, {"date": "2022-07-14T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 334.22222222222223}], "name": "cx3_1"}, {"qubits": [5, 3], "gate": "cx", "parameters": [{"date": "2022-07-17T07:38:50+02:00", "name": "gate_error", "unit": "", "value": 0.006658667905034887}, {"date": "2022-07-14T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 167.11111111111111}], "name": "cx5_3"}, {"qubits": [3, 5], "gate": "cx", "parameters": [{"date": "2022-07-17T07:38:50+02:00", "name": "gate_error", "unit": "", "value": 0.006658667905034887}, {"date": "2022-07-14T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 238.2222222222222}], "name": "cx3_5"}, {"qubits": [6, 5], "gate": "cx", "parameters": [{"date": "2022-07-17T07:29:50+02:00", "name": "gate_error", "unit": "", "value": 0.009496172164203343}, {"date": "2022-07-14T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 334.22222222222223}], "name": "cx6_5"}, {"qubits": [5, 6], "gate": "cx", "parameters": [{"date": "2022-07-17T07:29:50+02:00", "name": "gate_error", "unit": "", "value": 0.009496172164203343}, {"date": "2022-07-14T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 405.3333333333333}], "name": "cx5_6"}, {"qubits": [0, 1], "gate": "cx", "parameters": [{"date": "2022-07-17T07:13:46+02:00", "name": "gate_error", "unit": "", "value": 0.008958756306646692}, {"date": "2022-07-14T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 341.3333333333333}], "name": "cx0_1"}, {"qubits": [1, 0], "gate": "cx", "parameters": [{"date": "2022-07-17T07:13:46+02:00", "name": "gate_error", "unit": "", "value": 0.008958756306646692}, {"date": "2022-07-14T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 412.4444444444444}], "name": "cx1_0"}, {"qubits": [0], "gate": "reset", "parameters": [{"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 960}], "name": "reset0"}, {"qubits": [1], "gate": "reset", "parameters": [{"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 960}], "name": "reset1"}, {"qubits": [2], "gate": "reset", "parameters": [{"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 960}], "name": "reset2"}, {"qubits": [3], "gate": "reset", "parameters": [{"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 960}], "name": "reset3"}, {"qubits": [4], "gate": "reset", "parameters": [{"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 960}], "name": "reset4"}, {"qubits": [5], "gate": "reset", "parameters": [{"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 960}], "name": "reset5"}, {"qubits": [6], "gate": "reset", "parameters": [{"date": "2022-07-17T22:01:55+02:00", "name": "gate_length", "unit": "ns", "value": 960}], "name": "reset6"}], "general": [{"date": "2022-07-17T22:01:55+02:00", "name": "jq_01", "unit": "GHz", "value": 0.0031590522071283937}, {"date": "2022-07-17T22:01:55+02:00", "name": "zz_01", "unit": "GHz", "value": -0.00013270709743894927}, {"date": "2022-07-17T22:01:55+02:00", "name": "jq_12", "unit": "GHz", "value": 0.003157497228425737}, {"date": "2022-07-17T22:01:55+02:00", "name": "zz_12", "unit": "GHz", "value": -0.00012337868106558104}, {"date": "2022-07-17T22:01:55+02:00", "name": "jq_45", "unit": "GHz", "value": 0.0032406025501911994}, {"date": "2022-07-17T22:01:55+02:00", "name": "zz_45", "unit": "GHz", "value": -0.00015849331040112231}, {"date": "2022-07-17T22:01:55+02:00", "name": "jq_56", "unit": "GHz", "value": 0.0017397875227948098}, {"date": "2022-07-17T22:01:55+02:00", "name": "zz_56", "unit": "GHz", "value": -4.391095942778944e-05}, {"date": "2022-07-17T22:01:55+02:00", "name": "jq_13", "unit": "GHz", "value": 0.002352026312825992}, {"date": "2022-07-17T22:01:55+02:00", "name": "zz_13", "unit": "GHz", "value": -6.682142681307334e-05}, {"date": "2022-07-17T22:01:55+02:00", "name": "jq_35", "unit": "GHz", "value": 0.0033019914549144097}, {"date": "2022-07-17T22:01:55+02:00", "name": "zz_35", "unit": "GHz", "value": -0.00013245468115798164}]} \ No newline at end of file diff --git a/test/python/algorithms/evolvers/variational/variational_principles/expected_results/__init__.py b/qiskit/providers/fake_provider/backends/perth/__init__.py similarity index 87% rename from test/python/algorithms/evolvers/variational/variational_principles/expected_results/__init__.py rename to qiskit/providers/fake_provider/backends/perth/__init__.py index 9c3165f57a2a..f364ba2d39a2 100644 --- a/test/python/algorithms/evolvers/variational/variational_principles/expected_results/__init__.py +++ b/qiskit/providers/fake_provider/backends/perth/__init__.py @@ -9,4 +9,7 @@ # Any modifications or derivative works of this code must retain this # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -"""Stores expected results that are lengthy.""" + +"""Fake Perth device (7 qubits)""" + +from .fake_perth import FakePerth diff --git a/qiskit/providers/fake_provider/backends/perth/conf_perth.json b/qiskit/providers/fake_provider/backends/perth/conf_perth.json new file mode 100644 index 000000000000..c00963d66d0d --- /dev/null +++ b/qiskit/providers/fake_provider/backends/perth/conf_perth.json @@ -0,0 +1 @@ +{"backend_name": "ibm_perth", "backend_version": "1.1.26", "n_qubits": 7, "basis_gates": ["id", "rz", "sx", "x", "cx", "reset"], "gates": [{"name": "id", "parameters": [], "qasm_def": "gate id q { U(0, 0, 0) q; }", "coupling_map": [[0], [1], [2], [3], [4], [5], [6]]}, {"name": "rz", "parameters": ["theta"], "qasm_def": "gate rz(theta) q { U(0, 0, theta) q; }", "coupling_map": [[0], [1], [2], [3], [4], [5], [6]]}, {"name": "sx", "parameters": [], "qasm_def": "gate sx q { U(pi/2, 3*pi/2, pi/2) q; }", "coupling_map": [[0], [1], [2], [3], [4], [5], [6]]}, {"name": "x", "parameters": [], "qasm_def": "gate x q { U(pi, 0, pi) q; }", "coupling_map": [[0], [1], [2], [3], [4], [5], [6]]}, {"name": "cx", "parameters": [], "qasm_def": "gate cx q0, q1 { CX q0, q1; }", "coupling_map": [[0, 1], [1, 0], [1, 2], [1, 3], [2, 1], [3, 1], [3, 5], [4, 5], [5, 3], [5, 4], [5, 6], [6, 5]]}, {"name": "reset", "parameters": null, "qasm_def": null}], "local": false, "simulator": false, "conditional": false, "open_pulse": true, "memory": true, "max_shots": 100000, "coupling_map": [[0, 1], [1, 0], [1, 2], [1, 3], [2, 1], [3, 1], [3, 5], [4, 5], [5, 3], [5, 4], [5, 6], [6, 5]], "dynamic_reprate_enabled": true, "supported_instructions": ["reset", "u2", "acquire", "shiftf", "rz", "x", "u3", "setf", "id", "u1", "play", "cx", "delay", "sx", "measure"], "rep_delay_range": [0.0, 500.0], "default_rep_delay": 250.0, "max_experiments": 300, "sample_name": "family: Falcon, revision: 5.11, segment: H", "n_registers": 1, "credits_required": true, "online_date": "2021-07-22T04:00:00+00:00", "description": "7 qubit device", "dt": 0.2222222222222222, "dtm": 0.2222222222222222, "processor_type": {"family": "Falcon", "revision": "5.11", "segment": "H"}, "parametric_pulses": ["gaussian", "gaussian_square", "drag", "constant"], "allow_q_object": true, "clops": 2891, "measure_esp_enabled": true, "multi_meas_enabled": true, "parallel_compilation": false, "quantum_volume": 32, "qubit_channel_mapping": [["u0", "d0", "u1", "m0"], ["u0", "u2", "m1", "u4", "u5", "u3", "u1", "d1"], ["d2", "u4", "u2", "m2"], ["u6", "u8", "u5", "u3", "m3", "d3"], ["u9", "m4", "u7", "d4"], ["d5", "u6", "u8", "u7", "u11", "u10", "m5", "u9"], ["u10", "d6", "m6", "u11"]], "supported_features": ["qobj", "qasm3"], "timing_constraints": {"acquire_alignment": 16, "granularity": 16, "min_length": 64, "pulse_alignment": 16}, "uchannels_enabled": true, "url": "None", "input_allowed": ["job", "runtime", "qasm3"], "allow_object_storage": true, "pulse_num_channels": 9, "pulse_num_qubits": 3, "live_data": false, "n_uchannels": 12, "u_channel_lo": [[{"q": 1, "scale": [1.0, 0.0]}], [{"q": 0, "scale": [1.0, 0.0]}], [{"q": 2, "scale": [1.0, 0.0]}], [{"q": 3, "scale": [1.0, 0.0]}], [{"q": 1, "scale": [1.0, 0.0]}], [{"q": 1, "scale": [1.0, 0.0]}], [{"q": 5, "scale": [1.0, 0.0]}], [{"q": 5, "scale": [1.0, 0.0]}], [{"q": 3, "scale": [1.0, 0.0]}], [{"q": 4, "scale": [1.0, 0.0]}], [{"q": 6, "scale": [1.0, 0.0]}], [{"q": 5, "scale": [1.0, 0.0]}]], "meas_levels": [1, 2], "qubit_lo_range": [[4.657546043297998, 5.657546043297998], [4.533691457253806, 5.533691457253806], [4.362635459406973, 5.362635459406973], [4.625269059177807, 5.625269059177807], [4.659221243756982, 5.659221243756982], [4.478609543928158, 5.478609543928158], [4.656651195298073, 5.656651195298073]], "meas_lo_range": [[6.663115502, 7.663115502], [6.6164476510000005, 7.6164476510000005], [6.84928468, 7.84928468], [6.719581694, 7.719581694], [6.637153809000001, 7.637153809000001], [6.78180398, 7.78180398], [6.6522457170000004, 7.6522457170000004]], "meas_kernels": ["hw_qmfk"], "discriminators": ["quadratic_discriminator", "hw_qmfk", "linear_discriminator"], "rep_times": [1000.0], "meas_map": [[0, 1, 2, 3, 4, 5, 6]], "acquisition_latency": [], "conditional_latency": [], "hamiltonian": {"description": "Qubits are modeled as Duffing oscillators. In this case, the system includes higher energy states, i.e. not just |0> and |1>. The Pauli operators are generalized via the following set of transformations:\n\n$(\\mathbb{I}-\\sigma_{i}^z)/2 \\rightarrow O_i \\equiv b^\\dagger_{i} b_{i}$,\n\n$\\sigma_{+} \\rightarrow b^\\dagger$,\n\n$\\sigma_{-} \\rightarrow b$,\n\n$\\sigma_{i}^X \\rightarrow b^\\dagger_{i} + b_{i}$.\n\nQubits are coupled through resonator buses. The provided Hamiltonian has been projected into the zero excitation subspace of the resonator buses leading to an effective qubit-qubit flip-flop interaction. The qubit resonance frequencies in the Hamiltonian are the cavity dressed frequencies and not exactly what is returned by the backend defaults, which also includes the dressing due to the qubit-qubit interactions.\n\nQuantities are returned in angular frequencies, with units 2*pi*GHz.\n\nWARNING: Currently not all system Hamiltonian information is available to the public, missing values have been replaced with 0.\n", "h_latex": "\\begin{align} \\mathcal{H}/\\hbar = & \\sum_{i=0}^{6}\\left(\\frac{\\omega_{q,i}}{2}(\\mathbb{I}-\\sigma_i^{z})+\\frac{\\Delta_{i}}{2}(O_i^2-O_i)+\\Omega_{d,i}D_i(t)\\sigma_i^{X}\\right) \\\\ & + J_{0,1}(\\sigma_{0}^{+}\\sigma_{1}^{-}+\\sigma_{0}^{-}\\sigma_{1}^{+}) + J_{1,2}(\\sigma_{1}^{+}\\sigma_{2}^{-}+\\sigma_{1}^{-}\\sigma_{2}^{+}) + J_{4,5}(\\sigma_{4}^{+}\\sigma_{5}^{-}+\\sigma_{4}^{-}\\sigma_{5}^{+}) + J_{5,6}(\\sigma_{5}^{+}\\sigma_{6}^{-}+\\sigma_{5}^{-}\\sigma_{6}^{+}) \\\\ & + J_{1,3}(\\sigma_{1}^{+}\\sigma_{3}^{-}+\\sigma_{1}^{-}\\sigma_{3}^{+}) + J_{3,5}(\\sigma_{3}^{+}\\sigma_{5}^{-}+\\sigma_{3}^{-}\\sigma_{5}^{+}) \\\\ & + \\Omega_{d,0}(U_{0}^{(0,1)}(t))\\sigma_{0}^{X} + \\Omega_{d,1}(U_{1}^{(1,0)}(t)+U_{3}^{(1,3)}(t)+U_{2}^{(1,2)}(t))\\sigma_{1}^{X} \\\\ & + \\Omega_{d,2}(U_{4}^{(2,1)}(t))\\sigma_{2}^{X} + \\Omega_{d,3}(U_{5}^{(3,1)}(t)+U_{6}^{(3,5)}(t))\\sigma_{3}^{X} \\\\ & + \\Omega_{d,4}(U_{7}^{(4,5)}(t))\\sigma_{4}^{X} + \\Omega_{d,5}(U_{8}^{(5,3)}(t)+U_{10}^{(5,6)}(t)+U_{9}^{(5,4)}(t))\\sigma_{5}^{X} \\\\ & + \\Omega_{d,6}(U_{11}^{(6,5)}(t))\\sigma_{6}^{X} \\\\ \\end{align}", "h_str": ["_SUM[i,0,6,wq{i}/2*(I{i}-Z{i})]", "_SUM[i,0,6,delta{i}/2*O{i}*O{i}]", "_SUM[i,0,6,-delta{i}/2*O{i}]", "_SUM[i,0,6,omegad{i}*X{i}||D{i}]", "jq0q1*Sp0*Sm1", "jq0q1*Sm0*Sp1", "jq1q2*Sp1*Sm2", "jq1q2*Sm1*Sp2", "jq4q5*Sp4*Sm5", "jq4q5*Sm4*Sp5", "jq5q6*Sp5*Sm6", "jq5q6*Sm5*Sp6", "jq1q3*Sp1*Sm3", "jq1q3*Sm1*Sp3", "jq3q5*Sp3*Sm5", "jq3q5*Sm3*Sp5", "omegad1*X0||U0", "omegad0*X1||U1", "omegad3*X1||U3", "omegad2*X1||U2", "omegad1*X2||U4", "omegad1*X3||U5", "omegad5*X3||U6", "omegad5*X4||U7", "omegad3*X5||U8", "omegad6*X5||U10", "omegad4*X5||U9", "omegad5*X6||U11"], "osc": {}, "qub": {"0": 3, "1": 3, "2": 3, "3": 3, "4": 3, "5": 3, "6": 3}, "vars": {"delta0": -2.145861830262288, "delta1": -2.1637323700183813, "delta2": -2.1819772957619166, "delta3": -2.1390595390914435, "delta4": -2.094603727927117, "delta5": -2.1741205452449366, "delta6": -2.1391380255788, "jq0q1": 0.0002985095697687125, "jq1q2": 0.009124660333764169, "jq1q3": 0.00034451952437060125, "jq3q5": 0.013805491337781944, "jq4q5": 0.019157791111464737, "jq5q6": 0.01878865253626694, "omegad0": 1.17768084688185, "omegad1": 0.8944154423214405, "omegad2": 1.2751647891733031, "omegad3": 1.1539312808524558, "omegad4": 1.0470469563014095, "omegad5": 1.0320368101206865, "omegad6": 1.002098104679006, "wq0": 32.40581752035219, "wq1": 31.62761620509251, "wq2": 30.552839672716356, "wq3": 32.20301524796814, "wq4": 32.416343115262656, "wq5": 31.281526336593462, "wq6": 32.4001950245469}}, "channels": {"acquire0": {"operates": {"qubits": [0]}, "purpose": "acquire", "type": "acquire"}, "acquire1": {"operates": {"qubits": [1]}, "purpose": "acquire", "type": "acquire"}, "acquire2": {"operates": {"qubits": [2]}, "purpose": "acquire", "type": "acquire"}, "acquire3": {"operates": {"qubits": [3]}, "purpose": "acquire", "type": "acquire"}, "acquire4": {"operates": {"qubits": [4]}, "purpose": "acquire", "type": "acquire"}, "acquire5": {"operates": {"qubits": [5]}, "purpose": "acquire", "type": "acquire"}, "acquire6": {"operates": {"qubits": [6]}, "purpose": "acquire", "type": "acquire"}, "d0": {"operates": {"qubits": [0]}, "purpose": "drive", "type": "drive"}, "d1": {"operates": {"qubits": [1]}, "purpose": "drive", "type": "drive"}, "d2": {"operates": {"qubits": [2]}, "purpose": "drive", "type": "drive"}, "d3": {"operates": {"qubits": [3]}, "purpose": "drive", "type": "drive"}, "d4": {"operates": {"qubits": [4]}, "purpose": "drive", "type": "drive"}, "d5": {"operates": {"qubits": [5]}, "purpose": "drive", "type": "drive"}, "d6": {"operates": {"qubits": [6]}, "purpose": "drive", "type": "drive"}, "m0": {"operates": {"qubits": [0]}, "purpose": "measure", "type": "measure"}, "m1": {"operates": {"qubits": [1]}, "purpose": "measure", "type": "measure"}, "m2": {"operates": {"qubits": [2]}, "purpose": "measure", "type": "measure"}, "m3": {"operates": {"qubits": [3]}, "purpose": "measure", "type": "measure"}, "m4": {"operates": {"qubits": [4]}, "purpose": "measure", "type": "measure"}, "m5": {"operates": {"qubits": [5]}, "purpose": "measure", "type": "measure"}, "m6": {"operates": {"qubits": [6]}, "purpose": "measure", "type": "measure"}, "u0": {"operates": {"qubits": [0, 1]}, "purpose": "cross-resonance", "type": "control"}, "u1": {"operates": {"qubits": [1, 0]}, "purpose": "cross-resonance", "type": "control"}, "u10": {"operates": {"qubits": [5, 6]}, "purpose": "cross-resonance", "type": "control"}, "u11": {"operates": {"qubits": [6, 5]}, "purpose": "cross-resonance", "type": "control"}, "u2": {"operates": {"qubits": [1, 2]}, "purpose": "cross-resonance", "type": "control"}, "u3": {"operates": {"qubits": [1, 3]}, "purpose": "cross-resonance", "type": "control"}, "u4": {"operates": {"qubits": [2, 1]}, "purpose": "cross-resonance", "type": "control"}, "u5": {"operates": {"qubits": [3, 1]}, "purpose": "cross-resonance", "type": "control"}, "u6": {"operates": {"qubits": [3, 5]}, "purpose": "cross-resonance", "type": "control"}, "u7": {"operates": {"qubits": [4, 5]}, "purpose": "cross-resonance", "type": "control"}, "u8": {"operates": {"qubits": [5, 3]}, "purpose": "cross-resonance", "type": "control"}, "u9": {"operates": {"qubits": [5, 4]}, "purpose": "cross-resonance", "type": "control"}}} \ No newline at end of file diff --git a/qiskit/providers/fake_provider/backends/perth/defs_perth.json b/qiskit/providers/fake_provider/backends/perth/defs_perth.json new file mode 100644 index 000000000000..a45f79ac4caf --- /dev/null +++ b/qiskit/providers/fake_provider/backends/perth/defs_perth.json @@ -0,0 +1 @@ +{"qubit_freq_est": [5.157546043297998, 5.033691457253806, 4.862635459406973, 5.125269059177807, 5.159221243756982, 4.978609543928158, 5.156651195298073], "meas_freq_est": [7.163115502, 7.1164476510000005, 7.34928468, 7.219581694, 7.137153809000001, 7.28180398, 7.1522457170000004], "buffer": 0, "pulse_library": [{"name": "QId_d0", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d1", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d2", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d3", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d4", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d5", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}, {"name": "QId_d6", "samples": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]}], "cmd_def": [{"name": "cx", "qubits": [0, 1], "sequence": [{"name": "fc", "t0": 0, "ch": "d0", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d0", "label": "Ym_d0", "pulse_shape": "drag", "parameters": {"amp": [-2.956501982921238e-17, -0.1609444717709449], "beta": -0.23759198781349172, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 880, "ch": "d0", "label": "Xp_d0", "pulse_shape": "drag", "parameters": {"amp": [0.1609444717709449, 0.0], "beta": -0.23759198781349172, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "X90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.1063777054170297, -0.0002605979775954761], "beta": -2.749977333902907, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d1", "label": "CR90p_d1_u0", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.04786373950320236, 0.002437715470054199], "duration": 720, "sigma": 64, "width": 464}}, {"name": "parametric_pulse", "t0": 1040, "ch": "d1", "label": "CR90m_d1_u0", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.04786373950320236, -0.002437715470054193], "duration": 720, "sigma": 64, "width": 464}}, {"name": "parametric_pulse", "t0": 160, "ch": "u0", "label": "CR90p_u0", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.03220264248993431, 0.1807958396610942], "duration": 720, "sigma": 64, "width": 464}}, {"name": "parametric_pulse", "t0": 1040, "ch": "u0", "label": "CR90m_u0", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.03220264248993429, -0.1807958396610942], "duration": 720, "sigma": 64, "width": 464}}, {"name": "fc", "t0": 0, "ch": "u1", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [1, 0], "sequence": [{"name": "fc", "t0": 0, "ch": "d0", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d0", "label": "X90p_d0", "pulse_shape": "drag", "parameters": {"amp": [0.08028684056150216, 0.0009441951251258224], "beta": -0.3176025535596349, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 880, "ch": "d0", "label": "Xp_d0", "pulse_shape": "drag", "parameters": {"amp": [0.1609444717709449, 0.0], "beta": -0.23759198781349172, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1760, "ch": "d0", "label": "Y90m_d0", "pulse_shape": "drag", "parameters": {"amp": [0.0009441951251257899, -0.08028684056150216], "beta": -0.3176025535596349, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d1", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "Y90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.00026059797759549197, 0.1063777054170297], "beta": -2.749977333902907, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d1", "label": "CR90p_d1_u0", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.04786373950320236, 0.002437715470054199], "duration": 720, "sigma": 64, "width": 464}}, {"name": "parametric_pulse", "t0": 1040, "ch": "d1", "label": "CR90m_d1_u0", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.04786373950320236, -0.002437715470054193], "duration": 720, "sigma": 64, "width": 464}}, {"name": "fc", "t0": 1760, "ch": "d1", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1760, "ch": "d1", "label": "X90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.1063777054170297, -0.0002605979775954761], "beta": -2.749977333902907, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u0", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u0", "label": "CR90p_u0", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.03220264248993431, 0.1807958396610942], "duration": 720, "sigma": 64, "width": 464}}, {"name": "parametric_pulse", "t0": 1040, "ch": "u0", "label": "CR90m_u0", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.03220264248993429, -0.1807958396610942], "duration": 720, "sigma": 64, "width": 464}}, {"name": "fc", "t0": 1760, "ch": "u0", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u1", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u4", "phase": -3.141592653589793}, {"name": "fc", "t0": 1760, "ch": "u4", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u5", "phase": -3.141592653589793}, {"name": "fc", "t0": 1760, "ch": "u5", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [1, 2], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "Y90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.00026059797759549197, 0.1063777054170297], "beta": -2.749977333902907, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d1", "label": "CR90p_d1_u4", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.03829538731944919, 0.00107498675290073], "duration": 560, "sigma": 64, "width": 304}}, {"name": "parametric_pulse", "t0": 880, "ch": "d1", "label": "CR90m_d1_u4", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.03829538731944919, -0.0010749867529007253], "duration": 560, "sigma": 64, "width": 304}}, {"name": "fc", "t0": 1440, "ch": "d1", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1440, "ch": "d1", "label": "X90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.1063777054170297, -0.0002605979775954761], "beta": -2.749977333902907, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d2", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "X90p_d2", "pulse_shape": "drag", "parameters": {"amp": [0.07467637909447875, 0.0017349842744856267], "beta": -1.828679341512514, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 720, "ch": "d2", "label": "Xp_d2", "pulse_shape": "drag", "parameters": {"amp": [0.14864056467668044, 0.0], "beta": -1.6290667006162407, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1440, "ch": "d2", "label": "Y90m_d2", "pulse_shape": "drag", "parameters": {"amp": [0.0017349842744856139, -0.07467637909447875], "beta": -1.828679341512514, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u0", "phase": -3.141592653589793}, {"name": "fc", "t0": 1440, "ch": "u0", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u2", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u4", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u4", "label": "CR90p_u4", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.4523672522947478, 0.31390990501924904], "duration": 560, "sigma": 64, "width": 304}}, {"name": "parametric_pulse", "t0": 880, "ch": "u4", "label": "CR90m_u4", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.4523672522947477, -0.3139099050192491], "duration": 560, "sigma": 64, "width": 304}}, {"name": "fc", "t0": 1440, "ch": "u4", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u5", "phase": -3.141592653589793}, {"name": "fc", "t0": 1440, "ch": "u5", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [1, 3], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "Y90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.00026059797759549197, 0.1063777054170297], "beta": -2.749977333902907, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d1", "label": "CR90p_d1_u5", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.054915956156984386, 0.0031079363092648563], "duration": 672, "sigma": 64, "width": 416}}, {"name": "parametric_pulse", "t0": 992, "ch": "d1", "label": "CR90m_d1_u5", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.054915956156984386, -0.0031079363092648494], "duration": 672, "sigma": 64, "width": 416}}, {"name": "fc", "t0": 1664, "ch": "d1", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1664, "ch": "d1", "label": "X90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.1063777054170297, -0.0002605979775954761], "beta": -2.749977333902907, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d3", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "X90p_d3", "pulse_shape": "drag", "parameters": {"amp": [0.08212218511603157, -0.0001240238976782344], "beta": 0.5360384031224531, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 832, "ch": "d3", "label": "Xp_d3", "pulse_shape": "drag", "parameters": {"amp": [0.16425693507037584, 0.0], "beta": 0.9110282451854017, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1664, "ch": "d3", "label": "Y90m_d3", "pulse_shape": "drag", "parameters": {"amp": [-0.00012402389767825098, -0.08212218511603157], "beta": 0.5360384031224531, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u0", "phase": -3.141592653589793}, {"name": "fc", "t0": 1664, "ch": "u0", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u3", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u4", "phase": -3.141592653589793}, {"name": "fc", "t0": 1664, "ch": "u4", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u5", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u5", "label": "CR90p_u5", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.06341281641582253, 0.1085666712878434], "duration": 672, "sigma": 64, "width": 416}}, {"name": "parametric_pulse", "t0": 992, "ch": "u5", "label": "CR90m_u5", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.06341281641582254, -0.10856667128784339], "duration": 672, "sigma": 64, "width": 416}}, {"name": "fc", "t0": 1664, "ch": "u5", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u8", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [2, 1], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "X90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.1063777054170297, -0.0002605979775954761], "beta": -2.749977333902907, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d1", "label": "CR90p_d1_u4", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.03829538731944919, 0.00107498675290073], "duration": 560, "sigma": 64, "width": 304}}, {"name": "parametric_pulse", "t0": 880, "ch": "d1", "label": "CR90m_d1_u4", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.03829538731944919, -0.0010749867529007253], "duration": 560, "sigma": 64, "width": 304}}, {"name": "fc", "t0": 0, "ch": "d2", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "Ym_d2", "pulse_shape": "drag", "parameters": {"amp": [-2.7304828763212774e-17, -0.14864056467668044], "beta": -1.6290667006162407, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 720, "ch": "d2", "label": "Xp_d2", "pulse_shape": "drag", "parameters": {"amp": [0.14864056467668044, 0.0], "beta": -1.6290667006162407, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u2", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u4", "label": "CR90p_u4", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.4523672522947478, 0.31390990501924904], "duration": 560, "sigma": 64, "width": 304}}, {"name": "parametric_pulse", "t0": 880, "ch": "u4", "label": "CR90m_u4", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.4523672522947477, -0.3139099050192491], "duration": 560, "sigma": 64, "width": 304}}]}, {"name": "cx", "qubits": [3, 1], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "X90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.1063777054170297, -0.0002605979775954761], "beta": -2.749977333902907, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d1", "label": "CR90p_d1_u5", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.054915956156984386, 0.0031079363092648563], "duration": 672, "sigma": 64, "width": 416}}, {"name": "parametric_pulse", "t0": 992, "ch": "d1", "label": "CR90m_d1_u5", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.054915956156984386, -0.0031079363092648494], "duration": 672, "sigma": 64, "width": 416}}, {"name": "fc", "t0": 0, "ch": "d3", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "Ym_d3", "pulse_shape": "drag", "parameters": {"amp": [-3.0173509465753556e-17, -0.16425693507037584], "beta": 0.9110282451854017, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 832, "ch": "d3", "label": "Xp_d3", "pulse_shape": "drag", "parameters": {"amp": [0.16425693507037584, 0.0], "beta": 0.9110282451854017, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u3", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u5", "label": "CR90p_u5", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.06341281641582253, 0.1085666712878434], "duration": 672, "sigma": 64, "width": 416}}, {"name": "parametric_pulse", "t0": 992, "ch": "u5", "label": "CR90m_u5", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.06341281641582254, -0.10856667128784339], "duration": 672, "sigma": 64, "width": 416}}, {"name": "fc", "t0": 0, "ch": "u8", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [3, 5], "sequence": [{"name": "fc", "t0": 0, "ch": "d3", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "Ym_d3", "pulse_shape": "drag", "parameters": {"amp": [-3.0173509465753556e-17, -0.16425693507037584], "beta": 0.9110282451854017, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 640, "ch": "d3", "label": "Xp_d3", "pulse_shape": "drag", "parameters": {"amp": [0.16425693507037584, 0.0], "beta": 0.9110282451854017, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "X90p_d5", "pulse_shape": "drag", "parameters": {"amp": [0.09203137046859432, 0.0001843340752095996], "beta": -1.332449795603768, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d5", "label": "CR90p_d5_u6", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.07011826811810196, 0.002144166107561248], "duration": 480, "sigma": 64, "width": 224}}, {"name": "parametric_pulse", "t0": 800, "ch": "d5", "label": "CR90m_d5_u6", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.07011826811810196, -0.0021441661075612393], "duration": 480, "sigma": 64, "width": 224}}, {"name": "fc", "t0": 0, "ch": "u3", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u6", "label": "CR90p_u6", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.41617212833958495, 0.1237508753602876], "duration": 480, "sigma": 64, "width": 224}}, {"name": "parametric_pulse", "t0": 800, "ch": "u6", "label": "CR90m_u6", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.41617212833958495, -0.12375087536028766], "duration": 480, "sigma": 64, "width": 224}}, {"name": "fc", "t0": 0, "ch": "u8", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [4, 5], "sequence": [{"name": "fc", "t0": 0, "ch": "d4", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "Ym_d4", "pulse_shape": "drag", "parameters": {"amp": [-3.325367569130619e-17, -0.18102457902941863], "beta": -0.17543963993345119, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1328, "ch": "d4", "label": "Xp_d4", "pulse_shape": "drag", "parameters": {"amp": [0.18102457902941863, 0.0], "beta": -0.17543963993345119, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "X90p_d5", "pulse_shape": "drag", "parameters": {"amp": [0.09203137046859432, 0.0001843340752095996], "beta": -1.332449795603768, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d5", "label": "CR90p_d5_u7", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.02574838803192174, 0.0010471284828612551], "duration": 1168, "sigma": 64, "width": 912}}, {"name": "parametric_pulse", "t0": 1488, "ch": "d5", "label": "CR90m_d5_u7", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.02574838803192174, -0.0010471284828612519], "duration": 1168, "sigma": 64, "width": 912}}, {"name": "parametric_pulse", "t0": 160, "ch": "u7", "label": "CR90p_u7", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.08551869238252896, -0.029163331236200348], "duration": 1168, "sigma": 64, "width": 912}}, {"name": "parametric_pulse", "t0": 1488, "ch": "u7", "label": "CR90m_u7", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.08551869238252896, 0.029163331236200338], "duration": 1168, "sigma": 64, "width": 912}}, {"name": "fc", "t0": 0, "ch": "u9", "phase": 1.5707963267948966}]}, {"name": "cx", "qubits": [5, 3], "sequence": [{"name": "fc", "t0": 0, "ch": "d3", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "X90p_d3", "pulse_shape": "drag", "parameters": {"amp": [0.08212218511603157, -0.0001240238976782344], "beta": 0.5360384031224531, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 640, "ch": "d3", "label": "Xp_d3", "pulse_shape": "drag", "parameters": {"amp": [0.16425693507037584, 0.0], "beta": 0.9110282451854017, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1280, "ch": "d3", "label": "Y90m_d3", "pulse_shape": "drag", "parameters": {"amp": [-0.00012402389767825098, -0.08212218511603157], "beta": 0.5360384031224531, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d5", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "Y90p_d5", "pulse_shape": "drag", "parameters": {"amp": [-0.00018433407520959663, 0.09203137046859432], "beta": -1.332449795603768, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d5", "label": "CR90p_d5_u6", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.07011826811810196, 0.002144166107561248], "duration": 480, "sigma": 64, "width": 224}}, {"name": "parametric_pulse", "t0": 800, "ch": "d5", "label": "CR90m_d5_u6", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.07011826811810196, -0.0021441661075612393], "duration": 480, "sigma": 64, "width": 224}}, {"name": "fc", "t0": 1280, "ch": "d5", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 1280, "ch": "d5", "label": "X90p_d5", "pulse_shape": "drag", "parameters": {"amp": [0.09203137046859432, 0.0001843340752095996], "beta": -1.332449795603768, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u11", "phase": -3.141592653589793}, {"name": "fc", "t0": 1280, "ch": "u11", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u3", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u6", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u6", "label": "CR90p_u6", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.41617212833958495, 0.1237508753602876], "duration": 480, "sigma": 64, "width": 224}}, {"name": "parametric_pulse", "t0": 800, "ch": "u6", "label": "CR90m_u6", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.41617212833958495, -0.12375087536028766], "duration": 480, "sigma": 64, "width": 224}}, {"name": "fc", "t0": 1280, "ch": "u6", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u7", "phase": -3.141592653589793}, {"name": "fc", "t0": 1280, "ch": "u7", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u8", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [5, 4], "sequence": [{"name": "fc", "t0": 0, "ch": "d4", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "X90p_d4", "pulse_shape": "drag", "parameters": {"amp": [0.09052534800091389, 0.0005215139379359441], "beta": -0.22112444563867778, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1328, "ch": "d4", "label": "Xp_d4", "pulse_shape": "drag", "parameters": {"amp": [0.18102457902941863, 0.0], "beta": -0.17543963993345119, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 2656, "ch": "d4", "label": "Y90m_d4", "pulse_shape": "drag", "parameters": {"amp": [0.0005215139379359344, -0.09052534800091389], "beta": -0.22112444563867778, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d5", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "Y90p_d5", "pulse_shape": "drag", "parameters": {"amp": [-0.00018433407520959663, 0.09203137046859432], "beta": -1.332449795603768, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d5", "label": "CR90p_d5_u7", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.02574838803192174, 0.0010471284828612551], "duration": 1168, "sigma": 64, "width": 912}}, {"name": "parametric_pulse", "t0": 1488, "ch": "d5", "label": "CR90m_d5_u7", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.02574838803192174, -0.0010471284828612519], "duration": 1168, "sigma": 64, "width": 912}}, {"name": "fc", "t0": 2656, "ch": "d5", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 2656, "ch": "d5", "label": "X90p_d5", "pulse_shape": "drag", "parameters": {"amp": [0.09203137046859432, 0.0001843340752095996], "beta": -1.332449795603768, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u11", "phase": -3.141592653589793}, {"name": "fc", "t0": 2656, "ch": "u11", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u6", "phase": -3.141592653589793}, {"name": "fc", "t0": 2656, "ch": "u6", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u7", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u7", "label": "CR90p_u7", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.08551869238252896, -0.029163331236200348], "duration": 1168, "sigma": 64, "width": 912}}, {"name": "parametric_pulse", "t0": 1488, "ch": "u7", "label": "CR90m_u7", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.08551869238252896, 0.029163331236200338], "duration": 1168, "sigma": 64, "width": 912}}, {"name": "fc", "t0": 2656, "ch": "u7", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u9", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [5, 6], "sequence": [{"name": "fc", "t0": 0, "ch": "d5", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "Y90p_d5", "pulse_shape": "drag", "parameters": {"amp": [-0.00018433407520959663, 0.09203137046859432], "beta": -1.332449795603768, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d5", "label": "CR90p_d5_u11", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.024880319301125327, 0.0010948410676139308], "duration": 1200, "sigma": 64, "width": 944}}, {"name": "parametric_pulse", "t0": 1520, "ch": "d5", "label": "CR90m_d5_u11", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.024880319301125327, -0.0010948410676139277], "duration": 1200, "sigma": 64, "width": 944}}, {"name": "fc", "t0": 2720, "ch": "d5", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 2720, "ch": "d5", "label": "X90p_d5", "pulse_shape": "drag", "parameters": {"amp": [0.09203137046859432, 0.0001843340752095996], "beta": -1.332449795603768, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "d6", "phase": -1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d6", "label": "X90p_d6", "pulse_shape": "drag", "parameters": {"amp": [0.09482627631708003, -0.0001378628323857269], "beta": 0.0704083149311823, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1360, "ch": "d6", "label": "Xp_d6", "pulse_shape": "drag", "parameters": {"amp": [0.18914437866428077, 0.0], "beta": 0.2819848205131056, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 2720, "ch": "d6", "label": "Y90m_d6", "pulse_shape": "drag", "parameters": {"amp": [-0.00013786283238571037, -0.09482627631708003], "beta": 0.0704083149311823, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u10", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u11", "phase": -3.141592653589793}, {"name": "parametric_pulse", "t0": 160, "ch": "u11", "label": "CR90p_u11", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.06753165054289072, 0.06211219028837627], "duration": 1200, "sigma": 64, "width": 944}}, {"name": "parametric_pulse", "t0": 1520, "ch": "u11", "label": "CR90m_u11", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.06753165054289073, -0.062112190288376265], "duration": 1200, "sigma": 64, "width": 944}}, {"name": "fc", "t0": 2720, "ch": "u11", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u6", "phase": -3.141592653589793}, {"name": "fc", "t0": 2720, "ch": "u6", "phase": -1.5707963267948966}, {"name": "fc", "t0": 0, "ch": "u7", "phase": -3.141592653589793}, {"name": "fc", "t0": 2720, "ch": "u7", "phase": -1.5707963267948966}]}, {"name": "cx", "qubits": [6, 5], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "X90p_d5", "pulse_shape": "drag", "parameters": {"amp": [0.09203137046859432, 0.0001843340752095996], "beta": -1.332449795603768, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 160, "ch": "d5", "label": "CR90p_d5_u11", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.024880319301125327, 0.0010948410676139308], "duration": 1200, "sigma": 64, "width": 944}}, {"name": "parametric_pulse", "t0": 1520, "ch": "d5", "label": "CR90m_d5_u11", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.024880319301125327, -0.0010948410676139277], "duration": 1200, "sigma": 64, "width": 944}}, {"name": "fc", "t0": 0, "ch": "d6", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 0, "ch": "d6", "label": "Ym_d6", "pulse_shape": "drag", "parameters": {"amp": [-3.4745258686188956e-17, -0.18914437866428077], "beta": 0.2819848205131056, "duration": 160, "sigma": 40}}, {"name": "parametric_pulse", "t0": 1360, "ch": "d6", "label": "Xp_d6", "pulse_shape": "drag", "parameters": {"amp": [0.18914437866428077, 0.0], "beta": 0.2819848205131056, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 0, "ch": "u10", "phase": 1.5707963267948966}, {"name": "parametric_pulse", "t0": 160, "ch": "u11", "label": "CR90p_u11", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.06753165054289072, 0.06211219028837627], "duration": 1200, "sigma": 64, "width": 944}}, {"name": "parametric_pulse", "t0": 1520, "ch": "u11", "label": "CR90m_u11", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.06753165054289073, -0.062112190288376265], "duration": 1200, "sigma": 64, "width": 944}}]}, {"name": "id", "qubits": [0], "sequence": [{"name": "QId_d0", "t0": 0, "ch": "d0"}]}, {"name": "id", "qubits": [1], "sequence": [{"name": "QId_d1", "t0": 0, "ch": "d1"}]}, {"name": "id", "qubits": [2], "sequence": [{"name": "QId_d2", "t0": 0, "ch": "d2"}]}, {"name": "id", "qubits": [3], "sequence": [{"name": "QId_d3", "t0": 0, "ch": "d3"}]}, {"name": "id", "qubits": [4], "sequence": [{"name": "QId_d4", "t0": 0, "ch": "d4"}]}, {"name": "id", "qubits": [5], "sequence": [{"name": "QId_d5", "t0": 0, "ch": "d5"}]}, {"name": "id", "qubits": [6], "sequence": [{"name": "QId_d6", "t0": 0, "ch": "d6"}]}, {"name": "measure", "qubits": [0], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m0", "label": "M_m0", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.2326983516348827, -0.05874927358196432], "duration": 1472, "sigma": 64, "width": 1216}}, {"name": "delay", "t0": 1472, "ch": "m0", "duration": 1568}, {"name": "acquire", "t0": 0, "duration": 1472, "qubits": [0, 1, 2, 3, 4, 5, 6], "memory_slot": [0, 1, 2, 3, 4, 5, 6]}]}, {"name": "measure", "qubits": [0, 1, 2, 3, 4, 5, 6], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m0", "label": "M_m0", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.2326983516348827, -0.05874927358196432], "duration": 1472, "sigma": 64, "width": 1216}}, {"name": "delay", "t0": 1472, "ch": "m0", "duration": 1568}, {"name": "parametric_pulse", "t0": 0, "ch": "m1", "label": "M_m1", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.1302787480423027, -0.29227974238480886], "duration": 1472, "sigma": 64, "width": 1216}}, {"name": "delay", "t0": 1472, "ch": "m1", "duration": 1568}, {"name": "parametric_pulse", "t0": 0, "ch": "m2", "label": "M_m2", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.28997605721581127, -0.07690179608807937], "duration": 1472, "sigma": 64, "width": 1216}}, {"name": "delay", "t0": 1472, "ch": "m2", "duration": 1568}, {"name": "parametric_pulse", "t0": 0, "ch": "m3", "label": "M_m3", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.13094670048780593, -0.3245812096091775], "duration": 1472, "sigma": 64, "width": 1216}}, {"name": "delay", "t0": 1472, "ch": "m3", "duration": 1568}, {"name": "parametric_pulse", "t0": 0, "ch": "m4", "label": "M_m4", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.021172504598321786, 0.21897882328899762], "duration": 1472, "sigma": 64, "width": 1216}}, {"name": "delay", "t0": 1472, "ch": "m4", "duration": 1568}, {"name": "parametric_pulse", "t0": 0, "ch": "m5", "label": "M_m5", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.35999999548803524, 5.6996619325229516e-05], "duration": 1472, "sigma": 64, "width": 1216}}, {"name": "delay", "t0": 1472, "ch": "m5", "duration": 1568}, {"name": "parametric_pulse", "t0": 0, "ch": "m6", "label": "M_m6", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.2333335606135327, -0.1885615270711681], "duration": 1472, "sigma": 64, "width": 1216}}, {"name": "delay", "t0": 1472, "ch": "m6", "duration": 1568}, {"name": "acquire", "t0": 0, "duration": 1472, "qubits": [0, 1, 2, 3, 4, 5, 6], "memory_slot": [0, 1, 2, 3, 4, 5, 6]}]}, {"name": "measure", "qubits": [1], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m1", "label": "M_m1", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.1302787480423027, -0.29227974238480886], "duration": 1472, "sigma": 64, "width": 1216}}, {"name": "delay", "t0": 1472, "ch": "m1", "duration": 1568}, {"name": "acquire", "t0": 0, "duration": 1472, "qubits": [0, 1, 2, 3, 4, 5, 6], "memory_slot": [0, 1, 2, 3, 4, 5, 6]}]}, {"name": "measure", "qubits": [2], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m2", "label": "M_m2", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.28997605721581127, -0.07690179608807937], "duration": 1472, "sigma": 64, "width": 1216}}, {"name": "delay", "t0": 1472, "ch": "m2", "duration": 1568}, {"name": "acquire", "t0": 0, "duration": 1472, "qubits": [0, 1, 2, 3, 4, 5, 6], "memory_slot": [0, 1, 2, 3, 4, 5, 6]}]}, {"name": "measure", "qubits": [3], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m3", "label": "M_m3", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.13094670048780593, -0.3245812096091775], "duration": 1472, "sigma": 64, "width": 1216}}, {"name": "delay", "t0": 1472, "ch": "m3", "duration": 1568}, {"name": "acquire", "t0": 0, "duration": 1472, "qubits": [0, 1, 2, 3, 4, 5, 6], "memory_slot": [0, 1, 2, 3, 4, 5, 6]}]}, {"name": "measure", "qubits": [4], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m4", "label": "M_m4", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.021172504598321786, 0.21897882328899762], "duration": 1472, "sigma": 64, "width": 1216}}, {"name": "delay", "t0": 1472, "ch": "m4", "duration": 1568}, {"name": "acquire", "t0": 0, "duration": 1472, "qubits": [0, 1, 2, 3, 4, 5, 6], "memory_slot": [0, 1, 2, 3, 4, 5, 6]}]}, {"name": "measure", "qubits": [5], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m5", "label": "M_m5", "pulse_shape": "gaussian_square", "parameters": {"amp": [0.35999999548803524, 5.6996619325229516e-05], "duration": 1472, "sigma": 64, "width": 1216}}, {"name": "delay", "t0": 1472, "ch": "m5", "duration": 1568}, {"name": "acquire", "t0": 0, "duration": 1472, "qubits": [0, 1, 2, 3, 4, 5, 6], "memory_slot": [0, 1, 2, 3, 4, 5, 6]}]}, {"name": "measure", "qubits": [6], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "m6", "label": "M_m6", "pulse_shape": "gaussian_square", "parameters": {"amp": [-0.2333335606135327, -0.1885615270711681], "duration": 1472, "sigma": 64, "width": 1216}}, {"name": "delay", "t0": 1472, "ch": "m6", "duration": 1568}, {"name": "acquire", "t0": 0, "duration": 1472, "qubits": [0, 1, 2, 3, 4, 5, 6], "memory_slot": [0, 1, 2, 3, 4, 5, 6]}]}, {"name": "rz", "qubits": [0], "sequence": [{"name": "fc", "t0": 0, "ch": "d0", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u1", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [1], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u0", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u4", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u5", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [2], "sequence": [{"name": "fc", "t0": 0, "ch": "d2", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u2", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [3], "sequence": [{"name": "fc", "t0": 0, "ch": "d3", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u3", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u8", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [4], "sequence": [{"name": "fc", "t0": 0, "ch": "d4", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u9", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [5], "sequence": [{"name": "fc", "t0": 0, "ch": "d5", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u11", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u6", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u7", "phase": "-(P0)"}]}, {"name": "rz", "qubits": [6], "sequence": [{"name": "fc", "t0": 0, "ch": "d6", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u10", "phase": "-(P0)"}]}, {"name": "sx", "qubits": [0], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d0", "label": "X90p_d0", "pulse_shape": "drag", "parameters": {"amp": [0.08028684056150216, 0.0009441951251258224], "beta": -0.3176025535596349, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [1], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "X90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.1063777054170297, -0.0002605979775954761], "beta": -2.749977333902907, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [2], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "X90p_d2", "pulse_shape": "drag", "parameters": {"amp": [0.07467637909447875, 0.0017349842744856267], "beta": -1.828679341512514, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [3], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "X90p_d3", "pulse_shape": "drag", "parameters": {"amp": [0.08212218511603157, -0.0001240238976782344], "beta": 0.5360384031224531, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [4], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "X90p_d4", "pulse_shape": "drag", "parameters": {"amp": [0.09052534800091389, 0.0005215139379359441], "beta": -0.22112444563867778, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [5], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "X90p_d5", "pulse_shape": "drag", "parameters": {"amp": [0.09203137046859432, 0.0001843340752095996], "beta": -1.332449795603768, "duration": 160, "sigma": 40}}]}, {"name": "sx", "qubits": [6], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d6", "label": "X90p_d6", "pulse_shape": "drag", "parameters": {"amp": [0.09482627631708003, -0.0001378628323857269], "beta": 0.0704083149311823, "duration": 160, "sigma": 40}}]}, {"name": "u1", "qubits": [0], "sequence": [{"name": "fc", "t0": 0, "ch": "d0", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u1", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [1], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u0", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u4", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u5", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [2], "sequence": [{"name": "fc", "t0": 0, "ch": "d2", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u2", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [3], "sequence": [{"name": "fc", "t0": 0, "ch": "d3", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u3", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u8", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [4], "sequence": [{"name": "fc", "t0": 0, "ch": "d4", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u9", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [5], "sequence": [{"name": "fc", "t0": 0, "ch": "d5", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u11", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u6", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u7", "phase": "-(P0)"}]}, {"name": "u1", "qubits": [6], "sequence": [{"name": "fc", "t0": 0, "ch": "d6", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u10", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [0], "sequence": [{"name": "fc", "t0": 0, "ch": "d0", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d0", "label": "Y90p_d0", "pulse_shape": "drag", "parameters": {"amp": [-0.0009441951251258176, 0.08028684056150216], "beta": -0.3176025535596349, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d0", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u1", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u1", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [1], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "Y90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.00026059797759549197, 0.1063777054170297], "beta": -2.749977333902907, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d1", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u0", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u0", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u4", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u4", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u5", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u5", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [2], "sequence": [{"name": "fc", "t0": 0, "ch": "d2", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "Y90p_d2", "pulse_shape": "drag", "parameters": {"amp": [-0.001734984274485623, 0.07467637909447875], "beta": -1.828679341512514, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d2", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u2", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u2", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [3], "sequence": [{"name": "fc", "t0": 0, "ch": "d3", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "Y90p_d3", "pulse_shape": "drag", "parameters": {"amp": [0.00012402389767824092, 0.08212218511603157], "beta": 0.5360384031224531, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d3", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u3", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u3", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u8", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u8", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [4], "sequence": [{"name": "fc", "t0": 0, "ch": "d4", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "Y90p_d4", "pulse_shape": "drag", "parameters": {"amp": [-0.0005215139379359454, 0.09052534800091389], "beta": -0.22112444563867778, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d4", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u9", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u9", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [5], "sequence": [{"name": "fc", "t0": 0, "ch": "d5", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "Y90p_d5", "pulse_shape": "drag", "parameters": {"amp": [-0.00018433407520959663, 0.09203137046859432], "beta": -1.332449795603768, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d5", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u11", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u11", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u6", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u6", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u7", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u7", "phase": "-(P0)"}]}, {"name": "u2", "qubits": [6], "sequence": [{"name": "fc", "t0": 0, "ch": "d6", "phase": "-(P1)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d6", "label": "Y90p_d6", "pulse_shape": "drag", "parameters": {"amp": [0.00013786283238574086, 0.09482627631708003], "beta": 0.0704083149311823, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d6", "phase": "-(P0)"}, {"name": "fc", "t0": 0, "ch": "u10", "phase": "-(P1)"}, {"name": "fc", "t0": 160, "ch": "u10", "phase": "-(P0)"}]}, {"name": "u3", "qubits": [0], "sequence": [{"name": "fc", "t0": 0, "ch": "d0", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d0", "label": "X90p_d0", "pulse_shape": "drag", "parameters": {"amp": [0.08028684056150216, 0.0009441951251258224], "beta": -0.3176025535596349, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d0", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d0", "label": "X90m_d0", "pulse_shape": "drag", "parameters": {"amp": [-0.08028684056150216, -0.0009441951251257948], "beta": -0.3176025535596349, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d0", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u1", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u1", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u1", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [1], "sequence": [{"name": "fc", "t0": 0, "ch": "d1", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "X90p_d1", "pulse_shape": "drag", "parameters": {"amp": [0.1063777054170297, -0.0002605979775954761], "beta": -2.749977333902907, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d1", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d1", "label": "X90m_d1", "pulse_shape": "drag", "parameters": {"amp": [-0.1063777054170297, 0.00026059797759547484], "beta": -2.749977333902907, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d1", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u0", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u0", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u0", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u4", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u4", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u4", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u5", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u5", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u5", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [2], "sequence": [{"name": "fc", "t0": 0, "ch": "d2", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "X90p_d2", "pulse_shape": "drag", "parameters": {"amp": [0.07467637909447875, 0.0017349842744856267], "beta": -1.828679341512514, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d2", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d2", "label": "X90m_d2", "pulse_shape": "drag", "parameters": {"amp": [-0.07467637909447875, -0.0017349842744856182], "beta": -1.828679341512514, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d2", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u2", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u2", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u2", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [3], "sequence": [{"name": "fc", "t0": 0, "ch": "d3", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "X90p_d3", "pulse_shape": "drag", "parameters": {"amp": [0.08212218511603157, -0.0001240238976782344], "beta": 0.5360384031224531, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d3", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d3", "label": "X90m_d3", "pulse_shape": "drag", "parameters": {"amp": [-0.08212218511603157, 0.00012402389767824596], "beta": 0.5360384031224531, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d3", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u3", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u3", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u3", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u8", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u8", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u8", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [4], "sequence": [{"name": "fc", "t0": 0, "ch": "d4", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "X90p_d4", "pulse_shape": "drag", "parameters": {"amp": [0.09052534800091389, 0.0005215139379359441], "beta": -0.22112444563867778, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d4", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d4", "label": "X90m_d4", "pulse_shape": "drag", "parameters": {"amp": [-0.09052534800091389, -0.0005215139379359399], "beta": -0.22112444563867778, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d4", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u9", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u9", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u9", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [5], "sequence": [{"name": "fc", "t0": 0, "ch": "d5", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "X90p_d5", "pulse_shape": "drag", "parameters": {"amp": [0.09203137046859432, 0.0001843340752095996], "beta": -1.332449795603768, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d5", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d5", "label": "X90m_d5", "pulse_shape": "drag", "parameters": {"amp": [-0.09203137046859432, -0.00018433407520959102], "beta": -1.332449795603768, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d5", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u11", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u11", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u11", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u6", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u6", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u6", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u7", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u7", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u7", "phase": "-(P1)"}]}, {"name": "u3", "qubits": [6], "sequence": [{"name": "fc", "t0": 0, "ch": "d6", "phase": "-(P2)"}, {"name": "parametric_pulse", "t0": 0, "ch": "d6", "label": "X90p_d6", "pulse_shape": "drag", "parameters": {"amp": [0.09482627631708003, -0.0001378628323857269], "beta": 0.0704083149311823, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 160, "ch": "d6", "phase": "-(P0)"}, {"name": "parametric_pulse", "t0": 160, "ch": "d6", "label": "X90m_d6", "pulse_shape": "drag", "parameters": {"amp": [-0.09482627631708003, 0.0001378628323857467], "beta": 0.0704083149311823, "duration": 160, "sigma": 40}}, {"name": "fc", "t0": 320, "ch": "d6", "phase": "-(P1)"}, {"name": "fc", "t0": 0, "ch": "u10", "phase": "-(P2)"}, {"name": "fc", "t0": 160, "ch": "u10", "phase": "-(P0)"}, {"name": "fc", "t0": 320, "ch": "u10", "phase": "-(P1)"}]}, {"name": "x", "qubits": [0], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d0", "label": "Xp_d0", "pulse_shape": "drag", "parameters": {"amp": [0.1609444717709449, 0.0], "beta": -0.23759198781349172, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [1], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d1", "label": "Xp_d1", "pulse_shape": "drag", "parameters": {"amp": [0.21191631695055452, 0.0], "beta": -2.3056886030954495, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [2], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d2", "label": "Xp_d2", "pulse_shape": "drag", "parameters": {"amp": [0.14864056467668044, 0.0], "beta": -1.6290667006162407, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [3], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d3", "label": "Xp_d3", "pulse_shape": "drag", "parameters": {"amp": [0.16425693507037584, 0.0], "beta": 0.9110282451854017, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [4], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d4", "label": "Xp_d4", "pulse_shape": "drag", "parameters": {"amp": [0.18102457902941863, 0.0], "beta": -0.17543963993345119, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [5], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d5", "label": "Xp_d5", "pulse_shape": "drag", "parameters": {"amp": [0.1836574130911915, 0.0], "beta": -0.8203876811875642, "duration": 160, "sigma": 40}}]}, {"name": "x", "qubits": [6], "sequence": [{"name": "parametric_pulse", "t0": 0, "ch": "d6", "label": "Xp_d6", "pulse_shape": "drag", "parameters": {"amp": [0.18914437866428077, 0.0], "beta": 0.2819848205131056, "duration": 160, "sigma": 40}}]}], "meas_kernel": {"name": "hw_qmfk", "params": {}}, "discriminator": {"name": "hw_qmfk", "params": {}}, "_data": {}} \ No newline at end of file diff --git a/qiskit/algorithms/evolvers/variational/variational_principles/imaginary_variational_principle.py b/qiskit/providers/fake_provider/backends/perth/fake_perth.py similarity index 52% rename from qiskit/algorithms/evolvers/variational/variational_principles/imaginary_variational_principle.py rename to qiskit/providers/fake_provider/backends/perth/fake_perth.py index bcd60241942a..d9e7a6c8bdb9 100644 --- a/qiskit/algorithms/evolvers/variational/variational_principles/imaginary_variational_principle.py +++ b/qiskit/providers/fake_provider/backends/perth/fake_perth.py @@ -1,6 +1,6 @@ # This code is part of Qiskit. # -# (C) Copyright IBM 2021, 2022. +# (C) Copyright IBM 2022. # # This code is licensed under the Apache License, Version 2.0. You may # obtain a copy of this license in the LICENSE.txt file in the root directory @@ -10,15 +10,20 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -"""Abstract class for an Imaginary Variational Principle.""" -from abc import ABC +""" +Fake Perth device (7 qubits). +""" -from ..variational_principles.variational_principle import ( - VariationalPrinciple, -) +import os +from qiskit.providers.fake_provider import fake_backend -class ImaginaryVariationalPrinciple(VariationalPrinciple, ABC): - """Abstract class for an Imaginary Variational Principle. The imaginary variant means that we - consider imaginary time dynamics.""" +class FakePerth(fake_backend.FakeBackendV2): + """A fake 7 qubit backend.""" + + dirname = os.path.dirname(__file__) + conf_filename = "conf_perth.json" + props_filename = "props_perth.json" + defs_filename = "defs_perth.json" + backend_name = "fake_perth" diff --git a/qiskit/providers/fake_provider/backends/perth/props_perth.json b/qiskit/providers/fake_provider/backends/perth/props_perth.json new file mode 100644 index 000000000000..9fee32843672 --- /dev/null +++ b/qiskit/providers/fake_provider/backends/perth/props_perth.json @@ -0,0 +1 @@ +{"backend_name": "ibm_perth", "backend_version": "1.1.26", "last_update_date": "2022-07-13T22:00:27+02:00", "qubits": [[{"date": "2022-07-13T21:11:10+02:00", "name": "T1", "unit": "us", "value": 200.89953443278273}, {"date": "2022-07-13T06:15:57+02:00", "name": "T2", "unit": "us", "value": 94.6383136187882}, {"date": "2022-07-13T22:00:27+02:00", "name": "frequency", "unit": "GHz", "value": 5.157546043297998}, {"date": "2022-07-13T22:00:27+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.3415245174784648}, {"date": "2022-07-13T06:13:55+02:00", "name": "readout_error", "unit": "", "value": 0.023700000000000054}, {"date": "2022-07-13T06:13:55+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.028800000000000048}, {"date": "2022-07-13T06:13:55+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0186}, {"date": "2022-07-13T06:13:55+02:00", "name": "readout_length", "unit": "ns", "value": 675.5555555555555}], [{"date": "2022-07-13T21:12:22+02:00", "name": "T1", "unit": "us", "value": 166.2728847605733}, {"date": "2022-07-13T06:16:21+02:00", "name": "T2", "unit": "us", "value": 66.15410809090078}, {"date": "2022-07-13T22:00:27+02:00", "name": "frequency", "unit": "GHz", "value": 5.033691457253806}, {"date": "2022-07-13T22:00:27+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.3443687022163673}, {"date": "2022-07-13T06:13:55+02:00", "name": "readout_error", "unit": "", "value": 0.01739999999999997}, {"date": "2022-07-13T06:13:55+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.01959999999999995}, {"date": "2022-07-13T06:13:55+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0152}, {"date": "2022-07-13T06:13:55+02:00", "name": "readout_length", "unit": "ns", "value": 675.5555555555555}], [{"date": "2022-07-13T21:11:10+02:00", "name": "T1", "unit": "us", "value": 263.42350263617857}, {"date": "2022-07-13T06:15:57+02:00", "name": "T2", "unit": "us", "value": 157.76719815467376}, {"date": "2022-07-13T22:00:27+02:00", "name": "frequency", "unit": "GHz", "value": 4.862635459406973}, {"date": "2022-07-13T22:00:27+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.3472724723347956}, {"date": "2022-07-13T06:13:55+02:00", "name": "readout_error", "unit": "", "value": 0.014900000000000024}, {"date": "2022-07-13T06:13:55+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.015000000000000013}, {"date": "2022-07-13T06:13:55+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0148}, {"date": "2022-07-13T06:13:55+02:00", "name": "readout_length", "unit": "ns", "value": 675.5555555555555}], [{"date": "2022-07-13T21:11:10+02:00", "name": "T1", "unit": "us", "value": 100.68605678701991}, {"date": "2022-07-13T06:15:57+02:00", "name": "T2", "unit": "us", "value": 130.5117099541707}, {"date": "2022-07-13T22:00:27+02:00", "name": "frequency", "unit": "GHz", "value": 5.125269059177807}, {"date": "2022-07-13T22:00:27+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.3404418992142746}, {"date": "2022-07-13T06:13:55+02:00", "name": "readout_error", "unit": "", "value": 0.012899999999999912}, {"date": "2022-07-13T06:13:55+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.0156}, {"date": "2022-07-13T06:13:55+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.010199999999999987}, {"date": "2022-07-13T06:13:55+02:00", "name": "readout_length", "unit": "ns", "value": 675.5555555555555}], [{"date": "2022-07-13T21:11:10+02:00", "name": "T1", "unit": "us", "value": 82.20132528271266}, {"date": "2022-07-13T06:15:57+02:00", "name": "T2", "unit": "us", "value": 61.0443994686073}, {"date": "2022-07-13T22:00:27+02:00", "name": "frequency", "unit": "GHz", "value": 5.159221243756982}, {"date": "2022-07-13T22:00:27+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.33336653711831216}, {"date": "2022-07-13T06:13:55+02:00", "name": "readout_error", "unit": "", "value": 0.02200000000000002}, {"date": "2022-07-13T06:13:55+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.021}, {"date": "2022-07-13T06:13:55+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.02300000000000002}, {"date": "2022-07-13T06:13:55+02:00", "name": "readout_length", "unit": "ns", "value": 675.5555555555555}], [{"date": "2022-07-13T21:12:22+02:00", "name": "T1", "unit": "us", "value": 147.38039983096064}, {"date": "2022-07-13T06:16:21+02:00", "name": "T2", "unit": "us", "value": 129.54620235583573}, {"date": "2022-07-13T22:00:27+02:00", "name": "frequency", "unit": "GHz", "value": 4.978609543928158}, {"date": "2022-07-13T22:00:27+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.3460220316533784}, {"date": "2022-07-13T06:13:55+02:00", "name": "readout_error", "unit": "", "value": 0.020399999999999974}, {"date": "2022-07-13T06:13:55+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.02859999999999996}, {"date": "2022-07-13T06:13:55+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0122}, {"date": "2022-07-13T06:13:55+02:00", "name": "readout_length", "unit": "ns", "value": 675.5555555555555}], [{"date": "2022-07-13T21:11:10+02:00", "name": "T1", "unit": "us", "value": 189.41073451761088}, {"date": "2022-07-13T06:15:57+02:00", "name": "T2", "unit": "us", "value": 250.3269208865661}, {"date": "2022-07-13T22:00:27+02:00", "name": "frequency", "unit": "GHz", "value": 5.156651195298073}, {"date": "2022-07-13T22:00:27+02:00", "name": "anharmonicity", "unit": "GHz", "value": -0.34045439072670325}, {"date": "2022-07-13T06:13:55+02:00", "name": "readout_error", "unit": "", "value": 0.006199999999999983}, {"date": "2022-07-13T06:13:55+02:00", "name": "prob_meas0_prep1", "unit": "", "value": 0.008199999999999985}, {"date": "2022-07-13T06:13:55+02:00", "name": "prob_meas1_prep0", "unit": "", "value": 0.0042}, {"date": "2022-07-13T06:13:55+02:00", "name": "readout_length", "unit": "ns", "value": 675.5555555555555}]], "gates": [{"qubits": [0], "gate": "id", "parameters": [{"date": "2022-07-13T06:18:37+02:00", "name": "gate_error", "unit": "", "value": 0.00016177923123429183}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id0"}, {"qubits": [1], "gate": "id", "parameters": [{"date": "2022-07-13T06:16:45+02:00", "name": "gate_error", "unit": "", "value": 0.0002861298613477165}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id1"}, {"qubits": [2], "gate": "id", "parameters": [{"date": "2022-07-13T06:16:45+02:00", "name": "gate_error", "unit": "", "value": 0.0003127255716463821}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id2"}, {"qubits": [3], "gate": "id", "parameters": [{"date": "2022-07-13T06:16:45+02:00", "name": "gate_error", "unit": "", "value": 0.00029484519077026874}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id3"}, {"qubits": [4], "gate": "id", "parameters": [{"date": "2022-07-13T06:18:37+02:00", "name": "gate_error", "unit": "", "value": 0.0006604332464016349}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id4"}, {"qubits": [5], "gate": "id", "parameters": [{"date": "2022-07-13T06:16:45+02:00", "name": "gate_error", "unit": "", "value": 0.000337102497347558}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id5"}, {"qubits": [6], "gate": "id", "parameters": [{"date": "2022-07-13T06:16:45+02:00", "name": "gate_error", "unit": "", "value": 0.00037504932861693127}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "id6"}, {"qubits": [0], "gate": "rz", "parameters": [{"date": "2022-07-13T22:00:27+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz0"}, {"qubits": [1], "gate": "rz", "parameters": [{"date": "2022-07-13T22:00:27+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz1"}, {"qubits": [2], "gate": "rz", "parameters": [{"date": "2022-07-13T22:00:27+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz2"}, {"qubits": [3], "gate": "rz", "parameters": [{"date": "2022-07-13T22:00:27+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz3"}, {"qubits": [4], "gate": "rz", "parameters": [{"date": "2022-07-13T22:00:27+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz4"}, {"qubits": [5], "gate": "rz", "parameters": [{"date": "2022-07-13T22:00:27+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz5"}, {"qubits": [6], "gate": "rz", "parameters": [{"date": "2022-07-13T22:00:27+02:00", "name": "gate_error", "unit": "", "value": 0}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 0}], "name": "rz6"}, {"qubits": [0], "gate": "sx", "parameters": [{"date": "2022-07-13T06:18:37+02:00", "name": "gate_error", "unit": "", "value": 0.00016177923123429183}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx0"}, {"qubits": [1], "gate": "sx", "parameters": [{"date": "2022-07-13T06:16:45+02:00", "name": "gate_error", "unit": "", "value": 0.0002861298613477165}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx1"}, {"qubits": [2], "gate": "sx", "parameters": [{"date": "2022-07-13T06:16:45+02:00", "name": "gate_error", "unit": "", "value": 0.0003127255716463821}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx2"}, {"qubits": [3], "gate": "sx", "parameters": [{"date": "2022-07-13T06:16:45+02:00", "name": "gate_error", "unit": "", "value": 0.00029484519077026874}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx3"}, {"qubits": [4], "gate": "sx", "parameters": [{"date": "2022-07-13T06:18:37+02:00", "name": "gate_error", "unit": "", "value": 0.0006604332464016349}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx4"}, {"qubits": [5], "gate": "sx", "parameters": [{"date": "2022-07-13T06:16:45+02:00", "name": "gate_error", "unit": "", "value": 0.000337102497347558}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx5"}, {"qubits": [6], "gate": "sx", "parameters": [{"date": "2022-07-13T06:16:45+02:00", "name": "gate_error", "unit": "", "value": 0.00037504932861693127}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "sx6"}, {"qubits": [0], "gate": "x", "parameters": [{"date": "2022-07-13T06:18:37+02:00", "name": "gate_error", "unit": "", "value": 0.00016177923123429183}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x0"}, {"qubits": [1], "gate": "x", "parameters": [{"date": "2022-07-13T06:16:45+02:00", "name": "gate_error", "unit": "", "value": 0.0002861298613477165}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x1"}, {"qubits": [2], "gate": "x", "parameters": [{"date": "2022-07-13T06:16:45+02:00", "name": "gate_error", "unit": "", "value": 0.0003127255716463821}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x2"}, {"qubits": [3], "gate": "x", "parameters": [{"date": "2022-07-13T06:16:45+02:00", "name": "gate_error", "unit": "", "value": 0.00029484519077026874}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x3"}, {"qubits": [4], "gate": "x", "parameters": [{"date": "2022-07-13T06:18:37+02:00", "name": "gate_error", "unit": "", "value": 0.0006604332464016349}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x4"}, {"qubits": [5], "gate": "x", "parameters": [{"date": "2022-07-13T06:16:45+02:00", "name": "gate_error", "unit": "", "value": 0.000337102497347558}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x5"}, {"qubits": [6], "gate": "x", "parameters": [{"date": "2022-07-13T06:16:45+02:00", "name": "gate_error", "unit": "", "value": 0.00037504932861693127}, {"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 35.55555555555556}], "name": "x6"}, {"qubits": [6, 5], "gate": "cx", "parameters": [{"date": "2022-07-13T06:42:01+02:00", "name": "gate_error", "unit": "", "value": 0.012708533536706618}, {"date": "2022-07-10T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 604.4444444444445}], "name": "cx6_5"}, {"qubits": [5, 6], "gate": "cx", "parameters": [{"date": "2022-07-13T06:42:01+02:00", "name": "gate_error", "unit": "", "value": 0.012708533536706618}, {"date": "2022-07-10T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 640}], "name": "cx5_6"}, {"qubits": [4, 5], "gate": "cx", "parameters": [{"date": "2022-07-13T06:38:20+02:00", "name": "gate_error", "unit": "", "value": 0.019482343465518498}, {"date": "2022-07-10T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 590.2222222222222}], "name": "cx4_5"}, {"qubits": [5, 4], "gate": "cx", "parameters": [{"date": "2022-07-13T06:38:20+02:00", "name": "gate_error", "unit": "", "value": 0.019482343465518498}, {"date": "2022-07-10T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 625.7777777777777}], "name": "cx5_4"}, {"qubits": [3, 5], "gate": "cx", "parameters": [{"date": "2022-07-13T06:34:40+02:00", "name": "gate_error", "unit": "", "value": 0.00901246494553054}, {"date": "2022-07-10T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 284.44444444444446}], "name": "cx3_5"}, {"qubits": [5, 3], "gate": "cx", "parameters": [{"date": "2022-07-13T06:34:40+02:00", "name": "gate_error", "unit": "", "value": 0.00901246494553054}, {"date": "2022-07-10T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 320}], "name": "cx5_3"}, {"qubits": [3, 1], "gate": "cx", "parameters": [{"date": "2022-07-13T06:30:58+02:00", "name": "gate_error", "unit": "", "value": 0.00846195409719605}, {"date": "2022-07-10T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 369.77777777777777}], "name": "cx3_1"}, {"qubits": [1, 3], "gate": "cx", "parameters": [{"date": "2022-07-13T06:30:58+02:00", "name": "gate_error", "unit": "", "value": 0.00846195409719605}, {"date": "2022-07-10T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 405.3333333333333}], "name": "cx1_3"}, {"qubits": [2, 1], "gate": "cx", "parameters": [{"date": "2022-07-13T06:27:00+02:00", "name": "gate_error", "unit": "", "value": 0.007935151064707213}, {"date": "2022-07-10T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 320}], "name": "cx2_1"}, {"qubits": [1, 2], "gate": "cx", "parameters": [{"date": "2022-07-13T06:27:00+02:00", "name": "gate_error", "unit": "", "value": 0.007935151064707213}, {"date": "2022-07-10T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 355.55555555555554}], "name": "cx1_2"}, {"qubits": [0, 1], "gate": "cx", "parameters": [{"date": "2022-07-13T06:22:04+02:00", "name": "gate_error", "unit": "", "value": 0.007029932355712976}, {"date": "2022-07-10T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 391.1111111111111}], "name": "cx0_1"}, {"qubits": [1, 0], "gate": "cx", "parameters": [{"date": "2022-07-13T06:22:04+02:00", "name": "gate_error", "unit": "", "value": 0.007029932355712976}, {"date": "2022-07-10T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 426.66666666666663}], "name": "cx1_0"}, {"qubits": [0], "gate": "reset", "parameters": [{"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 796.4444444444443}], "name": "reset0"}, {"qubits": [1], "gate": "reset", "parameters": [{"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 768}], "name": "reset1"}, {"qubits": [2], "gate": "reset", "parameters": [{"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 888.8888888888888}], "name": "reset2"}, {"qubits": [3], "gate": "reset", "parameters": [{"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 796.4444444444443}], "name": "reset3"}, {"qubits": [4], "gate": "reset", "parameters": [{"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 796.4444444444443}], "name": "reset4"}, {"qubits": [5], "gate": "reset", "parameters": [{"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 796.4444444444443}], "name": "reset5"}, {"qubits": [6], "gate": "reset", "parameters": [{"date": "2022-07-13T22:00:27+02:00", "name": "gate_length", "unit": "ns", "value": 796.4444444444443}], "name": "reset6"}], "general": [{"date": "2022-07-13T22:00:27+02:00", "name": "jq_01", "unit": "GHz", "value": 4.750927358892559e-05}, {"date": "2022-07-13T22:00:27+02:00", "name": "zz_01", "unit": "GHz", "value": -1.0530821573059075e-07}, {"date": "2022-07-13T22:00:27+02:00", "name": "jq_12", "unit": "GHz", "value": 0.0014522347961531108}, {"date": "2022-07-13T22:00:27+02:00", "name": "zz_12", "unit": "GHz", "value": 0.0007376049216693799}, {"date": "2022-07-13T22:00:27+02:00", "name": "jq_45", "unit": "GHz", "value": 0.0030490571541115876}, {"date": "2022-07-13T22:00:27+02:00", "name": "zz_45", "unit": "GHz", "value": -0.00016199158325019491}, {"date": "2022-07-13T22:00:27+02:00", "name": "jq_56", "unit": "GHz", "value": 0.002990306925182959}, {"date": "2022-07-13T22:00:27+02:00", "name": "zz_56", "unit": "GHz", "value": -0.0001613397318471186}, {"date": "2022-07-13T22:00:27+02:00", "name": "jq_13", "unit": "GHz", "value": 5.4831985295249893e-05}, {"date": "2022-07-13T22:00:27+02:00", "name": "zz_13", "unit": "GHz", "value": -6.126956847263501e-09}, {"date": "2022-07-13T22:00:27+02:00", "name": "jq_35", "unit": "GHz", "value": 0.002197212188220339}, {"date": "2022-07-13T22:00:27+02:00", "name": "zz_35", "unit": "GHz", "value": -7.467037221625553e-05}]} \ No newline at end of file diff --git a/qiskit/providers/fake_provider/fake_provider.py b/qiskit/providers/fake_provider/fake_provider.py index 41b69e4ae30a..2d8501f5021d 100644 --- a/qiskit/providers/fake_provider/fake_provider.py +++ b/qiskit/providers/fake_provider/fake_provider.py @@ -91,6 +91,7 @@ def __init__(self): FakeAlmadenV2(), FakeArmonkV2(), FakeAthensV2(), + FakeAuckland(), FakeBelemV2(), FakeBoeblingenV2(), FakeBogotaV2(), @@ -100,6 +101,7 @@ def __init__(self): FakeCambridgeV2(), FakeCasablancaV2(), FakeEssexV2(), + FakeGeneva(), FakeGuadalupeV2(), FakeHanoiV2(), FakeJakartaV2(), @@ -114,8 +116,10 @@ def __init__(self): FakeMontrealV2(), FakeMumbaiV2(), FakeNairobiV2(), + FakeOslo(), FakeOurenseV2(), FakeParisV2(), + FakePerth(), FakePoughkeepsieV2(), FakeQuitoV2(), FakeRochesterV2(), diff --git a/qiskit/pulse/__init__.py b/qiskit/pulse/__init__.py index f1ac8e3582cb..e6dab41cfb29 100644 --- a/qiskit/pulse/__init__.py +++ b/qiskit/pulse/__init__.py @@ -74,6 +74,7 @@ call, delay, play, + reference, set_frequency, set_phase, shift_frequency, diff --git a/qiskit/pulse/builder.py b/qiskit/pulse/builder.py index 6bde026c7f46..f0ed02eaa006 100644 --- a/qiskit/pulse/builder.py +++ b/qiskit/pulse/builder.py @@ -11,6 +11,9 @@ # that they have been altered from the originals. r""" + +.. _pulse_builder: + ============= Pulse Builder ============= @@ -299,6 +302,7 @@ call delay play + reference set_frequency set_phase shift_frequency @@ -440,6 +444,8 @@ import contextvars import functools import itertools +import uuid +import warnings from contextlib import contextmanager from typing import ( Any, @@ -736,6 +742,16 @@ def append_block(self, context_block: ScheduleBlock): if len(context_block) > 0: self._context_stack[-1].append(context_block) + def append_reference(self, name: str, *extra_keys: str): + """Add external program as a :class:`~qiskit.pulse.instructions.Reference` instruction. + + Args: + name: Name of subroutine. + extra_keys: Assistance keys to uniquely specify the subroutine. + """ + inst = instructions.Reference(name, *extra_keys) + self.append_instruction(inst) + def call_subroutine( self, subroutine: Union[circuit.QuantumCircuit, Schedule, ScheduleBlock], @@ -747,7 +763,7 @@ def call_subroutine( The ``subroutine`` is appended to the context schedule as a call instruction. This logic just generates a convenient program representation in the compiler. - Thus this doesn't affect execution of inline subroutines. + Thus, this doesn't affect execution of inline subroutines. See :class:`~pulse.instructions.Call` for more details. Args: @@ -769,39 +785,53 @@ def call_subroutine( self._compile_lazy_circuit() subroutine = self._compile_circuit(subroutine) - empty_subroutine = True - if isinstance(subroutine, Schedule): - if len(subroutine.instructions) > 0: - empty_subroutine = False - elif isinstance(subroutine, ScheduleBlock): - if len(subroutine.blocks) > 0: - empty_subroutine = False - else: + if not isinstance(subroutine, (Schedule, ScheduleBlock)): raise exceptions.PulseError( f"Subroutine type {subroutine.__class__.__name__} is " "not valid data format. Call QuantumCircuit, " "Schedule, or ScheduleBlock." ) - if not empty_subroutine: - param_value_map = {} - for param_name, assigned_value in kw_params.items(): - param_objs = subroutine.get_parameters(param_name) - if len(param_objs) > 0: - for param_obj in param_objs: - param_value_map[param_obj] = assigned_value - else: - raise exceptions.PulseError( - f"Parameter {param_name} is not defined in the target subroutine. " - f'{", ".join(map(str, subroutine.parameters))} can be specified.' - ) - - if value_dict: - param_value_map.update(value_dict) + if len(subroutine) == 0: + return - call_def = instructions.Call(subroutine, param_value_map, name) - - self.append_instruction(call_def) + # Create local parameter assignment + local_assignment = dict() + for param_name, value in kw_params.items(): + params = subroutine.get_parameters(param_name) + if not params: + raise exceptions.PulseError( + f"Parameter {param_name} is not defined in the target subroutine. " + f'{", ".join(map(str, subroutine.parameters))} can be specified.' + ) + for param in params: + local_assignment[param] = value + if value_dict: + if local_assignment.keys() & value_dict.keys(): + warnings.warn( + "Some parameters provided by 'value_dict' conflict with one through " + "keyword arguments. Parameter values in the keyword arguments " + "are overridden by the dictionary values.", + UserWarning, + ) + local_assignment.update(value_dict) + + if isinstance(subroutine, ScheduleBlock): + # If subroutine is schedule block, use reference mechanism. + if local_assignment: + subroutine = subroutine.assign_parameters(local_assignment, inplace=False) + if name is None: + # Add unique string, not to accidentally override existing reference entry. + keys = (subroutine.name, uuid.uuid4().hex) + else: + keys = (name,) + self.append_reference(*keys) + self.get_context().assign_references({keys: subroutine}, inplace=True) + else: + # If subroutine is schedule, use Call instruction. + name = name or subroutine.name + call_instruction = instructions.Call(subroutine, local_assignment, name) + self.append_instruction(call_instruction) @_requires_backend def call_gate(self, gate: circuit.Gate, qubits: Tuple[int, ...], lazy: bool = True): @@ -1679,18 +1709,17 @@ def acquire( from qiskit import pulse - d0 = pulse.MeasureChannel(0) + acq0 = pulse.AcquireChannel(0) mem0 = pulse.MemorySlot(0) with pulse.build() as pulse_prog: - pulse.acquire(100, d0, mem0) + pulse.acquire(100, acq0, mem0) # measurement metadata kernel = pulse.configuration.Kernel('linear_discriminator') - pulse.acquire(100, d0, mem0, kernel=kernel) + pulse.acquire(100, acq0, mem0, kernel=kernel) - .. note:: The type of data acquire will depend on the execution - ``meas_level``. + .. note:: The type of data acquire will depend on the execution ``meas_level``. Args: duration: Duration to acquire data for @@ -1832,89 +1861,166 @@ def snapshot(label: str, snapshot_type: str = "statevector"): def call( - target: Union[circuit.QuantumCircuit, Schedule, ScheduleBlock], + target: Optional[Union[circuit.QuantumCircuit, Schedule, ScheduleBlock]], name: Optional[str] = None, value_dict: Optional[Dict[ParameterValueType, ParameterValueType]] = None, **kw_params: ParameterValueType, ): - """Call the ``target`` within the currently active builder context with arbitrary + """Call the subroutine within the currently active builder context with arbitrary parameters which will be assigned to the target program. .. note:: - The ``target`` program is inserted as a ``Call`` instruction. - This instruction defines a subroutine. See :class:`~qiskit.pulse.instructions.Call` - for more details. + + If the ``target`` program is a :class:`.ScheduleBlock`, then a :class:`.Reference` + instruction will be created and appended to the current context. + The ``target`` program will be immediately assigned to the current scope as a subroutine. + If the ``target`` program is :class:`.Schedule`, it will be wrapped by the + :class:`.Call` instruction and appended to the current context to avoid + a mixed representation of :class:`.ScheduleBlock` and :class:`.Schedule`. + If the ``target`` program is a :class:`.QuantumCircuit` it will be scheduled + and the new :class:`.Schedule` will be added as a :class:`.Call` instruction. Examples: - .. code-block:: python + 1. Calling a schedule block (recommended) - from qiskit import circuit, pulse, schedule, transpile - from qiskit.providers.fake_provider import FakeOpenPulse2Q + .. jupyter-execute:: - backend = FakeOpenPulse2Q() + from qiskit import circuit, pulse + from qiskit.providers.fake_provider import FakeBogotaV2 - qc = circuit.QuantumCircuit(2) - qc.cx(0, 1) - qc_transpiled = transpile(qc, optimization_level=3) - sched = schedule(qc_transpiled, backend) + backend = FakeBogotaV2() - with pulse.build(backend) as pulse_prog: - pulse.call(sched) - pulse.call(qc) + with pulse.build() as x_sched: + pulse.play(pulse.Gaussian(160, 0.1, 40), pulse.DriveChannel(0)) - This function can optionally take parameter dictionary with the parameterized target program. + with pulse.build() as pulse_prog: + pulse.call(x_sched) - .. code-block:: python + print(pulse_prog) - from qiskit import circuit, pulse + The actual program is stored in the reference table attached to the schedule. - amp = circuit.Parameter('amp') + .. jupyter-execute:: - with pulse.build() as subroutine: - pulse.play(pulse.Gaussian(160, amp, 40), pulse.DriveChannel(0)) + print(pulse_prog.references) - with pulse.build() as main_prog: - pulse.call(subroutine, amp=0.1) - pulse.call(subroutine, amp=0.3) + In addition, you can call a parameterized target program with parameter assignment. - If there is any parameter name collision, you can distinguish them by specifying - each parameter object as a python dictionary. Otherwise ``amp1`` and ``amp2`` will be - updated with the same value. + .. jupyter-execute:: - .. code-block:: python + amp = circuit.Parameter("amp") - from qiskit import circuit, pulse + with pulse.build() as subroutine: + pulse.play(pulse.Gaussian(160, amp, 40), pulse.DriveChannel(0)) - amp1 = circuit.Parameter('amp') - amp2 = circuit.Parameter('amp') + with pulse.build() as pulse_prog: + pulse.call(subroutine, amp=0.1) + pulse.call(subroutine, amp=0.3) - with pulse.build() as subroutine: - pulse.play(pulse.Gaussian(160, amp1, 40), pulse.DriveChannel(0)) - pulse.play(pulse.Gaussian(160, amp2, 40), pulse.DriveChannel(1)) + print(pulse_prog) - with pulse.build() as main_prog: - pulse.call(subroutine, value_dict={amp1: 0.1, amp2: 0.2}) + If there is a name collision between parameters, you can distinguish them by specifying + each parameter object in a python dictionary. For example, + + .. jupyter-execute:: + + amp1 = circuit.Parameter('amp') + amp2 = circuit.Parameter('amp') + + with pulse.build() as subroutine: + pulse.play(pulse.Gaussian(160, amp1, 40), pulse.DriveChannel(0)) + pulse.play(pulse.Gaussian(160, amp2, 40), pulse.DriveChannel(1)) + + with pulse.build() as pulse_prog: + pulse.call(subroutine, value_dict={amp1: 0.1, amp2: 0.3}) + + print(pulse_prog) + + 2. Calling a schedule + + .. jupyter-execute:: + + x_sched = backend.instruction_schedule_map.get("x", (0,)) + + with pulse.build(backend) as pulse_prog: + pulse.call(x_sched) + + print(pulse_prog) + + Currently, the backend calibrated gates are provided in the form of :class:`~.Schedule`. + The parameter assignment mechanism is available also for schedules. + However, the called schedule is not treated as a reference. + + 3. Calling a quantum circuit + + .. jupyter-execute:: + + backend = FakeBogotaV2() + + qc = circuit.QuantumCircuit(1) + qc.x(0) + + with pulse.build(backend) as pulse_prog: + pulse.call(qc) + + print(pulse_prog) + + .. warning:: + + Calling a circuit from a schedule is not encouraged. Currently, the Qiskit execution model + is migrating toward the pulse gate model, where schedules are attached to + circuits through the :meth:`.QuantumCircuit.add_calibration` method. Args: target: Target circuit or pulse schedule to call. - name: Name of subroutine if defined. - value_dict: Parameter object and assigned value mapping. This is more precise way to - identify a parameter since mapping is managed with unique object id rather than - name. Especially there is any name collision in a parameter table. - kw_params: Parameter values to bind to the target subroutine - with string parameter names. If there are parameter name overlapping, - these parameters are updated with the same assigned value. + name: Optional. A unique name of subroutine if defined. When the name is explicitly + provided, one cannot call different schedule blocks with the same name. + value_dict: Optional. Parameters assigned to the ``target`` program. + If this dictionary is provided, the ``target`` program is copied and + then stored in the main built schedule and its parameters are assigned to the given values. + This dictionary is keyed on :class:`~.Parameter` objects, + allowing parameter name collision to be avoided. + kw_params: Alternative way to provide parameters. + Since this is keyed on the string parameter name, + the parameters having the same name are all updated together. + If you want to avoid name collision, use ``value_dict`` with :class:`~.Parameter` + objects instead. Raises: exceptions.PulseError: If the input ``target`` type is not supported. """ if not isinstance(target, (circuit.QuantumCircuit, Schedule, ScheduleBlock)): - raise exceptions.PulseError( - f'Target of type "{target.__class__.__name__}" is not supported.' - ) + raise exceptions.PulseError(f"'{target.__class__.__name__}' is not a valid target object.") - _active_builder().call_subroutine(target, name, value_dict, **kw_params) + _active_builder().call_subroutine( + subroutine=target, name=name, value_dict=value_dict, **kw_params + ) + + +def reference(name: str, *extra_keys: str): + """Refer to undefined subroutine by string keys. + + A :class:`~qiskit.pulse.instructions.Reference` instruction is implicitly created + and a schedule can be separately registered to the reference at a later stage. + + .. code-block:: python + + from qiskit import pulse + + with pulse.build() as main_prog: + pulse.reference("x_gate", "q0") + + with pulse.build() as subroutine: + pulse.play(pulse.Gaussian(160, 0.1, 40), pulse.DriveChannel(0)) + + main_prog.assign_references(subroutine_dict={("x_gate", "q0"): subroutine}) + + Args: + name: Name of subroutine. + extra_keys: Helper keys to uniquely specify the subroutine. + """ + _active_builder().append_reference(name, *extra_keys) # Directives diff --git a/qiskit/pulse/exceptions.py b/qiskit/pulse/exceptions.py index 272f8ceb4f93..21bda97ee1b9 100644 --- a/qiskit/pulse/exceptions.py +++ b/qiskit/pulse/exceptions.py @@ -37,3 +37,7 @@ class NoActiveBuilder(PulseError): class UnassignedDurationError(PulseError): """Raised if instruction duration is unassigned.""" + + +class UnassignedReferenceError(PulseError): + """Raised if subroutine is unassigned.""" diff --git a/qiskit/pulse/instructions/__init__.py b/qiskit/pulse/instructions/__init__.py index 5a980f8c1620..142a6e96e857 100644 --- a/qiskit/pulse/instructions/__init__.py +++ b/qiskit/pulse/instructions/__init__.py @@ -42,6 +42,7 @@ Acquire Call + Reference Delay Play SetFrequency @@ -63,3 +64,4 @@ from .phase import ShiftPhase, SetPhase from .play import Play from .snapshot import Snapshot +from .reference import Reference diff --git a/qiskit/pulse/instructions/acquire.py b/qiskit/pulse/instructions/acquire.py index 9555e9317938..f7d66bbfedd6 100644 --- a/qiskit/pulse/instructions/acquire.py +++ b/qiskit/pulse/instructions/acquire.py @@ -61,25 +61,33 @@ def __init__( discriminator: A ``Discriminator`` for discriminating kerneled IQ data into 0/1 results. name: Name of the instruction for display purposes. - - Raises: - PulseError: If channels are supplied, and the number of register and/or memory slots - does not equal the number of channels. """ - if isinstance(channel, list) or isinstance(mem_slot, list) or isinstance(reg_slot, list): - raise PulseError( - "The Acquire instruction takes only one AcquireChannel and one " - "classical memory destination for the measurement result." - ) - - if not (mem_slot or reg_slot): - raise PulseError("Neither MemorySlots nor RegisterSlots were supplied.") - super().__init__( operands=(duration, channel, mem_slot, reg_slot, kernel, discriminator), name=name, ) + def _validate(self): + """Called after initialization to validate instruction data. + + Raises: + PulseError: If the input ``channel`` is not type :class:`AcquireChannel`. + PulseError: If the input ``mem_slot`` is not type :class:`MemorySlot`. + PulseError: If the input ``reg_slot`` is not type :class:`RegisterSlot`. + PulseError: When memory slot and register slot are both empty. + """ + if not isinstance(self.channel, AcquireChannel): + raise PulseError(f"Expected an acquire channel, got {self.channel} instead.") + + if self.mem_slot and not isinstance(self.mem_slot, MemorySlot): + raise PulseError(f"Expected a memory slot, got {self.mem_slot} instead.") + + if self.reg_slot and not isinstance(self.reg_slot, RegisterSlot): + raise PulseError(f"Expected a register slot, got {self.reg_slot} instead.") + + if self.mem_slot is None and self.reg_slot is None: + raise PulseError("Neither MemorySlots nor RegisterSlots were supplied.") + @property def channel(self) -> AcquireChannel: """Return the :py:class:`~qiskit.pulse.channels.Channel` that this instruction is diff --git a/qiskit/pulse/instructions/call.py b/qiskit/pulse/instructions/call.py index 4f209f3d1a81..3353f23d0b4a 100644 --- a/qiskit/pulse/instructions/call.py +++ b/qiskit/pulse/instructions/call.py @@ -1,6 +1,6 @@ # This code is part of Qiskit. # -# (C) Copyright IBM 2020, 2021. +# (C) Copyright IBM 2020, 2021, 2022. # # This code is licensed under the Apache License, Version 2.0. You may # obtain a copy of this license in the LICENSE.txt file in the root directory @@ -49,9 +49,9 @@ def __init__( Raises: PulseError: If subroutine is not valid data format. """ - from qiskit.pulse.schedule import ScheduleBlock, Schedule + from qiskit.pulse.schedule import Schedule, ScheduleBlock - if not isinstance(subroutine, (ScheduleBlock, Schedule)): + if not isinstance(subroutine, (Schedule, ScheduleBlock)): raise PulseError(f"Subroutine type {subroutine.__class__.__name__} cannot be called.") value_dict = value_dict or {} @@ -112,18 +112,13 @@ def assigned_subroutine(self): return subroutine - def is_parameterized(self) -> bool: - """Return True iff the instruction is parameterized.""" - return any(isinstance(value, ParameterExpression) for value in self.arguments.values()) - @property def parameters(self) -> Set: """Unassigned parameters which determine the instruction behavior.""" params = set() for value in self._arguments.values(): if isinstance(value, ParameterExpression): - for param in value.parameters: - params.add(param) + params |= value.parameters return params @property @@ -156,7 +151,7 @@ def _get_arg_hash(self): """A helper function to generate hash of parameters.""" return hash(tuple(self.arguments.items())) - def __eq__(self, other: "Instruction") -> bool: + def __eq__(self, other: instruction.Instruction) -> bool: """Check if this instruction is equal to the `other` instruction. Instructions are equal if they share the same type, operands, and channels. diff --git a/qiskit/pulse/instructions/delay.py b/qiskit/pulse/instructions/delay.py index f045a4880ff3..e27353e09698 100644 --- a/qiskit/pulse/instructions/delay.py +++ b/qiskit/pulse/instructions/delay.py @@ -67,7 +67,3 @@ def channels(self) -> Tuple[Channel]: def duration(self) -> Union[int, ParameterExpression]: """Duration of this instruction.""" return self.operands[0] - - def is_parameterized(self) -> bool: - """Return ``True`` iff the instruction is parameterized.""" - return isinstance(self.duration, ParameterExpression) or super().is_parameterized() diff --git a/qiskit/pulse/instructions/frequency.py b/qiskit/pulse/instructions/frequency.py index 15866e0ae79a..a14e60ee1a32 100644 --- a/qiskit/pulse/instructions/frequency.py +++ b/qiskit/pulse/instructions/frequency.py @@ -16,8 +16,9 @@ from typing import Optional, Union, Tuple from qiskit.circuit.parameterexpression import ParameterExpression -from qiskit.pulse.channels import PulseChannel, PulseError +from qiskit.pulse.channels import PulseChannel from qiskit.pulse.instructions.instruction import Instruction +from qiskit.pulse.exceptions import PulseError class SetFrequency(Instruction): @@ -46,17 +47,18 @@ def __init__( frequency: New frequency of the channel in Hz. channel: The channel this instruction operates on. name: Name of this set channel frequency instruction. - Raises: - PulseError: If channel is not a PulseChannel. """ - if not isinstance(channel, PulseChannel): - raise PulseError( - "The `channel` argument to `SetFrequency` must be of type `channels.PulseChannel`." - ) - if not isinstance(frequency, ParameterExpression): - frequency = float(frequency) super().__init__(operands=(frequency, channel), name=name) + def _validate(self): + """Called after initialization to validate instruction data. + + Raises: + PulseError: If the input ``channel`` is not type :class:`PulseChannel`. + """ + if not isinstance(self.channel, PulseChannel): + raise PulseError(f"Expected a pulse channel, got {self.channel} instead.") + @property def frequency(self) -> Union[float, ParameterExpression]: """New frequency.""" @@ -79,10 +81,6 @@ def duration(self) -> int: """Duration of this instruction.""" return 0 - def is_parameterized(self) -> bool: - """Return True iff the instruction is parameterized.""" - return isinstance(self.frequency, ParameterExpression) or super().is_parameterized() - class ShiftFrequency(Instruction): """Shift the channel frequency away from the current frequency.""" @@ -99,17 +97,18 @@ def __init__( frequency: Frequency shift of the channel in Hz. channel: The channel this instruction operates on. name: Name of this set channel frequency instruction. - Raises: - PulseError: If channel is not a PulseChannel. """ - if not isinstance(frequency, ParameterExpression): - frequency = float(frequency) - if not isinstance(channel, PulseChannel): - raise PulseError( - "The `channel` argument to `ShiftFrequency` must be of type `channels.PulseChannel`." - ) super().__init__(operands=(frequency, channel), name=name) + def _validate(self): + """Called after initialization to validate instruction data. + + Raises: + PulseError: If the input ``channel`` is not type :class:`PulseChannel`. + """ + if not isinstance(self.channel, PulseChannel): + raise PulseError(f"Expected a pulse channel, got {self.channel} instead.") + @property def frequency(self) -> Union[float, ParameterExpression]: """Frequency shift from the set frequency.""" @@ -131,7 +130,3 @@ def channels(self) -> Tuple[PulseChannel]: def duration(self) -> int: """Duration of this instruction.""" return 0 - - def is_parameterized(self) -> bool: - """Return True iff the instruction is parameterized.""" - return isinstance(self.frequency, ParameterExpression) or super().is_parameterized() diff --git a/qiskit/pulse/instructions/instruction.py b/qiskit/pulse/instructions/instruction.py index 5ddffab05e82..ae2225e2cb8d 100644 --- a/qiskit/pulse/instructions/instruction.py +++ b/qiskit/pulse/instructions/instruction.py @@ -24,6 +24,7 @@ from abc import ABC, abstractmethod from typing import Callable, Iterable, List, Optional, Set, Tuple +from qiskit.circuit import Parameter from qiskit.pulse.channels import Channel from qiskit.pulse.exceptions import PulseError @@ -46,16 +47,18 @@ def __init__( Args: operands: The argument list. name: Optional display name for this instruction. - - Raises: - PulseError: If duration is negative. - PulseError: If the input ``channels`` are not all of - type :class:`Channel`. """ self._operands = operands self._name = name self._hash = None + self._validate() + def _validate(self): + """Called after initialization to validate instruction data. + + Raises: + PulseError: If the input ``channels`` are not all of type :class:`Channel`. + """ for channel in self.channels: if not isinstance(channel, Channel): raise PulseError(f"Expected a channel, got {channel} instead.") @@ -197,16 +200,25 @@ def append(self, schedule, name: Optional[str] = None): @property def parameters(self) -> Set: """Parameters which determine the instruction behavior.""" + + def _get_parameters_recursive(obj): + params = set() + if hasattr(obj, "parameters"): + for param in obj.parameters: + if isinstance(param, Parameter): + params.add(param) + else: + params |= _get_parameters_recursive(param) + return params + parameters = set() for op in self.operands: - if hasattr(op, "parameters"): - for op_param in op.parameters: - parameters.add(op_param) + parameters |= _get_parameters_recursive(op) return parameters def is_parameterized(self) -> bool: """Return True iff the instruction is parameterized.""" - return any(chan.is_parameterized() for chan in self.channels) + return any(self.parameters) def draw( self, diff --git a/qiskit/pulse/instructions/phase.py b/qiskit/pulse/instructions/phase.py index d8db037a5aa1..21f46dfb5f72 100644 --- a/qiskit/pulse/instructions/phase.py +++ b/qiskit/pulse/instructions/phase.py @@ -18,8 +18,9 @@ from typing import Optional, Union, Tuple from qiskit.circuit import ParameterExpression -from qiskit.pulse.channels import PulseChannel, PulseError +from qiskit.pulse.channels import PulseChannel from qiskit.pulse.instructions.instruction import Instruction +from qiskit.pulse.exceptions import PulseError class ShiftPhase(Instruction): @@ -52,15 +53,17 @@ def __init__( phase: The rotation angle in radians. channel: The channel this instruction operates on. name: Display name for this instruction. + """ + super().__init__(operands=(phase, channel), name=name) + + def _validate(self): + """Called after initialization to validate instruction data. Raises: - PulseError: If channel is not a PulseChannel. + PulseError: If the input ``channel`` is not type :class:`PulseChannel`. """ - if not isinstance(channel, PulseChannel): - raise PulseError( - "The `channel` argument to `ShiftPhase` must be of type `channels.PulseChannel`." - ) - super().__init__(operands=(phase, channel), name=name) + if not isinstance(self.channel, PulseChannel): + raise PulseError(f"Expected a pulse channel, got {self.channel} instead.") @property def phase(self) -> Union[complex, ParameterExpression]: @@ -84,10 +87,6 @@ def duration(self) -> int: """Duration of this instruction.""" return 0 - def is_parameterized(self) -> bool: - """Return True iff the instruction is parameterized.""" - return isinstance(self.phase, ParameterExpression) or super().is_parameterized() - class SetPhase(Instruction): r"""The set phase instruction sets the phase of the proceeding pulses on that channel @@ -115,15 +114,18 @@ def __init__( phase: The rotation angle in radians. channel: The channel this instruction operates on. name: Display name for this instruction. - Raises: - PulseError: If channel is not a PulseChannel. """ - if not isinstance(channel, PulseChannel): - raise PulseError( - "The `channel` argument to `SetPhase` must be of type `channels.PulseChannel`." - ) super().__init__(operands=(phase, channel), name=name) + def _validate(self): + """Called after initialization to validate instruction data. + + Raises: + PulseError: If the input ``channel`` is not type :class:`PulseChannel`. + """ + if not isinstance(self.channel, PulseChannel): + raise PulseError(f"Expected a pulse channel, got {self.channel} instead.") + @property def phase(self) -> Union[complex, ParameterExpression]: """Return the rotation angle enacted by this instruction in radians.""" @@ -145,7 +147,3 @@ def channels(self) -> Tuple[PulseChannel]: def duration(self) -> int: """Duration of this instruction.""" return 0 - - def is_parameterized(self) -> bool: - """Return True iff the instruction is parameterized.""" - return isinstance(self.phase, ParameterExpression) or super().is_parameterized() diff --git a/qiskit/pulse/instructions/play.py b/qiskit/pulse/instructions/play.py index 41effc205d83..4be3fd113f47 100644 --- a/qiskit/pulse/instructions/play.py +++ b/qiskit/pulse/instructions/play.py @@ -39,20 +39,24 @@ def __init__(self, pulse: Pulse, channel: PulseChannel, name: Optional[str] = No :py:class:`~qiskit.pulse.library.Waveform`. channel: The channel to which the pulse is applied. name: Name of the instruction for display purposes. Defaults to ``pulse.name``. - - Raises: - PulseError: If pulse is not a Pulse type, or channel is not a PulseChannel. """ - if not isinstance(pulse, Pulse): - raise PulseError("The `pulse` argument to `Play` must be of type `library.Pulse`.") - if not isinstance(channel, PulseChannel): - raise PulseError( - "The `channel` argument to `Play` must be of type `channels.PulseChannel`." - ) if name is None: name = pulse.name super().__init__(operands=(pulse, channel), name=name) + def _validate(self): + """Called after initialization to validate instruction data. + + Raises: + PulseError: If pulse is not a Pulse type. + PulseError: If the input ``channel`` is not type :class:`PulseChannel`. + """ + if not isinstance(self.pulse, Pulse): + raise PulseError("The `pulse` argument to `Play` must be of type `library.Pulse`.") + + if not isinstance(self.channel, PulseChannel): + raise PulseError(f"Expected a pulse channel, got {self.channel} instead.") + @property def pulse(self) -> Pulse: """A description of the samples that will be played.""" @@ -79,16 +83,14 @@ def duration(self) -> Union[int, ParameterExpression]: def parameters(self) -> Set: """Parameters which determine the instruction behavior.""" parameters = set() + + # Note that Pulse.parameters returns dict rather than set for convention. + # We need special handling for Play instruction. for pulse_param_expr in self.pulse.parameters.values(): if isinstance(pulse_param_expr, ParameterExpression): - for pulse_param in pulse_param_expr.parameters: - parameters.add(pulse_param) + parameters = parameters | pulse_param_expr.parameters + if self.channel.is_parameterized(): - for ch_param in self.channel.parameters: - parameters.add(ch_param) + parameters = parameters | self.channel.parameters return parameters - - def is_parameterized(self) -> bool: - """Return True iff the instruction is parameterized.""" - return self.pulse.is_parameterized() or super().is_parameterized() diff --git a/qiskit/pulse/instructions/reference.py b/qiskit/pulse/instructions/reference.py new file mode 100644 index 000000000000..e37c0444c419 --- /dev/null +++ b/qiskit/pulse/instructions/reference.py @@ -0,0 +1,99 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""Reference instruction that is a placeholder for subroutine.""" + +from typing import Union, Tuple, Set + +from qiskit.circuit.parameterexpression import ParameterExpression +from qiskit.pulse.channels import Channel +from qiskit.pulse.exceptions import PulseError, UnassignedReferenceError +from qiskit.pulse.instructions import instruction + + +class Reference(instruction.Instruction): + """Pulse compiler directive that refers to a subroutine. + + If a pulse program uses the same subset of instructions multiple times, then + using the :class:`~.Reference` class may significantly reduce the memory footprint of + the program. This instruction only stores the set of strings to identify the subroutine. + + The actual pulse program can be stored in the :attr:`ScheduleBlock.references` of the + :class:`.ScheduleBlock` that this reference instruction belongs to. + + You can later assign schedules with the :meth:`ScheduleBlock.assign_references` method. + This allows you to build the main program without knowing the actual subroutine, + that is supplied at a later time. + """ + + # Delimiter for representing nested scope. + scope_delimiter = "::" + + # Delimiter for tuple keys. + key_delimiter = "," + + def __init__(self, name: str, *extra_keys: str): + """Create new reference. + + Args: + name: Name of subroutine. + extra_keys: Optional. A set of string keys that may be necessary to + refer to a particular subroutine. For example, when we use + "sx" as a name to refer to the subroutine of an sx pulse, + this name might be used among schedules for different qubits. + In this example, you may specify "q0" in the extra keys + to distinguish the sx schedule for qubit 0 from others. + The user can use an arbitrary number of extra string keys to + uniquely determine the subroutine. + """ + # Run validation + ref_keys = (name,) + tuple(extra_keys) + super().__init__(operands=ref_keys, name=name) + + def _validate(self): + """Called after initialization to validate instruction data. + + Raises: + PulseError: When a key is not a string. + PulseError: When a key in ``ref_keys`` contains the scope delimiter. + """ + for key in self.ref_keys: + if not isinstance(key, str): + raise PulseError(f"Keys must be strings. '{repr(key)}' is not a valid object.") + if self.scope_delimiter in key or self.key_delimiter in key: + raise PulseError( + f"'{self.scope_delimiter}' and '{self.key_delimiter}' are reserved. " + f"'{key}' is not a valid key string." + ) + + @property + def ref_keys(self) -> Tuple[str, ...]: + """Returns unique key of the subroutine.""" + return self.operands + + @property + def duration(self) -> Union[int, ParameterExpression]: + """Duration of this instruction.""" + raise UnassignedReferenceError(f"Subroutine is not assigned to {self.ref_keys}.") + + @property + def channels(self) -> Tuple[Channel, ...]: + """Returns the channels that this schedule uses.""" + raise UnassignedReferenceError(f"Subroutine is not assigned to {self.ref_keys}.") + + @property + def parameters(self) -> Set: + """Parameters which determine the instruction behavior.""" + return set() + + def __repr__(self) -> str: + return f"{self.__class__.__name__}({self.key_delimiter.join(self.ref_keys)})" diff --git a/qiskit/pulse/instructions/snapshot.py b/qiskit/pulse/instructions/snapshot.py index a4b09f7e2155..b78858b5d2c0 100644 --- a/qiskit/pulse/instructions/snapshot.py +++ b/qiskit/pulse/instructions/snapshot.py @@ -32,17 +32,22 @@ def __init__(self, label: str, snapshot_type: str = "statevector", name: Optiona The types of snapshots offered are defined by the simulator used. name: Snapshot name which defaults to ``label``. This parameter is only for display purposes and is not taken into account during comparison. - - Raises: - PulseError: If snapshot label is invalid. """ - if not isinstance(label, str): - raise PulseError("Snapshot label must be a string.") self._channel = SnapshotChannel() + if name is None: name = label super().__init__(operands=(label, snapshot_type), name=name) + def _validate(self): + """Called after initialization to validate instruction data. + + Raises: + PulseError: If snapshot label is invalid. + """ + if not isinstance(self.label, str): + raise PulseError("Snapshot label must be a string.") + @property def label(self) -> str: """Label of snapshot.""" diff --git a/qiskit/pulse/library/symbolic_pulses.py b/qiskit/pulse/library/symbolic_pulses.py index 8f07130f3782..4f1aa909f0e0 100644 --- a/qiskit/pulse/library/symbolic_pulses.py +++ b/qiskit/pulse/library/symbolic_pulses.py @@ -19,6 +19,7 @@ """ import functools +import warnings from typing import Any, Dict, List, Optional, Union, Callable import numpy as np @@ -574,7 +575,39 @@ def __repr__(self) -> str: ) -class Gaussian(SymbolicPulse): +class _PulseType(type): + """Metaclass to warn at isinstance check.""" + + def __instancecheck__(cls, instance): + cls_alias = getattr(cls, "alias", None) + + # TODO promote this to Deprecation warning in future. + # Once type information usage is removed from user code, + # we will convert pulse classes into functions. + warnings.warn( + "Typechecking with the symbolic pulse subclass will be deprecated. " + f"'{cls_alias}' subclass instance is turned into SymbolicPulse instance. " + f"Use self.pulse_type == '{cls_alias}' instead.", + PendingDeprecationWarning, + ) + + if not isinstance(instance, SymbolicPulse): + return False + return instance.pulse_type == cls_alias + + def __getattr__(cls, item): + # For pylint. A SymbolicPulse subclass must implement several methods + # such as .get_waveform and .validate_parameters. + # In addition, they conventionally offer attribute-like access to the pulse parameters, + # for example, instance.amp returns instance._params["amp"]. + # If pulse classes are directly instantiated, pylint yells no-member + # since the pulse class itself implements nothing. These classes just + # behave like a factory by internally instantiating the SymbolicPulse and return it. + # It is not realistic to write disable=no-member across qiskit packages. + return NotImplemented + + +class Gaussian(metaclass=_PulseType): r"""A lifted and truncated pulse envelope shaped according to the Gaussian function whose mean is centered at the center of the pulse (duration / 2): @@ -586,14 +619,16 @@ class Gaussian(SymbolicPulse): where :math:`f'(x)` is the gaussian waveform without lifting or amplitude scaling. """ - def __init__( - self, + alias = "Gaussian" + + def __new__( + cls, duration: Union[int, ParameterExpression], amp: Union[complex, ParameterExpression], sigma: Union[float, ParameterExpression], name: Optional[str] = None, limit_amplitude: Optional[bool] = None, - ): + ) -> SymbolicPulse: """Create new pulse instance. Args: @@ -605,6 +640,8 @@ def __init__( limit_amplitude: If ``True``, then limit the amplitude of the waveform to 1. The default is ``True`` and the amplitude is constrained to 1. + Returns: + SymbolicPulse instance. """ parameters = {"amp": amp, "sigma": sigma} @@ -616,8 +653,8 @@ def __init__( consts_expr = _sigma > 0 valid_amp_conditions_expr = sym.Abs(_amp) <= 1.0 - super().__init__( - pulse_type=self.__class__.__name__, + instance = SymbolicPulse( + pulse_type=cls.alias, duration=duration, parameters=parameters, name=name, @@ -626,10 +663,12 @@ def __init__( constraints=consts_expr, valid_amp_conditions=valid_amp_conditions_expr, ) - self.validate_parameters() + instance.validate_parameters() + + return instance -class GaussianSquare(SymbolicPulse): +class GaussianSquare(metaclass=_PulseType): """A square pulse with a Gaussian shaped risefall on both sides lifted such that its first sample is zero. @@ -667,8 +706,10 @@ class GaussianSquare(SymbolicPulse): where :math:`f'(x)` is the gaussian square waveform without lifting or amplitude scaling. """ - def __init__( - self, + alias = "GaussianSquare" + + def __new__( + cls, duration: Union[int, ParameterExpression], amp: Union[complex, ParameterExpression], sigma: Union[float, ParameterExpression], @@ -676,7 +717,7 @@ def __init__( risefall_sigma_ratio: Optional[Union[float, ParameterExpression]] = None, name: Optional[str] = None, limit_amplitude: Optional[bool] = None, - ): + ) -> SymbolicPulse: """Create new pulse instance. Args: @@ -690,6 +731,9 @@ def __init__( limit_amplitude: If ``True``, then limit the amplitude of the waveform to 1. The default is ``True`` and the amplitude is constrained to 1. + Returns: + SymbolicPulse instance. + Raises: PulseError: When width and risefall_sigma_ratio are both empty or both non-empty. """ @@ -724,8 +768,8 @@ def __init__( consts_expr = sym.And(_sigma > 0, _width >= 0, _duration >= _width) valid_amp_conditions_expr = sym.Abs(_amp) <= 1.0 - super().__init__( - pulse_type=self.__class__.__name__, + instance = SymbolicPulse( + pulse_type=cls.alias, duration=duration, parameters=parameters, name=name, @@ -734,15 +778,12 @@ def __init__( constraints=consts_expr, valid_amp_conditions=valid_amp_conditions_expr, ) - self.validate_parameters() + instance.validate_parameters() - @property - def risefall_sigma_ratio(self): - """Return risefall_sigma_ratio. This is auxiliary parameter to define width.""" - return (self.duration - self.width) / (2.0 * self.sigma) + return instance -class Drag(SymbolicPulse): +class Drag(metaclass=_PulseType): """The Derivative Removal by Adiabatic Gate (DRAG) pulse is a standard Gaussian pulse with an additional Gaussian derivative component and lifting applied. @@ -779,15 +820,17 @@ class Drag(SymbolicPulse): Phys. Rev. Lett. 103, 110501 – Published 8 September 2009.* """ - def __init__( - self, + alias = "Drag" + + def __new__( + cls, duration: Union[int, ParameterExpression], amp: Union[complex, ParameterExpression], sigma: Union[float, ParameterExpression], beta: Union[float, ParameterExpression], name: Optional[str] = None, limit_amplitude: Optional[bool] = None, - ): + ) -> SymbolicPulse: """Create new pulse instance. Args: @@ -799,6 +842,9 @@ def __init__( name: Display name for this pulse envelope. limit_amplitude: If ``True``, then limit the amplitude of the waveform to 1. The default is ``True`` and the amplitude is constrained to 1. + + Returns: + SymbolicPulse instance. """ parameters = {"amp": amp, "sigma": sigma, "beta": beta} @@ -814,8 +860,8 @@ def __init__( consts_expr = _sigma > 0 valid_amp_conditions_expr = sym.And(sym.Abs(_amp) <= 1.0, sym.Abs(_beta) < _sigma) - super().__init__( - pulse_type=self.__class__.__name__, + instance = SymbolicPulse( + pulse_type="Drag", duration=duration, parameters=parameters, name=name, @@ -824,10 +870,12 @@ def __init__( constraints=consts_expr, valid_amp_conditions=valid_amp_conditions_expr, ) - self.validate_parameters() + instance.validate_parameters() + return instance -class Constant(SymbolicPulse): + +class Constant(metaclass=_PulseType): """A simple constant pulse, with an amplitude value and a duration: .. math:: @@ -836,13 +884,15 @@ class Constant(SymbolicPulse): f(x) = 0 , elsewhere """ - def __init__( - self, + alias = "Constant" + + def __new__( + cls, duration: Union[int, ParameterExpression], amp: Union[complex, ParameterExpression], name: Optional[str] = None, limit_amplitude: Optional[bool] = None, - ): + ) -> SymbolicPulse: """Create new pulse instance. Args: @@ -851,6 +901,9 @@ def __init__( name: Display name for this pulse envelope. limit_amplitude: If ``True``, then limit the amplitude of the waveform to 1. The default is ``True`` and the amplitude is constrained to 1. + + Returns: + SymbolicPulse instance. """ parameters = {"amp": amp} @@ -867,8 +920,8 @@ def __init__( envelope_expr = _amp * sym.Piecewise((1, sym.And(_t >= 0, _t <= _duration)), (0, True)) valid_amp_conditions_expr = sym.Abs(_amp) <= 1.0 - super().__init__( - pulse_type=self.__class__.__name__, + instance = SymbolicPulse( + pulse_type="Constant", duration=duration, parameters=parameters, name=name, @@ -876,4 +929,6 @@ def __init__( envelope=envelope_expr, valid_amp_conditions=valid_amp_conditions_expr, ) - self.validate_parameters() + instance.validate_parameters() + + return instance diff --git a/qiskit/pulse/parameter_manager.py b/qiskit/pulse/parameter_manager.py index 7a0bbefdebae..330df026ee23 100644 --- a/qiskit/pulse/parameter_manager.py +++ b/qiskit/pulse/parameter_manager.py @@ -50,7 +50,7 @@ Note that we don't need to write any parameter management logic for each object, and thus this parameter framework gives greater scalability to the pulse module. """ -from copy import deepcopy, copy +from copy import copy from typing import List, Dict, Set, Any, Union from qiskit.circuit.parameter import Parameter @@ -135,9 +135,9 @@ def visit_ScheduleBlock(self, node: ScheduleBlock): .. note:: ``ScheduleBlock`` can have parameters in blocks and its alignment. """ - # accessing to protected member - node._blocks = [self.visit(block) for block in node.blocks] node._alignment_context = self.visit_AlignmentKind(node.alignment_context) + for elm in node._blocks: + self.visit(elm) self._update_parameter_manager(node) return node @@ -258,29 +258,29 @@ def generic_visit(self, node: Any): def _assign_parameter_expression(self, param_expr: ParameterExpression): """A helper function to assign parameter value to parameter expression.""" new_value = copy(param_expr) - for parameter in param_expr.parameters: - if parameter in self._param_map: - new_value = new_value.assign(parameter, self._param_map[parameter]) + updated = param_expr.parameters & self._param_map.keys() + for param in updated: + new_value = new_value.assign(param, self._param_map[param]) return format_parameter_value(new_value) def _update_parameter_manager(self, node: Union[Schedule, ScheduleBlock]): """A helper function to update parameter manager of pulse program.""" - new_parameters = set() + if not hasattr(node, "_parameter_manager"): + raise PulseError(f"Node type {node.__class__.__name__} has no parameter manager.") - for parameter in node.parameters: - if parameter in self._param_map: - value = self._param_map[parameter] - if isinstance(value, ParameterExpression): - for new_parameter in value.parameters: - new_parameters.add(new_parameter) - else: - new_parameters.add(parameter) + param_manager = node._parameter_manager + updated = param_manager.parameters & self._param_map.keys() - if hasattr(node, "_parameter_manager"): - node._parameter_manager._parameters = new_parameters - else: - raise PulseError(f"Node type {node.__class__.__name__} has no parameter manager.") + new_parameters = set() + for param in param_manager.parameters: + if param not in updated: + new_parameters.add(param) + continue + new_value = self._param_map[param] + if isinstance(new_value, ParameterExpression): + new_parameters |= new_value.parameters + param_manager._parameters = new_parameters class ParameterGetter(NodeVisitor): @@ -300,18 +300,19 @@ def visit_ScheduleBlock(self, node: ScheduleBlock): .. note:: ``ScheduleBlock`` can have parameters in blocks and its alignment. """ - for parameter in node.parameters: - self.parameters.add(parameter) + # Note that node.parameters returns parameters of main program with subroutines. + # The manager of main program is not aware of parameters in subroutines. + self.parameters |= node._parameter_manager.parameters def visit_Schedule(self, node: Schedule): """Visit ``Schedule``. Recursively visit schedule children and search parameters.""" - for parameter in node.parameters: - self.parameters.add(parameter) + self.parameters |= node.parameters def visit_AlignmentKind(self, node: AlignmentKind): """Get parameters from block's ``AlignmentKind`` specification.""" for param in node._context_params: - self.visit(param) + if isinstance(param, ParameterExpression): + self.parameters |= param.parameters # Mid layer: Get parameters from instructions @@ -321,14 +322,13 @@ def visit_Call(self, node: instructions.Call): .. note:: ``Call`` instruction has a special parameter handling logic. This instruction separately keeps parameters and program. """ - for parameter in node.parameters: - self.parameters.add(parameter) + self.parameters |= node.parameters def visit_Instruction(self, node: instructions.Instruction): """Get parameters from general pulse instruction. .. note:: All parametrized object should be stored in the operands. - Otherwise parameter cannot be detected. + Otherwise, parameter cannot be detected. """ for op in node.operands: self.visit(op) @@ -337,20 +337,19 @@ def visit_Instruction(self, node: instructions.Instruction): def visit_Channel(self, node: channels.Channel): """Get parameters from ``Channel`` object.""" - if isinstance(node.index, ParameterExpression): - self._add_parameters(node.index) + self.parameters |= node.parameters def visit_ParametricPulse(self, node: ParametricPulse): """Get parameters from ``ParametricPulse`` object.""" for op_value in node.parameters.values(): if isinstance(op_value, ParameterExpression): - self._add_parameters(op_value) + self.parameters |= op_value.parameters def visit_SymbolicPulse(self, node: SymbolicPulse): """Get parameters from ``SymbolicPulse`` object.""" for op_value in node.parameters.values(): if isinstance(op_value, ParameterExpression): - self._add_parameters(op_value) + self.parameters |= op_value.parameters def visit_Waveform(self, node: Waveform): """Get parameters from ``Waveform`` object. @@ -362,12 +361,7 @@ def visit_Waveform(self, node: Waveform): def generic_visit(self, node: Any): """Get parameters from object that doesn't belong to Qiskit Pulse module.""" if isinstance(node, ParameterExpression): - self._add_parameters(node) - - def _add_parameters(self, param_expr: ParameterExpression): - """A helper function to get parameters from parameter expression.""" - for parameter in param_expr.parameters: - self.parameters.add(parameter) + self.parameters |= node.parameters class ParameterManager: @@ -385,10 +379,14 @@ def __init__(self): self._parameters = set() @property - def parameters(self) -> Set: + def parameters(self) -> Set[Parameter]: """Parameters which determine the schedule behavior.""" return self._parameters + def clear(self): + """Remove the parameters linked to this manager.""" + self._parameters.clear() + def is_parameterized(self) -> bool: """Return True iff the instruction is parameterized.""" return bool(self.parameters) @@ -411,7 +409,6 @@ def assign_parameters( self, pulse_program: Any, value_dict: Dict[ParameterExpression, ParameterValueType], - inplace: bool = True, ) -> Any: """Modify and return program data with parameters assigned according to the input. @@ -419,21 +416,15 @@ def assign_parameters( pulse_program: Arbitrary pulse program associated with this manager instance. value_dict: A mapping from Parameters to either numeric values or another Parameter expression. - inplace: Set ``True`` to overwrite existing program data. Returns: Updated program data. """ - if inplace: - source = pulse_program - else: - source = deepcopy(pulse_program) - - valid_map = {par: val for par, val in value_dict.items() if par in self.parameters} + valid_map = {k: value_dict[k] for k in value_dict.keys() & self._parameters} if valid_map: visitor = ParameterSetter(param_map=valid_map) - return visitor.visit(source) - return source + return visitor.visit(pulse_program) + return pulse_program def update_parameter_table(self, new_node: Any): """A helper function to update parameter table with given data node. @@ -443,6 +434,4 @@ def update_parameter_table(self, new_node: Any): """ visitor = ParameterGetter() visitor.visit(new_node) - - for parameter in visitor.parameters: - self._parameters.add(parameter) + self._parameters |= visitor.parameters diff --git a/qiskit/pulse/reference_manager.py b/qiskit/pulse/reference_manager.py new file mode 100644 index 000000000000..9016fa7efaec --- /dev/null +++ b/qiskit/pulse/reference_manager.py @@ -0,0 +1,58 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""Management of schedule block references.""" + +from typing import Tuple +from collections import UserDict +from qiskit.pulse.exceptions import PulseError + + +class ReferenceManager(UserDict): + """Dictionary wrapper to manage pulse schedule references.""" + + def unassigned(self) -> Tuple[Tuple[str, ...], ...]: + """Get the keys of unassigned references. + + Returns: + Tuple of reference keys. + """ + keys = [] + for key, value in self.items(): + if value is None: + keys.append(key) + return tuple(keys) + + def __setitem__(self, key, value): + if key in self and self[key] is not None: + # Check subroutine conflict. + if self[key] != value: + raise PulseError( + f"Subroutine {key} is already assigned to the reference of the current scope, " + "however, the newly assigned schedule conflicts with the existing schedule. " + "This operation was not successfully done." + ) + return + super().__setitem__(key, value) + + def __repr__(self): + keys = ", ".join(map(repr, self.keys())) + return f"{self.__class__.__name__}(references=[{keys}])" + + def __str__(self): + out = f"{self.__class__.__name__}:" + for key, reference in self.items(): + prog_repr = repr(reference) + if len(prog_repr) > 50: + prog_repr = prog_repr[:50] + "..." + out += f"\n - {repr(key)}: {prog_repr}" + return out diff --git a/qiskit/pulse/schedule.py b/qiskit/pulse/schedule.py index 843e6030ebf3..9d0561c11c6d 100644 --- a/qiskit/pulse/schedule.py +++ b/qiskit/pulse/schedule.py @@ -36,17 +36,21 @@ import functools import itertools import multiprocessing as mp +import re import sys +import warnings from typing import List, Tuple, Iterable, Union, Dict, Callable, Set, Optional, Any import numpy as np +import retworkx as rx from qiskit.circuit.parameter import Parameter from qiskit.circuit.parameterexpression import ParameterExpression, ParameterValueType from qiskit.pulse.channels import Channel -from qiskit.pulse.exceptions import PulseError -from qiskit.pulse.instructions import Instruction +from qiskit.pulse.exceptions import PulseError, UnassignedReferenceError +from qiskit.pulse.instructions import Instruction, Reference from qiskit.pulse.utils import instruction_duration_validation +from qiskit.pulse.reference_manager import ReferenceManager from qiskit.utils.multiprocessing import is_main_process @@ -722,9 +726,11 @@ def assign_parameters( Returns: Schedule with updated parameters. """ - return self._parameter_manager.assign_parameters( - pulse_program=self, value_dict=value_dict, inplace=inplace - ) + if not inplace: + new_schedule = copy.deepcopy(self) + return new_schedule.assign_parameters(value_dict, inplace=True) + + return self._parameter_manager.assign_parameters(pulse_program=self, value_dict=value_dict) def get_parameters(self, parameter_name: str) -> List[Parameter]: """Get parameter object bound to this schedule by string name. @@ -814,69 +820,193 @@ def wrapper(self, *args, **kwargs): class ScheduleBlock: - r"""A ``ScheduleBlock`` is a time-ordered sequence of instructions and transform macro to - manage their relative timing. The relative position of the instructions is managed by - the ``alignment_context``. This allows ``ScheduleBlock`` to support instructions with - a parametric duration and allows the lazy scheduling of instructions, - i.e. allocating the instruction time just before execution. + """Time-ordered sequence of instructions with alignment context. + + :class:`.ScheduleBlock` supports lazy scheduling of context instructions, + i.e. their timeslots is always generated at runtime. + This indicates we can parametrize instruction durations as well as + other parameters. In contrast to :class:`.Schedule` being somewhat static, + :class:`.ScheduleBlock` is a dynamic representation of a pulse program. + + .. rubric:: Pulse Builder + + The Qiskit pulse builder is a domain specific language that is developed on top of + the schedule block. Use of the builder syntax will improve the workflow of + pulse programming. See :ref:`pulse_builder` for a user guide. + + .. rubric:: Alignment contexts + + A schedule block is always relatively scheduled. + Instead of taking individual instructions with absolute execution time ``t0``, + the schedule block defines a context of scheduling and instructions + under the same context are scheduled in the same manner (alignment). + Several contexts are available in :ref:`pulse_alignments`. + A schedule block is instantiated with one of these alignment contexts. + The default context is :class:`AlignLeft`, for which all instructions are left-justified, + in other words, meaning they use as-soon-as-possible scheduling. + + If you need an absolute-time interval in between instructions, you can explicitly + insert :class:`~qiskit.pulse.instructions.Delay` instructions. + + .. rubric:: Nested blocks + + A schedule block can contain other nested blocks with different alignment contexts. + This enables advanced scheduling, where a subset of instructions is + locally scheduled in a different manner. + Note that a :class:`.Schedule` instance cannot be directly added to a schedule block. + To add a :class:`.Schedule` instance, wrap it in a :class:`.Call` instruction. + This is implicitly performed when a schedule is added through the :ref:`pulse_builder`. + + .. rubric:: Unsupported operations + + Because the schedule block representation lacks timeslots, it cannot + perform particular :class:`.Schedule` operations such as :meth:`insert` or :meth:`shift` that + require instruction start time ``t0``. + In addition, :meth:`exclude` and :meth:`filter` methods are not supported + because these operations may identify the target instruction with ``t0``. + Except for these operations, :class:`.ScheduleBlock` provides full compatibility + with :class:`.Schedule`. + + .. rubric:: Subroutine + + The timeslots-free representation offers much greater flexibility for writing pulse programs. + Because :class:`.ScheduleBlock` only cares about the ordering of the child blocks + we can add an undefined pulse sequence as a subroutine of the main program. + If your program contains the same sequence multiple times, this representation may + reduce the memory footprint required by the program construction. + Such a subroutine is realized by the special compiler directive + :class:`~qiskit.pulse.instructions.Reference` that is defined by + a unique set of reference key strings to the subroutine. + The (executable) subroutine is separately stored in the main program. + Appended reference directives are resolved when the main program is executed. + Subroutines must be assigned through :meth:`assign_references` before execution. + + .. rubric:: Program Scoping + + When you call a subroutine from another subroutine, or append a schedule block + to another schedule block, the management of references and parameters + can be a hard task. Schedule block offers a convenient feature to help with this + by automatically scoping the parameters and subroutines. + + .. jupyter-execute:: + + from qiskit import pulse + from qiskit.circuit.parameter import Parameter + + amp1 = Parameter("amp") + + with pulse.build() as sched1: + pulse.play(pulse.Constant(100, amp1), pulse.DriveChannel(0)) + + print(sched1.scoped_parameters()) + + The :meth:`~ScheduleBlock.scoped_parameters` method returns all :class:`~.Parameter` + objects defined in the schedule block. The parameter name is updated to reflect + its scope information, i.e. where it is defined. + The outer scope is called "root". Since the "amp" parameter is directly used + in the current builder context, it is prefixed with "root". + Note that the :class:`Parameter` object returned by :meth:`~ScheduleBlock.scoped_parameters` + preserves the hidden `UUID`_ key, and thus the scoped name doesn't break references + to the original :class:`Parameter`. + + You may want to call this program from another program. + In this example, the program is called with the reference key "grand_child". + You can call a subroutine without specifying a substantial program + (like ``sched1`` above which we will assign later). + + .. jupyter-execute:: - ``ScheduleBlock``\ s should be initialized with one of the following alignment contexts: + amp2 = Parameter("amp") - - :class:`~qiskit.pulse.transforms.AlignLeft`: Align instructions in the - `as-soon-as-possible` manner. Instructions are scheduled at the earliest - possible time on the channel. + with pulse.build() as sched2: + with pulse.align_right(): + pulse.reference("grand_child") + pulse.play(pulse.Constant(200, amp2), pulse.DriveChannel(0)) - - :class:`~qiskit.pulse.transforms.AlignRight`: Align instructions in the - `as-late-as-possible` manner. Instructions are scheduled at the latest - possible time on the channel. + print(sched2.scoped_parameters()) - - :class:`~qiskit.pulse.transforms.AlignSequential`: Align instructions sequentially - even though they are allocated in different channels. + This only returns "root::amp" because the "grand_child" reference is unknown. + Now you assign the actual pulse program to this reference. - - :class:`~qiskit.pulse.transforms.AlignEquispaced`: Align instructions with - equal interval within a specified duration. Instructions on different channels - are aligned sequentially. + .. jupyter-execute:: - - :class:`~qiskit.pulse.transforms.AlignFunc`: Align instructions with - arbitrary position within the given duration. The position is specified by - a callback function taking a pulse index ``j`` and returning a - fractional coordinate in [0, 1]. + sched2.assign_references({("grand_child", ): sched1}) + print(sched2.scoped_parameters()) - The ``ScheduleBlock`` defaults to the ``AlignLeft`` alignment. - The timing overlap constraint of instructions is not immediately evaluated, - and thus we can assign a parameter object to the instruction duration. - Instructions are implicitly scheduled at optimum time when the program is executed. + Now you get two parameters "root::amp" and "root::grand_child::amp". + The second parameter name indicates it is defined within the referred program "grand_child". + The program calling the "grand_child" has a reference program description + which is accessed through :attr:`ScheduleBlock.references`. - Note that ``ScheduleBlock`` can contain :class:`~qiskit.pulse.instructions.Instruction` - and other ``ScheduleBlock`` to build an experimental program, but ``Schedule`` is not - supported. This should be added as a :class:`~qiskit.pulse.instructions.Call` instruction. - This conversion is automatically performed with the pulse builder. + .. jupyter-execute:: - By using ``ScheduleBlock`` representation we can fully parametrize pulse waveforms. - For example, Rabi schedule generator can be defined as + print(sched2.references) - .. code-block:: python + Finally, you may want to call this program from another program. + Here we try a different approach to define subroutine. Namely, we call + a subroutine from the root program with the actual program ``sched2``. - duration = Parameter('rabi_dur') - amp = Parameter('rabi_amp') + .. jupyter-execute:: - block = ScheduleBlock() - rabi_pulse = pulse.Gaussian(duration=duration, amp=amp, sigma=duration/4) + amp3 = Parameter("amp") - block += Play(rabi_pulse, pulse.DriveChannel(0)) - block += Call(measure_schedule) + with pulse.build() as main: + pulse.play(pulse.Constant(300, amp3), pulse.DriveChannel(0)) + pulse.call(sched2, name="child") - Note that such waveform cannot be appended to the ``Schedule`` representation. + print(main.scoped_parameters()) - In the block representation, the interval between two instructions can be - managed with the ``Delay`` instruction. Because the schedule block lacks an instruction - start time ``t0``, we cannot ``insert`` or ``shift`` the target instruction. - In addition, stored instructions are not interchangable because the schedule block is - sensitive to the relative position of instructions. - Apart from these differences, the block representation can provide compatible - functionality with ``Schedule`` representation. + This implicitly creates a reference named "child" within + the root program and assigns ``sched2`` to it. + You get three parameters "root::amp", "root::child::amp", and "root::child::grand_child::amp". + As you can see, each parameter name reflects the layer of calls from the root program. + If you know the scope of a parameter, you can directly get the parameter object + using :meth:`ScheduleBlock.search_parameters` as follows. + + .. jupyter-execute:: + + main.search_parameters("root::child::grand_child::amp") + + You can use a regular expression to specify the scope. + The following returns the parameters defined within the scope of "ground_child" + regardless of its parent scope. This is sometimes convenient if you + want to extract parameters from a deeply nested program. + + .. jupyter-execute:: + + main.search_parameters("\\S::grand_child::amp") + + Note that the root program is only aware of its direct references. + + .. jupyter-execute:: + + print(main.references) + + As you can see the main program cannot directly assign a subroutine to the "grand_child" because + this subroutine is not called within the root program, i.e. it is indirectly called by "child". + However, the returned :class:`.ReferenceManager` is a dict-like object, and you can still + reach to "grand_child" via the "child" program with the following chained dict access. + + .. jupyter-execute:: + + main.references[("child", )].references[("grand_child", )] + + Note that :attr:`ScheduleBlock.parameters` and :meth:`ScheduleBlock.scoped_parameters()` + still collect all parameters also from the subroutine once it's assigned. + + .. _UUID: https://docs.python.org/3/library/uuid.html#module-uuid """ + __slots__ = ( + "_parent", + "_name", + "_reference_manager", + "_parameter_manager", + "_alignment_context", + "_blocks", + "_metadata", + ) + # Prefix to use for auto naming. prefix = "block" @@ -896,6 +1026,7 @@ def __init__( used in the schedule. alignment_context (AlignmentKind): ``AlignmentKind`` instance that manages scheduling of instructions in this block. + Raises: TypeError: if metadata is not a dict. """ @@ -907,19 +1038,27 @@ def __init__( if sys.platform != "win32" and not is_main_process(): name += f"-{mp.current_process().pid}" + # This points to the parent schedule object in the current scope. + # Note that schedule block can be nested without referencing, e.g. .append(child_block), + # and parent=None indicates the root program of the current scope. + # The nested schedule block objects should not have _reference_manager and + # should refer to the one of the root program. + # This also means referenced program should be assigned to the root program, not to child. + self._parent = None + self._name = name self._parameter_manager = ParameterManager() - - if not isinstance(metadata, dict) and metadata is not None: - raise TypeError("Only a dictionary or None is accepted for schedule metadata") - self._metadata = metadata or {} - + self._reference_manager = ReferenceManager() self._alignment_context = alignment_context or AlignLeft() self._blocks = [] # get parameters from context self._parameter_manager.update_parameter_table(self._alignment_context) + if not isinstance(metadata, dict) and metadata is not None: + raise TypeError("Only a dictionary or None is accepted for schedule metadata") + self._metadata = metadata or {} + @classmethod def initialize_from(cls, other_program: Any, name: Optional[str] = None) -> "ScheduleBlock": """Create new schedule object with metadata of another schedule object. @@ -932,7 +1071,7 @@ def initialize_from(cls, other_program: Any, name: Optional[str] = None) -> "Sch New block object with name and metadata. Raises: - PulseError: When `other_program` does not provide necessary information. + PulseError: When ``other_program`` does not provide necessary information. """ try: name = name or other_program.name @@ -956,7 +1095,7 @@ def initialize_from(cls, other_program: Any, name: Optional[str] = None) -> "Sch @property def name(self) -> str: - """Name of this Schedule""" + """Return name of this schedule""" return self._name @property @@ -987,17 +1126,20 @@ def alignment_context(self): def is_schedulable(self) -> bool: """Return ``True`` if all durations are assigned.""" # check context assignment - for context_param in self.alignment_context._context_params: + for context_param in self._alignment_context._context_params: if isinstance(context_param, ParameterExpression): return False # check duration assignment - for block in self.blocks: - if isinstance(block, ScheduleBlock): - if not block.is_schedulable(): + for elm in self.blocks: + if isinstance(elm, ScheduleBlock): + if not elm.is_schedulable(): return False else: - if not isinstance(block.duration, int): + try: + if not isinstance(elm.duration, int): + return False + except UnassignedReferenceError: return False return True @@ -1009,11 +1151,15 @@ def duration(self) -> int: @property def channels(self) -> Tuple[Channel]: - """Returns channels that this schedule clock uses.""" + """Returns channels that this schedule block uses.""" chans = set() - for block in self.blocks: - for chan in block.channels: - chans.add(chan) + for elm in self.blocks: + if isinstance(elm, Reference): + raise UnassignedReferenceError( + f"This schedule contains unassigned reference {elm.ref_keys} " + "and channels are ambiguous. Please assign the subroutine first." + ) + chans = chans | set(elm.channels) return tuple(chans) @property @@ -1024,13 +1170,63 @@ def instructions(self) -> Tuple[Tuple[int, Instruction]]: @property def blocks(self) -> Tuple["BlockComponent", ...]: - """Get the time-ordered instructions from self.""" - return tuple(self._blocks) + """Get the block elements added to self. + + .. note:: + + The sequence of elements is returned in order of addition. Because the first element is + schedule first, e.g. FIFO, the returned sequence is roughly time-ordered. + However, in the parallel alignment context, especially in + the as-late-as-possible scheduling, or :class:`.AlignRight` context, + the actual timing of when the instructions are issued is unknown until + the :class:`.ScheduleBlock` is scheduled and converted into a :class:`.Schedule`. + """ + blocks = [] + for elm in self._blocks: + if isinstance(elm, Reference): + elm = self.references.get(elm.ref_keys, None) or elm + blocks.append(elm) + return tuple(blocks) @property - def parameters(self) -> Set: - """Parameters which determine the schedule behavior.""" - return self._parameter_manager.parameters + def parameters(self) -> Set[Parameter]: + """Return unassigned parameters with raw names.""" + # Need new object not to mutate parameter_manager.parameters + out_params = set() + + out_params |= self._parameter_manager.parameters + for subroutine in self.references.values(): + if subroutine is None: + continue + out_params |= subroutine.parameters + + return out_params + + def scoped_parameters(self) -> Tuple[Parameter]: + """Return unassigned parameters with scoped names. + + .. note:: + + If a parameter is defined within a nested scope, + it is prefixed with all parent-scope names with the delimiter string, + which is "::". If a reference key of the scope consists of + multiple key strings, it will be represented by a single string joined with ",". + For example, "root::xgate,q0::amp" for the parameter "amp" defined in the + reference specified by the key strings ("xgate", "q0"). + """ + return tuple( + sorted( + _collect_scoped_parameters(self, current_scope="root").values(), + key=lambda p: p.name, + ) + ) + + @property + def references(self) -> ReferenceManager: + """Return a reference manager of the current scope.""" + if self._parent is not None: + return self._parent.references + return self._reference_manager @_require_schedule_conversion def ch_duration(self, *channels: Channel) -> int: @@ -1050,7 +1246,7 @@ def append( Args: block: ScheduleBlock to be appended. name: Name of the new ``Schedule``. Defaults to name of ``self``. - inplace: Perform operation inplace on this schedule. Otherwise + inplace: Perform operation inplace on this schedule. Otherwise, return a new ``Schedule``. Returns: @@ -1066,15 +1262,41 @@ def append( ) if not inplace: - ret_block = copy.deepcopy(self) - ret_block._name = name or self.name - ret_block.append(block, inplace=True) - return ret_block - else: - self._blocks.append(block) - self._parameter_manager.update_parameter_table(block) + schedule = copy.deepcopy(self) + schedule._name = name or self.name + schedule.append(block, inplace=True) + return schedule + + if isinstance(block, Reference) and block.ref_keys not in self.references: + self.references[block.ref_keys] = None + + elif isinstance(block, ScheduleBlock): + block = copy.deepcopy(block) + # Expose subroutines to the current main scope. + # Note that this 'block' is not called. + # The block is just directly appended to the current scope. + if block.is_referenced(): + if block._parent is not None: + # This is an edge case: + # If this is not a parent, block.references points to the parent's reference + # where subroutine not referred within the 'block' may exist. + # Move only references existing in the 'block'. + # See 'test.python.pulse.test_reference.TestReference.test_appending_child_block' + for ref in _get_references(block._blocks): + self.references[ref.ref_keys] = block.references[ref.ref_keys] + else: + # Avoid using dict.update and explicitly call __set_item__ for validation. + # Reference manager of appended block is cleared because of data reduction. + for ref_keys, ref in block._reference_manager.items(): + self.references[ref_keys] = ref + block._reference_manager.clear() + # Now switch the parent because block is appended to self. + block._parent = self - return self + self._blocks.append(block) + self._parameter_manager.update_parameter_table(block) + + return self def filter( self, @@ -1104,7 +1326,7 @@ def filter( instruction_types: For example, ``[PulseInstruction, AcquireInstruction]``. time_ranges: For example, ``[(0, 5), (6, 10)]``. intervals: For example, ``[(0, 5), (6, 10)]``. - check_subroutine: Set `True` to individually filter instructions inside of a subroutine + check_subroutine: Set `True` to individually filter instructions inside a subroutine defined by the :py:class:`~qiskit.pulse.instructions.Call` instruction. Returns: @@ -1180,38 +1402,69 @@ def replace( Returns: The modified schedule block with ``old`` replaced by ``new``. """ - from qiskit.pulse.parameter_manager import ParameterManager + if not inplace: + schedule = copy.deepcopy(self) + return schedule.replace(old, new, inplace=True) - new_blocks = [] - new_parameters = ParameterManager() + if old not in self._blocks: + # Avoid unnecessary update of reference and parameter manager + return self - for block in self.blocks: - if block == old: - new_blocks.append(new) - new_parameters.update_parameter_table(new) - else: - if isinstance(block, ScheduleBlock): - new_blocks.append(block.replace(old, new, inplace)) - else: - new_blocks.append(block) - new_parameters.update_parameter_table(block) + # Temporarily copies references + all_references = ReferenceManager() + if isinstance(new, ScheduleBlock): + new = copy.deepcopy(new) + all_references.update(new.references) + new._reference_manager.clear() + new._parent = self + for ref_key, subroutine in self.references.items(): + if ref_key in all_references: + warnings.warn( + f"Reference {ref_key} conflicts with substituted program {new.name}. " + "Existing reference has been replaced with new reference.", + UserWarning, + ) + continue + all_references[ref_key] = subroutine - if inplace: - self._blocks = new_blocks - self._parameter_manager = new_parameters - return self - else: - ret_block = copy.deepcopy(self) - ret_block._blocks = new_blocks - ret_block._parameter_manager = new_parameters - return ret_block + # Regenerate parameter table by regenerating elements. + # Note that removal of parameters in old is not sufficient, + # because corresponding parameters might be also used in another block element. + self._parameter_manager.clear() + self._parameter_manager.update_parameter_table(self._alignment_context) + + new_elms = [] + for elm in self._blocks: + if elm == old: + elm = new + self._parameter_manager.update_parameter_table(elm) + new_elms.append(elm) + self._blocks = new_elms + + # Regenerate reference table + # Note that reference is attached to the outer schedule if nested. + # Thus, this investigates all references within the scope. + self.references.clear() + root = self + while root._parent is not None: + root = root._parent + for ref in _get_references(root._blocks): + self.references[ref.ref_keys] = all_references[ref.ref_keys] + + return self def is_parameterized(self) -> bool: """Return True iff the instruction is parameterized.""" - return self._parameter_manager.is_parameterized() + return any(self.parameters) + + def is_referenced(self) -> bool: + """Return True iff the current schedule block contains reference to subroutine.""" + return len(self.references) > 0 def assign_parameters( - self, value_dict: Dict[ParameterExpression, ParameterValueType], inplace: bool = True + self, + value_dict: Dict[ParameterExpression, ParameterValueType], + inplace: bool = True, ) -> "ScheduleBlock": """Assign the parameters in this schedule according to the input. @@ -1222,16 +1475,131 @@ def assign_parameters( Returns: Schedule with updated parameters. + + Raises: + PulseError: When the block is nested into another block. """ - return self._parameter_manager.assign_parameters( - pulse_program=self, value_dict=value_dict, inplace=inplace - ) + if not inplace: + new_schedule = copy.deepcopy(self) + return new_schedule.assign_parameters(value_dict, inplace=True) + + # Update parameters in the current scope + self._parameter_manager.assign_parameters(pulse_program=self, value_dict=value_dict) + + for subroutine in self._reference_manager.values(): + # Also assigning parameters to the references associated with self. + # Note that references are always stored in the root program. + # So calling assign_parameters from nested block doesn't update references. + if subroutine is None: + continue + subroutine.assign_parameters(value_dict=value_dict, inplace=True) + + return self + + def assign_references( + self, + subroutine_dict: Dict[Union[str, Tuple[str, ...]], "ScheduleBlock"], + inplace: bool = True, + ) -> "ScheduleBlock": + """Assign schedules to references. + + It is only capable of assigning a schedule block to immediate references + which are directly referred within the current scope. + Let's see following example: + + .. code-block:: python + + from qiskit import pulse + + with pulse.build() as subroutine: + pulse.delay(10, pulse.DriveChannel(0)) + + with pulse.build() as sub_prog: + pulse.reference("A") + + with pulse.build() as main_prog: + pulse.reference("B") + + In above example, the ``main_prog`` can refer to the subroutine "root::B" and the + reference of "B" to program "A", i.e., "B::A", is not defined in the root namespace. + This prevents breaking the reference "root::B::A" by the assignment of "root::B". + For example, if a user could indirectly assign "root::B::A" from the root program, + one can later assign another program to "root::B" that doesn't contain "A" within it. + In this situation, a reference "root::B::A" would still live in + the reference manager of the root. + However, the subroutine "root::B::A" would no longer be used in the actual pulse program. + To assign subroutine "A" to ``nested_prog`` as a nested subprogram of ``main_prog``, + you must first assign "A" of the ``sub_prog``, + and then assign the ``sub_prog`` to the ``main_prog``. + + .. code-block:: python + + sub_prog.assign_references({("A", ): nested_prog}, inplace=True) + main_prog.assign_references({("B", ): sub_prog}, inplace=True) + + Alternatively, you can also write + + .. code-block:: python + + main_prog.assign_references({("B", ): sub_prog}, inplace=True) + main_prog.references[("B", )].assign_references({"A": nested_prog}, inplace=True) + + Here :attr:`.references` returns a dict-like object, and you can + mutably update the nested reference of the particular subroutine. + + .. note:: + + Assigned programs are deep-copied to prevent an unexpected update. + + Args: + subroutine_dict: A mapping from reference key to schedule block of the subroutine. + inplace: Set ``True`` to override this instance with new subroutine. + + Returns: + Schedule block with assigned subroutine. + + Raises: + PulseError: When reference key is not defined in the current scope. + """ + if not inplace: + new_schedule = copy.deepcopy(self) + return new_schedule.assign_references(subroutine_dict, inplace=True) + + for key, subroutine in subroutine_dict.items(): + if key not in self.references: + unassigned_keys = ", ".join(map(repr, self.references.unassigned())) + raise PulseError( + f"Reference instruction with {key} doesn't exist " + f"in the current scope: {unassigned_keys}" + ) + self.references[key] = copy.deepcopy(subroutine) + + return self def get_parameters(self, parameter_name: str) -> List[Parameter]: """Get parameter object bound to this schedule by string name. - Because different ``Parameter`` objects can have the same name, - this method returns a list of ``Parameter`` s for the provided name. + Note that we can define different parameter objects with the same name, + because these different objects are identified by their unique uuid. + For example, + + .. code-block:: python + + from qiskit import pulse, circuit + + amp1 = circuit.Parameter("amp") + amp2 = circuit.Parameter("amp") + + with pulse.build() as sub_prog: + pulse.play(pulse.Constant(100, amp1), pulse.DriveChannel(0)) + + with pulse.build() as main_prog: + pulse.call(sub_prog, name="sub") + pulse.play(pulse.Constant(100, amp2), pulse.DriveChannel(0)) + + main_prog.get_parameters("amp") + + This returns a list of two parameters ``amp1`` and ``amp2``. Args: parameter_name: Name of parameter. @@ -1239,7 +1607,45 @@ def get_parameters(self, parameter_name: str) -> List[Parameter]: Returns: Parameter objects that have corresponding name. """ - return self._parameter_manager.get_parameters(parameter_name) + matched = [p for p in self.parameters if p.name == parameter_name] + return matched + + def search_parameters(self, parameter_regex: str) -> List[Parameter]: + """Search parameter with regular expression. + + This method looks for the scope-aware parameters. + For example, + + .. code-block:: python + + from qiskit import pulse, circuit + + amp1 = circuit.Parameter("amp") + amp2 = circuit.Parameter("amp") + + with pulse.build() as sub_prog: + pulse.play(pulse.Constant(100, amp1), pulse.DriveChannel(0)) + + with pulse.build() as main_prog: + pulse.call(sub_prog, name="sub") + pulse.play(pulse.Constant(100, amp2), pulse.DriveChannel(0)) + + main_prog.search_parameters("root::sub::amp") + + This finds ``amp1`` with scoped name "root::sub::amp". + + Args: + parameter_regex: Regular expression for scoped parameter name. + + Returns: + Parameter objects that have corresponding name. + """ + pattern = re.compile(parameter_regex) + + return sorted( + _collect_scoped_parameters(self, current_scope="root", filter_regex=pattern).values(), + key=lambda p: p.name, + ) def __len__(self) -> int: """Return number of instructions in the schedule.""" @@ -1272,21 +1678,17 @@ def __eq__(self, other: "ScheduleBlock") -> bool: if self.alignment_context != other.alignment_context: return False - # 2. channel check - if set(self.channels) != set(other.channels): - return False - - # 3. size check + # 2. size check if len(self) != len(other): return False - # 4. instruction check - import retworkx as rx - from qiskit.pulse.transforms import block_to_dag + # 3. instruction check with alignment + from qiskit.pulse.transforms.dag import block_to_dag as dag - return rx.is_isomorphic_node_match( - block_to_dag(self), block_to_dag(other), lambda x, y: x == y - ) + if not rx.is_isomorphic_node_match(dag(self), dag(other), lambda x, y: x == y): + return False + + return True def __repr__(self) -> str: name = format(self._name) if self._name else "" @@ -1504,6 +1906,75 @@ def _get_timeslots(schedule: "ScheduleComponent") -> TimeSlots: return timeslots +def _get_references(block_elms: List["BlockComponent"]) -> Set[Reference]: + """Recursively get reference instructions in the current scope. + + Args: + block_elms: List of schedule block elements to investigate. + + Returns: + A set of unique reference instructions. + """ + references = set() + for elm in block_elms: + if isinstance(elm, ScheduleBlock): + references |= _get_references(elm._blocks) + elif isinstance(elm, Reference): + references.add(elm) + return references + + +def _collect_scoped_parameters( + schedule: ScheduleBlock, + current_scope: str, + filter_regex: Optional[re.Pattern] = None, +) -> Dict[Tuple[str, int], Parameter]: + """A helper function to collect parameters from all references in scope-aware fashion. + + Parameter object is renamed with attached scope information but its UUID is remained. + This means object is treated identically on the assignment logic. + This function returns a dictionary of all parameters existing in the target program + including its reference, which is keyed on the unique identifier consisting of + scoped parameter name and parameter object UUID. + + This logic prevents parameter clash in the different scope. + For example, when two parameter objects with the same UUID exist in different references, + both of them appear in the output dictionary, even though they are technically the same object. + This feature is particularly convenient to search parameter object with associated scope. + + Args: + schedule: Schedule to get parameters. + current_scope: Name of scope where schedule exist. + filter_regex: Optional. Compiled regex to sort parameter by name. + + Returns: + A dictionary of scoped parameter objects. + """ + parameters_out = {} + for param in schedule._parameter_manager.parameters: + new_name = f"{current_scope}{Reference.scope_delimiter}{param.name}" + + if filter_regex and not re.search(filter_regex, new_name): + continue + scoped_param = Parameter.__new__(Parameter, new_name, uuid=getattr(param, "_uuid")) + scoped_param.__init__(new_name) + + unique_key = new_name, hash(param) + parameters_out[unique_key] = scoped_param + + for sub_namespace, subroutine in schedule.references.items(): + if subroutine is None: + continue + composite_key = Reference.key_delimiter.join(sub_namespace) + full_path = f"{current_scope}{Reference.scope_delimiter}{composite_key}" + sub_parameters = _collect_scoped_parameters( + subroutine, current_scope=full_path, filter_regex=filter_regex + ) + parameters_out.update(sub_parameters) + + return parameters_out + + # These type aliases are defined at the bottom of the file, because as of 2022-01-18 they are # imported into other parts of Terra. Previously, the aliases were at the top of the file and used # forwards references within themselves. This was fine within the same file, but causes scoping diff --git a/qiskit/pulse/transforms/__init__.py b/qiskit/pulse/transforms/__init__.py index e30e4330a3bf..fcc5557bf565 100644 --- a/qiskit/pulse/transforms/__init__.py +++ b/qiskit/pulse/transforms/__init__.py @@ -17,6 +17,8 @@ The pulse transforms provide transformation routines to reallocate and optimize pulse programs for backends. +.. _pulse_alignments: + Alignments ========== @@ -37,6 +39,8 @@ .. autoclass:: AlignmentKind +.. _pulse_canonical_transform: + Canonicalization ================ @@ -57,6 +61,8 @@ remove_trivial_barriers +.. _pulse_dag: + DAG === @@ -69,6 +75,8 @@ block_to_dag +.. _pulse_transform_chain: + Composite transform =================== @@ -81,7 +89,7 @@ """ -from qiskit.pulse.transforms.alignments import ( +from .alignments import ( AlignEquispaced, AlignFunc, AlignLeft, @@ -90,9 +98,9 @@ AlignmentKind, ) -from qiskit.pulse.transforms.base_transforms import target_qobj_transform +from .base_transforms import target_qobj_transform -from qiskit.pulse.transforms.canonicalization import ( +from .canonicalization import ( add_implicit_acquires, align_measures, block_to_schedule, @@ -104,4 +112,4 @@ remove_trivial_barriers, ) -from qiskit.pulse.transforms.dag import block_to_dag +from .dag import block_to_dag diff --git a/qiskit/pulse/transforms/dag.py b/qiskit/pulse/transforms/dag.py index e533740ece02..4756cb98ef63 100644 --- a/qiskit/pulse/transforms/dag.py +++ b/qiskit/pulse/transforms/dag.py @@ -13,10 +13,10 @@ import retworkx as rx -from qiskit.pulse.schedule import ScheduleBlock +from qiskit.pulse.exceptions import UnassignedReferenceError -def block_to_dag(block: ScheduleBlock) -> rx.PyDAG: +def block_to_dag(block) -> rx.PyDAG: """Convert schedule block instruction into DAG. ``ScheduleBlock`` can be represented as a DAG as needed. @@ -54,7 +54,7 @@ def block_to_dag(block: ScheduleBlock) -> rx.PyDAG: This can be easily found on the DAG representation. Args: - block: A schedule block to be converted. + block ("ScheduleBlock"): A schedule block to be converted. Returns: Instructions in DAG representation. @@ -64,39 +64,44 @@ def block_to_dag(block: ScheduleBlock) -> rx.PyDAG: """ if block.alignment_context.is_sequential: return _sequential_allocation(block) - else: - return _parallel_allocation(block) + return _parallel_allocation(block) -def _sequential_allocation(block: ScheduleBlock) -> rx.PyDAG: +def _sequential_allocation(block) -> rx.PyDAG: """A helper function to create a DAG of a sequential alignment context.""" - dag_blocks = rx.PyDAG() + dag = rx.PyDAG() - prev_node = None edges = [] - for inst in block.blocks: - current_node = dag_blocks.add_node(inst) - if prev_node is not None: - edges.append((prev_node, current_node)) - prev_node = current_node - dag_blocks.add_edges_from_no_data(edges) + prev_id = None + for elm in block.blocks: + node_id = dag.add_node(elm) + if dag.num_nodes() > 1: + edges.append((prev_id, node_id)) + prev_id = node_id + dag.add_edges_from_no_data(edges) + return dag - return dag_blocks - -def _parallel_allocation(block: ScheduleBlock) -> rx.PyDAG: +def _parallel_allocation(block) -> rx.PyDAG: """A helper function to create a DAG of a parallel alignment context.""" - dag_blocks = rx.PyDAG() + dag = rx.PyDAG() slots = {} - edges = [] - for inst in block.blocks: - current_node = dag_blocks.add_node(inst) - for chan in inst.channels: - prev_node = slots.pop(chan, None) - if prev_node is not None: - edges.append((prev_node, current_node)) - slots[chan] = current_node - dag_blocks.add_edges_from_no_data(edges) - - return dag_blocks + edges = set() + prev_reference = None + for elm in block.blocks: + node_id = dag.add_node(elm) + try: + for chan in elm.channels: + prev_id = slots.pop(chan, prev_reference) + if prev_id is not None: + edges.add((prev_id, node_id)) + slots[chan] = node_id + except UnassignedReferenceError: + # Broadcasting channels because the reference's channels are unknown. + for chan, prev_id in slots.copy().items(): + edges.add((prev_id, node_id)) + slots[chan] = node_id + prev_reference = node_id + dag.add_edges_from_no_data(list(edges)) + return dag diff --git a/qiskit/qasm3/exporter.py b/qiskit/qasm3/exporter.py index e0a956d7bfae..a5bc667c0c4f 100644 --- a/qiskit/qasm3/exporter.py +++ b/qiskit/qasm3/exporter.py @@ -779,45 +779,49 @@ def build_quantum_instructions(self, instructions): """Builds a list of call statements""" ret = [] for instruction in instructions: + if isinstance(instruction.operation, ForLoopOp): + ret.append(self.build_for_loop(instruction)) + continue + if isinstance(instruction.operation, WhileLoopOp): + ret.append(self.build_while_loop(instruction)) + continue + if isinstance(instruction.operation, IfElseOp): + ret.append(self.build_if_statement(instruction)) + continue + # Build the node, ignoring any condition. if isinstance(instruction.operation, Gate): - if instruction.operation.condition: - eqcondition = self.build_eqcondition(instruction.operation.condition) - operation_without_condition = instruction.operation.copy() - operation_without_condition.condition = None - true_body = self.build_program_block( - [instruction.replace(operation=operation_without_condition)] - ) - ret.append(ast.BranchingStatement(eqcondition, true_body)) - else: - ret.append(self.build_gate_call(instruction)) + nodes = [self.build_gate_call(instruction)] elif isinstance(instruction.operation, Barrier): operands = [ self.build_single_bit_reference(operand) for operand in instruction.qubits ] - ret.append(ast.QuantumBarrier(operands)) + nodes = [ast.QuantumBarrier(operands)] elif isinstance(instruction.operation, Measure): measurement = ast.QuantumMeasurement( [self.build_single_bit_reference(operand) for operand in instruction.qubits] ) qubit = self.build_single_bit_reference(instruction.clbits[0]) - ret.append(ast.QuantumMeasurementAssignment(qubit, measurement)) + nodes = [ast.QuantumMeasurementAssignment(qubit, measurement)] elif isinstance(instruction.operation, Reset): - for operand in instruction.qubits: - ret.append(ast.QuantumReset(self.build_single_bit_reference(operand))) + nodes = [ + ast.QuantumReset(self.build_single_bit_reference(operand)) + for operand in instruction.qubits + ] elif isinstance(instruction.operation, Delay): - ret.append(self.build_delay(instruction)) - elif isinstance(instruction.operation, ForLoopOp): - ret.append(self.build_for_loop(instruction)) - elif isinstance(instruction.operation, WhileLoopOp): - ret.append(self.build_while_loop(instruction)) - elif isinstance(instruction.operation, IfElseOp): - ret.append(self.build_if_statement(instruction)) + nodes = [self.build_delay(instruction)] elif isinstance(instruction.operation, BreakLoopOp): - ret.append(ast.BreakStatement()) + nodes = [ast.BreakStatement()] elif isinstance(instruction.operation, ContinueLoopOp): - ret.append(ast.ContinueStatement()) + nodes = [ast.ContinueStatement()] + else: + nodes = [self.build_subroutine_call(instruction)] + + if instruction.operation.condition is None: + ret.extend(nodes) else: - ret.append(self.build_subroutine_call(instruction)) + eqcondition = self.build_eqcondition(instruction.operation.condition) + body = ast.ProgramBlock(nodes) + ret.append(ast.BranchingStatement(eqcondition, body)) return ret def build_if_statement(self, instruction: CircuitInstruction) -> ast.BranchingStatement: diff --git a/qiskit/qobj/converters/pulse_instruction.py b/qiskit/qobj/converters/pulse_instruction.py index 1bdb049a8610..1ea4d19123a3 100644 --- a/qiskit/qobj/converters/pulse_instruction.py +++ b/qiskit/qobj/converters/pulse_instruction.py @@ -40,10 +40,51 @@ class ParametricPulseShapes(Enum): value is its mapping to the OpenPulse Command in Qiskit. """ - gaussian = library.Gaussian - gaussian_square = library.GaussianSquare - drag = library.Drag - constant = library.Constant + gaussian = "Gaussian" + gaussian_square = "GaussianSquare" + drag = "Drag" + constant = "Constant" + + @classmethod + def from_instance( + cls, + instance: Union[library.ParametricPulse, library.SymbolicPulse], + ) -> "ParametricPulseShapes": + """Get Qobj name from the pulse class instance. + + Args: + instance: Symbolic or ParametricPulse class. + + Returns: + Qobj name. + + Raises: + QiskitError: When pulse instance is not recognizable type. + """ + if isinstance(instance, library.SymbolicPulse): + return cls(instance.pulse_type) + if isinstance(instance, library.parametric_pulses.Gaussian): + return ParametricPulseShapes.gaussian + if isinstance(instance, library.parametric_pulses.GaussianSquare): + return ParametricPulseShapes.gaussian_square + if isinstance(instance, library.parametric_pulses.Drag): + return ParametricPulseShapes.drag + if isinstance(instance, library.parametric_pulses.Constant): + return ParametricPulseShapes.constant + + raise QiskitError(f"'{instance}' is not valid pulse type.") + + @classmethod + def to_type(cls, name: str) -> library.SymbolicPulse: + """Get symbolic pulse class from the name. + + Args: + name: Qobj name of the pulse. + + Returns: + Corresponding class. + """ + return getattr(library, cls[name].value) class ConversionMethodBinder: @@ -386,7 +427,7 @@ def convert_play(self, shift, instruction): if isinstance(instruction.pulse, (library.ParametricPulse, library.SymbolicPulse)): command_dict = { "name": "parametric_pulse", - "pulse_shape": ParametricPulseShapes(type(instruction.pulse)).name, + "pulse_shape": ParametricPulseShapes.from_instance(instruction.pulse).name, "t0": shift + instruction.start_time, "ch": instruction.channel.name, "parameters": instruction.pulse.parameters, @@ -683,7 +724,7 @@ def convert_parametric(self, instruction): short_pulse_id = hashlib.md5(base_str.encode("utf-8")).hexdigest()[:4] pulse_name = f"{instruction.pulse_shape}_{short_pulse_id}" - pulse = ParametricPulseShapes[instruction.pulse_shape].value( + pulse = ParametricPulseShapes.to_type(instruction.pulse_shape)( **instruction.parameters, name=pulse_name ) return instructions.Play(pulse, channel) << t0 diff --git a/qiskit/qpy/binary_io/schedules.py b/qiskit/qpy/binary_io/schedules.py index 2468d8dbf816..223e2e77b4d8 100644 --- a/qiskit/qpy/binary_io/schedules.py +++ b/qiskit/qpy/binary_io/schedules.py @@ -91,32 +91,16 @@ def _read_symbolic_pulse(file_obj, version): duration = value.read_value(file_obj, version, {}) name = value.read_value(file_obj, version, {}) - # TODO remove this and merge subclasses into a single kind of SymbolicPulse - # We need some refactoring of our codebase, - # mainly removal of isinstance check and name access with self.__class__.__name__. - if pulse_type == "Gaussian": - pulse_cls = library.Gaussian - elif pulse_type == "GaussianSquare": - pulse_cls = library.GaussianSquare - elif pulse_type == "Drag": - pulse_cls = library.Drag - elif pulse_type == "Constant": - pulse_cls = library.Constant - else: - pulse_cls = library.SymbolicPulse - - # Skip calling constructor to absorb signature mismatch in subclass. - instance = object.__new__(pulse_cls) - instance.duration = duration - instance.name = name - instance._limit_amplitude = header.amp_limited - instance._pulse_type = pulse_type - instance._params = parameters - instance._envelope = envelope - instance._constraints = constraints - instance._valid_amp_conditions = valid_amp_conditions - - return instance + return library.SymbolicPulse( + pulse_type=pulse_type, + duration=duration, + parameters=parameters, + name=name, + limit_amplitude=header.amp_limited, + envelope=envelope, + constraints=constraints, + valid_amp_conditions=valid_amp_conditions, + ) def _read_alignment_context(file_obj, version): diff --git a/qiskit/quantum_info/operators/dihedral/dihedral.py b/qiskit/quantum_info/operators/dihedral/dihedral.py index c46538932950..204580761fff 100644 --- a/qiskit/quantum_info/operators/dihedral/dihedral.py +++ b/qiskit/quantum_info/operators/dihedral/dihedral.py @@ -70,7 +70,8 @@ class CNOTDihedral(BaseOperator, AdjointMixin): :class:`~qiskit.circuit.library.TGate`, :class:`~qiskit.circuit.library.TdgGate` :class:`~qiskit.circuit.library.SGate`, :class:`~qiskit.circuit.library.SdgGate`, :class:`~qiskit.circuit.library.CXGate`, :class:`~qiskit.circuit.library.CZGate`, - :class:`~qiskit.circuit.library.SwapGate`. + :class:`~qiskit.circuit.library.CSGate`, :class:`~qiskit.circuit.library.CSdgGate`, + :class:`~qiskit.circuit.library.SwapGate`, :class:`~qiskit.circuit.library.CCZGate`. They can be converted back into a :class:`~qiskit.circuit.QuantumCircuit`, or :class:`~qiskit.circuit.Gate` object using the :meth:`~CNOTDihedral.to_circuit` or :meth:`~CNOTDihderal.to_instruction` methods respectively. Note that this diff --git a/qiskit/quantum_info/operators/dihedral/dihedral_circuits.py b/qiskit/quantum_info/operators/dihedral/dihedral_circuits.py index a27fa4699f4e..b85a88cded03 100644 --- a/qiskit/quantum_info/operators/dihedral/dihedral_circuits.py +++ b/qiskit/quantum_info/operators/dihedral/dihedral_circuits.py @@ -45,7 +45,7 @@ def _append_circuit(elem, circuit, qargs=None): else: gate = circuit - # Handle cx, cz and id since they are basic gates, and cannot be decomposed, + # Handle cx, cz, ccz and id since they are basic gates, and cannot be decomposed, if gate.name == "cx": if len(qargs) != 2: raise QiskitError("Invalid qubits for 2-qubit gate cx.") @@ -64,6 +64,24 @@ def _append_circuit(elem, circuit, qargs=None): elem._append_phase(7, qargs[0]) return elem + if gate.name == "ccz": + if len(qargs) != 3: + raise QiskitError("Invalid qubits for 2-qubit gate cx.") + elem._append_cx(qargs[1], qargs[2]) + elem._append_phase(7, qargs[2]) + elem._append_cx(qargs[0], qargs[2]) + elem._append_phase(1, qargs[2]) + elem._append_cx(qargs[1], qargs[2]) + elem._append_phase(1, qargs[1]) + elem._append_phase(7, qargs[2]) + elem._append_cx(qargs[0], qargs[2]) + elem._append_cx(qargs[0], qargs[1]) + elem._append_phase(1, qargs[2]) + elem._append_phase(1, qargs[0]) + elem._append_phase(7, qargs[1]) + elem._append_cx(qargs[0], qargs[1]) + return elem + if gate.name == "id": if len(qargs) != 1: raise QiskitError("Invalid qubits for 1-qubit gate id.") @@ -148,6 +166,24 @@ def _append_circuit(elem, circuit, qargs=None): elem._append_phase(7, new_qubits[1]) elem._append_phase(7, new_qubits[0]) + elif instruction.operation.name == "cs" or gate.name == "cs": + if len(new_qubits) != 2: + raise QiskitError("Invalid qubits for 2-qubit gate cs.") + elem._append_phase(1, new_qubits[1]) + elem._append_phase(1, new_qubits[0]) + elem._append_cx(new_qubits[1], new_qubits[0]) + elem._append_phase(7, new_qubits[0]) + elem._append_cx(new_qubits[1], new_qubits[0]) + + elif instruction.operation.name == "csdg" or gate.name == "csdg": + if len(new_qubits) != 2: + raise QiskitError("Invalid qubits for 2-qubit gate csdg.") + elem._append_phase(7, new_qubits[1]) + elem._append_phase(7, new_qubits[0]) + elem._append_cx(new_qubits[1], new_qubits[0]) + elem._append_phase(1, new_qubits[0]) + elem._append_cx(new_qubits[1], new_qubits[0]) + elif instruction.operation.name == "swap" or gate.name == "swap": if len(new_qubits) != 2: raise QiskitError("Invalid qubits for 2-qubit gate swap.") @@ -155,6 +191,23 @@ def _append_circuit(elem, circuit, qargs=None): elem._append_cx(new_qubits[1], new_qubits[0]) elem._append_cx(new_qubits[0], new_qubits[1]) + elif instruction.operation.name == "ccz": + if len(new_qubits) != 3: + raise QiskitError("Invalid qubits for 3-qubit gate ccz.") + elem._append_cx(new_qubits[1], new_qubits[2]) + elem._append_phase(7, new_qubits[2]) + elem._append_cx(new_qubits[0], new_qubits[2]) + elem._append_phase(1, new_qubits[2]) + elem._append_cx(new_qubits[1], new_qubits[2]) + elem._append_phase(1, new_qubits[1]) + elem._append_phase(7, new_qubits[2]) + elem._append_cx(new_qubits[0], new_qubits[2]) + elem._append_cx(new_qubits[0], new_qubits[1]) + elem._append_phase(1, new_qubits[2]) + elem._append_phase(1, new_qubits[0]) + elem._append_phase(7, new_qubits[1]) + elem._append_cx(new_qubits[0], new_qubits[1]) + elif instruction.operation.name == "id": pass diff --git a/qiskit/quantum_info/operators/symplectic/pauli_list.py b/qiskit/quantum_info/operators/symplectic/pauli_list.py index 97b484e5bbf6..188711e4bacb 100644 --- a/qiskit/quantum_info/operators/symplectic/pauli_list.py +++ b/qiskit/quantum_info/operators/symplectic/pauli_list.py @@ -192,7 +192,7 @@ def __str__(self): def _truncated_str(self, show_class): stop = self._num_paulis - if self.__truncate__: + if self.__truncate__ and self.num_qubits > 0: max_paulis = self.__truncate__ // self.num_qubits if self._num_paulis > max_paulis: stop = max_paulis diff --git a/qiskit/quantum_info/synthesis/qsd.py b/qiskit/quantum_info/synthesis/qsd.py index 9d398732fec7..0adfdaf04593 100644 --- a/qiskit/quantum_info/synthesis/qsd.py +++ b/qiskit/quantum_info/synthesis/qsd.py @@ -18,12 +18,13 @@ import numpy as np from qiskit.circuit import QuantumCircuit, QuantumRegister from qiskit.quantum_info.synthesis import two_qubit_decompose, one_qubit_decompose -from qiskit.circuit.library.standard_gates import CXGate from qiskit.quantum_info.operators.predicates import is_hermitian_matrix from qiskit.extensions.quantum_initializer.uc_pauli_rot import UCPauliRotGate, _EPS -def qs_decomposition(mat, opt_a1=True, decomposer_1q=None, decomposer_2q=None): +def qs_decomposition( + mat, opt_a1=True, opt_a2=True, decomposer_1q=None, decomposer_2q=None, *, _depth=0 +): """ Decomposes unitary matrix into one and two qubit gates using Quantum Shannon Decomposition. @@ -39,11 +40,17 @@ def qs_decomposition(mat, opt_a1=True, decomposer_1q=None, decomposer_2q=None): \frac{9}{16} 4^n - frac{3}{2} 2^n - If opt_a1=True, the CX count is further reduced by, + If opt_a1 = True, the default, the CX count is reduced by, .. math:: - \frac{1}{3} 4^{n - 2} - 1 + \frac{1}{3} 4^{n - 2} - 1. + + If opt_a2 = True, the default, the CX count is reduced by, + + .. math:: + + 4^{n-2} - 1. This decomposition is described in arXiv:quant-ph/0406176. @@ -52,15 +59,18 @@ def qs_decomposition(mat, opt_a1=True, decomposer_1q=None, decomposer_2q=None): opt_a1 (bool): whether to try optimization A.1 from Shende. This should eliminate 1 cnot per call. If True CZ gates are left in the output. If desired these can be further decomposed to CX. + opt_a2 (bool): whether to try optimization A.2 from Shende. This decomposes two qubit + unitaries into a diagonal gate and a two cx unitary and reduces overal cx count by + 4^(n-2) - 1. decomposer_1q (None or Object): optional 1Q decomposer. If None, uses :class:`~qiskit.quantum_info.synthesis.one_qubit_decomposer.OneQubitEulerDecomser` decomposer_2q (None or Object): optional 2Q decomposer. If None, uses - :class:`~qiskit.quantum_info.synthesis.two_qubit_decomposer.TwoQubitBasisDecomposer` - with CXGate. + :class:`~qiskit.quantum_info.synthesis.two_qubit_decomposer.two_qubit_cnot_decompose Return: QuantumCircuit: Decomposed quantum circuit. """ + # _depth (int): Internal use parameter to track recursion depth. dim = mat.shape[0] nqubits = int(np.log2(dim)) if np.allclose(np.identity(dim), mat): @@ -71,7 +81,18 @@ def qs_decomposition(mat, opt_a1=True, decomposer_1q=None, decomposer_2q=None): circ = decomposer_1q(mat) elif dim == 4: if decomposer_2q is None: - decomposer_2q = two_qubit_decompose.TwoQubitBasisDecomposer(CXGate()) + if opt_a2: + from qiskit.extensions.unitary import UnitaryGate # pylint: disable=cyclic-import + + def decomp_2q(mat): + ugate = UnitaryGate(mat) + qc = QuantumCircuit(2, name="qsd2q") + qc.append(ugate, [0, 1]) + return qc + + decomposer_2q = decomp_2q + else: + decomposer_2q = two_qubit_decompose.two_qubit_cnot_decompose circ = decomposer_2q(mat) else: qr = QuantumRegister(nqubits) @@ -80,7 +101,7 @@ def qs_decomposition(mat, opt_a1=True, decomposer_1q=None, decomposer_2q=None): # perform cosine-sine decomposition (u1, u2), vtheta, (v1h, v2h) = scipy.linalg.cossin(mat, separate=True, p=dim_o2, q=dim_o2) # left circ - left_circ = _demultiplex(v1h, v2h, opt_a1=opt_a1) + left_circ = _demultiplex(v1h, v2h, opt_a1=opt_a1, opt_a2=opt_a2, _depth=_depth) circ.append(left_circ.to_instruction(), qr) # middle circ if opt_a1: @@ -94,13 +115,15 @@ def qs_decomposition(mat, opt_a1=True, decomposer_1q=None, decomposer_2q=None): else: circ.ucry((2 * vtheta).tolist(), qr[:-1], qr[-1]) # right circ - right_circ = _demultiplex(u1, u2, opt_a1=opt_a1) + right_circ = _demultiplex(u1, u2, opt_a1=opt_a1, opt_a2=opt_a2, _depth=_depth) circ.append(right_circ.to_instruction(), qr) + if opt_a2 and _depth == 0: + return _apply_a2(circ) return circ -def _demultiplex(um0, um1, opt_a1=False): +def _demultiplex(um0, um1, opt_a1=False, opt_a2=False, *, _depth=0): """decomposes a generic multiplexer. ────□──── @@ -129,6 +152,10 @@ def _demultiplex(um0, um1, opt_a1=False): um1 (ndarray): applied if MSB is 1 opt_a1 (bool): whether to try optimization A.1 from Shende. This should elliminate 1 cnot per call. If True CZ gates are left in the output. If desired these can be further decomposed + opt_a2 (bool): whether to try optimization A.2 from Shende. This decomposes two qubit + unitaries into a diagonal gate and a two cx unitary and reduces overal cx count by + 4^(n-2) - 1. + _depth (int): This is an internal variable to track the recursion depth. Returns: QuantumCircuit: decomposed circuit @@ -148,7 +175,9 @@ def _demultiplex(um0, um1, opt_a1=False): circ = QuantumCircuit(nqubits) # left gate - left_gate = qs_decomposition(wmat, opt_a1=opt_a1).to_instruction() + left_gate = qs_decomposition( + wmat, opt_a1=opt_a1, opt_a2=opt_a2, _depth=_depth + 1 + ).to_instruction() circ.append(left_gate, range(nqubits - 1)) # multiplexed Rz @@ -156,7 +185,9 @@ def _demultiplex(um0, um1, opt_a1=False): circ.ucrz(angles.tolist(), list(range(nqubits - 1)), [nqubits - 1]) # right gate - right_gate = qs_decomposition(vmat, opt_a1=opt_a1).to_instruction() + right_gate = qs_decomposition( + vmat, opt_a1=opt_a1, opt_a2=opt_a2, _depth=_depth + 1 + ).to_instruction() circ.append(right_gate, range(nqubits - 1)) return circ @@ -164,7 +195,7 @@ def _demultiplex(um0, um1, opt_a1=False): def _get_ucry_cz(nqubits, angles): """ - Get uniformally controlled Ry gate in in CZ-Ry as in UCPauliRotGate. + Get uniformly controlled Ry gate in in CZ-Ry as in UCPauliRotGate. """ nangles = len(angles) qc = QuantumCircuit(nqubits) @@ -189,3 +220,36 @@ def _get_ucry_cz(nqubits, angles): if i < nangles - 1: qc.cz(q_controls[q_contr_index], q_target) return qc + + +def _apply_a2(circ): + from qiskit import transpile + from qiskit.quantum_info import Operator + + # from qiskit.extensions.unitary import UnitaryGate + import qiskit.extensions.unitary + + decomposer = two_qubit_decompose.TwoQubitDecomposeUpToDiagonal() + ccirc = transpile(circ, basis_gates=["u", "cx", "qsd2q"], optimization_level=0) + ind2q = [] + # collect 2q instrs + for i, instr_context in enumerate(ccirc.data): + instr, _, _ = instr_context + if instr.name == "qsd2q": + ind2q.append(i) + # rolling over diagonals + ind2 = None # lint + for ind1, ind2 in zip(ind2q[0:-1:], ind2q[1::]): + # get neigboring 2q gates separated by controls + instr1, qargs, cargs = ccirc.data[ind1] + mat1 = Operator(instr1).data + instr2, _, _ = ccirc.data[ind2] + mat2 = Operator(instr2).data + # rollover + dmat, qc2cx = decomposer(mat1) + ccirc.data[ind1] = (qc2cx.to_gate(), qargs, cargs) + mat2 = mat2 @ dmat + ccirc.data[ind2] = (qiskit.extensions.unitary.UnitaryGate(mat2), qargs, cargs) + qc3 = two_qubit_decompose.two_qubit_cnot_decompose(mat2) + ccirc.data[ind2] = (qc3.to_gate(), qargs, cargs) + return ccirc diff --git a/qiskit/quantum_info/synthesis/two_qubit_decompose.py b/qiskit/quantum_info/synthesis/two_qubit_decompose.py index 7b9ad8395a48..972119e46285 100644 --- a/qiskit/quantum_info/synthesis/two_qubit_decompose.py +++ b/qiskit/quantum_info/synthesis/two_qubit_decompose.py @@ -1403,6 +1403,97 @@ def num_basis_gates(self, unitary): return np.argmax([trace_to_fid(traces[i]) * self.basis_fidelity**i for i in range(4)]) +class TwoQubitDecomposeUpToDiagonal: + """ + Class to decompose two qubit unitaries into the product of a diagonal gate + and another unitary gate which can be represented by two CX gates instead of the + usual three. This can be used when neighboring gates commute with the diagonal to + potentially reduce overall CX count. + """ + + def __init__(self): + sy = np.array([[0, -1j], [1j, 0]]) + self.sysy = np.kron(sy, sy) + + def _u4_to_su4(self, u4): + from scipy import linalg as la + + phase_factor = np.conj(la.det(u4) ** (-1 / u4.shape[0])) + su4 = u4 / phase_factor + return su4, cmath.phase(phase_factor) + + def _gamma(self, mat): + """ + proposition II.1: this invariant characterizes when two operators in U(4), + say u, v, are equivalent up to single qubit gates: + + u ≡ v -> Det(γ(u)) = Det(±(γ(v))) + """ + sumat, _ = self._u4_to_su4(mat) + sysy = self.sysy + return sumat @ sysy @ sumat.T @ sysy + + def _cx0_test(self, mat): + # proposition III.1: zero cx sufficient + gamma = self._gamma(mat) + evals = np.linalg.eigvals(gamma) + return np.all(np.isclose(evals, np.ones(4))) + + def _cx1_test(self, mat): + # proposition III.2: one cx sufficient + gamma = self._gamma(mat) + evals = np.linalg.eigvals(gamma) + uvals, ucnts = np.unique(np.round(evals, 10), return_counts=True) + return ( + len(uvals) == 2 + and all(ucnts == 2) + and all((np.isclose(x, 1j)) or np.isclose(x, -1j) for x in uvals) + ) + + def _cx2_test(self, mat): + # proposition III.3: two cx sufficient + gamma = self._gamma(mat) + return np.isclose(np.trace(gamma).imag, 0) + + def _real_trace_transform(self, mat): + """ + Determine diagonal gate such that + + U3 = D U2 + + Where U3 is a general two-qubit gate which takes 3 cnots, D is a + diagonal gate, and U2 is a gate which takes 2 cnots. + """ + a1 = ( + -mat[1, 3] * mat[2, 0] + + mat[1, 2] * mat[2, 1] + + mat[1, 1] * mat[2, 2] + - mat[1, 0] * mat[2, 3] + ) + a2 = ( + mat[0, 3] * mat[3, 0] + - mat[0, 2] * mat[3, 1] + - mat[0, 1] * mat[3, 2] + + mat[0, 0] * mat[3, 3] + ) + theta = 0 # arbitrary + phi = 0 # arbitrary + psi = np.arctan2(a1.imag + a2.imag, a1.real - a2.real) - phi + diag = np.diag(np.exp(-1j * np.array([theta, phi, psi, -(theta + phi + psi)]))) + return diag + + def __call__(self, mat): + """do the decomposition""" + su4, phase = self._u4_to_su4(mat) + real_map = self._real_trace_transform(su4) + mapped_su4 = real_map @ su4 + if not self._cx2_test(mapped_su4): + warnings.warn("Unitary decomposition up to diagonal may use an additionl CX gate.") + circ = two_qubit_cnot_decompose(mapped_su4) + circ.global_phase += phase + return real_map.conj(), circ + + # This weird duplicated lazy structure is for backwards compatibility; Qiskit has historically # always made ``two_qubit_cnot_decompose`` available publicly immediately on import, but it's quite # expensive to construct, and we want to defer the obejct's creation until it's actually used. We diff --git a/qiskit/result/distributions/probability.py b/qiskit/result/distributions/probability.py index e1de82e529d0..425160334dc3 100644 --- a/qiskit/result/distributions/probability.py +++ b/qiskit/result/distributions/probability.py @@ -45,20 +45,23 @@ def __init__(self, data, shots=None): ValueError: If the string format of the keys is incorrect """ self.shots = shots + self._num_bits = 0 if data: first_key = next(iter(data.keys())) if isinstance(first_key, int): - pass + # `self._num_bits` is not always the exact number of qubits measured, + # but the number of bits to represent the largest key. + self._num_bits = len(bin(max(data.keys()))) - 2 elif isinstance(first_key, str): - if first_key.startswith("0x"): - hex_raw = data - data = {int(key, 0): value for key, value in hex_raw.items()} - elif first_key.startswith("0b"): - bin_raw = data - data = {int(key, 0): value for key, value in bin_raw.items()} + if first_key.startswith("0x") or first_key.startswith("0b"): + data = {int(key, 0): value for key, value in data.items()} + # `self._num_bits` is not always the exact number of qubits measured, + # but the number of bits to represent the largest key. + self._num_bits = len(bin(max(data.keys()))) - 2 elif self._bitstring_regex.search(first_key): - bin_raw = data - data = {int("0b" + key, 0): value for key, value in bin_raw.items()} + # `self._num_bits` is the exact number of qubits measured. + self._num_bits = max(len(key) for key in data) + data = {int(key, 2): value for key, value in data.items()} else: raise ValueError( "The input keys are not a valid string format, must either " @@ -74,14 +77,17 @@ def binary_probabilities(self, num_bits=None): Parameters: num_bits (int): number of bits in the binary bitstrings (leading - zeros will be padded). If None, the length will be derived - from the largest key present. + zeros will be padded). If None, a default value will be used. + If keys are given as integers or strings with binary or hex prefix, + the default value will be derived from the largest key present. + If keys are given as bitstrings without prefix, + the default value will be derived from the largest key length. Returns: dict: A dictionary where the keys are binary strings in the format ``"0110"`` """ - n = len(bin(max(self.keys(), default=0))) - 2 if num_bits is None else num_bits + n = self._num_bits if num_bits is None else num_bits return {format(key, "b").zfill(n): value for key, value in self.items()} def hex_probabilities(self): diff --git a/qiskit/result/distributions/quasi.py b/qiskit/result/distributions/quasi.py index b251677213c1..c774d3ee99d3 100644 --- a/qiskit/result/distributions/quasi.py +++ b/qiskit/result/distributions/quasi.py @@ -50,20 +50,23 @@ def __init__(self, data, shots=None, stddev_upper_bound=None): """ self.shots = shots self._stddev_upper_bound = stddev_upper_bound + self._num_bits = 0 if data: first_key = next(iter(data.keys())) if isinstance(first_key, int): - pass + # `self._num_bits` is not always the exact number of qubits measured, + # but the number of bits to represent the largest key. + self._num_bits = len(bin(max(data.keys()))) - 2 elif isinstance(first_key, str): - if first_key.startswith("0x"): - hex_raw = data - data = {int(key, 0): value for key, value in hex_raw.items()} - elif first_key.startswith("0b"): - bin_raw = data - data = {int(key, 0): value for key, value in bin_raw.items()} + if first_key.startswith("0x") or first_key.startswith("0b"): + data = {int(key, 0): value for key, value in data.items()} + # `self._num_bits` is not always the exact number of qubits measured, + # but the number of bits to represent the largest key. + self._num_bits = len(bin(max(data.keys()))) - 2 elif self._bitstring_regex.search(first_key): - bin_raw = data - data = {int("0b" + key, 0): value for key, value in bin_raw.items()} + # `self._num_bits` is the exact number of qubits measured. + self._num_bits = max(len(key) for key in data) + data = {int(key, 2): value for key, value in data.items()} else: raise ValueError( "The input keys are not a valid string format, must either " @@ -112,14 +115,17 @@ def binary_probabilities(self, num_bits=None): Parameters: num_bits (int): number of bits in the binary bitstrings (leading - zeros will be padded). If None, the length will be derived - from the largest key present. + zeros will be padded). If None, a default value will be used. + If keys are given as integers or strings with binary or hex prefix, + the default value will be derived from the largest key present. + If keys are given as bitstrings without prefix, + the default value will be derived from the largest key length. Returns: dict: A dictionary where the keys are binary strings in the format ``"0110"`` """ - n = len(bin(max(self.keys(), default=0))) - 2 if num_bits is None else num_bits + n = self._num_bits if num_bits is None else num_bits return {format(key, "b").zfill(n): value for key, value in self.items()} def hex_probabilities(self): diff --git a/qiskit/test/_canonical.py b/qiskit/test/_canonical.py new file mode 100644 index 000000000000..ea8e7cfce3b4 --- /dev/null +++ b/qiskit/test/_canonical.py @@ -0,0 +1,125 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 20022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""Utility methods for canonicalising various Qiskit objects, to help with testing.""" + +import threading + +from qiskit.circuit import ( + BreakLoopOp, + CircuitInstruction, + ContinueLoopOp, + ControlFlowOp, + ForLoopOp, + Parameter, + QuantumCircuit, +) + + +class _CanonicalParametersIterator: + """An object that, when iterated through, will produce the same sequence of parameters as every + other instance of this iterator.""" + + __parameters = [] + __mutex = threading.Lock() + + def __init__(self): + self._counter = 0 + + def __iter__(self): + return self + + def __next__(self): + with self.__mutex: + if len(self.__parameters) >= self._counter: + param = Parameter(f"_canonicalization_loop_{self._counter}") + self.__parameters.append(param) + out = self.__parameters[self._counter] + self._counter += 1 + return out + + +def canonicalize_control_flow(circuit: QuantumCircuit) -> QuantumCircuit: + """Canonicalize all control-flow operations in a circuit. + + This is not an efficient operation, and does not affect any properties of the circuit. Its + intent is to normalise parts of circuits that have a non-deterministic construction. These are + the ordering of bit arguments in control-flow blocks output by the builder interface, and + automatically generated ``for``-loop variables. + + The canonical form sorts the bits in the arguments of these operations so that they always + appear in the order they were originally added to the outer-most circuit. For-loop variables + are re-bound into new, cached auto-generated ones.""" + params = iter(_CanonicalParametersIterator()) + base_bit_order = {bit: i for i, bit in enumerate(circuit.qubits)} + base_bit_order.update((bit, i) for i, bit in enumerate(circuit.clbits)) + + def worker(circuit, bit_map=None): + if bit_map is None: + bit_map = {bit: bit for bits in (circuit.qubits, circuit.clbits) for bit in bits} + + def bit_key(bit): + return base_bit_order[bit_map[bit]] + + # This isn't quite QuantumCircuit.copy_empty_like because of the bit reordering. + out = QuantumCircuit( + sorted(circuit.qubits, key=bit_key), + sorted(circuit.clbits, key=bit_key), + *circuit.qregs, + *circuit.cregs, + name=circuit.name, + global_phase=circuit.global_phase, + metadata=circuit.metadata, + ) + for instruction in circuit.data: + new_instruction = instruction + # Control-flow operations associated bits in the instruction arguments with bits in the + # circuit blocks just by sequencing. All blocks must have the same width. + if isinstance(new_instruction.operation, ControlFlowOp): + op = new_instruction.operation + first_block = op.blocks[0] + inner_bit_map = dict( + zip(first_block.qubits, (bit_map[bit] for bit in new_instruction.qubits)) + ) + inner_bit_map.update( + zip(first_block.clbits, (bit_map[bit] for bit in new_instruction.clbits)) + ) + new_instruction = CircuitInstruction( + operation=op.replace_blocks( + [worker(block, inner_bit_map) for block in op.blocks] + ), + qubits=sorted(new_instruction.qubits, key=bit_key), + clbits=sorted(new_instruction.clbits, key=bit_key), + ) + elif isinstance(new_instruction.operation, (BreakLoopOp, ContinueLoopOp)): + new_instruction = new_instruction.replace( + qubits=sorted(new_instruction.qubits, key=bit_key), + clbits=sorted(new_instruction.clbits, key=bit_key), + ) + # For for loops specifically, the control-flow builders generate a loop parameter if one + # is needed but not explicitly supplied. We want the parameters to compare equal, so we + # replace them with those from a shared list. + if isinstance(new_instruction.operation, ForLoopOp): + old_op = new_instruction.operation + indexset, loop_param, body = old_op.params + if loop_param is not None: + new_loop_param = next(params) + new_op = ForLoopOp( + indexset, + new_loop_param, + body.assign_parameters({loop_param: new_loop_param}), + ) + new_instruction = new_instruction.replace(operation=new_op) + out._append(new_instruction) + return out + + return worker(circuit) diff --git a/qiskit/transpiler/layout.py b/qiskit/transpiler/layout.py index 139b566734d4..5b00ca10abbd 100644 --- a/qiskit/transpiler/layout.py +++ b/qiskit/transpiler/layout.py @@ -157,18 +157,26 @@ def copy(self): def add(self, virtual_bit, physical_bit=None): """ Adds a map element between `bit` and `physical_bit`. If `physical_bit` is not - defined, `bit` will be mapped to a new physical bit (extending the length of the - layout by one.) + defined, `bit` will be mapped to a new physical bit. Args: virtual_bit (tuple): A (qu)bit. For example, (QuantumRegister(3, 'qr'), 2). physical_bit (int): A physical bit. For example, 3. """ if physical_bit is None: - physical_candidate = len(self) - while physical_candidate in self._p2v: - physical_candidate += 1 - physical_bit = physical_candidate + if len(self._p2v) == 0: + physical_bit = 0 + else: + max_physical = max(self._p2v) + # Fill any gaps in the existing bits + for physical_candidate in range(max_physical): + if physical_candidate not in self._p2v: + physical_bit = physical_candidate + break + # If there are no free bits in the allocated physical bits add new ones + else: + physical_bit = max_physical + 1 + self[virtual_bit] = physical_bit def add_register(self, reg): diff --git a/qiskit/transpiler/passes/basis/unroll_3q_or_more.py b/qiskit/transpiler/passes/basis/unroll_3q_or_more.py index 4f0ec9069f86..9852c9f12f27 100644 --- a/qiskit/transpiler/passes/basis/unroll_3q_or_more.py +++ b/qiskit/transpiler/passes/basis/unroll_3q_or_more.py @@ -13,7 +13,9 @@ """Recursively expands 3q+ gates until the circuit only contains 2q or 1q gates.""" from qiskit.transpiler.basepasses import TransformationPass +from qiskit.transpiler.passes.utils import control_flow from qiskit.exceptions import QiskitError +from qiskit.circuit import ControlFlowOp from qiskit.converters.circuit_to_dag import circuit_to_dag @@ -63,6 +65,10 @@ def run(self, dag): elif self.basis_gates is not None and node.name in self.basis_gates: continue + if isinstance(node.op, ControlFlowOp): + node.op = control_flow.map_blocks(self.run, node.op) + continue + # TODO: allow choosing other possible decompositions rule = node.op.definition.data if not rule: diff --git a/qiskit/transpiler/passes/basis/unroll_custom_definitions.py b/qiskit/transpiler/passes/basis/unroll_custom_definitions.py index 185460ab9506..312676d2b689 100644 --- a/qiskit/transpiler/passes/basis/unroll_custom_definitions.py +++ b/qiskit/transpiler/passes/basis/unroll_custom_definitions.py @@ -14,7 +14,8 @@ from qiskit.exceptions import QiskitError from qiskit.transpiler.basepasses import TransformationPass -from qiskit.circuit import ControlledGate +from qiskit.transpiler.passes.utils import control_flow +from qiskit.circuit import ControlledGate, ControlFlowOp from qiskit.converters.circuit_to_dag import circuit_to_dag @@ -56,6 +57,9 @@ def run(self, dag): device_insts = basic_insts | set(self._basis_gates) for node in dag.op_nodes(): + if isinstance(node.op, ControlFlowOp): + node.op = control_flow.map_blocks(self.run, node.op) + continue if getattr(node.op, "_directive", False): continue diff --git a/qiskit/transpiler/passes/basis/unroller.py b/qiskit/transpiler/passes/basis/unroller.py index 035f87455783..5027e99bd550 100644 --- a/qiskit/transpiler/passes/basis/unroller.py +++ b/qiskit/transpiler/passes/basis/unroller.py @@ -13,10 +13,10 @@ """Unroll a circuit to a given basis.""" from qiskit.transpiler.basepasses import TransformationPass +from qiskit.transpiler.passes.utils import control_flow from qiskit.exceptions import QiskitError from qiskit.circuit import ControlledGate, ControlFlowOp from qiskit.converters.circuit_to_dag import circuit_to_dag -from qiskit.converters.dag_to_circuit import dag_to_circuit class Unroller(TransformationPass): @@ -70,14 +70,9 @@ def run(self, dag): continue if isinstance(node.op, ControlFlowOp): - unrolled_blocks = [] - for block in node.op.blocks: - dag_block = circuit_to_dag(block) - unrolled_dag_block = self.run(dag_block) - unrolled_circ_block = dag_to_circuit(unrolled_dag_block) - unrolled_blocks.append(unrolled_circ_block) - node.op = node.op.replace_blocks(unrolled_blocks) + node.op = control_flow.map_blocks(self.run, node.op) continue + try: phase = node.op.definition.global_phase rule = node.op.definition.data diff --git a/qiskit/transpiler/passes/optimization/collect_linear_functions.py b/qiskit/transpiler/passes/optimization/collect_linear_functions.py index 455115511bbc..debf4f68c405 100644 --- a/qiskit/transpiler/passes/optimization/collect_linear_functions.py +++ b/qiskit/transpiler/passes/optimization/collect_linear_functions.py @@ -16,6 +16,7 @@ from collections import deque from qiskit.circuit.library.generalized_gates import LinearFunction from qiskit.transpiler.basepasses import TransformationPass +from qiskit.transpiler.passes.utils import control_flow from qiskit.circuit import QuantumCircuit from qiskit.dagcircuit import DAGOpNode @@ -131,6 +132,7 @@ class CollectLinearFunctions(TransformationPass): """Collect blocks of linear gates (:class:`.CXGate` and :class:`.SwapGate` gates) and replaces them by linear functions (:class:`.LinearFunction`).""" + @control_flow.trivial_recurse def run(self, dag): """Run the CollectLinearFunctions pass on `dag`. diff --git a/qiskit/transpiler/passes/optimization/cx_cancellation.py b/qiskit/transpiler/passes/optimization/cx_cancellation.py index 945af3840955..6dd4a5364552 100644 --- a/qiskit/transpiler/passes/optimization/cx_cancellation.py +++ b/qiskit/transpiler/passes/optimization/cx_cancellation.py @@ -13,11 +13,13 @@ """Cancel back-to-back `cx` gates in dag.""" from qiskit.transpiler.basepasses import TransformationPass +from qiskit.transpiler.passes.utils import control_flow class CXCancellation(TransformationPass): """Cancel back-to-back `cx` gates in dag.""" + @control_flow.trivial_recurse def run(self, dag): """Run the CXCancellation pass on `dag`. diff --git a/qiskit/transpiler/passes/optimization/optimize_1q_decomposition.py b/qiskit/transpiler/passes/optimization/optimize_1q_decomposition.py index 04295fa498fb..7b8fbf9a60ef 100644 --- a/qiskit/transpiler/passes/optimization/optimize_1q_decomposition.py +++ b/qiskit/transpiler/passes/optimization/optimize_1q_decomposition.py @@ -19,6 +19,7 @@ from qiskit.circuit.library.standard_gates import U3Gate from qiskit.transpiler.basepasses import TransformationPass +from qiskit.transpiler.passes.utils import control_flow from qiskit.quantum_info.synthesis import one_qubit_decompose from qiskit.converters import circuit_to_dag @@ -139,6 +140,7 @@ def _substitution_checks(self, dag, old_run, new_circ, new_basis): or isinstance(old_run[0].op, U3Gate) ) + @control_flow.trivial_recurse def run(self, dag): """Run the Optimize1qGatesDecomposition pass on `dag`. diff --git a/qiskit/transpiler/passes/optimization/optimize_cliffords.py b/qiskit/transpiler/passes/optimization/optimize_cliffords.py index c81539b60637..bf195f715547 100644 --- a/qiskit/transpiler/passes/optimization/optimize_cliffords.py +++ b/qiskit/transpiler/passes/optimization/optimize_cliffords.py @@ -13,6 +13,7 @@ """Combine consecutive Cliffords over the same qubits.""" from qiskit.transpiler.basepasses import TransformationPass +from qiskit.transpiler.passes.utils import control_flow from qiskit.quantum_info.operators import Clifford @@ -22,6 +23,7 @@ class OptimizeCliffords(TransformationPass): Cliffords natively on the circuit. """ + @control_flow.trivial_recurse def run(self, dag): """Run the OptimizeCliffords pass on `dag`. diff --git a/qiskit/transpiler/passes/optimization/optimize_swap_before_measure.py b/qiskit/transpiler/passes/optimization/optimize_swap_before_measure.py index f4bc30d0cdb3..96cc3b8cdd62 100644 --- a/qiskit/transpiler/passes/optimization/optimize_swap_before_measure.py +++ b/qiskit/transpiler/passes/optimization/optimize_swap_before_measure.py @@ -16,6 +16,7 @@ from qiskit.circuit import Measure from qiskit.circuit.library.standard_gates import SwapGate from qiskit.transpiler.basepasses import TransformationPass +from qiskit.transpiler.passes.utils import control_flow from qiskit.dagcircuit import DAGCircuit, DAGOpNode, DAGOutNode @@ -26,6 +27,7 @@ class OptimizeSwapBeforeMeasure(TransformationPass): the classical bit of the measure instruction. """ + @control_flow.trivial_recurse def run(self, dag): """Run the OptimizeSwapBeforeMeasure pass on `dag`. @@ -35,6 +37,7 @@ def run(self, dag): Returns: DAGCircuit: the optimized DAG. """ + swaps = dag.op_nodes(SwapGate) for swap in swaps[::-1]: if getattr(swap.op, "condition", None) is not None: diff --git a/qiskit/transpiler/passes/optimization/remove_diagonal_gates_before_measure.py b/qiskit/transpiler/passes/optimization/remove_diagonal_gates_before_measure.py index 62066d518852..be4c79aa47e6 100644 --- a/qiskit/transpiler/passes/optimization/remove_diagonal_gates_before_measure.py +++ b/qiskit/transpiler/passes/optimization/remove_diagonal_gates_before_measure.py @@ -28,6 +28,7 @@ ) from qiskit.dagcircuit import DAGOpNode from qiskit.transpiler.basepasses import TransformationPass +from qiskit.transpiler.passes.utils import control_flow class RemoveDiagonalGatesBeforeMeasure(TransformationPass): @@ -37,6 +38,7 @@ class RemoveDiagonalGatesBeforeMeasure(TransformationPass): a measurement. Including diagonal 2Q gates. """ + @control_flow.trivial_recurse def run(self, dag): """Run the RemoveDiagonalGatesBeforeMeasure pass on `dag`. diff --git a/qiskit/transpiler/passes/optimization/reset_after_measure_simplification.py b/qiskit/transpiler/passes/optimization/reset_after_measure_simplification.py index 22f1f87e2d79..4445e878ce6b 100644 --- a/qiskit/transpiler/passes/optimization/reset_after_measure_simplification.py +++ b/qiskit/transpiler/passes/optimization/reset_after_measure_simplification.py @@ -13,6 +13,7 @@ """Replace resets after measure with a conditional XGate.""" from qiskit.transpiler.basepasses import TransformationPass +from qiskit.transpiler.passes.utils import control_flow from qiskit.circuit.library.standard_gates.x import XGate from qiskit.circuit.reset import Reset from qiskit.circuit.measure import Measure @@ -29,6 +30,7 @@ class ResetAfterMeasureSimplification(TransformationPass): differently. """ + @control_flow.trivial_recurse def run(self, dag): """Run the pass on a dag.""" for node in dag.op_nodes(Measure): diff --git a/qiskit/transpiler/passes/routing/commuting_2q_gate_routing/commuting_2q_gate_router.py b/qiskit/transpiler/passes/routing/commuting_2q_gate_routing/commuting_2q_gate_router.py index eb1c3bbcfa98..11919bf18b6c 100644 --- a/qiskit/transpiler/passes/routing/commuting_2q_gate_routing/commuting_2q_gate_router.py +++ b/qiskit/transpiler/passes/routing/commuting_2q_gate_routing/commuting_2q_gate_router.py @@ -103,18 +103,32 @@ class Commuting2qGateRouter(TransformationPass): into account. """ - def __init__(self, swap_strategy: Optional[SwapStrategy] = None) -> None: - """ + def __init__( + self, + swap_strategy: Optional[SwapStrategy] = None, + edge_coloring: Optional[Dict[Tuple[int, int], int]] = None, + ) -> None: + r""" Args: swap_strategy: An instance of a :class:`.SwapStrategy` that holds the swap layers that are used, and the order in which to apply them, to map the instruction to the hardware. If this field is not given if should be contained in the property set of the pass. This allows other passes to determine the most appropriate swap strategy at run-time. + edge_coloring: An optional edge coloring of the coupling map (I.e. no two edges that + share a node have the same color). If the edge coloring is given then the commuting + gates that can be simultaneously applied given the current qubit permutation are + grouped according to the edge coloring and applied according to this edge + coloring. Here, a color is an int which is used as the index to define and + access the groups of commuting gates that can be applied simultaneously. + If the edge coloring is not given then the sets will be built-up using a + greedy algorithm. The edge coloring is useful to position gates such as + ``RZZGate``\s next to swap gates to exploit CX cancellations. """ super().__init__() self._swap_strategy = swap_strategy self._bit_indices = None + self._edge_coloring = edge_coloring def run(self, dag: DAGCircuit) -> DAGCircuit: """Run the pass by decomposing the nodes it applies on. @@ -217,23 +231,44 @@ def _position_in_cmap(self, j: int, k: int, layout: Layout) -> Tuple[int, ...]: return bit0, bit1 - @staticmethod - def _build_sub_layers(current_layer: Dict[tuple, Gate]) -> List[Dict[tuple, Gate]]: - """A helper method to build-up sets of gates that can simultaneously be applied. + def _build_sub_layers(self, current_layer: Dict[tuple, Gate]) -> List[Dict[tuple, Gate]]: + """A helper method to build-up sets of gates to simultaneously apply. - Note that this could also be done using an edge coloring of the coupling map. + This is done with an edge coloring if the ``edge_coloring`` init argument was given or with + a greedy algorithm if not. With an edge coloring all gates on edges with the same color + will be applied simultaneously. These sublayers are applied in the order of their color, + which is an int, in increasing color order. Args: current_layer: All gates in the current layer can be applied given the qubit ordering - of the current layout. However, not all gates in the current layer can be applied - simultaneously. This function creates sub-layers by greedily building up sub-layers - of gates. All gates in a sub-layer can simultaneously be applied given the coupling - map and current qubit configuration. + of the current layout. However, not all gates in the current layer can be applied + simultaneously. This function creates sub-layers by building up sub-layers + of gates. All gates in a sub-layer can simultaneously be applied given the coupling + map and current qubit configuration. Returns: A list of gate dicts that can be applied. The gates a position 0 are applied first. A gate dict has the qubit tuple as key and the gate to apply as value. """ + if self._edge_coloring is not None: + return self._edge_coloring_build_sub_layers(current_layer) + else: + return self._greedy_build_sub_layers(current_layer) + + def _edge_coloring_build_sub_layers( + self, current_layer: Dict[tuple, Gate] + ) -> List[Dict[tuple, Gate]]: + """The edge coloring method of building sub-layers of commuting gates.""" + sub_layers = [{} for _ in set(self._edge_coloring.values())] + for edge, gate in current_layer.items(): + color = self._edge_coloring[edge] + sub_layers[color][edge] = gate + + return sub_layers + + @staticmethod + def _greedy_build_sub_layers(current_layer: Dict[tuple, Gate]) -> List[Dict[tuple, Gate]]: + """The greedy method of building sub-layers of commuting gates.""" sub_layers = [] while len(current_layer) > 0: current_sub_layer, remaining_gates, blocked_vertices = {}, {}, set() diff --git a/qiskit/transpiler/passes/routing/sabre_swap.py b/qiskit/transpiler/passes/routing/sabre_swap.py index 0e37bc8b4b7d..114f6d577898 100644 --- a/qiskit/transpiler/passes/routing/sabre_swap.py +++ b/qiskit/transpiler/passes/routing/sabre_swap.py @@ -210,11 +210,16 @@ def run(self, dag): dag_list = [] for node in dag.topological_op_nodes(): + cargs = {self._clbit_indices[x] for x in node.cargs} + if node.op.condition is not None: + for clbit in dag._bits_in_condition(node.op.condition): + cargs.add(self._clbit_indices[clbit]) + dag_list.append( ( node._node_id, [self._qubit_indices[x] for x in node.qargs], - [self._clbit_indices[x] for x in node.cargs], + cargs, ) ) front_layer = np.asarray([x._node_id for x in dag.front_layer()], dtype=np.uintp) diff --git a/qiskit/transpiler/passes/synthesis/unitary_synthesis.py b/qiskit/transpiler/passes/synthesis/unitary_synthesis.py index 752515c7bd77..139add90ee56 100644 --- a/qiskit/transpiler/passes/synthesis/unitary_synthesis.py +++ b/qiskit/transpiler/passes/synthesis/unitary_synthesis.py @@ -25,7 +25,6 @@ from qiskit.quantum_info.synthesis import one_qubit_decompose from qiskit.quantum_info.synthesis.xx_decompose import XXDecomposer from qiskit.quantum_info.synthesis.two_qubit_decompose import TwoQubitBasisDecomposer -from qiskit.quantum_info.synthesis.qsd import qs_decomposition from qiskit.circuit.parameter import Parameter from qiskit.circuit.library.standard_gates import ( iSwapGate, @@ -545,6 +544,10 @@ def run(self, unitary, **options): preferred_direction, ) else: + from qiskit.quantum_info.synthesis.qsd import ( # pylint: disable=cyclic-import + qs_decomposition, + ) + synth_dag = circuit_to_dag(qs_decomposition(unitary)) return synth_dag, wires diff --git a/qiskit/transpiler/passes/utils/__init__.py b/qiskit/transpiler/passes/utils/__init__.py index 32b4057d0684..65209c35be9c 100644 --- a/qiskit/transpiler/passes/utils/__init__.py +++ b/qiskit/transpiler/passes/utils/__init__.py @@ -10,7 +10,7 @@ # copyright notice, and modified files need to carry a notice indicating # that they have been altered from the originals. -"""Utility passes used for other main passes.""" +"""Utility passes and functions used for other main passes.""" from .check_map import CheckMap from .check_cx_direction import CheckCXDirection # Deprecated @@ -26,3 +26,6 @@ from .remove_barriers import RemoveBarriers from .contains_instruction import ContainsInstruction from .gates_basis import GatesInBasis + +# Utility functions +from . import control_flow diff --git a/qiskit/transpiler/passes/utils/control_flow.py b/qiskit/transpiler/passes/utils/control_flow.py new file mode 100644 index 000000000000..7786aeec9ec5 --- /dev/null +++ b/qiskit/transpiler/passes/utils/control_flow.py @@ -0,0 +1,58 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""Internal utilities for working with control-flow operations.""" + +import functools +from typing import Callable + +from qiskit.circuit import ControlFlowOp +from qiskit.converters import circuit_to_dag, dag_to_circuit +from qiskit.dagcircuit import DAGCircuit + + +def map_blocks(dag_mapping: Callable[[DAGCircuit], DAGCircuit], op: ControlFlowOp) -> ControlFlowOp: + """Use the ``dag_mapping`` function to replace the blocks of a :class:`.ControlFlowOp` with new + ones. Each block will be automatically converted to a :class:`.DAGCircuit` and then returned + to a :class:`.QuantumCircuit`.""" + return op.replace_blocks( + [dag_to_circuit(dag_mapping(circuit_to_dag(block))) for block in op.blocks] + ) + + +def trivial_recurse(method): + """Decorator that causes :class:`.BasePass.run` to iterate over all control-flow nodes, + replacing their operations with a new :class:`.ControlFlowOp` whose blocks have all had + :class`.BasePass.run` called on them. + + This is only suitable for simple run calls that store no state between calls, do not need + circuit-specific information feeding into them (such as via a :class:`.PropertySet`), and will + safely do nothing to control-flow operations that are in the DAG. + + If slightly finer control is needed on when the control-flow operations are modified, one can + use :func:`map_blocks` as:: + + if isinstance(node.op, ControlFlowOp): + node.op = map_blocks(self.run, node.op) + + from with :meth:`.BasePass.run`.""" + + @functools.wraps(method) + def out(self, dag): + def bound_wrapped_method(dag): + return out(self, dag) + + for node in dag.op_nodes(ControlFlowOp): + node.op = map_blocks(bound_wrapped_method, node.op) + return method(self, dag) + + return out diff --git a/qiskit/transpiler/passes/utils/gate_direction.py b/qiskit/transpiler/passes/utils/gate_direction.py index 90e66821a268..3c331441d83e 100644 --- a/qiskit/transpiler/passes/utils/gate_direction.py +++ b/qiskit/transpiler/passes/utils/gate_direction.py @@ -20,7 +20,7 @@ from qiskit.circuit import QuantumRegister from qiskit.dagcircuit import DAGCircuit -from qiskit.circuit.library.standard_gates import RYGate, HGate, CXGate, ECRGate, RZXGate +from qiskit.circuit.library.standard_gates import RYGate, HGate, CXGate, CZGate, ECRGate, RZXGate class GateDirection(TransformationPass): @@ -78,6 +78,11 @@ def __init__(self, coupling_map, target=None): self._ecr_dag.apply_operation_back(HGate(), [qr[0]], []) self._ecr_dag.apply_operation_back(HGate(), [qr[1]], []) + self._cz_dag = DAGCircuit() + qr = QuantumRegister(2) + self._cz_dag.add_qreg(qr) + self._cz_dag.apply_operation_back(CZGate(), [qr[1], qr[0]], []) + @staticmethod def _rzx_dag(parameter): _rzx_dag = DAGCircuit() @@ -138,6 +143,8 @@ def run(self, dag): if (physical_q0, physical_q1) not in cmap_edges: if node.name == "cx": dag.substitute_node_with_dag(node, self._cx_dag) + elif node.name == "cz": + dag.substitute_node_with_dag(node, self._cz_dag) elif node.name == "ecr": dag.substitute_node_with_dag(node, self._ecr_dag) elif node.name == "rzx": @@ -169,6 +176,16 @@ def run(self, dag): "The circuit requires a connection between physical " "qubits %s and %s for cx" % (physical_q0, physical_q1) ) + elif node.name == "cz": + if (physical_q0, physical_q1) in self.target["cz"]: + continue + if (physical_q1, physical_q0) in self.target["cz"]: + dag.substitute_node_with_dag(node, self._cz_dag) + else: + raise TranspilerError( + "The circuit requires a connection between physical " + "qubits %s and %s for cz" % (physical_q0, physical_q1) + ) elif node.name == "ecr": if (physical_q0, physical_q1) in self.target["ecr"]: continue diff --git a/qiskit/transpiler/passes/utils/remove_barriers.py b/qiskit/transpiler/passes/utils/remove_barriers.py index 9d952333ef9d..0de332e4145d 100644 --- a/qiskit/transpiler/passes/utils/remove_barriers.py +++ b/qiskit/transpiler/passes/utils/remove_barriers.py @@ -14,6 +14,7 @@ from qiskit.dagcircuit import DAGCircuit from qiskit.transpiler.basepasses import TransformationPass +from qiskit.transpiler.passes.utils import control_flow class RemoveBarriers(TransformationPass): @@ -38,6 +39,7 @@ class RemoveBarriers(TransformationPass): """ + @control_flow.trivial_recurse def run(self, dag: DAGCircuit) -> DAGCircuit: """Run the RemoveBarriers pass on `dag`.""" diff --git a/qiskit/transpiler/preset_passmanagers/level3.py b/qiskit/transpiler/preset_passmanagers/level3.py index 2092e23519e2..9fe4b61de427 100644 --- a/qiskit/transpiler/preset_passmanagers/level3.py +++ b/qiskit/transpiler/preset_passmanagers/level3.py @@ -296,8 +296,6 @@ def _unroll_condition(property_set): optimization.append( _opt + _unroll_if_out_of_basis + _depth_check + _size_check, do_while=_opt_control ) - opt_loop = _depth_check + _opt + _unroll_if_out_of_basis - optimization.append(opt_loop, do_while=_opt_control) else: optimization = plugin_manager.get_passmanager_stage( "optimization", optimization_method, pass_manager_config, optimization_level=3 diff --git a/qiskit/utils/optionals.py b/qiskit/utils/optionals.py index 5017a9599924..98c6018d09c4 100644 --- a/qiskit/utils/optionals.py +++ b/qiskit/utils/optionals.py @@ -146,6 +146,12 @@ `testtools `__ library is installed. This is generally only needed for Qiskit developers. + * - .. py:data:: HAS_TWEEDLEDUM + - `Tweedledum `__ is an extension library for + synthesis and optimization of circuits that may involve classical oracles. Qiskit Terra's + :class:`.PhaseOracle` uses this, which is used in turn by amplification algorithms via + the :class:`.AmplificationProblem`. + * - .. py:data:: HAS_Z3 - `Z3 `__ is a theorem prover, used in the :class:`.CrosstalkAdaptiveSchedule` and :class:`.HoareOptimizer` transpiler passes. @@ -291,6 +297,7 @@ def _nlopt_callback(available): HAS_SQSNOBFIT = _LazyImportTester("SQSnobFit", install="pip install SQSnobFit") HAS_SYMENGINE = _LazyImportTester("symengine", install="pip install symengine") HAS_TESTTOOLS = _LazyImportTester("testtools", install="pip install testtools") +HAS_TWEEDLEDUM = _LazyImportTester("tweedledum", install="pip install tweedledum") HAS_Z3 = _LazyImportTester("z3", install="pip install z3-solver") HAS_GRAPHVIZ = _LazySubprocessTester( diff --git a/qiskit/visualization/__init__.py b/qiskit/visualization/__init__.py index c915ee930a03..d353d64c9da1 100644 --- a/qiskit/visualization/__init__.py +++ b/qiskit/visualization/__init__.py @@ -244,7 +244,6 @@ from .circuit import circuit_drawer from .counts_visualization import plot_histogram -from .bloch import Bloch, Arrow3D from .state_visualization import ( plot_state_hinton, plot_bloch_vector, diff --git a/qiskit/visualization/circuit/_utils.py b/qiskit/visualization/circuit/_utils.py index 26f2fb54d647..47cd0b0d30d4 100644 --- a/qiskit/visualization/circuit/_utils.py +++ b/qiskit/visualization/circuit/_utils.py @@ -19,7 +19,6 @@ import numpy as np from qiskit.circuit import ( - BooleanExpression, Clbit, ControlledGate, Delay, @@ -37,6 +36,14 @@ from ..exceptions import VisualizationError +def _is_boolean_expression(gate_text, op): + if not _optionals.HAS_TWEEDLEDUM: + return False + from qiskit.circuit.classicalfunction import BooleanExpression + + return isinstance(op, BooleanExpression) and gate_text == op.name + + def get_gate_ctrl_text(op, drawer, style=None, calibrations=None): """Load the gate_text and ctrl_text strings based on names and labels""" op_label = getattr(op, "label", None) @@ -76,9 +83,7 @@ def get_gate_ctrl_text(op, drawer, style=None, calibrations=None): elif drawer == "latex": # Special formatting for Booleans in latex (due to '~' causing crash) - if (gate_text == op.name and op_type is BooleanExpression) or ( - gate_text == base_name and base_type is BooleanExpression - ): + if _is_boolean_expression(gate_text, op): gate_text = gate_text.replace("~", "$\\neg$").replace("&", "\\&") gate_text = f"$\\texttt{{{gate_text}}}$" # Capitalize if not a user-created gate or instruction @@ -399,8 +404,8 @@ def _get_layered_instructions( # default to left justify = justify if justify in ("right", "none") else "left" - qubits = circuit.qubits - clbits = circuit.clbits + qubits = circuit.qubits.copy() + clbits = circuit.clbits.copy() nodes = [] # Create a mapping of each register to the max layer number for all measure ops diff --git a/qiskit/visualization/counts_visualization.py b/qiskit/visualization/counts_visualization.py index 98bba2222839..b332d595dd04 100644 --- a/qiskit/visualization/counts_visualization.py +++ b/qiskit/visualization/counts_visualization.py @@ -95,21 +95,37 @@ def plot_histogram( VisualizationError: When legend is provided and the length doesn't match the input data. - Example: + Examples: .. jupyter-execute:: - from qiskit import QuantumCircuit, BasicAer, execute - from qiskit.visualization import plot_histogram - %matplotlib inline + # Plot two counts in the same figure with legends and colors specified. - qc = QuantumCircuit(2, 2) - qc.h(0) - qc.cx(0, 1) - qc.measure([0, 1], [0, 1]) + from qiskit.visualization import plot_histogram + + counts1 = {'00': 525, '11': 499} + counts2 = {'00': 511, '11': 514} + + legend = ['First execution', 'Second execution'] + + plot_histogram([counts1, counts2], legend=legend, color=['crimson','midnightblue'], + title="New Histogram") + + .. jupyter-execute:: + + # You can sort the bitstrings using different methods. + + counts = {'001': 596, '011': 211, '010': 50, '000': 117, '101': 33, '111': 8, + '100': 6, '110': 3} + + # Sort by the probability in descending order + hist1 = plot_histogram(counts, sort='value_desc') + + # Sort by the hamming distance (the number of bit flips to change from + # one bitstring to the other) from a target string. + hist2 = plot_histogram(counts, sort='hamming', target_string='001') + + display(hist1, hist2) - backend = BasicAer.get_backend('qasm_simulator') - job = execute(qc, backend) - plot_histogram(job.result().get_counts(), color='midnightblue', title="New Histogram") """ import matplotlib.pyplot as plt from matplotlib.ticker import MaxNLocator diff --git a/qiskit/visualization/pulse_v2/generators/waveform.py b/qiskit/visualization/pulse_v2/generators/waveform.py index 6172a283d063..7a4b8c00f799 100644 --- a/qiskit/visualization/pulse_v2/generators/waveform.py +++ b/qiskit/visualization/pulse_v2/generators/waveform.py @@ -44,7 +44,7 @@ def my_object_generator(data: PulseInstruction, import numpy as np from qiskit import pulse, circuit -from qiskit.pulse import instructions +from qiskit.pulse import instructions, library from qiskit.visualization.exceptions import VisualizationError from qiskit.visualization.pulse_v2 import drawings, types, device_info @@ -105,10 +105,11 @@ def gen_filled_waveform_stepwise( if isinstance(pval, circuit.ParameterExpression): unbound_params.append(pname) - if hasattr(data.inst.pulse, "pulse_type"): - pulse_shape = data.inst.pulse.pulse_type + pulse_data = data.inst.pulse + if isinstance(pulse_data, library.SymbolicPulse): + pulse_shape = pulse_data.pulse_type else: - pulse_shape = data.inst.pulse.__class__.__name__ + pulse_shape = "Waveform" return _draw_opaque_waveform( init_time=data.t0, @@ -174,7 +175,14 @@ def gen_ibmq_latex_waveform_name( systematic_name = data.inst.name or "Delay" latex_name = None else: - systematic_name = data.inst.pulse.name or data.inst.pulse.__class__.__name__ + pulse_data = data.inst.pulse + if pulse_data.name: + systematic_name = pulse_data.name + else: + if isinstance(pulse_data, library.SymbolicPulse): + systematic_name = pulse_data.pulse_type + else: + systematic_name = "Waveform" template = r"(?P[A-Z]+)(?P[0-9]+)?(?P[pm])_(?P[dum])[0-9]+" match_result = re.match(template, systematic_name) @@ -560,11 +568,11 @@ def _parse_waveform( if isinstance(duration, circuit.Parameter): duration = None - if hasattr(operand, "pulse_type"): - # Symbolic pulse - meta["waveform shape"] = operand.pulse_type + if isinstance(operand, library.SymbolicPulse): + pulse_shape = operand.pulse_type else: - meta["waveform"] = operand.__class__.__name__ + pulse_shape = "Waveform" + meta["waveform shape"] = pulse_shape meta.update( { diff --git a/qiskit/visualization/state_visualization.py b/qiskit/visualization/state_visualization.py index 3fb24bba970c..b847a7b0ec85 100644 --- a/qiskit/visualization/state_visualization.py +++ b/qiskit/visualization/state_visualization.py @@ -1223,19 +1223,13 @@ def state_to_latex( return prefix + latex_str + suffix -def _round_if_close(data): - """Round real and imaginary parts of complex number of close to zero""" - data = np.real_if_close(data) - data = -1j * np.real_if_close(data * 1j) - return data - - -def num_to_latex_ket(raw_value: complex, first_term: bool) -> Optional[str]: +def num_to_latex_ket(raw_value: complex, first_term: bool, decimals: int = 10) -> Optional[str]: """Convert a complex number to latex code suitable for a ket expression Args: raw_value: Value to convert first_term: If True then generate latex code for the first term in an expression + decimals: Number of decimal places to round to (default: 10). Returns: String with latex code or None if no term is required """ @@ -1246,7 +1240,7 @@ def num_to_latex_ket(raw_value: complex, first_term: bool) -> Optional[str]: real_value = 0 imag_value = 0 else: - raw_value = _round_if_close(raw_value) + raw_value = np.around(raw_value, decimals=decimals) value = sympy.nsimplify(raw_value, constants=(sympy.pi,), rational=False) real_value = float(sympy.re(value)) imag_value = float(sympy.im(value)) @@ -1291,33 +1285,35 @@ def num_to_latex_ket(raw_value: complex, first_term: bool) -> Optional[str]: return None -def numbers_to_latex_terms(numbers: List[complex]) -> List[str]: +def numbers_to_latex_terms(numbers: List[complex], decimals: int = 10) -> List[str]: """Convert a list of numbers to latex formatted terms The first non-zero term is treated differently. For this term a leading + is suppressed. Args: numbers: List of numbers to format + decimals: Number of decimal places to round to (default: 10). Returns: List of formatted terms """ first_term = True terms = [] for number in numbers: - term = num_to_latex_ket(number, first_term) + term = num_to_latex_ket(number, first_term, decimals) if term is not None: first_term = False terms.append(term) return terms -def _state_to_latex_ket(data: List[complex], max_size: int = 12) -> str: +def _state_to_latex_ket(data: List[complex], max_size: int = 12, prefix: str = "") -> str: """Convert state vector to latex representation Args: data: State vector max_size: Maximum number of non-zero terms in the expression. If the number of non-zero terms is larger than the max_size, then the representation is truncated. + prefix: Latex string to be prepended to the latex, intended for labels. Returns: String with LaTeX representation of the state vector @@ -1327,16 +1323,16 @@ def _state_to_latex_ket(data: List[complex], max_size: int = 12) -> str: def ket_name(i): return bin(i)[2:].zfill(num) - data = _round_if_close(data) + data = np.around(data, max_size) nonzero_indices = np.where(data != 0)[0].tolist() if len(nonzero_indices) > max_size: nonzero_indices = ( nonzero_indices[: max_size // 2] + [0] + nonzero_indices[-max_size // 2 + 1 :] ) - latex_terms = numbers_to_latex_terms(data[nonzero_indices]) + latex_terms = numbers_to_latex_terms(data[nonzero_indices], max_size) nonzero_indices[max_size // 2] = None else: - latex_terms = numbers_to_latex_terms(data[nonzero_indices]) + latex_terms = numbers_to_latex_terms(data[nonzero_indices], max_size) latex_str = "" for idx, ket_idx in enumerate(nonzero_indices): @@ -1346,7 +1342,7 @@ def ket_name(i): term = latex_terms[idx] ket = ket_name(ket_idx) latex_str += f"{term} |{ket}\\rangle" - return latex_str + return prefix + latex_str class TextMatrix: diff --git a/releasenotes/notes/0.16/classical_funciton_compliation-c5d75e0aaf04c8f1.yaml b/releasenotes/notes/0.16/classical_funciton_compliation-c5d75e0aaf04c8f1.yaml index a4a2db3b349b..db74122bdbce 100644 --- a/releasenotes/notes/0.16/classical_funciton_compliation-c5d75e0aaf04c8f1.yaml +++ b/releasenotes/notes/0.16/classical_funciton_compliation-c5d75e0aaf04c8f1.yaml @@ -7,7 +7,7 @@ features: ``Int1`` at the moment) into :class:`~qiskit.circuit.QuantumCircuit` objects. For example: - .. jupyter-execute:: + .. code-block:: python from qiskit.circuit import classical_function, Int1 @@ -26,7 +26,7 @@ features: :meth:`~qiskit.circuit.classicalfunction.ClassicalFunction.synth` creates a circuit with registers refering to the parameter names. For example: - .. jupyter-execute:: + .. code-block:: python quantum_circuit = grover_oracle.synth(registerless=False) quantum_circuit.draw() @@ -34,7 +34,7 @@ features: A decorated classical function can be used the same way as any other quantum gate when appending it to a circuit. - .. jupyter-execute:: + .. code-block:: python circuit = QuantumCircuit(5) circuit.append(grover_oracle, range(5)) @@ -42,7 +42,7 @@ features: The ``GROVER_ORACLE`` gate is synthesized when its decomposition is required. - .. jupyter-execute:: + .. code-block:: python circuit.decompose().draw() diff --git a/releasenotes/notes/0.17/bool_expression_phaseoracle-1802be3016c83fa8.yaml b/releasenotes/notes/0.17/bool_expression_phaseoracle-1802be3016c83fa8.yaml index 6b9166e75290..abd484e2465f 100644 --- a/releasenotes/notes/0.17/bool_expression_phaseoracle-1802be3016c83fa8.yaml +++ b/releasenotes/notes/0.17/bool_expression_phaseoracle-1802be3016c83fa8.yaml @@ -6,16 +6,17 @@ features: added to the :mod:`qiskit.circuit.classicalfunction` module. This class allows for creating an oracle from a Python boolean expression. For example: - .. jupyter-execute:: + .. code-block:: + + from qiskit.circuit import QuantumCircuit + from qiskit.circuit.classicalfunction import BooleanExpression - from qiskit.circuit import BooleanExpression, QuantumCircuit - expression = BooleanExpression('~x & (y | z)') circuit = QuantumCircuit(4) circuit.append(expression, [0, 1, 2, 3]) circuit.draw('mpl') - .. jupyter-execute:: + .. code-block:: circuit.decompose().draw('mpl') @@ -28,7 +29,8 @@ features: .. code-block:: - from qiskit.circuit import BooleanExpression, QuantumCircuit + from qiskit.circuit import QuantumCircuit + from qiskit.circuit.classicalfunction import BooleanExpression boolean_exp = BooleanExpression.from_dimacs_file("simple_v3_c2.cnf") circuit = QuantumCircuit(boolean_exp.num_qubits) @@ -54,9 +56,9 @@ features: .. parsed-literal:: q_0: ──o────o──────────── - │ │ + │ │ q_1: ──■────o────■─────── - │ │ │ + │ │ │ q_2: ──■────┼────o────■── ┌─┴─┐┌─┴─┐┌─┴─┐┌─┴─┐ q_3: ┤ X ├┤ X ├┤ X ├┤ X ├ @@ -67,28 +69,30 @@ features: added to the :mod:`qiskit.circuit.library` module. This class enables the construction of phase oracle circuits from Python boolean expressions. - .. jupyter-execute:: + .. code-block:: from qiskit.circuit.library.phase_oracle import PhaseOracle oracle = PhaseOracle('x1 & x2 & (not x3)') oracle.draw('mpl') - + These phase oracles can be used as part of a larger algorithm, for example with :class:`qiskit.algorithms.AmplificationProblem`: - .. jupyter-execute:: + .. code-block:: from qiskit.algorithms import AmplificationProblem, Grover from qiskit import BasicAer - + backend = BasicAer.get_backend('qasm_simulator') - + problem = AmplificationProblem(oracle, is_good_state=oracle.evaluate_bitstring) grover = Grover(quantum_instance=backend) result = grover.amplify(problem) result.top_measurement + would generate '011'. + The :class:`~qiskit.circuit.library.PhaseOracle` class also includes a :meth:`~qiskit.circuit.library.PhaseOracle.from_dimacs_file` method which enables constructing a phase oracle from a file describing a formula in the @@ -103,9 +107,9 @@ features: oracle.draw('text') .. parsed-literal:: - + state_0: ─o───────o────────────── - │ ┌───┐ │ ┌───┐ + │ ┌───┐ │ ┌───┐ state_1: ─■─┤ X ├─■─┤ X ├─■────── │ └───┘ └───┘ │ ┌───┐ state_2: ─■───────────────o─┤ Z ├ diff --git a/releasenotes/notes/0.19/add-getters-and-setters-for-vqe-edc753591b368980.yaml b/releasenotes/notes/0.19/add-getters-and-setters-for-vqe-edc753591b368980.yaml index a1f20e922017..1d6ca9b82665 100644 --- a/releasenotes/notes/0.19/add-getters-and-setters-for-vqe-edc753591b368980.yaml +++ b/releasenotes/notes/0.19/add-getters-and-setters-for-vqe-edc753591b368980.yaml @@ -3,8 +3,10 @@ features: - | Every attribute of the :class:`~qiskit.algorithms.VQE` class that is set at the initialization is now accessible with getters and setters. Further, the - default values of the VQE attributes :attr:`~.VQE.ansatz` and - :attr:`~.VQE.optimizer` can be reset by assigning ``None`` to them:: + default values of the VQE attributes + :attr:`~qiskit.algorithms.minimimum_eigen_solvers.VQE.ansatz` and + :attr:`~qiskit.algorithms.minimimum_eigen_solvers.VQE.optimizer` can be + reset by assigning ``None`` to them:: vqe = VQE(my_ansatz, my_optimizer) vqe.ansatz = None # reset to default: RealAmplitudes ansatz diff --git a/releasenotes/notes/0.19/support-dict-for-aux-operators-c3c9ad380c208afd.yaml b/releasenotes/notes/0.19/support-dict-for-aux-operators-c3c9ad380c208afd.yaml index 5fef8f5d6483..63af5ca0dc66 100644 --- a/releasenotes/notes/0.19/support-dict-for-aux-operators-c3c9ad380c208afd.yaml +++ b/releasenotes/notes/0.19/support-dict-for-aux-operators-c3c9ad380c208afd.yaml @@ -1,9 +1,11 @@ --- features: - | - The :obj:`.Eigensolver` and :obj:`.MinimumEigensolver` interfaces now support the type + The :obj:`.Eigensolver` and :obj:`~qiskit.algorithms.minimimum_eigen_solvers.MinimumEigensolver` + interfaces now support the type ``Dict[str, Optional[OperatorBase]]`` for the ``aux_operators`` parameter in their respective - :meth:`~.Eigensolver.compute_eigenvalues` and :meth:`~.MinimumEigensolver.compute_minimum_eigenvalue` methods. + :meth:`~.Eigensolver.compute_eigenvalues` and + :meth:`~qiskit.algorithms.minimimum_eigen_solvers.MinimumEigensolver.compute_minimum_eigenvalue` methods. In this case, the auxiliary eigenvalues are also stored in a dictionary under the same keys provided by the ``aux_operators`` dictionary. Keys that correspond to an operator that does not commute with the main operator are dropped. diff --git a/releasenotes/notes/0.19/taper_empty_operator_fix-53ce20e5d2b68fd6.yaml b/releasenotes/notes/0.19/taper_empty_operator_fix-53ce20e5d2b68fd6.yaml index b02a9dde71ac..a719f78310bc 100644 --- a/releasenotes/notes/0.19/taper_empty_operator_fix-53ce20e5d2b68fd6.yaml +++ b/releasenotes/notes/0.19/taper_empty_operator_fix-53ce20e5d2b68fd6.yaml @@ -1,11 +1,11 @@ --- fixes: - | - When tapering an empty zero operator in :mod:`qiskit.opflow`, the code, on detecting it was zero, logged a - warning and returned the original operator. Such operators are commonly found in - the auxiliary operators, when using Qiskit Nature, and the above behavior caused :obj:`.VQE` - to throw an exception as tapered non-zero operators were a different number of qubits - from the tapered zero operators (since taper has returned the input operator unchanged). - The code will now correctly taper a zero operator such that the number of qubits is - reduced as expected and matches to tapered non-zero operators e.g ```0*"IIII"``` when we are - tapering by 3 qubits will become ``0*"I"``. + When tapering an empty zero operator in :mod:`qiskit.opflow`, the code, on detecting it was + zero, logged a warning and returned the original operator. Such operators are commonly found in + the auxiliary operators, when using Qiskit Nature, and the above behavior caused + :obj:`~qiskit.algorithms.minimimum_eigen_solvers.VQE` to throw an exception as tapered non-zero + operators were a different number of qubits from the tapered zero operators (since taper has + returned the input operator unchanged). The code will now correctly taper a zero operator such + that the number of qubits is reduced as expected and matches to tapered non-zero operators e.g + ```0*"IIII"``` when we are tapering by 3 qubits will become ``0*"I"``. diff --git a/releasenotes/notes/add-fidelity-interface-primitives-dc543d079ecaa8dd.yaml b/releasenotes/notes/add-fidelity-interface-primitives-dc543d079ecaa8dd.yaml index 96e1977096ba..90f603342adc 100644 --- a/releasenotes/notes/add-fidelity-interface-primitives-dc543d079ecaa8dd.yaml +++ b/releasenotes/notes/add-fidelity-interface-primitives-dc543d079ecaa8dd.yaml @@ -7,7 +7,8 @@ features: there is now an implementation of the compute-uncompute method that leverages the sampler primitive (:class:`qiskit.algorithms.state_fidelities.ComputeUncompute`). - Example:: + For example: + .. code-block:: python import numpy as np diff --git a/releasenotes/notes/add-gradients-with-primitives-561cf9cf75a7ccb8.yaml b/releasenotes/notes/add-gradients-with-primitives-561cf9cf75a7ccb8.yaml index da0bc9dd6497..310eff9357c3 100644 --- a/releasenotes/notes/add-gradients-with-primitives-561cf9cf75a7ccb8.yaml +++ b/releasenotes/notes/add-gradients-with-primitives-561cf9cf75a7ccb8.yaml @@ -6,7 +6,8 @@ features: gradient classes (Finite Difference, Parameter Shift, Linear Combination of Unitary, and SPSA) for a sampler and estimator. - Example:: + For example: + .. code-block:: python estimator = Estimator(...) diff --git a/releasenotes/notes/add-grover-primitives-10f81efdba93703d.yaml b/releasenotes/notes/add-grover-primitives-10f81efdba93703d.yaml new file mode 100644 index 000000000000..63ac8886ea96 --- /dev/null +++ b/releasenotes/notes/add-grover-primitives-10f81efdba93703d.yaml @@ -0,0 +1,27 @@ +--- +features: + - | + :class:`~.Grover` supports the primitives and can use :class:`~.BaseSampler` to + calculate the results. Accordingly, ``quantum instance`` in :class:`~.Grover` + is pending deprecation and will be deprecated in a future release. + + Example: + + .. code-block:: python + + from qiskit import QuantumCircuit + from qiskit.primitives import Sampler + from qiskit.algorithms import Grover, AmplificationProblem + + sampler = Sampler() + oracle = QuantumCircuit(2) + oracle.cz(0, 1) + problem = AmplificationProblem(oracle, is_good_state=["11"]) + grover = Grover(sampler=sampler) + result = grover.amplify(problem) + +deprecations: + - | + Using a :class:`~.QuantumInstance` in :class:`~.Grover` is + pending deprecation and will be deprecated in a future release. Instead, use + a :class:`.BaseSampler` to calculate the results, see also the features of this release. diff --git a/releasenotes/notes/add-schedule-block-reference-mechanism-8a7811e17b4fead3.yaml b/releasenotes/notes/add-schedule-block-reference-mechanism-8a7811e17b4fead3.yaml new file mode 100644 index 000000000000..0f66480fb6d0 --- /dev/null +++ b/releasenotes/notes/add-schedule-block-reference-mechanism-8a7811e17b4fead3.yaml @@ -0,0 +1,43 @@ +--- +features: + - | + :class:`.ScheduleBlock` has been updated so that it can manage unassigned subroutine, + in other words, to allow lazy calling of other programs. + For example, this enables the following workflow: + + .. code-block:: python + + from qiskit import pulse + + with pulse.build() as prog: + pulse.reference("x", "q0") + + with pulse.build() as xq0: + pulse.play(Gaussian(160, 0.1, 40), pulse.DriveChannel(0)) + + prog.assign_references({("x", "q0"): xq0}) + + Now a user can create ``prog`` without knowing actual implementation of + the reference ``("x", "q0")``, and assign it at a later time for execution. + This improves modularity of pulse programs, and thus one can easily write a template + pulse program relying on other calibrations. + + To realize this feature, the new pulse instruction (compiler directive) + :class:`~qiskit.pulse.instructions.Reference` has been added. + This instruction is injected into the current builder scope when + the :func:`~qiskit.pulse.builder.reference` command is used. + All references defined in the current pulse program can be listed with + the :attr:`~qiskit.pulse.schedule.ScheduleBlock.references` property. + + In addition, every reference is managed with a scope to ease parameter management. + :meth:`~qiskit.pulse.schedule.ScheduleBlock.scoped_parameters` and + :meth:`~qiskit.pulse.schedule.ScheduleBlock.search_parameters` have been added to + the schedule block. See API documentation for more details. +upgrade: + - | + Behavior of the :func:`~qiskit.pulse.builder.call` pulse builder function has been upgraded. + When a :class:`.ScheduleBlock` instance is called by this method, it internally creates + a :class:`.Reference` in the current context, and immediately assigns the called program to + the reference. Thus, the :class:`.Call` instruction is no longer generated. + Along with this change, it is prohibited to call different blocks with the same ``name`` + argument. Such operation will result in an error. diff --git a/releasenotes/notes/add-variational-quantum-time-evolution-112ffeaf62782fea.yaml b/releasenotes/notes/add-variational-quantum-time-evolution-112ffeaf62782fea.yaml deleted file mode 100644 index fc4d0fb891d3..000000000000 --- a/releasenotes/notes/add-variational-quantum-time-evolution-112ffeaf62782fea.yaml +++ /dev/null @@ -1,50 +0,0 @@ ---- -features: - - | - Add algorithms for Variational Quantum Time Evolution that implement a new interface for - Quantum Time Evolution. The feature supports real (:class:`qiskit.algorithms.VarQRTE`.) and - imaginary (:class:`qiskit.algorithms.VarQITE`.) quantum time evolution according to a - variational principle passed. Each algorithm accepts a variational principle and the following - are provided: - :class:`qiskit.algorithms.evolvers.variational.ImaginaryMcLachlanPrinciple`, - :class:`qiskit.algorithms.evolvers.variational.RealMcLachlanPrinciple`, - :class:`qiskit.algorithms.evolvers.variational.RealTimeDependentPrinciple`. - Both algorithms require solving ODE equations and linear equations which is handled by classes - implemented in `qiskit.algorithms.evolvers.variational.solvers` module. - - .. code-block:: python - - from qiskit.algorithms import EvolutionProblem - from qiskit.algorithms import VarQITE - from qiskit import BasicAer - from qiskit.circuit.library import EfficientSU2 - from qiskit.opflow import SummedOp, I, Z, Y, X - from qiskit.algorithms.evolvers.variational import ( - ImaginaryMcLachlanPrinciple, - ) - from qiskit.algorithms import EvolutionProblem - import numpy as np - - observable = SummedOp( - [ - 0.2252 * (I ^ I), - 0.5716 * (Z ^ Z), - 0.3435 * (I ^ Z), - -0.4347 * (Z ^ I), - 0.091 * (Y ^ Y), - 0.091 * (X ^ X), - ] - ).reduce() - - ansatz = EfficientSU2(observable.num_qubits, reps=1) - parameters = ansatz.parameters - init_param_values = np.zeros(len(ansatz.parameters)) - for i in range(len(ansatz.parameters)): - init_param_values[i] = np.pi / 2 - param_dict = dict(zip(parameters, init_param_values)) - var_principle = ImaginaryMcLachlanPrinciple() - backend = BasicAer.get_backend("statevector_simulator") - time = 1 - evolution_problem = EvolutionProblem(observable, time) - var_qite = VarQITE(ansatz, var_principle, param_dict, quantum_instance=backend) - evolution_result = var_qite.evolve(evolution_problem) diff --git a/releasenotes/notes/add_cnot_dihedral_class_cs_ccz_gates-6bd567daf3a467bd.yaml b/releasenotes/notes/add_cnot_dihedral_class_cs_ccz_gates-6bd567daf3a467bd.yaml new file mode 100644 index 000000000000..23f2866c75dc --- /dev/null +++ b/releasenotes/notes/add_cnot_dihedral_class_cs_ccz_gates-6bd567daf3a467bd.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + Add the new gates :class:`~qiskit.circuit.library.CSGate`, + :class:`~qiskit.circuit.library.CSdgGate` and :class:`~qiskit.circuit.library.CCZGate` + to the operator class:`~qiskit.quantum_info.CNOTDihedral` class. diff --git a/releasenotes/notes/ae-algorithms-primitives-497bae1b2b04f877.yaml b/releasenotes/notes/ae-algorithms-primitives-497bae1b2b04f877.yaml new file mode 100644 index 000000000000..35e204ef1f60 --- /dev/null +++ b/releasenotes/notes/ae-algorithms-primitives-497bae1b2b04f877.yaml @@ -0,0 +1,18 @@ +--- +features: + - | + Added :class:`~qiskit.primitives.BaseSampler` as ``init`` parameter + for the following amplitude estimation algorithms: + :class:`~qiskit.algorithms.amplitude_estimators.AmplitudeEstimation`, + :class:`~qiskit.algorithms.amplitude_estimators.FasterAmplitudeEstimation`, + :class:`~qiskit.algorithms.amplitude_estimators.IterativeAmplitudeEstimation`, + :class:`~qiskit.algorithms.amplitude_estimators.MaximumLikelihoodAmplitudeEstimation` +deprecations: + - | + Using :class:`~qiskit.utils.QuantumInstance` or :class:`~qiskit.providers.Backend` as + ``init`` parameters will now issue a ``PendingDeprecationWarning`` + for the following amplitude estimation algorithms: + :class:`~qiskit.algorithms.amplitude_estimators.AmplitudeEstimation`, + :class:`~qiskit.algorithms.amplitude_estimators.FasterAmplitudeEstimation`, + :class:`~qiskit.algorithms.amplitude_estimators.IterativeAmplitudeEstimation`, + :class:`~qiskit.algorithms.amplitude_estimators.MaximumLikelihoodAmplitudeEstimation` diff --git a/releasenotes/notes/backend-converter-05360f12f9042829.yaml b/releasenotes/notes/backend-converter-05360f12f9042829.yaml new file mode 100644 index 000000000000..97695b55d084 --- /dev/null +++ b/releasenotes/notes/backend-converter-05360f12f9042829.yaml @@ -0,0 +1,15 @@ +--- +features: + - | + Added a new class, :class:`~BackendV2Converter`, which is used to wrap + a :class:`~.BackendV1` instance in a :class:`~.BackendV2` interface. It + enables you to have a :class:`~.BackendV2` instance from any + :class:`~.BackendV1`. This enables standardizing access patterns on the + newer :class:`~.BackendV2` interface even if you still support + :class:`~.BackendV1`. + + - | + Added a new function :func:`~.convert_to_target` which is used to take + a :class:`~.BackendConfiguration`, and optionally a + :class:`~.BackendProperties` and :class:`~.PulseDefaults` and create + a :class:`~.Target` object equivalent to the contents of those objects. diff --git a/releasenotes/notes/begin-tweedledum-removal-25bb68fc72804f00.yaml b/releasenotes/notes/begin-tweedledum-removal-25bb68fc72804f00.yaml new file mode 100644 index 000000000000..f52628d346bf --- /dev/null +++ b/releasenotes/notes/begin-tweedledum-removal-25bb68fc72804f00.yaml @@ -0,0 +1,15 @@ +--- +upgrade: + - | + Starting in the following release of Qiskit Terra, 0.23, the ``tweedledum`` + package will become an optional dependency, instead of a requirement. This + is currently used by some classical phase-oracle functions. If your + application or library needs this functionality, you may want to prepare by + adding ``tweedledum`` to your package's dependencies immediately. +deprecations: + - | + Importing the names ``Int1``, ``Int2``, ``classical_function`` and + ``BooleanExpression`` directly from :mod:`qiskit.circuit` is deprecated. + This is part of the move to make ``tweedledum`` an optional dependency rather + than a full requirement. Instead, you should import these names from + :mod:`qiskit.circuit.classicalfunction`. diff --git a/releasenotes/notes/dag_dependency_speedup-f6298348cb3d8746.yaml b/releasenotes/notes/dag_dependency_speedup-f6298348cb3d8746.yaml new file mode 100644 index 000000000000..80dde1db9d96 --- /dev/null +++ b/releasenotes/notes/dag_dependency_speedup-f6298348cb3d8746.yaml @@ -0,0 +1,25 @@ +--- +features: + - | + Added an argument ``create_preds_and_succs`` to the functions + :func:`~qiskit.converters.circuit_to_dagdependency` and + :func:`~qiskit.converters.dag_to_dagdependency` + that convert from :class:`~qiskit.circuit.QuantumCircuit` and + :class:`~qiskit.dagcircuit.DAGCircuit`, respectively, to + :class:`~qiskit.dagcircuit.DAGDependency`. + When the value of ``create_preds_and_succs`` is False, the transitive + predecessors and successors for nodes in :class:`~qiskit.dagcircuit.DAGDependency` + are not constructed, making the conversions faster and significantly less + memory-intensive. The direct predecessors and successors for nodes in + :class:`~qiskit.dagcircuit.DAGDependency` are constructed as usual. + + For example:: + + from qiskit.converters import circuit_to_dagdependency + from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit + + circuit_in = QuantumCircuit(2) + circuit_in.h(qr[0]) + circuit_in.h(qr[1]) + + dag_dependency = circuit_to_dagdependency(circuit_in, create_preds_and_succs=False) diff --git a/releasenotes/notes/edge-coloring-e55700fcf8902c79.yaml b/releasenotes/notes/edge-coloring-e55700fcf8902c79.yaml new file mode 100644 index 000000000000..130c72cb8157 --- /dev/null +++ b/releasenotes/notes/edge-coloring-e55700fcf8902c79.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + The :class:`.Commuting2qGateRouter` can now take as argument an edge + coloring of the coupling map to determine the order in which the + commuting gates are applied. diff --git a/releasenotes/notes/evolution-framework-primitives-c86779b5d0dffd25.yaml b/releasenotes/notes/evolution-framework-primitives-c86779b5d0dffd25.yaml new file mode 100644 index 000000000000..2adf8a637293 --- /dev/null +++ b/releasenotes/notes/evolution-framework-primitives-c86779b5d0dffd25.yaml @@ -0,0 +1,15 @@ +--- +features: + - | + Added :class:`qiskit.algorithms.time_evolvers` package with interfaces that will cover + primitive-enabled time evolution algorithms: + :class:`qiskit.algorithms.time_evolvers.TimeEvolutionProblem`, + :class:`qiskit.algorithms.time_evolvers.TimeEvolutionResult`, + :class:`qiskit.algorithms.time_evolvers.ImaginaryTimeEvolver`, + :class:`qiskit.algorithms.time_evolvers.RealTimeEvolver`. +deprecations: + - | + :class:`qiskit.algorithms.evolvers` package will now issue a ``PendingDeprecationWarning``. It + will be deprecated in a future release and subsequently removed after that. This is being + replaced by the new :class:`qiskit.algorithms.time_evolvers` package that will host + primitive-enabled algorithms. diff --git a/releasenotes/notes/fake_auckland-deadbeef.yaml b/releasenotes/notes/fake_auckland-deadbeef.yaml new file mode 100644 index 000000000000..bad62fb56cd7 --- /dev/null +++ b/releasenotes/notes/fake_auckland-deadbeef.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + The fake backend :class:`~FakeAuckland` was added with the information + from IBM Quantum `ibm_auckland` system. diff --git a/releasenotes/notes/fake_oslo-7bba98d7269f959b.yaml b/releasenotes/notes/fake_oslo-7bba98d7269f959b.yaml new file mode 100644 index 000000000000..08c09df96bb1 --- /dev/null +++ b/releasenotes/notes/fake_oslo-7bba98d7269f959b.yaml @@ -0,0 +1,4 @@ +--- +features: + - | + The fake backend :class:`~FakeOslo` was added with the information from IBM Quantum `ibm_oslo` system. diff --git a/releasenotes/notes/fix-empty-string-pauli-list-init-4d978fb0eaf1bc70.yaml b/releasenotes/notes/fix-empty-string-pauli-list-init-4d978fb0eaf1bc70.yaml new file mode 100644 index 000000000000..144f1e2b9cbe --- /dev/null +++ b/releasenotes/notes/fix-empty-string-pauli-list-init-4d978fb0eaf1bc70.yaml @@ -0,0 +1,11 @@ +--- +fixes: + - | + Fixed initialization of empty symplectic matrix in :meth:'PauliList.from_symplectic' in :class:'.PauliList' class + For example:: + + from qiskit.quantum_info.operators import PauliList + + x = np.array([], dtype=bool).reshape((1,0)) + z = np.array([], dtype=bool).reshape((1,0)) + pauli_list = PauliList.from_symplectic(x, z) diff --git a/releasenotes/notes/fix-flipping-cz-gate-fd08305ca12d9a79.yaml b/releasenotes/notes/fix-flipping-cz-gate-fd08305ca12d9a79.yaml new file mode 100644 index 000000000000..4c27b40a2255 --- /dev/null +++ b/releasenotes/notes/fix-flipping-cz-gate-fd08305ca12d9a79.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Fix a problem in the `GateDirection` transpiler pass for the CZ gate. The CZ is symmetric, so flipping the qubit arguments is allowed to match the directed coupling map. + diff --git a/releasenotes/notes/fix-nondeterministic-dagcircuit-eq-7caa9041093c6e4c.yaml b/releasenotes/notes/fix-nondeterministic-dagcircuit-eq-7caa9041093c6e4c.yaml new file mode 100644 index 000000000000..551fca109857 --- /dev/null +++ b/releasenotes/notes/fix-nondeterministic-dagcircuit-eq-7caa9041093c6e4c.yaml @@ -0,0 +1,8 @@ +--- +fixes: + - | + Comparing :class:`.QuantumCircuit` and :class:`.DAGCircuit`\ s for equality + was previously non-deterministic if the circuits contained more than one + register of the same type (*e.g.* two or more :class:`.QuantumRegister`\ s), + sometimes returning ``False`` even if the registers were identical. It will + now correctly compare circuits with multiple registers. diff --git a/releasenotes/notes/ibm_geneva-34b848b0a49278dc.yaml b/releasenotes/notes/ibm_geneva-34b848b0a49278dc.yaml new file mode 100644 index 000000000000..134c5692272e --- /dev/null +++ b/releasenotes/notes/ibm_geneva-34b848b0a49278dc.yaml @@ -0,0 +1,4 @@ +--- +features: + - | + The fake backend :class:`~FakeGeneva` was added with the information from IBM Quantum `ibm_geneva` system. diff --git a/releasenotes/notes/ibm_perth-5b1e9308dc302e2e.yaml b/releasenotes/notes/ibm_perth-5b1e9308dc302e2e.yaml new file mode 100644 index 000000000000..9412705cd19e --- /dev/null +++ b/releasenotes/notes/ibm_perth-5b1e9308dc302e2e.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + The fake backend :class:`~FakePerth` was added with the information + from IBM Quantum `ibm_perth` system. diff --git a/releasenotes/notes/improve-error-message-snobfit-missing-bounds-748943a87e682d82.yaml b/releasenotes/notes/improve-error-message-snobfit-missing-bounds-748943a87e682d82.yaml new file mode 100644 index 000000000000..da40ee94a6f0 --- /dev/null +++ b/releasenotes/notes/improve-error-message-snobfit-missing-bounds-748943a87e682d82.yaml @@ -0,0 +1,4 @@ +--- +fixes: + - | + Catch error of missing bounds for SNOBFIT optimizer (raising error with clear error message). Arises e.g. when ansatz `UCC` is used in combination with SNOBFIT. Refer to `#8580 ` for more details. diff --git a/releasenotes/notes/observable-eval-primitives-e1fd989e15c7760c.yaml b/releasenotes/notes/observable-eval-primitives-e1fd989e15c7760c.yaml new file mode 100644 index 000000000000..43b2c622edbb --- /dev/null +++ b/releasenotes/notes/observable-eval-primitives-e1fd989e15c7760c.yaml @@ -0,0 +1,12 @@ +--- +features: + - | + Added :meth:`qiskit.algorithms.observables_evaluator.eval_observables` with + :class:`qiskit.primitives.BaseEstimator` as ``init`` parameter. It will soon replace + :meth:`qiskit.algorithms.aux_ops_evaluator.eval_observables`. +deprecations: + - | + Using :meth:`qiskit.algorithms.aux_ops_evaluator.eval_observables` will now issue a + ``PendingDeprecationWarning``. This method will be deprecated in a future release and + subsequently removed after that. This is being replaced by the new + :meth:`qiskit.algorithms.observables_evaluator.eval_observables` primitive-enabled method. diff --git a/releasenotes/notes/pending-deprecate-min-eigen-solvers-fa4341e1014e4df0.yaml b/releasenotes/notes/pending-deprecate-min-eigen-solvers-fa4341e1014e4df0.yaml new file mode 100644 index 000000000000..fb6799b45135 --- /dev/null +++ b/releasenotes/notes/pending-deprecate-min-eigen-solvers-fa4341e1014e4df0.yaml @@ -0,0 +1,6 @@ +--- +deprecations: + - | + Module :mod:`qiskit.algorithms.minimum_eigen_solvers` is pending deprecation and + will be deprecated in a future version and eventually removed. The module and its function + are superseded by :mod:`qiskit.algorithms.minimum_eigensolvers` diff --git a/releasenotes/notes/primitive-base-result-92808b069299c19e.yaml b/releasenotes/notes/primitive-base-result-92808b069299c19e.yaml new file mode 100644 index 000000000000..ed0641f3c5b2 --- /dev/null +++ b/releasenotes/notes/primitive-base-result-92808b069299c19e.yaml @@ -0,0 +1,9 @@ +--- +features: + - | + Adds a primitive result :class:`qiskit.primitives.base_result.BasePrimitiveResult` to provide common functionality to all inheriting result dataclasses. + * Adds :py:meth:`result.num_experiments` property. + * Adds :py:meth:`result.experiments` property. + * Adds :py:meth:`result.decompose`. + * Validates data types after instantiation (i.e. on dataclass :py:meth:`__post_init__`). + * Checks for consistency in the number of experiments across data fields after instantiation (i.e. on dataclass :py:meth:`__post_init__`). diff --git a/releasenotes/notes/primitive-run-5d1afab3655330a6.yaml b/releasenotes/notes/primitive-run-5d1afab3655330a6.yaml index fd4c5965dc04..e7ee26c00755 100644 --- a/releasenotes/notes/primitive-run-5d1afab3655330a6.yaml +++ b/releasenotes/notes/primitive-run-5d1afab3655330a6.yaml @@ -23,10 +23,10 @@ deprecations: .. code-block:: python - estimator = Estimator(circuits, observables, parameters) + estimator = Estimator() result = estimator.run(circuits, observables, parameter_values).result() - sampler = Sampler(circuits, parameters) + sampler = Sampler() result = sampler.run(circuits, parameter_values).result() Context manager for primitives was deprecated. @@ -34,4 +34,5 @@ deprecations: the session's context manager provides equivalent functionality. ``circuits``, ``observables``, and ``parameters`` in the constructor was deprecated. - These objects can be passed from ``run`` methods. + ``circuits`` and ``observables`` can be passed from ``run`` methods. + ``run`` methods do not support ``parameters``. Users need to resort parameter values by themselves. diff --git a/releasenotes/notes/project-dynamics-2f848a5f89655429.yaml b/releasenotes/notes/project-dynamics-primitives-6003336d0866ca19.yaml similarity index 58% rename from releasenotes/notes/project-dynamics-2f848a5f89655429.yaml rename to releasenotes/notes/project-dynamics-primitives-6003336d0866ca19.yaml index a33fdfefed28..a665b63319b5 100644 --- a/releasenotes/notes/project-dynamics-2f848a5f89655429.yaml +++ b/releasenotes/notes/project-dynamics-primitives-6003336d0866ca19.yaml @@ -1,7 +1,7 @@ features: - | - Added the :class:`PVQD` class to the time evolution framework. This class implements the - projected Variational Quantum Dynamics (p-VQD) algorithm as :class:`.PVQD` of + Added the primitives-enabled :class:`PVQD` class to the time evolution framework. This class + implements the projected Variational Quantum Dynamics (p-VQD) algorithm as :class:`.PVQD` of `Barison et al. `_. In each timestep this algorithm computes the next state with a Trotter formula and projects it @@ -12,14 +12,19 @@ features: import numpy as np + from qiskit.algorithms.state_fidelities import ComputeUncompute + from qiskit.algorithms.time_evolvers.pvqd import PVQD + from qiskit.primitives import Estimator from qiskit import BasicAer from qiskit.circuit.library import EfficientSU2 - from qiskit.opflow import X, Z, I, MatrixExpectation - - backend = BasicAer.get_backend("statevector_simulator") - expectation = MatrixExpectation() - hamiltonian = 0.1 * (Z ^ Z) + (I ^ X) + (X ^ I) - observable = Z ^ Z + from qiskit.quantum_info import Pauli, SparsePauliOp + from qiskit.algorithms.optimizers import L_BFGS_B + + sampler = Sampler() + fidelity = ComputeUncompute(sampler) + estimator = Estimator() + hamiltonian = 0.1 * SparsePauliOp([Pauli("ZZ"), Pauli("IX"), Pauli("XI")]) + observable = Pauli("ZZ") ansatz = EfficientSU2(2, reps=1) initial_parameters = np.zeros(ansatz.num_parameters) @@ -28,12 +33,12 @@ features: # setup the algorithm pvqd = PVQD( + fidelity, ansatz, + estimator, initial_parameters, num_timesteps=100, optimizer=optimizer, - quantum_instance=backend, - expectation=expectation ) # specify the evolution problem diff --git a/releasenotes/notes/qasm3-fix-conditional-measurement-2d938cad74a9024a.yaml b/releasenotes/notes/qasm3-fix-conditional-measurement-2d938cad74a9024a.yaml new file mode 100644 index 000000000000..faca28264d09 --- /dev/null +++ b/releasenotes/notes/qasm3-fix-conditional-measurement-2d938cad74a9024a.yaml @@ -0,0 +1,7 @@ +--- +fixes: + - | + The OpenQASM 3 exporter (:mod:`qiskit.qasm3`) will now correctly handle + OpenQASM built-ins (such as ``reset`` and ``measure``) that have a classical + condition applied by :meth:`~.InstructionSet.c_if`. Previously the condition + would have been ignored. diff --git a/releasenotes/notes/qpe-algorithms-primitives-3605bdfa5ab1bfef.yaml b/releasenotes/notes/qpe-algorithms-primitives-3605bdfa5ab1bfef.yaml new file mode 100644 index 000000000000..3435b6980b0d --- /dev/null +++ b/releasenotes/notes/qpe-algorithms-primitives-3605bdfa5ab1bfef.yaml @@ -0,0 +1,39 @@ +--- +features: + - | + Added :class:`~qiskit.primitives.BaseSampler` as ``init`` parameter + for the following phase estimation algorithms: + :class:`~qiskit.algorithms.IterativePhaseEstimation`, + :class:`~qiskit.algorithms.PhaseEstimation`, + :class:`~qiskit.algorithms.HamiltonianPhaseEstimation`. + + .. code-block:: python + + from qiskit.primitives import Sampler + from qiskit.algorithms.phase_estimators import HamiltonianPhaseEstimation + from qiskit.synthesis import MatrixExponential + from qiskit.quantum_info import SparsePauliOp + from qiskit.opflow import PauliSumOp + + + sampler = Sampler() + num_evaluation_qubits = 6 + phase_est = HamiltonianPhaseEstimation( + num_evaluation_qubits=num_evaluation_qubits, sampler=sampler + ) + + hamiltonian = PauliSumOp(SparsePauliOp.from_list([("X", 0.5), ("Y", 0.6), ("I", 0.7)])) + result = phase_est.estimate( + hamiltonian=hamiltonian, + state_preparation=None, + evolution=MatrixExponential(), + bound=1.05, + ) +deprecations: + - | + Using :class:`~qiskit.utils.QuantumInstance` or :class:`~qiskit.providers.Backend` as + ``init`` parameters will now issue a ``PendingDeprecationWarning`` + for the following phase estimation algorithms: + :class:`~qiskit.algorithms.IterativePhaseEstimation`, + :class:`~qiskit.algorithms.PhaseEstimation`, + :class:`~qiskit.algorithms.HamiltonianPhaseEstimation` diff --git a/releasenotes/notes/register-add-fix-e29fa2ee47aa6d05.yaml b/releasenotes/notes/register-add-fix-e29fa2ee47aa6d05.yaml new file mode 100644 index 000000000000..41bad77a4ef5 --- /dev/null +++ b/releasenotes/notes/register-add-fix-e29fa2ee47aa6d05.yaml @@ -0,0 +1,26 @@ +--- +upgrade: + - | + The :meth:`.Layout.add` behavior when not specifying a ``physical_bit`` + has changed from previous releases. In previous releases, a new physical + bit would be added based on the length of the :class:`~.Layout` object. For + example if you had a :class:`~.Layout` with the physical bits 1 and 3 + successive calls to :meth:`~.Layout.add` would add physical bits 2, 4, 5, 6, + etc. While if the physical bits were 2 and 3 then successive calls would + add 4, 5, 6, 7, etc. This has changed so that instead :meth:`.Layout.add` + will first add any missing physical bits between 0 and the max physical bit + contained in the :class:`~.Layout`. So for the 1 and 3 example it now + adds 0, 2, 4, 5 and for the 2 and 3 example it adds 0, 1, 4, 5 to the + :class:`~.Layout`. This change was made for both increased predictability + of the outcome, and also to fix a class of bugs caused by the unexpected + behavior. As physical bits on a backend always are contiguous sequences from + 0 to :math:`n` adding new bits when there are still unused physical bits + could potentially cause the layout to use more bits than available on the + backend. If you desire the previous behavior, you can specify the desired + physical bit manually when calling :meth:`.Layout.add`. +fixes: + - | + Fixed the behavior of :meth:`.Layout.add` which was potentially causing the + output of :meth:`~.transpile` to be invalid and contain more Qubits than + what was available on the target backend. Fixed: + `#8667 `__ diff --git a/releasenotes/notes/remove-symbolic-pulse-subclasses-77314a1654521852.yaml b/releasenotes/notes/remove-symbolic-pulse-subclasses-77314a1654521852.yaml new file mode 100644 index 000000000000..9bab49b21f71 --- /dev/null +++ b/releasenotes/notes/remove-symbolic-pulse-subclasses-77314a1654521852.yaml @@ -0,0 +1,41 @@ +--- +features: + - | + Symbolic pulse subclasses :class:`.Gaussian`, :class:`.GaussianSquare`, + :class:`.Drag` and :class:`.Constant` have been upgraded to + instantiate :class:`SymbolicPulse` rather than the subclass itself. + All parametric pulse objects in pulse programs must be symbolic pulse instances, + because subclassing is no longer neccesary. Note that :class:`SymbolicPulse` can + uniquely identify a particular envelope with the symbolic expression object + defined in :attr:`SymbolicPulse.envelope`. +upgrade: + - | + ``isinstance`` check with pulse classes :class:`.Gaussian`, :class:`.GaussianSquare`, + :class:`.Drag` and :class:`.Constant` has been invalidated because + these pulse subclasses are no longer instantiated. + Instead of using type information, :attr:`SymbolicPulse.pulse_type` must be used. + This is assumed to be a unique string identifer for pulse envelopes, + and we can use string equality to investigate the pulse types. For example, + + .. code-block:: python + + from qiskit.pulse.library import Gaussian + + pulse = Gaussian(160, 0.1, 40) + + if isinstance(pulse, Gaussian) + print("This is Gaussian pulse.") + + This code should be upgraded to + + .. code-block:: python + + from qiskit.pulse.library import Gaussian + + pulse = Gaussian(160, 0.1, 40) + + if pulse.pulse_type == "Gaussian": + print("This is Gaussian pulse.") + + With the same reason, the class attributes such as ``pulse.__class__.__name__`` + should not be accessed to get pulse type information. diff --git a/releasenotes/notes/rh1_state_to_latex_fix-e36e47cbdb25033e.yaml b/releasenotes/notes/rh1_state_to_latex_fix-e36e47cbdb25033e.yaml new file mode 100644 index 000000000000..d530a41c6c9e --- /dev/null +++ b/releasenotes/notes/rh1_state_to_latex_fix-e36e47cbdb25033e.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Fixed an issue with the :func:`~.visualization.state_visualization.state_to_latex` + function: passing a latex string to the optional ``prefix`` argument of the function + would raise an error. Fixed `#8460 `__ diff --git a/releasenotes/notes/state_to_latex_for_none-da834de3811640ce.yaml b/releasenotes/notes/state_to_latex_for_none-da834de3811640ce.yaml new file mode 100644 index 000000000000..d339fa601cd0 --- /dev/null +++ b/releasenotes/notes/state_to_latex_for_none-da834de3811640ce.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + The function :func:`~qiskit.visualization.state_visualization.state_to_latex` produced not valid LaTeX in + presence of close-to-zero values, resulting in errors when :func:`~qiskit.visualization.state_visualization.state_drawer` is called. + Fixed `#8169 `__. diff --git a/releasenotes/notes/trotter-qrte-primitives-8b3e495738b57fc3.yaml b/releasenotes/notes/trotter-qrte-primitives-8b3e495738b57fc3.yaml new file mode 100644 index 000000000000..1f8b3e25e928 --- /dev/null +++ b/releasenotes/notes/trotter-qrte-primitives-8b3e495738b57fc3.yaml @@ -0,0 +1,12 @@ +--- +features: + - | + Added :class:`qiskit.algorithms.time_evolvers.trotterization.TrotterQRTE` with + :class:`qiskit.primitives.BaseEstimator` as ``init`` parameter. It replaces + :class:`qiskit.algorithms.TrotterQRTE`. +deprecations: + - | + Using :class:`qiskit.algorithms.TrotterQRTE` will now issue a + ``PendingDeprecationWarning``. This algorithm will be deprecated in a future release and + subsequently removed after that. This is being replaced by the new + :class:`qiskit.algorithms.time_evolvers.trotterization.TrotterQRTE` primitive-enabled class. diff --git a/releasenotes/notes/turn-off-approx-degree-df3d39eb69f7f09f.yaml b/releasenotes/notes/turn-off-approx-degree-df3d39eb69f7f09f.yaml new file mode 100644 index 000000000000..b5cf69942984 --- /dev/null +++ b/releasenotes/notes/turn-off-approx-degree-df3d39eb69f7f09f.yaml @@ -0,0 +1,16 @@ +--- +upgrade: + - | + The implicit use of ``approximation_degree!=1.0`` by default in + in the :func:`~.transpile` function when ``optimization_level=3`` is set has been disabled. The transpiler should, by default, + preserve unitarity of the input up to known transformations such as one-sided permutations + and similarity transformations. This was broken by the previous use of ``approximation_degree=None`` + leading to incorrect results in cases such as Trotterized evolution with many time steps where + unitaries were being overly approximated leading to incorrect results. It was decided that + transformations that break unitary equivalence should be explicitly activated by the user. + If you desire the previous default behavior where synthesized :class:`~UnitaryGate` instructions + are approximated up to the error rates of the target backend's native instructions you can explicitly + set ``approximation_degree=None` when calling :func:`~.transpile` with ``optimization_level=3``, for + example:: + + transpile(circuit, backend, approximation_degree=None, optimization_level=3) diff --git a/releasenotes/notes/update-DAGCircuit.substitute_node_with_dag-3a44d16b1a82df41.yaml b/releasenotes/notes/update-DAGCircuit.substitute_node_with_dag-3a44d16b1a82df41.yaml new file mode 100644 index 000000000000..37a1e108d5b7 --- /dev/null +++ b/releasenotes/notes/update-DAGCircuit.substitute_node_with_dag-3a44d16b1a82df41.yaml @@ -0,0 +1,16 @@ +--- +features: + - | + :meth:`.DAGCircuit.substitute_node_with_dag` now takes ``propagate_condition`` + as a keyword argument. This defaults to ``True``, which was the previous + behavior, and copies any condition on the node to be replaced onto every + operation node in the replacement. If set to ``False``, the condition will + not be copied, which allows replacement of a conditional node with a sub-DAG + that already faithfully implements the condition. + - | + :meth:`.DAGCircuit.substitute_node_with_dag` can now take a mapping for its + ``wires`` parameter as well as a sequence. The mapping should map bits in + the replacement DAG to the bits in the DAG it is being inserted into. This + permits an easier style of construction for callers when the input node has + both classical bits and a condition, and the replacement DAG may use these + out-of-order. diff --git a/releasenotes/notes/update-prob-quasi-2044285a46219d14.yaml b/releasenotes/notes/update-prob-quasi-2044285a46219d14.yaml new file mode 100644 index 000000000000..cd052278ff65 --- /dev/null +++ b/releasenotes/notes/update-prob-quasi-2044285a46219d14.yaml @@ -0,0 +1,21 @@ +--- +upgrade: + - | + Updated :class:`~qiskit.result.ProbDistribution` and :class:`~qiskit.result.QuasiDistribution` + to store the information of the number of bits if bitstrings without prefix "0b" are given. + :meth:`~qiskit.result.ProbDistribution.binary_probabilities` and + :meth:`~qiskit.result.QuasiDistribution.binary_probabilities` use the stored number of bits + as the default value of the number of bits. + + .. code-block: python + + import qiskit.result import ProbDistribution, QuasiDistribution + + prob = ProbDistribution({"00": 0.5, "01": 0.5}) + quasi = QuasiDistribution({"00": 0.5, "01": 0.5}) + + print(prob.binary_probabilities()) + # {'00': 0.5, '01': 0.5} + + print(quasi.binary_probabilities()) + # {'00': 0.5, '01': 0.5} diff --git a/releasenotes/notes/vqe-with-estimator-primitive-7cbcc462ad4dc593.yaml b/releasenotes/notes/vqe-with-estimator-primitive-7cbcc462ad4dc593.yaml new file mode 100644 index 000000000000..b500ac205544 --- /dev/null +++ b/releasenotes/notes/vqe-with-estimator-primitive-7cbcc462ad4dc593.yaml @@ -0,0 +1,34 @@ +--- +features: + - | + Added the :class:`qiskit.algorithms.minimum_eigensolvers` package to include interfaces for + primitive-enabled algorithms. :class:`~qiskit.algorithms.minimum_eigensolvers.VQE` has been + refactored in this implementation to leverage primitives. + + To use the new implementation with a reference primitive, one can do, for example: + + .. code-block:: python + + from qiskit.algorithms.minimum_eigensolvers import VQE + from qiskit.algorithms.optimizers import SLSQP + from qiskit.circuit.library import TwoLocal + from qiskit.primitives import Estimator + + h2_op = SparsePauliOp( + ["II", "IZ", "ZI", "ZZ", "XX"], + coeffs=[ + -1.052373245772859, + 0.39793742484318045, + -0.39793742484318045, + -0.01128010425623538, + 0.18093119978423156, + ], + ) + + estimator = Estimator() + ansatz = TwoLocal(rotation_blocks=["ry", "rz"], entanglement_blocks="cz") + optimizer = SLSQP() + + vqe = VQE(estimator, ansatz, optimizer) + result = vqe.compute_minimum_eigenvalue(h2_op) + eigenvalue = result.eigenvalue diff --git a/requirements-dev.txt b/requirements-dev.txt index bd16781eeb62..8d47d49e357e 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -11,7 +11,7 @@ black[jupyter]~=22.0 pydot astroid==2.5.6 pylint==2.8.3 -stestr>=2.0.0 +stestr>=2.0.0,!=4.0.0 pylatexenc>=1.4 ddt>=1.2.0,!=1.4.0,!=1.4.3 seaborn>=0.9.0 @@ -19,7 +19,7 @@ reno>=3.4.0 Sphinx>=3.0.0 qiskit-sphinx-theme>=1.6 qiskit-toqm>=0.0.4;platform_machine != 'aarch64' or platform_system != 'Linux' -sphinx-autodoc-typehints~=1.18 +sphinx-autodoc-typehints~=1.18,!=1.19.3 jupyter-sphinx sphinx-design>=0.2.0 pygments>=2.4 diff --git a/requirements.txt b/requirements.txt index 19852678af97..ba89c34d1729 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,6 +8,8 @@ dill>=0.3 python-dateutil>=2.8.0 stevedore>=3.0.0 symengine>=0.9 ; platform_machine == 'x86_64' or platform_machine == 'aarch64' or platform_machine == 'ppc64le' or platform_machine == 'amd64' or platform_machine == 'arm64' -tweedledum>=1.1,<2.0 shared-memory38;python_version<'3.8' typing-extensions; python_version < '3.8' + +# To be removed as a requirement in Terra 0.23. +tweedledum>=1.1,<2.0 diff --git a/src/sabre_swap/sabre_dag.rs b/src/sabre_swap/sabre_dag.rs index ae349d30020a..480dbb00323e 100644 --- a/src/sabre_swap/sabre_dag.rs +++ b/src/sabre_swap/sabre_dag.rs @@ -10,7 +10,7 @@ // copyright notice, and modified files need to carry a notice indicating // that they have been altered from the originals. -use hashbrown::HashMap; +use hashbrown::{HashMap, HashSet}; use numpy::PyReadonlyArray1; use pyo3::prelude::*; use retworkx_core::petgraph::prelude::*; @@ -23,7 +23,7 @@ use retworkx_core::petgraph::prelude::*; #[pyo3(text_signature = "(num_qubits, num_clbits, nodes, front_layer, /)")] #[derive(Clone, Debug)] pub struct SabreDAG { - pub dag: DiGraph<(usize, Vec, Vec), ()>, + pub dag: DiGraph<(usize, Vec), ()>, pub first_layer: Vec, } @@ -33,18 +33,18 @@ impl SabreDAG { pub fn new( num_qubits: usize, num_clbits: usize, - nodes: Vec<(usize, Vec, Vec)>, + nodes: Vec<(usize, Vec, HashSet)>, front_layer: PyReadonlyArray1, ) -> PyResult { let mut qubit_pos: Vec = vec![usize::MAX; num_qubits]; let mut clbit_pos: Vec = vec![usize::MAX; num_clbits]; let mut reverse_index_map: HashMap = HashMap::with_capacity(nodes.len()); - let mut dag: DiGraph<(usize, Vec, Vec), ()> = + let mut dag: DiGraph<(usize, Vec), ()> = Graph::with_capacity(nodes.len(), 2 * nodes.len()); for node in &nodes { let qargs = &node.1; let cargs = &node.2; - let gate_index = dag.add_node(node.clone()); + let gate_index = dag.add_node((node.0, qargs.clone())); reverse_index_map.insert(node.0, gate_index); for x in qargs { if qubit_pos[*x] != usize::MAX { diff --git a/test/python/algorithms/evolvers/variational/solvers/expected_results/test_varqte_linear_solver_expected_1.py b/test/python/algorithms/evolvers/variational/solvers/expected_results/test_varqte_linear_solver_expected_1.py deleted file mode 100644 index c6dcf903673f..000000000000 --- a/test/python/algorithms/evolvers/variational/solvers/expected_results/test_varqte_linear_solver_expected_1.py +++ /dev/null @@ -1,182 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. -"""Stores expected results that are lengthy.""" -expected_metric_res_1 = [ - [ - 2.50000000e-01 + 0.0j, - -3.85185989e-33 + 0.0j, - -1.38777878e-17 + 0.0j, - -1.38777878e-17 + 0.0j, - -3.85185989e-33 + 0.0j, - -3.85185989e-33 + 0.0j, - -1.38777878e-17 + 0.0j, - -1.38777878e-17 + 0.0j, - 2.50000000e-01 + 0.0j, - -2.77500000e-17 + 0.0j, - 4.85000000e-17 + 0.0j, - 4.77630626e-32 + 0.0j, - ], - [ - -3.85185989e-33 + 0.0j, - 2.50000000e-01 + 0.0j, - -1.38777878e-17 + 0.0j, - -1.38777878e-17 + 0.0j, - -3.85185989e-33 + 0.0j, - 2.50000000e-01 + 0.0j, - -1.38777878e-17 + 0.0j, - -1.38777878e-17 + 0.0j, - -3.85185989e-33 + 0.0j, - 2.50000000e-01 + 0.0j, - 4.85334346e-32 + 0.0j, - 4.17500000e-17 + 0.0j, - ], - [ - -1.38777878e-17 + 0.0j, - -1.38777878e-17 + 0.0j, - 0.00000000e00 + 0.0j, - 0.00000000e00 + 0.0j, - -1.38777878e-17 + 0.0j, - -1.38777878e-17 + 0.0j, - 0.00000000e00 + 0.0j, - 0.00000000e00 + 0.0j, - -1.38777878e-17 + 0.0j, - -7.00000000e-18 + 0.0j, - 1.38006319e-17 + 0.0j, - -1.39493681e-17 + 0.0j, - ], - [ - -1.38777878e-17 + 0.0j, - -1.38777878e-17 + 0.0j, - 0.00000000e00 + 0.0j, - 0.00000000e00 + 0.0j, - -1.38777878e-17 + 0.0j, - -1.38777878e-17 + 0.0j, - 0.00000000e00 + 0.0j, - 0.00000000e00 + 0.0j, - -1.38777878e-17 + 0.0j, - -7.00000000e-18 + 0.0j, - 1.38006319e-17 + 0.0j, - -1.39493681e-17 + 0.0j, - ], - [ - -3.85185989e-33 + 0.0j, - -3.85185989e-33 + 0.0j, - -1.38777878e-17 + 0.0j, - -1.38777878e-17 + 0.0j, - 2.50000000e-01 + 0.0j, - -3.85185989e-33 + 0.0j, - -1.38777878e-17 + 0.0j, - -1.38777878e-17 + 0.0j, - -3.85185989e-33 + 0.0j, - 0.00000000e00 + 0.0j, - 4.85334346e-32 + 0.0j, - -7.00000000e-18 + 0.0j, - ], - [ - -3.85185989e-33 + 0.0j, - 2.50000000e-01 + 0.0j, - -1.38777878e-17 + 0.0j, - -1.38777878e-17 + 0.0j, - -3.85185989e-33 + 0.0j, - 2.50000000e-01 + 0.0j, - -1.38777878e-17 + 0.0j, - -1.38777878e-17 + 0.0j, - -3.85185989e-33 + 0.0j, - 2.50000000e-01 + 0.0j, - 4.85334346e-32 + 0.0j, - 4.17500000e-17 + 0.0j, - ], - [ - -1.38777878e-17 + 0.0j, - -1.38777878e-17 + 0.0j, - 0.00000000e00 + 0.0j, - 0.00000000e00 + 0.0j, - -1.38777878e-17 + 0.0j, - -1.38777878e-17 + 0.0j, - 0.00000000e00 + 0.0j, - 0.00000000e00 + 0.0j, - -1.38777878e-17 + 0.0j, - -7.00000000e-18 + 0.0j, - 1.38006319e-17 + 0.0j, - -1.39493681e-17 + 0.0j, - ], - [ - -1.38777878e-17 + 0.0j, - -1.38777878e-17 + 0.0j, - 0.00000000e00 + 0.0j, - 0.00000000e00 + 0.0j, - -1.38777878e-17 + 0.0j, - -1.38777878e-17 + 0.0j, - 0.00000000e00 + 0.0j, - 0.00000000e00 + 0.0j, - -1.38777878e-17 + 0.0j, - -7.00000000e-18 + 0.0j, - 1.38006319e-17 + 0.0j, - -1.39493681e-17 + 0.0j, - ], - [ - 2.50000000e-01 + 0.0j, - -3.85185989e-33 + 0.0j, - -1.38777878e-17 + 0.0j, - -1.38777878e-17 + 0.0j, - -3.85185989e-33 + 0.0j, - -3.85185989e-33 + 0.0j, - -1.38777878e-17 + 0.0j, - -1.38777878e-17 + 0.0j, - 2.50000000e-01 + 0.0j, - -2.77500000e-17 + 0.0j, - 4.85000000e-17 + 0.0j, - -7.00000000e-18 + 0.0j, - ], - [ - -2.77500000e-17 + 0.0j, - 2.50000000e-01 + 0.0j, - -7.00000000e-18 + 0.0j, - -7.00000000e-18 + 0.0j, - 0.00000000e00 + 0.0j, - 2.50000000e-01 + 0.0j, - -7.00000000e-18 + 0.0j, - -7.00000000e-18 + 0.0j, - -2.77500000e-17 + 0.0j, - 2.50000000e-01 + 0.0j, - 0.00000000e00 + 0.0j, - 4.17500000e-17 + 0.0j, - ], - [ - 4.85000000e-17 + 0.0j, - 4.85334346e-32 + 0.0j, - 1.38006319e-17 + 0.0j, - 1.38006319e-17 + 0.0j, - 4.85334346e-32 + 0.0j, - 4.85334346e-32 + 0.0j, - 1.38006319e-17 + 0.0j, - 1.38006319e-17 + 0.0j, - 4.85000000e-17 + 0.0j, - 0.00000000e00 + 0.0j, - 2.50000000e-01 + 0.0j, - -2.77500000e-17 + 0.0j, - ], - [ - 4.77630626e-32 + 0.0j, - 4.17500000e-17 + 0.0j, - -1.39493681e-17 + 0.0j, - -1.39493681e-17 + 0.0j, - -7.00000000e-18 + 0.0j, - 4.17500000e-17 + 0.0j, - -1.39493681e-17 + 0.0j, - -1.39493681e-17 + 0.0j, - -7.00000000e-18 + 0.0j, - 4.17500000e-17 + 0.0j, - -2.77500000e-17 + 0.0j, - 2.50000000e-01 + 0.0j, - ], -] diff --git a/test/python/algorithms/evolvers/variational/solvers/ode/test_forward_euler_solver.py b/test/python/algorithms/evolvers/variational/solvers/ode/test_forward_euler_solver.py deleted file mode 100644 index 08d13233c76e..000000000000 --- a/test/python/algorithms/evolvers/variational/solvers/ode/test_forward_euler_solver.py +++ /dev/null @@ -1,47 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. - -"""Test Forward Euler solver.""" - -import unittest -from test.python.algorithms import QiskitAlgorithmsTestCase -import numpy as np -from ddt import ddt, data, unpack -from scipy.integrate import solve_ivp - -from qiskit.algorithms.evolvers.variational.solvers.ode.forward_euler_solver import ( - ForwardEulerSolver, -) - - -@ddt -class TestForwardEulerSolver(QiskitAlgorithmsTestCase): - """Test Forward Euler solver.""" - - @unpack - @data((4, 16), (16, 35.52713678800501), (320, 53.261108839604795)) - def test_solve(self, timesteps, expected_result): - """Test Forward Euler solver for a simple ODE.""" - - y0 = [1] - - # pylint: disable=unused-argument - def func(time, y): - return y - - t_span = [0.0, 4.0] - sol1 = solve_ivp(func, t_span, y0, method=ForwardEulerSolver, num_t_steps=timesteps) - np.testing.assert_equal(sol1.y[-1][-1], expected_result) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/python/algorithms/evolvers/variational/solvers/ode/test_ode_function.py b/test/python/algorithms/evolvers/variational/solvers/ode/test_ode_function.py deleted file mode 100644 index 1ef84204f2cc..000000000000 --- a/test/python/algorithms/evolvers/variational/solvers/ode/test_ode_function.py +++ /dev/null @@ -1,165 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. - -"""Test ODE function generator.""" - -import unittest - -from test.python.algorithms import QiskitAlgorithmsTestCase -import numpy as np -from qiskit.algorithms.evolvers.variational.solvers.var_qte_linear_solver import ( - VarQTELinearSolver, -) -from qiskit.algorithms.evolvers.variational.solvers.ode.ode_function import ( - OdeFunction, -) -from qiskit import BasicAer -from qiskit.algorithms.evolvers.variational import ( - ImaginaryMcLachlanPrinciple, -) -from qiskit.circuit import Parameter -from qiskit.circuit.library import EfficientSU2 -from qiskit.opflow import ( - SummedOp, - X, - Y, - I, - Z, -) - - -class TestOdeFunctionGenerator(QiskitAlgorithmsTestCase): - """Test ODE function generator.""" - - def test_var_qte_ode_function(self): - """Test ODE function generator.""" - observable = SummedOp( - [ - 0.2252 * (I ^ I), - 0.5716 * (Z ^ Z), - 0.3435 * (I ^ Z), - -0.4347 * (Z ^ I), - 0.091 * (Y ^ Y), - 0.091 * (X ^ X), - ] - ) - - d = 2 - ansatz = EfficientSU2(observable.num_qubits, reps=d) - - # Define a set of initial parameters - parameters = list(ansatz.parameters) - - param_dict = {param: np.pi / 4 for param in parameters} - backend = BasicAer.get_backend("statevector_simulator") - - var_principle = ImaginaryMcLachlanPrinciple() - - t_param = None - linear_solver = None - linear_solver = VarQTELinearSolver( - var_principle, - observable, - ansatz, - parameters, - t_param, - linear_solver, - quantum_instance=backend, - ) - - time = 2 - ode_function_generator = OdeFunction( - linear_solver, error_calculator=None, t_param=None, param_dict=param_dict - ) - - qte_ode_function = ode_function_generator.var_qte_ode_function(time, param_dict.values()) - - expected_qte_ode_function = [ - 0.442145, - -0.022081, - 0.106223, - -0.117468, - 0.251233, - 0.321256, - -0.062728, - -0.036209, - -0.509219, - -0.183459, - -0.050739, - -0.093163, - ] - - np.testing.assert_array_almost_equal(expected_qte_ode_function, qte_ode_function) - - def test_var_qte_ode_function_time_param(self): - """Test ODE function generator with time param.""" - t_param = Parameter("t") - observable = SummedOp( - [ - 0.2252 * t_param * (I ^ I), - 0.5716 * (Z ^ Z), - 0.3435 * (I ^ Z), - -0.4347 * (Z ^ I), - 0.091 * (Y ^ Y), - 0.091 * (X ^ X), - ] - ) - - d = 2 - ansatz = EfficientSU2(observable.num_qubits, reps=d) - - # Define a set of initial parameters - parameters = list(ansatz.parameters) - - param_dict = {param: np.pi / 4 for param in parameters} - backend = BasicAer.get_backend("statevector_simulator") - - var_principle = ImaginaryMcLachlanPrinciple() - - time = 2 - - linear_solver = None - linear_solver = VarQTELinearSolver( - var_principle, - observable, - ansatz, - parameters, - t_param, - linear_solver, - quantum_instance=backend, - ) - ode_function_generator = OdeFunction( - linear_solver, error_calculator=None, t_param=t_param, param_dict=param_dict - ) - - qte_ode_function = ode_function_generator.var_qte_ode_function(time, param_dict.values()) - - expected_qte_ode_function = [ - 0.442145, - -0.022081, - 0.106223, - -0.117468, - 0.251233, - 0.321256, - -0.062728, - -0.036209, - -0.509219, - -0.183459, - -0.050739, - -0.093163, - ] - - np.testing.assert_array_almost_equal(expected_qte_ode_function, qte_ode_function, decimal=5) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/python/algorithms/evolvers/variational/solvers/ode/test_var_qte_ode_solver.py b/test/python/algorithms/evolvers/variational/solvers/ode/test_var_qte_ode_solver.py deleted file mode 100644 index 5b39229ba502..000000000000 --- a/test/python/algorithms/evolvers/variational/solvers/ode/test_var_qte_ode_solver.py +++ /dev/null @@ -1,136 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. - -"""Test solver of ODEs.""" - -import unittest -from test.python.algorithms import QiskitAlgorithmsTestCase -from ddt import ddt, data, unpack -import numpy as np -from qiskit.algorithms.evolvers.variational.solvers.ode.forward_euler_solver import ( - ForwardEulerSolver, -) -from qiskit.algorithms.evolvers.variational.solvers.var_qte_linear_solver import ( - VarQTELinearSolver, -) -from qiskit.algorithms.evolvers.variational.solvers.ode.var_qte_ode_solver import ( - VarQTEOdeSolver, -) -from qiskit.algorithms.evolvers.variational.solvers.ode.ode_function import ( - OdeFunction, -) -from qiskit import BasicAer -from qiskit.algorithms.evolvers.variational import ( - ImaginaryMcLachlanPrinciple, -) -from qiskit.circuit.library import EfficientSU2 -from qiskit.opflow import ( - SummedOp, - X, - Y, - I, - Z, -) - - -@ddt -class TestVarQTEOdeSolver(QiskitAlgorithmsTestCase): - """Test solver of ODEs.""" - - @data( - ( - "RK45", - [ - -0.30076755873631345, - -0.8032811383782005, - 1.1674108371914734e-15, - 3.2293849116821145e-16, - 2.541585055586039, - 1.155475184255733, - -2.966331417968169e-16, - 9.604292449638343e-17, - ], - ), - ( - ForwardEulerSolver, - [ - -3.2707e-01, - -8.0960e-01, - 3.4323e-16, - 8.9034e-17, - 2.5290e00, - 1.1563e00, - 3.0227e-16, - -2.2769e-16, - ], - ), - ) - @unpack - def test_run_no_backend(self, ode_solver, expected_result): - """Test ODE solver with no backend.""" - observable = SummedOp( - [ - 0.2252 * (I ^ I), - 0.5716 * (Z ^ Z), - 0.3435 * (I ^ Z), - -0.4347 * (Z ^ I), - 0.091 * (Y ^ Y), - 0.091 * (X ^ X), - ] - ) - - d = 1 - ansatz = EfficientSU2(observable.num_qubits, reps=d) - - # Define a set of initial parameters - parameters = list(ansatz.parameters) - - init_param_values = np.zeros(len(parameters)) - for i in range(ansatz.num_qubits): - init_param_values[-(ansatz.num_qubits + i + 1)] = np.pi / 2 - - param_dict = dict(zip(parameters, init_param_values)) - - backend = BasicAer.get_backend("statevector_simulator") - - var_principle = ImaginaryMcLachlanPrinciple() - - time = 1 - - t_param = None - - linear_solver = None - linear_solver = VarQTELinearSolver( - var_principle, - observable, - ansatz, - parameters, - t_param, - linear_solver, - quantum_instance=backend, - ) - ode_function_generator = OdeFunction(linear_solver, None, param_dict, t_param) - - var_qte_ode_solver = VarQTEOdeSolver( - list(param_dict.values()), - ode_function_generator, - ode_solver=ode_solver, - num_timesteps=25, - ) - - result = var_qte_ode_solver.run(time) - - np.testing.assert_array_almost_equal(result, expected_result, decimal=4) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/python/algorithms/evolvers/variational/solvers/test_varqte_linear_solver.py b/test/python/algorithms/evolvers/variational/solvers/test_varqte_linear_solver.py deleted file mode 100644 index c5442447bf9c..000000000000 --- a/test/python/algorithms/evolvers/variational/solvers/test_varqte_linear_solver.py +++ /dev/null @@ -1,115 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. - -"""Test solver of linear equations.""" - -import unittest - -from test.python.algorithms import QiskitAlgorithmsTestCase -from ddt import ddt, data -import numpy as np - -from qiskit import BasicAer -from qiskit.algorithms.evolvers.variational import ( - ImaginaryMcLachlanPrinciple, -) -from qiskit.algorithms.evolvers.variational.solvers.var_qte_linear_solver import ( - VarQTELinearSolver, -) -from qiskit.circuit.library import EfficientSU2 -from qiskit.opflow import SummedOp, X, Y, I, Z -from .expected_results.test_varqte_linear_solver_expected_1 import ( - expected_metric_res_1, -) - - -@ddt -class TestVarQTELinearSolver(QiskitAlgorithmsTestCase): - """Test solver of linear equations.""" - - @data(BasicAer.get_backend("statevector_simulator"), None) - def test_solve_lse(self, backend): - """Test SLE solver.""" - - observable = SummedOp( - [ - 0.2252 * (I ^ I), - 0.5716 * (Z ^ Z), - 0.3435 * (I ^ Z), - -0.4347 * (Z ^ I), - 0.091 * (Y ^ Y), - 0.091 * (X ^ X), - ] - ) - - d = 2 - ansatz = EfficientSU2(observable.num_qubits, reps=d) - - parameters = list(ansatz.parameters) - init_param_values = np.zeros(len(parameters)) - for i in range(ansatz.num_qubits): - init_param_values[-(ansatz.num_qubits + i + 1)] = np.pi / 2 - - param_dict = dict(zip(parameters, init_param_values)) - - var_principle = ImaginaryMcLachlanPrinciple() - t_param = None - linear_solver = None - linear_solver = VarQTELinearSolver( - var_principle, - observable, - ansatz, - parameters, - t_param, - linear_solver, - quantum_instance=backend, - ) - - nat_grad_res, metric_res, grad_res = linear_solver.solve_lse(param_dict) - - expected_nat_grad_res = [ - 3.43500000e-01, - -2.89800000e-01, - 2.43575264e-16, - 1.31792695e-16, - -9.61200000e-01, - -2.89800000e-01, - 1.27493709e-17, - 1.12587456e-16, - 3.43500000e-01, - -2.89800000e-01, - 3.69914720e-17, - 1.95052083e-17, - ] - - expected_grad_res = [ - (0.17174999999999926 - 0j), - (-0.21735000000000085 + 0j), - (4.114902862895087e-17 - 0j), - (4.114902862895087e-17 - 0j), - (-0.24030000000000012 + 0j), - (-0.21735000000000085 + 0j), - (4.114902862895087e-17 - 0j), - (4.114902862895087e-17 - 0j), - (0.17174999999999918 - 0j), - (-0.21735000000000076 + 0j), - (1.7789936190837538e-17 - 0j), - (-8.319872568662832e-17 + 0j), - ] - - np.testing.assert_array_almost_equal(nat_grad_res, expected_nat_grad_res, decimal=4) - np.testing.assert_array_almost_equal(grad_res, expected_grad_res, decimal=4) - np.testing.assert_array_almost_equal(metric_res, expected_metric_res_1, decimal=4) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/python/algorithms/evolvers/variational/test_var_qite.py b/test/python/algorithms/evolvers/variational/test_var_qite.py deleted file mode 100644 index 6c4a26e13f8c..000000000000 --- a/test/python/algorithms/evolvers/variational/test_var_qite.py +++ /dev/null @@ -1,287 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. - -"""Test Variational Quantum Imaginary Time Evolution algorithm.""" - -import unittest - -from test.python.algorithms import QiskitAlgorithmsTestCase -from ddt import data, ddt -import numpy as np -from qiskit.test import slow_test -from qiskit.utils import algorithm_globals, QuantumInstance -from qiskit import BasicAer -from qiskit.algorithms import EvolutionProblem, VarQITE -from qiskit.algorithms.evolvers.variational import ( - ImaginaryMcLachlanPrinciple, -) -from qiskit.circuit.library import EfficientSU2 -from qiskit.opflow import ( - SummedOp, - X, - Y, - I, - Z, - ExpectationFactory, -) - - -@ddt -class TestVarQITE(QiskitAlgorithmsTestCase): - """Test Variational Quantum Imaginary Time Evolution algorithm.""" - - def setUp(self): - super().setUp() - self.seed = 11 - np.random.seed(self.seed) - backend_statevector = BasicAer.get_backend("statevector_simulator") - backend_qasm = BasicAer.get_backend("qasm_simulator") - self.quantum_instance = QuantumInstance( - backend=backend_statevector, - shots=1, - seed_simulator=self.seed, - seed_transpiler=self.seed, - ) - self.quantum_instance_qasm = QuantumInstance( - backend=backend_qasm, - shots=4000, - seed_simulator=self.seed, - seed_transpiler=self.seed, - ) - self.backends_dict = { - "qi_sv": self.quantum_instance, - "qi_qasm": self.quantum_instance_qasm, - "b_sv": backend_statevector, - } - - self.backends_names = ["qi_qasm", "b_sv", "qi_sv"] - - @slow_test - def test_run_d_1_with_aux_ops(self): - """Test VarQITE for d = 1 and t = 1 with evaluating auxiliary operator and the Forward - Euler solver..""" - observable = SummedOp( - [ - 0.2252 * (I ^ I), - 0.5716 * (Z ^ Z), - 0.3435 * (I ^ Z), - -0.4347 * (Z ^ I), - 0.091 * (Y ^ Y), - 0.091 * (X ^ X), - ] - ) - aux_ops = [X ^ X, Y ^ Z] - d = 1 - ansatz = EfficientSU2(observable.num_qubits, reps=d) - - parameters = list(ansatz.parameters) - init_param_values = np.zeros(len(parameters)) - for i in range(len(parameters)): - init_param_values[i] = np.pi / 2 - init_param_values[0] = 1 - var_principle = ImaginaryMcLachlanPrinciple() - - param_dict = dict(zip(parameters, init_param_values)) - - time = 1 - - evolution_problem = EvolutionProblem(observable, time, aux_operators=aux_ops) - - thetas_expected_sv = [ - 1.03612467538419, - 1.91891042963193, - 2.81129500883365, - 2.78938736703301, - 2.2215151699331, - 1.61953721158502, - 2.23490753161058, - 1.97145113701782, - ] - - thetas_expected_qasm = [ - 1.03612467538419, - 1.91891042963193, - 2.81129500883365, - 2.78938736703301, - 2.2215151699331, - 1.61953721158502, - 2.23490753161058, - 1.97145113701782, - ] - - expected_aux_ops_evaluated_sv = [(-0.160899, 0.0), (0.26207, 0.0)] - expected_aux_ops_evaluated_qasm = [ - (-0.1765, 0.015563), - (0.2555, 0.015287), - ] - - for backend_name in self.backends_names: - with self.subTest(msg=f"Test {backend_name} backend."): - algorithm_globals.random_seed = self.seed - backend = self.backends_dict[backend_name] - expectation = ExpectationFactory.build( - operator=observable, - backend=backend, - ) - var_qite = VarQITE( - ansatz, - var_principle, - param_dict, - expectation=expectation, - num_timesteps=25, - quantum_instance=backend, - ) - evolution_result = var_qite.evolve(evolution_problem) - - evolved_state = evolution_result.evolved_state - aux_ops = evolution_result.aux_ops_evaluated - - parameter_values = evolved_state.data[0][0].params - - if backend_name == "qi_qasm": - thetas_expected = thetas_expected_qasm - expected_aux_ops = expected_aux_ops_evaluated_qasm - else: - thetas_expected = thetas_expected_sv - expected_aux_ops = expected_aux_ops_evaluated_sv - - for i, parameter_value in enumerate(parameter_values): - np.testing.assert_almost_equal( - float(parameter_value), thetas_expected[i], decimal=3 - ) - - np.testing.assert_array_almost_equal(aux_ops, expected_aux_ops) - - def test_run_d_1_t_7(self): - """Test VarQITE for d = 1 and t = 7 with RK45 ODE solver.""" - observable = SummedOp( - [ - 0.2252 * (I ^ I), - 0.5716 * (Z ^ Z), - 0.3435 * (I ^ Z), - -0.4347 * (Z ^ I), - 0.091 * (Y ^ Y), - 0.091 * (X ^ X), - ] - ) - - d = 1 - ansatz = EfficientSU2(observable.num_qubits, reps=d) - - parameters = list(ansatz.parameters) - init_param_values = np.zeros(len(parameters)) - for i in range(len(parameters)): - init_param_values[i] = np.pi / 2 - init_param_values[0] = 1 - var_principle = ImaginaryMcLachlanPrinciple() - - backend = BasicAer.get_backend("statevector_simulator") - - time = 7 - var_qite = VarQITE( - ansatz, - var_principle, - init_param_values, - ode_solver="RK45", - num_timesteps=25, - quantum_instance=backend, - ) - - thetas_expected = [ - 0.828917365718767, - 1.88481074798033, - 3.14111335991238, - 3.14125849601269, - 2.33768562678401, - 1.78670990729437, - 2.04214275514208, - 2.04009918594422, - ] - - self._test_helper(observable, thetas_expected, time, var_qite, 2) - - @slow_test - @data( - SummedOp( - [ - 0.2252 * (I ^ I), - 0.5716 * (Z ^ Z), - 0.3435 * (I ^ Z), - -0.4347 * (Z ^ I), - 0.091 * (Y ^ Y), - 0.091 * (X ^ X), - ] - ), - 0.2252 * (I ^ I) - + 0.5716 * (Z ^ Z) - + 0.3435 * (I ^ Z) - + -0.4347 * (Z ^ I) - + 0.091 * (Y ^ Y) - + 0.091 * (X ^ X), - ) - def test_run_d_2(self, observable): - """Test VarQITE for d = 2 and t = 1 with RK45 ODE solver.""" - d = 2 - ansatz = EfficientSU2(observable.num_qubits, reps=d) - - parameters = list(ansatz.parameters) - init_param_values = np.zeros(len(parameters)) - for i in range(len(parameters)): - init_param_values[i] = np.pi / 4 - - var_principle = ImaginaryMcLachlanPrinciple() - - param_dict = dict(zip(parameters, init_param_values)) - - backend = BasicAer.get_backend("statevector_simulator") - - time = 1 - var_qite = VarQITE( - ansatz, - var_principle, - param_dict, - ode_solver="RK45", - num_timesteps=25, - quantum_instance=backend, - ) - - thetas_expected = [ - 1.29495364023786, - 1.08970061333559, - 0.667488228710748, - 0.500122687902944, - 1.4377736672043, - 1.22881086103085, - 0.729773048146251, - 1.01698854755226, - 0.050807780587492, - 0.294828474947149, - 0.839305697704923, - 0.663689581255428, - ] - - self._test_helper(observable, thetas_expected, time, var_qite, 4) - - def _test_helper(self, observable, thetas_expected, time, var_qite, decimal): - evolution_problem = EvolutionProblem(observable, time) - evolution_result = var_qite.evolve(evolution_problem) - evolved_state = evolution_result.evolved_state - - parameter_values = evolved_state.data[0][0].params - for i, parameter_value in enumerate(parameter_values): - np.testing.assert_almost_equal( - float(parameter_value), thetas_expected[i], decimal=decimal - ) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/python/algorithms/evolvers/variational/test_var_qrte.py b/test/python/algorithms/evolvers/variational/test_var_qrte.py deleted file mode 100644 index 22ab25394e14..000000000000 --- a/test/python/algorithms/evolvers/variational/test_var_qrte.py +++ /dev/null @@ -1,234 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. - -"""Test Variational Quantum Real Time Evolution algorithm.""" - -import unittest - -from test.python.algorithms import QiskitAlgorithmsTestCase -from ddt import data, ddt -import numpy as np -from qiskit.test import slow_test -from qiskit.utils import QuantumInstance, algorithm_globals -from qiskit.algorithms import EvolutionProblem, VarQRTE -from qiskit.algorithms.evolvers.variational import ( - RealMcLachlanPrinciple, -) -from qiskit import BasicAer -from qiskit.circuit.library import EfficientSU2 -from qiskit.opflow import ( - SummedOp, - X, - Y, - I, - Z, - ExpectationFactory, -) - - -@ddt -class TestVarQRTE(QiskitAlgorithmsTestCase): - """Test Variational Quantum Real Time Evolution algorithm.""" - - def setUp(self): - super().setUp() - self.seed = 11 - np.random.seed(self.seed) - backend_statevector = BasicAer.get_backend("statevector_simulator") - backend_qasm = BasicAer.get_backend("qasm_simulator") - self.quantum_instance = QuantumInstance( - backend=backend_statevector, - shots=1, - seed_simulator=self.seed, - seed_transpiler=self.seed, - ) - self.quantum_instance_qasm = QuantumInstance( - backend=backend_qasm, - shots=4000, - seed_simulator=self.seed, - seed_transpiler=self.seed, - ) - self.backends_dict = { - "qi_sv": self.quantum_instance, - "qi_qasm": self.quantum_instance_qasm, - "b_sv": backend_statevector, - } - - self.backends_names = ["qi_qasm", "b_sv", "qi_sv"] - - @slow_test - def test_run_d_1_with_aux_ops(self): - """Test VarQRTE for d = 1 and t = 0.1 with evaluating auxiliary operators and the Forward - Euler solver.""" - observable = SummedOp( - [ - 0.2252 * (I ^ I), - 0.5716 * (Z ^ Z), - 0.3435 * (I ^ Z), - -0.4347 * (Z ^ I), - 0.091 * (Y ^ Y), - 0.091 * (X ^ X), - ] - ) - aux_ops = [X ^ X, Y ^ Z] - d = 1 - ansatz = EfficientSU2(observable.num_qubits, reps=d) - - parameters = list(ansatz.parameters) - init_param_values = np.zeros(len(parameters)) - for i in range(len(parameters)): - init_param_values[i] = np.pi / 2 - init_param_values[0] = 1 - var_principle = RealMcLachlanPrinciple() - - time = 0.1 - - evolution_problem = EvolutionProblem(observable, time, aux_operators=aux_ops) - - thetas_expected_sv = [ - 0.88967020378258, - 1.53740751016451, - 1.57076759018861, - 1.58893301221363, - 1.60100970594142, - 1.57008242207638, - 1.63791241090936, - 1.53741371076912, - ] - - thetas_expected_qasm = [ - 0.88967811203145, - 1.53745130248168, - 1.57206794045495, - 1.58901347342829, - 1.60101431615503, - 1.57138020823337, - 1.63796000651177, - 1.53742227084076, - ] - - expected_aux_ops_evaluated_sv = [(0.06675, 0.0), (0.772636, 0.0)] - - expected_aux_ops_evaluated_qasm = [ - (0.06450000000000006, 0.01577846435810532), - (0.7895000000000001, 0.009704248425303218), - ] - - for backend_name in self.backends_names: - with self.subTest(msg=f"Test {backend_name} backend."): - algorithm_globals.random_seed = self.seed - backend = self.backends_dict[backend_name] - expectation = ExpectationFactory.build( - operator=observable, - backend=backend, - ) - var_qrte = VarQRTE( - ansatz, - var_principle, - init_param_values, - expectation=expectation, - num_timesteps=25, - quantum_instance=backend, - ) - evolution_result = var_qrte.evolve(evolution_problem) - - evolved_state = evolution_result.evolved_state - aux_ops = evolution_result.aux_ops_evaluated - - parameter_values = evolved_state.data[0][0].params - if backend_name == "qi_qasm": - thetas_expected = thetas_expected_qasm - expected_aux_ops = expected_aux_ops_evaluated_qasm - else: - thetas_expected = thetas_expected_sv - expected_aux_ops = expected_aux_ops_evaluated_sv - - for i, parameter_value in enumerate(parameter_values): - np.testing.assert_almost_equal( - float(parameter_value), thetas_expected[i], decimal=3 - ) - np.testing.assert_array_almost_equal(aux_ops, expected_aux_ops) - - @slow_test - @data( - SummedOp( - [ - 0.2252 * (I ^ I), - 0.5716 * (Z ^ Z), - 0.3435 * (I ^ Z), - -0.4347 * (Z ^ I), - 0.091 * (Y ^ Y), - 0.091 * (X ^ X), - ] - ), - 0.2252 * (I ^ I) - + 0.5716 * (Z ^ Z) - + 0.3435 * (I ^ Z) - + -0.4347 * (Z ^ I) - + 0.091 * (Y ^ Y) - + 0.091 * (X ^ X), - ) - def test_run_d_2(self, observable): - """Test VarQRTE for d = 2 and t = 1 with RK45 ODE solver.""" - d = 2 - ansatz = EfficientSU2(observable.num_qubits, reps=d) - - parameters = list(ansatz.parameters) - init_param_values = np.zeros(len(parameters)) - for i in range(len(parameters)): - init_param_values[i] = np.pi / 4 - - var_principle = RealMcLachlanPrinciple() - - param_dict = dict(zip(parameters, init_param_values)) - - backend = BasicAer.get_backend("statevector_simulator") - - time = 1 - var_qrte = VarQRTE( - ansatz, - var_principle, - param_dict, - ode_solver="RK45", - num_timesteps=25, - quantum_instance=backend, - ) - - thetas_expected = [ - 0.348407744196573, - 0.919404626262464, - 1.18189219371626, - 0.771011177789998, - 0.734384256533924, - 0.965289520781899, - 1.14441687204195, - 1.17231927568571, - 1.03014771379412, - 0.867266309056347, - 0.699606368428206, - 0.610788576398685, - ] - - self._test_helper(observable, thetas_expected, time, var_qrte) - - def _test_helper(self, observable, thetas_expected, time, var_qrte): - evolution_problem = EvolutionProblem(observable, time) - evolution_result = var_qrte.evolve(evolution_problem) - evolved_state = evolution_result.evolved_state - - parameter_values = evolved_state.data[0][0].params - for i, parameter_value in enumerate(parameter_values): - np.testing.assert_almost_equal(float(parameter_value), thetas_expected[i], decimal=4) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/python/algorithms/evolvers/variational/test_var_qte.py b/test/python/algorithms/evolvers/variational/test_var_qte.py deleted file mode 100644 index 1083a1564f68..000000000000 --- a/test/python/algorithms/evolvers/variational/test_var_qte.py +++ /dev/null @@ -1,78 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. -"""Test Variational Quantum Real Time Evolution algorithm.""" - -import unittest - -from test.python.algorithms import QiskitAlgorithmsTestCase -from numpy.testing import assert_raises -from ddt import data, ddt -import numpy as np - -from qiskit.algorithms.evolvers.variational.var_qte import VarQTE -from qiskit.circuit import Parameter - - -@ddt -class TestVarQTE(QiskitAlgorithmsTestCase): - """Test Variational Quantum Time Evolution class methods.""" - - def setUp(self): - super().setUp() - self._parameters1 = [Parameter("a"), Parameter("b"), Parameter("c")] - - @data([1.4, 2, 3], np.asarray([1.4, 2, 3])) - def test_create_init_state_param_dict(self, param_values): - """Tests if a correct dictionary is created.""" - expected = dict(zip(self._parameters1, param_values)) - with self.subTest("Parameters values given as a list test."): - result = VarQTE._create_init_state_param_dict(param_values, self._parameters1) - np.testing.assert_equal(result, expected) - with self.subTest("Parameters values given as a dictionary test."): - result = VarQTE._create_init_state_param_dict( - dict(zip(self._parameters1, param_values)), self._parameters1 - ) - np.testing.assert_equal(result, expected) - with self.subTest("Parameters values given as a superset dictionary test."): - expected = dict( - zip( - [self._parameters1[0], self._parameters1[2]], [param_values[0], param_values[2]] - ) - ) - result = VarQTE._create_init_state_param_dict( - dict(zip(self._parameters1, param_values)), - [self._parameters1[0], self._parameters1[2]], - ) - np.testing.assert_equal(result, expected) - - @data([1.4, 2], np.asarray([1.4, 3]), {}, []) - def test_create_init_state_param_dict_errors_list(self, param_values): - """Tests if an error is raised.""" - with assert_raises(ValueError): - _ = VarQTE._create_init_state_param_dict(param_values, self._parameters1) - - @data([1.4, 2], np.asarray([1.4, 3])) - def test_create_init_state_param_dict_errors_subset(self, param_values): - """Tests if an error is raised if subset of parameters provided.""" - param_values_dict = dict(zip([self._parameters1[0], self._parameters1[2]], param_values)) - with assert_raises(ValueError): - _ = VarQTE._create_init_state_param_dict(param_values_dict, self._parameters1) - - @data(5, "s", Parameter("x")) - def test_create_init_state_param_dict_errors_type(self, param_values): - """Tests if an error is raised if wrong input type.""" - with assert_raises(TypeError): - _ = VarQTE._create_init_state_param_dict(param_values, self._parameters1) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/python/algorithms/evolvers/variational/variational_principles/expected_results/test_imaginary_mc_lachlan_variational_principle_expected1.py b/test/python/algorithms/evolvers/variational/variational_principles/expected_results/test_imaginary_mc_lachlan_variational_principle_expected1.py deleted file mode 100644 index 231cbac4dba4..000000000000 --- a/test/python/algorithms/evolvers/variational/variational_principles/expected_results/test_imaginary_mc_lachlan_variational_principle_expected1.py +++ /dev/null @@ -1,182 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. -"""Stores expected results that are lengthy.""" -expected_bound_metric_tensor_1 = [ - [ - 2.50000000e-01 + 0.0j, - 1.59600000e-33 + 0.0j, - 5.90075760e-18 + 0.0j, - -8.49242405e-19 + 0.0j, - 8.83883476e-02 + 0.0j, - 1.33253788e-17 + 0.0j, - 6.25000000e-02 + 0.0j, - 1.40000000e-17 + 0.0j, - -1.41735435e-01 + 0.0j, - 3.12500000e-02 + 0.0j, - 1.00222087e-01 + 0.0j, - -3.12500000e-02 + 0.0j, - ], - [ - 1.59600000e-33 + 0.0j, - 2.50000000e-01 + 0.0j, - 1.34350288e-17 + 0.0j, - 6.43502884e-18 + 0.0j, - -8.83883476e-02 + 0.0j, - 1.25000000e-01 + 0.0j, - 6.25000000e-02 + 0.0j, - 1.25000000e-01 + 0.0j, - -8.45970869e-02 + 0.0j, - 7.54441738e-02 + 0.0j, - 1.48207521e-01 + 0.0j, - 2.00444174e-01 + 0.0j, - ], - [ - 5.90075760e-18 + 0.0j, - 1.34350288e-17 + 0.0j, - 1.25000000e-01 + 0.0j, - -1.38777878e-17 + 0.0j, - -4.41941738e-02 + 0.0j, - 6.25000000e-02 + 0.0j, - 1.19638348e-01 + 0.0j, - 6.25000000e-02 + 0.0j, - -5.14514565e-02 + 0.0j, - 6.89720869e-02 + 0.0j, - 1.04933262e-02 + 0.0j, - -6.89720869e-02 + 0.0j, - ], - [ - -8.49242405e-19 + 0.0j, - 6.43502884e-18 + 0.0j, - -1.38777878e-17 + 0.0j, - 1.25000000e-01 + 0.0j, - -4.41941738e-02 + 0.0j, - -6.25000000e-02 + 0.0j, - 3.12500000e-02 + 0.0j, - 1.25000000e-01 + 0.0j, - 5.14514565e-02 + 0.0j, - -6.89720869e-02 + 0.0j, - 7.81250000e-03 + 0.0j, - 1.94162607e-02 + 0.0j, - ], - [ - 8.83883476e-02 + 0.0j, - -8.83883476e-02 + 0.0j, - -4.41941738e-02 + 0.0j, - -4.41941738e-02 + 0.0j, - 2.34375000e-01 + 0.0j, - -1.10485435e-01 + 0.0j, - -2.02014565e-02 + 0.0j, - -4.41941738e-02 + 0.0j, - 1.49547935e-02 + 0.0j, - -2.24896848e-02 + 0.0j, - -1.42172278e-03 + 0.0j, - -1.23822206e-01 + 0.0j, - ], - [ - 1.33253788e-17 + 0.0j, - 1.25000000e-01 + 0.0j, - 6.25000000e-02 + 0.0j, - -6.25000000e-02 + 0.0j, - -1.10485435e-01 + 0.0j, - 2.18750000e-01 + 0.0j, - -2.68082618e-03 + 0.0j, - -1.59099026e-17 + 0.0j, - -1.57197815e-01 + 0.0j, - 2.53331304e-02 + 0.0j, - 9.82311963e-03 + 0.0j, - 1.06138957e-01 + 0.0j, - ], - [ - 6.25000000e-02 + 0.0j, - 6.25000000e-02 + 0.0j, - 1.19638348e-01 + 0.0j, - 3.12500000e-02 + 0.0j, - -2.02014565e-02 + 0.0j, - -2.68082618e-03 + 0.0j, - 2.23881674e-01 + 0.0j, - 1.37944174e-01 + 0.0j, - -3.78033966e-02 + 0.0j, - 1.58423239e-01 + 0.0j, - 1.34535646e-01 + 0.0j, - -5.49651086e-02 + 0.0j, - ], - [ - 1.40000000e-17 + 0.0j, - 1.25000000e-01 + 0.0j, - 6.25000000e-02 + 0.0j, - 1.25000000e-01 + 0.0j, - -4.41941738e-02 + 0.0j, - -1.59099026e-17 + 0.0j, - 1.37944174e-01 + 0.0j, - 2.50000000e-01 + 0.0j, - -2.10523539e-17 + 0.0j, - 1.15574269e-17 + 0.0j, - 9.75412607e-02 + 0.0j, - 5.71383476e-02 + 0.0j, - ], - [ - -1.41735435e-01 + 0.0j, - -8.45970869e-02 + 0.0j, - -5.14514565e-02 + 0.0j, - 5.14514565e-02 + 0.0j, - 1.49547935e-02 + 0.0j, - -1.57197815e-01 + 0.0j, - -3.78033966e-02 + 0.0j, - -2.10523539e-17 + 0.0j, - 1.95283753e-01 + 0.0j, - -3.82941440e-02 + 0.0j, - -6.11392595e-02 + 0.0j, - -4.51588288e-02 + 0.0j, - ], - [ - 3.12500000e-02 + 0.0j, - 7.54441738e-02 + 0.0j, - 6.89720869e-02 + 0.0j, - -6.89720869e-02 + 0.0j, - -2.24896848e-02 + 0.0j, - 2.53331304e-02 + 0.0j, - 1.58423239e-01 + 0.0j, - 1.15574269e-17 + 0.0j, - -3.82941440e-02 + 0.0j, - 2.17629701e-01 + 0.0j, - 1.32431810e-01 + 0.0j, - -1.91961467e-02 + 0.0j, - ], - [ - 1.00222087e-01 + 0.0j, - 1.48207521e-01 + 0.0j, - 1.04933262e-02 + 0.0j, - 7.81250000e-03 + 0.0j, - -1.42172278e-03 + 0.0j, - 9.82311963e-03 + 0.0j, - 1.34535646e-01 + 0.0j, - 9.75412607e-02 + 0.0j, - -6.11392595e-02 + 0.0j, - 1.32431810e-01 + 0.0j, - 1.81683746e-01 + 0.0j, - 7.28902444e-02 + 0.0j, - ], - [ - -3.12500000e-02 + 0.0j, - 2.00444174e-01 + 0.0j, - -6.89720869e-02 + 0.0j, - 1.94162607e-02 + 0.0j, - -1.23822206e-01 + 0.0j, - 1.06138957e-01 + 0.0j, - -5.49651086e-02 + 0.0j, - 5.71383476e-02 + 0.0j, - -4.51588288e-02 + 0.0j, - -1.91961467e-02 + 0.0j, - 7.28902444e-02 + 0.0j, - 2.38616353e-01 + 0.0j, - ], -] diff --git a/test/python/algorithms/evolvers/variational/variational_principles/expected_results/test_imaginary_mc_lachlan_variational_principle_expected2.py b/test/python/algorithms/evolvers/variational/variational_principles/expected_results/test_imaginary_mc_lachlan_variational_principle_expected2.py deleted file mode 100644 index 386e3196ea4e..000000000000 --- a/test/python/algorithms/evolvers/variational/variational_principles/expected_results/test_imaginary_mc_lachlan_variational_principle_expected2.py +++ /dev/null @@ -1,182 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. -"""Stores expected results that are lengthy.""" -expected_bound_metric_tensor_2 = [ - [ - 2.50000000e-01 + 0.0j, - 1.59600000e-33 + 0.0j, - 5.90075760e-18 + 0.0j, - -8.49242405e-19 + 0.0j, - 8.83883476e-02 + 0.0j, - 1.33253788e-17 + 0.0j, - 6.25000000e-02 + 0.0j, - 1.40000000e-17 + 0.0j, - -1.41735435e-01 + 0.0j, - 3.12500000e-02 + 0.0j, - 1.00222087e-01 + 0.0j, - -3.12500000e-02 + 0.0j, - ], - [ - 1.59600000e-33 + 0.0j, - 2.50000000e-01 + 0.0j, - 1.34350288e-17 + 0.0j, - 6.43502884e-18 + 0.0j, - -8.83883476e-02 + 0.0j, - 1.25000000e-01 + 0.0j, - 6.25000000e-02 + 0.0j, - 1.25000000e-01 + 0.0j, - -8.45970869e-02 + 0.0j, - 7.54441738e-02 + 0.0j, - 1.48207521e-01 + 0.0j, - 2.00444174e-01 + 0.0j, - ], - [ - 5.90075760e-18 + 0.0j, - 1.34350288e-17 + 0.0j, - 1.25000000e-01 + 0.0j, - -1.38777878e-17 + 0.0j, - -4.41941738e-02 + 0.0j, - 6.25000000e-02 + 0.0j, - 1.19638348e-01 + 0.0j, - 6.25000000e-02 + 0.0j, - -5.14514565e-02 + 0.0j, - 6.89720869e-02 + 0.0j, - 1.04933262e-02 + 0.0j, - -6.89720869e-02 + 0.0j, - ], - [ - -8.49242405e-19 + 0.0j, - 6.43502884e-18 + 0.0j, - -1.38777878e-17 + 0.0j, - 1.25000000e-01 + 0.0j, - -4.41941738e-02 + 0.0j, - -6.25000000e-02 + 0.0j, - 3.12500000e-02 + 0.0j, - 1.25000000e-01 + 0.0j, - 5.14514565e-02 + 0.0j, - -6.89720869e-02 + 0.0j, - 7.81250000e-03 + 0.0j, - 1.94162607e-02 + 0.0j, - ], - [ - 8.83883476e-02 + 0.0j, - -8.83883476e-02 + 0.0j, - -4.41941738e-02 + 0.0j, - -4.41941738e-02 + 0.0j, - 2.34375000e-01 + 0.0j, - -1.10485435e-01 + 0.0j, - -2.02014565e-02 + 0.0j, - -4.41941738e-02 + 0.0j, - 1.49547935e-02 + 0.0j, - -2.24896848e-02 + 0.0j, - -1.42172278e-03 + 0.0j, - -1.23822206e-01 + 0.0j, - ], - [ - 1.33253788e-17 + 0.0j, - 1.25000000e-01 + 0.0j, - 6.25000000e-02 + 0.0j, - -6.25000000e-02 + 0.0j, - -1.10485435e-01 + 0.0j, - 2.18750000e-01 + 0.0j, - -2.68082618e-03 + 0.0j, - -1.59099026e-17 + 0.0j, - -1.57197815e-01 + 0.0j, - 2.53331304e-02 + 0.0j, - 9.82311963e-03 + 0.0j, - 1.06138957e-01 + 0.0j, - ], - [ - 6.25000000e-02 + 0.0j, - 6.25000000e-02 + 0.0j, - 1.19638348e-01 + 0.0j, - 3.12500000e-02 + 0.0j, - -2.02014565e-02 + 0.0j, - -2.68082618e-03 + 0.0j, - 2.23881674e-01 + 0.0j, - 1.37944174e-01 + 0.0j, - -3.78033966e-02 + 0.0j, - 1.58423239e-01 + 0.0j, - 1.34535646e-01 + 0.0j, - -5.49651086e-02 + 0.0j, - ], - [ - 1.40000000e-17 + 0.0j, - 1.25000000e-01 + 0.0j, - 6.25000000e-02 + 0.0j, - 1.25000000e-01 + 0.0j, - -4.41941738e-02 + 0.0j, - -1.59099026e-17 + 0.0j, - 1.37944174e-01 + 0.0j, - 2.50000000e-01 + 0.0j, - -2.10523539e-17 + 0.0j, - 1.15574269e-17 + 0.0j, - 9.75412607e-02 + 0.0j, - 5.71383476e-02 + 0.0j, - ], - [ - -1.41735435e-01 + 0.0j, - -8.45970869e-02 + 0.0j, - -5.14514565e-02 + 0.0j, - 5.14514565e-02 + 0.0j, - 1.49547935e-02 + 0.0j, - -1.57197815e-01 + 0.0j, - -3.78033966e-02 + 0.0j, - -2.10523539e-17 + 0.0j, - 1.95283753e-01 + 0.0j, - -3.82941440e-02 + 0.0j, - -6.11392595e-02 + 0.0j, - -4.51588288e-02 + 0.0j, - ], - [ - 3.12500000e-02 + 0.0j, - 7.54441738e-02 + 0.0j, - 6.89720869e-02 + 0.0j, - -6.89720869e-02 + 0.0j, - -2.24896848e-02 + 0.0j, - 2.53331304e-02 + 0.0j, - 1.58423239e-01 + 0.0j, - 1.15574269e-17 + 0.0j, - -3.82941440e-02 + 0.0j, - 2.17629701e-01 + 0.0j, - 1.32431810e-01 + 0.0j, - -1.91961467e-02 + 0.0j, - ], - [ - 1.00222087e-01 + 0.0j, - 1.48207521e-01 + 0.0j, - 1.04933262e-02 + 0.0j, - 7.81250000e-03 + 0.0j, - -1.42172278e-03 + 0.0j, - 9.82311963e-03 + 0.0j, - 1.34535646e-01 + 0.0j, - 9.75412607e-02 + 0.0j, - -6.11392595e-02 + 0.0j, - 1.32431810e-01 + 0.0j, - 1.81683746e-01 + 0.0j, - 7.28902444e-02 + 0.0j, - ], - [ - -3.12500000e-02 + 0.0j, - 2.00444174e-01 + 0.0j, - -6.89720869e-02 + 0.0j, - 1.94162607e-02 + 0.0j, - -1.23822206e-01 + 0.0j, - 1.06138957e-01 + 0.0j, - -5.49651086e-02 + 0.0j, - 5.71383476e-02 + 0.0j, - -4.51588288e-02 + 0.0j, - -1.91961467e-02 + 0.0j, - 7.28902444e-02 + 0.0j, - 2.38616353e-01 + 0.0j, - ], -] diff --git a/test/python/algorithms/evolvers/variational/variational_principles/expected_results/test_imaginary_mc_lachlan_variational_principle_expected3.py b/test/python/algorithms/evolvers/variational/variational_principles/expected_results/test_imaginary_mc_lachlan_variational_principle_expected3.py deleted file mode 100644 index 5c295c0c6f2a..000000000000 --- a/test/python/algorithms/evolvers/variational/variational_principles/expected_results/test_imaginary_mc_lachlan_variational_principle_expected3.py +++ /dev/null @@ -1,182 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. -"""Stores expected results that are lengthy.""" -expected_bound_metric_tensor_3 = [ - [ - -1.21000000e-34 + 0.00e00j, - 1.21000000e-34 + 2.50e-19j, - 1.76776695e-01 - 1.00e-18j, - -1.40000000e-17 + 0.00e00j, - -6.25000000e-02 + 0.00e00j, - 8.83883476e-02 - 1.25e-18j, - 1.69194174e-01 + 2.25e-18j, - 8.83883476e-02 - 2.50e-19j, - -7.27633476e-02 + 0.00e00j, - 9.75412607e-02 + 7.50e-19j, - 1.48398042e-02 - 1.75e-18j, - -9.75412607e-02 + 3.75e-18j, - ], - [ - 1.21000000e-34 + 2.50e-19j, - -1.21000000e-34 + 0.00e00j, - 1.10000000e-34 + 2.75e-18j, - 1.76776695e-01 - 2.25e-18j, - -6.25000000e-02 + 0.00e00j, - -8.83883476e-02 + 4.00e-18j, - 4.41941738e-02 - 1.25e-18j, - 1.76776695e-01 - 2.50e-19j, - 7.27633476e-02 - 7.50e-19j, - -9.75412607e-02 - 7.50e-19j, - 1.10485435e-02 - 7.50e-19j, - 2.74587393e-02 + 2.50e-19j, - ], - [ - 1.76776695e-01 - 1.00e-18j, - 1.10000000e-34 + 2.75e-18j, - -1.25000000e-01 + 0.00e00j, - -1.25000000e-01 + 0.00e00j, - -1.06694174e-01 + 1.25e-18j, - -6.25000000e-02 + 1.75e-18j, - -1.01332521e-01 + 7.50e-19j, - 4.67500000e-17 - 7.50e-19j, - 1.75206304e-02 + 5.00e-19j, - -8.57075215e-02 - 1.00e-18j, - -1.63277304e-01 + 1.00e-18j, - -1.56250000e-02 + 0.00e00j, - ], - [ - -1.40000000e-17 + 0.00e00j, - 1.76776695e-01 - 2.25e-18j, - -1.25000000e-01 + 0.00e00j, - -1.25000000e-01 + 0.00e00j, - 1.83058262e-02 - 1.50e-18j, - -1.50888348e-01 - 1.50e-18j, - -1.01332521e-01 + 2.50e-19j, - -8.83883476e-02 - 1.00e-18j, - -2.28822827e-02 - 1.00e-18j, - -1.16957521e-01 + 1.00e-18j, - -1.97208130e-01 + 0.00e00j, - -1.79457521e-01 + 1.25e-18j, - ], - [ - -6.25000000e-02 + 0.00e00j, - -6.25000000e-02 + 0.00e00j, - -1.06694174e-01 + 1.25e-18j, - 1.83058262e-02 - 1.50e-18j, - -1.56250000e-02 + 0.00e00j, - -2.20970869e-02 - 2.00e-18j, - 1.48992717e-01 - 1.00e-18j, - 2.60000000e-17 - 1.50e-18j, - -6.69614673e-02 - 5.00e-19j, - 2.00051576e-01 + 5.00e-19j, - 1.13640168e-01 + 1.25e-18j, - -4.83780325e-02 - 1.00e-18j, - ], - [ - 8.83883476e-02 - 1.25e-18j, - -8.83883476e-02 + 4.00e-18j, - -6.25000000e-02 + 1.75e-18j, - -1.50888348e-01 - 1.50e-18j, - -2.20970869e-02 - 2.00e-18j, - -3.12500000e-02 + 0.00e00j, - -2.85691738e-02 + 4.25e-18j, - 1.76776695e-01 + 0.00e00j, - 5.52427173e-03 + 1.00e-18j, - -1.29346478e-01 + 5.00e-19j, - -4.81004238e-02 + 4.25e-18j, - 5.27918696e-02 + 2.50e-19j, - ], - [ - 1.69194174e-01 + 2.25e-18j, - 4.41941738e-02 - 1.25e-18j, - -1.01332521e-01 + 7.50e-19j, - -1.01332521e-01 + 2.50e-19j, - 1.48992717e-01 - 1.00e-18j, - -2.85691738e-02 + 4.25e-18j, - -2.61183262e-02 + 0.00e00j, - -6.88900000e-33 + 0.00e00j, - 6.62099510e-02 - 1.00e-18j, - -2.90767610e-02 + 1.75e-18j, - -1.24942505e-01 + 0.00e00j, - -1.72430217e-02 + 2.50e-19j, - ], - [ - 8.83883476e-02 - 2.50e-19j, - 1.76776695e-01 - 2.50e-19j, - 4.67500000e-17 - 7.50e-19j, - -8.83883476e-02 - 1.00e-18j, - 2.60000000e-17 - 1.50e-18j, - 1.76776695e-01 + 0.00e00j, - -6.88900000e-33 + 0.00e00j, - -6.88900000e-33 + 0.00e00j, - 1.79457521e-01 - 1.75e-18j, - -5.33470869e-02 + 2.00e-18j, - -9.56456304e-02 + 3.00e-18j, - -1.32582521e-01 + 2.50e-19j, - ], - [ - -7.27633476e-02 + 0.00e00j, - 7.27633476e-02 - 7.50e-19j, - 1.75206304e-02 + 5.00e-19j, - -2.28822827e-02 - 1.00e-18j, - -6.69614673e-02 - 5.00e-19j, - 5.52427173e-03 + 1.00e-18j, - 6.62099510e-02 - 1.00e-18j, - 1.79457521e-01 - 1.75e-18j, - -5.47162473e-02 + 0.00e00j, - -4.20854047e-02 + 4.00e-18j, - -7.75494553e-02 - 2.50e-18j, - -2.49573723e-02 + 7.50e-19j, - ], - [ - 9.75412607e-02 + 7.50e-19j, - -9.75412607e-02 - 7.50e-19j, - -8.57075215e-02 - 1.00e-18j, - -1.16957521e-01 + 1.00e-18j, - 2.00051576e-01 + 5.00e-19j, - -1.29346478e-01 + 5.00e-19j, - -2.90767610e-02 + 1.75e-18j, - -5.33470869e-02 + 2.00e-18j, - -4.20854047e-02 + 4.00e-18j, - -3.23702991e-02 + 0.00e00j, - -4.70257118e-02 + 0.00e00j, - 1.22539288e-01 - 2.25e-18j, - ], - [ - 1.48398042e-02 - 1.75e-18j, - 1.10485435e-02 - 7.50e-19j, - -1.63277304e-01 + 1.00e-18j, - -1.97208130e-01 + 0.00e00j, - 1.13640168e-01 + 1.25e-18j, - -4.81004238e-02 + 4.25e-18j, - -1.24942505e-01 + 0.00e00j, - -9.56456304e-02 + 3.00e-18j, - -7.75494553e-02 - 2.50e-18j, - -4.70257118e-02 + 0.00e00j, - -6.83162540e-02 + 0.00e00j, - -2.78870598e-02 + 0.00e00j, - ], - [ - -9.75412607e-02 + 3.75e-18j, - 2.74587393e-02 + 2.50e-19j, - -1.56250000e-02 + 0.00e00j, - -1.79457521e-01 + 1.25e-18j, - -4.83780325e-02 - 1.00e-18j, - 5.27918696e-02 + 2.50e-19j, - -1.72430217e-02 + 2.50e-19j, - -1.32582521e-01 + 2.50e-19j, - -2.49573723e-02 + 7.50e-19j, - 1.22539288e-01 - 2.25e-18j, - -2.78870598e-02 + 0.00e00j, - -1.13836467e-02 + 0.00e00j, - ], -] diff --git a/test/python/algorithms/evolvers/variational/variational_principles/imaginary/__init__.py b/test/python/algorithms/evolvers/variational/variational_principles/imaginary/__init__.py deleted file mode 100644 index b3ac36d2a6d9..000000000000 --- a/test/python/algorithms/evolvers/variational/variational_principles/imaginary/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. diff --git a/test/python/algorithms/evolvers/variational/variational_principles/imaginary/test_imaginary_mc_lachlan_principle.py b/test/python/algorithms/evolvers/variational/variational_principles/imaginary/test_imaginary_mc_lachlan_principle.py deleted file mode 100644 index 5118a9a699a4..000000000000 --- a/test/python/algorithms/evolvers/variational/variational_principles/imaginary/test_imaginary_mc_lachlan_principle.py +++ /dev/null @@ -1,111 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. - -"""Test imaginary McLachlan's variational principle.""" - -import unittest -from test.python.algorithms import QiskitAlgorithmsTestCase -import numpy as np - -from qiskit.algorithms.evolvers.variational import ( - ImaginaryMcLachlanPrinciple, -) -from qiskit.circuit.library import EfficientSU2 -from qiskit.opflow import SummedOp, X, Y, I, Z -from ..expected_results.test_imaginary_mc_lachlan_variational_principle_expected1 import ( - expected_bound_metric_tensor_1, -) - - -class TestImaginaryMcLachlanPrinciple(QiskitAlgorithmsTestCase): - """Test imaginary McLachlan's variational principle.""" - - def test_calc_metric_tensor(self): - """Test calculating a metric tensor.""" - observable = SummedOp( - [ - 0.2252 * (I ^ I), - 0.5716 * (Z ^ Z), - 0.3435 * (I ^ Z), - -0.4347 * (Z ^ I), - 0.091 * (Y ^ Y), - 0.091 * (X ^ X), - ] - ) - - d = 2 - ansatz = EfficientSU2(observable.num_qubits, reps=d) - - # Define a set of initial parameters - parameters = list(ansatz.parameters) - param_dict = {param: np.pi / 4 for param in parameters} - var_principle = ImaginaryMcLachlanPrinciple() - - bound_metric_tensor = var_principle.metric_tensor( - ansatz, parameters, parameters, param_dict.values(), None, None - ) - - np.testing.assert_almost_equal(bound_metric_tensor, expected_bound_metric_tensor_1) - - def test_calc_calc_evolution_grad(self): - """Test calculating evolution gradient.""" - observable = SummedOp( - [ - 0.2252 * (I ^ I), - 0.5716 * (Z ^ Z), - 0.3435 * (I ^ Z), - -0.4347 * (Z ^ I), - 0.091 * (Y ^ Y), - 0.091 * (X ^ X), - ] - ) - - d = 2 - ansatz = EfficientSU2(observable.num_qubits, reps=d) - - # Define a set of initial parameters - parameters = list(ansatz.parameters) - param_dict = {param: np.pi / 4 for param in parameters} - var_principle = ImaginaryMcLachlanPrinciple() - - bound_evolution_grad = var_principle.evolution_grad( - observable, - ansatz, - None, - param_dict, - parameters, - parameters, - param_dict.values(), - None, - None, - ) - - expected_bound_evolution_grad = [ - (0.19308934095957098 - 1.4e-17j), - (0.007027674650099142 - 0j), - (0.03192524520091862 - 0j), - (-0.06810314606309673 - 1e-18j), - (0.07590371669521798 - 7e-18j), - (0.11891968269385343 + 1.5e-18j), - (-0.0012030273438232639 + 0j), - (-0.049885258804562266 + 1.8500000000000002e-17j), - (-0.20178860797540302 - 5e-19j), - (-0.0052269232310933195 + 1e-18j), - (0.022892905637005266 - 3e-18j), - (-0.022892905637005294 + 3.5e-18j), - ] - - np.testing.assert_almost_equal(bound_evolution_grad, expected_bound_evolution_grad) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/python/algorithms/evolvers/variational/variational_principles/real/__init__.py b/test/python/algorithms/evolvers/variational/variational_principles/real/__init__.py deleted file mode 100644 index b3ac36d2a6d9..000000000000 --- a/test/python/algorithms/evolvers/variational/variational_principles/real/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. diff --git a/test/python/algorithms/evolvers/variational/variational_principles/real/test_real_mc_lachlan_principle.py b/test/python/algorithms/evolvers/variational/variational_principles/real/test_real_mc_lachlan_principle.py deleted file mode 100644 index 13c126928bdb..000000000000 --- a/test/python/algorithms/evolvers/variational/variational_principles/real/test_real_mc_lachlan_principle.py +++ /dev/null @@ -1,114 +0,0 @@ -# This code is part of Qiskit. -# -# (C) Copyright IBM 2021, 2022. -# -# This code is licensed under the Apache License, Version 2.0. You may -# obtain a copy of this license in the LICENSE.txt file in the root directory -# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -# -# Any modifications or derivative works of this code must retain this -# copyright notice, and modified files need to carry a notice indicating -# that they have been altered from the originals. - -"""Test real McLachlan's variational principle.""" - -import unittest -from test.python.algorithms import QiskitAlgorithmsTestCase -import numpy as np -from qiskit.algorithms.evolvers.variational import ( - RealMcLachlanPrinciple, -) -from qiskit.circuit.library import EfficientSU2 -from qiskit.opflow import SummedOp, X, Y, I, Z -from ..expected_results.test_imaginary_mc_lachlan_variational_principle_expected2 import ( - expected_bound_metric_tensor_2, -) - - -class TestRealMcLachlanPrinciple(QiskitAlgorithmsTestCase): - """Test real McLachlan's variational principle.""" - - def test_calc_calc_metric_tensor(self): - """Test calculating a metric tensor.""" - observable = SummedOp( - [ - 0.2252 * (I ^ I), - 0.5716 * (Z ^ Z), - 0.3435 * (I ^ Z), - -0.4347 * (Z ^ I), - 0.091 * (Y ^ Y), - 0.091 * (X ^ X), - ] - ) - - d = 2 - ansatz = EfficientSU2(observable.num_qubits, reps=d) - - # Define a set of initial parameters - parameters = list(ansatz.parameters) - param_dict = {param: np.pi / 4 for param in parameters} - var_principle = RealMcLachlanPrinciple() - - bound_metric_tensor = var_principle.metric_tensor( - ansatz, parameters, parameters, list(param_dict.values()), None, None - ) - - np.testing.assert_almost_equal( - bound_metric_tensor, expected_bound_metric_tensor_2, decimal=5 - ) - - def test_calc_evolution_grad(self): - """Test calculating evolution gradient.""" - observable = SummedOp( - [ - 0.2252 * (I ^ I), - 0.5716 * (Z ^ Z), - 0.3435 * (I ^ Z), - -0.4347 * (Z ^ I), - 0.091 * (Y ^ Y), - 0.091 * (X ^ X), - ] - ) - - d = 2 - ansatz = EfficientSU2(observable.num_qubits, reps=d) - - # Define a set of initial parameters - parameters = list(ansatz.parameters) - param_dict = {param: np.pi / 4 for param in parameters} - var_principle = RealMcLachlanPrinciple() - - bound_evolution_grad = var_principle.evolution_grad( - observable, - ansatz, - None, - param_dict, - parameters, - parameters, - list(param_dict.values()), - None, - None, - ) - - expected_bound_evolution_grad = [ - (-0.04514911474522546 + 4e-18j), - (0.0963123928027075 - 1.5e-18j), - (0.1365347823673539 - 7e-18j), - (0.004969316401057883 - 4.9999999999999996e-18j), - (-0.003843833929692342 - 4.999999999999998e-19j), - (0.07036988622493834 - 7e-18j), - (0.16560609099860682 - 3.5e-18j), - (0.16674183768051887 + 1e-18j), - (-0.03843296670360974 - 6e-18j), - (0.08891074158680243 - 6e-18j), - (0.06425681697616654 + 7e-18j), - (-0.03172376682078948 - 7e-18j), - ] - - np.testing.assert_almost_equal( - bound_evolution_grad, expected_bound_evolution_grad, decimal=5 - ) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/python/algorithms/evolvers/variational/solvers/ode/__init__.py b/test/python/algorithms/minimum_eigensolvers/__init__.py similarity index 93% rename from test/python/algorithms/evolvers/variational/solvers/ode/__init__.py rename to test/python/algorithms/minimum_eigensolvers/__init__.py index b3ac36d2a6d9..fdb172d367f0 100644 --- a/test/python/algorithms/evolvers/variational/solvers/ode/__init__.py +++ b/test/python/algorithms/minimum_eigensolvers/__init__.py @@ -1,6 +1,6 @@ # This code is part of Qiskit. # -# (C) Copyright IBM 2021, 2022. +# (C) Copyright IBM 2022. # # This code is licensed under the Apache License, Version 2.0. You may # obtain a copy of this license in the LICENSE.txt file in the root directory diff --git a/test/python/algorithms/minimum_eigensolvers/test_numpy_minimum_eigensolver.py b/test/python/algorithms/minimum_eigensolvers/test_numpy_minimum_eigensolver.py new file mode 100644 index 000000000000..8d2212e1d7b3 --- /dev/null +++ b/test/python/algorithms/minimum_eigensolvers/test_numpy_minimum_eigensolver.py @@ -0,0 +1,241 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +""" Test NumPy minimum eigensolver """ + +import unittest +from test.python.algorithms import QiskitAlgorithmsTestCase + +import numpy as np +from ddt import ddt, data + +from qiskit.algorithms.minimum_eigensolvers import NumPyMinimumEigensolver +from qiskit.opflow import PauliSumOp + + +@ddt +class TestNumPyMinimumEigensolver(QiskitAlgorithmsTestCase): + """Test NumPy minimum eigensolver""" + + def setUp(self): + super().setUp() + self.qubit_op = PauliSumOp.from_list( + [ + ("II", -1.052373245772859), + ("ZI", 0.39793742484318045), + ("IZ", -0.39793742484318045), + ("ZZ", -0.01128010425623538), + ("XX", 0.18093119978423156), + ] + ) + + aux_op1 = PauliSumOp.from_list([("II", 2.0)]) + aux_op2 = PauliSumOp.from_list([("II", 0.5), ("ZZ", 0.5), ("YY", 0.5), ("XX", -0.5)]) + self.aux_ops_list = [aux_op1, aux_op2] + self.aux_ops_dict = {"aux_op1": aux_op1, "aux_op2": aux_op2} + + def test_cme(self): + """Basic test""" + algo = NumPyMinimumEigensolver() + result = algo.compute_minimum_eigenvalue( + operator=self.qubit_op, aux_operators=self.aux_ops_list + ) + self.assertAlmostEqual(result.eigenvalue, -1.85727503 + 0j) + self.assertEqual(len(result.aux_operators_evaluated), 2) + np.testing.assert_array_almost_equal(result.aux_operators_evaluated[0], [2, 0]) + np.testing.assert_array_almost_equal(result.aux_operators_evaluated[1], [0, 0]) + + def test_cme_reuse(self): + """Test reuse""" + algo = NumPyMinimumEigensolver() + + with self.subTest("Test with no operator or aux_operators, give via compute method"): + result = algo.compute_minimum_eigenvalue(operator=self.qubit_op) + self.assertEqual(result.eigenvalue.dtype, np.float64) + self.assertAlmostEqual(result.eigenvalue, -1.85727503) + self.assertIsNone(result.aux_operators_evaluated) + + with self.subTest("Test with added aux_operators"): + result = algo.compute_minimum_eigenvalue( + operator=self.qubit_op, aux_operators=self.aux_ops_list + ) + self.assertAlmostEqual(result.eigenvalue, -1.85727503 + 0j) + self.assertEqual(len(result.aux_operators_evaluated), 2) + np.testing.assert_array_almost_equal(result.aux_operators_evaluated[0], [2, 0]) + np.testing.assert_array_almost_equal(result.aux_operators_evaluated[1], [0, 0]) + + with self.subTest("Test with aux_operators removed"): + result = algo.compute_minimum_eigenvalue(operator=self.qubit_op, aux_operators=[]) + self.assertEqual(result.eigenvalue.dtype, np.float64) + self.assertAlmostEqual(result.eigenvalue, -1.85727503) + self.assertIsNone(result.aux_operators_evaluated) + + with self.subTest("Test with aux_operators set again"): + result = algo.compute_minimum_eigenvalue( + operator=self.qubit_op, aux_operators=self.aux_ops_list + ) + self.assertAlmostEqual(result.eigenvalue, -1.85727503 + 0j) + self.assertEqual(len(result.aux_operators_evaluated), 2) + np.testing.assert_array_almost_equal(result.aux_operators_evaluated[0], [2, 0]) + np.testing.assert_array_almost_equal(result.aux_operators_evaluated[1], [0, 0]) + + with self.subTest("Test after setting first aux_operators as main operator"): + result = algo.compute_minimum_eigenvalue( + operator=self.aux_ops_list[0], aux_operators=[] + ) + self.assertAlmostEqual(result.eigenvalue, 2 + 0j) + self.assertIsNone(result.aux_operators_evaluated) + + def test_cme_filter(self): + """Basic test""" + + # define filter criterion + # pylint: disable=unused-argument + def criterion(x, v, a_v): + return v >= -0.5 + + algo = NumPyMinimumEigensolver(filter_criterion=criterion) + result = algo.compute_minimum_eigenvalue( + operator=self.qubit_op, aux_operators=self.aux_ops_list + ) + self.assertAlmostEqual(result.eigenvalue, -0.22491125 + 0j) + self.assertEqual(len(result.aux_operators_evaluated), 2) + np.testing.assert_array_almost_equal(result.aux_operators_evaluated[0], [2, 0]) + np.testing.assert_array_almost_equal(result.aux_operators_evaluated[1], [0, 0]) + + def test_cme_filter_empty(self): + """Test with filter always returning False""" + + # define filter criterion + # pylint: disable=unused-argument + def criterion(x, v, a_v): + return False + + algo = NumPyMinimumEigensolver(filter_criterion=criterion) + result = algo.compute_minimum_eigenvalue( + operator=self.qubit_op, aux_operators=self.aux_ops_list + ) + self.assertEqual(result.eigenvalue, None) + self.assertEqual(result.eigenstate, None) + self.assertEqual(result.aux_operators_evaluated, None) + + @data("X", "Y", "Z") + def test_cme_1q(self, op): + """Test for 1 qubit operator""" + algo = NumPyMinimumEigensolver() + operator = PauliSumOp.from_list([(op, 1.0)]) + result = algo.compute_minimum_eigenvalue(operator=operator) + self.assertAlmostEqual(result.eigenvalue, -1) + + def test_cme_aux_ops_dict(self): + """Test dictionary compatibility of aux_operators""" + # Start with an empty dictionary + algo = NumPyMinimumEigensolver() + + with self.subTest("Test with an empty dictionary."): + result = algo.compute_minimum_eigenvalue(operator=self.qubit_op, aux_operators={}) + self.assertAlmostEqual(result.eigenvalue, -1.85727503 + 0j) + self.assertIsNone(result.aux_operators_evaluated) + + with self.subTest("Test with two auxiliary operators."): + result = algo.compute_minimum_eigenvalue( + operator=self.qubit_op, aux_operators=self.aux_ops_dict + ) + self.assertAlmostEqual(result.eigenvalue, -1.85727503 + 0j) + self.assertEqual(len(result.aux_operators_evaluated), 2) + np.testing.assert_array_almost_equal(result.aux_operators_evaluated["aux_op1"], [2, 0]) + np.testing.assert_array_almost_equal(result.aux_operators_evaluated["aux_op2"], [0, 0]) + + with self.subTest("Test with additional zero and None operators."): + extra_ops = {"None_op": None, "zero_op": 0, **self.aux_ops_dict} + result = algo.compute_minimum_eigenvalue( + operator=self.qubit_op, aux_operators=extra_ops + ) + self.assertAlmostEqual(result.eigenvalue, -1.85727503 + 0j) + self.assertEqual(len(result.aux_operators_evaluated), 3) + np.testing.assert_array_almost_equal(result.aux_operators_evaluated["aux_op1"], [2, 0]) + np.testing.assert_array_almost_equal(result.aux_operators_evaluated["aux_op2"], [0, 0]) + self.assertEqual(result.aux_operators_evaluated["zero_op"], (0.0, 0)) + + def test_aux_operators_list(self): + """Test list-based aux_operators.""" + aux_op1 = PauliSumOp.from_list([("II", 2.0)]) + aux_op2 = PauliSumOp.from_list([("II", 0.5), ("ZZ", 0.5), ("YY", 0.5), ("XX", -0.5)]) + aux_ops = [aux_op1, aux_op2] + algo = NumPyMinimumEigensolver() + + with self.subTest("Test with two auxiliary operators."): + result = algo.compute_minimum_eigenvalue(operator=self.qubit_op, aux_operators=aux_ops) + self.assertAlmostEqual(result.eigenvalue, -1.85727503 + 0j) + self.assertEqual(len(result.aux_operators_evaluated), 2) + # expectation values + self.assertAlmostEqual(result.aux_operators_evaluated[0][0], 2, places=6) + self.assertAlmostEqual(result.aux_operators_evaluated[1][0], 0, places=6) + # standard deviations + self.assertAlmostEqual(result.aux_operators_evaluated[0][1], 0.0) + self.assertAlmostEqual(result.aux_operators_evaluated[1][1], 0.0) + + with self.subTest("Test with additional zero and None operators."): + extra_ops = [*aux_ops, None, 0] + result = algo.compute_minimum_eigenvalue( + operator=self.qubit_op, aux_operators=extra_ops + ) + self.assertAlmostEqual(result.eigenvalue, -1.85727503 + 0j) + self.assertEqual(len(result.aux_operators_evaluated), 4) + # expectation values + self.assertAlmostEqual(result.aux_operators_evaluated[0][0], 2, places=6) + self.assertAlmostEqual(result.aux_operators_evaluated[1][0], 0, places=6) + self.assertIsNone(result.aux_operators_evaluated[2], None) + self.assertEqual(result.aux_operators_evaluated[3][0], 0.0) + # standard deviations + self.assertAlmostEqual(result.aux_operators_evaluated[0][1], 0.0) + self.assertAlmostEqual(result.aux_operators_evaluated[1][1], 0.0) + self.assertEqual(result.aux_operators_evaluated[3][1], 0.0) + + def test_aux_operators_dict(self): + """Test dict-based aux_operators.""" + aux_op1 = PauliSumOp.from_list([("II", 2.0)]) + aux_op2 = PauliSumOp.from_list([("II", 0.5), ("ZZ", 0.5), ("YY", 0.5), ("XX", -0.5)]) + aux_ops = {"aux_op1": aux_op1, "aux_op2": aux_op2} + algo = NumPyMinimumEigensolver() + + with self.subTest("Test with two auxiliary operators."): + result = algo.compute_minimum_eigenvalue(operator=self.qubit_op, aux_operators=aux_ops) + self.assertAlmostEqual(result.eigenvalue, -1.85727503 + 0j) + self.assertEqual(len(result.aux_operators_evaluated), 2) + # expectation values + self.assertAlmostEqual(result.aux_operators_evaluated["aux_op1"][0], 2, places=6) + self.assertAlmostEqual(result.aux_operators_evaluated["aux_op2"][0], 0, places=6) + # standard deviations + self.assertAlmostEqual(result.aux_operators_evaluated["aux_op1"][1], 0.0) + self.assertAlmostEqual(result.aux_operators_evaluated["aux_op2"][1], 0.0) + + with self.subTest("Test with additional zero and None operators."): + extra_ops = {**aux_ops, "None_operator": None, "zero_operator": 0} + result = algo.compute_minimum_eigenvalue( + operator=self.qubit_op, aux_operators=extra_ops + ) + self.assertAlmostEqual(result.eigenvalue, -1.85727503 + 0j) + self.assertEqual(len(result.aux_operators_evaluated), 3) + # expectation values + self.assertAlmostEqual(result.aux_operators_evaluated["aux_op1"][0], 2, places=6) + self.assertAlmostEqual(result.aux_operators_evaluated["aux_op2"][0], 0, places=6) + self.assertEqual(result.aux_operators_evaluated["zero_operator"][0], 0.0) + self.assertTrue("None_operator" not in result.aux_operators_evaluated.keys()) + # standard deviations + self.assertAlmostEqual(result.aux_operators_evaluated["aux_op1"][1], 0.0) + self.assertAlmostEqual(result.aux_operators_evaluated["aux_op2"][1], 0.0) + self.assertAlmostEqual(result.aux_operators_evaluated["zero_operator"][1], 0.0) + + +if __name__ == "__main__": + unittest.main() diff --git a/test/python/algorithms/minimum_eigensolvers/test_vqe.py b/test/python/algorithms/minimum_eigensolvers/test_vqe.py new file mode 100644 index 000000000000..1ecc870237ec --- /dev/null +++ b/test/python/algorithms/minimum_eigensolvers/test_vqe.py @@ -0,0 +1,444 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""Test the variational quantum eigensolver algorithm.""" + +import unittest +from test.python.algorithms import QiskitAlgorithmsTestCase + +from functools import partial +import numpy as np +from scipy.optimize import minimize as scipy_minimize +from ddt import data, ddt + +from qiskit import QuantumCircuit +from qiskit.algorithms import AlgorithmError +from qiskit.algorithms.gradients import ParamShiftEstimatorGradient +from qiskit.algorithms.minimum_eigensolvers import VQE +from qiskit.algorithms.optimizers import ( + CG, + COBYLA, + GradientDescent, + L_BFGS_B, + OptimizerResult, + P_BFGS, + QNSPSA, + SLSQP, + SPSA, + TNC, +) +from qiskit.algorithms.state_fidelities import ComputeUncompute +from qiskit.circuit.library import RealAmplitudes, TwoLocal +from qiskit.opflow import PauliSumOp, TwoQubitReduction +from qiskit.quantum_info import SparsePauliOp, Operator, Pauli +from qiskit.primitives import Estimator, Sampler +from qiskit.utils import algorithm_globals + +# pylint: disable=invalid-name +def _mock_optimizer(fun, x0, jac=None, bounds=None, inputs=None) -> OptimizerResult: + """A mock of a callable that can be used as minimizer in the VQE.""" + result = OptimizerResult() + result.x = np.zeros_like(x0) + result.fun = fun(result.x) + result.nit = 0 + + if inputs is not None: + inputs.update({"fun": fun, "x0": x0, "jac": jac, "bounds": bounds}) + return result + + +@ddt +class TestVQE(QiskitAlgorithmsTestCase): + """Test VQE""" + + def setUp(self): + super().setUp() + self.seed = 50 + algorithm_globals.random_seed = self.seed + self.h2_op = SparsePauliOp( + ["II", "IZ", "ZI", "ZZ", "XX"], + coeffs=[ + -1.052373245772859, + 0.39793742484318045, + -0.39793742484318045, + -0.01128010425623538, + 0.18093119978423156, + ], + ) + self.h2_energy = -1.85727503 + + self.ryrz_wavefunction = TwoLocal(rotation_blocks=["ry", "rz"], entanglement_blocks="cz") + self.ry_wavefunction = TwoLocal(rotation_blocks="ry", entanglement_blocks="cz") + + @data(L_BFGS_B(), COBYLA()) + def test_basic_aer_statevector(self, estimator): + """Test VQE using reference Estimator.""" + vqe = VQE(Estimator(), self.ryrz_wavefunction, estimator) + + result = vqe.compute_minimum_eigenvalue(operator=self.h2_op) + + with self.subTest(msg="test eigenvalue"): + self.assertAlmostEqual(result.eigenvalue.real, self.h2_energy, places=5) + + with self.subTest(msg="test optimal_value"): + self.assertAlmostEqual(result.optimal_value, self.h2_energy) + + with self.subTest(msg="test dimension of optimal point"): + self.assertEqual(len(result.optimal_point), 16) + + with self.subTest(msg="assert cost_function_evals is set"): + self.assertIsNotNone(result.cost_function_evals) + + with self.subTest(msg="assert optimizer_time is set"): + self.assertIsNotNone(result.optimizer_time) + + with self.subTest(msg="assert optimizer_result is set"): + self.assertIsNotNone(result.optimizer_result) + + with self.subTest(msg="assert optimizer_result."): + self.assertAlmostEqual(result.optimizer_result.fun, self.h2_energy, places=5) + + def test_invalid_initial_point(self): + """Test the proper error is raised when the initial point has the wrong size.""" + ansatz = self.ryrz_wavefunction + initial_point = np.array([1]) + + vqe = VQE( + Estimator(), + ansatz, + SLSQP(), + initial_point=initial_point, + ) + + with self.assertRaises(ValueError): + _ = vqe.compute_minimum_eigenvalue(operator=self.h2_op) + + def test_ansatz_resize(self): + """Test the ansatz is properly resized if it's a blueprint circuit.""" + ansatz = RealAmplitudes(1, reps=1) + vqe = VQE(Estimator(), ansatz, SLSQP()) + result = vqe.compute_minimum_eigenvalue(self.h2_op) + self.assertAlmostEqual(result.eigenvalue.real, self.h2_energy, places=5) + + def test_invalid_ansatz_size(self): + """Test an error is raised if the ansatz has the wrong number of qubits.""" + ansatz = QuantumCircuit(1) + ansatz.compose(RealAmplitudes(1, reps=2)) + vqe = VQE(Estimator(), ansatz, SLSQP()) + + with self.assertRaises(AlgorithmError): + _ = vqe.compute_minimum_eigenvalue(operator=self.h2_op) + + def test_missing_ansatz_params(self): + """Test specifying an ansatz with no parameters raises an error.""" + ansatz = QuantumCircuit(self.h2_op.num_qubits) + vqe = VQE(Estimator(), ansatz, SLSQP()) + with self.assertRaises(AlgorithmError): + vqe.compute_minimum_eigenvalue(operator=self.h2_op) + + def test_max_evals_grouped(self): + """Test with SLSQP with max_evals_grouped.""" + optimizer = SLSQP(maxiter=50, max_evals_grouped=5) + vqe = VQE( + Estimator(), + self.ryrz_wavefunction, + optimizer, + ) + result = vqe.compute_minimum_eigenvalue(operator=self.h2_op) + self.assertAlmostEqual(result.eigenvalue.real, self.h2_energy, places=5) + + @data( + CG(), + L_BFGS_B(), + P_BFGS(), + SLSQP(), + TNC(), + ) + def test_with_gradient(self, optimizer): + """Test VQE using gradient primitive.""" + estimator = Estimator() + vqe = VQE( + estimator, + self.ry_wavefunction, + optimizer, + gradient=ParamShiftEstimatorGradient(estimator), + ) + result = vqe.compute_minimum_eigenvalue(operator=self.h2_op) + self.assertAlmostEqual(result.eigenvalue.real, self.h2_energy, places=5) + + def test_gradient_passed(self): + """Test the gradient is properly passed into the optimizer.""" + inputs = {} + estimator = Estimator() + vqe = VQE( + estimator, + RealAmplitudes(), + partial(_mock_optimizer, inputs=inputs), + gradient=ParamShiftEstimatorGradient(estimator), + ) + _ = vqe.compute_minimum_eigenvalue(operator=self.h2_op) + + self.assertIsNotNone(inputs["jac"]) + + def test_gradient_run(self): + """Test using the gradient to calculate the minimum.""" + estimator = Estimator() + vqe = VQE( + estimator, + RealAmplitudes(), + GradientDescent(maxiter=200, learning_rate=0.1), + gradient=ParamShiftEstimatorGradient(estimator), + ) + result = vqe.compute_minimum_eigenvalue(operator=self.h2_op) + self.assertAlmostEqual(result.eigenvalue.real, self.h2_energy, places=5) + + def test_with_two_qubit_reduction(self): + """Test the VQE using TwoQubitReduction.""" + qubit_op = PauliSumOp.from_list( + [ + ("IIII", -0.8105479805373266), + ("IIIZ", 0.17218393261915552), + ("IIZZ", -0.22575349222402472), + ("IZZI", 0.1721839326191556), + ("ZZII", -0.22575349222402466), + ("IIZI", 0.1209126326177663), + ("IZZZ", 0.16892753870087912), + ("IXZX", -0.045232799946057854), + ("ZXIX", 0.045232799946057854), + ("IXIX", 0.045232799946057854), + ("ZXZX", -0.045232799946057854), + ("ZZIZ", 0.16614543256382414), + ("IZIZ", 0.16614543256382414), + ("ZZZZ", 0.17464343068300453), + ("ZIZI", 0.1209126326177663), + ] + ) + tapered_qubit_op = TwoQubitReduction(num_particles=2).convert(qubit_op) + vqe = VQE( + Estimator(), + self.ry_wavefunction, + SPSA(maxiter=300, last_avg=5), + ) + result = vqe.compute_minimum_eigenvalue(tapered_qubit_op) + self.assertAlmostEqual(result.eigenvalue.real, self.h2_energy, places=2) + + def test_callback(self): + """Test the callback on VQE.""" + history = {"eval_count": [], "parameters": [], "mean": [], "metadata": []} + # expected_shots = options["shots"] if "shots" in options else 0 + + def store_intermediate_result(eval_count, parameters, mean, metadata): + history["eval_count"].append(eval_count) + history["parameters"].append(parameters) + history["mean"].append(mean) + history["metadata"].append(metadata) + + optimizer = COBYLA(maxiter=3) + wavefunction = self.ry_wavefunction + + estimator = Estimator() + + vqe = VQE( + estimator, + wavefunction, + optimizer, + callback=store_intermediate_result, + ) + vqe.compute_minimum_eigenvalue(operator=self.h2_op) + + self.assertTrue(all(isinstance(count, int) for count in history["eval_count"])) + self.assertTrue(all(isinstance(mean, float) for mean in history["mean"])) + self.assertTrue(all(isinstance(metadata, dict) for metadata in history["metadata"])) + for params in history["parameters"]: + self.assertTrue(all(isinstance(param, float) for param in params)) + + def test_reuse(self): + """Test re-using a VQE algorithm instance.""" + ansatz = TwoLocal(rotation_blocks=["ry", "rz"], entanglement_blocks="cz") + vqe = VQE(Estimator(), ansatz, SLSQP(maxiter=300)) + with self.subTest(msg="assert VQE works once all info is available"): + result = vqe.compute_minimum_eigenvalue(operator=self.h2_op) + self.assertAlmostEqual(result.eigenvalue.real, self.h2_energy, places=5) + + operator = Operator(np.array([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 2, 0], [0, 0, 0, 3]])) + + with self.subTest(msg="assert vqe works on re-use."): + result = vqe.compute_minimum_eigenvalue(operator=operator) + self.assertAlmostEqual(result.eigenvalue.real, -1.0, places=5) + + def test_vqe_optimizer_reuse(self): + """Test running same VQE twice to re-use optimizer, then switch optimizer""" + vqe = VQE( + Estimator(), + self.ryrz_wavefunction, + SLSQP(), + ) + + def run_check(): + result = vqe.compute_minimum_eigenvalue(operator=self.h2_op) + self.assertAlmostEqual(result.eigenvalue.real, self.h2_energy, places=5) + + run_check() + + with self.subTest("Optimizer re-use."): + run_check() + + with self.subTest("Optimizer replace."): + vqe.optimizer = L_BFGS_B() + run_check() + + def test_batch_evaluate_with_qnspsa(self): + """Test batch evaluating with QNSPSA works.""" + ansatz = TwoLocal(2, rotation_blocks=["ry", "rz"], entanglement_blocks="cz") + + wrapped_sampler = Sampler() + inner_sampler = Sampler() + + wrapped_estimator = Estimator() + inner_estimator = Estimator() + + callcount = {"sampler": 0, "estimator": 0} + + def wrapped_estimator_run(*args, **kwargs): + kwargs["callcount"]["estimator"] += 1 + return inner_estimator.run(*args, **kwargs) + + def wrapped_sampler_run(*args, **kwargs): + kwargs["callcount"]["sampler"] += 1 + return inner_sampler.run(*args, **kwargs) + + wrapped_estimator.run = partial(wrapped_estimator_run, callcount=callcount) + wrapped_sampler.run = partial(wrapped_sampler_run, callcount=callcount) + + fidelity = ComputeUncompute(wrapped_sampler) + + def fidelity_callable(left, right): + batchsize = np.asarray(left).shape[0] + job = fidelity.run(batchsize * [ansatz], batchsize * [ansatz], left, right) + return job.result().fidelities + + qnspsa = QNSPSA(fidelity_callable, maxiter=5) + qnspsa.set_max_evals_grouped(100) + + vqe = VQE( + wrapped_estimator, + ansatz, + qnspsa, + ) + _ = vqe.compute_minimum_eigenvalue(Pauli("ZZ")) + + # 5 (fidelity) + expected_sampler_runs = 5 + # 1 calibration + 1 stddev estimation + 1 initial blocking + # + 5 (1 loss + 1 blocking) + 1 return loss + expected_estimator_runs = 1 + 1 + 1 + 5 * 2 + 1 + + self.assertEqual(callcount["sampler"], expected_sampler_runs) + self.assertEqual(callcount["estimator"], expected_estimator_runs) + + def test_optimizer_scipy_callable(self): + """Test passing a SciPy optimizer directly as callable.""" + vqe = VQE( + Estimator(), + self.ryrz_wavefunction, + partial(scipy_minimize, method="L-BFGS-B", options={"maxiter": 10}), + ) + result = vqe.compute_minimum_eigenvalue(self.h2_op) + self.assertAlmostEqual(result.eigenvalue.real, self.h2_energy, places=2) + + def test_optimizer_callable(self): + """Test passing a optimizer directly as callable.""" + ansatz = RealAmplitudes(1, reps=1) + vqe = VQE(Estimator(), ansatz, _mock_optimizer) + result = vqe.compute_minimum_eigenvalue(SparsePauliOp("Z")) + self.assertTrue(np.all(result.optimal_point == np.zeros(ansatz.num_parameters))) + + def test_aux_operators_list(self): + """Test list-based aux_operators.""" + vqe = VQE(Estimator(), self.ry_wavefunction, SLSQP(maxiter=300)) + + with self.subTest("Test with an empty list."): + result = vqe.compute_minimum_eigenvalue(self.h2_op, aux_operators=[]) + self.assertAlmostEqual(result.eigenvalue.real, self.h2_energy, places=6) + self.assertIsInstance(result.aux_operators_evaluated, list) + self.assertEqual(len(result.aux_operators_evaluated), 0) + + with self.subTest("Test with two auxiliary operators."): + aux_op1 = PauliSumOp.from_list([("II", 2.0)]) + aux_op2 = PauliSumOp.from_list([("II", 0.5), ("ZZ", 0.5), ("YY", 0.5), ("XX", -0.5)]) + aux_ops = [aux_op1, aux_op2] + result = vqe.compute_minimum_eigenvalue(self.h2_op, aux_operators=aux_ops) + self.assertAlmostEqual(result.eigenvalue.real, self.h2_energy, places=5) + self.assertEqual(len(result.aux_operators_evaluated), 2) + # expectation values + self.assertAlmostEqual(result.aux_operators_evaluated[0][0], 2.0, places=6) + self.assertAlmostEqual(result.aux_operators_evaluated[1][0], 0.0, places=6) + # metadata + self.assertIsInstance(result.aux_operators_evaluated[0][1], dict) + self.assertIsInstance(result.aux_operators_evaluated[1][1], dict) + + with self.subTest("Test with additional zero operator."): + extra_ops = [*aux_ops, 0] + result = vqe.compute_minimum_eigenvalue(self.h2_op, aux_operators=extra_ops) + self.assertAlmostEqual(result.eigenvalue.real, self.h2_energy, places=5) + self.assertEqual(len(result.aux_operators_evaluated), 3) + # expectation values + self.assertAlmostEqual(result.aux_operators_evaluated[0][0], 2.0, places=6) + self.assertAlmostEqual(result.aux_operators_evaluated[1][0], 0.0, places=6) + self.assertAlmostEqual(result.aux_operators_evaluated[2][0], 0.0) + # metadata + self.assertIsInstance(result.aux_operators_evaluated[0][1], dict) + self.assertIsInstance(result.aux_operators_evaluated[1][1], dict) + self.assertIsInstance(result.aux_operators_evaluated[2][1], dict) + + def test_aux_operators_dict(self): + """Test dictionary compatibility of aux_operators""" + vqe = VQE(Estimator(), self.ry_wavefunction, SLSQP(maxiter=300)) + + with self.subTest("Test with an empty dictionary."): + result = vqe.compute_minimum_eigenvalue(self.h2_op, aux_operators={}) + self.assertAlmostEqual(result.eigenvalue.real, self.h2_energy, places=6) + self.assertIsInstance(result.aux_operators_evaluated, dict) + self.assertEqual(len(result.aux_operators_evaluated), 0) + + with self.subTest("Test with two auxiliary operators."): + aux_op1 = PauliSumOp.from_list([("II", 2.0)]) + aux_op2 = PauliSumOp.from_list([("II", 0.5), ("ZZ", 0.5), ("YY", 0.5), ("XX", -0.5)]) + aux_ops = {"aux_op1": aux_op1, "aux_op2": aux_op2} + result = vqe.compute_minimum_eigenvalue(self.h2_op, aux_operators=aux_ops) + self.assertAlmostEqual(result.eigenvalue.real, self.h2_energy, places=6) + self.assertEqual(len(result.aux_operators_evaluated), 2) + + # expectation values + self.assertAlmostEqual(result.aux_operators_evaluated["aux_op1"][0], 2.0, places=5) + self.assertAlmostEqual(result.aux_operators_evaluated["aux_op2"][0], 0.0, places=5) + # metadata + self.assertIsInstance(result.aux_operators_evaluated["aux_op1"][1], dict) + self.assertIsInstance(result.aux_operators_evaluated["aux_op2"][1], dict) + + with self.subTest("Test with additional zero operator."): + extra_ops = {**aux_ops, "zero_operator": 0} + result = vqe.compute_minimum_eigenvalue(self.h2_op, aux_operators=extra_ops) + self.assertAlmostEqual(result.eigenvalue.real, self.h2_energy, places=6) + self.assertEqual(len(result.aux_operators_evaluated), 3) + # expectation values + self.assertAlmostEqual(result.aux_operators_evaluated["aux_op1"][0], 2.0, places=5) + self.assertAlmostEqual(result.aux_operators_evaluated["aux_op2"][0], 0.0, places=5) + self.assertAlmostEqual(result.aux_operators_evaluated["zero_operator"][0], 0.0) + # metadata + self.assertIsInstance(result.aux_operators_evaluated["aux_op1"][1], dict) + self.assertIsInstance(result.aux_operators_evaluated["aux_op2"][1], dict) + self.assertIsInstance(result.aux_operators_evaluated["zero_operator"][1], dict) + + +if __name__ == "__main__": + unittest.main() diff --git a/test/python/algorithms/optimizers/test_optimizers_scikitquant.py b/test/python/algorithms/optimizers/test_optimizers_scikitquant.py index b355232ba372..63dd95c44a84 100644 --- a/test/python/algorithms/optimizers/test_optimizers_scikitquant.py +++ b/test/python/algorithms/optimizers/test_optimizers_scikitquant.py @@ -13,8 +13,10 @@ """ Test of scikit-quant optimizers. """ import unittest - from test.python.algorithms import QiskitAlgorithmsTestCase + +from ddt import ddt, data, unpack + from qiskit import BasicAer from qiskit.circuit.library import RealAmplitudes from qiskit.utils import QuantumInstance, algorithm_globals @@ -24,6 +26,7 @@ from qiskit.algorithms.optimizers import BOBYQA, SNOBFIT, IMFIL +@ddt class TestOptimizers(QiskitAlgorithmsTestCase): """Test scikit-quant optimizers.""" @@ -68,6 +71,21 @@ def test_snobfit(self): except MissingOptionalLibraryError as ex: self.skipTest(str(ex)) + @data((None,), ([(-1, 1), (None, None)],)) + @unpack + def test_snobfit_missing_bounds(self, bounds): + """SNOBFIT optimizer test with missing bounds.""" + try: + optimizer = SNOBFIT() + with self.assertRaises(ValueError): + optimizer.minimize( + fun=lambda _: 1, # using dummy function (never called) + x0=[0.1, 0.1], # dummy initial point + bounds=bounds, + ) + except MissingOptionalLibraryError as ex: + self.skipTest(str(ex)) + def test_imfil(self): """IMFIL test.""" try: diff --git a/test/python/algorithms/state_fidelities/test_compute_uncompute.py b/test/python/algorithms/state_fidelities/test_compute_uncompute.py index d4a605dbb964..99eceb253828 100644 --- a/test/python/algorithms/state_fidelities/test_compute_uncompute.py +++ b/test/python/algorithms/state_fidelities/test_compute_uncompute.py @@ -21,7 +21,6 @@ from qiskit.primitives import Sampler from qiskit.algorithms.state_fidelities import ComputeUncompute from qiskit.test import QiskitTestCase -from qiskit import QiskitError class TestComputeUncompute(QiskitTestCase): @@ -93,6 +92,10 @@ def test_no_params(self): results = job.result() np.testing.assert_allclose(results.fidelities, np.array([0.25]), atol=1e-16) + job = fidelity.run([self._circuit[2]], [self._circuit[3]], [], []) + results = job.result() + np.testing.assert_allclose(results.fidelities, np.array([0.25]), atol=1e-16) + def test_left_param(self): """test for fidelity with only left parameters""" fidelity = ComputeUncompute(self._sampler) @@ -138,34 +141,6 @@ def test_circuit_mismatch(self): ) job.result() - def test_param_mismatch(self): - """test for fidelity with different number of left/right parameters that - do not match the circuits'.""" - - fidelity = ComputeUncompute(self._sampler) - n = len(self._left_params) - with self.assertRaises(QiskitError): - job = fidelity.run( - [self._circuit[0]] * n, - [self._circuit[1]] * n, - self._left_params, - self._right_params[:-2], - ) - job.result() - - with self.assertRaises(QiskitError): - job = fidelity.run( - [self._circuit[0]] * n, - [self._circuit[1]] * n, - self._left_params[:-2], - self._right_params[:-2], - ) - job.result() - - with self.assertRaises(ValueError): - job = fidelity.run([self._circuit[0]] * n, [self._circuit[1]] * n) - job.result() - def test_asymmetric_params(self): """test for fidelity when the 2 circuits have different number of left/right parameters.""" @@ -212,6 +187,61 @@ def test_input_format(self): np.testing.assert_allclose(result_1.fidelities, result_3.fidelities, atol=1e-16) np.testing.assert_allclose(result_1.fidelities, result_4.fidelities, atol=1e-16) + def test_input_measurements(self): + """test for fidelity with measurements on input circuits""" + fidelity = ComputeUncompute(self._sampler) + circuit_1 = self._circuit[0] + circuit_1.measure_all() + circuit_2 = self._circuit[1] + circuit_2.measure_all() + + job = fidelity.run(circuit_1, circuit_2, self._left_params[0], self._right_params[0]) + result = job.result() + np.testing.assert_allclose(result.fidelities, np.array([1.0])) + + def test_options(self): + """Test fidelity's run options""" + sampler_shots = Sampler(options={"shots": 1024}) + + with self.subTest("sampler"): + # Only options in sampler + fidelity = ComputeUncompute(sampler_shots) + options = fidelity.options + job = fidelity.run(self._circuit[2], self._circuit[3]) + result = job.result() + self.assertEqual(options.__dict__, {"shots": 1024}) + self.assertEqual(result.options.__dict__, {"shots": 1024}) + + with self.subTest("fidelity init"): + # Fidelity default options override sampler + # options and add new fields + fidelity = ComputeUncompute(sampler_shots, options={"shots": 2048, "dummy": 100}) + options = fidelity.options + job = fidelity.run(self._circuit[2], self._circuit[3]) + result = job.result() + self.assertEqual(options.__dict__, {"shots": 2048, "dummy": 100}) + self.assertEqual(result.options.__dict__, {"shots": 2048, "dummy": 100}) + + with self.subTest("fidelity update"): + # Update fidelity options + fidelity = ComputeUncompute(sampler_shots, options={"shots": 2048, "dummy": 100}) + fidelity.update_default_options(shots=100) + options = fidelity.options + job = fidelity.run(self._circuit[2], self._circuit[3]) + result = job.result() + self.assertEqual(options.__dict__, {"shots": 100, "dummy": 100}) + self.assertEqual(result.options.__dict__, {"shots": 100, "dummy": 100}) + + with self.subTest("fidelity run"): + # Run options override fidelity options + fidelity = ComputeUncompute(sampler_shots, options={"shots": 2048, "dummy": 100}) + job = fidelity.run(self._circuit[2], self._circuit[3], shots=50, dummy=None) + options = fidelity.options + result = job.result() + # Only default + sampler options. Not run. + self.assertEqual(options.__dict__, {"shots": 2048, "dummy": 100}) + self.assertEqual(result.options.__dict__, {"shots": 50, "dummy": None}) + if __name__ == "__main__": unittest.main() diff --git a/test/python/algorithms/test_amplitude_estimators.py b/test/python/algorithms/test_amplitude_estimators.py index 0b41e863aed2..8360ff4fdd91 100644 --- a/test/python/algorithms/test_amplitude_estimators.py +++ b/test/python/algorithms/test_amplitude_estimators.py @@ -1,6 +1,6 @@ # This code is part of Qiskit. # -# (C) Copyright IBM 2018, 2020. +# (C) Copyright IBM 2018, 2022. # # This code is licensed under the Apache License, Version 2.0. You may # obtain a copy of this license in the LICENSE.txt file in the root directory @@ -27,6 +27,7 @@ EstimationProblem, ) from qiskit.quantum_info import Operator, Statevector +from qiskit.primitives import Sampler class BernoulliStateIn(QuantumCircuit): @@ -94,12 +95,8 @@ def setUp(self): seed_simulator=2, seed_transpiler=2, ) - self._unitary = QuantumInstance( - backend=BasicAer.get_backend("unitary_simulator"), - shots=1, - seed_simulator=42, - seed_transpiler=91, - ) + + self._sampler = Sampler(options={"seed": 2}) def qasm(shots=100): return QuantumInstance( @@ -111,6 +108,11 @@ def qasm(shots=100): self._qasm = qasm + def sampler_shots(shots=100): + return Sampler(options={"shots": shots, "seed": 2}) + + self._sampler_shots = sampler_shots + @idata( [ [0.2, AmplitudeEstimation(2), {"estimation": 0.5, "mle": 0.2}], @@ -136,6 +138,30 @@ def test_statevector(self, prob, qae, expect): value, getattr(result, key), places=3, msg=f"estimate `{key}` failed" ) + @idata( + [ + [0.2, AmplitudeEstimation(2), {"estimation": 0.5, "mle": 0.2}], + [0.49, AmplitudeEstimation(3), {"estimation": 0.5, "mle": 0.49}], + [0.2, MaximumLikelihoodAmplitudeEstimation([0, 1, 2]), {"estimation": 0.2}], + [0.49, MaximumLikelihoodAmplitudeEstimation(3), {"estimation": 0.49}], + [0.2, IterativeAmplitudeEstimation(0.1, 0.1), {"estimation": 0.2}], + [0.49, IterativeAmplitudeEstimation(0.001, 0.01), {"estimation": 0.49}], + [0.2, FasterAmplitudeEstimation(0.1, 3, rescale=False), {"estimation": 0.199}], + [0.12, FasterAmplitudeEstimation(0.1, 2, rescale=False), {"estimation": 0.12}], + ] + ) + @unpack + def test_sampler(self, prob, qae, expect): + """sampler test""" + qae.sampler = self._sampler + problem = EstimationProblem(BernoulliStateIn(prob), 0, BernoulliGrover(prob)) + + result = qae.estimate(problem) + for key, value in expect.items(): + self.assertAlmostEqual( + value, getattr(result, key), places=3, msg=f"estimate `{key}` failed" + ) + @idata( [ [0.2, 100, AmplitudeEstimation(4), {"estimation": 0.14644, "mle": 0.193888}], @@ -168,6 +194,38 @@ def test_qasm(self, prob, shots, qae, expect): value, getattr(result, key), places=3, msg=f"estimate `{key}` failed" ) + @idata( + [ + [0.2, 100, AmplitudeEstimation(4), {"estimation": 0.500000, "mle": 0.562783}], + [0.0, 1000, AmplitudeEstimation(2), {"estimation": 0.0, "mle": 0.0}], + [ + 0.2, + 100, + MaximumLikelihoodAmplitudeEstimation([0, 1, 2, 4, 8]), + {"estimation": 0.474790}, + ], + [0.8, 10, IterativeAmplitudeEstimation(0.1, 0.05), {"estimation": 0.811711}], + [0.2, 1000, FasterAmplitudeEstimation(0.1, 3, rescale=False), {"estimation": 0.199073}], + [ + 0.12, + 100, + FasterAmplitudeEstimation(0.01, 3, rescale=False), + {"estimation": 0.120016}, + ], + ] + ) + @unpack + def test_sampler_with_shots(self, prob, shots, qae, expect): + """sampler with shots test""" + qae.sampler = self._sampler_shots(shots) + problem = EstimationProblem(BernoulliStateIn(prob), [0], BernoulliGrover(prob)) + + result = qae.estimate(problem) + for key, value in expect.items(): + self.assertAlmostEqual( + value, getattr(result, key), places=3, msg=f"estimate `{key}` failed" + ) + @data(True, False) def test_qae_circuit(self, efficient_circuit): """Test circuits resulting from canonical amplitude estimation. @@ -321,6 +379,8 @@ def setUp(self): seed_transpiler=41, ) + self._sampler = Sampler(options={"seed": 123}) + def qasm(shots=100): return QuantumInstance( backend=BasicAer.get_backend("qasm_simulator"), @@ -331,6 +391,11 @@ def qasm(shots=100): self._qasm = qasm + def sampler_shots(shots=100): + return Sampler(options={"shots": shots, "seed": 7192}) + + self._sampler_shots = sampler_shots + @idata( [ [2, AmplitudeEstimation(2), {"estimation": 0.5, "mle": 0.270290}], @@ -355,6 +420,28 @@ def test_statevector(self, n, qae, expect): value, getattr(result, key), places=3, msg=f"estimate `{key}` failed" ) + @idata( + [ + [2, AmplitudeEstimation(2), {"estimation": 0.5, "mle": 0.270290}], + [4, MaximumLikelihoodAmplitudeEstimation(4), {"estimation": 0.0}], + [3, IterativeAmplitudeEstimation(0.1, 0.1), {"estimation": 0.0}], + [3, FasterAmplitudeEstimation(0.01, 1), {"estimation": 0.017687}], + ] + ) + @unpack + def test_sampler(self, n, qae, expect): + """sampler end-to-end test""" + # construct factories for A and Q + # qae.state_preparation = SineIntegral(n) + qae.sampler = self._sampler + estimation_problem = EstimationProblem(SineIntegral(n), objective_qubits=[n]) + + result = qae.estimate(estimation_problem) + for key, value in expect.items(): + self.assertAlmostEqual( + value, getattr(result, key), places=3, msg=f"estimate `{key}` failed" + ) + @idata( [ [4, 10, AmplitudeEstimation(2), {"estimation": 0.5, "mle": 0.333333}], @@ -376,6 +463,27 @@ def test_qasm(self, n, shots, qae, expect): value, getattr(result, key), places=3, msg=f"estimate `{key}` failed" ) + @idata( + [ + [4, 10, AmplitudeEstimation(2), {"estimation": 0.0, "mle": 0.0}], + [3, 10, MaximumLikelihoodAmplitudeEstimation(2), {"estimation": 0.0}], + [3, 1000, IterativeAmplitudeEstimation(0.01, 0.01), {"estimation": 0.0}], + [3, 1000, FasterAmplitudeEstimation(0.1, 4), {"estimation": 0.000551}], + ] + ) + @unpack + def test_sampler_with_shots(self, n, shots, qae, expect): + """Sampler with shots end-to-end test.""" + # construct factories for A and Q + qae.sampler = self._sampler_shots(shots) + estimation_problem = EstimationProblem(SineIntegral(n), objective_qubits=[n]) + + result = qae.estimate(estimation_problem) + for key, value in expect.items(): + self.assertAlmostEqual( + value, getattr(result, key), places=3, msg=f"estimate `{key}` failed" + ) + @idata( [ [ @@ -454,6 +562,10 @@ def test_iqae_confidence_intervals(self): class TestFasterAmplitudeEstimation(QiskitAlgorithmsTestCase): """Specific tests for Faster AE.""" + def setUp(self): + super().setUp() + self._sampler = Sampler(options={"seed": 2}) + def test_rescaling(self): """Test the rescaling.""" amplitude = 0.8 @@ -490,6 +602,28 @@ def test_run_without_rescaling(self): value_without_scaling = np.sin(theta) ** 2 self.assertAlmostEqual(result.estimation, value_without_scaling) + def test_sampler_run_without_rescaling(self): + """Run Faster AE without rescaling if the amplitude is in [0, 1/4].""" + # construct estimation problem + prob = 0.11 + a_op = QuantumCircuit(1) + a_op.ry(2 * np.arcsin(np.sqrt(prob)), 0) + problem = EstimationProblem(a_op, objective_qubits=[0]) + + # construct algo without rescaling + fae = FasterAmplitudeEstimation(0.1, 1, rescale=False, sampler=self._sampler) + + # run the algo + result = fae.estimate(problem) + + # assert the result is correct + self.assertAlmostEqual(result.estimation, prob, places=2) + + # assert no rescaling was used + theta = np.mean(result.theta_intervals[-1]) + value_without_scaling = np.sin(theta) ** 2 + self.assertAlmostEqual(result.estimation, value_without_scaling) + def test_rescaling_with_custom_grover_raises(self): """Test that the rescaling option fails if a custom Grover operator is used.""" prob = 0.8 diff --git a/test/python/algorithms/test_backendv1.py b/test/python/algorithms/test_backendv1.py index 21674d1c953e..7d725fd26294 100644 --- a/test/python/algorithms/test_backendv1.py +++ b/test/python/algorithms/test_backendv1.py @@ -85,7 +85,8 @@ def test_run_circuit_oracle(self): qi = QuantumInstance( self._provider.get_backend("fake_vigo"), seed_simulator=12, seed_transpiler=32 ) - grover = Grover(quantum_instance=qi) + with self.assertWarns(PendingDeprecationWarning): + grover = Grover(quantum_instance=qi) result = grover.amplify(problem) self.assertIn(result.top_measurement, ["11"]) @@ -97,7 +98,8 @@ def test_run_circuit_oracle_single_experiment_backend(self): backend = self._provider.get_backend("fake_vigo") backend._configuration.max_experiments = 1 qi = QuantumInstance(backend, seed_simulator=12, seed_transpiler=32) - grover = Grover(quantum_instance=qi) + with self.assertWarns(PendingDeprecationWarning): + grover = Grover(quantum_instance=qi) result = grover.amplify(problem) self.assertIn(result.top_measurement, ["11"]) diff --git a/test/python/algorithms/test_backendv2.py b/test/python/algorithms/test_backendv2.py index 4b86bfc35139..99edda452ac3 100644 --- a/test/python/algorithms/test_backendv2.py +++ b/test/python/algorithms/test_backendv2.py @@ -85,7 +85,8 @@ def test_run_circuit_oracle(self): qi = QuantumInstance( self._provider.get_backend("fake_yorktown"), seed_simulator=12, seed_transpiler=32 ) - grover = Grover(quantum_instance=qi) + with self.assertWarns(PendingDeprecationWarning): + grover = Grover(quantum_instance=qi) result = grover.amplify(problem) self.assertIn(result.top_measurement, ["11"]) @@ -99,7 +100,8 @@ def test_run_circuit_oracle_single_experiment_backend(self): qi = QuantumInstance( self._provider.get_backend("fake_yorktown"), seed_simulator=12, seed_transpiler=32 ) - grover = Grover(quantum_instance=qi) + with self.assertWarns(PendingDeprecationWarning): + grover = Grover(quantum_instance=qi) result = grover.amplify(problem) self.assertIn(result.top_measurement, ["11"]) diff --git a/test/python/algorithms/test_estimator_gradient.py b/test/python/algorithms/test_estimator_gradient.py index d859adcf1d30..e82383a56c47 100644 --- a/test/python/algorithms/test_estimator_gradient.py +++ b/test/python/algorithms/test_estimator_gradient.py @@ -30,7 +30,7 @@ from qiskit.circuit.library import EfficientSU2, RealAmplitudes from qiskit.circuit.library.standard_gates import RXXGate, RYYGate, RZXGate, RZZGate from qiskit.primitives import Estimator -from qiskit.quantum_info import SparsePauliOp, Operator +from qiskit.quantum_info import Operator, SparsePauliOp from qiskit.quantum_info.random import random_pauli_list from qiskit.test import QiskitTestCase @@ -382,36 +382,54 @@ def test_gradient_random_parameters(self, grad): SPSAEstimatorGradient, ], ) - def test_run_options(self, grad): + def test_options(self, grad): """Test estimator gradient's run options""" a = Parameter("a") qc = QuantumCircuit(1) qc.rx(a, 0) op = SparsePauliOp.from_list([("Z", 1)]) - estimator = Estimator(run_options={"shots": 100}) + estimator = Estimator(options={"shots": 100}) with self.subTest("estimator"): if grad is FiniteDiffEstimatorGradient or grad is SPSAEstimatorGradient: gradient = grad(estimator, epsilon=1e-6) else: gradient = grad(estimator) + options = gradient.options result = gradient.run([qc], [op], [[1]]).result() - self.assertEqual(result.run_options.get("shots"), 100) + self.assertEqual(result.options.get("shots"), 100) + self.assertEqual(options.get("shots"), 100) with self.subTest("gradient init"): if grad is FiniteDiffEstimatorGradient or grad is SPSAEstimatorGradient: - gradient = grad(estimator, epsilon=1e-6, run_options={"shots": 200}) + gradient = grad(estimator, epsilon=1e-6, options={"shots": 200}) else: - gradient = grad(estimator, run_options={"shots": 200}) + gradient = grad(estimator, options={"shots": 200}) + options = gradient.options result = gradient.run([qc], [op], [[1]]).result() - self.assertEqual(result.run_options.get("shots"), 200) + self.assertEqual(result.options.get("shots"), 200) + self.assertEqual(options.get("shots"), 200) + + with self.subTest("gradient update"): + if grad is FiniteDiffEstimatorGradient or grad is SPSAEstimatorGradient: + gradient = grad(estimator, epsilon=1e-6, options={"shots": 200}) + else: + gradient = grad(estimator, options={"shots": 200}) + gradient.update_default_options(shots=100) + options = gradient.options + result = gradient.run([qc], [op], [[1]]).result() + self.assertEqual(result.options.get("shots"), 100) + self.assertEqual(options.get("shots"), 100) with self.subTest("gradient run"): if grad is FiniteDiffEstimatorGradient or grad is SPSAEstimatorGradient: - gradient = grad(estimator, epsilon=1e-6, run_options={"shots": 200}) + gradient = grad(estimator, epsilon=1e-6, options={"shots": 200}) else: - gradient = grad(estimator, run_options={"shots": 200}) + gradient = grad(estimator, options={"shots": 200}) + options = gradient.options result = gradient.run([qc], [op], [[1]], shots=300).result() - self.assertEqual(result.run_options.get("shots"), 300) + self.assertEqual(result.options.get("shots"), 300) + # Only default + estimator options. Not run. + self.assertEqual(options.get("shots"), 200) if __name__ == "__main__": diff --git a/test/python/algorithms/test_grover.py b/test/python/algorithms/test_grover.py index 625aaf1af9ca..ad38b59a507d 100644 --- a/test/python/algorithms/test_grover.py +++ b/test/python/algorithms/test_grover.py @@ -1,6 +1,6 @@ # This code is part of Qiskit. # -# (C) Copyright IBM 2018, 2020. +# (C) Copyright IBM 2018, 2022. # # This code is licensed under the Apache License, Version 2.0. You may # obtain a copy of this license in the LICENSE.txt file in the root directory @@ -16,12 +16,14 @@ from test.python.algorithms import QiskitAlgorithmsTestCase import itertools import numpy as np -from ddt import ddt, data +from ddt import ddt, data, idata, unpack + from qiskit import BasicAer, QuantumCircuit from qiskit.utils import QuantumInstance from qiskit.algorithms import Grover, AmplificationProblem from qiskit.circuit.library import GroverOperator, PhaseOracle +from qiskit.primitives import Sampler from qiskit.quantum_info import Operator, Statevector @@ -95,41 +97,48 @@ def setUp(self): self.qasm = QuantumInstance( BasicAer.get_backend("qasm_simulator"), seed_simulator=12, seed_transpiler=32 ) + self._sampler = Sampler() + self._sampler_with_shots = Sampler(options={"shots": 1024, "seed": 123}) - def test_implicit_phase_oracle_is_good_state(self): + @data("ideal", "shots", False) + def test_implicit_phase_oracle_is_good_state(self, use_sampler): """Test implicit default for is_good_state with PhaseOracle.""" - grover = Grover(iterations=2, quantum_instance=self.statevector) - oracle = PhaseOracle("x | x") + grover = self._prepare_grover(use_sampler) + oracle = PhaseOracle("x & y") problem = AmplificationProblem(oracle) result = grover.amplify(problem) - self.assertEqual(result.top_measurement, "0") + self.assertEqual(result.top_measurement, "11") - @data([1, 2, 3], None, 2) - def test_iterations_with_good_state(self, iterations): + @idata(itertools.product(["ideal", "shots", False], [[1, 2, 3], None, 2])) + @unpack + def test_iterations_with_good_state(self, use_sampler, iterations): """Test the algorithm with different iteration types and with good state""" - grover = Grover(iterations, quantum_instance=self.statevector) + grover = self._prepare_grover(use_sampler, iterations) problem = AmplificationProblem(Statevector.from_label("111"), is_good_state=["111"]) result = grover.amplify(problem) self.assertEqual(result.top_measurement, "111") - def test_fixed_iterations_without_good_state(self): + @data("ideal", "shots", False) + def test_fixed_iterations_without_good_state(self, use_sampler): """Test the algorithm with iterations as an int and without good state""" - grover = Grover(iterations=2, quantum_instance=self.statevector) + grover = self._prepare_grover(use_sampler, iterations=2) problem = AmplificationProblem(Statevector.from_label("111")) result = grover.amplify(problem) self.assertEqual(result.top_measurement, "111") - @data([1, 2, 3], None) - def test_iterations_without_good_state(self, iterations): + @idata(itertools.product(["ideal", "shots", False], [[1, 2, 3], None])) + @unpack + def test_iterations_without_good_state(self, use_sampler, iterations): """Test the correct error is thrown for none/list of iterations and without good state""" - grover = Grover(iterations, quantum_instance=self.statevector) + grover = self._prepare_grover(use_sampler, iterations=iterations) problem = AmplificationProblem(Statevector.from_label("111")) with self.assertRaisesRegex( TypeError, "An is_good_state function is required with the provided oracle" ): grover.amplify(problem) - def test_iterator(self): + @data("ideal", "shots", False) + def test_iterator(self, use_sampler): """Test running the algorithm on an iterator.""" # step-function iterator @@ -141,59 +150,63 @@ def iterator(): if count % wait == 0: value += 1 - grover = Grover(iterations=iterator(), quantum_instance=self.statevector) + grover = self._prepare_grover(use_sampler, iterations=iterator()) problem = AmplificationProblem(Statevector.from_label("111"), is_good_state=["111"]) result = grover.amplify(problem) self.assertEqual(result.top_measurement, "111") - def test_growth_rate(self): + @data("ideal", "shots", False) + def test_growth_rate(self, use_sampler): """Test running the algorithm on a growth rate""" - grover = Grover(growth_rate=8 / 7, quantum_instance=self.statevector) + grover = self._prepare_grover(use_sampler, growth_rate=8 / 7) problem = AmplificationProblem(Statevector.from_label("111"), is_good_state=["111"]) result = grover.amplify(problem) self.assertEqual(result.top_measurement, "111") - def test_max_num_iterations(self): + @data("ideal", "shots", False) + def test_max_num_iterations(self, use_sampler): """Test the iteration stops when the maximum number of iterations is reached.""" def zero(): while True: yield 0 - grover = Grover(iterations=zero(), quantum_instance=self.statevector) + grover = self._prepare_grover(use_sampler, iterations=zero()) n = 5 problem = AmplificationProblem(Statevector.from_label("1" * n), is_good_state=["1" * n]) result = grover.amplify(problem) self.assertEqual(len(result.iterations), 2**n) - def test_max_power(self): + @data("ideal", "shots", False) + def test_max_power(self, use_sampler): """Test the iteration stops when the maximum power is reached.""" lam = 10.0 - grover = Grover(growth_rate=lam, quantum_instance=self.statevector) + grover = self._prepare_grover(use_sampler, growth_rate=lam) problem = AmplificationProblem(Statevector.from_label("111"), is_good_state=["111"]) result = grover.amplify(problem) self.assertEqual(len(result.iterations), 0) - def test_run_circuit_oracle(self): + @data("ideal", "shots", False) + def test_run_circuit_oracle(self, use_sampler): """Test execution with a quantum circuit oracle""" oracle = QuantumCircuit(2) oracle.cz(0, 1) problem = AmplificationProblem(oracle, is_good_state=["11"]) - - grover = Grover(quantum_instance=self.qasm) + grover = self._prepare_grover(use_sampler) result = grover.amplify(problem) self.assertIn(result.top_measurement, ["11"]) - def test_run_state_vector_oracle(self): + @data("ideal", "shots", False) + def test_run_state_vector_oracle(self, use_sampler): """Test execution with a state vector oracle""" mark_state = Statevector.from_label("11") problem = AmplificationProblem(mark_state, is_good_state=["11"]) - - grover = Grover(quantum_instance=self.qasm) + grover = self._prepare_grover(use_sampler) result = grover.amplify(problem) self.assertIn(result.top_measurement, ["11"]) - def test_run_custom_grover_operator(self): + @data("ideal", "shots", False) + def test_run_custom_grover_operator(self, use_sampler): """Test execution with a grover operator oracle""" oracle = QuantumCircuit(2) oracle.cz(0, 1) @@ -201,8 +214,7 @@ def test_run_custom_grover_operator(self): problem = AmplificationProblem( oracle=oracle, grover_operator=grover_op, is_good_state=["11"] ) - - grover = Grover(quantum_instance=self.qasm) + grover = self._prepare_grover(use_sampler) ret = grover.amplify(problem) self.assertIn(ret.top_measurement, ["11"]) @@ -230,40 +242,73 @@ def test_construct_circuit(self): self.assertTrue(Operator(constructed).equiv(Operator(expected))) - def test_circuit_result(self): + @data("ideal", "shots", False) + def test_circuit_result(self, use_sampler): """Test circuit_result""" oracle = QuantumCircuit(2) oracle.cz(0, 1) # is_good_state=['00'] is intentionally selected to obtain a list of results problem = AmplificationProblem(oracle, is_good_state=["00"]) - grover = Grover(iterations=[1, 2, 3, 4], quantum_instance=self.qasm) + grover = self._prepare_grover(use_sampler, iterations=[1, 2, 3, 4]) result = grover.amplify(problem) - expected_results = [ - {"11": 1024}, - {"00": 238, "01": 253, "10": 263, "11": 270}, - {"00": 238, "01": 253, "10": 263, "11": 270}, - {"11": 1024}, - ] - self.assertEqual(result.circuit_results, expected_results) - - def test_max_probability(self): + if use_sampler: + for i, dist in enumerate(result.circuit_results): + keys, values = zip(*sorted(dist.items())) + self.assertTupleEqual(keys, ("00", "01", "10", "11")) + if i in (0, 3): + np.testing.assert_allclose(values, [0, 0, 0, 1], atol=0.2) + else: + np.testing.assert_allclose(values, [0.25, 0.25, 0.25, 0.25], atol=0.2) + else: + expected_results = [ + {"11": 1024}, + {"00": 238, "01": 253, "10": 263, "11": 270}, + {"00": 238, "01": 253, "10": 263, "11": 270}, + {"11": 1024}, + ] + self.assertEqual(result.circuit_results, expected_results) + + @data("ideal", "shots", False) + def test_max_probability(self, use_sampler): """Test max_probability""" oracle = QuantumCircuit(2) oracle.cz(0, 1) problem = AmplificationProblem(oracle, is_good_state=["11"]) - grover = Grover(quantum_instance=self.qasm) + grover = self._prepare_grover(use_sampler) result = grover.amplify(problem) - self.assertEqual(result.max_probability, 1.0) + self.assertAlmostEqual(result.max_probability, 1.0) - def test_oracle_evaluation(self): + @data("ideal", "shots", False) + def test_oracle_evaluation(self, use_sampler): """Test oracle_evaluation for PhaseOracle""" oracle = PhaseOracle("x1 & x2 & (not x3)") problem = AmplificationProblem(oracle, is_good_state=oracle.evaluate_bitstring) - grover = Grover(quantum_instance=self.qasm) + grover = self._prepare_grover(use_sampler) result = grover.amplify(problem) self.assertTrue(result.oracle_evaluation) self.assertEqual("011", result.top_measurement) + def test_sampler_setter(self): + """Test sampler setter""" + grover = Grover() + grover.sampler = self._sampler + self.assertEqual(grover.sampler, self._sampler) + + def _prepare_grover(self, use_sampler, iterations=None, growth_rate=None): + """Prepare Grover instance for test""" + if use_sampler == "ideal": + grover = Grover(sampler=self._sampler, iterations=iterations, growth_rate=growth_rate) + elif use_sampler == "shots": + grover = Grover( + sampler=self._sampler_with_shots, iterations=iterations, growth_rate=growth_rate + ) + else: + with self.assertWarns(PendingDeprecationWarning): + grover = Grover( + quantum_instance=self.qasm, iterations=iterations, growth_rate=growth_rate + ) + return grover + if __name__ == "__main__": unittest.main() diff --git a/test/python/algorithms/test_observables_evaluator.py b/test/python/algorithms/test_observables_evaluator.py new file mode 100644 index 000000000000..9db5f02b312d --- /dev/null +++ b/test/python/algorithms/test_observables_evaluator.py @@ -0,0 +1,185 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""Tests evaluator of auxiliary operators for algorithms.""" + +from __future__ import annotations +import unittest +from typing import Tuple + +from test.python.algorithms import QiskitAlgorithmsTestCase +import numpy as np +from ddt import ddt, data + +from qiskit.algorithms.list_or_dict import ListOrDict +from qiskit.quantum_info.operators.base_operator import BaseOperator +from qiskit.algorithms import estimate_observables +from qiskit.primitives import Estimator +from qiskit.quantum_info import Statevector, SparsePauliOp +from qiskit import QuantumCircuit +from qiskit.circuit.library import EfficientSU2 +from qiskit.opflow import PauliSumOp +from qiskit.utils import algorithm_globals + + +@ddt +class TestObservablesEvaluator(QiskitAlgorithmsTestCase): + """Tests evaluator of auxiliary operators for algorithms.""" + + def setUp(self): + super().setUp() + self.seed = 50 + algorithm_globals.random_seed = self.seed + + self.threshold = 1e-8 + + def get_exact_expectation( + self, ansatz: QuantumCircuit, observables: ListOrDict[BaseOperator | PauliSumOp] + ): + """ + Calculates the exact expectation to be used as an expected result for unit tests. + """ + if isinstance(observables, dict): + observables_list = list(observables.values()) + else: + observables_list = observables + # the exact value is a list of (mean, (variance, shots)) where we expect 0 variance and + # 0 shots + exact = [ + (Statevector(ansatz).expectation_value(observable), {}) + for observable in observables_list + ] + + if isinstance(observables, dict): + return dict(zip(observables.keys(), exact)) + + return exact + + def _run_test( + self, + expected_result: ListOrDict[Tuple[complex, complex]], + quantum_state: QuantumCircuit, + decimal: int, + observables: ListOrDict[BaseOperator | PauliSumOp], + estimator: Estimator, + ): + result = estimate_observables(estimator, quantum_state, observables, None, self.threshold) + + if isinstance(observables, dict): + np.testing.assert_equal(list(result.keys()), list(expected_result.keys())) + means = [element[0] for element in result.values()] + expected_means = [element[0] for element in expected_result.values()] + np.testing.assert_array_almost_equal(means, expected_means, decimal=decimal) + + vars_and_shots = [element[1] for element in result.values()] + expected_vars_and_shots = [element[1] for element in expected_result.values()] + np.testing.assert_array_equal(vars_and_shots, expected_vars_and_shots) + else: + means = [element[0] for element in result] + expected_means = [element[0] for element in expected_result] + np.testing.assert_array_almost_equal(means, expected_means, decimal=decimal) + + vars_and_shots = [element[1] for element in result] + expected_vars_and_shots = [element[1] for element in expected_result] + np.testing.assert_array_equal(vars_and_shots, expected_vars_and_shots) + + @data( + [ + PauliSumOp.from_list([("II", 0.5), ("ZZ", 0.5), ("YY", 0.5), ("XX", -0.5)]), + PauliSumOp.from_list([("II", 2.0)]), + ], + [ + PauliSumOp.from_list([("ZZ", 2.0)]), + ], + { + "op1": PauliSumOp.from_list([("II", 2.0)]), + "op2": PauliSumOp.from_list([("II", 0.5), ("ZZ", 0.5), ("YY", 0.5), ("XX", -0.5)]), + }, + { + "op1": PauliSumOp.from_list([("ZZ", 2.0)]), + }, + [], + {}, + ) + def test_estimate_observables(self, observables: ListOrDict[BaseOperator | PauliSumOp]): + """Tests evaluator of auxiliary operators for algorithms.""" + + ansatz = EfficientSU2(2) + parameters = np.array( + [1.2, 4.2, 1.4, 2.0, 1.2, 4.2, 1.4, 2.0, 1.2, 4.2, 1.4, 2.0, 1.2, 4.2, 1.4, 2.0], + dtype=float, + ) + + bound_ansatz = ansatz.bind_parameters(parameters) + states = bound_ansatz + expected_result = self.get_exact_expectation(bound_ansatz, observables) + estimator = Estimator() + decimal = 6 + self._run_test( + expected_result, + states, + decimal, + observables, + estimator, + ) + + def test_estimate_observables_zero_op(self): + """Tests if a zero operator is handled correctly.""" + ansatz = EfficientSU2(2) + parameters = np.array( + [1.2, 4.2, 1.4, 2.0, 1.2, 4.2, 1.4, 2.0, 1.2, 4.2, 1.4, 2.0, 1.2, 4.2, 1.4, 2.0], + dtype=float, + ) + + bound_ansatz = ansatz.bind_parameters(parameters) + state = bound_ansatz + estimator = Estimator() + observables = [SparsePauliOp(["XX", "YY"]), 0] + result = estimate_observables(estimator, state, observables, None, self.threshold) + expected_result = [(0.015607318055509564, {}), (0.0, {})] + means = [element[0] for element in result] + expected_means = [element[0] for element in expected_result] + np.testing.assert_array_almost_equal(means, expected_means, decimal=0.01) + + vars_and_shots = [element[1] for element in result] + expected_vars_and_shots = [element[1] for element in expected_result] + np.testing.assert_array_equal(vars_and_shots, expected_vars_and_shots) + + def test_estimate_observables_shots(self): + """Tests that variances and shots are returned properly.""" + ansatz = EfficientSU2(2) + parameters = np.array( + [1.2, 4.2, 1.4, 2.0, 1.2, 4.2, 1.4, 2.0, 1.2, 4.2, 1.4, 2.0, 1.2, 4.2, 1.4, 2.0], + dtype=float, + ) + + bound_ansatz = ansatz.bind_parameters(parameters) + state = bound_ansatz + estimator = Estimator(options={"shots": 2048}) + observables = [PauliSumOp.from_list([("ZZ", 2.0)])] + result = estimate_observables(estimator, state, observables, None, self.threshold) + exact_result = self.get_exact_expectation(bound_ansatz, observables) + expected_result = [(exact_result[0][0], {"variance": 1.0898, "shots": 2048})] + + means = [element[0] for element in result] + expected_means = [element[0] for element in expected_result] + np.testing.assert_array_almost_equal(means, expected_means, decimal=0.01) + + vars_and_shots = [element[1] for element in result] + expected_vars_and_shots = [element[1] for element in expected_result] + for computed, expected in zip(vars_and_shots, expected_vars_and_shots): + self.assertAlmostEqual(computed.pop("variance"), expected.pop("variance"), 2) + self.assertEqual(computed.pop("shots"), expected.pop("shots")) + + +if __name__ == "__main__": + unittest.main() diff --git a/test/python/algorithms/test_phase_estimator.py b/test/python/algorithms/test_phase_estimator.py index 83e213f9b64a..015077de9d74 100644 --- a/test/python/algorithms/test_phase_estimator.py +++ b/test/python/algorithms/test_phase_estimator.py @@ -1,6 +1,6 @@ # This code is part of Qiskit. # -# (C) Copyright IBM 2018, 2020. +# (C) Copyright IBM 2018, 2022. # # This code is licensed under the Apache License, Version 2.0. You may # obtain a copy of this license in the LICENSE.txt file in the root directory @@ -13,18 +13,22 @@ """Test phase estimation""" import unittest + from test.python.algorithms import QiskitAlgorithmsTestCase from ddt import ddt, data, unpack import numpy as np +from qiskit.circuit.library import ZGate, XGate, HGate, IGate +from qiskit.quantum_info import Pauli, SparsePauliOp, Statevector +from qiskit.synthesis import MatrixExponential, SuzukiTrotter +from qiskit.primitives import Sampler from qiskit.algorithms.phase_estimators import ( PhaseEstimation, HamiltonianPhaseEstimation, IterativePhaseEstimation, ) -from qiskit.opflow.evolutions import PauliTrotterEvolution, MatrixEvolution import qiskit from qiskit import QuantumCircuit -from qiskit.opflow import H, X, Y, Z, I, StateFn +from qiskit.opflow import H, X, Y, Z, I, StateFn, PauliTrotterEvolution, MatrixEvolution, PauliSumOp @ddt @@ -111,6 +115,7 @@ def test_H2_hamiltonian(self): ) state_preparation = StateFn((I ^ H).to_circuit()) evo = PauliTrotterEvolution(trotter_mode="suzuki", reps=4) + result = self.hamiltonian_pe(hamiltonian, state_preparation, evolution=evo) with self.subTest("Most likely eigenvalues"): self.assertAlmostEqual(result.most_likely_eigenvalue, -1.855, delta=0.001) @@ -177,6 +182,116 @@ def test_trotter_from_bound(self): self.assertAlmostEqual(phases[0], 1.5, delta=0.001) self.assertAlmostEqual(phases[1], -1.5, delta=0.001) + # sampler tests + def hamiltonian_pe_sampler( + self, + hamiltonian, + state_preparation=None, + num_evaluation_qubits=6, + evolution=None, + bound=None, + ): + """Run HamiltonianPhaseEstimation and return result with all phases.""" + sampler = Sampler() + phase_est = HamiltonianPhaseEstimation( + num_evaluation_qubits=num_evaluation_qubits, sampler=sampler + ) + result = phase_est.estimate( + hamiltonian=hamiltonian, + state_preparation=state_preparation, + evolution=evolution, + bound=bound, + ) + return result + + @data(MatrixExponential(), SuzukiTrotter(reps=4)) + def test_pauli_sum_1_sampler(self, evolution): + """Two eigenvalues from Pauli sum with X, Z""" + hamiltonian = PauliSumOp(SparsePauliOp.from_list([("X", 0.5), ("Z", 1)])) + state_preparation = QuantumCircuit(1).compose(HGate()) + + result = self.hamiltonian_pe_sampler(hamiltonian, state_preparation, evolution=evolution) + phase_dict = result.filter_phases(0.162, as_float=True) + phases = list(phase_dict.keys()) + phases.sort() + + self.assertAlmostEqual(phases[0], -1.125, delta=0.001) + self.assertAlmostEqual(phases[1], 1.125, delta=0.001) + + @data(MatrixExponential(), SuzukiTrotter(reps=3)) + def test_pauli_sum_2_sampler(self, evolution): + """Two eigenvalues from Pauli sum with X, Y, Z""" + hamiltonian = PauliSumOp(SparsePauliOp.from_list([("X", 0.5), ("Z", 1), ("Y", 1)])) + state_preparation = None + + result = self.hamiltonian_pe_sampler(hamiltonian, state_preparation, evolution=evolution) + phase_dict = result.filter_phases(0.1, as_float=True) + phases = list(phase_dict.keys()) + phases.sort() + + self.assertAlmostEqual(phases[0], -1.484, delta=0.001) + self.assertAlmostEqual(phases[1], 1.484, delta=0.001) + + def test_single_pauli_op_sampler(self): + """Two eigenvalues from Pauli sum with X, Y, Z""" + hamiltonian = SparsePauliOp(Pauli("Z")) + state_preparation = None + + result = self.hamiltonian_pe_sampler(hamiltonian, state_preparation, evolution=None) + eigv = result.most_likely_eigenvalue + with self.subTest("First eigenvalue"): + self.assertAlmostEqual(eigv, 1.0, delta=0.001) + + state_preparation = QuantumCircuit(1).compose(XGate()) + + result = self.hamiltonian_pe_sampler(hamiltonian, state_preparation, bound=1.05) + eigv = result.most_likely_eigenvalue + with self.subTest("Second eigenvalue"): + self.assertAlmostEqual(eigv, -0.98, delta=0.01) + + @data( + Statevector(QuantumCircuit(2).compose(IGate()).compose(HGate())), + QuantumCircuit(2).compose(IGate()).compose(HGate()), + ) + def test_H2_hamiltonian_sampler(self, state_preparation): + """Test H2 hamiltonian""" + + hamiltonian = PauliSumOp( + SparsePauliOp.from_list( + [ + ("II", -1.0523732457728587), + ("IZ", 0.3979374248431802), + ("ZI", -0.3979374248431802), + ("ZZ", -0.011280104256235324), + ("XX", 0.18093119978423147), + ] + ) + ) + evo = SuzukiTrotter(reps=4) + result = self.hamiltonian_pe_sampler(hamiltonian, state_preparation, evolution=evo) + with self.subTest("Most likely eigenvalues"): + self.assertAlmostEqual(result.most_likely_eigenvalue, -1.855, delta=0.001) + with self.subTest("Most likely phase"): + self.assertAlmostEqual(result.phase, 0.5937, delta=0.001) + with self.subTest("All eigenvalues"): + phase_dict = result.filter_phases(0.1) + phases = sorted(list(phase_dict.keys())) + self.assertAlmostEqual(phases[0], -1.8551, delta=0.001) + self.assertAlmostEqual(phases[1], -1.2376, delta=0.001) + self.assertAlmostEqual(phases[2], -0.8979, delta=0.001) + + def test_matrix_evolution_sampler(self): + """1Q Hamiltonian with MatrixEvolution""" + hamiltonian = PauliSumOp(SparsePauliOp.from_list([("X", 0.5), ("Y", 0.6), ("I", 0.7)])) + state_preparation = None + result = self.hamiltonian_pe_sampler( + hamiltonian, state_preparation, evolution=MatrixExponential() + ) + phase_dict = result.filter_phases(0.2, as_float=True) + phases = sorted(list(phase_dict.keys())) + self.assertAlmostEqual(phases[0], -0.090, delta=0.001) + self.assertAlmostEqual(phases[1], 1.490, delta=0.001) + @ddt class TestPhaseEstimation(QiskitAlgorithmsTestCase): @@ -313,6 +428,143 @@ def test_qpe_Zplus(self, construct_circuit): phases = result.filter_phases(1e-15, as_float=False) self.assertEqual(list(phases.keys()), ["000000", "100000"]) + # sampler tests + def one_phase_sampler( + self, + unitary_circuit, + state_preparation=None, + phase_estimator=None, + num_iterations=6, + shots=None, + ): + """Run phase estimation with operator, eigenvalue pair `unitary_circuit`, + `state_preparation`. Return the estimated phase as a value in :math:`[0,1)`. + """ + if shots is not None: + options = {"shots": shots} + else: + options = {} + sampler = Sampler(options=options) + if phase_estimator is None: + phase_estimator = IterativePhaseEstimation + if phase_estimator == IterativePhaseEstimation: + p_est = IterativePhaseEstimation(num_iterations=num_iterations, sampler=sampler) + elif phase_estimator == PhaseEstimation: + p_est = PhaseEstimation(num_evaluation_qubits=6, sampler=sampler) + else: + raise ValueError("Unrecognized phase_estimator") + result = p_est.estimate(unitary=unitary_circuit, state_preparation=state_preparation) + phase = result.phase + return phase + + @data( + (QuantumCircuit(1).compose(XGate()), 0.5, None, IterativePhaseEstimation), + (QuantumCircuit(1).compose(XGate()), 0.5, 1000, IterativePhaseEstimation), + (None, 0.0, 1000, IterativePhaseEstimation), + (QuantumCircuit(1).compose(XGate()), 0.5, 1000, PhaseEstimation), + (None, 0.0, 1000, PhaseEstimation), + (QuantumCircuit(1).compose(XGate()), 0.5, None, PhaseEstimation), + ) + @unpack + def test_qpe_Z_sampler(self, state_preparation, expected_phase, shots, phase_estimator): + """eigenproblem Z, |0> and |1>""" + unitary_circuit = QuantumCircuit(1).compose(ZGate()) + phase = self.one_phase_sampler( + unitary_circuit, + state_preparation=state_preparation, + phase_estimator=phase_estimator, + shots=shots, + ) + self.assertEqual(phase, expected_phase) + + @data( + (QuantumCircuit(1).compose(HGate()), 0.0, IterativePhaseEstimation), + (QuantumCircuit(1).compose(HGate()).compose(ZGate()), 0.5, IterativePhaseEstimation), + (QuantumCircuit(1).compose(HGate()), 0.0, PhaseEstimation), + (QuantumCircuit(1).compose(HGate()).compose(ZGate()), 0.5, PhaseEstimation), + ) + @unpack + def test_qpe_X_plus_minus_sampler(self, state_preparation, expected_phase, phase_estimator): + """eigenproblem X, (|+>, |->)""" + unitary_circuit = QuantumCircuit(1).compose(XGate()) + phase = self.one_phase_sampler( + unitary_circuit, + state_preparation, + phase_estimator, + ) + self.assertEqual(phase, expected_phase) + + @data( + (QuantumCircuit(1).compose(XGate()), 0.125, IterativePhaseEstimation), + (QuantumCircuit(1).compose(IGate()), 0.875, IterativePhaseEstimation), + (QuantumCircuit(1).compose(XGate()), 0.125, PhaseEstimation), + (QuantumCircuit(1).compose(IGate()), 0.875, PhaseEstimation), + ) + @unpack + def test_qpe_RZ_sampler(self, state_preparation, expected_phase, phase_estimator): + """eigenproblem RZ, (|0>, |1>)""" + alpha = np.pi / 2 + unitary_circuit = QuantumCircuit(1) + unitary_circuit.rz(alpha, 0) + phase = self.one_phase_sampler( + unitary_circuit, + state_preparation, + phase_estimator, + ) + self.assertEqual(phase, expected_phase) + + def test_check_num_iterations_sampler(self): + """test check for num_iterations greater than zero""" + unitary_circuit = QuantumCircuit(1).compose(XGate()) + state_preparation = None + with self.assertRaises(ValueError): + self.one_phase_sampler(unitary_circuit, state_preparation, num_iterations=-1) + + def phase_estimation_sampler( + self, + unitary_circuit, + sampler: Sampler, + state_preparation=None, + num_evaluation_qubits=6, + construct_circuit=False, + ): + """Run phase estimation with operator, eigenvalue pair `unitary_circuit`, + `state_preparation`. Return all results + """ + phase_est = PhaseEstimation(num_evaluation_qubits=num_evaluation_qubits, sampler=sampler) + if construct_circuit: + pe_circuit = phase_est.construct_circuit(unitary_circuit, state_preparation) + result = phase_est.estimate_from_pe_circuit(pe_circuit, unitary_circuit.num_qubits) + else: + result = phase_est.estimate( + unitary=unitary_circuit, state_preparation=state_preparation + ) + return result + + @data(True, False) + def test_qpe_Zplus_sampler(self, construct_circuit): + """superposition eigenproblem Z, |+>""" + unitary_circuit = QuantumCircuit(1).compose(ZGate()) + state_preparation = QuantumCircuit(1).compose(HGate()) # prepare |+> + sampler = Sampler() + result = self.phase_estimation_sampler( + unitary_circuit, + sampler, + state_preparation, + construct_circuit=construct_circuit, + ) + + phases = result.filter_phases(1e-15, as_float=True) + with self.subTest("test phases has correct values"): + self.assertEqual(list(phases.keys()), [0.0, 0.5]) + + with self.subTest("test phases has correct probabilities"): + np.testing.assert_allclose(list(phases.values()), [0.5, 0.5]) + + with self.subTest("test bitstring representation"): + phases = result.filter_phases(1e-15, as_float=False) + self.assertEqual(list(phases.keys()), ["000000", "100000"]) + if __name__ == "__main__": unittest.main() diff --git a/test/python/algorithms/test_sampler_gradient.py b/test/python/algorithms/test_sampler_gradient.py index e1a4bfef1c30..43ac68c041eb 100644 --- a/test/python/algorithms/test_sampler_gradient.py +++ b/test/python/algorithms/test_sampler_gradient.py @@ -515,36 +515,54 @@ def test_gradient_random_parameters(self, grad): SPSASamplerGradient, ], ) - def test_run_options(self, grad): + def test_options(self, grad): """Test sampler gradient's run options""" a = Parameter("a") qc = QuantumCircuit(1) qc.rx(a, 0) qc.measure_all() - sampler = Sampler(run_options={"shots": 100}) + sampler = Sampler(options={"shots": 100}) with self.subTest("sampler"): if grad is FiniteDiffSamplerGradient or grad is SPSASamplerGradient: gradient = grad(sampler, epsilon=1e-6) else: gradient = grad(sampler) + options = gradient.options result = gradient.run([qc], [[1]]).result() - self.assertEqual(result.run_options.get("shots"), 100) + self.assertEqual(result.options.get("shots"), 100) + self.assertEqual(options.get("shots"), 100) with self.subTest("gradient init"): if grad is FiniteDiffSamplerGradient or grad is SPSASamplerGradient: - gradient = grad(sampler, epsilon=1e-6, run_options={"shots": 200}) + gradient = grad(sampler, epsilon=1e-6, options={"shots": 200}) else: - gradient = grad(sampler, run_options={"shots": 200}) + gradient = grad(sampler, options={"shots": 200}) + options = gradient.options result = gradient.run([qc], [[1]]).result() - self.assertEqual(result.run_options.get("shots"), 200) + self.assertEqual(result.options.get("shots"), 200) + self.assertEqual(options.get("shots"), 200) + + with self.subTest("gradient update"): + if grad is FiniteDiffSamplerGradient or grad is SPSASamplerGradient: + gradient = grad(sampler, epsilon=1e-6, options={"shots": 200}) + else: + gradient = grad(sampler, options={"shots": 200}) + gradient.update_default_options(shots=100) + options = gradient.options + result = gradient.run([qc], [[1]]).result() + self.assertEqual(result.options.get("shots"), 100) + self.assertEqual(options.get("shots"), 100) with self.subTest("gradient run"): if grad is FiniteDiffSamplerGradient or grad is SPSASamplerGradient: - gradient = grad(sampler, epsilon=1e-6, run_options={"shots": 200}) + gradient = grad(sampler, epsilon=1e-6, options={"shots": 200}) else: - gradient = grad(sampler, run_options={"shots": 200}) + gradient = grad(sampler, options={"shots": 200}) + options = gradient.options result = gradient.run([qc], [[1]], shots=300).result() - self.assertEqual(result.run_options.get("shots"), 300) + self.assertEqual(result.options.get("shots"), 300) + # Only default + sampler options. Not run. + self.assertEqual(options.get("shots"), 200) def _quasi2array(quasis: List[QuasiDistribution], num_qubits: int) -> np.ndarray: diff --git a/test/python/algorithms/evolvers/variational/solvers/__init__.py b/test/python/algorithms/time_evolvers/__init__.py similarity index 93% rename from test/python/algorithms/evolvers/variational/solvers/__init__.py rename to test/python/algorithms/time_evolvers/__init__.py index b3ac36d2a6d9..fdb172d367f0 100644 --- a/test/python/algorithms/evolvers/variational/solvers/__init__.py +++ b/test/python/algorithms/time_evolvers/__init__.py @@ -1,6 +1,6 @@ # This code is part of Qiskit. # -# (C) Copyright IBM 2021, 2022. +# (C) Copyright IBM 2022. # # This code is licensed under the Apache License, Version 2.0. You may # obtain a copy of this license in the LICENSE.txt file in the root directory diff --git a/test/python/algorithms/evolvers/test_pvqd.py b/test/python/algorithms/time_evolvers/test_pvqd.py similarity index 73% rename from test/python/algorithms/evolvers/test_pvqd.py rename to test/python/algorithms/time_evolvers/test_pvqd.py index 5c450fa24822..8d52b284f0d7 100644 --- a/test/python/algorithms/evolvers/test_pvqd.py +++ b/test/python/algorithms/time_evolvers/test_pvqd.py @@ -11,20 +11,23 @@ # that they have been altered from the originals. """Tests for PVQD.""" - +import unittest from functools import partial + from ddt import ddt, data, unpack import numpy as np +from qiskit.algorithms.state_fidelities import ComputeUncompute +from qiskit.opflow import PauliSumOp +from qiskit.primitives import Sampler, Estimator +from qiskit.quantum_info import Pauli, SparsePauliOp from qiskit.test import QiskitTestCase - -from qiskit import BasicAer, QiskitError +from qiskit import QiskitError from qiskit.circuit import QuantumCircuit, Parameter, Gate from qiskit.algorithms.evolvers import EvolutionProblem -from qiskit.algorithms.evolvers.pvqd import PVQD +from qiskit.algorithms.time_evolvers.pvqd import PVQD from qiskit.algorithms.optimizers import L_BFGS_B, GradientDescent, SPSA, OptimizerResult from qiskit.circuit.library import EfficientSU2 -from qiskit.opflow import X, Z, I, MatrixExpectation, PauliExpectation # pylint: disable=unused-argument, invalid-name @@ -39,7 +42,7 @@ def gradient_supplied(fun, x0, jac, info): class WhatAmI(Gate): - """An custom opaque gate that can be inverted but not decomposed.""" + """A custom opaque gate that can be inverted but not decomposed.""" def __init__(self, angle): super().__init__(name="whatami", num_qubits=2, params=[angle]) @@ -54,31 +57,23 @@ class TestPVQD(QiskitTestCase): def setUp(self): super().setUp() - self.sv_backend = BasicAer.get_backend("statevector_simulator") - self.qasm_backend = BasicAer.get_backend("qasm_simulator") - self.expectation = MatrixExpectation() - self.hamiltonian = 0.1 * (Z ^ Z) + (I ^ X) + (X ^ I) - self.observable = Z ^ Z + self.hamiltonian = 0.1 * SparsePauliOp([Pauli("ZZ"), Pauli("IX"), Pauli("XI")]) + self.observable = Pauli("ZZ") self.ansatz = EfficientSU2(2, reps=1) self.initial_parameters = np.zeros(self.ansatz.num_parameters) - @data( - ("ising", MatrixExpectation, True, "sv", 2), - ("ising_matrix", MatrixExpectation, True, "sv", None), - ("ising", PauliExpectation, True, "qasm", 2), - ("pauli", PauliExpectation, False, "qasm", None), - ) + @data(("ising", True, 2), ("pauli", False, None), ("pauli_sum_op", True, 2)) @unpack - def test_pvqd(self, hamiltonian_type, expectation_cls, gradient, backend_type, num_timesteps): + def test_pvqd(self, hamiltonian_type, gradient, num_timesteps): """Test a simple evolution.""" time = 0.02 if hamiltonian_type == "ising": hamiltonian = self.hamiltonian - elif hamiltonian_type == "ising_matrix": - hamiltonian = self.hamiltonian.to_matrix_op() + elif hamiltonian_type == "pauli_sum_op": + hamiltonian = PauliSumOp(self.hamiltonian) else: # hamiltonian_type == "pauli": - hamiltonian = X ^ X + hamiltonian = Pauli("XX") # parse input arguments if gradient: @@ -86,17 +81,18 @@ def test_pvqd(self, hamiltonian_type, expectation_cls, gradient, backend_type, n else: optimizer = L_BFGS_B(maxiter=1) - backend = self.sv_backend if backend_type == "sv" else self.qasm_backend - expectation = expectation_cls() + sampler = Sampler() + estimator = Estimator() + fidelity_primitive = ComputeUncompute(sampler) # run pVQD keeping track of the energy and the magnetization pvqd = PVQD( + fidelity_primitive, self.ansatz, self.initial_parameters, - num_timesteps=num_timesteps, + estimator, optimizer=optimizer, - quantum_instance=backend, - expectation=expectation, + num_timesteps=num_timesteps, ) problem = EvolutionProblem(hamiltonian, time, aux_operators=[hamiltonian, self.observable]) result = pvqd.evolve(problem) @@ -112,19 +108,21 @@ def test_pvqd(self, hamiltonian_type, expectation_cls, gradient, backend_type, n def test_step(self): """Test calling the step method directly.""" - + sampler = Sampler() + estimator = Estimator() + fidelity_primitive = ComputeUncompute(sampler) pvqd = PVQD( + fidelity_primitive, self.ansatz, self.initial_parameters, + estimator, optimizer=L_BFGS_B(maxiter=100), - quantum_instance=self.sv_backend, - expectation=MatrixExpectation(), ) # perform optimization for a timestep of 0, then the optimal parameters are the current # ones and the fidelity is 1 theta_next, fidelity = pvqd.step( - self.hamiltonian.to_matrix_op(), + self.hamiltonian, self.ansatz, self.initial_parameters, dt=0.0, @@ -137,11 +135,15 @@ def test_step(self): def test_get_loss(self): """Test getting the loss function directly.""" + sampler = Sampler() + estimator = Estimator() + fidelity_primitive = ComputeUncompute(sampler) + pvqd = PVQD( + fidelity_primitive, self.ansatz, self.initial_parameters, - quantum_instance=self.sv_backend, - expectation=MatrixExpectation(), + estimator, use_parameter_shift=False, ) @@ -161,13 +163,16 @@ def test_get_loss(self): def test_invalid_num_timestep(self): """Test raises if the num_timestep is not positive.""" + sampler = Sampler() + estimator = Estimator() + fidelity_primitive = ComputeUncompute(sampler) pvqd = PVQD( + fidelity_primitive, self.ansatz, self.initial_parameters, - num_timesteps=0, + estimator, optimizer=L_BFGS_B(), - quantum_instance=self.sv_backend, - expectation=self.expectation, + num_timesteps=0, ) problem = EvolutionProblem( self.hamiltonian, time=0.01, aux_operators=[self.hamiltonian, self.observable] @@ -179,15 +184,18 @@ def test_invalid_num_timestep(self): def test_initial_guess_and_observables(self): """Test doing no optimizations stays at initial guess.""" initial_guess = np.zeros(self.ansatz.num_parameters) + sampler = Sampler() + estimator = Estimator() + fidelity_primitive = ComputeUncompute(sampler) pvqd = PVQD( + fidelity_primitive, self.ansatz, self.initial_parameters, - num_timesteps=10, + estimator, optimizer=SPSA(maxiter=0, learning_rate=0.1, perturbation=0.01), + num_timesteps=10, initial_guess=initial_guess, - quantum_instance=self.sv_backend, - expectation=self.expectation, ) problem = EvolutionProblem( self.hamiltonian, time=0.1, aux_operators=[self.hamiltonian, self.observable] @@ -199,46 +207,17 @@ def test_initial_guess_and_observables(self): self.assertEqual(observables[0], 0.1) # expected energy self.assertEqual(observables[1], 1) # expected magnetization - def test_missing_attributesquantum_instance(self): - """Test appropriate error is raised if the quantum instance is missing.""" - pvqd = PVQD( - self.ansatz, - self.initial_parameters, - optimizer=L_BFGS_B(maxiter=1), - expectation=self.expectation, - ) - problem = EvolutionProblem(self.hamiltonian, time=0.01) - - attrs_to_test = [ - ("optimizer", L_BFGS_B(maxiter=1)), - ("quantum_instance", self.qasm_backend), - ] - - for attr, value in attrs_to_test: - with self.subTest(msg=f"missing: {attr}"): - # set attribute to None to invalidate the setup - setattr(pvqd, attr, None) - - with self.assertRaises(ValueError): - _ = pvqd.evolve(problem) - - # set the correct value again - setattr(pvqd, attr, value) - - with self.subTest(msg="all set again"): - result = pvqd.evolve(problem) - self.assertIsNotNone(result.evolved_state) - def test_zero_parameters(self): """Test passing an ansatz with zero parameters raises an error.""" problem = EvolutionProblem(self.hamiltonian, time=0.02) + sampler = Sampler() + fidelity_primitive = ComputeUncompute(sampler) pvqd = PVQD( + fidelity_primitive, QuantumCircuit(2), np.array([]), optimizer=SPSA(maxiter=10, learning_rate=0.1, perturbation=0.01), - quantum_instance=self.sv_backend, - expectation=self.expectation, ) with self.assertRaises(QiskitError): @@ -255,26 +234,46 @@ def test_initial_state_raises(self): initial_state=initial_state, ) + sampler = Sampler() + fidelity_primitive = ComputeUncompute(sampler) + pvqd = PVQD( + fidelity_primitive, self.ansatz, self.initial_parameters, optimizer=SPSA(maxiter=0, learning_rate=0.1, perturbation=0.01), - quantum_instance=self.sv_backend, - expectation=self.expectation, ) with self.assertRaises(NotImplementedError): _ = pvqd.evolve(problem) + def test_aux_ops_raises(self): + """Test passing auxiliary operators with no estimator raises an error.""" + + problem = EvolutionProblem( + self.hamiltonian, time=0.02, aux_operators=[self.hamiltonian, self.observable] + ) + + sampler = Sampler() + fidelity_primitive = ComputeUncompute(sampler) + + pvqd = PVQD( + fidelity_primitive, + self.ansatz, + self.initial_parameters, + optimizer=SPSA(maxiter=0, learning_rate=0.1, perturbation=0.01), + ) + + with self.assertRaises(ValueError): + _ = pvqd.evolve(problem) + class TestPVQDUtils(QiskitTestCase): """Test some utility functions for PVQD.""" def setUp(self): super().setUp() - self.sv_backend = BasicAer.get_backend("statevector_simulator") - self.expectation = MatrixExpectation() - self.hamiltonian = 0.1 * (Z ^ Z) + (I ^ X) + (X ^ I) + self.hamiltonian = 0.1 * SparsePauliOp([Pauli("ZZ"), Pauli("IX"), Pauli("XI")]) self.ansatz = EfficientSU2(2, reps=1) def test_gradient_supported(self): @@ -309,12 +308,16 @@ def test_gradient_supported(self): info = {"has_gradient": None} optimizer = partial(gradient_supplied, info=info) + sampler = Sampler() + estimator = Estimator() + fidelity_primitive = ComputeUncompute(sampler) + pvqd = PVQD( + fidelity=fidelity_primitive, ansatz=None, initial_parameters=np.array([]), + estimator=estimator, optimizer=optimizer, - quantum_instance=self.sv_backend, - expectation=self.expectation, ) problem = EvolutionProblem(self.hamiltonian, time=0.01) for circuit, expected_support in tests: @@ -323,3 +326,7 @@ def test_gradient_supported(self): pvqd.initial_parameters = np.zeros(circuit.num_parameters) _ = pvqd.evolve(problem) self.assertEqual(info["has_gradient"], expected_support) + + +if __name__ == "__main__": + unittest.main() diff --git a/test/python/algorithms/time_evolvers/test_time_evolution_problem.py b/test/python/algorithms/time_evolvers/test_time_evolution_problem.py new file mode 100644 index 000000000000..83a7fd4d5e3a --- /dev/null +++ b/test/python/algorithms/time_evolvers/test_time_evolution_problem.py @@ -0,0 +1,101 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""Test evolver problem class.""" +import unittest +from test.python.algorithms import QiskitAlgorithmsTestCase +from ddt import data, ddt, unpack +from numpy.testing import assert_raises +from qiskit import QuantumCircuit +from qiskit.algorithms import TimeEvolutionProblem +from qiskit.quantum_info import Pauli, SparsePauliOp, Statevector +from qiskit.circuit import Parameter +from qiskit.opflow import Y, Z, One, X, Zero, PauliSumOp + + +@ddt +class TestTimeEvolutionProblem(QiskitAlgorithmsTestCase): + """Test evolver problem class.""" + + def test_init_default(self): + """Tests that all default fields are initialized correctly.""" + hamiltonian = Y + time = 2.5 + initial_state = One + + evo_problem = TimeEvolutionProblem(hamiltonian, time, initial_state) + + expected_hamiltonian = Y + expected_time = 2.5 + expected_initial_state = One + expected_aux_operators = None + expected_t_param = None + expected_param_value_dict = None + + self.assertEqual(evo_problem.hamiltonian, expected_hamiltonian) + self.assertEqual(evo_problem.time, expected_time) + self.assertEqual(evo_problem.initial_state, expected_initial_state) + self.assertEqual(evo_problem.aux_operators, expected_aux_operators) + self.assertEqual(evo_problem.t_param, expected_t_param) + self.assertEqual(evo_problem.param_value_map, expected_param_value_dict) + + @data(QuantumCircuit(1), Statevector([1, 0])) + def test_init_all(self, initial_state): + """Tests that all fields are initialized correctly.""" + t_parameter = Parameter("t") + hamiltonian = t_parameter * Z + Y + time = 2 + aux_operators = [X, Y] + param_value_dict = {t_parameter: 3.2} + + evo_problem = TimeEvolutionProblem( + hamiltonian, + time, + initial_state, + aux_operators, + t_param=t_parameter, + param_value_map=param_value_dict, + ) + + expected_hamiltonian = Y + t_parameter * Z + expected_time = 2 + expected_type = QuantumCircuit + expected_aux_operators = [X, Y] + expected_t_param = t_parameter + expected_param_value_dict = {t_parameter: 3.2} + + self.assertEqual(evo_problem.hamiltonian, expected_hamiltonian) + self.assertEqual(evo_problem.time, expected_time) + self.assertEqual(type(evo_problem.initial_state), expected_type) + self.assertEqual(evo_problem.aux_operators, expected_aux_operators) + self.assertEqual(evo_problem.t_param, expected_t_param) + self.assertEqual(evo_problem.param_value_map, expected_param_value_dict) + + @data([Y, -1, One], [Y, -1.2, One], [Y, 0, One]) + @unpack + def test_init_errors(self, hamiltonian, time, initial_state): + """Tests expected errors are thrown on invalid time argument.""" + with assert_raises(ValueError): + _ = TimeEvolutionProblem(hamiltonian, time, initial_state) + + def test_validate_params(self): + """Tests expected errors are thrown on parameters mismatch.""" + param_x = Parameter("x") + with self.subTest(msg="Parameter missing in dict."): + hamiltonian = PauliSumOp(SparsePauliOp([Pauli("X"), Pauli("Y")]), param_x) + evolution_problem = TimeEvolutionProblem(hamiltonian, 2, Zero) + with assert_raises(ValueError): + evolution_problem.validate_params() + + +if __name__ == "__main__": + unittest.main() diff --git a/test/python/algorithms/time_evolvers/test_time_evolution_result.py b/test/python/algorithms/time_evolvers/test_time_evolution_result.py new file mode 100644 index 000000000000..26f21ba93627 --- /dev/null +++ b/test/python/algorithms/time_evolvers/test_time_evolution_result.py @@ -0,0 +1,47 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. +"""Class for testing evolution result.""" +import unittest +from test.python.algorithms import QiskitAlgorithmsTestCase +from qiskit.algorithms import TimeEvolutionResult +from qiskit.opflow import Zero + + +class TestTimeEvolutionResult(QiskitAlgorithmsTestCase): + """Class for testing evolution result and relevant metadata.""" + + def test_init_state(self): + """Tests that a class is initialized correctly with an evolved_state.""" + evolved_state = Zero + evo_result = TimeEvolutionResult(evolved_state=evolved_state) + + expected_state = Zero + expected_aux_ops_evaluated = None + + self.assertEqual(evo_result.evolved_state, expected_state) + self.assertEqual(evo_result.aux_ops_evaluated, expected_aux_ops_evaluated) + + def test_init_observable(self): + """Tests that a class is initialized correctly with an evolved_observable.""" + evolved_state = Zero + evolved_aux_ops_evaluated = [(5j, 5j), (1.0, 8j), (5 + 1j, 6 + 1j)] + evo_result = TimeEvolutionResult(evolved_state, evolved_aux_ops_evaluated) + + expected_state = Zero + expected_aux_ops_evaluated = [(5j, 5j), (1.0, 8j), (5 + 1j, 6 + 1j)] + + self.assertEqual(evo_result.evolved_state, expected_state) + self.assertEqual(evo_result.aux_ops_evaluated, expected_aux_ops_evaluated) + + +if __name__ == "__main__": + unittest.main() diff --git a/test/python/algorithms/time_evolvers/test_trotter_qrte.py b/test/python/algorithms/time_evolvers/test_trotter_qrte.py new file mode 100644 index 000000000000..16efa06549e2 --- /dev/null +++ b/test/python/algorithms/time_evolvers/test_trotter_qrte.py @@ -0,0 +1,204 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2021, 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +""" Test TrotterQRTE. """ + +import unittest + +from test.python.algorithms import QiskitAlgorithmsTestCase +from ddt import ddt, data, unpack +import numpy as np +from numpy.testing import assert_raises + +from qiskit.algorithms.time_evolvers.time_evolution_problem import TimeEvolutionProblem +from qiskit.algorithms.time_evolvers.trotterization.trotter_qrte import TrotterQRTE +from qiskit.primitives import Estimator +from qiskit import QuantumCircuit +from qiskit.circuit.library import ZGate +from qiskit.quantum_info import Statevector, Pauli, SparsePauliOp +from qiskit.utils import algorithm_globals +from qiskit.circuit import Parameter +from qiskit.opflow import PauliSumOp, X, MatrixOp +from qiskit.synthesis import SuzukiTrotter, QDrift + + +@ddt +class TestTrotterQRTE(QiskitAlgorithmsTestCase): + """TrotterQRTE tests.""" + + def setUp(self): + super().setUp() + self.seed = 50 + algorithm_globals.random_seed = self.seed + + @data( + ( + None, + Statevector([0.29192658 - 0.45464871j, 0.70807342 - 0.45464871j]), + ), + ( + SuzukiTrotter(), + Statevector([0.29192658 - 0.84147098j, 0.0 - 0.45464871j]), + ), + ) + @unpack + def test_trotter_qrte_trotter_single_qubit(self, product_formula, expected_state): + """Test for default TrotterQRTE on a single qubit.""" + operator = PauliSumOp(SparsePauliOp([Pauli("X"), Pauli("Z")])) + initial_state = QuantumCircuit(1) + time = 1 + evolution_problem = TimeEvolutionProblem(operator, time, initial_state) + + trotter_qrte = TrotterQRTE(product_formula=product_formula) + evolution_result_state_circuit = trotter_qrte.evolve(evolution_problem).evolved_state + + np.testing.assert_array_almost_equal( + Statevector.from_instruction(evolution_result_state_circuit).data, expected_state.data + ) + + def test_trotter_qrte_trotter_single_qubit_aux_ops(self): + """Test for default TrotterQRTE on a single qubit with auxiliary operators.""" + operator = PauliSumOp(SparsePauliOp([Pauli("X"), Pauli("Z")])) + # LieTrotter with 1 rep + aux_ops = [Pauli("X"), Pauli("Y")] + + initial_state = QuantumCircuit(1) + time = 3 + evolution_problem = TimeEvolutionProblem(operator, time, initial_state, aux_ops) + estimator = Estimator() + + expected_evolved_state = Statevector([0.98008514 + 0.13970775j, 0.01991486 + 0.13970775j]) + + algorithm_globals.random_seed = 0 + trotter_qrte = TrotterQRTE(estimator=estimator) + evolution_result = trotter_qrte.evolve(evolution_problem) + + np.testing.assert_array_almost_equal( + Statevector.from_instruction(evolution_result.evolved_state).data, + expected_evolved_state.data, + ) + + aux_ops_result = evolution_result.aux_ops_evaluated + expected_aux_ops_result = [ + (0.078073, {"variance": 0, "shots": 0}), + (0.268286, {"variance": 0, "shots": 0}), + ] + + means = [element[0] for element in aux_ops_result] + expected_means = [element[0] for element in expected_aux_ops_result] + np.testing.assert_array_almost_equal(means, expected_means) + + vars_and_shots = [element[1] for element in aux_ops_result] + expected_vars_and_shots = [element[1] for element in expected_aux_ops_result] + + for computed, expected in zip(vars_and_shots, expected_vars_and_shots): + self.assertAlmostEqual(computed.pop("variance", 0), expected["variance"], 2) + self.assertEqual(computed.pop("shots", 0), expected["shots"]) + + @data( + ( + PauliSumOp(SparsePauliOp([Pauli("XY"), Pauli("YX")])), + Statevector([-0.41614684 + 0.0j, 0.0 + 0.0j, 0.0 + 0.0j, 0.90929743 + 0.0j]), + ), + ( + PauliSumOp(SparsePauliOp([Pauli("ZZ"), Pauli("ZI"), Pauli("IZ")])), + Statevector([-0.9899925 - 0.14112001j, 0.0 + 0.0j, 0.0 + 0.0j, 0.0 + 0.0j]), + ), + ( + Pauli("YY"), + Statevector([0.54030231 + 0.0j, 0.0 + 0.0j, 0.0 + 0.0j, 0.0 + 0.84147098j]), + ), + ) + @unpack + def test_trotter_qrte_trotter_two_qubits(self, operator, expected_state): + """Test for TrotterQRTE on two qubits with various types of a Hamiltonian.""" + # LieTrotter with 1 rep + initial_state = QuantumCircuit(2) + evolution_problem = TimeEvolutionProblem(operator, 1, initial_state) + + trotter_qrte = TrotterQRTE() + evolution_result = trotter_qrte.evolve(evolution_problem) + + np.testing.assert_array_almost_equal( + Statevector.from_instruction(evolution_result.evolved_state).data, expected_state.data + ) + + @data( + (QuantumCircuit(1), Statevector([0.23071786 - 0.69436148j, 0.4646314 - 0.49874749j])), + ( + QuantumCircuit(1).compose(ZGate(), [0]), + Statevector([0.23071786 - 0.69436148j, 0.4646314 - 0.49874749j]), + ), + ) + @unpack + def test_trotter_qrte_qdrift(self, initial_state, expected_state): + """Test for TrotterQRTE with QDrift.""" + operator = PauliSumOp(SparsePauliOp([Pauli("X"), Pauli("Z")])) + time = 1 + evolution_problem = TimeEvolutionProblem(operator, time, initial_state) + + algorithm_globals.random_seed = 0 + trotter_qrte = TrotterQRTE(product_formula=QDrift()) + evolution_result = trotter_qrte.evolve(evolution_problem) + + np.testing.assert_array_almost_equal( + Statevector.from_instruction(evolution_result.evolved_state).data, expected_state.data + ) + + @data((Parameter("t"), {}), (None, {Parameter("x"): 2}), (None, None)) + @unpack + def test_trotter_qrte_trotter_param_errors(self, t_param, param_value_dict): + """Test TrotterQRTE with raising errors for parameters.""" + operator = Parameter("t") * PauliSumOp(SparsePauliOp([Pauli("X")])) + PauliSumOp( + SparsePauliOp([Pauli("Z")]) + ) + initial_state = QuantumCircuit(1) + self._run_error_test(initial_state, operator, None, None, t_param, param_value_dict) + + @data(([Pauli("X"), Pauli("Y")], None)) + @unpack + def test_trotter_qrte_trotter_aux_ops_errors(self, aux_ops, estimator): + """Test TrotterQRTE with raising errors.""" + operator = PauliSumOp(SparsePauliOp([Pauli("X")])) + PauliSumOp(SparsePauliOp([Pauli("Z")])) + initial_state = QuantumCircuit(1) + self._run_error_test(initial_state, operator, aux_ops, estimator, None, None) + + @data( + (SparsePauliOp([Pauli("X"), Pauli("Z")]), QuantumCircuit(1)), + (X, QuantumCircuit(1)), + (MatrixOp([[1, 1], [0, 1]]), QuantumCircuit(1)), + (PauliSumOp(SparsePauliOp([Pauli("X")])) + PauliSumOp(SparsePauliOp([Pauli("Z")])), None), + ) + @unpack + def test_trotter_qrte_trotter_hamiltonian_errors(self, operator, initial_state): + """Test TrotterQRTE with raising errors for evolution problem content.""" + self._run_error_test(initial_state, operator, None, None, None, None) + + @staticmethod + def _run_error_test(initial_state, operator, aux_ops, estimator, t_param, param_value_dict): + time = 1 + algorithm_globals.random_seed = 0 + trotter_qrte = TrotterQRTE(estimator=estimator) + with assert_raises(ValueError): + evolution_problem = TimeEvolutionProblem( + operator, + time, + initial_state, + aux_ops, + t_param=t_param, + param_value_map=param_value_dict, + ) + _ = trotter_qrte.evolve(evolution_problem) + + +if __name__ == "__main__": + unittest.main() diff --git a/test/python/algorithms/evolvers/variational/__init__.py b/test/python/algorithms/utils/__init__.py similarity index 93% rename from test/python/algorithms/evolvers/variational/__init__.py rename to test/python/algorithms/utils/__init__.py index b3ac36d2a6d9..fdb172d367f0 100644 --- a/test/python/algorithms/evolvers/variational/__init__.py +++ b/test/python/algorithms/utils/__init__.py @@ -1,6 +1,6 @@ # This code is part of Qiskit. # -# (C) Copyright IBM 2021, 2022. +# (C) Copyright IBM 2022. # # This code is licensed under the Apache License, Version 2.0. You may # obtain a copy of this license in the LICENSE.txt file in the root directory diff --git a/test/python/algorithms/utils/test_validate_bounds.py b/test/python/algorithms/utils/test_validate_bounds.py new file mode 100644 index 000000000000..80fe54ee0787 --- /dev/null +++ b/test/python/algorithms/utils/test_validate_bounds.py @@ -0,0 +1,53 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""Test validate bounds.""" + +from test.python.algorithms import QiskitAlgorithmsTestCase + +from unittest.mock import Mock + +import numpy as np + +from qiskit.algorithms.utils import validate_bounds +from qiskit.utils import algorithm_globals + + +class TestValidateBounds(QiskitAlgorithmsTestCase): + """Test the ``validate_bounds`` utility function.""" + + def setUp(self): + super().setUp() + algorithm_globals.random_seed = 0 + self.bounds = [(-np.pi / 2, np.pi / 2)] + self.ansatz = Mock() + + def test_with_no_ansatz_bounds(self): + """Test with no ansatz bounds.""" + self.ansatz.num_parameters = 1 + self.ansatz.parameter_bounds = None + bounds = validate_bounds(self.ansatz) + self.assertEqual(bounds, [(None, None)]) + + def test_with_ansatz_bounds(self): + """Test with ansatz bounds.""" + self.ansatz.num_parameters = 1 + self.ansatz.parameter_bounds = self.bounds + bounds = validate_bounds(self.ansatz) + self.assertEqual(bounds, self.bounds) + + def test_with_mismatched_num_params(self): + """Test with a mismatched number of parameters and bounds""" + self.ansatz.num_parameters = 2 + self.ansatz.parameter_bounds = self.bounds + with self.assertRaises(ValueError): + _ = validate_bounds(self.ansatz) diff --git a/test/python/algorithms/utils/test_validate_initial_point.py b/test/python/algorithms/utils/test_validate_initial_point.py new file mode 100644 index 000000000000..32dd48cf2c95 --- /dev/null +++ b/test/python/algorithms/utils/test_validate_initial_point.py @@ -0,0 +1,50 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""Test validate initial point.""" + +from test.python.algorithms import QiskitAlgorithmsTestCase + +from unittest.mock import Mock + +import numpy as np + +from qiskit.algorithms.utils import validate_initial_point +from qiskit.utils import algorithm_globals + + +class TestValidateInitialPoint(QiskitAlgorithmsTestCase): + """Test the ``validate_initial_point`` utility function.""" + + def setUp(self): + super().setUp() + algorithm_globals.random_seed = 0 + self.ansatz = Mock() + self.ansatz.num_parameters = 1 + + def test_with_no_initial_point_or_bounds(self): + """Test with no user-defined initial point and no ansatz bounds.""" + self.ansatz.parameter_bounds = None + initial_point = validate_initial_point(None, self.ansatz) + np.testing.assert_array_almost_equal(initial_point, [1.721111]) + + def test_with_no_initial_point(self): + """Test with no user-defined initial point with ansatz bounds.""" + self.ansatz.parameter_bounds = [(-np.pi / 2, np.pi / 2)] + initial_point = validate_initial_point(None, self.ansatz) + np.testing.assert_array_almost_equal(initial_point, [0.430278]) + + def test_with_mismatched_params(self): + """Test with mistmatched parameters and bounds..""" + self.ansatz.parameter_bounds = None + with self.assertRaises(ValueError): + _ = validate_initial_point([1.0, 2.0], self.ansatz) diff --git a/test/python/circuit/test_circuit_qasm3.py b/test/python/circuit/test_circuit_qasm3.py index 17daa30fb2a3..324dc1d38b03 100644 --- a/test/python/circuit/test_circuit_qasm3.py +++ b/test/python/circuit/test_circuit_qasm3.py @@ -22,7 +22,7 @@ from ddt import ddt, data from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit, transpile -from qiskit.circuit import Parameter, Qubit, Clbit, Instruction, Gate +from qiskit.circuit import Parameter, Qubit, Clbit, Instruction, Gate, Delay, Barrier from qiskit.test import QiskitTestCase from qiskit.qasm3 import Exporter, dumps, dump, QASM3ExporterError from qiskit.qasm3.exporter import QASM3Builder @@ -1696,6 +1696,60 @@ def test_no_include(self): ) self.assertEqual(Exporter(includes=[]).dumps(circuit), expected_qasm) + def test_unusual_conditions(self): + """Test that special QASM constructs such as ``measure`` are correctly handled when the + Terra instructions have old-style conditions.""" + qc = QuantumCircuit(3, 2) + qc.h(0) + qc.measure(0, 0) + qc.measure(1, 1).c_if(0, True) + qc.reset([0, 1]).c_if(0, True) + with qc.while_loop((qc.clbits[0], True)): + qc.break_loop().c_if(0, True) + qc.continue_loop().c_if(0, True) + # Terra forbids delay and barrier from being conditioned through `c_if`, but in theory they + # should work fine in a dynamic-circuits sense (although what a conditional barrier _means_ + # is a whole other kettle of fish). + delay = Delay(16, "dt") + delay.condition = (qc.clbits[0], True) + qc.append(delay, [0], []) + barrier = Barrier(2) + barrier.condition = (qc.clbits[0], True) + qc.append(barrier, [0, 1], []) + + expected = """ +OPENQASM 3; +include "stdgates.inc"; +bit[2] c; +qubit[3] _all_qubits; +let q = _all_qubits[0:2]; +h q[0]; +c[0] = measure q[0]; +if (c[0] == 1) { + c[1] = measure q[1]; +} +if (c[0] == 1) { + reset q[0]; +} +if (c[0] == 1) { + reset q[1]; +} +while (c[0] == 1) { + if (c[0] == 1) { + break; + } + if (c[0] == 1) { + continue; + } +} +if (c[0] == 1) { + delay[16dt] q[0]; +} +if (c[0] == 1) { + barrier q[0], q[1]; +}""" + self.assertEqual(dumps(qc).strip(), expected.strip()) + @ddt class TestQASM3ExporterFailurePaths(QiskitTestCase): diff --git a/test/python/circuit/test_control_flow_builders.py b/test/python/circuit/test_control_flow_builders.py index 0452ef8a701e..58da7c84ee2b 100644 --- a/test/python/circuit/test_control_flow_builders.py +++ b/test/python/circuit/test_control_flow_builders.py @@ -26,11 +26,12 @@ QuantumRegister, Qubit, ) -from qiskit.circuit.controlflow import ForLoopOp, IfElseOp, WhileLoopOp, BreakLoopOp, ContinueLoopOp +from qiskit.circuit.controlflow import ForLoopOp, IfElseOp, WhileLoopOp from qiskit.circuit.controlflow.builder import ControlFlowBuilderBlock from qiskit.circuit.controlflow.if_else import IfElsePlaceholder from qiskit.circuit.exceptions import CircuitError from qiskit.test import QiskitTestCase +from qiskit.test._canonical import canonicalize_control_flow class SentinelException(Exception): @@ -41,77 +42,6 @@ class SentinelException(Exception): class TestControlFlowBuilders(QiskitTestCase): """Test that the control-flow builder interfaces work, and manage resources correctly.""" - def assertCircuitsEquivalent(self, a, b): - """Assert that two circuits (``a`` and ``b``) contain all the same qubits and clbits, and - then have the same instructions in order, recursing into nested control-flow constructs. - - Relying on ``QuantumCircuit.__eq__`` doesn't work reliably in all cases here, because we - don't care about the order that the builder interface chooses for resources in the inner - blocks. This order is non-deterministic, because internally it uses sets for efficiency, - and the order of iteration through a set is dependent on the hash seed. Instead, we just - need to be a bit more explicit about what we care about. This isn't a full method for - comparing if two circuits are equivalent, but for the restricted cases used in these tests, - where we deliberately construct the expected result to be equal in the good case, it should - test all that is needed. - """ - - self.assertIsInstance(a, QuantumCircuit) - self.assertIsInstance(b, QuantumCircuit) - - # For our purposes here, we don't care about the order bits were added. - self.assertEqual(set(a.qubits), set(b.qubits)) - self.assertEqual(set(a.clbits), set(b.clbits)) - self.assertEqual(set(a.qregs), set(b.qregs)) - self.assertEqual(set(a.cregs), set(b.cregs)) - self.assertEqual(len(a.data), len(b.data)) - - for a_i, b_i in zip(a.data, b.data): - # Make sure that the operations are the same. - self.assertEqual(type(a_i.operation), type(b_i.operation)) - self.assertEqual( - hasattr(a_i.operation, "condition"), hasattr(b_i.operation, "condition") - ) - if hasattr(a_i.operation, "condition") and not isinstance( - a_i.operation, (IfElseOp, WhileLoopOp) - ): - self.assertEqual(a_i.operation.condition, b_i.operation.condition) - self.assertEqual(hasattr(a_i.operation, "label"), hasattr(b_i.operation, "label")) - if hasattr(a_i.operation, "condition"): - self.assertEqual(a_i.operation.label, b_i.operation.label) - # If it's a block op, we don't care what order the resources are specified in. - if isinstance(a_i.operation, WhileLoopOp): - self.assertEqual(set(a_i.qubits), set(b_i.qubits)) - self.assertEqual(set(a_i.clbits), set(b_i.clbits)) - self.assertEqual(a_i.operation.condition, b_i.operation.condition) - self.assertCircuitsEquivalent(a_i.operation.blocks[0], b_i.operation.blocks[0]) - elif isinstance(a_i.operation, ForLoopOp): - self.assertEqual(set(a_i.qubits), set(b_i.qubits)) - self.assertEqual(set(a_i.clbits), set(b_i.clbits)) - a_indexset, a_loop_parameter, a_body = a_i.operation.params - b_indexset, b_loop_parameter, b_body = b_i.operation.params - self.assertEqual(a_loop_parameter is None, b_loop_parameter is None) - self.assertEqual(a_indexset, b_indexset) - if a_loop_parameter is not None: - a_body = a_body.assign_parameters({a_loop_parameter: b_loop_parameter}) - self.assertCircuitsEquivalent(a_body, b_body) - elif isinstance(a_i.operation, IfElseOp): - self.assertEqual(set(a_i.qubits), set(b_i.qubits)) - self.assertEqual(set(a_i.clbits), set(b_i.clbits)) - self.assertEqual(a_i.operation.condition, b_i.operation.condition) - self.assertEqual(len(a_i.operation.blocks), len(b_i.operation.blocks)) - self.assertCircuitsEquivalent(a_i.operation.blocks[0], b_i.operation.blocks[0]) - if len(a_i.operation.blocks) > 1: - self.assertCircuitsEquivalent(a_i.operation.blocks[1], b_i.operation.blocks[1]) - elif isinstance(a_i.operation, (BreakLoopOp, ContinueLoopOp)): - self.assertEqual(set(a_i.qubits), set(b_i.qubits)) - self.assertEqual(set(a_i.clbits), set(b_i.clbits)) - else: - # For any other op, we care that the resources are the same, and in the same order, - # but we don't mind what sort of iterable they're contained in. - self.assertEqual(tuple(a_i.qubits), tuple(b_i.qubits)) - self.assertEqual(tuple(a_i.clbits), tuple(b_i.clbits)) - self.assertEqual(a_i.operation, b_i.operation) - def test_if_simple(self): """Test a simple if statement builds correctly, in the midst of other instructions.""" qubits = [Qubit(), Qubit()] @@ -143,7 +73,7 @@ def test_if_simple(self): expected.measure(qubits[0], clbits[1]) expected.if_test((clbits[1], 0), if_true1, [qubits[0], qubits[1]], [clbits[1]]) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) def test_if_register(self): """Test a simple if statement builds correctly, when using a register as the condition. @@ -163,7 +93,7 @@ def test_if_register(self): expected.measure(qr, cr) expected.if_test((cr, 0), if_true0, [qr[0]], [cr[:]]) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) def test_register_condition_in_nested_block(self): """Test that nested blocks can use registers of the outermost circuits as conditions, and @@ -202,7 +132,7 @@ def test_register_condition_in_nested_block(self): expected = QuantumCircuit(qr, clbits, cr1, cr2, cr3, cr4) expected.for_loop(range(3), None, for_body, [qr[0]], clbits + list(cr1)) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) with self.subTest("for/while"): test = QuantumCircuit(qr, clbits, cr1, cr2, cr3, cr4) @@ -229,7 +159,7 @@ def test_register_condition_in_nested_block(self): expected = QuantumCircuit(qr, clbits, cr1, cr2, cr3, cr4) expected.for_loop(range(3), None, for_body, [qr[0]], clbits + list(cr1)) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) with self.subTest("if/c_if"): test = QuantumCircuit(qr, clbits, cr1, cr2, cr3, cr4) @@ -237,14 +167,14 @@ def test_register_condition_in_nested_block(self): test.x(0).c_if(cr2, 0) test.z(0).c_if(cr3, 0) - true_body = QuantumCircuit([qr[0]], cr1, cr2, cr3) + true_body = QuantumCircuit([qr[0]], clbits, cr1, cr2, cr3) true_body.x(0).c_if(cr2, 0) true_body.z(0).c_if(cr3, 0) expected = QuantumCircuit(qr, clbits, cr1, cr2, cr3, cr4) expected.if_test((cr1, 0), true_body, [qr[0]], clbits + list(cr1)) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) with self.subTest("while/else/c_if"): test = QuantumCircuit(qr, clbits, cr1, cr2, cr3, cr4) @@ -259,13 +189,13 @@ def test_register_condition_in_nested_block(self): false_body = QuantumCircuit([qr[0]], cr2, cr3, cr4) false_body.z(0).c_if(cr4, 0) - while_body = QuantumCircuit([qr[0]], cr1, cr2, cr3, cr4) + while_body = QuantumCircuit([qr[0]], clbits, cr1, cr2, cr3, cr4) while_body.if_else((cr2, 0), true_body, false_body, [qr[0]], clbits) expected = QuantumCircuit(qr, clbits, cr1, cr2, cr3, cr4) expected.while_loop((cr1, 0), while_body, [qr[0]], clbits + list(cr1)) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) def test_if_else_simple(self): """Test a simple if/else statement builds correctly, in the midst of other instructions. @@ -310,7 +240,7 @@ def test_if_else_simple(self): expected.measure(qubits[0], clbits[1]) expected.if_else((clbits[1], 0), if_true1, if_false1, [qubits[0], qubits[1]], [clbits[1]]) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) def test_if_else_resources_expand_true_superset_false(self): """Test that the resources of the if and else bodies come out correctly if the true body @@ -340,7 +270,7 @@ def test_if_else_resources_expand_true_superset_false(self): expected.measure(qubits[0], clbits[0]) expected.if_else((clbits[0], 0), if_true0, if_false0, qubits, clbits) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) def test_if_else_resources_expand_false_superset_true(self): """Test that the resources of the if and else bodies come out correctly if the false body @@ -371,7 +301,7 @@ def test_if_else_resources_expand_false_superset_true(self): expected.measure(qubits[0], clbits[0]) expected.if_else((clbits[0], 0), if_true0, if_false0, qubits, clbits) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) def test_if_else_resources_expand_true_false_symmetric_difference(self): """Test that the resources of the if and else bodies come out correctly if the sets of @@ -400,7 +330,7 @@ def test_if_else_resources_expand_true_false_symmetric_difference(self): expected.measure(qubits[0], clbits[0]) expected.if_else((clbits[0], 0), if_true0, if_false0, qubits, [clbits[0]]) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) def test_if_else_empty_branches(self): """Test that the context managers can cope with a body being empty.""" @@ -439,7 +369,7 @@ def test_if_else_empty_branches(self): expected.if_else(cond, empty_with_qubit, only_x, [qubits[0]], [clbits[0]]) expected.if_else(cond, empty, empty, [], [clbits[0]]) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) def test_if_else_tracks_registers(self): """Test that classical registers used in both branches of if statements are tracked @@ -466,7 +396,7 @@ def test_if_else_tracks_registers(self): (cr[0], 0), true_body, false_body, [qr[0]], list(cr[0]) + list(cr[1]) + list(cr[2]) ) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) def test_if_else_nested(self): """Test that the if and else context managers can be nested, and don't interfere with each @@ -497,7 +427,7 @@ def test_if_else_nested(self): expected.if_else( outer_cond, outer_true, outer_false, [qubits[0], qubits[1]], [clbits[0], clbits[2]] ) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) with self.subTest("if (if else) else"): test = QuantumCircuit(qubits, clbits) @@ -523,7 +453,7 @@ def test_if_else_nested(self): expected = QuantumCircuit(qubits, clbits) expected.if_else(outer_cond, outer_true, outer_false, qubits, [clbits[0], clbits[2]]) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) def test_break_continue_expand_to_match_arguments_simple(self): """Test that ``break`` and ``continue`` statements expand to include all resources in the @@ -548,7 +478,7 @@ def test_break_continue_expand_to_match_arguments_simple(self): expected = QuantumCircuit(qubits, clbits) expected.for_loop(range(2), None, body, qubits, [clbits[0]]) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) with self.subTest("while"): cond = (clbits[0], 0) @@ -568,7 +498,7 @@ def test_break_continue_expand_to_match_arguments_simple(self): expected = QuantumCircuit(qubits, clbits) expected.while_loop(cond, body, qubits, [clbits[0]]) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) @ddt.data(QuantumCircuit.break_loop, QuantumCircuit.continue_loop) def test_break_continue_accept_c_if(self, loop_operation): @@ -590,7 +520,7 @@ def test_break_continue_accept_c_if(self, loop_operation): expected = QuantumCircuit(qubits, clbits) expected.for_loop(range(2), None, body, [qubits[0]], [clbits[1]]) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) with self.subTest("while"): cond = (clbits[0], 0) @@ -606,7 +536,7 @@ def test_break_continue_accept_c_if(self, loop_operation): expected = QuantumCircuit(qubits, clbits) expected.while_loop(cond, body, [qubits[0]], clbits) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) @ddt.data(QuantumCircuit.break_loop, QuantumCircuit.continue_loop) def test_break_continue_only_expand_to_nearest_loop(self, loop_operation): @@ -638,7 +568,7 @@ def test_break_continue_only_expand_to_nearest_loop(self, loop_operation): expected = QuantumCircuit(qubits, clbits) expected.for_loop(range(2), None, outer_body, [qubits[0], qubits[1]], [clbits[1]]) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) with self.subTest("for while"): test = QuantumCircuit(qubits, clbits) @@ -663,7 +593,7 @@ def test_break_continue_only_expand_to_nearest_loop(self, loop_operation): range(2), None, outer_body, [qubits[0], qubits[1]], [clbits[0], clbits[1]] ) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) with self.subTest("while for"): test = QuantumCircuit(qubits, clbits) @@ -686,7 +616,7 @@ def test_break_continue_only_expand_to_nearest_loop(self, loop_operation): expected = QuantumCircuit(qubits, clbits) expected.while_loop(cond_outer, outer_body, [qubits[0], qubits[1]], [clbits[1]]) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) with self.subTest("while while"): test = QuantumCircuit(qubits, clbits) @@ -711,7 +641,7 @@ def test_break_continue_only_expand_to_nearest_loop(self, loop_operation): cond_outer, outer_body, [qubits[0], qubits[1]], [clbits[0], clbits[1]] ) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) with self.subTest("for (for, for)"): # This test is specifically to check that multiple inner loops with different numbers of @@ -744,7 +674,7 @@ def test_break_continue_only_expand_to_nearest_loop(self, loop_operation): expected = QuantumCircuit(qubits, clbits) expected.for_loop(range(2), None, outer_body, qubits, [clbits[1]]) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) @ddt.data(QuantumCircuit.break_loop, QuantumCircuit.continue_loop) def test_break_continue_nested_in_if(self, loop_operation): @@ -790,7 +720,7 @@ def test_break_continue_nested_in_if(self, loop_operation): expected = QuantumCircuit(qubits, clbits) expected.for_loop(range(2), None, loop_body, [qubits[0]], [clbits[0], clbits[2]]) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) with self.subTest("for/else"): test = QuantumCircuit(qubits, clbits) @@ -825,7 +755,7 @@ def test_break_continue_nested_in_if(self, loop_operation): range(2), None, loop_body, [qubits[0], qubits[1]], [clbits[0], clbits[2]] ) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) with self.subTest("while/if"): test = QuantumCircuit(qubits, clbits) @@ -853,7 +783,7 @@ def test_break_continue_nested_in_if(self, loop_operation): cond_outer, loop_body, [qubits[0]], [clbits[0], clbits[1], clbits[2]] ) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) with self.subTest("while/else"): test = QuantumCircuit(qubits, clbits) @@ -892,7 +822,7 @@ def test_break_continue_nested_in_if(self, loop_operation): cond_outer, loop_body, [qubits[0], qubits[1]], [clbits[0], clbits[1], clbits[2]] ) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) @ddt.data(QuantumCircuit.break_loop, QuantumCircuit.continue_loop) def test_break_continue_deeply_nested_in_if(self, loop_operation): @@ -961,7 +891,7 @@ def test_break_continue_deeply_nested_in_if(self, loop_operation): expected = QuantumCircuit(qubits, clbits) expected.for_loop(range(2), None, loop_body, qubits[:4], clbits[:2] + clbits[3:7]) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) with self.subTest("for/if/else"): test = QuantumCircuit(qubits, clbits) @@ -1028,7 +958,7 @@ def test_break_continue_deeply_nested_in_if(self, loop_operation): expected = QuantumCircuit(qubits, clbits) expected.for_loop(range(2), None, loop_body, qubits[:7], clbits[:2] + clbits[3:11]) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) with self.subTest("for/else/else"): # Look on my works, ye Mighty, and despair! @@ -1183,7 +1113,7 @@ def test_break_continue_deeply_nested_in_if(self, loop_operation): expected = QuantumCircuit(qubits, clbits) expected.for_loop(range(2), None, loop_body, loop_qubits, loop_clbits) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) # And now we repeat everything for "while" loops... Trying to parameterize the test over # 'for/while' mostly just ends up in it being a bit illegible, because so many parameters @@ -1232,7 +1162,7 @@ def test_break_continue_deeply_nested_in_if(self, loop_operation): expected = QuantumCircuit(qubits, clbits) expected.while_loop(cond_loop, loop_body, qubits[:4], clbits[:7]) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) with self.subTest("while/if/else"): test = QuantumCircuit(qubits, clbits) @@ -1297,7 +1227,7 @@ def test_break_continue_deeply_nested_in_if(self, loop_operation): expected = QuantumCircuit(qubits, clbits) expected.while_loop(cond_loop, loop_body, qubits[:7], clbits[:11]) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) with self.subTest("while/else/else"): test = QuantumCircuit(qubits, clbits) @@ -1448,7 +1378,7 @@ def test_break_continue_deeply_nested_in_if(self, loop_operation): expected = QuantumCircuit(qubits, clbits) expected.while_loop(cond_loop, loop_body, loop_qubits, loop_clbits) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) def test_for_handles_iterables_correctly(self): """Test that the ``indexset`` in ``for`` loops is handled the way we expect. In general, @@ -1614,7 +1544,7 @@ def test_access_of_resources_from_direct_append(self): expected = QuantumCircuit(qubits, clbits) expected.if_test(cond, true_body, [qubits[1]], clbits) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) with self.subTest("else"): test = QuantumCircuit(qubits, clbits) @@ -1629,7 +1559,7 @@ def test_access_of_resources_from_direct_append(self): expected = QuantumCircuit(qubits, clbits) expected.if_else(cond, true_body, false_body, [qubits[1]], clbits) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) with self.subTest("for"): test = QuantumCircuit(qubits, clbits) @@ -1641,7 +1571,7 @@ def test_access_of_resources_from_direct_append(self): expected = QuantumCircuit(qubits, clbits) expected.for_loop(range(2), None, body, [qubits[1]], [clbits[1]]) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) with self.subTest("while"): test = QuantumCircuit(qubits, clbits) @@ -1653,7 +1583,7 @@ def test_access_of_resources_from_direct_append(self): expected = QuantumCircuit(qubits, clbits) expected.while_loop(cond, body, [qubits[1]], clbits) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) def test_access_of_clbit_from_c_if(self): """Test that resources added from a call to :meth:`.InstructionSet.c_if` propagate through @@ -1803,7 +1733,7 @@ def test_accept_broadcast_gates(self): expected = QuantumCircuit(qubits, clbits) expected.if_test(cond, body, [qubits[0], qubits[1]], [clbits[0], clbits[1]]) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) with self.subTest("else"): test = QuantumCircuit(qubits, clbits) @@ -1822,7 +1752,7 @@ def test_accept_broadcast_gates(self): cond, true_body, false_body, [qubits[0], qubits[1]], [clbits[0], clbits[1]] ) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) with self.subTest("for"): test = QuantumCircuit(qubits, clbits) @@ -1836,7 +1766,7 @@ def test_accept_broadcast_gates(self): expected = QuantumCircuit(qubits, clbits) expected.for_loop(range(2), None, body, [qubits[0], qubits[1]], [clbits[0], clbits[1]]) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) with self.subTest("while"): test = QuantumCircuit(qubits, clbits) @@ -1850,7 +1780,7 @@ def test_accept_broadcast_gates(self): expected = QuantumCircuit(qubits, clbits) expected.while_loop(cond, body, [qubits[0], qubits[1]], [clbits[0], clbits[1]]) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) with self.subTest("if inside for"): test = QuantumCircuit(qubits, clbits) @@ -1870,7 +1800,7 @@ def test_accept_broadcast_gates(self): range(2), None, for_body, [qubits[0], qubits[1]], [clbits[0], clbits[1]] ) - self.assertCircuitsEquivalent(test, expected) + self.assertEqual(canonicalize_control_flow(test), canonicalize_control_flow(expected)) def test_labels_propagated_to_instruction(self): """Test that labels given to the circuit-builder interface are passed through.""" @@ -2081,7 +2011,7 @@ def test_inplace_compose_within_builder(self): with expected.if_test((expected.clbits[0], 1)): expected.x(0) - self.assertCircuitsEquivalent(outer, expected) + self.assertEqual(canonicalize_control_flow(outer), canonicalize_control_flow(expected)) with self.subTest("else"): outer = base.copy() @@ -2096,7 +2026,7 @@ def test_inplace_compose_within_builder(self): with else_: expected.x(0) - self.assertCircuitsEquivalent(outer, expected) + self.assertEqual(canonicalize_control_flow(outer), canonicalize_control_flow(expected)) with self.subTest("for"): outer = base.copy() @@ -2107,7 +2037,7 @@ def test_inplace_compose_within_builder(self): with expected.for_loop(range(3)): expected.x(0) - self.assertCircuitsEquivalent(outer, expected) + self.assertEqual(canonicalize_control_flow(outer), canonicalize_control_flow(expected)) with self.subTest("while"): outer = base.copy() @@ -2118,7 +2048,7 @@ def test_inplace_compose_within_builder(self): with expected.while_loop((outer.clbits[0], 0)): expected.x(0) - self.assertCircuitsEquivalent(outer, expected) + self.assertEqual(canonicalize_control_flow(outer), canonicalize_control_flow(expected)) @ddt.ddt diff --git a/test/python/classical_function_compiler/bad_examples.py b/test/python/classical_function_compiler/bad_examples.py index a2c51c1d801d..8ecd84efcfc3 100644 --- a/test/python/classical_function_compiler/bad_examples.py +++ b/test/python/classical_function_compiler/bad_examples.py @@ -14,7 +14,7 @@ """These are bad examples and raise errors in in the classicalfunction compiler""" -from qiskit.circuit import Int1, Int2 +from qiskit.circuit.classicalfunction.types import Int1, Int2 def id_no_type_arg(a) -> Int1: diff --git a/test/python/classical_function_compiler/examples.py b/test/python/classical_function_compiler/examples.py index 429104d198ed..8001a27b0868 100644 --- a/test/python/classical_function_compiler/examples.py +++ b/test/python/classical_function_compiler/examples.py @@ -14,7 +14,7 @@ """These examples should be handle by the classicalfunction compiler""" -from qiskit.circuit import Int1 +from qiskit.circuit.classicalfunction.types import Int1 def identity(a: Int1) -> Int1: diff --git a/test/python/converters/test_circuit_to_dagdependency.py b/test/python/converters/test_circuit_to_dagdependency.py index 1c67d4bf187a..14dbd7c3f6df 100644 --- a/test/python/converters/test_circuit_to_dagdependency.py +++ b/test/python/converters/test_circuit_to_dagdependency.py @@ -41,6 +41,24 @@ def test_circuit_and_dag_canonical(self): circuit_out = dagdependency_to_circuit(dag_dependency) self.assertEqual(circuit_out, circuit_in) + def test_circuit_and_dag_canonical2(self): + """Check convert to dag dependency and back + also when the option ``create_preds_and_succs`` is False.""" + qr = QuantumRegister(3) + cr = ClassicalRegister(3) + circuit_in = QuantumCircuit(qr, cr) + circuit_in.h(qr[0]) + circuit_in.h(qr[1]) + circuit_in.measure(qr[0], cr[0]) + circuit_in.measure(qr[1], cr[1]) + circuit_in.x(qr[0]).c_if(cr, 0x3) + circuit_in.measure(qr[0], cr[0]) + circuit_in.measure(qr[1], cr[1]) + circuit_in.measure(qr[2], cr[2]) + dag_dependency = circuit_to_dagdependency(circuit_in, create_preds_and_succs=False) + circuit_out = dagdependency_to_circuit(dag_dependency) + self.assertEqual(circuit_out, circuit_in) + def test_calibrations(self): """Test that calibrations are properly copied over.""" circuit_in = QuantumCircuit(1) diff --git a/test/python/converters/test_dag_to_dagdependency.py b/test/python/converters/test_dag_to_dagdependency.py index e62f500eee57..e1785cfcc1ab 100644 --- a/test/python/converters/test_dag_to_dagdependency.py +++ b/test/python/converters/test_dag_to_dagdependency.py @@ -45,6 +45,27 @@ def test_circuit_and_dag_dependency(self): self.assertEqual(dag_out, dag_in) + def test_circuit_and_dag_dependency2(self): + """Check convert to dag dependency and back + also when the option ``create_preds_and_succs`` is False.""" + qr = QuantumRegister(3) + cr = ClassicalRegister(3) + circuit_in = QuantumCircuit(qr, cr) + circuit_in.h(qr[0]) + circuit_in.h(qr[1]) + circuit_in.measure(qr[0], cr[0]) + circuit_in.measure(qr[1], cr[1]) + circuit_in.x(qr[0]).c_if(cr, 0x3) + circuit_in.measure(qr[0], cr[0]) + circuit_in.measure(qr[1], cr[1]) + circuit_in.measure(qr[2], cr[2]) + dag_in = circuit_to_dag(circuit_in) + + dag_dependency = dag_to_dagdependency(dag_in, create_preds_and_succs=False) + dag_out = dagdependency_to_dag(dag_dependency) + + self.assertEqual(dag_out, dag_in) + def test_metadata(self): """Test circuit metadata is preservered through conversion.""" meta_dict = dict(experiment_id="1234", execution_number=4) diff --git a/test/python/dagcircuit/test_dagcircuit.py b/test/python/dagcircuit/test_dagcircuit.py index 8885dcf31a40..8cce41aed1e5 100644 --- a/test/python/dagcircuit/test_dagcircuit.py +++ b/test/python/dagcircuit/test_dagcircuit.py @@ -1480,12 +1480,12 @@ def test_substitute_circuit_one_back(self): def test_raise_if_substituting_dag_modifies_its_conditional(self): """Verify that we raise if the input dag modifies any of the bits in node.op.condition.""" - # Our unroller's rely on substitute_node_with_dag carrying the condition - # from the node over to the input dag, which it does by making every - # node in the input dag conditioned over the same bits. However, if the - # input dag e.g. measures to one of those bits, the behavior of the - # remainder of the DAG would be different, so detect and raise in that - # case. + # The `propagate_condition=True` argument (and behaviour of `substitute_node_with_dag` + # before the parameter was added) treats the replacement DAG as implementing only the + # un-controlled operation. The original contract considers it an error to replace a node + # with an operation that may modify one of the condition bits in case this affects + # subsequent operations, so when `propagate_condition=True`, this error behaviour is + # maintained. instr = Instruction("opaque", 1, 1, []) instr.condition = self.condition @@ -1499,9 +1499,185 @@ def test_raise_if_substituting_dag_modifies_its_conditional(self): sub_dag.apply_operation_back(Measure(), [sub_qr[0]], [sub_cr[0]]) - with self.assertRaises(DAGCircuitError): + msg = "cannot propagate a condition to an element to acts on those bits" + with self.assertRaises(DAGCircuitError, msg=msg): self.dag.substitute_node_with_dag(instr_node, sub_dag) + def test_substitute_without_propagating_bit_conditional(self): + """Test that `substitute_node_with_dag` functions when the condition is not propagated + through to a DAG that implements the conditional logical by other means.""" + base_qubits = [Qubit(), Qubit()] + base_clbits = [Clbit()] + base = DAGCircuit() + base.add_qubits(base_qubits) + base.add_clbits(base_clbits) + base.apply_operation_back(HGate(), [base_qubits[0]], []) + conditioned = CZGate() + conditioned.condition = (base_clbits[0], True) + target = base.apply_operation_back(conditioned, base_qubits, []) + base.apply_operation_back(XGate(), [base_qubits[1]], []) + + sub = QuantumCircuit(2, 1) + sub.h(0) + sub.cx(0, 1).c_if(0, True) + sub.h(0) + + expected = DAGCircuit() + expected.add_qubits(base_qubits) + expected.add_clbits(base_clbits) + expected.apply_operation_back(HGate(), [base_qubits[0]], []) + expected.apply_operation_back(HGate(), [base_qubits[0]], []) + cx = CXGate() + cx.condition = (base_clbits[0], True) + expected.apply_operation_back(cx, base_qubits, []) + expected.apply_operation_back(HGate(), [base_qubits[0]], []) + expected.apply_operation_back(XGate(), [base_qubits[1]], []) + + base.substitute_node_with_dag(target, circuit_to_dag(sub), propagate_condition=False) + self.assertEqual(base, expected) + + def test_substitute_without_propagating_register_conditional(self): + """Test that `substitute_node_with_dag` functions when the condition is not propagated + through to a DAG that implements the conditional logical by other means.""" + base_qubits = [Qubit(), Qubit()] + base_creg = ClassicalRegister(2) + base = DAGCircuit() + base.add_qubits(base_qubits) + base.add_creg(base_creg) + base.apply_operation_back(HGate(), [base_qubits[0]], []) + conditioned = CZGate() + conditioned.condition = (base_creg, 3) + target = base.apply_operation_back(conditioned, base_qubits, []) + base.apply_operation_back(XGate(), [base_qubits[1]], []) + + sub = QuantumCircuit(QuantumRegister(2), ClassicalRegister(2)) + sub.h(0) + sub.cx(0, 1).c_if(sub.cregs[0], 3) + sub.h(0) + + expected = DAGCircuit() + expected.add_qubits(base_qubits) + expected.add_creg(base_creg) + expected.apply_operation_back(HGate(), [base_qubits[0]], []) + expected.apply_operation_back(HGate(), [base_qubits[0]], []) + cx = CXGate() + cx.condition = (base_creg, 3) + expected.apply_operation_back(cx, base_qubits, []) + expected.apply_operation_back(HGate(), [base_qubits[0]], []) + expected.apply_operation_back(XGate(), [base_qubits[1]], []) + + base.substitute_node_with_dag(target, circuit_to_dag(sub), propagate_condition=False) + self.assertEqual(base, expected) + + def test_substitute_with_provided_wire_map_propagate_condition(self): + """Test that the ``wires`` argument can be a direct mapping while propagating the + condition.""" + base_qubits = [Qubit(), Qubit()] + base_clbits = [Clbit()] + base = DAGCircuit() + base.add_qubits(base_qubits) + base.add_clbits(base_clbits) + base.apply_operation_back(HGate(), [base_qubits[0]], []) + conditioned_cz = CZGate() + conditioned_cz.condition = (base_clbits[0], True) + target = base.apply_operation_back(conditioned_cz, base_qubits, []) + base.apply_operation_back(XGate(), [base_qubits[1]], []) + + # Note that `sub` here doesn't have any classical bits at all. + sub = QuantumCircuit(2) + sub.h(0) + sub.cx(0, 1) + sub.h(0) + + conditioned_h = HGate() + conditioned_h.condition = conditioned_cz.condition + conditioned_cx = CXGate() + conditioned_cx.condition = conditioned_cz.condition + + expected = DAGCircuit() + expected.add_qubits(base_qubits) + expected.add_clbits(base_clbits) + expected.apply_operation_back(HGate(), [base_qubits[0]], []) + expected.apply_operation_back(conditioned_h.copy(), [base_qubits[0]], []) + expected.apply_operation_back(conditioned_cx, base_qubits, []) + expected.apply_operation_back(conditioned_h.copy(), [base_qubits[0]], []) + expected.apply_operation_back(XGate(), [base_qubits[1]], []) + + wire_map = dict(zip(sub.qubits, base_qubits)) + base.substitute_node_with_dag( + target, circuit_to_dag(sub), propagate_condition=True, wires=wire_map + ) + self.assertEqual(base, expected) + + def test_substitute_with_provided_wire_map_no_propagate_condition(self): + """Test that the ``wires`` argument can be a direct mapping while not propagating the + condition.""" + base_qubits = [Qubit(), Qubit()] + base_clbits = [Clbit()] + base = DAGCircuit() + base.add_qubits(base_qubits) + base.add_clbits(base_clbits) + base.apply_operation_back(HGate(), [base_qubits[0]], []) + conditioned_cz = CZGate() + conditioned_cz.condition = (base_clbits[0], True) + target = base.apply_operation_back(conditioned_cz, base_qubits, []) + base.apply_operation_back(XGate(), [base_qubits[1]], []) + + sub = QuantumCircuit(2, 1) + sub.h(0) + sub.cx(0, 1).c_if(0, True) + sub.h(0) + + conditioned_cx = CXGate() + conditioned_cx.condition = conditioned_cz.condition + + expected = DAGCircuit() + expected.add_qubits(base_qubits) + expected.add_clbits(base_clbits) + expected.apply_operation_back(HGate(), [base_qubits[0]], []) + expected.apply_operation_back(HGate(), [base_qubits[0]], []) + expected.apply_operation_back(conditioned_cx, base_qubits, []) + expected.apply_operation_back(HGate(), [base_qubits[0]], []) + expected.apply_operation_back(XGate(), [base_qubits[1]], []) + + wire_map = dict(zip(sub.qubits, base_qubits)) + wire_map[sub.clbits[0]] = base_clbits[0] + base.substitute_node_with_dag( + target, circuit_to_dag(sub), propagate_condition=False, wires=wire_map + ) + self.assertEqual(base, expected) + + def test_creates_additional_alias_register(self): + """Test that a sub-condition that has no associated register in the main DAG will be + translated faithfully by adding a new aliasing register.""" + base_qreg = QuantumRegister(2) + base_creg = ClassicalRegister(3) + base = DAGCircuit() + base.add_qreg(base_qreg) + base.add_creg(base_creg) + target = base.apply_operation_back(Instruction("dummy", 2, 2, []), base_qreg, base_creg[:2]) + + sub = QuantumCircuit(QuantumRegister(2), ClassicalRegister(2)) + sub.cx(0, 1).c_if(sub.cregs[0], 3) + + base.substitute_node_with_dag(target, circuit_to_dag(sub)) + + # Check that a new register was added, and retrieve it to verify the bits in it. + self.assertEqual(len(base.cregs), 2) + cregs = base.cregs.copy() + cregs.pop(base_creg.name) + added_creg = tuple(cregs.values())[0] + self.assertEqual(list(added_creg), list(base_creg[:2])) + + expected = DAGCircuit() + expected.add_qreg(base_qreg) + expected.add_creg(base_creg) + expected.add_creg(added_creg) + cx = CXGate() + cx.condition = (added_creg, 3) + expected.apply_operation_back(cx, base_qreg, []) + self.assertEqual(base, expected) + @ddt class TestDagSubstituteNode(QiskitTestCase): diff --git a/test/python/dagcircuit/test_dagdependency.py b/test/python/dagcircuit/test_dagdependency.py index 6c49d4086071..0bec2cee311d 100644 --- a/test/python/dagcircuit/test_dagdependency.py +++ b/test/python/dagcircuit/test_dagdependency.py @@ -243,6 +243,36 @@ def test_successors_predecessors(self): predecessors_fourth = self.dag.predecessors(3) self.assertEqual(predecessors_fourth, []) + def test_option_create_preds_and_succs_is_false(self): + """Test that when the option ``create_preds_and_succs`` is False, + direct successors and predecessors still get constructed, but + transitive successors and predecessors do not.""" + + circuit = QuantumCircuit(self.qreg, self.creg) + circuit.h(self.qreg[0]) + circuit.x(self.qreg[0]) + circuit.h(self.qreg[0]) + circuit.x(self.qreg[1]) + circuit.h(self.qreg[0]) + circuit.measure(self.qreg[0], self.creg[0]) + + self.dag = circuit_to_dagdependency(circuit, create_preds_and_succs=False) + + self.assertEqual(self.dag.direct_predecessors(1), [0]) + self.assertEqual(self.dag.direct_successors(1), [2, 4]) + self.assertEqual(self.dag.predecessors(1), []) + self.assertEqual(self.dag.successors(1), []) + + self.assertEqual(self.dag.direct_predecessors(3), []) + self.assertEqual(self.dag.direct_successors(3), []) + self.assertEqual(self.dag.predecessors(3), []) + self.assertEqual(self.dag.successors(3), []) + + self.assertEqual(self.dag.direct_predecessors(5), [2, 4]) + self.assertEqual(self.dag.direct_successors(5), []) + self.assertEqual(self.dag.predecessors(5), []) + self.assertEqual(self.dag.successors(5), []) + class TestDagProperties(QiskitTestCase): """Test the DAG properties.""" diff --git a/test/python/primitives/test_estimator.py b/test/python/primitives/test_estimator.py index 58212a358627..36b9682cc545 100644 --- a/test/python/primitives/test_estimator.py +++ b/test/python/primitives/test_estimator.py @@ -18,7 +18,6 @@ from qiskit.circuit import QuantumCircuit from qiskit.circuit.library import RealAmplitudes -from qiskit.exceptions import QiskitError from qiskit.opflow import PauliSumOp from qiskit.primitives import Estimator, EstimatorResult from qiskit.providers import JobV1 @@ -288,17 +287,17 @@ def test_errors(self): with self.assertWarns(DeprecationWarning): est = Estimator([qc, qc2], [op, op2], [[]] * 2) - with self.assertRaises(QiskitError), self.assertWarns(DeprecationWarning): + with self.assertRaises(ValueError), self.assertWarns(DeprecationWarning): est([0], [1], [[]]) - with self.assertRaises(QiskitError), self.assertWarns(DeprecationWarning): + with self.assertRaises(ValueError), self.assertWarns(DeprecationWarning): est([1], [0], [[]]) - with self.assertRaises(QiskitError), self.assertWarns(DeprecationWarning): + with self.assertRaises(ValueError), self.assertWarns(DeprecationWarning): est([0], [0], [[1e4]]) - with self.assertRaises(QiskitError), self.assertWarns(DeprecationWarning): + with self.assertRaises(ValueError), self.assertWarns(DeprecationWarning): est([1], [1], [[1, 2]]) - with self.assertRaises(QiskitError), self.assertWarns(DeprecationWarning): + with self.assertRaises(ValueError), self.assertWarns(DeprecationWarning): est([0, 1], [1], [[1]]) - with self.assertRaises(QiskitError), self.assertWarns(DeprecationWarning): + with self.assertRaises(ValueError), self.assertWarns(DeprecationWarning): est([0], [0, 1], [[1]]) def test_empty_parameter(self): @@ -362,7 +361,7 @@ def test_passing_objects(self): circuit = QuantumCircuit(2) with self.assertWarns(DeprecationWarning): estimator = Estimator([self.ansatz], [self.observable]) - with self.assertRaises(QiskitError), self.assertWarns(DeprecationWarning): + with self.assertRaises(ValueError), self.assertWarns(DeprecationWarning): result = estimator( circuits=[self.ansatz, circuit], observables=[self.observable, self.observable], @@ -373,7 +372,7 @@ def test_passing_objects(self): observable = SparsePauliOp(["ZX"]) with self.assertWarns(DeprecationWarning): estimator = Estimator([self.ansatz], [self.observable]) - with self.assertRaises(QiskitError), self.assertWarns(DeprecationWarning): + with self.assertRaises(ValueError), self.assertWarns(DeprecationWarning): result = estimator( circuits=[self.ansatz, self.ansatz], observables=[observable, self.observable], @@ -521,17 +520,17 @@ def test_run_errors(self): op2 = SparsePauliOp.from_list([("II", 1)]) est = Estimator() - with self.assertRaises(QiskitError): + with self.assertRaises(ValueError): est.run([qc], [op2], [[]]).result() - with self.assertRaises(QiskitError): + with self.assertRaises(ValueError): est.run([qc2], [op], [[]]).result() - with self.assertRaises(QiskitError): + with self.assertRaises(ValueError): est.run([qc], [op], [[1e4]]).result() - with self.assertRaises(QiskitError): + with self.assertRaises(ValueError): est.run([qc2], [op2], [[1, 2]]).result() - with self.assertRaises(QiskitError): + with self.assertRaises(ValueError): est.run([qc, qc2], [op2], [[1]]).result() - with self.assertRaises(QiskitError): + with self.assertRaises(ValueError): est.run([qc], [op, op2], [[1]]).result() def test_run_numpy_params(self): @@ -568,15 +567,15 @@ def test_run_with_shots_option(self): self.assertIsInstance(result, EstimatorResult) np.testing.assert_allclose(result.values, [-1.307397243478641]) - def test_run_options(self): - """Test for run_options""" + def test_options(self): + """Test for options""" with self.subTest("init"): - estimator = Estimator(run_options={"shots": 3000}) - self.assertEqual(estimator.run_options.get("shots"), 3000) - with self.subTest("set_run_options"): - estimator.set_run_options(shots=1024, seed=15) - self.assertEqual(estimator.run_options.get("shots"), 1024) - self.assertEqual(estimator.run_options.get("seed"), 15) + estimator = Estimator(options={"shots": 3000}) + self.assertEqual(estimator.options.get("shots"), 3000) + with self.subTest("set_options"): + estimator.set_options(shots=1024, seed=15) + self.assertEqual(estimator.options.get("shots"), 1024) + self.assertEqual(estimator.options.get("seed"), 15) with self.subTest("run"): result = estimator.run( [self.ansatz], diff --git a/test/python/primitives/test_result.py b/test/python/primitives/test_result.py new file mode 100644 index 000000000000..2a688e6d2f45 --- /dev/null +++ b/test/python/primitives/test_result.py @@ -0,0 +1,93 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2022. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""Tests for BasePrimitiveResult.""" + +from __future__ import annotations + +from collections.abc import Collection +from dataclasses import dataclass +from typing import Any + +from ddt import data, ddt, unpack + +from qiskit.primitives.base_result import BasePrimitiveResult +from qiskit.test import QiskitTestCase + + +################################################################################ +## STUB DATACLASS +################################################################################ +@dataclass +class Result(BasePrimitiveResult): + """Dummy result dataclass implementing BasePrimitiveResult.""" + + field_1: Collection[Any] + field_2: Collection[Any] + + +################################################################################ +## TESTS +################################################################################ +@ddt +class TestBasePrimitiveResult(QiskitTestCase): + """Tests BasePrimitiveResult.""" + + @data(0, 1.2, True, "sequence", b"sequence", {"name": "value"}) + def test_post_init_type_error(self, field_1): + """Tests post init type error.""" + self.assertRaises(TypeError, Result, *(field_1, [])) + + @data(([1], []), ([], [1]), ([1, 2], []), ([1], [1, 2])) + @unpack + def test_post_init_value_error(self, field_1, field_2): + """Tests post init value error.""" + self.assertRaises(ValueError, Result, *(field_1, field_2)) + + @data(0, 1, 2, 3) + def test_num_experiments(self, num_experiments): + """Tests {num_experiments} num_experiments.""" + result = Result([0] * num_experiments, [1] * num_experiments) + self.assertEqual(num_experiments, result.num_experiments) + + @data(0, 1, 2, 3) + def test_experiments(self, num_experiments): + """Test experiment data.""" + field_1 = list(range(num_experiments)) + field_2 = [i + 1 for i in range(num_experiments)] + experiments = Result(field_1, field_2).experiments + self.assertIsInstance(experiments, tuple) + for i, exp in enumerate(experiments): + self.assertEqual(exp, {"field_1": i, "field_2": i + 1}) + + @data(0, 1, 2, 3) + def test_decompose(self, num_experiments): + """Test decompose.""" + field_1 = list(range(num_experiments)) + field_2 = [i + 1 for i in range(num_experiments)] + result = Result(field_1, field_2) + for i, res in enumerate(result.decompose()): + self.assertIsInstance(res, Result) + f1, f2 = (i,), (i + 1,) + self.assertEqual(res, Result(f1, f2)) + + def test_field_names(self): + """Tests field names ("field_1", "field_2").""" + result = Result([], []) + self.assertEqual(result._field_names, ("field_1", "field_2")) + + @data(([], []), ([0], [0]), ([0], [1])) + @unpack + def test_field_values(self, field_1, field_2): + """Tests field values ({field_1}, {field_2}).""" + result = Result(field_1, field_2) + self.assertEqual(result._field_values, (field_1, field_2)) diff --git a/test/python/primitives/test_sampler.py b/test/python/primitives/test_sampler.py index 1e23a876f010..a53d3ef7315c 100644 --- a/test/python/primitives/test_sampler.py +++ b/test/python/primitives/test_sampler.py @@ -18,12 +18,13 @@ import numpy as np from ddt import ddt -from qiskit import QuantumCircuit +from qiskit import QuantumCircuit, pulse, transpile from qiskit.circuit import Parameter from qiskit.circuit.library import RealAmplitudes -from qiskit.exceptions import QiskitError from qiskit.primitives import Sampler, SamplerResult +from qiskit.primitives.utils import _circuit_key from qiskit.providers import JobStatus, JobV1 +from qiskit.providers.fake_provider import FakeAlmaden from qiskit.test import QiskitTestCase @@ -350,11 +351,11 @@ def test_errors(self): with self.assertWarns(DeprecationWarning): sampler = Sampler([qc1, qc2], [qc1.parameters, qc2.parameters]) - with self.assertRaises(QiskitError), self.assertWarns(DeprecationWarning): + with self.assertRaises(ValueError), self.assertWarns(DeprecationWarning): sampler([0], [[1e2]]) - with self.assertRaises(QiskitError), self.assertWarns(DeprecationWarning): + with self.assertRaises(ValueError), self.assertWarns(DeprecationWarning): sampler([1], [[]]) - with self.assertRaises(QiskitError), self.assertWarns(DeprecationWarning): + with self.assertRaises(ValueError), self.assertWarns(DeprecationWarning): sampler([1], [[1e2]]) def test_empty_parameter(self): @@ -423,7 +424,7 @@ def test_passing_objects(self): circuit = QuantumCircuit(2) with self.assertWarns(DeprecationWarning): sampler = Sampler(circuits=self._pqc) - with self.assertRaises(QiskitError), self.assertWarns(DeprecationWarning): + with self.assertRaises(ValueError), self.assertWarns(DeprecationWarning): result = sampler(circuits=[circuit], parameter_values=params) @combine(indices=[[0], [1], [0, 1]]) @@ -582,22 +583,22 @@ def test_run_errors(self): sampler = Sampler() with self.subTest("set parameter values to a non-parameterized circuit"): - with self.assertRaises(QiskitError): + with self.assertRaises(ValueError): _ = sampler.run([qc1], [[1e2]]) with self.subTest("missing all parameter values for a parameterized circuit"): - with self.assertRaises(QiskitError): + with self.assertRaises(ValueError): _ = sampler.run([qc2], [[]]) with self.subTest("missing some parameter values for a parameterized circuit"): - with self.assertRaises(QiskitError): + with self.assertRaises(ValueError): _ = sampler.run([qc2], [[1e2]]) with self.subTest("too many parameter values for a parameterized circuit"): - with self.assertRaises(QiskitError): + with self.assertRaises(ValueError): _ = sampler.run([qc2], [[1e2]] * 100) with self.subTest("no classical bits"): - with self.assertRaises(QiskitError): + with self.assertRaises(ValueError): _ = sampler.run([qc3], [[]]) with self.subTest("no measurement"): - with self.assertRaises(QiskitError): + with self.assertRaises(ValueError): _ = sampler.run([qc4], [[]]) def test_run_empty_parameter(self): @@ -672,20 +673,48 @@ def test_primitive_job_status_done(self): job = sampler.run(circuits=[bell]) self.assertEqual(job.status(), JobStatus.DONE) - def test_run_options(self): - """Test for run_options""" + def test_options(self): + """Test for options""" with self.subTest("init"): - sampler = Sampler(run_options={"shots": 3000}) - self.assertEqual(sampler.run_options.get("shots"), 3000) - with self.subTest("set_run_options"): - sampler.set_run_options(shots=1024, seed=15) - self.assertEqual(sampler.run_options.get("shots"), 1024) - self.assertEqual(sampler.run_options.get("seed"), 15) + sampler = Sampler(options={"shots": 3000}) + self.assertEqual(sampler.options.get("shots"), 3000) + with self.subTest("set_options"): + sampler.set_options(shots=1024, seed=15) + self.assertEqual(sampler.options.get("shots"), 1024) + self.assertEqual(sampler.options.get("seed"), 15) with self.subTest("run"): params, target = self._generate_params_target([1]) result = sampler.run([self._pqc], parameter_values=params).result() self._compare_probs(result.quasi_dists, target) + def test_different_circuits(self): + """Test collision of quantum circuits.""" + + with self.subTest("Ry circuit"): + + def test_func(n): + qc = QuantumCircuit(1, 1, name="foo") + qc.ry(n, 0) + return qc + + keys = [_circuit_key(test_func(i)) for i in range(5)] + self.assertEqual(len(keys), len(set(keys))) + + with self.subTest("pulse circuit"): + + def test_with_scheduling(n): + custom_gate = pulse.Schedule(name="custom_x_gate") + custom_gate.insert( + 0, pulse.Play(pulse.Constant(160 * n, 0.1), pulse.DriveChannel(0)), inplace=True + ) + qc = QuantumCircuit(1) + qc.x(0) + qc.add_calibration("x", qubits=(0,), schedule=custom_gate) + return transpile(qc, FakeAlmaden(), scheduling_method="alap") + + keys = [_circuit_key(test_with_scheduling(i)) for i in range(1, 5)] + self.assertEqual(len(keys), len(set(keys))) + if __name__ == "__main__": unittest.main() diff --git a/test/python/providers/test_fake_backends.py b/test/python/providers/test_fake_backends.py index 79dfc27121fd..5c0da0f35dbf 100644 --- a/test/python/providers/test_fake_backends.py +++ b/test/python/providers/test_fake_backends.py @@ -24,7 +24,15 @@ from qiskit.exceptions import QiskitError from qiskit.execute_function import execute from qiskit.test.base import QiskitTestCase -from qiskit.providers.fake_provider import FakeProviderForBackendV2, FakeProvider, FakeMumbaiV2 +from qiskit.providers.fake_provider import ( + FakeProviderForBackendV2, + FakeProvider, + FakeMumbaiV2, + FakeYorktown, + FakeMumbai, +) +from qiskit.providers.backend_compat import BackendV2Converter +from qiskit.providers.backend import BackendV2 from qiskit.utils import optionals FAKE_PROVIDER_FOR_BACKEND_V2 = FakeProviderForBackendV2() @@ -161,3 +169,27 @@ def test_delay_circuit(self): qc.measure_all() res = transpile(qc, backend) self.assertIn("delay", res.count_ops()) + + @data(0, 1, 2, 3) + def test_converter(self, opt_level): + backend = FakeYorktown() + backend_v2 = BackendV2Converter(backend) + self.assertIsInstance(backend_v2, BackendV2) + res = transpile(self.circuit, backend_v2, optimization_level=opt_level) + job = backend_v2.run(res) + result = job.result() + counts = result.get_counts() + max_count = max(counts.items(), key=operator.itemgetter(1))[0] + self.assertEqual(max_count, "11") + + def test_converter_delay_circuit(self): + backend = FakeMumbai() + backend_v2 = BackendV2Converter(backend, add_delay=True) + self.assertIsInstance(backend_v2, BackendV2) + qc = QuantumCircuit(2) + qc.delay(502, 0, unit="ns") + qc.x(1) + qc.delay(250, 1, unit="ns") + qc.measure_all() + res = transpile(qc, backend_v2) + self.assertIn("delay", res.count_ops()) diff --git a/test/python/pulse/test_block.py b/test/python/pulse/test_block.py index 201da25fb156..ab5fe33a67ad 100644 --- a/test/python/pulse/test_block.py +++ b/test/python/pulse/test_block.py @@ -376,7 +376,7 @@ def test_execute_block(self): with pulse.build(name="test_block") as sched_block: pulse.play(pulse.Constant(160, 1.0), pulse.DriveChannel(0)) - pulse.acquire(50, pulse.MeasureChannel(0), pulse.MemorySlot(0)) + pulse.acquire(50, pulse.AcquireChannel(0), pulse.MemorySlot(0)) backend = FakeArmonk() test_result = backend.run(sched_block).result() @@ -483,6 +483,24 @@ def test_instruction_out_of_order_sequential(self): self.assertNotEqual(block1, block2) + def test_instruction_out_of_order_sequential_more(self): + """Test equality is False if three blocks have instructions in different order. + + This could detect a particular bug as discussed in this thread: + https://github.com/Qiskit/qiskit-terra/pull/8005#discussion_r966191018 + """ + block1 = pulse.ScheduleBlock(alignment_context=self.sequential_context) + block1 += pulse.Play(self.test_waveform0, self.d0) + block1 += pulse.Play(self.test_waveform0, self.d0) + block1 += pulse.Play(self.test_waveform0, self.d1) + + block2 = pulse.ScheduleBlock(alignment_context=self.sequential_context) + block2 += pulse.Play(self.test_waveform0, self.d0) + block2 += pulse.Play(self.test_waveform0, self.d1) + block2 += pulse.Play(self.test_waveform0, self.d0) + + self.assertNotEqual(block1, block2) + def test_instruction_in_order_sequential(self): """Test equality is True if two blocks have instructions in same order.""" block1 = pulse.ScheduleBlock(alignment_context=self.sequential_context) diff --git a/test/python/pulse/test_calibrationbuilder.py b/test/python/pulse/test_calibrationbuilder.py index 303365e01644..ba108ca9f64b 100644 --- a/test/python/pulse/test_calibrationbuilder.py +++ b/test/python/pulse/test_calibrationbuilder.py @@ -121,12 +121,12 @@ def test_rzx_calibration_builder(self): rzx_qc_instructions = cal_qc.calibrations["rzx"][((1, 0), (theta / 2,))].instructions self.assertEqual(rzx_qc_instructions[0][1].channel, DriveChannel(0)) self.assertTrue(isinstance(rzx_qc_instructions[0][1], Play)) - self.assertTrue(isinstance(rzx_qc_instructions[0][1].pulse, GaussianSquare)) + self.assertEqual(rzx_qc_instructions[0][1].pulse.pulse_type, "GaussianSquare") self.assertEqual(rzx_qc_instructions[1][1].channel, DriveChannel(1)) self.assertTrue(isinstance(rzx_qc_instructions[1][1], Delay)) self.assertEqual(rzx_qc_instructions[2][1].channel, ControlChannel(1)) self.assertTrue(isinstance(rzx_qc_instructions[2][1], Play)) - self.assertTrue(isinstance(rzx_qc_instructions[2][1].pulse, GaussianSquare)) + self.assertEqual(rzx_qc_instructions[2][1].pulse.pulse_type, "GaussianSquare") # Calculate the duration of one scaled Gaussian square pulse from the CX gate. cx_sched = self.inst_map.get("cx", qubits=(1, 0)) diff --git a/test/python/pulse/test_instructions.py b/test/python/pulse/test_instructions.py index 111ebd35f4ae..c41e0a12080c 100644 --- a/test/python/pulse/test_instructions.py +++ b/test/python/pulse/test_instructions.py @@ -161,6 +161,15 @@ def test_freq_non_pulse_channel(self): with self.assertRaises(exceptions.PulseError): instructions.SetFrequency(4.5e9, channels.RegisterSlot(1), name="test") + def test_parameter_expression(self): + """Test getting all parameters assigned by expression.""" + p1 = circuit.Parameter("P1") + p2 = circuit.Parameter("P2") + expr = p1 + p2 + + instr = instructions.SetFrequency(expr, channel=channels.DriveChannel(0)) + self.assertSetEqual(instr.parameters, {p1, p2}) + class TestShiftFrequency(QiskitTestCase): """Shift frequency tests.""" @@ -188,6 +197,15 @@ def test_freq_non_pulse_channel(self): with self.assertRaises(exceptions.PulseError): instructions.ShiftFrequency(4.5e9, channels.RegisterSlot(1), name="test") + def test_parameter_expression(self): + """Test getting all parameters assigned by expression.""" + p1 = circuit.Parameter("P1") + p2 = circuit.Parameter("P2") + expr = p1 + p2 + + instr = instructions.ShiftFrequency(expr, channel=channels.DriveChannel(0)) + self.assertSetEqual(instr.parameters, {p1, p2}) + class TestSetPhase(QiskitTestCase): """Test the instruction construction.""" @@ -214,6 +232,15 @@ def test_set_phase_non_pulse_channel(self): with self.assertRaises(exceptions.PulseError): instructions.SetPhase(1.57, channels.RegisterSlot(1), name="test") + def test_parameter_expression(self): + """Test getting all parameters assigned by expression.""" + p1 = circuit.Parameter("P1") + p2 = circuit.Parameter("P2") + expr = p1 + p2 + + instr = instructions.SetPhase(expr, channel=channels.DriveChannel(0)) + self.assertSetEqual(instr.parameters, {p1, p2}) + class TestShiftPhase(QiskitTestCase): """Test the instruction construction.""" @@ -240,6 +267,15 @@ def test_shift_phase_non_pulse_channel(self): with self.assertRaises(exceptions.PulseError): instructions.ShiftPhase(1.57, channels.RegisterSlot(1), name="test") + def test_parameter_expression(self): + """Test getting all parameters assigned by expression.""" + p1 = circuit.Parameter("P1") + p2 = circuit.Parameter("P2") + expr = p1 + p2 + + instr = instructions.ShiftPhase(expr, channel=channels.DriveChannel(0)) + self.assertSetEqual(instr.parameters, {p1, p2}) + class TestSnapshot(QiskitTestCase): """Snapshot tests.""" diff --git a/test/python/pulse/test_parameter_manager.py b/test/python/pulse/test_parameter_manager.py index 41dfe1533ea2..bd0cacf6bd21 100644 --- a/test/python/pulse/test_parameter_manager.py +++ b/test/python/pulse/test_parameter_manager.py @@ -469,7 +469,7 @@ def test_attribute_parameters(self): ref_set = {amp, sigma} - self.assertSetEqual(block.parameters, ref_set) + self.assertSetEqual(set(block.parameters), ref_set) def test_parametric_pulses(self): """Test Parametric Pulses with parameters determined by ParameterExpressions diff --git a/test/python/pulse/test_pulse_lib.py b/test/python/pulse/test_pulse_lib.py index d49b1409cd12..44e892cc0a27 100644 --- a/test/python/pulse/test_pulse_lib.py +++ b/test/python/pulse/test_pulse_lib.py @@ -418,6 +418,65 @@ def test_custom_pulse(self): reference = np.concatenate([-0.1 * np.ones(30), 0.1j * np.ones(50), -0.1 * np.ones(20)]) np.testing.assert_array_almost_equal(waveform.samples, reference) + def test_no_subclass(self): + """Test no dedicated pulse subclass is created.""" + + gaussian_pulse = Gaussian(160, 0.1, 40) + self.assertIs(type(gaussian_pulse), SymbolicPulse) + + gaussian_square_pulse = GaussianSquare(800, 0.1, 64, 544) + self.assertIs(type(gaussian_square_pulse), SymbolicPulse) + + drag_pulse = Drag(160, 0.1, 40, 1.5) + self.assertIs(type(drag_pulse), SymbolicPulse) + + constant_pulse = Constant(800, 0.1) + self.assertIs(type(constant_pulse), SymbolicPulse) + + def test_gaussian_deprecated_type_check(self): + """Test isinstance check works with deprecation.""" + gaussian_pulse = Gaussian(160, 0.1, 40) + + self.assertTrue(isinstance(gaussian_pulse, SymbolicPulse)) + with self.assertWarns(PendingDeprecationWarning): + self.assertTrue(isinstance(gaussian_pulse, Gaussian)) + self.assertFalse(isinstance(gaussian_pulse, GaussianSquare)) + self.assertFalse(isinstance(gaussian_pulse, Drag)) + self.assertFalse(isinstance(gaussian_pulse, Constant)) + + def test_gaussian_square_deprecated_type_check(self): + """Test isinstance check works with deprecation.""" + gaussian_square_pulse = GaussianSquare(800, 0.1, 64, 544) + + self.assertTrue(isinstance(gaussian_square_pulse, SymbolicPulse)) + with self.assertWarns(PendingDeprecationWarning): + self.assertFalse(isinstance(gaussian_square_pulse, Gaussian)) + self.assertTrue(isinstance(gaussian_square_pulse, GaussianSquare)) + self.assertFalse(isinstance(gaussian_square_pulse, Drag)) + self.assertFalse(isinstance(gaussian_square_pulse, Constant)) + + def test_drag_deprecated_type_check(self): + """Test isinstance check works with deprecation.""" + drag_pulse = Drag(160, 0.1, 40, 1.5) + + self.assertTrue(isinstance(drag_pulse, SymbolicPulse)) + with self.assertWarns(PendingDeprecationWarning): + self.assertFalse(isinstance(drag_pulse, Gaussian)) + self.assertFalse(isinstance(drag_pulse, GaussianSquare)) + self.assertTrue(isinstance(drag_pulse, Drag)) + self.assertFalse(isinstance(drag_pulse, Constant)) + + def test_constant_deprecated_type_check(self): + """Test isinstance check works with deprecation.""" + constant_pulse = Constant(160, 0.1, 40, 1.5) + + self.assertTrue(isinstance(constant_pulse, SymbolicPulse)) + with self.assertWarns(PendingDeprecationWarning): + self.assertFalse(isinstance(constant_pulse, Gaussian)) + self.assertFalse(isinstance(constant_pulse, GaussianSquare)) + self.assertFalse(isinstance(constant_pulse, Drag)) + self.assertTrue(isinstance(constant_pulse, Constant)) + class TestFunctionalPulse(QiskitTestCase): """Waveform tests.""" diff --git a/test/python/pulse/test_reference.py b/test/python/pulse/test_reference.py new file mode 100644 index 000000000000..0b040656ba84 --- /dev/null +++ b/test/python/pulse/test_reference.py @@ -0,0 +1,705 @@ +# This code is part of Qiskit. +# +# (C) Copyright IBM 2020. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +"""Test schedule block subroutine reference mechanism.""" + +import numpy as np + +from qiskit import circuit, pulse +from qiskit.pulse import builder +from qiskit.pulse.transforms import inline_subroutines +from qiskit.test import QiskitTestCase + + +class TestReference(QiskitTestCase): + """Test for basic behavior of reference mechanism.""" + + def test_append_schedule(self): + """Test appending schedule without calling. + + Appended schedules are not subroutines. + These are directly exposed to the outer block. + """ + with pulse.build() as sched_x1: + pulse.play(pulse.Constant(100, 0.1, name="x1"), pulse.DriveChannel(0)) + + with pulse.build() as sched_y1: + builder.append_schedule(sched_x1) + + with pulse.build() as sched_z1: + builder.append_schedule(sched_y1) + + self.assertEqual(len(sched_z1.references), 0) + + def test_append_schedule_parameter_scope(self): + """Test appending schedule without calling. + + Parameter in the appended schedule has the scope of outer schedule. + """ + param = circuit.Parameter("name") + + with pulse.build() as sched_x1: + pulse.play(pulse.Constant(100, param, name="x1"), pulse.DriveChannel(0)) + + with pulse.build() as sched_y1: + builder.append_schedule(sched_x1) + + with pulse.build() as sched_z1: + builder.append_schedule(sched_y1) + + sched_param = next(iter(sched_z1.scoped_parameters())) + self.assertEqual(sched_param.name, "root::name") + + # object equality + self.assertEqual( + sched_z1.search_parameters("root::name")[0], + param, + ) + + def test_refer_schedule(self): + """Test refer to schedule by name. + + Outer block is only aware of its inner reference. + Nested reference is not directly exposed to the most outer block. + """ + with pulse.build() as sched_x1: + pulse.play(pulse.Constant(100, 0.1, name="x1"), pulse.DriveChannel(0)) + + with pulse.build() as sched_y1: + builder.reference("x1", "d0") + + with pulse.build() as sched_z1: + builder.reference("y1", "d0") + + sched_y1.assign_references({("x1", "d0"): sched_x1}) + sched_z1.assign_references({("y1", "d0"): sched_y1}) + + self.assertEqual(len(sched_z1.references), 1) + self.assertEqual(sched_z1.references[("y1", "d0")], sched_y1) + + self.assertEqual(len(sched_y1.references), 1) + self.assertEqual(sched_y1.references[("x1", "d0")], sched_x1) + + def test_refer_schedule_parameter_scope(self): + """Test refer to schedule by name. + + Parameter in the called schedule has the scope of called schedule. + """ + param = circuit.Parameter("name") + + with pulse.build() as sched_x1: + pulse.play(pulse.Constant(100, param, name="x1"), pulse.DriveChannel(0)) + + with pulse.build() as sched_y1: + builder.reference("x1", "d0") + + with pulse.build() as sched_z1: + builder.reference("y1", "d0") + + sched_y1.assign_references({("x1", "d0"): sched_x1}) + sched_z1.assign_references({("y1", "d0"): sched_y1}) + + sched_param = next(iter(sched_z1.scoped_parameters())) + self.assertEqual(sched_param.name, "root::y1,d0::x1,d0::name") + + # object equality + self.assertEqual( + sched_z1.search_parameters("root::y1,d0::x1,d0::name")[0], + param, + ) + + # regex + self.assertEqual( + sched_z1.search_parameters(r"\S::x1,d0::name")[0], + param, + ) + + def test_call_schedule(self): + """Test call schedule. + + Outer block is only aware of its inner reference. + Nested reference is not directly exposed to the most outer block. + """ + with pulse.build() as sched_x1: + pulse.play(pulse.Constant(100, 0.1, name="x1"), pulse.DriveChannel(0)) + + with pulse.build() as sched_y1: + builder.call(sched_x1, name="x1") + + with pulse.build() as sched_z1: + builder.call(sched_y1, name="y1") + + self.assertEqual(len(sched_z1.references), 1) + self.assertEqual(sched_z1.references[("y1",)], sched_y1) + + self.assertEqual(len(sched_y1.references), 1) + self.assertEqual(sched_y1.references[("x1",)], sched_x1) + + def test_call_schedule_parameter_scope(self): + """Test call schedule. + + Parameter in the called schedule has the scope of called schedule. + """ + param = circuit.Parameter("name") + + with pulse.build() as sched_x1: + pulse.play(pulse.Constant(100, param, name="x1"), pulse.DriveChannel(0)) + + with pulse.build() as sched_y1: + builder.call(sched_x1, name="x1") + + with pulse.build() as sched_z1: + builder.call(sched_y1, name="y1") + + sched_param = next(iter(sched_z1.scoped_parameters())) + self.assertEqual(sched_param.name, "root::y1::x1::name") + + # object equality + self.assertEqual( + sched_z1.search_parameters("root::y1::x1::name")[0], + param, + ) + + # regex + self.assertEqual( + sched_z1.search_parameters(r"\S::x1::name")[0], + param, + ) + + def test_append_and_call_schedule(self): + """Test call and append schedule. + + Reference is copied to the outer schedule by appending. + Original reference remains unchanged. + """ + with pulse.build() as sched_x1: + pulse.play(pulse.Constant(100, 0.1, name="x1"), pulse.DriveChannel(0)) + + with pulse.build() as sched_y1: + builder.call(sched_x1, name="x1") + + with pulse.build() as sched_z1: + builder.append_schedule(sched_y1) + + self.assertEqual(len(sched_z1.references), 1) + self.assertEqual(sched_z1.references[("x1",)], sched_x1) + + # blocks[0] is sched_y1 and its reference is now point to outer block reference + self.assertIs(sched_z1.blocks[0].references, sched_z1.references) + + # however the original program is protected to prevent unexpected mutation + self.assertIsNot(sched_y1.references, sched_z1.references) + + # appended schedule is preserved + self.assertEqual(len(sched_y1.references), 1) + self.assertEqual(sched_y1.references[("x1",)], sched_x1) + + def test_calling_similar_schedule(self): + """Test calling schedules with the same representation. + + sched_x1 and sched_y1 are the different subroutines, but same representation. + Two references shoud be created. + """ + param1 = circuit.Parameter("param") + param2 = circuit.Parameter("param") + + with pulse.build() as sched_x1: + pulse.play(pulse.Constant(100, param1, name="p"), pulse.DriveChannel(0)) + + with pulse.build() as sched_y1: + pulse.play(pulse.Constant(100, param2, name="p"), pulse.DriveChannel(0)) + + with pulse.build() as sched_z1: + pulse.call(sched_x1) + pulse.call(sched_y1) + + self.assertEqual(len(sched_z1.references), 2) + + def test_calling_same_schedule(self): + """Test calling same schedule twice. + + Because it calls the same schedule, no duplication should occur in reference table. + """ + param = circuit.Parameter("param") + + with pulse.build() as sched_x1: + pulse.play(pulse.Constant(100, param, name="x1"), pulse.DriveChannel(0)) + + with pulse.build() as sched_z1: + pulse.call(sched_x1, name="same_sched") + pulse.call(sched_x1, name="same_sched") + + self.assertEqual(len(sched_z1.references), 1) + + def test_calling_same_schedule_with_different_assignment(self): + """Test calling same schedule twice but with different parameters. + + Same schedule is called twice but with different assignment. + Two references should be created. + """ + param = circuit.Parameter("param") + + with pulse.build() as sched_x1: + pulse.play(pulse.Constant(100, param, name="x1"), pulse.DriveChannel(0)) + + with pulse.build() as sched_z1: + pulse.call(sched_x1, param=0.1) + pulse.call(sched_x1, param=0.2) + + self.assertEqual(len(sched_z1.references), 2) + + def test_alignment_context(self): + """Test nested alignment context. + + Inline alignment is identical to append_schedule operation. + Thus scope is not newly generated. + """ + with pulse.build(name="x1") as sched_x1: + with pulse.align_right(): + with pulse.align_left(): + pulse.play(pulse.Constant(100, 0.1, name="x1"), pulse.DriveChannel(0)) + + self.assertEqual(len(sched_x1.references), 0) + + def test_appending_child_block(self): + """Test for edge case. + + User can append blocks which is an element of another schedule block. + But this is not standard use case. + + In this case, references may contain subroutines which don't exist in the context. + This is because all references within the program are centrally + managed in the most outer block. + """ + with pulse.build() as sched_x1: + pulse.play(pulse.Constant(100, 0.1, name="x1"), pulse.DriveChannel(0)) + + with pulse.build() as sched_y1: + pulse.play(pulse.Constant(100, 0.2, name="y1"), pulse.DriveChannel(0)) + + with pulse.build() as sched_x2: + builder.call(sched_x1, name="x1") + self.assertEqual(list(sched_x2.references.keys()), [("x1",)]) + + with pulse.build() as sched_y2: + builder.call(sched_y1, name="y1") + self.assertEqual(list(sched_y2.references.keys()), [("y1",)]) + + with pulse.build() as sched_z1: + builder.append_schedule(sched_x2) + builder.append_schedule(sched_y2) + self.assertEqual(list(sched_z1.references.keys()), [("x1",), ("y1",)]) + + # child block references point to its parent, i.e. sched_z1 + self.assertIs(sched_z1.blocks[0].references, sched_z1._reference_manager) + self.assertIs(sched_z1.blocks[1].references, sched_z1._reference_manager) + + with pulse.build() as sched_z2: + # Append child block + # The reference of this block is sched_z1.reference thus it contains both x1 and y1. + # However, y1 doesn't exist in the context, so only x1 should be added. + + # Usually, user will append sched_x2 directly here, rather than sched_z1.blocks[0] + # This is why this situation is an edge case. + builder.append_schedule(sched_z1.blocks[0]) + + self.assertEqual(len(sched_z2.references), 1) + self.assertEqual(sched_z2.references[("x1",)], sched_x1) + + def test_replacement(self): + """Test nested alignment context. + + Replacing schedule block with schedule block. + Removed block contains own reference, that should be removed with replacement. + New block also contains reference, that should be passed to the current reference. + """ + with pulse.build() as sched_x1: + pulse.play(pulse.Constant(100, 0.1, name="x1"), pulse.DriveChannel(0)) + + with pulse.build() as sched_y1: + pulse.play(pulse.Constant(100, 0.2, name="y1"), pulse.DriveChannel(0)) + + with pulse.build() as sched_x2: + builder.call(sched_x1, name="x1") + + with pulse.build() as sched_y2: + builder.call(sched_y1, name="y1") + + with pulse.build() as sched_z1: + builder.append_schedule(sched_x2) + builder.append_schedule(sched_y2) + self.assertEqual(len(sched_z1.references), 2) + self.assertEqual(sched_z1.references[("x1",)], sched_x1) + self.assertEqual(sched_z1.references[("y1",)], sched_y1) + + # Define schedule to replace + with pulse.build() as sched_r1: + pulse.play(pulse.Constant(100, 0.1, name="r1"), pulse.DriveChannel(0)) + + with pulse.build() as sched_r2: + pulse.call(sched_r1, name="r1") + + sched_z2 = sched_z1.replace(sched_x2, sched_r2) + self.assertEqual(len(sched_z2.references), 2) + self.assertEqual(sched_z2.references[("r1",)], sched_r1) + self.assertEqual(sched_z2.references[("y1",)], sched_y1) + + def test_special_parameter_name(self): + """Testcase to guarantee usage of some special symbols in parameter name. + + These symbols might be often used in user code. + No conflict should occur with the default scope delimiter. + """ + param = circuit.Parameter("my.parameter_object") + + with pulse.build() as sched_x1: + pulse.play(pulse.Constant(100, param, name="x1"), pulse.DriveChannel(0)) + + with pulse.build() as sched_y1: + pulse.reference("sub", "q0") + sched_y1.assign_references({("sub", "q0"): sched_x1}) + + ret_param = sched_y1.search_parameters(r"\Ssub,q0::my.parameter_object")[0] + + self.assertEqual(param, ret_param) + + def test_parameter_in_multiple_scope(self): + """Testcase for scope-aware parameter getter. + + When a single parameter object is used in multiple scopes, + the scoped_parameters method must return parameter objects associated to each scope, + while parameters property returns a single parameter object. + """ + param = circuit.Parameter("name") + + with pulse.build() as sched_x1: + pulse.play(pulse.Constant(100, param), pulse.DriveChannel(0)) + + with pulse.build() as sched_y1: + pulse.play(pulse.Constant(100, param), pulse.DriveChannel(1)) + + with pulse.build() as sched_z1: + pulse.call(sched_x1, name="x1") + pulse.call(sched_y1, name="y1") + + self.assertEqual(len(sched_z1.parameters), 1) + self.assertEqual(len(sched_z1.scoped_parameters()), 2) + + self.assertEqual(sched_z1.search_parameters("root::x1::name")[0], param) + self.assertEqual(sched_z1.search_parameters("root::y1::name")[0], param) + + def test_parallel_alignment_equality(self): + """Testcase for potential edge case. + + In parallel alignment context, reference instruction is broadcasted to + all channels. When new channel is added after reference, this should be + connected with reference node. + """ + + with pulse.build() as subroutine: + pulse.reference("unassigned") + + with pulse.build() as sched1: + with pulse.align_left(): + pulse.delay(10, pulse.DriveChannel(0)) + pulse.call(subroutine) # This should be broadcasted to d1 as well + pulse.delay(10, pulse.DriveChannel(1)) + + with pulse.build() as sched2: + with pulse.align_left(): + pulse.delay(10, pulse.DriveChannel(0)) + pulse.delay(10, pulse.DriveChannel(1)) + pulse.call(subroutine) + + self.assertNotEqual(sched1, sched2) + + def test_subroutine_conflict(self): + """Test for edge case of appending two schedule blocks having the + references with conflicting reference key. + + This operation should fail because one of references will be gone after assignment. + """ + with pulse.build() as sched_x1: + pulse.play(pulse.Constant(100, 0.1), pulse.DriveChannel(0)) + + with pulse.build() as sched_x2: + pulse.call(sched_x1, name="conflict_name") + + self.assertEqual(sched_x2.references[("conflict_name",)], sched_x1) + + with pulse.build() as sched_y1: + pulse.play(pulse.Constant(100, 0.2), pulse.DriveChannel(0)) + + with pulse.build() as sched_y2: + pulse.call(sched_y1, name="conflict_name") + + self.assertEqual(sched_y2.references[("conflict_name",)], sched_y1) + + with self.assertRaises(pulse.exceptions.PulseError): + with pulse.build(): + builder.append_schedule(sched_x2) + builder.append_schedule(sched_y2) + + def test_assign_existing_reference(self): + """Test for explicitly assign existing reference. + + This operation should fail because overriding reference is not allowed. + """ + with pulse.build() as sched_x1: + pulse.play(pulse.Constant(100, 0.1), pulse.DriveChannel(0)) + + with pulse.build() as sched_y1: + pulse.play(pulse.Constant(100, 0.2), pulse.DriveChannel(0)) + + with pulse.build() as sched_z1: + pulse.call(sched_x1, name="conflict_name") + + with self.assertRaises(pulse.exceptions.PulseError): + sched_z1.assign_references({("conflict_name",): sched_y1}) + + +class TestSubroutineWithCXGate(QiskitTestCase): + """Test called program scope with practical example of building fully parametrized CX gate.""" + + def setUp(self): + super().setUp() + + # parameters of X pulse + self.xp_dur = circuit.Parameter("dur") + self.xp_amp = circuit.Parameter("amp") + self.xp_sigma = circuit.Parameter("sigma") + self.xp_beta = circuit.Parameter("beta") + + # amplitude of SX pulse + self.sxp_amp = circuit.Parameter("amp") + + # parameters of CR pulse + self.cr_dur = circuit.Parameter("dur") + self.cr_amp = circuit.Parameter("amp") + self.cr_sigma = circuit.Parameter("sigma") + self.cr_risefall = circuit.Parameter("risefall") + + # channels + self.control_ch = circuit.Parameter("ctrl") + self.target_ch = circuit.Parameter("tgt") + self.cr_ch = circuit.Parameter("cr") + + # echo pulse on control qubit + with pulse.build(name="xp") as xp_sched_q0: + pulse.play( + pulse.Drag( + duration=self.xp_dur, + amp=self.xp_amp, + sigma=self.xp_sigma, + beta=self.xp_beta, + ), + channel=pulse.DriveChannel(self.control_ch), + ) + self.xp_sched = xp_sched_q0 + + # local rotation on target qubit + with pulse.build(name="sx") as sx_sched_q1: + pulse.play( + pulse.Drag( + duration=self.xp_dur, + amp=self.sxp_amp, + sigma=self.xp_sigma, + beta=self.xp_beta, + ), + channel=pulse.DriveChannel(self.target_ch), + ) + self.sx_sched = sx_sched_q1 + + # cross resonance + with pulse.build(name="cr") as cr_sched: + pulse.play( + pulse.GaussianSquare( + duration=self.cr_dur, + amp=self.cr_amp, + sigma=self.cr_sigma, + risefall_sigma_ratio=self.cr_risefall, + ), + channel=pulse.ControlChannel(self.cr_ch), + ) + self.cr_sched = cr_sched + + def test_lazy_ecr(self): + """Test lazy subroutines through ECR schedule construction.""" + + with pulse.build(name="lazy_ecr") as sched: + with pulse.align_sequential(): + pulse.reference("cr", "q0", "q1") + pulse.reference("xp", "q0") + with pulse.phase_offset(np.pi, pulse.ControlChannel(self.cr_ch)): + pulse.reference("cr", "q0", "q1") + pulse.reference("xp", "q0") + + # Schedule has references + self.assertTrue(sched.is_referenced()) + + # Schedule is not schedulable because of unassigned references + self.assertFalse(sched.is_schedulable()) + + # Two references cr and xp are called + self.assertEqual(len(sched.references), 2) + + # Parameters in the current scope are Parameter("cr") which is used in phase_offset + # References are not assigned yet. + params = set(p.name for p in sched.parameters) + self.assertSetEqual(params, {"cr"}) + + # Parameter names are scoepd + scoped_params = set(p.name for p in sched.scoped_parameters()) + self.assertSetEqual(scoped_params, {"root::cr"}) + + # Assign CR and XP schedule to the empty reference + sched.assign_references({("cr", "q0", "q1"): self.cr_sched}) + sched.assign_references({("xp", "q0"): self.xp_sched}) + + # Check updated references + assigned_refs = sched.references + self.assertEqual(assigned_refs[("cr", "q0", "q1")], self.cr_sched) + self.assertEqual(assigned_refs[("xp", "q0")], self.xp_sched) + + # Parameter added from subroutines + scoped_params = set(p.name for p in sched.scoped_parameters()) + ref_params = { + # This is the cr parameter that belongs to phase_offset instruction in the root scope + "root::cr", + # This is the same cr parameter that belongs to the play instruction in a child scope + "root::cr,q0,q1::cr", + "root::cr,q0,q1::amp", + "root::cr,q0,q1::dur", + "root::cr,q0,q1::risefall", + "root::cr,q0,q1::sigma", + "root::xp,q0::ctrl", + "root::xp,q0::amp", + "root::xp,q0::beta", + "root::xp,q0::dur", + "root::xp,q0::sigma", + } + self.assertSetEqual(scoped_params, ref_params) + + # Get parameter without scope, cr amp and xp amp are hit. + params = sched.get_parameters(parameter_name="amp") + self.assertEqual(len(params), 2) + + # Get parameter with scope, only xp amp + params = sched.search_parameters(parameter_regex="root::xp,q0::amp") + self.assertEqual(len(params), 1) + + def test_cnot(self): + """Integration test with CNOT schedule construction.""" + # echeod cross resonance + with pulse.build(name="ecr", default_alignment="sequential") as ecr_sched: + pulse.call(self.cr_sched, name="cr") + pulse.call(self.xp_sched, name="xp") + with pulse.phase_offset(np.pi, pulse.ControlChannel(self.cr_ch)): + pulse.call(self.cr_sched, name="cr") + pulse.call(self.xp_sched, name="xp") + + # cnot gate, locally equivalent to ecr + with pulse.build(name="cx", default_alignment="sequential") as cx_sched: + pulse.shift_phase(np.pi / 2, pulse.DriveChannel(self.control_ch)) + pulse.call(self.sx_sched, name="sx") + pulse.call(ecr_sched, name="ecr") + + # get parameter with scope, full scope is not needed + xp_amp = cx_sched.search_parameters(r"\S:xp::amp")[0] + self.assertEqual(self.xp_amp, xp_amp) + + # get parameter with scope, of course full scope can be specified + xp_amp_full_scoped = cx_sched.search_parameters("root::ecr::xp::amp")[0] + self.assertEqual(xp_amp_full_scoped, xp_amp) + + # assign parameters + assigned_cx = cx_sched.assign_parameters( + value_dict={ + self.cr_ch: 0, + self.control_ch: 0, + self.target_ch: 1, + self.sxp_amp: 0.1, + self.xp_amp: 0.2, + self.xp_dur: 160, + self.xp_sigma: 40, + self.xp_beta: 3.0, + self.cr_amp: 0.5, + self.cr_dur: 800, + self.cr_sigma: 64, + self.cr_risefall: 2, + }, + inplace=True, + ) + flatten_cx = inline_subroutines(assigned_cx) + + with pulse.build(default_alignment="sequential") as ref_cx: + # sz + pulse.shift_phase(np.pi / 2, pulse.DriveChannel(0)) + with pulse.align_left(): + # sx + pulse.play( + pulse.Drag( + duration=160, + amp=0.1, + sigma=40, + beta=3.0, + ), + channel=pulse.DriveChannel(1), + ) + with pulse.align_sequential(): + # cr + with pulse.align_left(): + pulse.play( + pulse.GaussianSquare( + duration=800, + amp=0.5, + sigma=64, + risefall_sigma_ratio=2, + ), + channel=pulse.ControlChannel(0), + ) + # xp + with pulse.align_left(): + pulse.play( + pulse.Drag( + duration=160, + amp=0.2, + sigma=40, + beta=3.0, + ), + channel=pulse.DriveChannel(0), + ) + with pulse.phase_offset(np.pi, pulse.ControlChannel(0)): + # cr + with pulse.align_left(): + pulse.play( + pulse.GaussianSquare( + duration=800, + amp=0.5, + sigma=64, + risefall_sigma_ratio=2, + ), + channel=pulse.ControlChannel(0), + ) + # xp + with pulse.align_left(): + pulse.play( + pulse.Drag( + duration=160, + amp=0.2, + sigma=40, + beta=3.0, + ), + channel=pulse.DriveChannel(0), + ) + + self.assertEqual(flatten_cx, ref_cx) diff --git a/test/python/quantum_info/operators/symplectic/test_pauli_list.py b/test/python/quantum_info/operators/symplectic/test_pauli_list.py index a580da6cf0ab..70b4bc267308 100644 --- a/test/python/quantum_info/operators/symplectic/test_pauli_list.py +++ b/test/python/quantum_info/operators/symplectic/test_pauli_list.py @@ -80,6 +80,14 @@ class TestPauliListInit(QiskitTestCase): def test_array_init(self): """Test array initialization.""" # Matrix array initialization + + with self.subTest(msg="Empty array"): + x = np.array([], dtype=bool).reshape((1, 0)) + z = np.array([], dtype=bool).reshape((1, 0)) + pauli_list = PauliList.from_symplectic(x, z) + np.testing.assert_equal(pauli_list.z, z) + np.testing.assert_equal(pauli_list.x, x) + with self.subTest(msg="bool array"): z = np.array([[False], [True]]) x = np.array([[False], [True]]) diff --git a/test/python/quantum_info/operators/test_dihedral.py b/test/python/quantum_info/operators/test_dihedral.py index f2956c7a1ecd..c464f32e87d1 100644 --- a/test/python/quantum_info/operators/test_dihedral.py +++ b/test/python/quantum_info/operators/test_dihedral.py @@ -30,7 +30,10 @@ SdgGate, CXGate, CZGate, + CSGate, + CSdgGate, SwapGate, + CCZGate, ) from qiskit.quantum_info.operators import Operator from qiskit.quantum_info.operators import random @@ -42,10 +45,11 @@ def random_cnotdihedral_circuit(num_qubits, num_gates, gates="all", seed=None): """Generate a pseudo random CNOTDihedral circuit.""" if gates == "all": - if num_qubits == 1: - gates = ["i", "x", "y", "z", "t", "tdg", "s", "sdg"] - else: - gates = ["i", "x", "y", "z", "t", "tdg", "s", "sdg", "cx", "cz", "swap"] + gates = ["i", "x", "y", "z", "t", "tdg", "s", "sdg"] + if num_qubits >= 2: + gates += ["cx", "cz", "cs", "csdg", "swap"] + if num_qubits >= 3: + gates += ["ccz"] instructions = { "i": (IGate(), 1), @@ -58,7 +62,10 @@ def random_cnotdihedral_circuit(num_qubits, num_gates, gates="all", seed=None): "tdg": (TdgGate(), 1), "cx": (CXGate(), 2), "cz": (CZGate(), 2), + "cs": (CSGate(), 2), + "csdg": (CSdgGate(), 2), "swap": (SwapGate(), 2), + "ccz": (CCZGate(), 3), } if isinstance(seed, np.random.Generator): @@ -169,13 +176,14 @@ def test_2_qubit_identities(self): circ1.cx(0, 1) circ1.cx(1, 0) circ1.cx(0, 1) + elem1 = CNOTDihedral(circ1) + self.assertEqual(elem, elem1, "Error: 2-qubit SWAP identity does not hold") + circ2 = QuantumCircuit(2) circ2.cx(1, 0) circ2.cx(0, 1) circ2.cx(1, 0) - elem1 = CNOTDihedral(circ1) elem2 = CNOTDihedral(circ2) - self.assertEqual(elem, elem1, "Error: 2-qubit SWAP identity does not hold") self.assertEqual(elem1, elem2, "Error: 2-qubit SWAP identity does not hold") # CS01 = CS10 (symmetric) @@ -207,6 +215,20 @@ def test_2_qubit_identities(self): elem2 = CNOTDihedral(circ2) self.assertEqual(elem1, elem2, "Error: 2-qubit CS identity does not hold") + circcs01 = QuantumCircuit(2) + circcs01.cs(0, 1) + elemcs01 = CNOTDihedral(circcs01) + self.assertEqual(elem1, elemcs01, "Error: 2-qubit CS identity does not hold") + + circcs10 = QuantumCircuit(2) + circcs10.cs(1, 0) + elemcs10 = CNOTDihedral(circcs10) + self.assertEqual(elem1, elemcs10, "Error: 2-qubit CS identity does not hold") + + circ_cs = CSGate() + elem_cs = CNOTDihedral(circ_cs) + self.assertEqual(elem1, elem_cs, "Error: 2-qubit CS identity does not hold") + # TI*CS*TdgI = CS # # ┌───┐┌───┐ ┌─────┐ @@ -225,6 +247,13 @@ def test_2_qubit_identities(self): elem3 = CNOTDihedral(circ3) self.assertEqual(elem1, elem3, "Error: 2-qubit CS identity does not hold") + circ3 = QuantumCircuit(2) + circ3.t(0) + circ3.cs(0, 1) + circ3.tdg(0) + elem3 = CNOTDihedral(circ3) + self.assertEqual(elem1, elem3, "Error: 2-qubit CS identity does not hold") + # IT*CS*ITdg = CS # # ┌───┐ @@ -243,6 +272,13 @@ def test_2_qubit_identities(self): elem4 = CNOTDihedral(circ4) self.assertEqual(elem1, elem4, "Error: 2-qubit CS identity does not hold") + circ4 = QuantumCircuit(2) + circ4.t(1) + circ4.cs(0, 1) + circ4.tdg(1) + elem4 = CNOTDihedral(circ4) + self.assertEqual(elem1, elem4, "Error: 2-qubit CS identity does not hold") + # XX*CS*XX*SS = CS # # ┌───┐┌───┐ ┌───┐┌───┐ @@ -265,6 +301,17 @@ def test_2_qubit_identities(self): elem5 = CNOTDihedral(circ5) self.assertEqual(elem1, elem5, "Error: 2-qubit CS identity does not hold") + circ5 = QuantumCircuit(2) + circ5.x(0) + circ5.x(1) + circ5.cs(0, 1) + circ5.x(0) + circ5.x(1) + circ5.s(0) + circ5.s(1) + elem5 = CNOTDihedral(circ5) + self.assertEqual(elem1, elem5, "Error: 2-qubit CS identity does not hold") + # CSdg01 = CSdg10 (symmetric) # # ┌─────┐ @@ -294,6 +341,20 @@ def test_2_qubit_identities(self): elem2 = CNOTDihedral(circ2) self.assertEqual(elem1, elem2, "Error: 2-qubit CSdg identity does not hold") + circsdg01 = QuantumCircuit(2) + circsdg01.csdg(0, 1) + elemcsdg01 = CNOTDihedral(circsdg01) + self.assertEqual(elem1, elemcsdg01, "Error: 2-qubit CSdg identity does not hold") + + circsdg10 = QuantumCircuit(2) + circsdg10.csdg(1, 0) + elemcsdg10 = CNOTDihedral(circsdg10) + self.assertEqual(elem1, elemcsdg10, "Error: 2-qubit CSdg identity does not hold") + + circ_csdg = CSdgGate() + elem_csdg = CNOTDihedral(circ_csdg) + self.assertEqual(elem1, elem_csdg, "Error: 2-qubit CS identity does not hold") + # XI*CS*XI*ISdg = CSdg # # ┌───┐┌───┐ ┌───┐ @@ -313,6 +374,14 @@ def test_2_qubit_identities(self): elem3 = CNOTDihedral(circ3) self.assertEqual(elem1, elem3, "Error: 2-qubit CSdg identity does not hold") + circ3 = QuantumCircuit(2) + circ3.x(0) + circ3.cs(0, 1) + circ3.x(0) + circ3.sdg(1) + elem3 = CNOTDihedral(circ3) + self.assertEqual(elem3, elemcsdg01, "Error: 2-qubit CSdg identity does not hold") + # IX*CS*IX*SdgI = CSdg # # ┌───┐ ┌─────┐ @@ -332,16 +401,25 @@ def test_2_qubit_identities(self): elem4 = CNOTDihedral(circ4) self.assertEqual(elem1, elem4, "Error: 2-qubit CSdg identity does not hold") + circ4 = QuantumCircuit(2) + circ4.x(1) + circ4.cs(0, 1) + circ4.x(1) + circ4.sdg(0) + elem4 = CNOTDihedral(circ4) + self.assertEqual(elemcsdg01, elem4, "Error: 2-qubit CSdg identity does not hold") + # relations for CZ # CZ(0,1) = CZ(1,0) elem = CNOTDihedral(CZGate()) circ1 = QuantumCircuit(2) circ1.cz(0, 1) + elem1 = CNOTDihedral(circ1) + self.assertEqual(elem, elem1, "Error: 2-qubit CZ identity does not hold") + circ2 = QuantumCircuit(2) circ2.cz(1, 0) - elem1 = CNOTDihedral(circ1) elem2 = CNOTDihedral(circ2) - self.assertEqual(elem, elem1, "Error: 2-qubit CZ identity does not hold") self.assertEqual(elem1, elem2, "Error: 2-qubit CZ identity does not hold") # CZ = CS * CS @@ -365,6 +443,12 @@ def test_2_qubit_identities(self): elem3 = CNOTDihedral(circ3) self.assertEqual(elem1, elem3, "Error: 2-qubit CZ identity does not hold") + circ3 = QuantumCircuit(2) + circ3.cs(0, 1) + circ3.cs(0, 1) + elem3 = CNOTDihedral(circ3) + self.assertEqual(elem1, elem3, "Error: 2-qubit CZ identity does not hold") + # CZ = CSdg * CSdg # # ┌─────┐ ┌─────┐ @@ -386,6 +470,12 @@ def test_2_qubit_identities(self): elem4 = CNOTDihedral(circ4) self.assertEqual(elem1, elem4, "Error: 2-qubit CZ identity does not hold") + circ4 = QuantumCircuit(2) + circ4.csdg(0, 1) + circ4.csdg(0, 1) + elem4 = CNOTDihedral(circ4) + self.assertEqual(elem1, elem4, "Error: 2-qubit CZ identity does not hold") + # CZ = TdgTdg * CX * T^2I * CX * TdgTdg # # ┌─────┐┌───┐┌───┐┌───┐┌───┐┌─────┐ @@ -492,6 +582,61 @@ def test_2_qubit_identities(self): elem2 = CNOTDihedral(circ2) self.assertEqual(elem1, elem2, "Error: 2-qubit CX01*CX10 identity does not hold") + def test_ccz_identities(self): + """Tests identities for CCZ gate""" + + # Check the definition of a CCZ gate + circ_ccz = CCZGate() + elem_ccz = CNOTDihedral(circ_ccz) + + circ1 = QuantumCircuit(3) + circ1.ccz(0, 1, 2) + elem1 = CNOTDihedral(circ1) + self.assertEqual(elem1, elem_ccz, "Error: 3-qubit CCZ identity does not hold") + + circ2 = QuantumCircuit(3) + circ2.cx(1, 2) + circ2.tdg(2) + circ2.cx(0, 2) + circ2.t(2) + circ2.cx(1, 2) + circ2.t(1) + circ2.tdg(2) + circ2.cx(0, 2) + circ2.cx(0, 1) + circ2.t(2) + circ2.t(0) + circ2.tdg(1) + circ2.cx(0, 1) + elem2 = CNOTDihedral(circ2) + self.assertEqual(elem1, elem2, "Error: 3-qubit CCZ identity does not hold") + + # Check that a CCZ gate is the same when permuting the qubits + circ3 = QuantumCircuit(3) + circ3.ccz(0, 2, 1) + elem3 = CNOTDihedral(circ3) + self.assertEqual(elem1, elem3, "Error: 3-qubit CCZ identity does not hold") + + circ4 = QuantumCircuit(3) + circ4.ccz(1, 0, 2) + elem4 = CNOTDihedral(circ4) + self.assertEqual(elem1, elem4, "Error: 3-qubit CCZ identity does not hold") + + circ5 = QuantumCircuit(3) + circ5.ccz(1, 2, 0) + elem5 = CNOTDihedral(circ5) + self.assertEqual(elem1, elem5, "Error: 3-qubit CCZ identity does not hold") + + circ6 = QuantumCircuit(3) + circ6.ccz(2, 0, 1) + elem6 = CNOTDihedral(circ6) + self.assertEqual(elem1, elem6, "Error: 3-qubit CCZ identity does not hold") + + circ7 = QuantumCircuit(3) + circ7.ccz(1, 2, 0) + elem7 = CNOTDihedral(circ7) + self.assertEqual(elem1, elem7, "Error: 3-qubit CCZ identity does not hold") + def test_random_decompose(self): """ Test that random elements are CNOTDihedral diff --git a/test/python/quantum_info/states/test_statevector.py b/test/python/quantum_info/states/test_statevector.py index 398d1ec45eba..c7eec1faa38a 100644 --- a/test/python/quantum_info/states/test_statevector.py +++ b/test/python/quantum_info/states/test_statevector.py @@ -1118,6 +1118,30 @@ def test_drawings(self): with self.subTest(msg=" draw('latex', convention='vector')"): sv.draw("latex", convention="vector") + def test_state_to_latex_for_none(self): + """ + Test for `\rangleNone` output in latex representation + See https://github.com/Qiskit/qiskit-terra/issues/8169 + """ + sv = Statevector( + [ + 7.07106781e-01 - 8.65956056e-17j, + -5.55111512e-17 - 8.65956056e-17j, + 7.85046229e-17 + 8.65956056e-17j, + -7.07106781e-01 + 8.65956056e-17j, + 0.00000000e00 + 0.00000000e00j, + -0.00000000e00 + 0.00000000e00j, + -0.00000000e00 + 0.00000000e00j, + 0.00000000e00 - 0.00000000e00j, + ], + dims=(2, 2, 2), + ) + latex_representation = state_to_latex(sv) + self.assertEqual( + latex_representation, + "\\frac{\\sqrt{2}}{2} |000\\rangle- \\frac{\\sqrt{2}}{2} |011\\rangle", + ) + def test_state_to_latex_for_large_statevector(self): """Test conversion of large dense state vector""" sv = Statevector(np.ones((2**15, 1))) @@ -1130,6 +1154,15 @@ def test_state_to_latex_for_large_statevector(self): " |111111111111101\\rangle+ |111111111111110\\rangle+ |111111111111111\\rangle", ) + def test_state_to_latex_with_prefix(self): + """Test adding prefix to state vector latex output""" + psi = Statevector(np.array([np.sqrt(1 / 2), 0, 0, np.sqrt(1 / 2)])) + prefix = "|\\psi_{AB}\\rangle = " + latex_sv = state_to_latex(psi) + latex_expected = prefix + latex_sv + latex_representation = state_to_latex(psi, prefix=prefix) + self.assertEqual(latex_representation, latex_expected) + def test_state_to_latex_for_large_sparse_statevector(self): """Test conversion of large sparse state vector""" sv = Statevector(np.eye(2**15, 1)) @@ -1154,7 +1187,7 @@ def test_number_to_latex_terms(self): ([1 + np.sqrt(2)], ["(1 + \\sqrt{2})"]), ] for numbers, latex_terms in cases: - terms = numbers_to_latex_terms(numbers) + terms = numbers_to_latex_terms(numbers, 15) self.assertListEqual(terms, latex_terms) def test_statevector_draw_latex_regression(self): diff --git a/test/python/quantum_info/test_synthesis.py b/test/python/quantum_info/test_synthesis.py index 7991ad6b9f97..fddcb13ced64 100644 --- a/test/python/quantum_info/test_synthesis.py +++ b/test/python/quantum_info/test_synthesis.py @@ -15,6 +15,7 @@ import unittest import contextlib import logging +import math from test import combine import numpy as np @@ -71,6 +72,7 @@ TwoQubitControlledUDecomposer, Ud, decompose_two_qubit_product_gate, + TwoQubitDecomposeUpToDiagonal, ) from qiskit.quantum_info.synthesis.ion_decompose import cnot_rxx_decompose @@ -1391,8 +1393,8 @@ def _qsd_l2_a2_mod(self, n): def test_random_decomposition_l2_no_opt(self, nqubits): """test decomposition of random SU(n) down to 2 qubits without optimizations.""" dim = 2**nqubits - mat = scipy.stats.unitary_group.rvs(dim) - circ = self.qsd(mat, opt_a1=False) + mat = scipy.stats.unitary_group.rvs(dim, random_state=1559) + circ = self.qsd(mat, opt_a1=False, opt_a2=False) ccirc = transpile(circ, basis_gates=["u", "cx"], optimization_level=0) self.assertTrue(np.allclose(mat, Operator(ccirc).data)) if nqubits > 1: @@ -1404,8 +1406,8 @@ def test_random_decomposition_l2_no_opt(self, nqubits): def test_random_decomposition_l2_a1_opt(self, nqubits): """test decomposition of random SU(n) down to 2 qubits with 'a1' optimization.""" dim = 2**nqubits - mat = scipy.stats.unitary_group.rvs(dim) - circ = self.qsd(mat, opt_a1=True) + mat = scipy.stats.unitary_group.rvs(dim, random_state=789) + circ = self.qsd(mat, opt_a1=True, opt_a2=False) ccirc = transpile(circ, basis_gates=["u", "cx"], optimization_level=0) self.assertTrue(np.allclose(mat, Operator(ccirc).data)) if nqubits > 1: @@ -1417,7 +1419,7 @@ def test_SO3_decomposition_l2_a1_opt(self): nqubits = 3 dim = 2**nqubits mat = scipy.stats.ortho_group.rvs(dim) - circ = self.qsd(mat, opt_a1=True) + circ = self.qsd(mat, opt_a1=True, opt_a2=False) ccirc = transpile(circ, basis_gates=["u", "cx"], optimization_level=0) self.assertTrue(np.allclose(mat, Operator(ccirc).data)) expected_cx = self._qsd_l2_cx_count(nqubits) - self._qsd_l2_a1_mod(nqubits) @@ -1428,7 +1430,7 @@ def test_identity_decomposition(self): nqubits = 3 dim = 2**nqubits mat = np.identity(dim) - circ = self.qsd(mat, opt_a1=True) + circ = self.qsd(mat, opt_a1=True, opt_a2=False) self.assertTrue(np.allclose(mat, Operator(circ).data)) self.assertEqual(sum(circ.count_ops().values()), 0) @@ -1437,7 +1439,7 @@ def test_diagonal(self, nqubits): """Test decomposition on diagonal -- qsd is not optimal""" dim = 2**nqubits mat = np.diag(np.exp(1j * np.random.normal(size=dim))) - circ = self.qsd(mat, opt_a1=True) + circ = self.qsd(mat, opt_a1=True, opt_a2=False) ccirc = transpile(circ, basis_gates=["u", "cx"], optimization_level=0) self.assertTrue(np.allclose(mat, Operator(ccirc).data)) if nqubits > 1: @@ -1449,16 +1451,186 @@ def test_hermitian(self, nqubits): """Test decomposition on hermitian -- qsd is not optimal""" # better might be (arXiv:1405.6741) dim = 2**nqubits - umat = scipy.stats.unitary_group.rvs(dim) + umat = scipy.stats.unitary_group.rvs(dim, random_state=750) dmat = np.diag(np.exp(1j * np.random.normal(size=dim))) mat = umat.T.conjugate() @ dmat @ umat - circ = self.qsd(mat, opt_a1=True) + circ = self.qsd(mat, opt_a1=True, opt_a2=False) ccirc = transpile(circ, basis_gates=["u", "cx"], optimization_level=0) self.assertTrue(np.allclose(mat, Operator(ccirc).data)) if nqubits > 1: expected_cx = self._qsd_l2_cx_count(nqubits) - self._qsd_l2_a1_mod(nqubits) self.assertLessEqual(ccirc.count_ops().get("cx"), expected_cx) + @data(*list(range(3, 6))) + def test_opt_a1a2(self, nqubits): + """Test decomposition with both optimization a1 and a2 from shende2006""" + dim = 2**nqubits + umat = scipy.stats.unitary_group.rvs(dim, random_state=1224) + circ = self.qsd(umat, opt_a1=True, opt_a2=True) + ccirc = transpile(circ, basis_gates=["u", "cx"], optimization_level=0) + self.assertTrue(Operator(umat) == Operator(ccirc)) + self.assertEqual( + ccirc.count_ops().get("cx"), (23 / 48) * 4**nqubits - (3 / 2) * 2**nqubits + 4 / 3 + ) + + +class TestTwoQubitDecomposeUpToDiagonal(QiskitTestCase): + """test TwoQubitDecomposeUpToDiagonal class""" + + def test_prop31(self): + """test proposition III.1: no CNOTs needed""" + dec = TwoQubitDecomposeUpToDiagonal() + # test identity + mat = np.identity(4) + self.assertTrue(dec._cx0_test(mat)) + + sz = np.array([[1, 0], [0, -1]]) + zz = np.kron(sz, sz) + self.assertTrue(dec._cx0_test(zz)) + + had = np.matrix([[1, 1], [1, -1]]) / np.sqrt(2) + hh = np.kron(had, had) + self.assertTrue(dec._cx0_test(hh)) + + sy = np.array([[0, -1j], [1j, 0]]) + hy = np.kron(had, sy) + self.assertTrue(dec._cx0_test(hy)) + + qc = QuantumCircuit(2) + qc.cx(0, 1) + self.assertFalse(dec._cx0_test(Operator(qc).data)) + + def test_prop32_true(self): + """test proposition III.2: 1 CNOT sufficient""" + dec = TwoQubitDecomposeUpToDiagonal() + qc = QuantumCircuit(2) + qc.ry(np.pi / 4, 0) + qc.ry(np.pi / 3, 1) + qc.cx(0, 1) + qc.ry(np.pi / 4, 0) + qc.y(1) + mat = Operator(qc).data + self.assertTrue(dec._cx1_test(mat)) + + qc = QuantumCircuit(2) + qc.ry(np.pi / 5, 0) + qc.ry(np.pi / 3, 1) + qc.cx(1, 0) + qc.ry(np.pi / 2, 0) + qc.y(1) + mat = Operator(qc).data + self.assertTrue(dec._cx1_test(mat)) + + # this SU4 is non-local + mat = scipy.stats.unitary_group.rvs(4, random_state=84) + self.assertFalse(dec._cx1_test(mat)) + + def test_prop32_false(self): + """test proposition III.2: 1 CNOT not sufficient""" + dec = TwoQubitDecomposeUpToDiagonal() + qc = QuantumCircuit(2) + qc.ry(np.pi / 4, 0) + qc.ry(np.pi / 3, 1) + qc.cx(0, 1) + qc.ry(np.pi / 4, 0) + qc.y(1) + qc.cx(0, 1) + qc.ry(np.pi / 3, 0) + qc.rx(np.pi / 2, 1) + mat = Operator(qc).data + self.assertFalse(dec._cx1_test(mat)) + + def test_prop33_true(self): + """test proposition III.3: 2 CNOT sufficient""" + dec = TwoQubitDecomposeUpToDiagonal() + qc = QuantumCircuit(2) + qc.rx(np.pi / 4, 0) + qc.ry(np.pi / 2, 1) + qc.cx(0, 1) + qc.rx(np.pi / 4, 0) + qc.ry(np.pi / 2, 1) + qc.cx(0, 1) + qc.rx(np.pi / 4, 0) + qc.y(1) + mat = Operator(qc).data + self.assertTrue(dec._cx2_test(mat)) + + def test_prop33_false(self): + """test whether circuit which requires 3 cx fails 2 cx test""" + dec = TwoQubitDecomposeUpToDiagonal() + qc = QuantumCircuit(2) + qc.u(0.1, 0.2, 0.3, 0) + qc.u(0.4, 0.5, 0.6, 1) + qc.cx(0, 1) + qc.u(0.1, 0.2, 0.3, 0) + qc.u(0.4, 0.5, 0.6, 1) + qc.cx(0, 1) + qc.u(0.5, 0.2, 0.3, 0) + qc.u(0.2, 0.4, 0.1, 1) + qc.cx(1, 0) + qc.u(0.1, 0.2, 0.3, 0) + qc.u(0.4, 0.5, 0.6, 1) + mat = Operator(qc).data + self.assertFalse(dec._cx2_test(mat)) + + def test_ortho_local_map(self): + """test map of SO4 to SU2⊗SU2""" + dec = TwoQubitDecomposeUpToDiagonal() + emap = np.array([[1, 1j, 0, 0], [0, 0, 1j, 1], [0, 0, 1j, -1], [1, -1j, 0, 0]]) / math.sqrt( + 2 + ) + so4 = scipy.stats.ortho_group.rvs(4, random_state=284) + sy = np.array([[0, -1j], [1j, 0]]) + self.assertTrue(np.allclose(-np.kron(sy, sy), emap @ emap.T)) + self.assertFalse(dec._cx0_test(so4)) + self.assertTrue(dec._cx0_test(emap @ so4 @ emap.T.conj())) + + def test_ortho_local_map2(self): + """test map of SO4 to SU2⊗SU2""" + dec = TwoQubitDecomposeUpToDiagonal() + emap = np.array([[1, 0, 0, 1j], [0, 1j, 1, 0], [0, 1j, -1, 0], [1, 0, 0, -1j]]) / math.sqrt( + 2 + ) + so4 = scipy.stats.ortho_group.rvs(4, random_state=284) + sy = np.array([[0, -1j], [1j, 0]]) + self.assertTrue(np.allclose(-np.kron(sy, sy), emap @ emap.T)) + self.assertFalse(dec._cx0_test(so4)) + self.assertTrue(dec._cx0_test(emap @ so4 @ emap.T.conj())) + + def test_real_trace_transform(self): + """test finding diagonal factor of unitary""" + dec = TwoQubitDecomposeUpToDiagonal() + u4 = scipy.stats.unitary_group.rvs(4, random_state=83) + su4, _ = dec._u4_to_su4(u4) + real_map = dec._real_trace_transform(su4) + self.assertTrue(dec._cx2_test(real_map @ su4)) + + def test_call_decompose(self): + """ + test __call__ method to decompose + """ + dec = TwoQubitDecomposeUpToDiagonal() + u4 = scipy.stats.unitary_group.rvs(4, random_state=47) + dmat, circ2cx = dec(u4) + dec_diag = dmat @ Operator(circ2cx).data + self.assertTrue(Operator(u4) == Operator(dec_diag)) + + def test_circuit_decompose(self): + """test applying decomposed gates as circuit elements""" + dec = TwoQubitDecomposeUpToDiagonal() + u4 = scipy.stats.unitary_group.rvs(4, random_state=47) + dmat, circ2cx = dec(u4) + + qc1 = QuantumCircuit(2) + qc1.append(UnitaryGate(u4), range(2)) + + qc2 = QuantumCircuit(2) + qc2.compose(circ2cx, range(2), front=False, inplace=True) + qc2.append(UnitaryGate(dmat), range(2)) + + self.assertEqual(Operator(u4), Operator(qc1)) + self.assertEqual(Operator(qc1), Operator(qc2)) + if __name__ == "__main__": unittest.main() diff --git a/test/python/result/test_probability.py b/test/python/result/test_probability.py index 9e6314eda7db..8da709847b08 100644 --- a/test/python/result/test_probability.py +++ b/test/python/result/test_probability.py @@ -93,6 +93,59 @@ def test_bin_no_prefix_probs_bin_out(self): probs = ProbDistribution(in_probs) self.assertEqual(in_probs, probs.binary_probabilities()) + def test_bin_no_prefix_w_heading_zeros_probs_bin_out(self): + """Test binary input without a 0b prefix with heading 0 and binary output.""" + in_probs = {"00000": 2 / 7, "00001": 1 / 7, "00010": 1 / 7, "00011": 1 / 7, "00100": 2 / 7} + probs = ProbDistribution(in_probs) + self.assertEqual(in_probs, probs.binary_probabilities()) + + def test_bin_no_prefix_w_diff_heading_zero_probs_bin_out(self): + """Test binary input without a 0b prefix with heading 0 of different sizes and binary output.""" + in_probs = { + "0": 3 / 5, + "01": 1 / 2, + "10": 7 / 20, + "011": 1 / 10, + "00100": -11 / 20, + } + probs = ProbDistribution(in_probs) + expected = { + "00000": 3 / 5, + "00001": 1 / 2, + "00010": 7 / 20, + "00011": 1 / 10, + "00100": -11 / 20, + } + self.assertEqual(expected, probs.binary_probabilities()) + + def test_bin_no_prefix_w_diff_heading_zero_probs_bin_out_padded(self): + """Test binary input without a 0b prefix with heading 0 of different sizes and binary output, + padded with zeros.""" + in_probs = { + "0": 3 / 5, + "01": 1 / 2, + "10": 7 / 20, + "011": 1 / 10, + "00100": -11 / 20, + } + probs = ProbDistribution(in_probs) + expected = { + "0000000": 3 / 5, + "0000001": 1 / 2, + "0000010": 7 / 20, + "0000011": 1 / 10, + "0000100": -11 / 20, + } + self.assertEqual(expected, probs.binary_probabilities(7)) + + def test_bin_no_prefix_out_padded(self): + """Test binary input without a 0b prefix, padded with zeros.""" + n = 5 + in_probs = {"0": 1} + probs = ProbDistribution(in_probs) + expected = {"0" * n: 1} + self.assertEqual(expected, probs.binary_probabilities(num_bits=n)) + def test_hex_probs_bin_out_padded(self): """Test hexadecimal input and binary output, padded with zeros.""" in_probs = {"0x0": 2 / 7, "0x1": 1 / 7, "0x2": 1 / 7, "0x3": 1 / 7, "0x4": 2 / 7} @@ -115,6 +168,11 @@ def test_empty_bin_out(self): probs = ProbDistribution({}) self.assertEqual(probs.binary_probabilities(), {}) + def test_empty_bin_out_padding(self): + """Test empty input with binary output and padding.""" + probs = ProbDistribution({}) + self.assertEqual(probs.binary_probabilities(5), {}) + def test_invalid_keys(self): """Test invalid key type raises.""" with self.assertRaises(TypeError): diff --git a/test/python/result/test_quasi.py b/test/python/result/test_quasi.py index 5bf80b123987..3225e98aaa9b 100644 --- a/test/python/result/test_quasi.py +++ b/test/python/result/test_quasi.py @@ -84,6 +84,65 @@ def test_bin_no_prefix_quasi_bin_out(self): quasi = QuasiDistribution(qprobs) self.assertEqual(qprobs, quasi.binary_probabilities()) + def test_bin_no_prefix_w_heading_zero_quasi_bin_out(self): + """Test binary input without a 0b prefix with heading 0 and binary output.""" + qprobs = { + "00000": 3 / 5, + "00001": 1 / 2, + "00010": 7 / 20, + "00011": 1 / 10, + "00100": -11 / 20, + } + quasi = QuasiDistribution(qprobs) + self.assertEqual(qprobs, quasi.binary_probabilities()) + + def test_bin_no_prefix_w_diff_heading_zero_quasi_bin_out(self): + """Test binary input without a 0b prefix with heading 0 of different sizes and binary output.""" + qprobs = { + "0": 3 / 5, + "01": 1 / 2, + "10": 7 / 20, + "011": 1 / 10, + "00100": -11 / 20, + } + quasi = QuasiDistribution(qprobs) + expected = { + "00000": 3 / 5, + "00001": 1 / 2, + "00010": 7 / 20, + "00011": 1 / 10, + "00100": -11 / 20, + } + self.assertEqual(expected, quasi.binary_probabilities()) + + def test_bin_no_prefix_w_diff_heading_zero_quasi_bin_out_padded(self): + """Test binary input without a 0b prefix with heading 0 of different sizes and binary output, + padded with zeros.""" + qprobs = { + "0": 3 / 5, + "01": 1 / 2, + "10": 7 / 20, + "011": 1 / 10, + "00100": -11 / 20, + } + quasi = QuasiDistribution(qprobs) + expected = { + "0000000": 3 / 5, + "0000001": 1 / 2, + "0000010": 7 / 20, + "0000011": 1 / 10, + "0000100": -11 / 20, + } + self.assertEqual(expected, quasi.binary_probabilities(7)) + + def test_bin_no_prefix_out_padded(self): + """Test binary input without a 0b prefix, padded with zeros.""" + n = 5 + qprobs = {"0": 1} + quasi = QuasiDistribution(qprobs) + expected = {"0" * n: 1} + self.assertEqual(expected, quasi.binary_probabilities(num_bits=n)) + def test_hex_quasi_bin_out_padded(self): """Test hexadecimal input and binary output, padded with zeros.""" qprobs = {"0x0": 3 / 5, "0x1": 1 / 2, "0x2": 7 / 20, "0x3": 1 / 10, "0x4": -11 / 20} @@ -106,6 +165,11 @@ def test_empty_bin_out(self): quasi = QuasiDistribution({}) self.assertEqual(quasi.binary_probabilities(), {}) + def test_empty_bin_out_padding(self): + """Test empty input with binary output and padding.""" + quasi = QuasiDistribution({}) + self.assertEqual(quasi.binary_probabilities(5), {}) + def test_invalid_keys(self): """Test invalid key type raises.""" with self.assertRaises(TypeError): diff --git a/test/python/transpiler/test_clifford_passes.py b/test/python/transpiler/test_clifford_passes.py index faf0db738008..b25d4d25cdd8 100644 --- a/test/python/transpiler/test_clifford_passes.py +++ b/test/python/transpiler/test_clifford_passes.py @@ -228,6 +228,68 @@ def test_optimize_cliffords(self): self.assertTrue(Operator(qc1).equiv(Operator(qc2))) self.assertTrue(Operator(qc1).equiv(Operator(qc3))) + def test_if_else(self): + """Test pass recurses into simple if-else.""" + cliff1 = self.create_cliff1() + cliff2 = self.create_cliff2() + combined = cliff1.compose(cliff2) + + inner_test = QuantumCircuit(cliff1.num_qubits) + inner_test.append(cliff1, inner_test.qubits) + inner_test.append(cliff2, inner_test.qubits) + + inner_expected = QuantumCircuit(combined.num_qubits) + inner_expected.append(combined, inner_expected.qubits) + + test = QuantumCircuit(cliff1.num_qubits, 1) + test.measure(0, 0) + test.if_else( + (test.clbits[0], True), inner_test.copy(), inner_test.copy(), test.qubits, test.clbits + ) + + expected = QuantumCircuit(combined.num_qubits, 1) + expected.measure(0, 0) + expected.if_else( + (expected.clbits[0], True), + inner_expected, + inner_expected, + expected.qubits, + expected.clbits, + ) + + self.assertEqual(OptimizeCliffords()(test), expected) + + def test_nested_control_flow(self): + """Test pass recurses into nested control flow.""" + cliff1 = self.create_cliff1() + cliff2 = self.create_cliff2() + combined = cliff1.compose(cliff2) + + inner_test = QuantumCircuit(cliff1.num_qubits) + inner_test.append(cliff1, inner_test.qubits) + inner_test.append(cliff2, inner_test.qubits) + + while_test = QuantumCircuit(cliff1.num_qubits, 1) + while_test.for_loop((0,), None, inner_test.copy(), while_test.qubits, []) + + inner_expected = QuantumCircuit(combined.num_qubits) + inner_expected.append(combined, inner_expected.qubits) + + while_expected = QuantumCircuit(combined.num_qubits, 1) + while_expected.for_loop((0,), None, inner_expected, while_expected.qubits, []) + + test = QuantumCircuit(cliff1.num_qubits, 1) + test.measure(0, 0) + test.while_loop((test.clbits[0], True), while_test, test.qubits, test.clbits) + + expected = QuantumCircuit(combined.num_qubits, 1) + expected.measure(0, 0) + expected.while_loop( + (expected.clbits[0], True), while_expected, expected.qubits, expected.clbits + ) + + self.assertEqual(OptimizeCliffords()(test), expected) + def test_topological_ordering(self): """Test that Clifford optimization pass optimizes Cliffords across a gate on a different qubit.""" diff --git a/test/python/transpiler/test_cx_cancellation.py b/test/python/transpiler/test_cx_cancellation.py index 6a9e10ab60b7..f7837501a68a 100644 --- a/test/python/transpiler/test_cx_cancellation.py +++ b/test/python/transpiler/test_cx_cancellation.py @@ -13,6 +13,7 @@ """Tests for pass cancelling 2 consecutive CNOTs on the same qubits.""" from qiskit import QuantumRegister, QuantumCircuit +from qiskit.circuit import Clbit, Qubit from qiskit.transpiler import PassManager from qiskit.transpiler.passes import CXCancellation from qiskit.test import QiskitTestCase @@ -136,3 +137,56 @@ def test_inverted_cx(self): pass_manager.append(CXCancellation()) out_circuit = pass_manager.run(circuit) self.assertEqual(out_circuit, circuit) + + def test_if_else(self): + """Test that the pass recurses in a simple if-else.""" + pass_ = CXCancellation() + + inner_test = QuantumCircuit(4, 1) + inner_test.cx(0, 1) + inner_test.cx(0, 1) + inner_test.cx(2, 3) + + inner_expected = QuantumCircuit(4, 1) + inner_expected.cx(2, 3) + + test = QuantumCircuit(4, 1) + test.h(0) + test.measure(0, 0) + test.if_else((0, True), inner_test.copy(), inner_test.copy(), range(4), [0]) + + expected = QuantumCircuit(4, 1) + expected.h(0) + expected.measure(0, 0) + expected.if_else((0, True), inner_expected, inner_expected, range(4), [0]) + + self.assertEqual(pass_(test), expected) + + def test_nested_control_flow(self): + """Test that collection recurses into nested control flow.""" + pass_ = CXCancellation() + qubits = [Qubit() for _ in [None] * 4] + clbit = Clbit() + + inner_test = QuantumCircuit(qubits, [clbit]) + inner_test.cx(0, 1) + inner_test.cx(0, 1) + inner_test.cx(2, 3) + + inner_expected = QuantumCircuit(qubits, [clbit]) + inner_expected.cx(2, 3) + + true_body = QuantumCircuit(qubits, [clbit]) + true_body.while_loop((clbit, True), inner_test.copy(), [0, 1, 2, 3], [0]) + + test = QuantumCircuit(qubits, [clbit]) + test.for_loop(range(2), None, inner_test.copy(), [0, 1, 2, 3], [0]) + test.if_else((clbit, True), true_body, None, [0, 1, 2, 3], [0]) + + expected_if_body = QuantumCircuit(qubits, [clbit]) + expected_if_body.while_loop((clbit, True), inner_expected, [0, 1, 2, 3], [0]) + expected = QuantumCircuit(qubits, [clbit]) + expected.for_loop(range(2), None, inner_expected, [0, 1, 2, 3], [0]) + expected.if_else((clbit, True), expected_if_body, None, [0, 1, 2, 3], [0]) + + self.assertEqual(pass_(test), expected) diff --git a/test/python/transpiler/test_gate_direction.py b/test/python/transpiler/test_gate_direction.py index 0960c840ddad..59fa04a517a2 100644 --- a/test/python/transpiler/test_gate_direction.py +++ b/test/python/transpiler/test_gate_direction.py @@ -15,6 +15,7 @@ from math import pi from qiskit import ClassicalRegister, QuantumRegister, QuantumCircuit +from qiskit.compiler import transpile from qiskit.transpiler import TranspilerError from qiskit.transpiler import CouplingMap from qiskit.transpiler.passes import GateDirection @@ -245,6 +246,21 @@ def test_preserves_conditions(self): self.assertEqual(circuit_to_dag(expected), after) + def test_regression_gh_8387(self): + """Regression test for flipping of CZ gate""" + qc = QuantumCircuit(3) + qc.cz(1, 0) + qc.barrier() + qc.cz(2, 0) + + coupling_map = CouplingMap([[0, 1], [1, 2]]) + _ = transpile( + qc, + basis_gates=["cz", "cx", "u3", "u2", "u1"], + coupling_map=coupling_map, + optimization_level=2, + ) + if __name__ == "__main__": unittest.main() diff --git a/test/python/transpiler/test_layout.py b/test/python/transpiler/test_layout.py index a01c757834fb..cf034b4d70ea 100644 --- a/test/python/transpiler/test_layout.py +++ b/test/python/transpiler/test_layout.py @@ -217,7 +217,7 @@ def test_set_virtual_without_physical(self): layout.add(self.qr[1], 2) layout.add(self.qr[0]) - self.assertDictEqual(layout.get_virtual_bits(), {self.qr[0]: 1, self.qr[1]: 2}) + self.assertDictEqual(layout.get_virtual_bits(), {self.qr[0]: 0, self.qr[1]: 2}) def test_layout_combine_smaller(self): """combine_into_edge_map() method with another_layout is smaller and raises an Error""" diff --git a/test/python/transpiler/test_linear_functions_passes.py b/test/python/transpiler/test_linear_functions_passes.py index 01f7cf2918a1..dbd1b6ba173a 100644 --- a/test/python/transpiler/test_linear_functions_passes.py +++ b/test/python/transpiler/test_linear_functions_passes.py @@ -14,7 +14,7 @@ import unittest -from qiskit.circuit import QuantumCircuit +from qiskit.circuit import QuantumCircuit, Qubit, Clbit from qiskit.transpiler.passes.optimization import CollectLinearFunctions from qiskit.transpiler.passes.synthesis import ( LinearFunctionsSynthesis, @@ -329,6 +329,53 @@ def test_connected_gates(self): self.assertNotIn("cx", circuit2.count_ops().keys()) self.assertNotIn("swap", circuit2.count_ops().keys()) + def test_if_else(self): + """Test that collection recurses into a simple if-else.""" + pass_ = CollectLinearFunctions() + + circuit = QuantumCircuit(4) + circuit.cx(0, 1) + circuit.cx(1, 0) + circuit.cx(2, 3) + + test = QuantumCircuit(4, 1) + test.h(0) + test.measure(0, 0) + test.if_else((0, True), circuit.copy(), circuit.copy(), range(4), [0]) + + expected = QuantumCircuit(4, 1) + expected.h(0) + expected.measure(0, 0) + expected.if_else((0, True), pass_(circuit), pass_(circuit), range(4), [0]) + + self.assertEqual(pass_(test), expected) + + def test_nested_control_flow(self): + """Test that collection recurses into nested control flow.""" + pass_ = CollectLinearFunctions() + qubits = [Qubit() for _ in [None] * 4] + clbit = Clbit() + + circuit = QuantumCircuit(qubits, [clbit]) + circuit.cx(0, 1) + circuit.cx(1, 0) + circuit.cx(2, 3) + + true_body = QuantumCircuit(qubits, [clbit]) + true_body.while_loop((clbit, True), circuit.copy(), [0, 1, 2, 3], [0]) + + test = QuantumCircuit(qubits, [clbit]) + test.for_loop(range(2), None, circuit.copy(), [0, 1, 2, 3], [0]) + test.if_else((clbit, True), true_body, None, [0, 1, 2, 3], [0]) + + expected_if_body = QuantumCircuit(qubits, [clbit]) + expected_if_body.while_loop((clbit, True), pass_(circuit), [0, 1, 2, 3], [0]) + expected = QuantumCircuit(qubits, [clbit]) + expected.for_loop(range(2), None, pass_(circuit), [0, 1, 2, 3], [0]) + expected.if_else((clbit, True), pass_(expected_if_body), None, [0, 1, 2, 3], [0]) + + self.assertEqual(pass_(test), expected) + if __name__ == "__main__": unittest.main() diff --git a/test/python/transpiler/test_optimize_1q_decomposition.py b/test/python/transpiler/test_optimize_1q_decomposition.py index 84161dac6956..51740a2cb605 100644 --- a/test/python/transpiler/test_optimize_1q_decomposition.py +++ b/test/python/transpiler/test_optimize_1q_decomposition.py @@ -542,6 +542,71 @@ def test_no_warning_on_hadamard(self): msg = f"expected:\n{expected}\nresult:\n{result}" self.assertEqual(expected, result, msg=msg) + def test_if_else(self): + """Test that the pass recurses in a simple if-else.""" + basis = ["cx", "sx", "u", "rz", "if_else"] + num_qubits = 4 + + qr = QuantumRegister(num_qubits) + cr = ClassicalRegister(1) + + test = QuantumCircuit(qr, cr) + test.h(0) + test.measure(0, 0) + test_true = QuantumCircuit(qr) + test_true.h(qr[0]) + test_true.h(qr[0]) + test_true.h(qr[0]) + test.if_else((0, True), test_true.copy(), None, range(num_qubits), [0]) + + expected = QuantumCircuit(qr, cr) + expected.u(np.pi / 2, 0, np.pi, 0) + expected.measure(0, 0) + expected_true = QuantumCircuit(qr) + expected_true.u(np.pi / 2, 0, -np.pi, qr[0]) + expected.if_else((0, True), expected_true, None, range(num_qubits), [0]) + + passmanager = PassManager() + passmanager.append(BasisTranslator(sel, basis)) + passmanager.append(Optimize1qGatesDecomposition(basis)) + result = passmanager.run(test) + self.assertEqual(result, expected) + + def test_nested_control_flow(self): + """Test that collection recurses into nested control flow.""" + + basis = ["cx", "u", "if_else", "for_loop"] + num_qubits = 4 + + qr = QuantumRegister(num_qubits) + cr = ClassicalRegister(1) + + test = QuantumCircuit(qr, cr) + test.h(0) + test.measure(0, 0) + test_true = QuantumCircuit(qr, cr) + test_for = QuantumCircuit(qr, cr) + test_for.h(qr[0]) + test_for.h(qr[0]) + test_for.h(qr[0]) + test_true.for_loop(range(4), body=test_for, qubits=qr, clbits=cr) + test.if_else((0, True), test_true.copy(), None, range(num_qubits), [0]) + + expected = QuantumCircuit(qr, cr) + expected.u(np.pi / 2, 0, np.pi, 0) + expected.measure(0, 0) + expected_true = QuantumCircuit(qr, cr) + expected_for = QuantumCircuit(qr, cr) + expected_for.u(np.pi / 2, 0, -np.pi, qr[0]) + expected_true.for_loop(range(4), body=expected_for, qubits=qr, clbits=cr) + expected.if_else((0, True), expected_true, None, range(num_qubits), [0]) + + passmanager = PassManager() + passmanager.append(BasisTranslator(sel, basis)) + passmanager.append(Optimize1qGatesDecomposition(basis)) + result = passmanager.run(test) + self.assertEqual(result, expected) + if __name__ == "__main__": unittest.main() diff --git a/test/python/transpiler/test_optimize_swap_before_measure.py b/test/python/transpiler/test_optimize_swap_before_measure.py index f635c9754a3b..4daea21aab1f 100644 --- a/test/python/transpiler/test_optimize_swap_before_measure.py +++ b/test/python/transpiler/test_optimize_swap_before_measure.py @@ -160,6 +160,60 @@ def test_cannot_optimize(self): self.assertEqual(circuit_to_dag(circuit), after) + def test_if_else(self): + """Test that the pass recurses into a simple if-else.""" + pass_ = OptimizeSwapBeforeMeasure() + + base_test = QuantumCircuit(2, 1) + base_test.swap(0, 1) + base_test.measure(0, 0) + + base_expected = QuantumCircuit(2, 1) + base_expected.measure(1, 0) + + test = QuantumCircuit(2, 1) + test.if_else( + (test.clbits[0], True), base_test.copy(), base_test.copy(), test.qubits, test.clbits + ) + + expected = QuantumCircuit(2, 1) + expected.if_else( + (expected.clbits[0], True), + base_expected.copy(), + base_expected.copy(), + expected.qubits, + expected.clbits, + ) + + self.assertEqual(pass_(test), expected) + + def test_nested_control_flow(self): + """Test that the pass recurses into nested control flow.""" + pass_ = OptimizeSwapBeforeMeasure() + + base_test = QuantumCircuit(2, 1) + base_test.swap(0, 1) + base_test.measure(0, 0) + + base_expected = QuantumCircuit(2, 1) + base_expected.measure(1, 0) + + body_test = QuantumCircuit(2, 1) + body_test.for_loop((0,), None, base_expected.copy(), body_test.qubits, []) + + body_expected = QuantumCircuit(2, 1) + body_expected.for_loop((0,), None, base_expected.copy(), body_expected.qubits, []) + + test = QuantumCircuit(2, 1) + test.while_loop((test.clbits[0], True), body_test, test.qubits, test.clbits) + + expected = QuantumCircuit(2, 1) + expected.while_loop( + (expected.clbits[0], True), body_expected, expected.qubits, expected.clbits + ) + + self.assertEqual(pass_(test), expected) + class TestOptimizeSwapBeforeMeasureFixedPoint(QiskitTestCase): """Test swap-followed-by-measure optimizations in a transpiler, using fixed point.""" diff --git a/test/python/transpiler/test_remove_barriers.py b/test/python/transpiler/test_remove_barriers.py index 89bbcdbe065a..c04bf3db4773 100644 --- a/test/python/transpiler/test_remove_barriers.py +++ b/test/python/transpiler/test_remove_barriers.py @@ -52,6 +52,60 @@ def test_remove_barriers_other_gates(self): for ii, name in enumerate(["x", "h"]): self.assertEqual(op_nodes[ii].name, name) + def test_simple_if_else(self): + """Test that the pass recurses into an if-else.""" + pass_ = RemoveBarriers() + + base_test = QuantumCircuit(1, 1) + base_test.barrier() + base_test.measure(0, 0) + + base_expected = QuantumCircuit(1, 1) + base_expected.measure(0, 0) + + test = QuantumCircuit(1, 1) + test.if_else( + (test.clbits[0], True), base_test.copy(), base_test.copy(), test.qubits, test.clbits + ) + + expected = QuantumCircuit(1, 1) + expected.if_else( + (expected.clbits[0], True), + base_expected.copy(), + base_expected.copy(), + expected.qubits, + expected.clbits, + ) + + self.assertEqual(pass_(test), expected) + + def test_nested_control_flow(self): + """Test that the pass recurses into nested control flow.""" + pass_ = RemoveBarriers() + + base_test = QuantumCircuit(1, 1) + base_test.barrier() + base_test.measure(0, 0) + + base_expected = QuantumCircuit(1, 1) + base_expected.measure(0, 0) + + body_test = QuantumCircuit(1, 1) + body_test.for_loop((0,), None, base_expected.copy(), body_test.qubits, []) + + body_expected = QuantumCircuit(1, 1) + body_expected.for_loop((0,), None, base_expected.copy(), body_expected.qubits, []) + + test = QuantumCircuit(1, 1) + test.while_loop((test.clbits[0], True), body_test, test.qubits, test.clbits) + + expected = QuantumCircuit(1, 1) + expected.while_loop( + (expected.clbits[0], True), body_expected, expected.qubits, expected.clbits + ) + + self.assertEqual(pass_(test), expected) + if __name__ == "__main__": unittest.main() diff --git a/test/python/transpiler/test_remove_diagonal_gates_before_measure.py b/test/python/transpiler/test_remove_diagonal_gates_before_measure.py index 20b9a63a26cc..eb225a19c841 100644 --- a/test/python/transpiler/test_remove_diagonal_gates_before_measure.py +++ b/test/python/transpiler/test_remove_diagonal_gates_before_measure.py @@ -212,6 +212,60 @@ def test_optimize_1rz_1z_1measure(self): self.assertEqual(circuit_to_dag(expected), after) + def test_simple_if_else(self): + """Test that the pass recurses into an if-else.""" + pass_ = RemoveDiagonalGatesBeforeMeasure() + + base_test = QuantumCircuit(1, 1) + base_test.z(0) + base_test.measure(0, 0) + + base_expected = QuantumCircuit(1, 1) + base_expected.measure(0, 0) + + test = QuantumCircuit(1, 1) + test.if_else( + (test.clbits[0], True), base_test.copy(), base_test.copy(), test.qubits, test.clbits + ) + + expected = QuantumCircuit(1, 1) + expected.if_else( + (expected.clbits[0], True), + base_expected.copy(), + base_expected.copy(), + expected.qubits, + expected.clbits, + ) + + self.assertEqual(pass_(test), expected) + + def test_nested_control_flow(self): + """Test that the pass recurses into nested control flow.""" + pass_ = RemoveDiagonalGatesBeforeMeasure() + + base_test = QuantumCircuit(2, 1) + base_test.cz(0, 1) + base_test.measure(0, 0) + + base_expected = QuantumCircuit(2, 1) + base_expected.measure(1, 0) + + body_test = QuantumCircuit(2, 1) + body_test.for_loop((0,), None, base_expected.copy(), body_test.qubits, []) + + body_expected = QuantumCircuit(2, 1) + body_expected.for_loop((0,), None, base_expected.copy(), body_expected.qubits, []) + + test = QuantumCircuit(2, 1) + test.while_loop((test.clbits[0], True), body_test, test.qubits, test.clbits) + + expected = QuantumCircuit(2, 1) + expected.while_loop( + (expected.clbits[0], True), body_expected, expected.qubits, expected.clbits + ) + + self.assertEqual(pass_(test), expected) + class TesRemoveDiagonalControlGatesBeforeMeasure(QiskitTestCase): """Test remove diagonal control gates before measure.""" diff --git a/test/python/transpiler/test_reset_after_measure_simplification.py b/test/python/transpiler/test_reset_after_measure_simplification.py index 86b810299011..d0ab0913ada8 100644 --- a/test/python/transpiler/test_reset_after_measure_simplification.py +++ b/test/python/transpiler/test_reset_after_measure_simplification.py @@ -138,3 +138,59 @@ def test_bv_circuit(self): for op in new_qc.data: if op.operation.name == "reset": self.assertEqual(op.qubits[0], new_qc.qubits[1]) + + def test_simple_if_else(self): + """Test that the pass recurses into an if-else.""" + pass_ = ResetAfterMeasureSimplification() + + base_test = QuantumCircuit(1, 1) + base_test.measure(0, 0) + base_test.reset(0) + + base_expected = QuantumCircuit(1, 1) + base_expected.measure(0, 0) + base_expected.x(0).c_if(0, True) + + test = QuantumCircuit(1, 1) + test.if_else( + (test.clbits[0], True), base_test.copy(), base_test.copy(), test.qubits, test.clbits + ) + + expected = QuantumCircuit(1, 1) + expected.if_else( + (expected.clbits[0], True), + base_expected.copy(), + base_expected.copy(), + expected.qubits, + expected.clbits, + ) + + self.assertEqual(pass_(test), expected) + + def test_nested_control_flow(self): + """Test that the pass recurses into nested control flow.""" + pass_ = ResetAfterMeasureSimplification() + + base_test = QuantumCircuit(1, 1) + base_test.measure(0, 0) + base_test.reset(0) + + base_expected = QuantumCircuit(1, 1) + base_expected.measure(0, 0) + base_expected.x(0).c_if(0, True) + + body_test = QuantumCircuit(1, 1) + body_test.for_loop((0,), None, base_expected.copy(), body_test.qubits, []) + + body_expected = QuantumCircuit(1, 1) + body_expected.for_loop((0,), None, base_expected.copy(), body_expected.qubits, []) + + test = QuantumCircuit(1, 1) + test.while_loop((test.clbits[0], True), body_test, test.qubits, test.clbits) + + expected = QuantumCircuit(1, 1) + expected.while_loop( + (expected.clbits[0], True), body_expected, expected.qubits, expected.clbits + ) + + self.assertEqual(pass_(test), expected) diff --git a/test/python/transpiler/test_sabre_swap.py b/test/python/transpiler/test_sabre_swap.py index 76c14535433f..44c369fbe154 100644 --- a/test/python/transpiler/test_sabre_swap.py +++ b/test/python/transpiler/test_sabre_swap.py @@ -262,6 +262,51 @@ def test_classical_condition(self): actual = PassManager([TrivialLayout(cm), SabreSwap(cm)]).run(qc) self.assertEqual(expected, actual) + def test_classical_condition_cargs(self): + """Test that classical conditions are preserved even if missing from cargs DAGNode field. + + Created from reproduction in https://github.com/Qiskit/qiskit-terra/issues/8675 + """ + with self.subTest("missing measurement"): + qc = QuantumCircuit(3, 1) + qc.cx(0, 2).c_if(0, 0) + qc.measure(1, 0) + qc.h(2).c_if(0, 0) + expected = QuantumCircuit(3, 1) + expected.swap(1, 2) + expected.cx(0, 1).c_if(0, 0) + expected.measure(2, 0) + expected.h(1).c_if(0, 0) + result = SabreSwap(CouplingMap.from_line(3), seed=12345)(qc) + self.assertEqual(result, expected) + with self.subTest("reordered measurement"): + qc = QuantumCircuit(3, 1) + qc.cx(0, 1).c_if(0, 0) + qc.measure(1, 0) + qc.h(0).c_if(0, 0) + expected = QuantumCircuit(3, 1) + expected.cx(0, 1).c_if(0, 0) + expected.measure(1, 0) + expected.h(0).c_if(0, 0) + result = SabreSwap(CouplingMap.from_line(3), seed=12345)(qc) + self.assertEqual(result, expected) + + def test_conditional_measurement(self): + """Test that instructions with cargs and conditions are handled correctly.""" + qc = QuantumCircuit(3, 2) + qc.cx(0, 2).c_if(0, 0) + qc.measure(2, 0).c_if(1, 0) + qc.h(2).c_if(0, 0) + qc.measure(1, 1) + expected = QuantumCircuit(3, 2) + expected.swap(1, 2) + expected.cx(0, 1).c_if(0, 0) + expected.measure(1, 0).c_if(1, 0) + expected.h(1).c_if(0, 0) + expected.measure(2, 1) + result = SabreSwap(CouplingMap.from_line(3), seed=12345)(qc) + self.assertEqual(result, expected) + if __name__ == "__main__": unittest.main() diff --git a/test/python/transpiler/test_swap_strategy_router.py b/test/python/transpiler/test_swap_strategy_router.py index 357e5bff182c..fe94206d497e 100644 --- a/test/python/transpiler/test_swap_strategy_router.py +++ b/test/python/transpiler/test_swap_strategy_router.py @@ -12,6 +12,8 @@ """Tests for swap strategy routers.""" +from ddt import ddt, data + from qiskit.circuit import QuantumCircuit, Qubit, QuantumRegister from qiskit.transpiler import PassManager, CouplingMap, Layout, TranspilerError @@ -25,6 +27,8 @@ from qiskit.transpiler.passes import EnlargeWithAncilla from qiskit.transpiler.passes import ApplyLayout from qiskit.transpiler.passes import SetLayout +from qiskit.transpiler.passes import CXCancellation +from qiskit.transpiler.passes import Decompose from qiskit.test import QiskitTestCase @@ -38,6 +42,7 @@ ) +@ddt class TestPauliEvolutionSwapStrategies(QiskitTestCase): """A class to test the swap strategies transpiler passes.""" @@ -497,6 +502,67 @@ def test_single_qubit_circuit(self): self.assertEqual(circ, self.pm_.run(circ)) + @data( + {(0, 1): 0, (2, 3): 0, (1, 2): 1}, # better coloring for the swap strategy + {(0, 1): 1, (2, 3): 1, (1, 2): 0}, # worse, i.e., less CX cancellation. + ) + def test_edge_coloring(self, edge_coloring): + """Test that the edge coloring works.""" + op = PauliSumOp.from_list([("IIZZ", 1), ("IZZI", 2), ("ZZII", 3), ("ZIZI", 4)]) + swaps = (((1, 2),),) + + cmap = CouplingMap([[0, 1], [1, 2], [2, 3]]) + cmap.make_symmetric() + + swap_strat = SwapStrategy(cmap, swaps) + + circ = QuantumCircuit(4) + circ.append(PauliEvolutionGate(op, 1), range(4)) + + pm_ = PassManager( + [ + FindCommutingPauliEvolutions(), + Commuting2qGateRouter(swap_strat, edge_coloring=edge_coloring), + Decompose(), # double decompose gets to CX + Decompose(), + CXCancellation(), + ] + ) + + expected = QuantumCircuit(4) + if edge_coloring[(0, 1)] == 1: + expected.cx(1, 2) + expected.rz(4, 2) + expected.cx(1, 2) + expected.cx(0, 1) + expected.rz(2, 1) + expected.cx(0, 1) + expected.cx(2, 3) + expected.rz(6, 3) + expected.cx(2, 3) + expected.cx(1, 2) + expected.cx(2, 1) + expected.cx(1, 2) + expected.cx(2, 3) + expected.rz(8, 3) + expected.cx(2, 3) + else: + expected.cx(0, 1) + expected.rz(2, 1) + expected.cx(0, 1) + expected.cx(2, 3) + expected.rz(6, 3) + expected.cx(2, 3) + expected.cx(1, 2) + expected.rz(4, 2) + expected.cx(2, 1) + expected.cx(1, 2) + expected.cx(2, 3) + expected.rz(8, 3) + expected.cx(2, 3) + + self.assertEqual(pm_.run(circ), expected) + class TestSwapRouterExceptions(QiskitTestCase): """Test that exceptions are properly raises.""" diff --git a/test/python/transpiler/test_unroll_3q_or_more.py b/test/python/transpiler/test_unroll_3q_or_more.py index 34181309ec4d..2d8bdc23aba8 100644 --- a/test/python/transpiler/test_unroll_3q_or_more.py +++ b/test/python/transpiler/test_unroll_3q_or_more.py @@ -14,6 +14,7 @@ import numpy as np from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit +from qiskit.circuit import Qubit, Clbit from qiskit.circuit.library import CCXGate, RCCXGate from qiskit.transpiler.passes import Unroll3qOrMore from qiskit.converters import circuit_to_dag, dag_to_circuit @@ -130,3 +131,52 @@ def test_target_over_basis_gates(self): res = unroll_pass(qc) self.assertIn("ccx", res.count_ops()) self.assertNotIn("rccx", res.count_ops()) + + def test_if_else(self): + """Test that a simple if-else over 3+ qubits unrolls correctly.""" + pass_ = Unroll3qOrMore(basis_gates=["u", "cx"]) + + true_body = QuantumCircuit(3, 1) + true_body.h(0) + true_body.ccx(0, 1, 2) + false_body = QuantumCircuit(3, 1) + false_body.rccx(2, 1, 0) + + test = QuantumCircuit(3, 1) + test.h(0) + test.measure(0, 0) + test.if_else((0, True), true_body, false_body, [0, 1, 2], [0]) + + expected = QuantumCircuit(3, 1) + expected.h(0) + expected.measure(0, 0) + expected.if_else((0, True), pass_(true_body), pass_(false_body), [0, 1, 2], [0]) + + self.assertEqual(pass_(test), expected) + + def test_nested_control_flow(self): + """Test that the unroller recurses into nested control flow.""" + pass_ = Unroll3qOrMore(basis_gates=["u", "cx"]) + qubits = [Qubit() for _ in [None] * 3] + clbit = Clbit() + + for_body = QuantumCircuit(qubits, [clbit]) + for_body.ccx(0, 1, 2) + + while_body = QuantumCircuit(qubits, [clbit]) + while_body.rccx(0, 1, 2) + + true_body = QuantumCircuit(qubits, [clbit]) + true_body.while_loop((clbit, True), while_body, [0, 1, 2], [0]) + + test = QuantumCircuit(qubits, [clbit]) + test.for_loop(range(2), None, for_body, [0, 1, 2], [0]) + test.if_else((clbit, True), true_body, None, [0, 1, 2], [0]) + + expected_if_body = QuantumCircuit(qubits, [clbit]) + expected_if_body.while_loop((clbit, True), pass_(while_body), [0, 1, 2], [0]) + expected = QuantumCircuit(qubits, [clbit]) + expected.for_loop(range(2), None, pass_(for_body), [0, 1, 2], [0]) + expected.if_else(range(2), pass_(expected_if_body), None, [0, 1, 2], [0]) + + self.assertEqual(pass_(test), expected) diff --git a/test/python/transpiler/test_unroll_custom_definitions.py b/test/python/transpiler/test_unroll_custom_definitions.py index 2125e7ddc763..18d6ea932dd2 100644 --- a/test/python/transpiler/test_unroll_custom_definitions.py +++ b/test/python/transpiler/test_unroll_custom_definitions.py @@ -15,7 +15,7 @@ from qiskit.transpiler.passes.basis import UnrollCustomDefinitions from qiskit.test import QiskitTestCase -from qiskit.circuit import EquivalenceLibrary, Gate +from qiskit.circuit import EquivalenceLibrary, Gate, Qubit, Clbit from qiskit.circuit import QuantumCircuit, QuantumRegister from qiskit.converters import circuit_to_dag from qiskit.exceptions import QiskitError @@ -135,3 +135,73 @@ def test_unroll_twice_until_we_get_to_eqlib(self): expected_dag = circuit_to_dag(expected) self.assertEqual(out, expected_dag) + + def test_if_else(self): + """Test that a simple if-else unrolls correctly.""" + eq_lib = EquivalenceLibrary() + + equiv = QuantumCircuit(1) + equiv.h(0) + eq_lib.add_equivalence(TestGate(), equiv) + + equiv = QuantumCircuit(1) + equiv.z(0) + eq_lib.add_equivalence(TestCompositeGate(), equiv) + + pass_ = UnrollCustomDefinitions(eq_lib, basis_gates=["h", "z", "cx"]) + + true_body = QuantumCircuit(1) + true_body.h(0) + true_body.append(TestGate(), [0]) + false_body = QuantumCircuit(1) + false_body.append(TestCompositeGate(), [0]) + + test = QuantumCircuit(1, 1) + test.h(0) + test.measure(0, 0) + test.if_else((0, True), true_body, false_body, [0], []) + + expected = QuantumCircuit(1, 1) + expected.h(0) + expected.measure(0, 0) + expected.if_else((0, True), pass_(true_body), pass_(false_body), [0], []) + + self.assertEqual(pass_(test), expected) + + def test_nested_control_flow(self): + """Test that the unroller recurses into nested control flow.""" + eq_lib = EquivalenceLibrary() + base_gate = TestGate() + equiv = QuantumCircuit(1) + equiv.h(0) + eq_lib.add_equivalence(base_gate, equiv) + base_gate = TestCompositeGate() + equiv = QuantumCircuit(1) + equiv.z(0) + eq_lib.add_equivalence(base_gate, equiv) + + pass_ = UnrollCustomDefinitions(eq_lib, basis_gates=["h", "z", "cx"]) + + qubit = Qubit() + clbit = Clbit() + + for_body = QuantumCircuit(1) + for_body.append(TestGate(), [0], []) + + while_body = QuantumCircuit(1) + while_body.append(TestCompositeGate(), [0], []) + + true_body = QuantumCircuit([qubit, clbit]) + true_body.while_loop((clbit, True), while_body, [0], [0]) + + test = QuantumCircuit([qubit, clbit]) + test.for_loop(range(2), None, for_body, [0], [0]) + test.if_else((clbit, True), true_body, None, [0], [0]) + + expected_if_body = QuantumCircuit([qubit, clbit]) + expected_if_body.while_loop((clbit, True), pass_(while_body), [0], [0]) + expected = QuantumCircuit([qubit, clbit]) + expected.for_loop(range(2), None, pass_(for_body), [0], [0]) + expected.if_else(range(2), pass_(expected_if_body), None, [0], [0]) + + self.assertEqual(pass_(test), expected) diff --git a/test/python/transpiler/test_vf2_layout.py b/test/python/transpiler/test_vf2_layout.py index 57eaa09a0330..4cb4b44871f2 100644 --- a/test/python/transpiler/test_vf2_layout.py +++ b/test/python/transpiler/test_vf2_layout.py @@ -13,10 +13,12 @@ """Test the VF2Layout pass""" import unittest +from math import pi + import numpy import retworkx -from qiskit import QuantumRegister, QuantumCircuit +from qiskit import QuantumRegister, QuantumCircuit, ClassicalRegister from qiskit.transpiler import CouplingMap, Target, TranspilerError from qiskit.transpiler.passes.layout.vf2_layout import VF2Layout, VF2LayoutStopReason from qiskit.converters import circuit_to_dag @@ -26,8 +28,11 @@ FakeRueschlikon, FakeManhattan, FakeYorktown, + FakeGuadalupeV2, ) from qiskit.circuit.library import GraphState, CXGate +from qiskit.transpiler import PassManager +from qiskit.transpiler.preset_passmanagers.common import generate_embed_passmanager class LayoutTestCase(QiskitTestCase): @@ -497,7 +502,7 @@ def test_reasonable_limits_for_simple_layouts(self): "DEBUG:qiskit.transpiler.passes.layout.vf2_layout:Trial 159 is >= configured max trials 159", cm.output, ) - self.assertEqual(set(property_set["layout"].get_physical_bits()), {49, 40, 58, 3, 4}) + self.assertEqual(set(property_set["layout"].get_physical_bits()), {49, 40, 58, 0, 1}) def test_no_limits_with_negative(self): """Test that we're not enforcing a trial limit if set to negative.""" @@ -518,7 +523,48 @@ def test_no_limits_with_negative(self): vf2_pass(qc, property_set) for output in cm.output: self.assertNotIn("is >= configured max trials", output) - self.assertEqual(set(property_set["layout"].get_physical_bits()), {3, 1, 2}) + self.assertEqual(set(property_set["layout"].get_physical_bits()), {3, 1, 0}) + + def test_qregs_valid_layout_output(self): + """Test that vf2 layout doesn't add extra qubits. + + Reproduce from https://github.com/Qiskit/qiskit-terra/issues/8667 + """ + backend = FakeGuadalupeV2() + qr = QuantumRegister(16, name="qr") + cr = ClassicalRegister(5) + qc = QuantumCircuit(qr, cr) + qc.rz(pi / 2, qr[0]) + qc.sx(qr[0]) + qc.sx(qr[1]) + qc.rz(-pi / 4, qr[1]) + qc.sx(qr[1]) + qc.rz(pi / 2, qr[1]) + qc.rz(2.8272143, qr[0]) + qc.rz(0.43324854, qr[1]) + qc.sx(qr[1]) + qc.rz(-0.95531662, qr[7]) + qc.sx(qr[7]) + qc.rz(3 * pi / 4, qr[7]) + qc.barrier([qr[1], qr[10], qr[4], qr[0], qr[7]]) + vf2_pass = VF2Layout( + seed=12345, + target=backend.target, + ) + vf2_pass(qc) + self.assertEqual(len(vf2_pass.property_set["layout"].get_physical_bits()), 16) + self.assertEqual(len(vf2_pass.property_set["layout"].get_virtual_bits()), 16) + pm = PassManager( + [ + VF2Layout( + seed=12345, + target=backend.target, + ) + ] + ) + pm += generate_embed_passmanager(backend.coupling_map) + res = pm.run(qc) + self.assertEqual(res.num_qubits, 16) if __name__ == "__main__": diff --git a/test/python/visualization/test_circuit_text_drawer.py b/test/python/visualization/test_circuit_text_drawer.py index fdd98a1f4aea..d570341f40ba 100644 --- a/test/python/visualization/test_circuit_text_drawer.py +++ b/test/python/visualization/test_circuit_text_drawer.py @@ -3447,6 +3447,13 @@ def test_text_barrier_delay(self): circuit.delay(100, qr[2]) self.assertEqual(str(_text_circuit_drawer(circuit, idle_wires=False)), expected) + def test_does_not_mutate_circuit(self): + """Using 'idle_wires=False' should not mutate the circuit. Regression test of gh-8739.""" + circuit = QuantumCircuit(1) + before_qubits = circuit.num_qubits + circuit.draw(idle_wires=False) + self.assertEqual(circuit.num_qubits, before_qubits) + class TestTextNonRational(QiskitTestCase): """non-rational numbers are correctly represented"""