From 5d0e3dac76247d1c029192e1bfc544be04ef9293 Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Tue, 15 Oct 2024 11:43:38 -0400 Subject: [PATCH 01/32] Fix forks running job cancellation code in PRs (#2138) Fixes https://github.com/Qiskit/documentation/pull/2062. While we now correctly detect in forks when no notebooks need to be run, we still were trying to call cleanup code, even though there are no jobs to clean up. That cleanup code requires logging into Runtime, so it fails on forks. Instead, we should early exit if there are no notebooks to run. --- scripts/nb-tester/qiskit_docs_notebook_tester/__init__.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/nb-tester/qiskit_docs_notebook_tester/__init__.py b/scripts/nb-tester/qiskit_docs_notebook_tester/__init__.py index afbae91b320..28bc01c3b1e 100644 --- a/scripts/nb-tester/qiskit_docs_notebook_tester/__init__.py +++ b/scripts/nb-tester/qiskit_docs_notebook_tester/__init__.py @@ -351,6 +351,10 @@ async def _main() -> None: config = Config.from_args(args) paths = list(config.notebooks_to_execute()) + if not paths: + print("⚠️ No notebooks to execute - exiting") + return + if paths and args.is_fork: print( "⛔️ We can't run notebook tests on pull requests from forks becaus of how GitHub Secrets work." @@ -375,7 +379,6 @@ async def _main() -> None: results.append(cancel_trailing_jobs(start_time, config.args.config_path)) if not all(results): sys.exit(1) - sys.exit(0) def main(): From 991d37a9207e8cd00cf8f554d53f7a73da975815 Mon Sep 17 00:00:00 2001 From: Ludmila Botelho <39570941+ludmilaasb@users.noreply.github.com> Date: Tue, 15 Oct 2024 18:41:30 +0200 Subject: [PATCH 02/32] Update TEM documentation (#2088) Co-authored-by: abbycross Co-authored-by: Francesca Pietracaprina Co-authored-by: Francesca Pietracaprina --- docs/guides/algorithmiq-tem.ipynb | 280 +++++++++++++++++++----------- 1 file changed, 177 insertions(+), 103 deletions(-) diff --git a/docs/guides/algorithmiq-tem.ipynb b/docs/guides/algorithmiq-tem.ipynb index 75fc589b642..ee30fa776bb 100644 --- a/docs/guides/algorithmiq-tem.ipynb +++ b/docs/guides/algorithmiq-tem.ipynb @@ -5,7 +5,7 @@ "id": "f7d9993f", "metadata": {}, "source": [ - "{/* cspell:ignore POVM, mathbf, Filippov, Lindblad, Leahy, Rossi, García, Pérez */}" + "{/* cspell:ignore POVM, mathbf, Filippov, Lindblad, Leahy, Rossi, García, Pérez, Minev, Kandala, Temme */}" ] }, { @@ -21,18 +21,52 @@ "\n", "## Overview\n", "\n", - "The Tensor-network error mitigation (TEM) function computes expectation values of quantum circuits and observables by post-processing noise-induced errors in estimations of physical observables.\n", - "\n", - "The method consists of constructing a tensor network representing the inverse of the global noise channel affecting the state of the quantum processor, and then applying the map to informationally complete measurement outcomes obtained from the noisy state.\n", - "\n", - "As an advantage, TEM leverages informationally complete measurements to give access to a vast set of mitigated expectation values of observables and has optimal sampling\n", - "overhead on the quantum hardware [1]. TEM can also be advantageous with respect to purely classical tensor network methods, giving accurate results with a smaller computational cost than a classical-only tensor network approach.\n", - "\n", - "See reference [1] for further details.\n", - "\n", - "#### References\n", - "\n", - "1. S. Filippov, M. Leahy, M. A. C. Rossi, G. García-Pérez, Scalable tensor-network error mitigation for near-term quantum computing, [arXiv:1111.6950](https://arxiv.org/abs/2307.11740) [quant-ph]" + "Algorithmiq’s Tensor-network Error Mitigation (TEM) method is a hybrid\n", + "quantum-classical algorithm designed for performing noise mitigation entirely at\n", + "the classical post-processing stage. With TEM, the user can compute the\n", + "expectation values of observables mitigating the inevitable noise-induced errors\n", + "that occur on quantum hardware with increased accuracy and cost efficiency,\n", + "making it a highly attractive option for quantum researchers and industry\n", + "practitioners alike.\n", + "\n", + "The method consists of constructing a tensor network representing the inverse of\n", + "the global noise channel affecting the state of the quantum processor and then\n", + "applying the map to informationally complete measurement outcomes acquired from\n", + "the noisy state to obtain unbiased estimators for the observables.\n", + "\n", + "As an advantage, TEM leverages informationally complete measurements to give\n", + "access to a vast set of mitigated expectation values of observables and has\n", + "optimal sampling overhead on the quantum hardware, as described in Filippov at\n", + "al. (2023), [arXiv:2307.11740](https://arxiv.org/abs/2307.11740), and Filippov\n", + "at al. (2024), [arXiv:2403.13542](https://arxiv.org/abs/2403.13542). The\n", + "measurement overhead refers to the number of additional measurements required to\n", + "perform efficient error mitigation, a critical factor in the feasibility of\n", + "quantum computations. Therefore, TEM has the potential to enable quantum\n", + "advantage in complex scenarios, such as applications in the fields of quantum\n", + "chaos, many-body physics, Hubbard dynamics, and small molecule chemistry\n", + "simulations.\n", + "\n", + "The main features and benefits of TEM can be summarized as:\n", + "\n", + "1. **Optimal measurement overhead**: TEM is optimal with respect to\n", + "[theoretical bounds](https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.131.210601),\n", + "meaning that no method can achieve a smaller measurement overhead. In other\n", + "words, TEM requires the minimum number of additional measurements to perform\n", + "error mitigation. This in turns means that TEM uses minimal quantum runtime.\n", + "2. **Cost-effectiveness**: Since TEM handles noise mitigation entirely in the\n", + "post-processing stage, there is no need to add extra circuits to the quantum\n", + "computer, which not only makes the computation cheaper but also diminishes the\n", + "risk of introducing additional errors due to the imperfections of quantum\n", + "devices.\n", + "3. **Estimation of multiple observables**: Thanks to informationally-complete\n", + "measurements, TEM efficiently estimates multiple observables with the same\n", + "measurement data from the quantum computer.\n", + "4. **Measurement error mitigation**: The TEM Qiskit Function also includes a\n", + "[proprietary measurement error mitigation method](https://journals.aps.org/prresearch/abstract/10.1103/PhysRevResearch.5.033154)\n", + "able to significantly reduce readout errors after a short calibration run.\n", + "5. **Accuracy**: TEM significantly improves the accuracy and reliability of\n", + "digital quantum simulations, making quantum algorithms more precise and\n", + "dependable." ] }, { @@ -40,89 +74,56 @@ "id": "5f761442", "metadata": {}, "source": [ - "## Function description\n", - "\n", + "## Description\n", "\n", - "The TEM function takes a noisy circuit with the noisy layers identified. The circuit is measured with an informationally complete positive operator-valued measure (IC-POVM), and the collected measurement outcomes are processed on a classical computer. This measurement is used to perform the tensor network methods and build a noise-inversion map $\\mathcal{N}^{-1}$. The function applies a map $\\mathcal{M}$ that fully inverts the whole noisy circuit using matrix product operators to represent the noisy layers.\n", + "The TEM function allows you to obtain error-mitigated expectation values for\n", + "multiple observables on a quantum circuit with minimal sampling overhead. The\n", + "circuit is measured with an informationally complete positive operator-valued\n", + "measure (IC-POVM), and the collected measurement outcomes are processed on a\n", + "classical computer. This measurement is used to perform the tensor network\n", + "methods and build a noise-inversion map. The function applies a map that fully\n", + "inverts the whole noisy circuit using tensor networks to represent the noisy\n", + "layers.\n", "\n", "![TEM schematics](/images/guides/algorithmiq-tem/tem_scheme.svg \"Error-mitigated estimation of an observable O via post-processing measurement outcomes of the noisy quantum processor. U and N denote an ideal quantum operation and the associated noise map, which can be generally non-local (and extended to grey boxes). D stands for a tensor of operators that are dual to the effects in the IC measurement. The noise mitigation module M is a tensor network that is efficiently contracted from the middle out. The first iteration of the contraction is represented by the dotted purple line, the second one by the dashed line, and the third one by the solid line.\")\n", "\n", - "To mitigate the noise, the algorithm performs a contraction that starts from the middle (where the inverted noisy circuit ends and the ideal circuit starts) and propagates outward by involving two layers on the left side and one layer on the right side at each iteration. Therefore, the noisy circuit output state $\\rho$ is reverted back to $(\\vert 0 \\rangle\\langle0\\vert)^{\\otimes N}$, which in turn is mapped to the ideal noiseless state operator $\\vert\\psi\\rangle\\langle \\psi\\vert$.\n", - "\n", - "The noise-mitigated estimation of an observable ${O}$ is then read as\n", - "$$\n", - "\\bar{O}_{\\text{n}.\\text{m}} = \\frac{1}{S} \\sum_{\\mathbf{k}} \\text{tr} [\\mathcal{M}(D_{\\mathbf{k}})O] = \\frac{1}{S} \\sum_{\\mathbf{k}} \\text{tr} [D_{\\mathbf{k}}\\mathcal{M}^{\\dagger}(O)],\n", - "$$\n", - "where $D\\mathbf{k}$ is the dual operator of the corresponding POVM associated with a measurement shot $\\mathbf{k}$ in a set of $S$ shots.\n", - "\n", - "\n", - "The algorithm is described in further detail in [Filippov et al. (2023)](https://arxiv.org/abs/2307.11740).\n", - "\n", - "\n", - "### Methods\n", - "\n", - "#### run\n", - "\n", - "`run(pubs,options)`\n", - "\n", - "\n", - "The run() method allows computing the expectation values for a primitive unified bloc (PUB) containing a circuit and a list of observables.\n", - "\n", - "**Parameters**\n", - "Name | Type | Description | Required | Example\n", - "-- | -- | -- | -- | --\n", - "pubs | Iterable[EstimatorPubLike] | An iterable of PUB-like (primitive unified bloc) objects, such as tuples `(circuit, observables)` or `(circuit, observables, parameter_values)`. See [Overview of PUBs](/guides/primitive-input-output#overview-of-pubs) for more information. The circuits don’t need to be ISA circuits. | Yes | (circuit, observables, parameter_values)\n", - "instance | str | The hub/group/project to use in that format. | No | \"hub1/group1/project1\"\n", - "options | dict | Input options. See `Options` section for more details. | No | \\{\"optimization_level\": 3\\}\n", - "\n", - "**Options**\n", - "\n", - "A dictionary containing the options for the TEM. The dictionary should contain the following keys:\n", - "\n", - "Name | Type | Description | Example\n", - "-- | -- | -- | --\n", - "backend_name | str | Name of the backend to make the query.| \"ibm_fez\"\n", - "simulate_with_noise_model | bool | A Boolean flag indicating whether to simulate the noisy circuit or not.| False\n", - "max_bond_dimension | int | The maximum bond dimension to be used for MPOs. | True\n", - "tem_compression_cutoff | float | The cutoff value to be used for MPOs. | 1e-16\n", - "num_max_shots | int | The maximum number of shots. | 10_000\n", - "num_randomizations | int | The number of randomizations to be used for gate twirling. | 32\n", - "mitigate_readout_error | bool | A Boolean flag indicating whether to perform QDT readout error mitigation or not. | 24\n", - "num_readout_calibration_shots | int | The number of shots to be used for QDT readout error mitigation. | 1000\n", - "logging_level | str | The logging level to be used for the TEM runner. | \"INFO\"\n", - "\n", - "**Returns**\n", - "\n", - "A PubResult containing the TEM mitigated result:\n", - "\n", - "\n", - "Name |Type | Description\n", - "-- | -- | --\n", - "data | DataBin | A DataBin containing the TEM mitigated observable and its standard error. The DataBin has the following fields:
  • `observable`: The TEM mitigated observable value.
  • `observable_stderr`: The standard error of the TEM mitigated observable.
\n", - "metadadata | dict | A dictionary containing additional results. The dictionary contains the following keys:
  • `\"observable_non_mitigated\"`: The observable value without error mitigation.
  • `\"observable_non_mitigated_stderr\"`: The standard error of the result without error mitigation.
  • `\"observable_simulated\"`: If its computation is enabled in the TEM options, contains the result obtained by simulating the circuit with the learned noise.
" + "Once the circuits are submitted to the function, they are transpiled and\n", + "optimized to minimize the number of layers with two-qubit gates (the noisier\n", + "gates on quantum devices). The noise affecting the layers is learned through\n", + "[Qiskit Runtime](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.noise_learner.NoiseLearner)\n", + "using a sparse Pauli-Lindblad noise model as described in E. van den Berg, Z.\n", + "Minev, A. Kandala, K. Temme, Nat. Phys. (2023).\n", + "[arXiv:2201.09866](https://arxiv.org/abs/2201.09866).\n", + "\n", + "The noise model is an accurate description of the noise on the device able to\n", + "capture subtle features, including qubit cross-talk. However, noise on the\n", + "devices can fluctuate and drift and the learned noise might not be accurate at\n", + "the point at which the estimation is done. This might result in inaccurate\n", + "results." ] }, { "cell_type": "markdown", - "id": "73390a19", + "id": "2995da29", "metadata": {}, "source": [ "## Get started\n", "\n", - "Authenticate using your [IBM Quantum Platform API token](http://quantum.ibm.com/), and select the TEM as follows:" + "Authenticate using your [IBM Quantum Platform API token](http://quantum.ibm.com/), and select the TEM function as follows:" ] }, { "cell_type": "code", - "execution_count": 1, - "id": "95a715d2", + "execution_count": null, + "id": "cc0a8093", "metadata": {}, "outputs": [], "source": [ "from qiskit_ibm_catalog import QiskitFunctionsCatalog\n", "\n", "tem_function_name = \"algorithmiq/tem\"\n", - "catalog = QiskitFunctionsCatalog(token = \"\")\n", + "\n", + "catalog = QiskitFunctionsCatalog(token=\"\")\n", "\n", "# Load your function\n", "tem = catalog.load(tem_function_name)" @@ -130,7 +131,7 @@ }, { "cell_type": "markdown", - "id": "e8837f5f", + "id": "ae7adcc7", "metadata": {}, "source": [ "## Example\n", @@ -141,8 +142,8 @@ }, { "cell_type": "code", - "execution_count": 7, - "id": "d56e1440", + "execution_count": null, + "id": "ab05b87f", "metadata": {}, "outputs": [], "source": [ @@ -165,70 +166,143 @@ " qc.u(-1.2, -1.2, 0.3, 2)\n", "\n", "# Define the observables\n", - "observable = SparsePauliOp(\"YXZ\", 1.0)\n", + "observable = SparsePauliOp(\"IYX\", 1.0)\n", "\n", "# Define the execution options\n", "service = QiskitRuntimeService()\n", "backend_name = service.least_busy(operational=True).name\n", + "\n", "instance = \"\"\n", "\n", - "pub = (qc, observable)\n", + "pub = (qc, [observable])\n", "options = {\n", - " \"backend_name\": backend_name,\n", - " \"num_max_shots\": 100,\n", + " \"max_execution_time\": 60,\n", "}\n", - "job = tem.run(instance=instance, pub=pub, options=options)" + "job = tem.run(pubs=[pub], instance=instance, backend_name=backend_name, options=options)" ] }, { "cell_type": "markdown", - "id": "03998691", + "id": "6e2a97e2", "metadata": {}, "source": [ - "The following code checks your Qiskit Function workload's status or return results:" + "Use the Qiskit Serverless APIs to check your Qiskit Function workload's status:" ] }, { "cell_type": "code", "execution_count": null, - "id": "856fe992", + "id": "47b0db71", "metadata": {}, "outputs": [], "source": [ - "print(job.status())\n", - "result = job.result()" + "print(job.status())" ] }, { "cell_type": "markdown", - "id": "e2817b13", + "id": "fbaeace8", "metadata": {}, "source": [ - "## Advanced options\n", - "\n", - "You can fine-tune your calculations and get more verbose information by passing additional options to TEM." + "You can return the results as:" ] }, { "cell_type": "code", - "execution_count": 7, - "id": "c2ce65e3", + "execution_count": null, + "id": "ad5b9a53", "metadata": {}, "outputs": [], "source": [ - "import logging\n", + "result = job.result()\n", + "evs = result[0].data.evs" + ] + }, + { + "cell_type": "markdown", + "id": "e5e138d3", + "metadata": {}, + "source": [ + "\n", + " The expected value for the noiseless circuit for the given operator should be around `0.18409094298943401`.\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "c6ffb685", + "metadata": {}, + "source": [ + "## Inputs\n", "\n", - "options = {\n", - " \"backend_name\": backend_name,\n", - " \"num_max_shots\": 1_000,\n", - " \"simulate_with_noise_model\": True,\n", - " \"mitigate_readout_error\": True,\n", - " \"num_readout_calibration_shots\": 10_000,\n", - " \"logging_level\": logging.WARNING\n", - " }\n", + "**Parameters**\n", + "Name | Type | Description | Required | Default | Example\n", + "-- | -- | -- | -- | -- | --\n", + "`pubs` | Iterable[EstimatorPubLike] | An iterable of PUB-like (primitive unified bloc) objects, such as tuples `(circuit, observables)` or `(circuit, observables, parameters, precision)`. See [Overview of PUBs](/guides/primitive-input-output#overview-of-pubs) for more information. The circuits don't need to be ISA circuits. | Yes | N/A | (circuit, observables)\n", + "`backend_name` | str | Name of the backend to make the query.| No | If not provided, the least busy backend will be used. | \"ibm_fez\"\n", + "`instance` | str | The hub/group/project to use in that format. | Yes | N/A |\"hub1/group1/project1\"\n", + "`options` | dict | Input options. See `Options` section for more details. | No | See `Options` section for more details.| \\{\"max_bond_dimension\": 100\\}\n", + "\n", + "\n", + " TEM does not currently support parametrized circuits. The `parameters` argument should be set to `None` if `precision` is specified.\n", + "\n", + " TEM currently supports circuits with linear connectivity. This restriction will be removed in future versions." + ] + }, + { + "cell_type": "markdown", + "id": "1ebd5f9b", + "metadata": {}, + "source": [ + "### Options\n", + "\n", + "A dictionary containing the advanced options for the TEM. The dictionary may contain the keys in the following table. If any of the options are not provided, the default value listed in the table will be used. The default values are good for typical use of TEM.\n", + "\n", + "Name | Choices | Description | Default\n", + "-- | -- | -- | --\n", + "`max_bond_dimension` | int | The maximum bond dimension to be used for the tensor networks. | 500 |\n", + "`tem_compression_cutoff` | float | The cutoff value to be used for the tensor networks. | 1e-16\n", + "`max_execution_time` | int or `None` | The maximum execution time on the QPU in seconds. If the runtime exceeds this value, the job will be canceled. If `None`, a default limit set by Qiskit Runtime will apply. | `None`\n", + "`num_randomizations` | int | The number of randomizations to be used for gate twirling. | 32\n", + "`mitigate_readout_error` | bool | A Boolean flag indicating whether to perform readout error mitigation or not. | True\n", + "`num_readout_calibration_shots` | int | The number of shots to be used for readout error mitigation. | 10000\n", + "`default_precision` | float | The default precision to be used for the PUBs for which the precision is not specified. |0.02" + ] + }, + { + "cell_type": "markdown", + "id": "7a04364c", + "metadata": {}, + "source": [ + "## Outputs\n", "\n", + "A Qiskit [PrimitiveResults](/api/qiskit/qiskit.primitives.PrimitiveResult) containing the TEM-mitigated result. The result for each PUB is returned as a [PubResult](/api/qiskit/qiskit.primitives.PubResult) containing the following fields:\n", "\n", - "job = tem.run(instance = instance, pub = pub, options = options)" + "\n", + "Name |Type | Description\n", + "-- | -- | --\n", + "data | DataBin | A Qiskit [DataBin](/api/qiskit/qiskit.primitives.DataBin) containing the TEM mitigated observable and its standard error. The DataBin has the following fields:
  • `evs`: The TEM-mitigated observable value.
  • `stds`: The standard error of the TEM-mitigated observable.
\n", + "metadadata | dict | A dictionary containing additional results. The dictionary contains the following keys:
  • `\"evs_non_mitigated\"`: The observable value without error mitigation.
  • `\"stds_non_mitigated\"`: The standard error of the result without error mitigation.
  • `\"evs_mitigated_no_readout_mitigation\"`: The observable value with error mitigation but without readout error mitigation.
  • `\"stds_mitigated_no_readout_mitigation\"`: The standard error of the result with error mitigation but without readout error mitigation.
  • `\"evs_non_mitigated_with_readout_mitigation\"`: The observable value without error mitigation but with readout error mitigation.
  • `\"stds_non_mitigated_with_readout_mitigation\"`: The standard error of the result without error mitigation but with readout error mitigation.
" + ] + }, + { + "cell_type": "markdown", + "id": "fd045ee6", + "metadata": {}, + "source": [ + "## Fetching error messages\n", + "\n", + "If your workload status is ERROR, use job.result() to fetch the error message as follows:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0433171c", + "metadata": {}, + "outputs": [], + "source": [ + "print(job.result())" ] }, { From f49f2cf0e58d05e2f8f77f21c3a63248d109dbe6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 09:09:08 -0400 Subject: [PATCH 03/32] Update qiskit-ibm-runtime requirement from ~=0.30.0 to ~=0.31.0 in /scripts/nb-tester (#2140) Updates the requirements on [qiskit-ibm-runtime](https://github.com/Qiskit/qiskit-ibm-runtime) to permit the latest version.
Release notes

Sourced from qiskit-ibm-runtime's releases.

Qiskit IBM Runtime 0.31.0

Changelog

Added

  • Adding a more developer-friendly interface to specify qubit coordinates (#1952)

Fixed

  • Bug fix: ISA check inside control flow operations whose body is defined in a separate circuit (#1954)
  • Enhance the ISA check with validation of rzz angle (#1953)
Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- scripts/nb-tester/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/nb-tester/requirements.txt b/scripts/nb-tester/requirements.txt index 7db3c4396ef..75e76201d69 100644 --- a/scripts/nb-tester/requirements.txt +++ b/scripts/nb-tester/requirements.txt @@ -3,6 +3,6 @@ qiskit[all]~=1.2.4 qiskit-aer~=0.15.1 -qiskit-ibm-runtime~=0.30.0 +qiskit-ibm-runtime~=0.31.0 qiskit-serverless~=0.17.1 qiskit-ibm-catalog~=0.1 From b33f7318df77e891a656c7e00734f021c0d51fde Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Wed, 16 Oct 2024 09:18:59 -0400 Subject: [PATCH 04/32] Generate redirect data for better changing of API versions (#2125) This data will allow us to have better redirects with the version selector between arbitrary versions like 0.1 <-> 0.2. The JSON file also sets the keys `latestVersions` and `customRedirectsToLatest` to preserve the current mechanism we have for the API version warning banner on historical/dev docs to take you to the latest version. Once the web app is using this new file, we'll remove `generateHistoricalRedirects.ts` with this new script and JSON file. ## Missing Pages data representation If this file's memory becomes a problem over time, we can use a more optimal representation of missing pages. Rather than enumerating every version a page is missing from, we can store contiguous ranges. For example, ("0.1", "0.5") would mean the page is missing in 0.1-0.5. However, this representation is not as simple: - We need to handle multiple contiguous ranges. For example, imagine an API added in 0.3 but removed in 0.6. This would be [("0.1", "0.2"), ("0.6", "")] - Qiskit SDK has breaks in its versions; 0.20-0.23 and 0.34 don't exist, but those versions not existing don't necessarily mean the range is not contiguous. - The web app code would have more complex code to check if the current page is in the contiguous ranges. The file is 580K before minification/compression. This file will only ever be used on the server, so this seems acceptable. ## Custom redirect rules: why only redirects to latest This mechanism is useful because of the API version warning banner that we show on all versions other than latest. That banner differentiates between pages that exist on the latest version versus do not because the API was deleted or it's new to the dev version. Sometimes, the API was not actually changed and only its URL was modified; so, this mechanism let's us more accurately reflect the situation. We don't attempt to support custom redirect rules for arbitrary version relationships like 0.1 <-> 0.2 because it is too complex. When changing between historical API versions via the version selector, it's not the end of the world if we don't preserve the current API you're on and instead go to the API index page. That behavior would only happen when an API's URL changed between versions, which is not common. We only go so out of our way to set up custom redirect rules for the latest version because we don't want to say misleading information in the API version warning banner. --------- Co-authored-by: Frank Harkins --- scripts/config/api-redirect-data.json | 33330 ++++++++++++++++ .../api/convertApiDocsToHistorical.ts | 2 + .../commands/api/generateApiRedirectData.ts | 166 + scripts/js/commands/api/regenerateApiDocs.ts | 2 + scripts/js/commands/api/updateApiDocs.ts | 2 + 5 files changed, 33502 insertions(+) create mode 100644 scripts/config/api-redirect-data.json create mode 100644 scripts/js/commands/api/generateApiRedirectData.ts diff --git a/scripts/config/api-redirect-data.json b/scripts/config/api-redirect-data.json new file mode 100644 index 00000000000..6f2d58a0ac4 --- /dev/null +++ b/scripts/config/api-redirect-data.json @@ -0,0 +1,33330 @@ +{ + "latestVersions": { + "qiskit": "1.2", + "qiskit-ibm-runtime": "0.30", + "qiskit-ibm-transpiler": "0.7" + }, + "customRedirectsToLatest": { + "qiskit": { + "0.43": { + "qiskit.pulse.library.Constant_class.rst": "/qiskit.pulse.library.Constant", + "qiskit.pulse.library.Cos_class.rst": "/qiskit.pulse.library.Cos", + "qiskit.pulse.library.Drag_class.rst": "/qiskit.pulse.library.Drag", + "qiskit.pulse.library.Gaussian_class.rst": "/qiskit.pulse.library.Gaussian", + "qiskit.pulse.library.Sawtooth_class.rst": "/qiskit.pulse.library.Sawtooth", + "qiskit.pulse.library.Sin_class.rst": "/qiskit.pulse.library.Sin", + "qiskit.pulse.library.Triangle_class.rst": "/qiskit.pulse.library.Triangle" + }, + "0.44": { + "qiskit.pulse.library.Constant_class.rst": "/qiskit.pulse.library.Constant", + "qiskit.pulse.library.Cos_class.rst": "/qiskit.pulse.library.Cos", + "qiskit.pulse.library.Drag_class.rst": "/qiskit.pulse.library.Drag", + "qiskit.pulse.library.Gaussian_class.rst": "/qiskit.pulse.library.Gaussian", + "qiskit.pulse.library.Sawtooth_class.rst": "/qiskit.pulse.library.Sawtooth", + "qiskit.pulse.library.Sech_fun.rst": "/qiskit.pulse.library.Sech", + "qiskit.pulse.library.Sin_class.rst": "/qiskit.pulse.library.Sin", + "qiskit.pulse.library.Square_fun.rst": "/qiskit.pulse.library.Square", + "qiskit.pulse.library.Triangle_class.rst": "/qiskit.pulse.library.Triangle" + }, + "0.45": { + "qiskit.pulse.library.Constant_class.rst": "/qiskit.pulse.library.Constant", + "qiskit.pulse.library.Cos_class.rst": "/qiskit.pulse.library.Cos", + "qiskit.pulse.library.Drag_class.rst": "/qiskit.pulse.library.Drag", + "qiskit.pulse.library.Gaussian_class.rst": "/qiskit.pulse.library.Gaussian", + "qiskit.pulse.library.Sawtooth_class.rst": "/qiskit.pulse.library.Sawtooth", + "qiskit.pulse.library.Sech_fun.rst": "/qiskit.pulse.library.Sech", + "qiskit.pulse.library.Sin_class.rst": "/qiskit.pulse.library.Sin", + "qiskit.pulse.library.Square_fun.rst": "/qiskit.pulse.library.Square", + "qiskit.pulse.library.Triangle_class.rst": "/qiskit.pulse.library.Triangle" + }, + "0.46": { + "qiskit.pulse.library.Constant_class.rst": "/qiskit.pulse.library.Constant", + "qiskit.pulse.library.Cos_class.rst": "/qiskit.pulse.library.Cos", + "qiskit.pulse.library.Drag_class.rst": "/qiskit.pulse.library.Drag", + "qiskit.pulse.library.Gaussian_class.rst": "/qiskit.pulse.library.Gaussian", + "qiskit.pulse.library.Sawtooth_class.rst": "/qiskit.pulse.library.Sawtooth", + "qiskit.pulse.library.Sech_fun.rst": "/qiskit.pulse.library.Sech", + "qiskit.pulse.library.Sin_class.rst": "/qiskit.pulse.library.Sin", + "qiskit.pulse.library.Square_fun.rst": "/qiskit.pulse.library.Square", + "qiskit.pulse.library.Triangle_class.rst": "/qiskit.pulse.library.Triangle" + }, + "1.0": { + "qiskit.pulse.library.Constant_class.rst": "/qiskit.pulse.library.Constant", + "qiskit.pulse.library.Cos_class.rst": "/qiskit.pulse.library.Cos", + "qiskit.pulse.library.Drag_class.rst": "/qiskit.pulse.library.Drag", + "qiskit.pulse.library.Gaussian_class.rst": "/qiskit.pulse.library.Gaussian", + "qiskit.pulse.library.Sawtooth_class.rst": "/qiskit.pulse.library.Sawtooth", + "qiskit.pulse.library.Sech_fun.rst": "/qiskit.pulse.library.Sech", + "qiskit.pulse.library.Sin_class.rst": "/qiskit.pulse.library.Sin", + "qiskit.pulse.library.Square_fun.rst": "/qiskit.pulse.library.Square", + "qiskit.pulse.library.Triangle_class.rst": "/qiskit.pulse.library.Triangle" + }, + "1.1": { + "qiskit.pulse.library.Constant_class.rst": "/qiskit.pulse.library.Constant", + "qiskit.pulse.library.Cos_class.rst": "/qiskit.pulse.library.Cos", + "qiskit.pulse.library.Drag_class.rst": "/qiskit.pulse.library.Drag", + "qiskit.pulse.library.Gaussian_class.rst": "/qiskit.pulse.library.Gaussian", + "qiskit.pulse.library.Sawtooth_class.rst": "/qiskit.pulse.library.Sawtooth", + "qiskit.pulse.library.Sech_fun.rst": "/qiskit.pulse.library.Sech", + "qiskit.pulse.library.Sin_class.rst": "/qiskit.pulse.library.Sin", + "qiskit.pulse.library.Square_fun.rst": "/qiskit.pulse.library.Square", + "qiskit.pulse.library.Triangle_class.rst": "/qiskit.pulse.library.Triangle" + } + }, + "qiskit-ibm-runtime": {}, + "qiskit-ibm-transpiler": { + "0.3": { + "qiskit_transpiler_service.ai.AICliffordSynthesis": "/qiskit_ibm_transpiler.ai.AICliffordSynthesis", + "qiskit_transpiler_service.ai.AILinearFunctionSynthesis": "/qiskit_ibm_transpiler.ai.AILinearFunctionSynthesis", + "qiskit_transpiler_service.ai.AIPermutationSynthesis": "/qiskit_ibm_transpiler.ai.AIPermutationSynthesis", + "qiskit_transpiler_service.ai.AIRouting": "/qiskit_ibm_transpiler.ai.AIRouting", + "qiskit_transpiler_service.ai.CollectCliffords": "/qiskit_ibm_transpiler.ai.CollectCliffords", + "qiskit_transpiler_service.ai.CollectLinearFunctions": "/qiskit_ibm_transpiler.ai.CollectLinearFunctions", + "qiskit_transpiler_service.ai.CollectPermutations": "/qiskit_ibm_transpiler.ai.CollectPermutations", + "qiskit_transpiler_service.transpiler_service.TranspilerService": "/qiskit_ibm_transpiler.transpiler_service.TranspilerService" + }, + "0.4": { + "qiskit_transpiler_service.ai.AICliffordSynthesis": "/qiskit_ibm_transpiler.ai.AICliffordSynthesis", + "qiskit_transpiler_service.ai.AILinearFunctionSynthesis": "/qiskit_ibm_transpiler.ai.AILinearFunctionSynthesis", + "qiskit_transpiler_service.ai.AIPermutationSynthesis": "/qiskit_ibm_transpiler.ai.AIPermutationSynthesis", + "qiskit_transpiler_service.ai.AIRouting": "/qiskit_ibm_transpiler.ai.AIRouting", + "qiskit_transpiler_service.ai.CollectCliffords": "/qiskit_ibm_transpiler.ai.CollectCliffords", + "qiskit_transpiler_service.ai.CollectLinearFunctions": "/qiskit_ibm_transpiler.ai.CollectLinearFunctions", + "qiskit_transpiler_service.ai.CollectPermutations": "/qiskit_ibm_transpiler.ai.CollectPermutations", + "qiskit_transpiler_service.transpiler_service.TranspilerService": "/qiskit_ibm_transpiler.transpiler_service.TranspilerService" + } + } + }, + "missing": { + "qiskit": { + "aer": ["0.43", "0.44", "0.45", "0.46", "1.0", "1.1", "1.2", "1.3"], + "aer_extensions": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "aer_jobs": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "aer_library": [ + "0.19", + "0.24", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "aer_noise": ["0.43", "0.44", "0.45", "0.46", "1.0", "1.1", "1.2", "1.3"], + "aer_primitives": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "aer_provider": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "aer_pulse": ["0.43", "0.44", "0.45", "0.46", "1.0", "1.1", "1.2", "1.3"], + "aer_quantum_info": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "aer_utils": ["0.43", "0.44", "0.45", "0.46", "1.0", "1.1", "1.2", "1.3"], + "algorithms": ["0.19", "0.24", "1.0", "1.1", "1.2", "1.3"], + "aqua": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "characterization": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "circuit_classical": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43" + ], + "circuit_singleton": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "classicalfunction": ["0.19"], + "exceptions": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43" + ], + "execute": ["1.0", "1.1", "1.2", "1.3"], + "extensions": ["1.0", "1.1", "1.2", "1.3"], + "ibmq-provider": [ + "0.19", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "ibmq_credentials": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "ibmq_experiment": [ + "0.19", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "ibmq_job": ["0.43", "0.44", "0.45", "0.46", "1.0", "1.1", "1.2", "1.3"], + "ibmq_jupyter": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "ibmq_managed": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "ibmq_provider": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "ibmq_random": [ + "0.19", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "ibmq_runtime": [ + "0.19", + "0.24", + "0.25", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "ibmq_utils": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "ibmq_visualization": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "ignis": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "logging": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "measurement": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "mitigation": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "opflow": ["0.19", "0.24", "1.0", "1.1", "1.2", "1.3"], + "parallel": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "passmanager": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "primitives": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33" + ], + "providers_basic_provider": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45" + ], + "providers_basicaer": ["1.0", "1.1", "1.2", "1.3"], + "providers_fake_provider": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36" + ], + "qasm": ["1.0", "1.1", "1.2", "1.3"], + "qasm2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42" + ], + "qasm3": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33" + ], + "qiskit.algorithms.AlgorithmError": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.AlgorithmJob": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.AmplificationProblem": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.AmplitudeAmplifier": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.AmplitudeEstimation": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.AmplitudeEstimationResult": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.AmplitudeEstimator": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.AmplitudeEstimatorResult": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.Eigensolver": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.EigensolverResult": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.EstimationProblem": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.EvolutionProblem": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.EvolutionResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.FasterAmplitudeEstimation": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.FasterAmplitudeEstimationResult": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.Grover": ["0.19", "0.24", "1.0", "1.1", "1.2", "1.3"], + "qiskit.algorithms.GroverResult": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.HHL": [ + "0.19", + "0.24", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.HamiltonianPhaseEstimation": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.HamiltonianPhaseEstimationResult": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.ImaginaryEvolver": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.ImaginaryTimeEvolver": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.IterativeAmplitudeEstimation": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.IterativeAmplitudeEstimationResult": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.IterativePhaseEstimation": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.LinearSolver": [ + "0.19", + "0.24", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.LinearSolverResult": [ + "0.19", + "0.24", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.MaximumLikelihoodAmplitudeEstimation": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.MaximumLikelihoodAmplitudeEstimationResult": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.MinimumEigensolver": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.MinimumEigensolverResult": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.NumPyEigensolver": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.NumPyLinearSolver": [ + "0.19", + "0.24", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.NumPyMinimumEigensolver": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.PVQD": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.PVQDResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.PhaseEstimation": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.PhaseEstimationResult": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.PhaseEstimationScale": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.QAOA": ["0.19", "0.24", "1.0", "1.1", "1.2", "1.3"], + "qiskit.algorithms.RealEvolver": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.RealTimeEvolver": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.SciPyImaginaryEvolver": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.SciPyRealEvolver": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.Shor": [ + "0.19", + "0.24", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.ShorResult": [ + "0.19", + "0.24", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.TimeEvolutionProblem": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.TimeEvolutionResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.TrotterQRTE": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.VQD": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.VQDResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.VQE": ["0.19", "0.24", "1.0", "1.1", "1.2", "1.3"], + "qiskit.algorithms.VarQITE": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.VarQRTE": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.eigensolvers": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.eigensolvers.Eigensolver": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.eigensolvers.EigensolverResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.eigensolvers.NumPyEigensolver": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.eigensolvers.NumPyEigensolverResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.eigensolvers.VQD": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.eigensolvers.VQDResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.estimate_observables": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.eval_observables": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.gradients": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.gradients.BaseEstimatorGradient": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.gradients.BaseQGT": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.gradients.BaseSamplerGradient": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.gradients.DerivativeType": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.gradients.EstimatorGradientResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.gradients.FiniteDiffEstimatorGradient": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.gradients.FiniteDiffSamplerGradient": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.gradients.LinCombEstimatorGradient": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.gradients.LinCombQGT": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.gradients.LinCombSamplerGradient": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.gradients.ParamShiftEstimatorGradient": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.gradients.ParamShiftSamplerGradient": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.gradients.QFI": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.gradients.QFIResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.gradients.QGTResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.gradients.ReverseEstimatorGradient": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.gradients.ReverseQGT": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.gradients.SPSAEstimatorGradient": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.gradients.SPSASamplerGradient": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.gradients.SamplerGradientResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.linear_solvers": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.linear_solvers.AbsoluteAverage": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.linear_solvers.HHL": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.linear_solvers.LinearSolver": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.linear_solvers.LinearSolverResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.linear_solvers.LinearSystemMatrix": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.linear_solvers.LinearSystemObservable": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.linear_solvers.MatrixFunctional": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.linear_solvers.NumPyLinearSolver": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.linear_solvers.NumPyMatrix": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.linear_solvers.TridiagonalToeplitz": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.minimum_eigensolvers": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.minimum_eigensolvers.AdaptVQE": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.minimum_eigensolvers.AdaptVQEResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.minimum_eigensolvers.MinimumEigensolver": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.minimum_eigensolvers.MinimumEigensolverResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.minimum_eigensolvers.NumPyMinimumEigensolver": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.minimum_eigensolvers.NumPyMinimumEigensolverResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.minimum_eigensolvers.QAOA": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.minimum_eigensolvers.SamplingMinimumEigensolver": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.minimum_eigensolvers.SamplingMinimumEigensolverResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.minimum_eigensolvers.SamplingVQE": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.minimum_eigensolvers.SamplingVQEResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.minimum_eigensolvers.VQE": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.minimum_eigensolvers.VQEResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.ADAM": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.AQGD": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.AskData": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.BOBYQA": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.CG": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.COBYLA": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.CRS": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.DIRECT_L": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.DIRECT_L_RAND": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.ESCH": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.GSLS": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.GradientDescent": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.GradientDescentState": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.IMFIL": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.ISRES": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.L_BFGS_B": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.Minimizer": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.NELDER_MEAD": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.NFT": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.Optimizer": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.OptimizerResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.OptimizerState": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.OptimizerSupportLevel": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.POWELL": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.P_BFGS": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.QNSPSA": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.SLSQP": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.SNOBFIT": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.SPSA": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.SciPyOptimizer": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.SteppableOptimizer": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.TNC": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.TellData": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.UMDA": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.nlopts": [ + "0.19", + "0.24", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.optimizer_utils": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.optimizers.optimizer_utils.LearningRate": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.state_fidelities": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.state_fidelities.BaseStateFidelity": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.state_fidelities.ComputeUncompute": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.state_fidelities.StateFidelityResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.time_evolvers.trotterization": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.time_evolvers.trotterization.TrotterQRTE": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.time_evolvers.variational": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.time_evolvers.variational.ForwardEulerSolver": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.time_evolvers.variational.ImaginaryMcLachlanPrinciple": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.time_evolvers.variational.ImaginaryVariationalPrinciple": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.time_evolvers.variational.RealMcLachlanPrinciple": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.time_evolvers.variational.RealVariationalPrinciple": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.algorithms.time_evolvers.variational.VariationalPrinciple": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.AquaError": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.MissingOptionalLibraryError": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.QuantumInstance": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.AmplitudeEstimation": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.AmplitudeEstimationAlgorithmResult": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.AmplitudeEstimationResult": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.BernsteinVazirani": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.ClassicalAlgorithm": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.ClassicalCPLEX": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.DeutschJozsa": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.EOH": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.Eigensolver": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.EigensolverResult": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.Grover": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.GroverResult": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.HHL": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.HHLResult": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.IQPE": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.IterativeAmplitudeEstimation": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.IterativeAmplitudeEstimationResult": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.LinearsolverResult": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.MaximumLikelihoodAmplitudeEstimation": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.MaximumLikelihoodAmplitudeEstimationResult": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.MinimumEigensolver": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.MinimumEigensolverResult": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.NumPyEigensolver": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.NumPyLSsolver": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.NumPyLSsolverResult": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.NumPyMinimumEigensolver": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.QAOA": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.QGAN": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.QPE": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.QSVM": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.QuantumAlgorithm": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.Shor": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.Simon": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.SklearnSVM": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.VQC": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.VQE": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.algorithms.minimum_eigen_solvers.cplex": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.aqua_globals": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.circuits": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.circuits.CNF": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.circuits.DNF": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.circuits.ESOP": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.circuits.FixedValueComparator": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.circuits.FourierTransformCircuits": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.circuits.LinearRotation": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.circuits.PhaseEstimationCircuit": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.circuits.PiecewiseLinearRotation": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.circuits.PolynomialRotation": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.circuits.StateVectorCircuit": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.circuits.WeightedSumOperator": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.eigs": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.eigs.Eigenvalues": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.eigs.EigsQPE": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.feature_maps": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.feature_maps.FeatureMap": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.feature_maps.FirstOrderExpansion": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.feature_maps.PauliExpansion": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.feature_maps.PauliZExpansion": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.feature_maps.RawFeatureVector": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.feature_maps.SecondOrderExpansion": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.feature_maps.self_product": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.initial_states": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.initial_states.Custom": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.initial_states.InitialState": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.initial_states.VarFormBased": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.initial_states.Zero": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.iqfts": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.iqfts.Approximate": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.iqfts.IQFT": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.iqfts.Standard": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.multiclass_extensions": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.multiclass_extensions.AllPairs": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.multiclass_extensions.ErrorCorrectingCode": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.multiclass_extensions.MulticlassExtension": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.multiclass_extensions.OneAgainstRest": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.neural_networks": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.neural_networks.DiscriminativeNetwork": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.neural_networks.GenerativeNetwork": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.neural_networks.NumPyDiscriminator": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.neural_networks.PyTorchDiscriminator": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.neural_networks.QuantumGenerator": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers.ADAM": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers.AQGD": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers.BOBYQA": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers.CG": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers.COBYLA": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers.CRS": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers.DIRECT_L": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers.DIRECT_L_RAND": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers.ESCH": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers.GSLS": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers.IMFIL": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers.ISRES": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers.L_BFGS_B": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers.NELDER_MEAD": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers.NFT": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers.Optimizer": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers.OptimizerSupportLevel": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers.POWELL": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers.P_BFGS": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers.SLSQP": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers.SNOBFIT": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers.SPSA": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers.TNC": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.optimizers.nlopts": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.oracles": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.oracles.CustomCircuitOracle": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.oracles.LogicalExpressionOracle": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.oracles.Oracle": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.oracles.TruthTableOracle": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.qfts": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.qfts.Approximate": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.qfts.QFT": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.qfts.Standard": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.reciprocals": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.reciprocals.LongDivision": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.reciprocals.LookupRotation": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.reciprocals.Reciprocal": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.uncertainty_models": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.uncertainty_models.BernoulliDistribution": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.uncertainty_models.GaussianConditionalIndependenceModel": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.uncertainty_models.LogNormalDistribution": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.uncertainty_models.MultivariateDistribution": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.uncertainty_models.MultivariateLogNormalDistribution": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.uncertainty_models.MultivariateNormalDistribution": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.uncertainty_models.MultivariateUniformDistribution": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.uncertainty_models.MultivariateVariationalDistribution": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.uncertainty_models.NormalDistribution": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.uncertainty_models.UncertaintyModel": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.uncertainty_models.UniformDistribution": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.uncertainty_models.UnivariateDistribution": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.uncertainty_models.UnivariateVariationalDistribution": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.uncertainty_problems": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.uncertainty_problems.MultivariateProblem": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.uncertainty_problems.UncertaintyProblem": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.uncertainty_problems.UnivariatePiecewiseLinearObjective": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.uncertainty_problems.UnivariateProblem": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.variational_forms": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.variational_forms.RY": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.variational_forms.RYRZ": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.variational_forms.SwapRZ": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.components.variational_forms.VariationalForm": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.OperatorBase": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.converters": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.converters.AbelianGrouper": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.converters.CircuitSampler": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.converters.ConverterBase": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.converters.DictToCircuitSum": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.converters.PauliBasisChange": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.evolutions": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.evolutions.EvolutionBase": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.evolutions.EvolutionFactory": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.evolutions.EvolvedOp": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.evolutions.MatrixEvolution": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.evolutions.PauliTrotterEvolution": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.evolutions.QDrift": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.evolutions.Suzuki": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.evolutions.Trotter": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.evolutions.TrotterizationBase": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.evolutions.TrotterizationFactory": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.expectations": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.expectations.AerPauliExpectation": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.expectations.CVaRExpectation": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.expectations.ExpectationBase": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.expectations.ExpectationFactory": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.expectations.MatrixExpectation": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.expectations.PauliExpectation": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.gradients": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.gradients.CircuitGradient": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.gradients.CircuitQFI": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.gradients.DerivativeBase": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.gradients.Gradient": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.gradients.GradientBase": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.gradients.Hessian": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.gradients.HessianBase": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.gradients.NaturalGradient": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.gradients.QFI": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.gradients.QFIBase": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.legacy": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.legacy.LegacyBaseOperator": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.legacy.MatrixOperator": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.legacy.PauliGraph": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.legacy.TPBGroupedWeightedPauliOperator": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.legacy.WeightedPauliOperator": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.legacy.Z2Symmetries": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.legacy.check_commutativity": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.legacy.commutator": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.legacy.covariance": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.legacy.evolution_instruction": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.legacy.kernel_F2": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.legacy.measure_pauli_z": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.legacy.pauli_measurement": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.legacy.row_echelon_F2": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.legacy.suzuki_expansion_slice_pauli_list": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.list_ops": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.list_ops.ComposedOp": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.list_ops.ListOp": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.list_ops.SummedOp": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.list_ops.TensoredOp": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.primitive_ops": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.primitive_ops.CircuitOp": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.primitive_ops.MatrixOp": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.primitive_ops.PauliOp": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.primitive_ops.PrimitiveOp": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.state_fns": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.state_fns.CVaRMeasurement": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.state_fns.CircuitStateFn": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.state_fns.DictStateFn": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.state_fns.OperatorStateFn": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.state_fns.StateFn": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.operators.state_fns.VectorStateFn": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.utils": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.utils.CircuitFactory": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.utils.decimal_to_binary": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.utils.get_entangler_map": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.utils.get_feature_dimension": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.utils.get_num_classes": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.utils.get_subsystem_density_matrix": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.utils.get_subsystems_counts": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.utils.has_aer": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.utils.has_ibmq": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.utils.map_label_to_class_name": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.utils.name_args": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.utils.optimize_svm": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.utils.random_h1_body": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.utils.random_h2_body": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.utils.random_hermitian": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.utils.random_non_hermitian": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.utils.random_unitary": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.utils.reduce_dim_to_via_pca": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.utils.split_dataset_to_data_and_labels": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.utils.summarize_circuits": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.utils.tensorproduct": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.aqua.utils.validate_entangler_map": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.assembler.assemble_circuits": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.assembler.assemble_schedules": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.assembler.disassemble": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.BosonicOperator": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.FermionicOperator": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.MP2Info": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.QMolecule": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.QiskitChemistryError": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.WatsonHamiltonian": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.AdaptVQE": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.BOPESSampler": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.EigensolverFactory": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.ExcitedStatesEigensolver": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.ExcitedStatesSolver": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.GroundStateEigensolver": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.GroundStateSolver": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.MinimumEigensolverFactory": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.NumPyEigensolverFactory": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.NumPyMinimumEigensolverFactory": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.OrbitalOptimizationVQE": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.QEOM": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.QEomEE": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.QEomVQE": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.VQEAdapt": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.VQEUCCSDFactory": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.VQEUVCCSDFactory": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.pes_samplers": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.pes_samplers.BOPESSampler": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.pes_samplers.DifferentialExtrapolator": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.pes_samplers.EnergySurface1DSpline": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.pes_samplers.EnergySurfaceBase": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.pes_samplers.Extrapolator": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.pes_samplers.HarmonicPotential": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.pes_samplers.MorsePotential": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.pes_samplers.PCAExtrapolator": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.pes_samplers.PolynomialExtrapolator": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.pes_samplers.PotentialBase": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.pes_samplers.SieveExtrapolator": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.pes_samplers.VibronicStructureBase": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.algorithms.pes_samplers.WindowExtrapolator": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.applications": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.applications.MolecularGroundStateEnergy": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.components": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.components.bosonic_bases": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.components.bosonic_bases.BosonicBasis": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.components.bosonic_bases.HarmonicBasis": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.components.initial_states": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.components.initial_states.HartreeFock": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.components.initial_states.VSCF": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.components.variational_forms": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.components.variational_forms.CHC": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.components.variational_forms.UCCSD": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.components.variational_forms.UVCC": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.core": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.core.ChemistryOperator": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.core.Hamiltonian": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.core.MolecularChemistryResult": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.core.MolecularExcitedStatesResult": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.core.MolecularGroundStateResult": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.core.QubitMappingType": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.core.TransformationType": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.drivers": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.drivers.BaseDriver": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.drivers.BasisType": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.drivers.BosonicDriver": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.drivers.FCIDumpDriver": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.drivers.FermionicDriver": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.drivers.GaussianDriver": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.drivers.GaussianForcesDriver": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.drivers.GaussianLogDriver": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.drivers.GaussianLogResult": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.drivers.HDF5Driver": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.drivers.HFMethodType": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.drivers.InitialGuess": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.drivers.Molecule": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.drivers.PSI4Driver": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.drivers.PyQuanteDriver": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.drivers.PySCFDriver": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.drivers.UnitsType": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.drivers.gaussiand": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.drivers.psi4d": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.drivers.pyquanted": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.drivers.pyscfd": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.results": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.results.BOPESSamplerResult": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.results.EigenstateResult": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.results.ElectronicStructureResult": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.results.VibronicStructureResult": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.transformations": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.transformations.BosonicQubitMappingType": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.transformations.BosonicTransformation": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.transformations.BosonicTransformationType": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.transformations.FermionicQubitMappingType": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.transformations.FermionicTransformation": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.transformations.FermionicTransformationType": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.chemistry.transformations.Transformation": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.AncillaQubit": ["0.19", "1.1", "1.2", "1.3"], + "qiskit.circuit.AncillaRegister": ["0.19", "1.1", "1.2", "1.3"], + "qiskit.circuit.AnnotatedOperation": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.circuit.Barrier": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.Bit": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.BreakLoopOp": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.circuit.CircuitInstruction": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36" + ], + "qiskit.circuit.ClassicalRegister": ["1.1", "1.2", "1.3"], + "qiskit.circuit.Clbit": ["1.1", "1.2", "1.3"], + "qiskit.circuit.CommutationChecker": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.ContinueLoopOp": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.circuit.ControlFlowOp": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.circuit.ControlModifier": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.Delay": ["0.19", "1.1", "1.2", "1.3"], + "qiskit.circuit.ForLoopOp": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.circuit.IfElseOp": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.circuit.InverseModifier": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.Measure": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.Operation": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38" + ], + "qiskit.circuit.PowerModifier": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.QuantumRegister": ["1.1", "1.2", "1.3"], + "qiskit.circuit.Qubit": ["1.1", "1.2", "1.3"], + "qiskit.circuit.Register": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.Reset": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.SwitchCaseOp": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42" + ], + "qiskit.circuit.WhileLoopOp": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.circuit.classicalfunction.BooleanExpression": ["0.19", "0.24"], + "qiskit.circuit.classicalfunction.ClassicalFunction": ["0.19"], + "qiskit.circuit.classicalfunction.ClassicalFunctionCompilerTypeError": [ + "0.19" + ], + "qiskit.circuit.classicalfunction.ClassicalFunctionParseError": ["0.19"], + "qiskit.circuit.library.Barrier": ["0.35", "0.36", "1.1", "1.2", "1.3"], + "qiskit.circuit.library.C3SXGate": ["0.19"], + "qiskit.circuit.library.CCZGate": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.40", + "0.41", + "0.42" + ], + "qiskit.circuit.library.CDKMRippleCarryAdder": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27" + ], + "qiskit.circuit.library.CPhaseGate": ["0.19"], + "qiskit.circuit.library.CSGate": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.40", + "0.41", + "0.42" + ], + "qiskit.circuit.library.CSXGate": ["0.19"], + "qiskit.circuit.library.CSdgGate": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.40", + "0.41", + "0.42" + ], + "qiskit.circuit.library.CUGate": ["0.19"], + "qiskit.circuit.library.DiagonalGate": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.circuit.library.DraperQFTAdder": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27" + ], + "qiskit.circuit.library.ECRGate": ["0.19", "0.24"], + "qiskit.circuit.library.EvolvedOperatorAnsatz": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27" + ], + "qiskit.circuit.library.ExactReciprocal": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.circuit.library.GR": ["0.19"], + "qiskit.circuit.library.GRX": ["0.19"], + "qiskit.circuit.library.GRY": ["0.19"], + "qiskit.circuit.library.GRZ": ["0.19"], + "qiskit.circuit.library.GlobalPhaseGate": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42" + ], + "qiskit.circuit.library.GroverOperator": ["0.19"], + "qiskit.circuit.library.HRSCumulativeMultiplier": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27" + ], + "qiskit.circuit.library.HamiltonianGate": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.circuit.library.Initialize": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.circuit.library.Isometry": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.circuit.library.LinearAmplitudeFunction": ["0.19"], + "qiskit.circuit.library.LinearFunction": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33" + ], + "qiskit.circuit.library.LogNormalDistribution": [ + "0.19", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.MCMTGate": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.circuit.library.MCPhaseGate": ["0.19"], + "qiskit.circuit.library.MCXGate": ["0.19"], + "qiskit.circuit.library.MCXGrayCode": ["0.19"], + "qiskit.circuit.library.MCXRecursive": ["0.19"], + "qiskit.circuit.library.MCXVChain": ["0.19"], + "qiskit.circuit.library.Measure": ["0.35", "0.36", "1.1", "1.2", "1.3"], + "qiskit.circuit.library.NormalDistribution": [ + "0.19", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.PauliEvolutionGate": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.circuit.library.PauliGate": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27" + ], + "qiskit.circuit.library.PauliTwoDesign": ["0.19", "0.24"], + "qiskit.circuit.library.PermutationGate": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39" + ], + "qiskit.circuit.library.PhaseEstimation": ["0.19"], + "qiskit.circuit.library.PhaseGate": ["0.19"], + "qiskit.circuit.library.PhaseOracle": ["0.19", "0.24"], + "qiskit.circuit.library.PiecewiseChebyshev": ["0.19", "0.24"], + "qiskit.circuit.library.PiecewisePolynomialPauliRotations": [ + "0.19", + "0.24" + ], + "qiskit.circuit.library.QAOAAnsatz": ["0.19", "0.24"], + "qiskit.circuit.library.QFTGate": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1" + ], + "qiskit.circuit.library.QuadraticForm": ["0.19"], + "qiskit.circuit.library.RGQFTMultiplier": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27" + ], + "qiskit.circuit.library.RGate": ["0.19", "0.24"], + "qiskit.circuit.library.RVGate": ["0.19", "0.24"], + "qiskit.circuit.library.Reset": ["0.35", "0.36", "1.1", "1.2", "1.3"], + "qiskit.circuit.library.SXGate": ["0.19"], + "qiskit.circuit.library.SXdgGate": ["0.19"], + "qiskit.circuit.library.StatePreparation": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33" + ], + "qiskit.circuit.library.UCGate": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.circuit.library.UCPauliRotGate": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.circuit.library.UCRXGate": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.circuit.library.UCRYGate": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.circuit.library.UCRZGate": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.circuit.library.UGate": ["0.19"], + "qiskit.circuit.library.UniformDistribution": [ + "0.19", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.UnitaryGate": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.circuit.library.UnitaryOverlap": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.circuit.library.VBERippleCarryAdder": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27" + ], + "qiskit.circuit.library.XXMinusYYGate": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33" + ], + "qiskit.circuit.library.XXPlusYYGate": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33" + ], + "qiskit.circuit.library.clifford_2_1": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.clifford_2_2": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.clifford_2_3": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.clifford_2_4": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.clifford_3_1": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.clifford_4_1": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.clifford_4_2": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.clifford_4_3": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.clifford_4_4": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.clifford_5_1": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.clifford_6_1": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.clifford_6_2": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.clifford_6_3": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.clifford_6_4": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.clifford_6_5": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.clifford_8_1": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.clifford_8_2": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.clifford_8_3": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.quantum_volume": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.circuit.library.rzx_cy": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.rzx_xz": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.rzx_yz": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.rzx_zz1": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.rzx_zz2": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.rzx_zz3": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_2a_1": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_2a_2": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_2a_3": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_4a_1": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_4a_2": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_4a_3": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_4b_1": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_4b_2": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_5a_1": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_5a_2": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_5a_3": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_5a_4": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_6a_1": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_6a_2": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_6a_3": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_6a_4": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_6b_1": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_6b_2": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_6c_1": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_7a_1": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_7b_1": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_7c_1": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_7d_1": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_7e_1": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_9a_1": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_9c_1": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_9c_10": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_9c_11": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_9c_12": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_9c_2": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_9c_3": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_9c_4": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_9c_5": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_9c_6": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_9c_7": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_9c_8": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_9c_9": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_9d_1": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_9d_10": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_9d_2": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_9d_3": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_9d_4": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_9d_5": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_9d_6": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_9d_7": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_9d_8": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.library.templates.nct.template_nct_9d_9": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.qpy_serialization.dump": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.qpy_serialization.load": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.circuit.random.random_circuit": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.compiler.assemble": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.compiler.schedule": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.compiler.sequence": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.compiler.transpile": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.converters.ast_to_dag": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.converters.circuit_to_dag": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.converters.circuit_to_dagdependency": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.converters.circuit_to_gate": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.converters.circuit_to_instruction": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.converters.dag_to_circuit": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.converters.dag_to_dagdependency": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.converters.dagdependency_to_circuit": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.converters.dagdependency_to_dag": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.dagcircuit.BlockCollapser": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.43", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.dagcircuit.BlockCollector": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.43", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.dagcircuit.BlockSplitter": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.dagcircuit.DAGCircuitError": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.dagcircuit.DAGDepNode": ["0.19"], + "qiskit.dagcircuit.DAGDependency": ["0.19"], + "qiskit.dagcircuit.DAGInNode": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.dagcircuit.DAGOpNode": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.dagcircuit.DAGOutNode": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.extensions.HamiltonianGate": [ + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.extensions.Initialize": [ + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.extensions.SingleQubitUnitary": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.extensions.Snapshot": ["1.0", "1.1", "1.2", "1.3"], + "qiskit.extensions.UCPauliRotGate": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.extensions.UCRXGate": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.extensions.UCRYGate": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.extensions.UCRZGate": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.extensions.UnitaryGate": [ + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.finance.QiskitFinanceError": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.finance.applications": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.finance.applications.ising": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.finance.applications.ising.portfolio": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.finance.applications.ising.portfolio_diversification": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.finance.components": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.finance.components.uncertainty_problems": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.finance.components.uncertainty_problems.EuropeanCallDelta": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.finance.components.uncertainty_problems.EuropeanCallExpectedValue": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.finance.components.uncertainty_problems.FixedIncomeExpectedValue": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.finance.data_providers": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.finance.data_providers.BaseDataProvider": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.finance.data_providers.DataOnDemandProvider": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.finance.data_providers.DataType": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.finance.data_providers.ExchangeDataProvider": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.finance.data_providers.RandomDataProvider": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.finance.data_providers.StockMarket": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.finance.data_providers.WikipediaDataProvider": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.finance.data_providers.YahooDataProvider": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.characterization.AmpCalCXFitter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.characterization.AmpCalFitter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.characterization.AngleCalCXFitter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.characterization.AngleCalFitter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.characterization.BaseCoherenceFitter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.characterization.BaseGateFitter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.characterization.DragFitter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.characterization.RabiFitter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.characterization.T1Fitter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.characterization.T2Fitter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.characterization.T2StarFitter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.characterization.ZZFitter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.characterization.ampcal_1Q_circuits": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.characterization.ampcal_cx_circuits": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.characterization.anglecal_1Q_circuits": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.characterization.anglecal_cx_circuits": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.characterization.drag_schedules": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.characterization.get_single_q_pulse": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.characterization.rabi_schedules": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.characterization.t1_circuits": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.characterization.t2_circuits": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.characterization.t2star_circuits": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.characterization.update_u_gates": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.characterization.zz_circuits": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.logging.IgnisLogReader": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.logging.IgnisLogger": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.logging.IgnisLogging": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.measurement.DiscriminationFilter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.measurement.IQDiscriminationFitter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.measurement.LinearIQDiscriminator": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.measurement.QuadraticIQDiscriminator": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.measurement.SklearnIQDiscriminator": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.mitigation.CTMPExpvalMeasMitigator": [ + "0.19", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.mitigation.CompleteExpvalMeasMitigator": [ + "0.19", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.mitigation.CompleteMeasFitter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.mitigation.ExpvalMeasMitigatorFitter": [ + "0.19", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.mitigation.MeasurementFilter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.mitigation.TensoredExpvalMeasMitigator": [ + "0.19", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.mitigation.TensoredFilter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.mitigation.TensoredMeasFitter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.mitigation.complete_meas_cal": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.mitigation.expectation_value": [ + "0.19", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.mitigation.expval_meas_mitigator_circuits": [ + "0.19", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.mitigation.tensored_meas_cal": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.AccreditationCircuits": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.AccreditationFitter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.BConfig": [ + "0.19", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.BasicUtils": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.CNOTDihedral": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.CNOTDihedralRBFitter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.Clifford": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.CliffordUtils": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.DihedralUtils": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.GatesetTomographyFitter": [ + "0.19", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.GraphDecoder": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.InterleavedRBFitter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.Plotter": [ + "0.19", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.ProcessTomographyFitter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.PurityRBFitter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.QOTP": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.QOTPCorrectCounts": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.QOTPCorrectString": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.QVFitter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.RBFitter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.RepetitionCode": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.StateTomographyFitter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.TomographyFitter": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.basis": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.calculate_1q_epc": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.calculate_1q_epg": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.calculate_2q_epc": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.calculate_2q_epg": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.coherence_limit": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.combine_counts": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.composite_pauli_z": [ + "0.19", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.composite_pauli_z_expvalue": [ + "0.19", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.count_gates": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.count_keys": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.expectation_counts": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.gates_per_clifford": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.gateset_tomography_circuits": [ + "0.19", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.get_ghz_mqc": [ + "0.19", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.get_ghz_mqc_para": [ + "0.19", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.get_ghz_po": [ + "0.19", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.get_ghz_po_para": [ + "0.19", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.get_ghz_simple": [ + "0.19", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.lookuptable_decoding": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.marginal_counts": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.ordered_list_generator": [ + "0.19", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.postselection_decoding": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.process_tomography_circuits": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.qv_circuits": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.randomized_benchmarking_seq": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.rho_to_fidelity": [ + "0.19", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.state_tomography_circuits": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ignis.verification.twoQ_clifford_error": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ml.circuit.library": [ + "0.19", + "0.24", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ml.circuit.library.RawFeatureVector": [ + "0.19", + "0.24", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ml.datasets": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ml.datasets.ad_hoc_data": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ml.datasets.breast_cancer": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ml.datasets.digits": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ml.datasets.gaussian": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ml.datasets.iris": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ml.datasets.sample_ad_hoc_data": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.ml.datasets.wine": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.OperatorBase": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.OpflowError": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.anti_commutator": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.commutator": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.converters": ["0.19", "0.24", "1.0", "1.1", "1.2", "1.3"], + "qiskit.opflow.converters.AbelianGrouper": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.converters.CircuitSampler": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.converters.ConverterBase": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.converters.DictToCircuitSum": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.converters.PauliBasisChange": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.converters.TwoQubitReduction": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.double_commutator": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.evolutions": ["0.19", "0.24", "1.0", "1.1", "1.2", "1.3"], + "qiskit.opflow.evolutions.EvolutionBase": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.evolutions.EvolutionFactory": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.evolutions.EvolvedOp": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.evolutions.MatrixEvolution": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.evolutions.PauliTrotterEvolution": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.evolutions.QDrift": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.evolutions.Suzuki": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.evolutions.Trotter": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.evolutions.TrotterizationBase": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.evolutions.TrotterizationFactory": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.expectations": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.expectations.AerPauliExpectation": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.expectations.CVaRExpectation": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.expectations.ExpectationBase": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.expectations.ExpectationFactory": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.expectations.MatrixExpectation": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.expectations.PauliExpectation": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.gradients": ["0.19", "0.24", "1.0", "1.1", "1.2", "1.3"], + "qiskit.opflow.gradients.CircuitGradient": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.gradients.CircuitQFI": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.gradients.DerivativeBase": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.gradients.Gradient": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.gradients.GradientBase": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.gradients.Hessian": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.gradients.HessianBase": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.gradients.NaturalGradient": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.gradients.QFI": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.gradients.QFIBase": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.list_ops": ["0.19", "0.24", "1.0", "1.1", "1.2", "1.3"], + "qiskit.opflow.list_ops.ComposedOp": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.list_ops.ListOp": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.list_ops.SummedOp": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.list_ops.TensoredOp": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.primitive_ops": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.primitive_ops.CircuitOp": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.primitive_ops.MatrixOp": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.primitive_ops.PauliOp": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.primitive_ops.PauliSumOp": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.primitive_ops.PrimitiveOp": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.primitive_ops.TaperedPauliSumOp": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.primitive_ops.Z2Symmetries": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.state_fns": ["0.19", "0.24", "1.0", "1.1", "1.2", "1.3"], + "qiskit.opflow.state_fns.CVaRMeasurement": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.state_fns.CircuitStateFn": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.state_fns.DictStateFn": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.state_fns.OperatorStateFn": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.state_fns.SparseVectorStateFn": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.state_fns.StateFn": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.opflow.state_fns.VectorStateFn": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.INFINITY": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.QiskitOptimizationError": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.QuadraticProgram": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.algorithms": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.algorithms.ADMMOptimizationResult": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.algorithms.ADMMOptimizer": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.algorithms.ADMMParameters": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.algorithms.ADMMState": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.algorithms.CobylaOptimizer": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.algorithms.CplexOptimizer": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.algorithms.GroverOptimizationResult": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.algorithms.GroverOptimizer": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.algorithms.IntermediateResult": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.algorithms.MinimumEigenOptimizationResult": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.algorithms.MinimumEigenOptimizer": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.algorithms.MultiStartOptimizer": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.algorithms.OptimizationAlgorithm": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.algorithms.OptimizationResult": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.algorithms.OptimizationResultStatus": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.algorithms.RecursiveMinimumEigenOptimizationResult": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.algorithms.RecursiveMinimumEigenOptimizer": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.algorithms.SlsqpOptimizationResult": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.algorithms.SlsqpOptimizer": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.algorithms.SolutionSample": [ + "0.19", + "0.24", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.applications": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.applications.ising": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.applications.ising.clique": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.applications.ising.common": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.applications.ising.docplex": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.applications.ising.exact_cover": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.applications.ising.graph_partition": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.applications.ising.knapsack": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.applications.ising.max_cut": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.applications.ising.partition": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.applications.ising.set_packing": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.applications.ising.stable_set": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.applications.ising.tsp": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.applications.ising.vehicle_routing": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.applications.ising.vertex_cover": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.converters": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.converters.InequalityToEquality": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.converters.IntegerToBinary": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.converters.IsingToQuadraticProgram": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.converters.LinearEqualityToPenalty": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.converters.QuadraticProgramConverter": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.converters.QuadraticProgramToIsing": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.converters.QuadraticProgramToNegativeValueOracle": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.converters.QuadraticProgramToQubo": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.problems": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.problems.Constraint": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.problems.LinearConstraint": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.problems.LinearExpression": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.problems.QuadraticConstraint": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.problems.QuadraticExpression": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.problems.QuadraticObjective": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.problems.QuadraticProgram": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.problems.QuadraticProgramElement": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.optimization.problems.Variable": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.passmanager.BaseController": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.passmanager.BasePassManager": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.passmanager.ConditionalController": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.passmanager.DoWhileController": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.passmanager.FlowController": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.passmanager.FlowControllerLinear": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.passmanager.GenericPass": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.passmanager.PassManagerState": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.passmanager.PropertySet": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.passmanager.WorkflowStatus": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.primitives.BackendEstimator": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38" + ], + "qiskit.primitives.BackendEstimatorV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0" + ], + "qiskit.primitives.BackendSampler": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38" + ], + "qiskit.primitives.BackendSamplerV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0" + ], + "qiskit.primitives.BaseEstimator": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33" + ], + "qiskit.primitives.BaseEstimatorV1": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.primitives.BaseEstimatorV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.primitives.BasePrimitiveJob": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.primitives.BaseSampler": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33" + ], + "qiskit.primitives.BaseSamplerV1": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.primitives.BaseSamplerV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.primitives.BitArray": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.primitives.DataBin": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.primitives.Estimator": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33" + ], + "qiskit.primitives.EstimatorResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33" + ], + "qiskit.primitives.PrimitiveJob": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.primitives.PrimitiveResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.primitives.PubResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.primitives.Sampler": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33" + ], + "qiskit.primitives.SamplerPubResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0" + ], + "qiskit.primitives.SamplerResult": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33" + ], + "qiskit.primitives.Shaped": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.2", + "1.3" + ], + "qiskit.primitives.StatevectorEstimator": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.primitives.StatevectorSampler": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.providers.Backend": ["0.19"], + "qiskit.providers.BackendPropertyError": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.BackendV1": ["0.19"], + "qiskit.providers.BackendV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.providers.BackendV2Converter": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38" + ], + "qiskit.providers.BaseBackend": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.BaseJob": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.BaseProvider": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.Job": ["0.19"], + "qiskit.providers.JobError": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.JobTimeoutError": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.JobV1": ["0.19"], + "qiskit.providers.Options": ["0.19"], + "qiskit.providers.Provider": ["0.19"], + "qiskit.providers.ProviderV1": ["0.19"], + "qiskit.providers.QiskitBackendNotFoundError": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.QubitProperties": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.providers.aer.AerError": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.AerJob": [ + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.AerProvider": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.AerSimulator": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.PulseSimulator": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.QasmSimulator": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.StatevectorSimulator": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.UnitarySimulator": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.extensions.Snapshot": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.extensions.SnapshotDensityMatrix": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.extensions.SnapshotExpectationValue": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.extensions.SnapshotProbabilities": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.extensions.SnapshotStabilizer": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.extensions.SnapshotStatevector": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.jobs.AerJob": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.jobs.AerJobSet": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.SaveAmplitudes": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.SaveAmplitudesSquared": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.SaveClifford": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.SaveDensityMatrix": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.SaveExpectationValue": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.SaveExpectationValueVariance": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.SaveMatrixProductState": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.SaveProbabilities": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.SaveProbabilitiesDict": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.SaveStabilizer": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.SaveState": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.SaveStatevector": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.SaveStatevectorDict": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.SaveSuperOp": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.SaveUnitary": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.SetDensityMatrix": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.SetMatrixProductState": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.SetStabilizer": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.SetStatevector": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.SetSuperOp": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.SetUnitary": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.save_amplitudes": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.save_amplitudes_squared": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.save_clifford": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.save_density_matrix": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.save_expectation_value": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.save_expectation_value_variance": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.save_matrix_product_state": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.save_probabilities": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.save_probabilities_dict": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.save_stabilizer": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.save_state": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.save_statevector": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.save_statevector_dict": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.save_superop": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.save_unitary": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.set_density_matrix": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.set_matrix_product_state": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.set_stabilizer": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.set_statevector": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.set_superop": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.library.set_unitary": [ + "0.19", + "0.24", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.noise.LocalNoisePass": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.noise.NoiseModel": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.noise.QuantumError": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.noise.ReadoutError": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.noise.RelaxationNoisePass": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.noise.amplitude_damping_error": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.noise.coherent_unitary_error": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.noise.depolarizing_error": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.noise.device.basic_device_gate_errors": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.noise.device.basic_device_readout_errors": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.noise.device.gate_error_values": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.noise.device.gate_length_values": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.noise.device.gate_param_values": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.noise.device.readout_error_values": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.noise.device.thermal_relaxation_values": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.noise.kraus_error": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.noise.mixed_unitary_error": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.noise.pauli_error": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.noise.phase_amplitude_damping_error": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.noise.phase_damping_error": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.noise.reset_error": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.noise.thermal_relaxation_error": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.pulse.PulseSystemModel": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.pulse.duffing_system_model": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.utils.NoiseTransformer": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.utils.approximate_noise_model": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.utils.approximate_quantum_error": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.utils.insert_noise": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.utils.remap_noise_model": [ + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.utils.transform_noise_model": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.utils.transpile_noise_model": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.aer.utils.transpile_quantum_error": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.basic_provider.BasicProvider": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45" + ], + "qiskit.providers.basic_provider.BasicProviderError": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45" + ], + "qiskit.providers.basic_provider.BasicProviderJob": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45" + ], + "qiskit.providers.basic_provider.BasicSimulator": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45" + ], + "qiskit.providers.basicaer.BasicAerError": ["1.0", "1.1", "1.2", "1.3"], + "qiskit.providers.basicaer.BasicAerJob": ["1.0", "1.1", "1.2", "1.3"], + "qiskit.providers.basicaer.BasicAerProvider": [ + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.basicaer.QasmSimulatorPy": ["1.0", "1.1", "1.2", "1.3"], + "qiskit.providers.basicaer.StatevectorSimulatorPy": [ + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.basicaer.UnitarySimulatorPy": [ + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.convert_to_target": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38" + ], + "qiskit.providers.fake_provider.ConfigurableFakeBackend": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.Fake127QPulseV1": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.providers.fake_provider.Fake1Q": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36" + ], + "qiskit.providers.fake_provider.Fake20QV1": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.providers.fake_provider.Fake27QPulseV1": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.providers.fake_provider.Fake5QV1": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.providers.fake_provider.Fake7QPulseV1": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.providers.fake_provider.FakeAlmaden": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeAlmadenV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeArmonk": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeArmonkV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeAthens": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeAthensV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeAuckland": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeBackend5QV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeBackendV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeBelem": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeBelemV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeBoeblingen": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeBoeblingenV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeBogota": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeBogotaV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeBrooklyn": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeBrooklynV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeBurlington": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeBurlingtonV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeCairo": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeCairoV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeCambridge": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeCambridgeV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeCasablanca": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeCasablancaV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeEssex": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeEssexV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeGeneva": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeGuadalupe": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeGuadalupeV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeHanoi": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeHanoiV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeJakarta": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeJakartaV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeJohannesburg": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeJohannesburgV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeKolkata": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeKolkataV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeLagos": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeLagosV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeLima": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeLimaV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeLondon": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeLondonV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeManhattan": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeManhattanV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeManila": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeManilaV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeMelbourne": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeMelbourneV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeMontreal": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeMontrealV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeMumbai": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeMumbaiFractionalCX": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeMumbaiV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeNairobi": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeNairobiV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeOpenPulse2Q": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36" + ], + "qiskit.providers.fake_provider.FakeOpenPulse3Q": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36" + ], + "qiskit.providers.fake_provider.FakeOslo": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeOurense": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeOurenseV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeParis": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeParisV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakePerth": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakePoughkeepsie": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakePoughkeepsieV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakePrague": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeProvider": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeProviderForBackendV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeQasmSimulator": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeQuito": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeQuitoV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeRochester": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeRochesterV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeRome": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeRomeV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeRueschlikon": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeSantiago": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeSantiagoV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeSherbrooke": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeSingapore": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeSingaporeV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeSydney": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeSydneyV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeTenerife": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeTokyo": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeToronto": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeTorontoV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeValencia": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeValenciaV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeVigo": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeVigoV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeWashington": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeWashingtonV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeYorktown": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.FakeYorktownV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.fake_provider.GenericBackendV2": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45" + ], + "qiskit.providers.ibmq.AccountProvider": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.BackendJobLimit": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.IBMQAccountCredentialsInvalidFormat": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.IBMQAccountCredentialsInvalidToken": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.IBMQAccountCredentialsInvalidUrl": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.IBMQAccountCredentialsNotFound": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.IBMQAccountError": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.IBMQAccountMultipleCredentialsFound": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.IBMQBackend": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.IBMQBackendApiError": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.IBMQBackendApiProtocolError": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.IBMQBackendError": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.IBMQBackendService": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.IBMQBackendValueError": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.IBMQError": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.IBMQFactory": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.IBMQProviderError": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.RunnerResult": [ + "0.19", + "0.24", + "0.25", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.credentials.Credentials": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.credentials.CredentialsError": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.credentials.CredentialsNotFoundError": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.credentials.InvalidCredentialsFormatError": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.experiment.AnalysisResult": [ + "0.19", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.experiment.DeviceComponent": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.experiment.Experiment": [ + "0.19", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.experiment.ExperimentService": [ + "0.19", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.experiment.IBMExperimentEntryExists": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.experiment.IBMExperimentEntryNotFound": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.experiment.IBMExperimentError": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.experiment.IBMExperimentService": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.experiment.ResultQuality": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.job.IBMQJob": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.job.IBMQJobApiError": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.job.IBMQJobError": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.job.IBMQJobFailureError": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.job.IBMQJobInvalidStateError": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.job.IBMQJobTimeoutError": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.job.QueueInfo": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.job.job_monitor": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.least_busy": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.managed.IBMQJobManager": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.managed.IBMQJobManagerError": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.managed.IBMQJobManagerInvalidStateError": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.managed.IBMQJobManagerJobNotFound": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.managed.IBMQJobManagerTimeoutError": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.managed.IBMQJobManagerUnknownJobSet": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.managed.IBMQManagedResultDataNotAvailable": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.managed.ManagedJob": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.managed.ManagedJobSet": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.managed.ManagedResults": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.random.CQCExtractor": [ + "0.19", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.random.CQCExtractorJob": [ + "0.19", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.random.IBMQRandomService": [ + "0.19", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.runtime.IBMRuntimeService": [ + "0.19", + "0.24", + "0.25", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.runtime.ParameterNamespace": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.runtime.ProgramBackend": [ + "0.19", + "0.24", + "0.25", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.runtime.ResultDecoder": [ + "0.19", + "0.24", + "0.25", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.runtime.RuntimeDecoder": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.runtime.RuntimeEncoder": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.runtime.RuntimeJob": [ + "0.19", + "0.24", + "0.25", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.runtime.RuntimeOptions": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.runtime.RuntimeProgram": [ + "0.19", + "0.24", + "0.25", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.runtime.UserMessenger": [ + "0.19", + "0.24", + "0.25", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.utils.seconds_to_duration": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.utils.to_python_identifier": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.utils.update_qobj_config": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.utils.utc_to_local": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.ibmq.utils.validate_job_tags": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.providers.models.GateProperties": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.providers.models.Nduv": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.pulse.Acquire": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.AcquireChannel": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.Call": [ + "0.19", + "0.24", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.Constant": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.ControlChannel": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.Delay": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.Drag": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.DriveChannel": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.Gaussian": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.GaussianSquare": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.Instruction": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.MeasureChannel": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.MemorySlot": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.Play": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.PulseError": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.RegisterSlot": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.SamplePulse": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.ScheduleBlock": ["0.19", "0.24"], + "qiskit.pulse.SetFrequency": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.SetPhase": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.ShiftFrequency": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.ShiftPhase": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.Snapshot": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.Waveform": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.acquire": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.acquire_channel": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.active_backend": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.active_circuit_scheduler_settings": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.active_transpiler_settings": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.align_equispaced": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.align_func": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.align_left": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.align_right": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.align_sequential": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.barrier": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.build": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.call": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.circuit_scheduler_settings": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.control_channels": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.cx": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.delay": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.delay_qubits": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.drive_channel": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.frequency_offset": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.inline": [ + "0.19", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.measure": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.measure_all": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.measure_channel": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.num_qubits": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.pad": [ + "0.19", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.phase_offset": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.play": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.qubit_channels": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.reference": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.samples_to_seconds": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.seconds_to_samples": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.set_frequency": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.set_phase": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.shift_frequency": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.shift_phase": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.snapshot": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.transpiler_settings": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.u1": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.u2": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.u3": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.builder.x": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.channels": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.channels.AcquireChannel": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.pulse.channels.ControlChannel": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.pulse.channels.DriveChannel": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.pulse.channels.MeasureChannel": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.pulse.channels.MemorySlot": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.pulse.channels.RegisterSlot": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.pulse.channels.SnapshotChannel": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.pulse.instructions": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.instructions.Call": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.instructions.Instruction": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.instructions.Reference": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38" + ], + "qiskit.pulse.instructions.RelativeBarrier": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39" + ], + "qiskit.pulse.instructions.SetPhase": ["0.19"], + "qiskit.pulse.instructions.ShiftFrequency": ["0.19"], + "qiskit.pulse.instructions.TimeBlockade": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39" + ], + "qiskit.pulse.library": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.library.Constant": [ + "0.19", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1" + ], + "qiskit.pulse.library.Constant_class.rst": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "1.2", + "1.3" + ], + "qiskit.pulse.library.Cos": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1" + ], + "qiskit.pulse.library.Cos_class.rst": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "1.2", + "1.3" + ], + "qiskit.pulse.library.Drag": [ + "0.19", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1" + ], + "qiskit.pulse.library.Drag_class.rst": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "1.2", + "1.3" + ], + "qiskit.pulse.library.Gaussian": [ + "0.19", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1" + ], + "qiskit.pulse.library.GaussianDeriv": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43" + ], + "qiskit.pulse.library.GaussianSquare": ["0.19"], + "qiskit.pulse.library.GaussianSquareDrag": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39" + ], + "qiskit.pulse.library.Gaussian_class.rst": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "1.2", + "1.3" + ], + "qiskit.pulse.library.ParametricPulse": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.library.Sawtooth": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1" + ], + "qiskit.pulse.library.Sawtooth_class.rst": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "1.2", + "1.3" + ], + "qiskit.pulse.library.ScalableSymbolicPulse": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.43", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.library.Sech": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1" + ], + "qiskit.pulse.library.SechDeriv": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43" + ], + "qiskit.pulse.library.Sech_fun.rst": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "1.2", + "1.3" + ], + "qiskit.pulse.library.Sin": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1" + ], + "qiskit.pulse.library.Sin_class.rst": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "1.2", + "1.3" + ], + "qiskit.pulse.library.Square": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1" + ], + "qiskit.pulse.library.Square_fun.rst": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "1.2", + "1.3" + ], + "qiskit.pulse.library.SymbolicPulse": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36" + ], + "qiskit.pulse.library.Triangle": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1" + ], + "qiskit.pulse.library.Triangle_class.rst": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "1.2", + "1.3" + ], + "qiskit.pulse.library.Waveform": ["0.19"], + "qiskit.pulse.library.constant": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.library.cos": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.library.discrete": [ + "0.19", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.library.drag": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.library.gaussian": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.library.gaussian_deriv": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.library.gaussian_square": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.library.gaussian_square_echo": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43" + ], + "qiskit.pulse.library.sawtooth": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.library.sech": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.library.sech_deriv": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.library.sin": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.library.square": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.library.triangle": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.library.zero": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.pulse_lib": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.pulse_lib.Constant": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.pulse_lib.Drag": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.pulse_lib.Gaussian": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.pulse_lib.GaussianSquare": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.pulse_lib.SamplePulse": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.pulse_lib.discrete": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.reschedule.add_implicit_acquires": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.reschedule.align_measures": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.reschedule.pad": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.transforms.AlignEquispaced": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.pulse.transforms.AlignFunc": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.pulse.transforms.AlignLeft": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.pulse.transforms.AlignRight": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.pulse.transforms.AlignSequential": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.pulse.transforms.add_implicit_acquires": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.transforms.align_measures": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.transforms.block_to_dag": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.transforms.block_to_schedule": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.transforms.compress_pulses": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.transforms.flatten": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.transforms.inline_subroutines": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.transforms.pad": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.transforms.remove_directives": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.transforms.remove_trivial_barriers": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.pulse.transforms.target_qobj_transform": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.qasm.OpenQASMLexer": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.qasm.Qasm": ["0.44", "0.45", "0.46", "1.0", "1.1", "1.2", "1.3"], + "qiskit.qasm.QasmError": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.qasm.QasmHTMLStyle": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.qasm.QasmTerminalStyle": [ + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.qasm3.Exporter": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.qasm3.dump": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.qasm3.dumps": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.qobj.GateCalibration": ["0.19"], + "qiskit.qobj.QasmExperimentCalibrations": ["0.19"], + "qiskit.qobj.Qobj": ["0.45", "0.46", "1.0", "1.1", "1.2", "1.3"], + "qiskit.qobj.validate_qobj_against_schema": [ + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.qpy.dump": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.qpy.load": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.CNOTDihedral": ["0.19", "0.24"], + "qiskit.quantum_info.OneQubitEulerDecomposer": [ + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.PauliList": ["0.19", "0.24", "0.25", "0.26", "0.27"], + "qiskit.quantum_info.PauliTable": [ + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.StabilizerState": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27" + ], + "qiskit.quantum_info.StabilizerTable": [ + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.TwoQubitBasisDecomposer": [ + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.XXDecomposer": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.Z2Symmetries": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42" + ], + "qiskit.quantum_info.anti_commutator": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.average_gate_fidelity": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.commutator": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.concurrence": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.decompose_clifford": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.diamond_norm": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.double_commutator": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.entanglement_of_formation": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.entropy": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.euler_angles_1q": [ + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.gate_error": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.hellinger_distance": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.hellinger_fidelity": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.mutual_information": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.partial_trace": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.pauli_group": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.process_fidelity": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.purity": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.random_clifford": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.random_cnotdihedral": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.random_density_matrix": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.random_hermitian": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.random_pauli": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.random_pauli_list": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.random_pauli_table": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.random_quantum_channel": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.random_stabilizer_table": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.random_state": [ + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.random_statevector": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.random_unitary": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.shannon_entropy": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.state_fidelity": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.quantum_info.two_qubit_cnot_decompose": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.result.BaseReadoutMitigator": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.result.CorrelatedReadoutMitigator": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.result.Counts": ["0.19"], + "qiskit.result.LocalReadoutMitigator": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.result.ProbDistribution": ["0.19", "0.24", "0.25"], + "qiskit.result.QuasiDistribution": ["0.19", "0.24", "0.25"], + "qiskit.result.marginal_counts": [ + "0.19", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.result.marginal_distribution": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.result.marginal_memory": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.result.sampled_expectation_value": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.scheduler.ScheduleConfig": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.scheduler.methods.basic": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.scheduler.schedule_circuit": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.scheduler.utils": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.synthesis.EvolutionSynthesis": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.synthesis.LieTrotter": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.synthesis.MatrixExponential": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.synthesis.OneQubitEulerDecomposer": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45" + ], + "qiskit.synthesis.ProductFormula": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.synthesis.QDrift": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40" + ], + "qiskit.synthesis.SolovayKitaevDecomposition": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39" + ], + "qiskit.synthesis.SuzukiTrotter": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.synthesis.TwoQubitBasisDecomposer": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45" + ], + "qiskit.synthesis.TwoQubitWeylDecomposition": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.synthesis.XXDecomposer": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45" + ], + "qiskit.synthesis.generate_basic_approximations": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.synthesis.synth_clifford_ag": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.synthesis.synth_clifford_bm": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.synthesis.synth_clifford_depth_lnn": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.synthesis.synth_clifford_full": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.synthesis.synth_clifford_greedy": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.synthesis.synth_clifford_layers": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.synthesis.synth_cnot_count_full_pmh": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.synthesis.synth_cnot_depth_line_kms": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.synthesis.synth_cnotdihedral_full": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.synthesis.synth_cnotdihedral_general": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.synthesis.synth_cnotdihedral_two_qubits": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.synthesis.synth_cz_depth_line_mr": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.synthesis.synth_permutation_acg": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.synthesis.synth_permutation_basic": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.synthesis.synth_permutation_depth_lnn_kms": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.synthesis.synth_stabilizer_depth_lnn": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.synthesis.synth_stabilizer_layers": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.synthesis.unitary.aqc": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.synthesis.unitary.aqc.AQC": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45" + ], + "qiskit.synthesis.unitary.aqc.ApproximateCircuit": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45" + ], + "qiskit.synthesis.unitary.aqc.ApproximatingObjective": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45" + ], + "qiskit.synthesis.unitary.aqc.CNOTUnitCircuit": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45" + ], + "qiskit.synthesis.unitary.aqc.CNOTUnitObjective": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45" + ], + "qiskit.synthesis.unitary.aqc.DefaultCNOTUnitObjective": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45" + ], + "qiskit.synthesis.unitary.aqc.FastCNOTUnitObjective": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45" + ], + "qiskit.tools.backend_monitor": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.tools.backend_overview": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.tools.choi_to_pauli": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.tools.chop": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.tools.concurrence": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.tools.devectorize": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.tools.entanglement_of_formation": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.tools.entropy": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.tools.events.TextProgressBar": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.tools.is_pos_def": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.tools.job_monitor": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.tools.mutual_information": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.tools.outer": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.tools.parallel_map": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.tools.partial_trace": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.tools.qft": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.tools.shannon_entropy": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.tools.vectorize": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.AnalysisPass": ["0.19", "0.24"], + "qiskit.transpiler.ConditionalController": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.DoWhileController": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.FencedDAGCircuit": ["1.0", "1.1", "1.2", "1.3"], + "qiskit.transpiler.FencedPropertySet": ["1.0", "1.1", "1.2", "1.3"], + "qiskit.transpiler.FlowController": [ + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.InstructionDurations": ["0.19"], + "qiskit.transpiler.InstructionProperties": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.transpiler.PropertySet": [ + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.StagedPassManager": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36" + ], + "qiskit.transpiler.Target": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.transpiler.TransformationPass": ["0.19", "0.24"], + "qiskit.transpiler.TranspileLayout": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42" + ], + "qiskit.transpiler.TranspilerAccessError": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.TranspilerError": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.passes.ACGSynthesisPermutation": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.passes.ALAPSchedule": ["0.19"], + "qiskit.transpiler.passes.ALAPScheduleAnalysis": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33" + ], + "qiskit.transpiler.passes.AQCSynthesisPlugin": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.passes.ASAPSchedule": ["0.19"], + "qiskit.transpiler.passes.ASAPScheduleAnalysis": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33" + ], + "qiskit.transpiler.passes.AlignMeasures": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27" + ], + "qiskit.transpiler.passes.BIPMapping": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.passes.BasicSynthesisPermutation": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.passes.BasisTranslator": ["0.19"], + "qiskit.transpiler.passes.CXDirection": [ + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.passes.CheckCXDirection": [ + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.passes.CheckGateDirection": ["0.19", "0.24"], + "qiskit.transpiler.passes.Collect1qRuns": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.transpiler.passes.CollectAndCollapse": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1" + ], + "qiskit.transpiler.passes.CollectCliffords": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39" + ], + "qiskit.transpiler.passes.CollectLinearFunctions": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33" + ], + "qiskit.transpiler.passes.CollectMultiQBlocks": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.transpiler.passes.CommutativeInverseCancellation": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38" + ], + "qiskit.transpiler.passes.Commuting2qGateRouter": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36" + ], + "qiskit.transpiler.passes.ConstrainedReschedule": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33" + ], + "qiskit.transpiler.passes.ContainsInstruction": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.transpiler.passes.ConvertConditionsToIfOps": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38" + ], + "qiskit.transpiler.passes.CrosstalkAdaptiveSchedule": [ + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.passes.DynamicalDecoupling": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27" + ], + "qiskit.transpiler.passes.EchoRZXWeylDecomposition": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.transpiler.passes.ElidePermutations": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0" + ], + "qiskit.transpiler.passes.FilterOpNodes": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.transpiler.passes.GateDirection": ["0.19", "0.24"], + "qiskit.transpiler.passes.GatesInBasis": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.transpiler.passes.HLSConfig": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.transpiler.passes.HighLevelSynthesis": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38" + ], + "qiskit.transpiler.passes.HoareOptimizer": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33" + ], + "qiskit.transpiler.passes.InstructionDurationCheck": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33" + ], + "qiskit.transpiler.passes.InverseCancellation": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.transpiler.passes.KMSSynthesisPermutation": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.passes.LinearFunctionsSynthesis": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.passes.LinearFunctionsToPermutations": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33" + ], + "qiskit.transpiler.passes.MinimumPoint": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42" + ], + "qiskit.transpiler.passes.NoiseAdaptiveLayout": [ + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.passes.NormalizeRXAngle": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.transpiler.passes.Optimize1qGatesDecomposition": ["0.19"], + "qiskit.transpiler.passes.Optimize1qGatesSimpleCommutation": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.transpiler.passes.OptimizeAnnotated": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.transpiler.passes.OptimizeCliffords": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38" + ], + "qiskit.transpiler.passes.PadDelay": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33" + ], + "qiskit.transpiler.passes.PadDynamicalDecoupling": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33" + ], + "qiskit.transpiler.passes.PulseGates": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.transpiler.passes.RXCalibrationBuilder": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.transpiler.passes.RZXCalibrationBuilder": ["0.19", "0.24"], + "qiskit.transpiler.passes.RZXCalibrationBuilderNoEcho": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27" + ], + "qiskit.transpiler.passes.RemoveBarriers": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27" + ], + "qiskit.transpiler.passes.RemoveFinalReset": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0" + ], + "qiskit.transpiler.passes.ResetAfterMeasureSimplification": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38" + ], + "qiskit.transpiler.passes.SabreLayout": ["0.19"], + "qiskit.transpiler.passes.SabrePreLayout": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44" + ], + "qiskit.transpiler.passes.SabreSwap": ["0.19"], + "qiskit.transpiler.passes.SetIOLatency": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33" + ], + "qiskit.transpiler.passes.SolovayKitaev": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39" + ], + "qiskit.transpiler.passes.SolovayKitaevSynthesis": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.passes.Split2QUnitaries": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1" + ], + "qiskit.transpiler.passes.StarPreRouting": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0" + ], + "qiskit.transpiler.passes.TemplateOptimization": ["0.19"], + "qiskit.transpiler.passes.TimeUnitConversion": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27" + ], + "qiskit.transpiler.passes.TranslateParameterizedGates": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39" + ], + "qiskit.transpiler.passes.UnitarySynthesis": ["0.19"], + "qiskit.transpiler.passes.UnrollCustomDefinitions": ["0.19"], + "qiskit.transpiler.passes.UnrollForLoops": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42" + ], + "qiskit.transpiler.passes.Unroller": ["1.0", "1.1", "1.2", "1.3"], + "qiskit.transpiler.passes.VF2Layout": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.transpiler.passes.VF2PostLayout": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36" + ], + "qiskit.transpiler.passes.ValidatePulseGates": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27" + ], + "qiskit.transpiler.passes.synthesis.aqc_plugin.AQCSynthesisPlugin": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.transpiler.passes.synthesis.high_level_synthesis.ACGSynthesisPermutation": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.3" + ], + "qiskit.transpiler.passes.synthesis.high_level_synthesis.AGSynthesisClifford": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.3" + ], + "qiskit.transpiler.passes.synthesis.high_level_synthesis.BMSynthesisClifford": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.3" + ], + "qiskit.transpiler.passes.synthesis.high_level_synthesis.BasicSynthesisPermutation": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.3" + ], + "qiskit.transpiler.passes.synthesis.high_level_synthesis.DefaultSynthesisClifford": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.3" + ], + "qiskit.transpiler.passes.synthesis.high_level_synthesis.DefaultSynthesisLinearFunction": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.3" + ], + "qiskit.transpiler.passes.synthesis.high_level_synthesis.GreedySynthesisClifford": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.3" + ], + "qiskit.transpiler.passes.synthesis.high_level_synthesis.KMSSynthesisLinearFunction": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.3" + ], + "qiskit.transpiler.passes.synthesis.high_level_synthesis.KMSSynthesisPermutation": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.3" + ], + "qiskit.transpiler.passes.synthesis.high_level_synthesis.LayerLnnSynthesisClifford": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.3" + ], + "qiskit.transpiler.passes.synthesis.high_level_synthesis.LayerSynthesisClifford": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.3" + ], + "qiskit.transpiler.passes.synthesis.high_level_synthesis.PMHSynthesisLinearFunction": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.3" + ], + "qiskit.transpiler.passes.synthesis.high_level_synthesis.QFTSynthesisFull": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.3" + ], + "qiskit.transpiler.passes.synthesis.high_level_synthesis.QFTSynthesisLine": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.3" + ], + "qiskit.transpiler.passes.synthesis.high_level_synthesis.TokenSwapperSynthesisPermutation": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.3" + ], + "qiskit.transpiler.passes.synthesis.hls_plugins.ACGSynthesisPermutation": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.transpiler.passes.synthesis.hls_plugins.AGSynthesisClifford": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.transpiler.passes.synthesis.hls_plugins.BMSynthesisClifford": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.transpiler.passes.synthesis.hls_plugins.BasicSynthesisPermutation": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.transpiler.passes.synthesis.hls_plugins.DefaultSynthesisClifford": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.transpiler.passes.synthesis.hls_plugins.DefaultSynthesisLinearFunction": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.transpiler.passes.synthesis.hls_plugins.GreedySynthesisClifford": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.transpiler.passes.synthesis.hls_plugins.KMSSynthesisLinearFunction": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.transpiler.passes.synthesis.hls_plugins.KMSSynthesisPermutation": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.transpiler.passes.synthesis.hls_plugins.LayerLnnSynthesisClifford": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.transpiler.passes.synthesis.hls_plugins.LayerSynthesisClifford": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisDefault": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisNoAux": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisVChain": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1CleanB95": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisDefault": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisGrayCode": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNCleanM15": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNDirtyI15": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAuxV24": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.transpiler.passes.synthesis.hls_plugins.PMHSynthesisLinearFunction": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.transpiler.passes.synthesis.hls_plugins.QFTSynthesisFull": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.transpiler.passes.synthesis.hls_plugins.QFTSynthesisLine": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.transpiler.passes.synthesis.hls_plugins.TokenSwapperSynthesisPermutation": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2" + ], + "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38" + ], + "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPluginManager": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38" + ], + "qiskit.transpiler.passes.synthesis.plugin.UnitarySynthesisPlugin": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.transpiler.passes.synthesis.plugin.UnitarySynthesisPluginManager": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.transpiler.passes.synthesis.plugin.high_level_synthesis_plugin_names": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.transpiler.passes.synthesis.plugin.unitary_synthesis_plugin_names": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.transpiler.passes.synthesis.solovay_kitaev_synthesis.SolovayKitaevSynthesis": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.transpiler.passes.synthesis.unitary_synthesis.DefaultUnitarySynthesis": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46" + ], + "qiskit.transpiler.preset_passmanagers.common.generate_control_flow_options_check": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.preset_passmanagers.common.generate_embed_passmanager": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.preset_passmanagers.common.generate_error_on_control_flow": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.preset_passmanagers.common.generate_pre_op_passmanager": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.preset_passmanagers.common.generate_routing_passmanager": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.preset_passmanagers.common.generate_scheduling": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.preset_passmanagers.common.generate_translation_passmanager": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.preset_passmanagers.common.generate_unroll_3q": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.preset_passmanagers.generate_preset_pass_manager": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.preset_passmanagers.level_0_pass_manager": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.preset_passmanagers.level_1_pass_manager": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.preset_passmanagers.level_2_pass_manager": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.preset_passmanagers.level_3_pass_manager": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.preset_passmanagers.plugin.PassManagerStagePlugin": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38" + ], + "qiskit.transpiler.preset_passmanagers.plugin.PassManagerStagePluginManager": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38" + ], + "qiskit.transpiler.preset_passmanagers.plugin.list_stage_plugins": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.preset_passmanagers.plugin.passmanager_stage_plugins": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.synthesis.aqc.AQC": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.synthesis.aqc.AQCSynthesisPlugin": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.synthesis.aqc.ApproximateCircuit": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.synthesis.aqc.ApproximatingObjective": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.synthesis.aqc.CNOTUnitCircuit": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.synthesis.aqc.CNOTUnitObjective": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.synthesis.aqc.DefaultCNOTUnitObjective": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.transpiler.synthesis.aqc.FastCNOTUnitObjective": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.utils.QuantumInstance": [ + "0.19", + "0.24", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.utils.add_deprecation_to_docstring": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.utils.algorithm_globals": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.utils.apply_prefix": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.utils.deprecate_arg": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.utils.deprecate_arguments": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.utils.deprecate_func": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.utils.deprecate_function": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.utils.detach_prefix": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.utils.get_entangler_map": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.utils.has_aer": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.utils.has_ibmq": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.utils.is_main_process": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.utils.local_hardware_info": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.utils.mitigation.CompleteMeasFitter": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.utils.mitigation.TensoredMeasFitter": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.utils.name_args": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.utils.summarize_circuits": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.utils.validate_entangler_map": [ + "0.19", + "0.24", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.utils.wrap_method": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.validation.BaseModel": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.validation.BaseSchema": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.validation.ModelTypeValidator": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.validation.ModelValidationError": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.validation.bind_schema": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.validation.jsonschema.SchemaValidationError": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.validation.jsonschema.validate_json_against_schema": [ + "0.19", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.visualization.VisualizationError": [ + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.visualization.array_to_latex": ["0.19", "0.24"], + "qiskit.visualization.circuit.qcstyle.DefaultStyle": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.visualization.iplot_bloch_multivector": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.visualization.iplot_histogram": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.visualization.iplot_state_city": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.visualization.iplot_state_hinton": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.visualization.iplot_state_paulivec": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.visualization.iplot_state_qsphere": [ + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.visualization.plot_coupling_map": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "qiskit.visualization.plot_distribution": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38" + ], + "qiskit.visualization.pulse.IQXDebugging": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.visualization.pulse.IQXSimple": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.visualization.pulse.IQXStandard": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.visualization.pulse.interpolation": [ + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.visualization.pulse.qcstyle": [ + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.visualization.pulse_drawer": [ + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.visualization.pulse_v2.IQXDebugging": [ + "0.19", + "0.24", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.visualization.pulse_v2.IQXSimple": [ + "0.19", + "0.24", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.visualization.pulse_v2.IQXStandard": [ + "0.19", + "0.24", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.visualization.pulse_v2.draw": [ + "0.19", + "0.24", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.visualization.qcstyle.DefaultStyle": [ + "0.19", + "0.24", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.visualization.timeline.draw": [ + "0.19", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit.visualization.timeline_drawer": ["0.19"], + "qiskit_aer.AerError": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.AerProvider": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.AerSimulator": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.PulseSimulator": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.QasmSimulator": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.StatevectorSimulator": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.UnitarySimulator": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.jobs.AerJob": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.jobs.AerJobSet": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.SaveAmplitudes": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.SaveAmplitudesSquared": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.SaveClifford": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.SaveDensityMatrix": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.SaveExpectationValue": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.SaveExpectationValueVariance": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.SaveMatrixProductState": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.SaveProbabilities": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.SaveProbabilitiesDict": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.SaveStabilizer": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.SaveState": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.SaveStatevector": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.SaveStatevectorDict": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.SaveSuperOp": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.SaveUnitary": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.SetDensityMatrix": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.SetMatrixProductState": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.SetStabilizer": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.SetStatevector": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.SetSuperOp": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.SetUnitary": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.save_amplitudes": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.save_amplitudes_squared": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.save_clifford": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.save_density_matrix": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.save_expectation_value": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.save_expectation_value_variance": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.save_matrix_product_state": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.save_probabilities": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.save_probabilities_dict": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.save_stabilizer": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.save_state": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.save_statevector": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.save_statevector_dict": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.save_superop": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.save_unitary": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.set_density_matrix": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.set_matrix_product_state": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.set_stabilizer": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.set_statevector": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.set_superop": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.library.set_unitary": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.noise.LocalNoisePass": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.noise.NoiseModel": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.noise.QuantumError": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.noise.ReadoutError": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.noise.RelaxationNoisePass": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.noise.amplitude_damping_error": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.noise.coherent_unitary_error": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.noise.depolarizing_error": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.noise.device.basic_device_gate_errors": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.noise.device.basic_device_readout_errors": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.noise.device.gate_error_values": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.noise.device.gate_length_values": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.noise.device.gate_param_values": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.noise.device.readout_error_values": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.noise.device.thermal_relaxation_values": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.noise.kraus_error": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.noise.mixed_unitary_error": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.noise.pauli_error": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.noise.phase_amplitude_damping_error": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.noise.phase_damping_error": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.noise.reset_error": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.noise.thermal_relaxation_error": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.primitives.Estimator": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.primitives.Sampler": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.pulse.PulseSystemModel": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.pulse.duffing_system_model": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.quantum_info.AerDensityMatrix": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.quantum_info.AerStatevector": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.utils.NoiseTransformer": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.utils.approximate_noise_model": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.utils.approximate_quantum_error": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.utils.insert_noise": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.utils.remap_noise_model": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.utils.transform_noise_model": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.utils.transpile_noise_model": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aer.utils.transpile_quantum_error": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_aqua": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_chemistry": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_finance": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_ml": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qiskit_optimization": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "qpy": ["0.19", "0.24", "0.25", "0.26", "0.27"], + "synthesis": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "synthesis_aqc": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "tools": ["1.0", "1.1", "1.2", "1.3"], + "tools_jupyter": ["1.0", "1.1", "1.2", "1.3"], + "transpiler_builtin_plugins": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "transpiler_plugins": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32" + ], + "transpiler_synthesis_plugins": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "0.33", + "0.35", + "0.36", + "0.37", + "0.38" + ], + "utils": ["0.19", "0.24"], + "utils_mitigation": [ + "0.19", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31", + "0.32", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "validation": [ + "0.33", + "0.35", + "0.36", + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ], + "verification": [ + "0.37", + "0.38", + "0.39", + "0.40", + "0.41", + "0.42", + "0.43", + "0.44", + "0.45", + "0.46", + "1.0", + "1.1", + "1.2", + "1.3" + ] + }, + "qiskit-ibm-runtime": { + "execution_span": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20", + "0.21", + "0.22", + "0.23", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28" + ], + "fake_provider": ["0.14", "0.15", "0.16", "0.17"], + "noise_learner": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20", + "0.21", + "0.22", + "0.23", + "0.24", + "0.25" + ], + "noise_learner_result": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20", + "0.21", + "0.22", + "0.23", + "0.24", + "0.25", + "0.26", + "0.27" + ], + "qiskit_ibm_runtime.Batch": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20", + "0.21", + "0.22" + ], + "qiskit_ibm_runtime.EstimatorV1": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20", + "0.28", + "0.29", + "0.30", + "0.31" + ], + "qiskit_ibm_runtime.EstimatorV2": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20" + ], + "qiskit_ibm_runtime.ParameterNamespace": [ + "0.16", + "0.17", + "0.18", + "0.19", + "0.20", + "0.21", + "0.22", + "0.23", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31" + ], + "qiskit_ibm_runtime.RuntimeJobV2": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20" + ], + "qiskit_ibm_runtime.RuntimeOptions": [ + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31" + ], + "qiskit_ibm_runtime.RuntimeProgram": [ + "0.16", + "0.17", + "0.18", + "0.19", + "0.20", + "0.21", + "0.22", + "0.23", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31" + ], + "qiskit_ibm_runtime.SamplerV1": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20", + "0.28", + "0.29", + "0.30", + "0.31" + ], + "qiskit_ibm_runtime.SamplerV2": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20" + ], + "qiskit_ibm_runtime.execution_span.ExecutionSpan": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20", + "0.21", + "0.22", + "0.23", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28" + ], + "qiskit_ibm_runtime.execution_span.ExecutionSpans": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20", + "0.21", + "0.22", + "0.23", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28" + ], + "qiskit_ibm_runtime.execution_span.ShapeType": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20", + "0.21", + "0.22", + "0.23", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28" + ], + "qiskit_ibm_runtime.execution_span.SliceSpan": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20", + "0.21", + "0.22", + "0.23", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28" + ], + "qiskit_ibm_runtime.fake_provider.FakeAlgiers": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20" + ], + "qiskit_ibm_runtime.fake_provider.FakeAlmaden": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeAlmadenV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeArmonk": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeArmonkV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeAthens": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeAthensV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeAuckland": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeBelem": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeBelemV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeBoeblingen": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeBogota": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeBogotaV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeBrisbane": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20" + ], + "qiskit_ibm_runtime.fake_provider.FakeBrooklyn": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeBrooklynV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeBurlington": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeCairo": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeCairoV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeCambridge": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeCambridgeV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeCasablanca": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeCasablancaV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeCusco": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20" + ], + "qiskit_ibm_runtime.fake_provider.FakeEssex": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeEssexV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeFractionalBackend": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20", + "0.21", + "0.22", + "0.23" + ], + "qiskit_ibm_runtime.fake_provider.FakeGeneva": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeGuadalupe": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeHanoi": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeHanoiV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeJakarta": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeJakartaV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeJohannesburg": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeKawasaki": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20" + ], + "qiskit_ibm_runtime.fake_provider.FakeKolkata": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeKolkataV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeKyiv": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20" + ], + "qiskit_ibm_runtime.fake_provider.FakeKyoto": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20" + ], + "qiskit_ibm_runtime.fake_provider.FakeLagos": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeLagosV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeLima": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeLimaV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeLondon": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeLondonV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeManhattan": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeManhattanV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeManila": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeManilaV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeMelbourne": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeMelbourneV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeMontreal": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeMontrealV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeMumbai": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeMumbaiV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeNairobi": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeNairobiV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeOsaka": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20" + ], + "qiskit_ibm_runtime.fake_provider.FakeOslo": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeOurense": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeOurenseV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeParis": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeParisV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakePeekskill": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20" + ], + "qiskit_ibm_runtime.fake_provider.FakePerth": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakePoughkeepsie": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakePrague": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeProvider": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeQuebec": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20" + ], + "qiskit_ibm_runtime.fake_provider.FakeQuito": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeQuitoV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeRochester": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeRochesterV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeRome": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeRomeV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeRueschlikon": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeSantiago": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeSantiagoV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeSherbrooke": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeSingapore": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeSingaporeV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeSydney": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeSydneyV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeTenerife": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeTokyo": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeTorino": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20" + ], + "qiskit_ibm_runtime.fake_provider.FakeToronto": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeTorontoV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeValencia": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeValenciaV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeVigo": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeVigoV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeWashington": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeWashingtonV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.fake_provider.FakeYorktown": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.31" + ], + "qiskit_ibm_runtime.fake_provider.FakeYorktownV2": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.noise_learner.NoiseLearner": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20", + "0.21", + "0.22", + "0.23", + "0.24", + "0.25" + ], + "qiskit_ibm_runtime.options.DynamicalDecouplingOptions": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20" + ], + "qiskit_ibm_runtime.options.EstimatorOptions": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20" + ], + "qiskit_ibm_runtime.options.ExecutionOptions": [ + "0.28", + "0.29", + "0.30", + "0.31" + ], + "qiskit_ibm_runtime.options.ExecutionOptionsV2": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20" + ], + "qiskit_ibm_runtime.options.LayerNoiseLearningOptions": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20" + ], + "qiskit_ibm_runtime.options.MeasureNoiseLearningOptions": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20" + ], + "qiskit_ibm_runtime.options.NoiseLearnerOptions": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20", + "0.21", + "0.22", + "0.23", + "0.24", + "0.25", + "0.26", + "0.27" + ], + "qiskit_ibm_runtime.options.Options": ["0.28", "0.29", "0.30", "0.31"], + "qiskit_ibm_runtime.options.PecOptions": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20" + ], + "qiskit_ibm_runtime.options.ResilienceOptions": [ + "0.28", + "0.29", + "0.30", + "0.31" + ], + "qiskit_ibm_runtime.options.ResilienceOptionsV2": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20" + ], + "qiskit_ibm_runtime.options.SamplerExecutionOptionsV2": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20", + "0.21", + "0.22", + "0.23", + "0.24" + ], + "qiskit_ibm_runtime.options.SamplerOptions": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20" + ], + "qiskit_ibm_runtime.options.TranspilationOptions": [ + "0.28", + "0.29", + "0.30", + "0.31" + ], + "qiskit_ibm_runtime.options.TwirlingOptions": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20" + ], + "qiskit_ibm_runtime.options.ZneOptions": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20" + ], + "qiskit_ibm_runtime.transpiler.passes": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.23", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31" + ], + "qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20", + "0.21", + "0.22", + "0.23", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29" + ], + "qiskit_ibm_runtime.transpiler.passes.ConvertIdToDelay": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20", + "0.21", + "0.22" + ], + "qiskit_ibm_runtime.transpiler.passes.basis": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.23", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29", + "0.30", + "0.31" + ], + "qiskit_ibm_runtime.transpiler.passes.scheduling": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling": [ + "0.14", + "0.15", + "0.16", + "0.17" + ], + "qiskit_ibm_runtime.utils.noise_learner_result.LayerError": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20", + "0.21", + "0.22", + "0.23", + "0.24", + "0.25", + "0.26", + "0.27" + ], + "qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20", + "0.21", + "0.22", + "0.23", + "0.24", + "0.25", + "0.26", + "0.27" + ], + "qiskit_ibm_runtime.visualization.draw_layer_error_map": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20", + "0.21", + "0.22", + "0.23", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29" + ], + "transpiler": ["0.14", "0.15", "0.16", "0.17"], + "visualization": [ + "0.14", + "0.15", + "0.16", + "0.17", + "0.18", + "0.19", + "0.20", + "0.21", + "0.22", + "0.23", + "0.24", + "0.25", + "0.26", + "0.27", + "0.28", + "0.29" + ] + }, + "qiskit-ibm-transpiler": { + "qiskit_ibm_transpiler.ai.AICliffordSynthesis": ["0.3", "0.4"], + "qiskit_ibm_transpiler.ai.AILinearFunctionSynthesis": ["0.3", "0.4"], + "qiskit_ibm_transpiler.ai.AIPermutationSynthesis": ["0.3", "0.4"], + "qiskit_ibm_transpiler.ai.AIRouting": ["0.3", "0.4"], + "qiskit_ibm_transpiler.ai.CollectCliffords": ["0.3", "0.4"], + "qiskit_ibm_transpiler.ai.CollectLinearFunctions": ["0.3", "0.4"], + "qiskit_ibm_transpiler.ai.CollectPermutations": ["0.3", "0.4"], + "qiskit_ibm_transpiler.transpiler_service.TranspilerService": [ + "0.3", + "0.4" + ], + "qiskit_transpiler_service.ai.AICliffordSynthesis": ["0.5", "0.6", "0.7"], + "qiskit_transpiler_service.ai.AILinearFunctionSynthesis": [ + "0.5", + "0.6", + "0.7" + ], + "qiskit_transpiler_service.ai.AIPermutationSynthesis": [ + "0.5", + "0.6", + "0.7" + ], + "qiskit_transpiler_service.ai.AIRouting": ["0.5", "0.6", "0.7"], + "qiskit_transpiler_service.ai.CollectCliffords": ["0.5", "0.6", "0.7"], + "qiskit_transpiler_service.ai.CollectLinearFunctions": [ + "0.5", + "0.6", + "0.7" + ], + "qiskit_transpiler_service.ai.CollectPermutations": ["0.5", "0.6", "0.7"], + "qiskit_transpiler_service.transpiler_service.TranspilerService": [ + "0.5", + "0.6", + "0.7" + ] + } + } +} diff --git a/scripts/js/commands/api/convertApiDocsToHistorical.ts b/scripts/js/commands/api/convertApiDocsToHistorical.ts index a84ea2fc64d..c879ae45ca1 100644 --- a/scripts/js/commands/api/convertApiDocsToHistorical.ts +++ b/scripts/js/commands/api/convertApiDocsToHistorical.ts @@ -26,6 +26,7 @@ import { pathExists } from "../../lib/fs.js"; import { zxMain } from "../../lib/zx.js"; import { Pkg } from "../../lib/api/Pkg.js"; import { generateHistoricalRedirects } from "./generateHistoricalRedirects.js"; +import { generateApiRedirectData } from "./generateApiRedirectData.js"; interface Arguments { [x: string]: unknown; @@ -78,6 +79,7 @@ zxMain(async () => { ); await copyObjectsInv(pkg.name, versionWithoutPatch); await generateHistoricalRedirects(); + await generateApiRedirectData(); }); async function copyApiDocsAndUpdateLinks( diff --git a/scripts/js/commands/api/generateApiRedirectData.ts b/scripts/js/commands/api/generateApiRedirectData.ts new file mode 100644 index 00000000000..5ca67f675e5 --- /dev/null +++ b/scripts/js/commands/api/generateApiRedirectData.ts @@ -0,0 +1,166 @@ +// This code is a Qiskit project. +// +// (C) Copyright IBM 2024. +// +// This code is licensed under the Apache License, Version 2.0. You may +// obtain a copy of this license in the LICENSE 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. + +import { readdir, writeFile } from "fs/promises"; +import { join } from "path"; + +import { Pkg } from "../../lib/api/Pkg.js"; +import { readApiMinorVersion } from "../../lib/apiVersions.js"; +import { zxMain } from "../../lib/zx.js"; +import { removeSuffix } from "../../lib/stringUtils.js"; + +const OUTPUT_FILE = "./scripts/config/api-redirect-data.json"; + +type Version = string; + +// Store which minor version == the latest release. This simplifies the web app's +// implementation. +type LatestVersions = { [pkg: string]: Version }; + +// This isn't the most compact representation possible, but it's good enough for now. +// See https://github.com/Qiskit/documentation/pull/2125 for more information. +type MissingPages = { [pkg: string]: { [page: string]: Version[] } }; + +// This mechanism links pages between historical/dev versions and the latest version when URLs change. +// For simplicity, we only support custom redirects between historical/dev to latest, +// which covers the most important cases. See https://github.com/Qiskit/documentation/pull/2125 +// for more information. +type CustomRedirectsToLatest = { + [pkg: string]: { [version: string]: { [page: string]: string } }; +}; + +type RedirectData = { + latestVersions: LatestVersions; + missing: MissingPages; + customRedirectsToLatest: CustomRedirectsToLatest; +}; + +export async function generateApiRedirectData(): Promise { + console.log(`Generating ${OUTPUT_FILE}`); + const result: RedirectData = { + latestVersions: {}, + customRedirectsToLatest: {}, + missing: {}, + }; + + for (const pkgName of Pkg.VALID_NAMES) { + const pkgPath = join("docs/api", pkgName); + const latestVersion = await readApiMinorVersion(pkgPath); + const versionPaths = await determineVersionPaths(pkgPath); + + result.latestVersions[pkgName] = latestVersion; + result.missing[pkgName] = await findMissingPagesForPkg([ + pkgPath, + ...versionPaths, + ]); + result.customRedirectsToLatest[pkgName] = await determineRedirectsToLatest( + pkgPath, + versionPaths, + ); + } + await writeFile(OUTPUT_FILE, JSON.stringify(result, null, 2) + "\n"); +} + +async function findMissingPagesForPkg( + versionPaths: string[], +): Promise<{ [version: string]: string[] }> { + const versionsToPages: { [version: string]: Set } = {}; + for (const path of versionPaths) { + const pages = await readPagesForVersion(path); + const version = await readApiMinorVersion(path); + versionsToPages[version] = pages; + } + + // Aka Set.union(), which is not yet released in Node.js. + const allPages = new Set( + Object.values(versionsToPages).reduce( + (acc: string[], version) => [...acc, ...version], + [], + ), + ); + + const result: { [page: string]: string[] } = {}; + for (const page of Array.from(allPages).sort()) { + const missingVersions = Object.entries(versionsToPages) + .filter(([, versionPages]) => !versionPages.has(page)) + .map(([version]) => version) + .sort(); + if (missingVersions.length) { + result[page] = missingVersions; + } + } + return result; +} + +async function determineVersionPaths(pkgPath: string): Promise { + const entries = await readdir(pkgPath, { withFileTypes: true }); + return entries + .filter((entry) => entry.isDirectory() && entry.name !== "release-notes") + .map((entry) => join(entry.path, entry.name)); +} + +async function readPagesForVersion(path: string): Promise> { + const entries = await readdir(path, { withFileTypes: true }); + return new Set( + entries + .filter( + (entry) => + !entry.isDirectory() && + entry.name.endsWith(".mdx") && + !entry.name.startsWith("release-notes"), + ) + .map((entry) => removeSuffix(entry.name, ".mdx")), + ); +} + +async function determineRedirectsToLatest( + pkgPath: string, + historicalVersionPaths: string[], +): Promise<{ [version: string]: { [page: string]: string } }> { + const latestPages = await readPagesForVersion(pkgPath); + const redirectsByVersion: { [version: string]: { [page: string]: string } } = + {}; + for (const versionPath of historicalVersionPaths) { + const pages = await readPagesForVersion(versionPath); + const version = await readApiMinorVersion(versionPath); + const redirects: { [page: string]: string } = {}; + for (const page of pages) { + if (latestPages.has(page)) continue; + if ( + pkgPath.endsWith("qiskit-ibm-transpiler") && + page.includes("qiskit_transpiler_service") + ) { + redirects[page] = + `/${page.replace("qiskit_transpiler_service", "qiskit_ibm_transpiler")}`; + continue; + } + + if (pkgPath.endsWith("qiskit") && page.endsWith(".rst")) { + redirects[page] = + `/${page.replace("_class.rst", "").replace("_fun.rst", "")}`; + continue; + } + } + + if (Object.keys(redirects).length) { + redirectsByVersion[version] = redirects; + } + } + + return redirectsByVersion; +} + +if (import.meta.url === `file://${process.argv[1]}`) { + zxMain(async () => { + await generateApiRedirectData(); + }); +} diff --git a/scripts/js/commands/api/regenerateApiDocs.ts b/scripts/js/commands/api/regenerateApiDocs.ts index 4aa99cc62d3..9d129a79de6 100644 --- a/scripts/js/commands/api/regenerateApiDocs.ts +++ b/scripts/js/commands/api/regenerateApiDocs.ts @@ -21,6 +21,7 @@ import { zxMain } from "../../lib/zx.js"; import { pathExists } from "../../lib/fs.js"; import { readApiFullVersion } from "../../lib/apiVersions.js"; import { generateHistoricalRedirects } from "./generateHistoricalRedirects.js"; +import { generateApiRedirectData } from "./generateApiRedirectData.js"; interface Arguments { [x: string]: unknown; @@ -77,6 +78,7 @@ zxMain(async () => { } await generateHistoricalRedirects(); + await generateApiRedirectData(); console.log(`Each regenerated version has been saved as a distinct commit. If the changes are too large for one single PR, consider splitting it up into multiple PRs by using diff --git a/scripts/js/commands/api/updateApiDocs.ts b/scripts/js/commands/api/updateApiDocs.ts index b677d2d3d4d..00107ff7d45 100644 --- a/scripts/js/commands/api/updateApiDocs.ts +++ b/scripts/js/commands/api/updateApiDocs.ts @@ -20,6 +20,7 @@ import { pathExists, rmFilesInFolder } from "../../lib/fs.js"; import { downloadSphinxArtifact } from "../../lib/api/sphinxArtifacts.js"; import { runConversionPipeline } from "../../lib/api/conversionPipeline.js"; import { generateHistoricalRedirects } from "./generateHistoricalRedirects.js"; +import { generateApiRedirectData } from "./generateApiRedirectData.js"; export interface Arguments { [x: string]: unknown; @@ -84,6 +85,7 @@ export async function generateVersion( console.log(`Run pipeline for ${pkg.name}:${pkg.versionWithoutPatch}`); await runConversionPipeline(sphinxArtifactFolder, "docs", "public", pkg); await generateHistoricalRedirects(); + await generateApiRedirectData(); } export function determineMinorVersion(args: Arguments): string { From e0ced199e0a7e46f4fee300a96a3b90552d3b4e6 Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Wed, 16 Oct 2024 15:43:03 -0400 Subject: [PATCH 05/32] Generate Runtime 0.31 docs (#2142) Note that several APIs were removed from Runtime. I'll set up redirects in closed source. This PR also updates the dev docs for Qiskit. For some reason, our cron job isn't actually opening up PRs. --- .../api/qiskit-ibm-runtime/0.30/_package.json | 4 + docs/api/qiskit-ibm-runtime/0.30/_toc.json | 672 +++++++++++++++++ .../0.30/execution_span.mdx | 29 + .../qiskit-ibm-runtime/0.30/fake_provider.mdx | 201 +++++ docs/api/qiskit-ibm-runtime/0.30/index.mdx | 17 + .../qiskit-ibm-runtime/0.30/noise_learner.mdx | 24 + .../0.30/noise_learner_result.mdx | 21 + docs/api/qiskit-ibm-runtime/0.30/options.mdx | 74 ++ .../0.30/qiskit_ibm_runtime.Batch.mdx | 232 ++++++ .../0.30/qiskit_ibm_runtime.Estimator.mdx | 14 + .../0.30/qiskit_ibm_runtime.EstimatorV2.mdx | 127 ++++ .../0.30/qiskit_ibm_runtime.IBMBackend.mdx | 701 ++++++++++++++++++ ...iskit_ibm_runtime.QiskitRuntimeService.mdx | 391 ++++++++++ .../qiskit_ibm_runtime.RuntimeDecoder.mdx | 52 ++ .../qiskit_ibm_runtime.RuntimeEncoder.mdx | 93 +++ .../0.30/qiskit_ibm_runtime.RuntimeJob.mdx | 539 ++++++++++++++ .../0.30/qiskit_ibm_runtime.RuntimeJobV2.mdx | 455 ++++++++++++ .../0.30/qiskit_ibm_runtime.Sampler.mdx | 14 + .../0.30/qiskit_ibm_runtime.SamplerV2.mdx | 95 +++ .../0.30/qiskit_ibm_runtime.Session.mdx | 214 ++++++ ...m_runtime.execution_span.ExecutionSpan.mdx | 141 ++++ ..._runtime.execution_span.ExecutionSpans.mdx | 114 +++ ...t_ibm_runtime.execution_span.ShapeType.mdx | 14 + ...t_ibm_runtime.execution_span.SliceSpan.mdx | 128 ++++ ..._ibm_runtime.fake_provider.FakeAlgiers.mdx | 454 ++++++++++++ ..._ibm_runtime.fake_provider.FakeAlmaden.mdx | 0 ...bm_runtime.fake_provider.FakeAlmadenV2.mdx | 464 ++++++++++++ ...t_ibm_runtime.fake_provider.FakeArmonk.mdx | 0 ...ibm_runtime.fake_provider.FakeArmonkV2.mdx | 458 ++++++++++++ ...t_ibm_runtime.fake_provider.FakeAthens.mdx | 0 ...ibm_runtime.fake_provider.FakeAthensV2.mdx | 454 ++++++++++++ ...ibm_runtime.fake_provider.FakeAuckland.mdx | 454 ++++++++++++ ...it_ibm_runtime.fake_provider.FakeBelem.mdx | 0 ..._ibm_runtime.fake_provider.FakeBelemV2.mdx | 454 ++++++++++++ ...m_runtime.fake_provider.FakeBoeblingen.mdx | 0 ...runtime.fake_provider.FakeBoeblingenV2.mdx | 464 ++++++++++++ ...t_ibm_runtime.fake_provider.FakeBogota.mdx | 0 ...ibm_runtime.fake_provider.FakeBogotaV2.mdx | 454 ++++++++++++ ...ibm_runtime.fake_provider.FakeBrisbane.mdx | 454 ++++++++++++ ...ibm_runtime.fake_provider.FakeBrooklyn.mdx | 0 ...m_runtime.fake_provider.FakeBrooklynV2.mdx | 454 ++++++++++++ ...m_runtime.fake_provider.FakeBurlington.mdx | 0 ...runtime.fake_provider.FakeBurlingtonV2.mdx | 460 ++++++++++++ ...it_ibm_runtime.fake_provider.FakeCairo.mdx | 0 ..._ibm_runtime.fake_provider.FakeCairoV2.mdx | 454 ++++++++++++ ...bm_runtime.fake_provider.FakeCambridge.mdx | 0 ..._runtime.fake_provider.FakeCambridgeV2.mdx | 466 ++++++++++++ ...m_runtime.fake_provider.FakeCasablanca.mdx | 0 ...runtime.fake_provider.FakeCasablancaV2.mdx | 454 ++++++++++++ ...it_ibm_runtime.fake_provider.FakeCusco.mdx | 454 ++++++++++++ ...it_ibm_runtime.fake_provider.FakeEssex.mdx | 0 ..._ibm_runtime.fake_provider.FakeEssexV2.mdx | 462 ++++++++++++ ...me.fake_provider.FakeFractionalBackend.mdx | 461 ++++++++++++ ...t_ibm_runtime.fake_provider.FakeGeneva.mdx | 454 ++++++++++++ ...bm_runtime.fake_provider.FakeGuadalupe.mdx | 0 ..._runtime.fake_provider.FakeGuadalupeV2.mdx | 454 ++++++++++++ ...it_ibm_runtime.fake_provider.FakeHanoi.mdx | 0 ..._ibm_runtime.fake_provider.FakeHanoiV2.mdx | 454 ++++++++++++ ..._ibm_runtime.fake_provider.FakeJakarta.mdx | 0 ...bm_runtime.fake_provider.FakeJakartaV2.mdx | 454 ++++++++++++ ...runtime.fake_provider.FakeJohannesburg.mdx | 0 ...ntime.fake_provider.FakeJohannesburgV2.mdx | 464 ++++++++++++ ...ibm_runtime.fake_provider.FakeKawasaki.mdx | 454 ++++++++++++ ..._ibm_runtime.fake_provider.FakeKolkata.mdx | 0 ...bm_runtime.fake_provider.FakeKolkataV2.mdx | 454 ++++++++++++ ...kit_ibm_runtime.fake_provider.FakeKyiv.mdx | 454 ++++++++++++ ...it_ibm_runtime.fake_provider.FakeKyoto.mdx | 454 ++++++++++++ ...it_ibm_runtime.fake_provider.FakeLagos.mdx | 0 ..._ibm_runtime.fake_provider.FakeLagosV2.mdx | 454 ++++++++++++ ...kit_ibm_runtime.fake_provider.FakeLima.mdx | 0 ...t_ibm_runtime.fake_provider.FakeLimaV2.mdx | 454 ++++++++++++ ...t_ibm_runtime.fake_provider.FakeLondon.mdx | 0 ...ibm_runtime.fake_provider.FakeLondonV2.mdx | 462 ++++++++++++ ...bm_runtime.fake_provider.FakeManhattan.mdx | 0 ..._runtime.fake_provider.FakeManhattanV2.mdx | 454 ++++++++++++ ...t_ibm_runtime.fake_provider.FakeManila.mdx | 0 ...ibm_runtime.fake_provider.FakeManilaV2.mdx | 454 ++++++++++++ ...bm_runtime.fake_provider.FakeMelbourne.mdx | 0 ..._runtime.fake_provider.FakeMelbourneV2.mdx | 454 ++++++++++++ ...ibm_runtime.fake_provider.FakeMontreal.mdx | 0 ...m_runtime.fake_provider.FakeMontrealV2.mdx | 454 ++++++++++++ ...t_ibm_runtime.fake_provider.FakeMumbai.mdx | 0 ...ibm_runtime.fake_provider.FakeMumbaiV2.mdx | 454 ++++++++++++ ..._ibm_runtime.fake_provider.FakeNairobi.mdx | 0 ...bm_runtime.fake_provider.FakeNairobiV2.mdx | 454 ++++++++++++ ...it_ibm_runtime.fake_provider.FakeOsaka.mdx | 454 ++++++++++++ ...kit_ibm_runtime.fake_provider.FakeOslo.mdx | 454 ++++++++++++ ..._ibm_runtime.fake_provider.FakeOurense.mdx | 0 ...bm_runtime.fake_provider.FakeOurenseV2.mdx | 460 ++++++++++++ ...it_ibm_runtime.fake_provider.FakeParis.mdx | 0 ..._ibm_runtime.fake_provider.FakeParisV2.mdx | 466 ++++++++++++ ...bm_runtime.fake_provider.FakePeekskill.mdx | 454 ++++++++++++ ...it_ibm_runtime.fake_provider.FakePerth.mdx | 454 ++++++++++++ ...runtime.fake_provider.FakePoughkeepsie.mdx | 0 ...ntime.fake_provider.FakePoughkeepsieV2.mdx | 454 ++++++++++++ ...t_ibm_runtime.fake_provider.FakePrague.mdx | 454 ++++++++++++ ...ibm_runtime.fake_provider.FakeProvider.mdx | 0 ...fake_provider.FakeProviderForBackendV2.mdx | 48 ++ ...t_ibm_runtime.fake_provider.FakeQuebec.mdx | 454 ++++++++++++ ...it_ibm_runtime.fake_provider.FakeQuito.mdx | 0 ..._ibm_runtime.fake_provider.FakeQuitoV2.mdx | 454 ++++++++++++ ...bm_runtime.fake_provider.FakeRochester.mdx | 0 ..._runtime.fake_provider.FakeRochesterV2.mdx | 454 ++++++++++++ ...kit_ibm_runtime.fake_provider.FakeRome.mdx | 0 ...t_ibm_runtime.fake_provider.FakeRomeV2.mdx | 454 ++++++++++++ ..._runtime.fake_provider.FakeRueschlikon.mdx | 0 ...ibm_runtime.fake_provider.FakeSantiago.mdx | 0 ...m_runtime.fake_provider.FakeSantiagoV2.mdx | 454 ++++++++++++ ...m_runtime.fake_provider.FakeSherbrooke.mdx | 454 ++++++++++++ ...bm_runtime.fake_provider.FakeSingapore.mdx | 0 ..._runtime.fake_provider.FakeSingaporeV2.mdx | 464 ++++++++++++ ...t_ibm_runtime.fake_provider.FakeSydney.mdx | 0 ...ibm_runtime.fake_provider.FakeSydneyV2.mdx | 454 ++++++++++++ ...ibm_runtime.fake_provider.FakeTenerife.mdx | 0 ...it_ibm_runtime.fake_provider.FakeTokyo.mdx | 0 ...t_ibm_runtime.fake_provider.FakeTorino.mdx | 454 ++++++++++++ ..._ibm_runtime.fake_provider.FakeToronto.mdx | 0 ...bm_runtime.fake_provider.FakeTorontoV2.mdx | 454 ++++++++++++ ...ibm_runtime.fake_provider.FakeValencia.mdx | 0 ...m_runtime.fake_provider.FakeValenciaV2.mdx | 454 ++++++++++++ ...kit_ibm_runtime.fake_provider.FakeVigo.mdx | 0 ...t_ibm_runtime.fake_provider.FakeVigoV2.mdx | 460 ++++++++++++ ...m_runtime.fake_provider.FakeWashington.mdx | 0 ...runtime.fake_provider.FakeWashingtonV2.mdx | 454 ++++++++++++ ...ibm_runtime.fake_provider.FakeYorktown.mdx | 0 ...m_runtime.fake_provider.FakeYorktownV2.mdx | 462 ++++++++++++ ...ibm_runtime.noise_learner.NoiseLearner.mdx | 112 +++ ...ime.options.DynamicalDecouplingOptions.mdx | 55 ++ ...ibm_runtime.options.EnvironmentOptions.mdx | 51 ++ ...t_ibm_runtime.options.EstimatorOptions.mdx | 131 ++++ ...ibm_runtime.options.ExecutionOptionsV2.mdx | 30 + ...time.options.LayerNoiseLearningOptions.mdx | 45 ++ ...me.options.MeasureNoiseLearningOptions.mdx | 35 + ...bm_runtime.options.NoiseLearnerOptions.mdx | 106 +++ .../qiskit_ibm_runtime.options.PecOptions.mdx | 41 + ...bm_runtime.options.ResilienceOptionsV2.mdx | 61 ++ ...time.options.SamplerExecutionOptionsV2.mdx | 46 ++ ...kit_ibm_runtime.options.SamplerOptions.mdx | 68 ++ ...t_ibm_runtime.options.SimulatorOptions.mdx | 61 ++ ...it_ibm_runtime.options.TwirlingOptions.mdx | 81 ++ .../qiskit_ibm_runtime.options.ZneOptions.mdx | 88 +++ ...transpiler.passes.ConvertISAToClifford.mdx | 149 ++++ ...ime.transpiler.passes.ConvertIdToDelay.mdx | 127 ++++ ...passes.scheduling.ALAPScheduleAnalysis.mdx | 142 ++++ ...passes.scheduling.ASAPScheduleAnalysis.mdx | 142 ++++ ...iler.passes.scheduling.BlockBasePadder.mdx | 135 ++++ ...ing.DynamicCircuitInstructionDurations.mdx | 120 +++ ....transpiler.passes.scheduling.PadDelay.mdx | 149 ++++ ...sses.scheduling.PadDynamicalDecoupling.mdx | 286 +++++++ ...m_runtime.transpiler.passes.scheduling.mdx | 372 ++++++++++ ....utils.noise_learner_result.LayerError.mdx | 110 +++ ...oise_learner_result.PauliLindbladError.mdx | 96 +++ ...ime.visualization.draw_layer_error_map.mdx | 39 + .../0.30/runtime_service.mdx | 168 +++++ .../qiskit-ibm-runtime/0.30/transpiler.mdx | 25 + .../qiskit-ibm-runtime/0.30/visualization.mdx | 24 + docs/api/qiskit-ibm-runtime/_package.json | 2 +- docs/api/qiskit-ibm-runtime/_toc.json | 176 ----- docs/api/qiskit-ibm-runtime/dev/_package.json | 2 +- .../dev/qiskit_ibm_runtime.RuntimeJob.mdx | 4 +- .../dev/qiskit_ibm_runtime.RuntimeJobV2.mdx | 4 +- docs/api/qiskit-ibm-runtime/fake_provider.mdx | 51 -- .../noise_learner_result.mdx | 2 +- .../qiskit_ibm_runtime.Batch.mdx | 16 +- .../qiskit_ibm_runtime.Estimator.mdx | 2 +- .../qiskit_ibm_runtime.EstimatorV2.mdx | 4 +- .../qiskit_ibm_runtime.IBMBackend.mdx | 34 +- ...iskit_ibm_runtime.QiskitRuntimeService.mdx | 28 +- .../qiskit_ibm_runtime.RuntimeDecoder.mdx | 4 +- .../qiskit_ibm_runtime.RuntimeEncoder.mdx | 4 +- .../qiskit_ibm_runtime.RuntimeJob.mdx | 44 +- .../qiskit_ibm_runtime.RuntimeJobV2.mdx | 44 +- .../qiskit_ibm_runtime.Sampler.mdx | 2 +- .../qiskit_ibm_runtime.SamplerV2.mdx | 4 +- .../qiskit_ibm_runtime.Session.mdx | 16 +- ...m_runtime.execution_span.ExecutionSpan.mdx | 8 +- ..._runtime.execution_span.ExecutionSpans.mdx | 10 +- ...t_ibm_runtime.execution_span.SliceSpan.mdx | 8 +- ..._ibm_runtime.fake_provider.FakeAlgiers.mdx | 24 +- ...bm_runtime.fake_provider.FakeAlmadenV2.mdx | 24 +- ...ibm_runtime.fake_provider.FakeArmonkV2.mdx | 24 +- ...ibm_runtime.fake_provider.FakeAthensV2.mdx | 24 +- ...ibm_runtime.fake_provider.FakeAuckland.mdx | 24 +- ..._ibm_runtime.fake_provider.FakeBelemV2.mdx | 24 +- ...runtime.fake_provider.FakeBoeblingenV2.mdx | 24 +- ...ibm_runtime.fake_provider.FakeBogotaV2.mdx | 24 +- ...ibm_runtime.fake_provider.FakeBrisbane.mdx | 24 +- ...m_runtime.fake_provider.FakeBrooklynV2.mdx | 24 +- ...runtime.fake_provider.FakeBurlingtonV2.mdx | 24 +- ..._ibm_runtime.fake_provider.FakeCairoV2.mdx | 24 +- ..._runtime.fake_provider.FakeCambridgeV2.mdx | 24 +- ...runtime.fake_provider.FakeCasablancaV2.mdx | 24 +- ...it_ibm_runtime.fake_provider.FakeCusco.mdx | 24 +- ..._ibm_runtime.fake_provider.FakeEssexV2.mdx | 24 +- ...me.fake_provider.FakeFractionalBackend.mdx | 24 +- ...t_ibm_runtime.fake_provider.FakeGeneva.mdx | 24 +- ..._runtime.fake_provider.FakeGuadalupeV2.mdx | 24 +- ..._ibm_runtime.fake_provider.FakeHanoiV2.mdx | 24 +- ...bm_runtime.fake_provider.FakeJakartaV2.mdx | 24 +- ...ntime.fake_provider.FakeJohannesburgV2.mdx | 24 +- ...ibm_runtime.fake_provider.FakeKawasaki.mdx | 24 +- ...bm_runtime.fake_provider.FakeKolkataV2.mdx | 24 +- ...kit_ibm_runtime.fake_provider.FakeKyiv.mdx | 24 +- ...it_ibm_runtime.fake_provider.FakeKyoto.mdx | 24 +- ..._ibm_runtime.fake_provider.FakeLagosV2.mdx | 24 +- ...t_ibm_runtime.fake_provider.FakeLimaV2.mdx | 24 +- ...ibm_runtime.fake_provider.FakeLondonV2.mdx | 24 +- ..._runtime.fake_provider.FakeManhattanV2.mdx | 24 +- ...ibm_runtime.fake_provider.FakeManilaV2.mdx | 24 +- ..._runtime.fake_provider.FakeMelbourneV2.mdx | 24 +- ...m_runtime.fake_provider.FakeMontrealV2.mdx | 24 +- ...ibm_runtime.fake_provider.FakeMumbaiV2.mdx | 24 +- ...bm_runtime.fake_provider.FakeNairobiV2.mdx | 24 +- ...it_ibm_runtime.fake_provider.FakeOsaka.mdx | 24 +- ...kit_ibm_runtime.fake_provider.FakeOslo.mdx | 24 +- ...bm_runtime.fake_provider.FakeOurenseV2.mdx | 24 +- ..._ibm_runtime.fake_provider.FakeParisV2.mdx | 24 +- ...bm_runtime.fake_provider.FakePeekskill.mdx | 24 +- ...it_ibm_runtime.fake_provider.FakePerth.mdx | 24 +- ...ntime.fake_provider.FakePoughkeepsieV2.mdx | 24 +- ...t_ibm_runtime.fake_provider.FakePrague.mdx | 24 +- ...fake_provider.FakeProviderForBackendV2.mdx | 16 +- ...t_ibm_runtime.fake_provider.FakeQuebec.mdx | 24 +- ..._ibm_runtime.fake_provider.FakeQuitoV2.mdx | 24 +- ..._runtime.fake_provider.FakeRochesterV2.mdx | 24 +- ...t_ibm_runtime.fake_provider.FakeRomeV2.mdx | 24 +- ...m_runtime.fake_provider.FakeSantiagoV2.mdx | 24 +- ...m_runtime.fake_provider.FakeSherbrooke.mdx | 24 +- ..._runtime.fake_provider.FakeSingaporeV2.mdx | 24 +- ...ibm_runtime.fake_provider.FakeSydneyV2.mdx | 24 +- ...t_ibm_runtime.fake_provider.FakeTorino.mdx | 24 +- ...bm_runtime.fake_provider.FakeTorontoV2.mdx | 24 +- ...m_runtime.fake_provider.FakeValenciaV2.mdx | 24 +- ...t_ibm_runtime.fake_provider.FakeVigoV2.mdx | 24 +- ...runtime.fake_provider.FakeWashingtonV2.mdx | 24 +- ...m_runtime.fake_provider.FakeYorktownV2.mdx | 24 +- ...ibm_runtime.noise_learner.NoiseLearner.mdx | 4 +- ...ime.options.DynamicalDecouplingOptions.mdx | 53 +- ...ibm_runtime.options.EnvironmentOptions.mdx | 44 +- ...t_ibm_runtime.options.EstimatorOptions.mdx | 122 +-- ...ibm_runtime.options.ExecutionOptionsV2.mdx | 2 +- ...time.options.LayerNoiseLearningOptions.mdx | 33 +- ...me.options.MeasureNoiseLearningOptions.mdx | 19 +- ...bm_runtime.options.NoiseLearnerOptions.mdx | 4 +- .../qiskit_ibm_runtime.options.PecOptions.mdx | 34 +- ...bm_runtime.options.ResilienceOptionsV2.mdx | 51 +- ...time.options.SamplerExecutionOptionsV2.mdx | 2 +- ...kit_ibm_runtime.options.SamplerOptions.mdx | 34 +- ...t_ibm_runtime.options.SimulatorOptions.mdx | 35 +- ...it_ibm_runtime.options.TwirlingOptions.mdx | 2 +- .../qiskit_ibm_runtime.options.ZneOptions.mdx | 2 +- ...transpiler.passes.ConvertISAToClifford.mdx | 4 +- ...ime.transpiler.passes.ConvertIdToDelay.mdx | 4 +- ...passes.scheduling.ALAPScheduleAnalysis.mdx | 4 +- ...passes.scheduling.ASAPScheduleAnalysis.mdx | 4 +- ...iler.passes.scheduling.BlockBasePadder.mdx | 4 +- ...ing.DynamicCircuitInstructionDurations.mdx | 8 +- ....transpiler.passes.scheduling.PadDelay.mdx | 4 +- ...sses.scheduling.PadDynamicalDecoupling.mdx | 4 +- ....utils.noise_learner_result.LayerError.mdx | 10 +- ...oise_learner_result.PauliLindbladError.mdx | 4 +- ...ime.visualization.draw_layer_error_map.mdx | 2 +- docs/api/qiskit-ibm-runtime/release-notes.mdx | 361 ++++----- docs/api/qiskit/dev/_toc.json | 4 + docs/api/qiskit/dev/circuit.mdx | 22 +- docs/api/qiskit/dev/providers.mdx | 2 +- .../qiskit/dev/qiskit.circuit.BreakLoopOp.mdx | 24 +- .../dev/qiskit.circuit.CommutationChecker.mdx | 85 +++ .../dev/qiskit.circuit.ContinueLoopOp.mdx | 24 +- .../dev/qiskit.circuit.ControlFlowOp.mdx | 24 +- .../dev/qiskit.circuit.ControlledGate.mdx | 18 +- .../qiskit/dev/qiskit.circuit.ForLoopOp.mdx | 24 +- docs/api/qiskit/dev/qiskit.circuit.Gate.mdx | 20 +- .../qiskit/dev/qiskit.circuit.IfElseOp.mdx | 22 +- .../qiskit/dev/qiskit.circuit.Instruction.mdx | 26 +- .../dev/qiskit.circuit.QuantumCircuit.mdx | 178 ++--- .../dev/qiskit.circuit.SwitchCaseOp.mdx | 22 +- .../qiskit/dev/qiskit.circuit.WhileLoopOp.mdx | 22 +- ...it.classicalfunction.BooleanExpression.mdx | 20 +- ...it.classicalfunction.ClassicalFunction.mdx | 20 +- .../qiskit/dev/qiskit.circuit.library.AND.mdx | 2 +- ...t.circuit.library.CDKMRippleCarryAdder.mdx | 2 +- .../dev/qiskit.circuit.library.CU1Gate.mdx | 6 +- .../dev/qiskit.circuit.library.CU3Gate.mdx | 4 +- .../dev/qiskit.circuit.library.CUGate.mdx | 2 +- .../qiskit.circuit.library.MCPhaseGate.mdx | 2 +- ...qiskit.circuit.library.PhaseEstimation.mdx | 2 +- .../qiskit.circuit.library.PhaseOracle.mdx | 2 +- ...kit.circuit.library.PiecewiseChebyshev.mdx | 2 +- ....library.PiecewiseLinearPauliRotations.mdx | 2 +- ...rary.PiecewisePolynomialPauliRotations.mdx | 2 +- ...rcuit.library.PolynomialPauliRotations.mdx | 2 +- .../dev/qiskit.circuit.library.QAOAAnsatz.mdx | 2 +- .../qiskit.circuit.library.QuadraticForm.mdx | 2 +- .../qiskit.circuit.library.QuantumVolume.mdx | 4 +- .../dev/qiskit.circuit.library.U1Gate.mdx | 2 +- .../dev/qiskit.circuit.library.U2Gate.mdx | 2 +- .../dev/qiskit.circuit.library.U3Gate.mdx | 2 +- .../qiskit.circuit.library.ZFeatureMap.mdx | 2 +- .../qiskit.circuit.library.ZZFeatureMap.mdx | 2 +- .../qiskit.circuit.library.quantum_volume.mdx | 2 +- .../qiskit/dev/qiskit.quantum_info.Pauli.mdx | 2 +- ...skit.transpiler.passes.BasisTranslator.mdx | 4 +- .../qiskit.transpiler.passes.Decompose.mdx | 9 +- .../qiskit.visualization.timeline_drawer.mdx | 4 +- docs/api/qiskit/dev/synthesis.mdx | 2 +- .../api/qiskit-ibm-runtime/0.30/objects.inv | Bin 0 -> 71515 bytes public/api/qiskit-ibm-runtime/dev/objects.inv | Bin 58919 -> 58918 bytes public/api/qiskit-ibm-runtime/objects.inv | Bin 71515 -> 58919 bytes public/api/qiskit/dev/objects.inv | Bin 73657 -> 73783 bytes .../0.30/fake_provider-1_00.png | Bin 0 -> 13102 bytes .../0.30/fake_provider-1_01.png | Bin 0 -> 22140 bytes .../0.30/fake_provider-1_02.png | Bin 0 -> 11733 bytes ...ntime.transpiler.passes.scheduling_0_0.png | Bin 0 -> 58146 bytes ...time.transpiler.passes.scheduling_10_0.png | Bin 0 -> 9687 bytes ...time.transpiler.passes.scheduling_11_0.png | Bin 0 -> 7004 bytes ...time.transpiler.passes.scheduling_12_0.png | Bin 0 -> 6991 bytes ...time.transpiler.passes.scheduling_13_0.png | Bin 0 -> 7246 bytes ...time.transpiler.passes.scheduling_14_0.png | Bin 0 -> 18297 bytes ...time.transpiler.passes.scheduling_15_0.png | Bin 0 -> 11921 bytes ...ntime.transpiler.passes.scheduling_1_0.png | Bin 0 -> 62086 bytes ...ntime.transpiler.passes.scheduling_2_0.png | Bin 0 -> 3565 bytes ...ntime.transpiler.passes.scheduling_3_0.png | Bin 0 -> 21200 bytes ...ntime.transpiler.passes.scheduling_4_0.png | Bin 0 -> 21200 bytes ...ntime.transpiler.passes.scheduling_5_0.png | Bin 0 -> 11208 bytes ...ntime.transpiler.passes.scheduling_6_0.png | Bin 0 -> 7598 bytes ...ntime.transpiler.passes.scheduling_7_0.png | Bin 0 -> 8263 bytes ...ntime.transpiler.passes.scheduling_8_0.png | Bin 0 -> 12759 bytes ...ntime.transpiler.passes.scheduling_9_0.png | Bin 0 -> 9282 bytes .../dev/fake_provider-1_02.png | Bin 11593 -> 11968 bytes .../qiskit-ibm-runtime/fake_provider-1_02.png | Bin 11733 -> 12299 bytes public/images/api/qiskit/dev/circuit-2.png | Bin 8696 -> 8279 bytes .../dev/providers_fake_provider-1_01.png | Bin 22538 -> 22679 bytes .../dev/providers_fake_provider-1_02.png | Bin 10766 -> 11108 bytes public/images/api/qiskit/dev/pulse-2.png | Bin 10709 -> 10889 bytes public/images/api/qiskit/dev/pulse-3.png | Bin 59673 -> 59611 bytes public/images/api/qiskit/dev/pulse-4.png | Bin 19310 -> 19257 bytes public/images/api/qiskit/dev/pulse-5.png | Bin 16386 -> 16555 bytes public/images/api/qiskit/dev/pulse-6.png | Bin 11477 -> 11628 bytes public/images/api/qiskit/dev/pulse-7.png | Bin 14302 -> 14262 bytes .../dev/qiskit-circuit-ControlledGate-2.png | Bin 7349 -> 7234 bytes ...skit-circuit-library-PermutationGate-2.png | Bin 16236 -> 16246 bytes ...skit-circuit-library-PhaseEstimation-1.png | Bin 12131 -> 12227 bytes ...qiskit-circuit-library-QuantumVolume-2.png | Bin 20781 -> 19180 bytes ...it-visualization-plot_circuit_layout-1.png | Bin 10375 -> 10092 bytes .../qiskit-visualization-plot_error_map-1.png | Bin 49156 -> 49218 bytes ...qiskit-visualization-timeline_drawer-1.png | Bin 15975 -> 15879 bytes ...qiskit-visualization-timeline_drawer-2.png | Bin 8035 -> 8008 bytes ...qiskit-visualization-timeline_drawer-3.png | Bin 27451 -> 26427 bytes .../images/api/qiskit/dev/release_notes-1.png | Bin 4185 -> 7267 bytes .../images/api/qiskit/dev/transpiler-16.png | Bin 25000 -> 23831 bytes .../images/api/qiskit/dev/transpiler-17.png | Bin 19414 -> 19371 bytes public/images/api/qiskit/dev/transpiler-5.png | Bin 19939 -> 19906 bytes scripts/config/api-html-artifacts.json | 5 +- scripts/config/api-redirect-data.json | 5 +- .../config/historical-pages-to-latest.json | 581 ++++++++++++++- .../api/convertApiDocsToHistorical.ts | 2 +- 357 files changed, 35726 insertions(+), 1706 deletions(-) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/_package.json create mode 100644 docs/api/qiskit-ibm-runtime/0.30/_toc.json create mode 100644 docs/api/qiskit-ibm-runtime/0.30/execution_span.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/fake_provider.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/index.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/noise_learner.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/noise_learner_result.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/options.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.Batch.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.Estimator.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.EstimatorV2.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.IBMBackend.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.QiskitRuntimeService.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.RuntimeDecoder.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.RuntimeEncoder.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.RuntimeJob.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.RuntimeJobV2.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.Sampler.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.SamplerV2.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.Session.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.execution_span.ExecutionSpan.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.execution_span.ExecutionSpans.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.execution_span.ShapeType.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.execution_span.SliceSpan.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAlgiers.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeAlmaden.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeArmonk.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeArmonkV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeAthens.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAthensV2.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAuckland.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeBelem.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBelemV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeBoeblingen.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeBogota.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBogotaV2.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBrisbane.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeBrooklyn.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeBurlington.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeCairo.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCairoV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeCambridge.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeCasablanca.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCusco.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeEssex.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeEssexV2.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeGeneva.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeGuadalupe.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeHanoi.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeHanoiV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeJakarta.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeJakartaV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeJohannesburg.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeKawasaki.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeKolkata.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeKolkataV2.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeKyiv.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeKyoto.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeLagos.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeLagosV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeLima.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeLimaV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeLondon.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeLondonV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeManhattan.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeManhattanV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeManila.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeManilaV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeMelbourne.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeMontreal.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeMontrealV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeMumbai.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeNairobi.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeNairobiV2.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeOsaka.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeOslo.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeOurense.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeOurenseV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeParis.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeParisV2.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakePeekskill.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakePerth.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakePrague.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeProvider.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeQuebec.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeQuito.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeQuitoV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeRochester.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeRochesterV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeRome.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeRomeV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeRueschlikon.mdx (100%) rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeSantiago.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSherbrooke.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeSingapore.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeSydney.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSydneyV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeTenerife.mdx (100%) rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeTokyo.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeTorino.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeToronto.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeTorontoV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeValencia.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeValenciaV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeVigo.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeVigoV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeWashington.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.mdx rename docs/api/qiskit-ibm-runtime/{ => 0.30}/qiskit_ibm_runtime.fake_provider.FakeYorktown.mdx (100%) create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeYorktownV2.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.noise_learner.NoiseLearner.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.DynamicalDecouplingOptions.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.EnvironmentOptions.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.EstimatorOptions.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.ExecutionOptionsV2.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.LayerNoiseLearningOptions.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.MeasureNoiseLearningOptions.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.NoiseLearnerOptions.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.PecOptions.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.ResilienceOptionsV2.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.SamplerExecutionOptionsV2.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.SamplerOptions.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.SimulatorOptions.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.TwirlingOptions.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.ZneOptions.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.ConvertIdToDelay.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.utils.noise_learner_result.LayerError.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.visualization.draw_layer_error_map.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/runtime_service.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/transpiler.mdx create mode 100644 docs/api/qiskit-ibm-runtime/0.30/visualization.mdx create mode 100644 docs/api/qiskit/dev/qiskit.circuit.CommutationChecker.mdx create mode 100644 public/api/qiskit-ibm-runtime/0.30/objects.inv create mode 100644 public/images/api/qiskit-ibm-runtime/0.30/fake_provider-1_00.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.30/fake_provider-1_01.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.30/fake_provider-1_02.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_0_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_10_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_11_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_12_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_13_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_14_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_15_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_1_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_2_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_3_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_4_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_5_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_6_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_7_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_8_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_9_0.png diff --git a/docs/api/qiskit-ibm-runtime/0.30/_package.json b/docs/api/qiskit-ibm-runtime/0.30/_package.json new file mode 100644 index 00000000000..ccfaf8a1d1a --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/_package.json @@ -0,0 +1,4 @@ +{ + "name": "qiskit-ibm-runtime", + "version": "0.30.0" +} diff --git a/docs/api/qiskit-ibm-runtime/0.30/_toc.json b/docs/api/qiskit-ibm-runtime/0.30/_toc.json new file mode 100644 index 00000000000..2b9e3e24e62 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/_toc.json @@ -0,0 +1,672 @@ +{ + "title": "Qiskit Runtime Client", + "children": [ + { + "title": "API index", + "url": "/api/qiskit-ibm-runtime/0.30" + }, + { + "title": "qiskit_ibm_runtime", + "children": [ + { + "title": "Module overview", + "url": "/api/qiskit-ibm-runtime/0.30/runtime_service" + }, + { + "title": "Batch", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.Batch" + }, + { + "title": "Estimator", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.Estimator" + }, + { + "title": "EstimatorV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.EstimatorV2" + }, + { + "title": "IBMBackend", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.IBMBackend" + }, + { + "title": "QiskitRuntimeService", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.QiskitRuntimeService" + }, + { + "title": "RuntimeDecoder", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.RuntimeDecoder" + }, + { + "title": "RuntimeEncoder", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.RuntimeEncoder" + }, + { + "title": "RuntimeJob", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.RuntimeJob" + }, + { + "title": "RuntimeJobV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.RuntimeJobV2" + }, + { + "title": "Sampler", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.Sampler" + }, + { + "title": "SamplerV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.SamplerV2" + }, + { + "title": "Session", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.Session" + } + ] + }, + { + "title": "qiskit_ibm_runtime.execution_span", + "children": [ + { + "title": "Module overview", + "url": "/api/qiskit-ibm-runtime/0.30/execution_span" + }, + { + "title": "ExecutionSpan", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.execution_span.ExecutionSpan" + }, + { + "title": "ExecutionSpans", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.execution_span.ExecutionSpans" + }, + { + "title": "ShapeType", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.execution_span.ShapeType" + }, + { + "title": "SliceSpan", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.execution_span.SliceSpan" + } + ] + }, + { + "title": "qiskit_ibm_runtime.fake_provider", + "children": [ + { + "title": "Module overview", + "url": "/api/qiskit-ibm-runtime/0.30/fake_provider" + }, + { + "title": "FakeAlgiers", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAlgiers" + }, + { + "title": "FakeAlmaden", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAlmaden" + }, + { + "title": "FakeAlmadenV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAlmadenV2" + }, + { + "title": "FakeArmonk", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeArmonk" + }, + { + "title": "FakeArmonkV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeArmonkV2" + }, + { + "title": "FakeAthens", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAthens" + }, + { + "title": "FakeAthensV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAthensV2" + }, + { + "title": "FakeAuckland", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAuckland" + }, + { + "title": "FakeBelem", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBelem" + }, + { + "title": "FakeBelemV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBelemV2" + }, + { + "title": "FakeBoeblingen", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBoeblingen" + }, + { + "title": "FakeBoeblingenV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2" + }, + { + "title": "FakeBogota", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBogota" + }, + { + "title": "FakeBogotaV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBogotaV2" + }, + { + "title": "FakeBrisbane", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBrisbane" + }, + { + "title": "FakeBrooklyn", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBrooklyn" + }, + { + "title": "FakeBrooklynV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBrooklynV2" + }, + { + "title": "FakeBurlington", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBurlington" + }, + { + "title": "FakeBurlingtonV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2" + }, + { + "title": "FakeCairo", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCairo" + }, + { + "title": "FakeCairoV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCairoV2" + }, + { + "title": "FakeCambridge", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCambridge" + }, + { + "title": "FakeCambridgeV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCambridgeV2" + }, + { + "title": "FakeCasablanca", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCasablanca" + }, + { + "title": "FakeCasablancaV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2" + }, + { + "title": "FakeCusco", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCusco" + }, + { + "title": "FakeEssex", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeEssex" + }, + { + "title": "FakeEssexV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeEssexV2" + }, + { + "title": "FakeFractionalBackend", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeFractionalBackend" + }, + { + "title": "FakeGeneva", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeGeneva" + }, + { + "title": "FakeGuadalupe", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeGuadalupe" + }, + { + "title": "FakeGuadalupeV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2" + }, + { + "title": "FakeHanoi", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeHanoi" + }, + { + "title": "FakeHanoiV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeHanoiV2" + }, + { + "title": "FakeJakarta", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeJakarta" + }, + { + "title": "FakeJakartaV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeJakartaV2" + }, + { + "title": "FakeJohannesburg", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeJohannesburg" + }, + { + "title": "FakeJohannesburgV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2" + }, + { + "title": "FakeKawasaki", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeKawasaki" + }, + { + "title": "FakeKolkata", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeKolkata" + }, + { + "title": "FakeKolkataV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeKolkataV2" + }, + { + "title": "FakeKyiv", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeKyiv" + }, + { + "title": "FakeKyoto", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeKyoto" + }, + { + "title": "FakeLagos", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeLagos" + }, + { + "title": "FakeLagosV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeLagosV2" + }, + { + "title": "FakeLima", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeLima" + }, + { + "title": "FakeLimaV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeLimaV2" + }, + { + "title": "FakeLondon", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeLondon" + }, + { + "title": "FakeLondonV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeLondonV2" + }, + { + "title": "FakeManhattan", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeManhattan" + }, + { + "title": "FakeManhattanV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeManhattanV2" + }, + { + "title": "FakeManila", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeManila" + }, + { + "title": "FakeManilaV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeManilaV2" + }, + { + "title": "FakeMelbourne", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeMelbourne" + }, + { + "title": "FakeMelbourneV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeMelbourneV2" + }, + { + "title": "FakeMontreal", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeMontreal" + }, + { + "title": "FakeMontrealV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeMontrealV2" + }, + { + "title": "FakeMumbai", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeMumbai" + }, + { + "title": "FakeMumbaiV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeMumbaiV2" + }, + { + "title": "FakeNairobi", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeNairobi" + }, + { + "title": "FakeNairobiV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeNairobiV2" + }, + { + "title": "FakeOsaka", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeOsaka" + }, + { + "title": "FakeOslo", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeOslo" + }, + { + "title": "FakeOurense", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeOurense" + }, + { + "title": "FakeOurenseV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeOurenseV2" + }, + { + "title": "FakeParis", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeParis" + }, + { + "title": "FakeParisV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeParisV2" + }, + { + "title": "FakePeekskill", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakePeekskill" + }, + { + "title": "FakePerth", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakePerth" + }, + { + "title": "FakePoughkeepsie", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakePoughkeepsie" + }, + { + "title": "FakePoughkeepsieV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2" + }, + { + "title": "FakePrague", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakePrague" + }, + { + "title": "FakeProvider", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeProvider" + }, + { + "title": "FakeProviderForBackendV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2" + }, + { + "title": "FakeQuebec", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeQuebec" + }, + { + "title": "FakeQuito", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeQuito" + }, + { + "title": "FakeQuitoV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeQuitoV2" + }, + { + "title": "FakeRochester", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeRochester" + }, + { + "title": "FakeRochesterV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeRochesterV2" + }, + { + "title": "FakeRome", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeRome" + }, + { + "title": "FakeRomeV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeRomeV2" + }, + { + "title": "FakeRueschlikon", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeRueschlikon" + }, + { + "title": "FakeSantiago", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSantiago" + }, + { + "title": "FakeSantiagoV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSantiagoV2" + }, + { + "title": "FakeSherbrooke", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSherbrooke" + }, + { + "title": "FakeSingapore", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSingapore" + }, + { + "title": "FakeSingaporeV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSingaporeV2" + }, + { + "title": "FakeSydney", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSydney" + }, + { + "title": "FakeSydneyV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSydneyV2" + }, + { + "title": "FakeTenerife", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeTenerife" + }, + { + "title": "FakeTokyo", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeTokyo" + }, + { + "title": "FakeTorino", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeTorino" + }, + { + "title": "FakeToronto", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeToronto" + }, + { + "title": "FakeTorontoV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeTorontoV2" + }, + { + "title": "FakeValencia", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeValencia" + }, + { + "title": "FakeValenciaV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeValenciaV2" + }, + { + "title": "FakeVigo", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeVigo" + }, + { + "title": "FakeVigoV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeVigoV2" + }, + { + "title": "FakeWashington", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeWashington" + }, + { + "title": "FakeWashingtonV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeWashingtonV2" + }, + { + "title": "FakeYorktown", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeYorktown" + }, + { + "title": "FakeYorktownV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeYorktownV2" + } + ] + }, + { + "title": "qiskit_ibm_runtime.noise_learner", + "children": [ + { + "title": "Module overview", + "url": "/api/qiskit-ibm-runtime/0.30/noise_learner" + }, + { + "title": "NoiseLearner", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.noise_learner.NoiseLearner" + } + ] + }, + { + "title": "qiskit_ibm_runtime.options", + "children": [ + { + "title": "Module overview", + "url": "/api/qiskit-ibm-runtime/0.30/options" + }, + { + "title": "DynamicalDecouplingOptions", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.DynamicalDecouplingOptions" + }, + { + "title": "EnvironmentOptions", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.EnvironmentOptions" + }, + { + "title": "EstimatorOptions", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.EstimatorOptions" + }, + { + "title": "ExecutionOptionsV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.ExecutionOptionsV2" + }, + { + "title": "LayerNoiseLearningOptions", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.LayerNoiseLearningOptions" + }, + { + "title": "MeasureNoiseLearningOptions", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.MeasureNoiseLearningOptions" + }, + { + "title": "NoiseLearnerOptions", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.NoiseLearnerOptions" + }, + { + "title": "PecOptions", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.PecOptions" + }, + { + "title": "ResilienceOptionsV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.ResilienceOptionsV2" + }, + { + "title": "SamplerExecutionOptionsV2", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.SamplerExecutionOptionsV2" + }, + { + "title": "SamplerOptions", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.SamplerOptions" + }, + { + "title": "SimulatorOptions", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.SimulatorOptions" + }, + { + "title": "TwirlingOptions", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.TwirlingOptions" + }, + { + "title": "ZneOptions", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.ZneOptions" + } + ] + }, + { + "title": "qiskit_ibm_runtime.transpiler.passes", + "children": [ + { + "title": "Module overview", + "url": "/api/qiskit-ibm-runtime/0.30/transpiler" + }, + { + "title": "ConvertIdToDelay", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.ConvertIdToDelay" + }, + { + "title": "ConvertISAToClifford", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford" + } + ] + }, + { + "title": "qiskit_ibm_runtime.transpiler.passes.scheduling", + "children": [ + { + "title": "Module overview", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling" + }, + { + "title": "ALAPScheduleAnalysis", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis" + }, + { + "title": "ASAPScheduleAnalysis", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis" + }, + { + "title": "BlockBasePadder", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder" + }, + { + "title": "DynamicCircuitInstructionDurations", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations" + }, + { + "title": "PadDelay", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay" + }, + { + "title": "PadDynamicalDecoupling", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling" + } + ] + }, + { + "title": "qiskit_ibm_runtime.utils.noise_learner_result", + "children": [ + { + "title": "Module overview", + "url": "/api/qiskit-ibm-runtime/0.30/noise_learner_result" + }, + { + "title": "LayerError", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.utils.noise_learner_result.LayerError" + }, + { + "title": "PauliLindbladError", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError" + } + ] + }, + { + "title": "qiskit_ibm_runtime.visualization", + "children": [ + { + "title": "Module overview", + "url": "/api/qiskit-ibm-runtime/0.30/visualization" + }, + { + "title": "draw_layer_error_map", + "url": "/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.visualization.draw_layer_error_map" + } + ] + }, + { + "title": "Release notes", + "url": "/api/qiskit-ibm-runtime/release-notes" + } + ], + "collapsed": true +} + diff --git a/docs/api/qiskit-ibm-runtime/0.30/execution_span.mdx b/docs/api/qiskit-ibm-runtime/0.30/execution_span.mdx new file mode 100644 index 00000000000..9d0cf9f8970 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/execution_span.mdx @@ -0,0 +1,29 @@ +--- +title: execution_span +description: API reference for qiskit_ibm_runtime.execution_span +in_page_toc_min_heading_level: 2 +python_api_type: module +python_api_name: qiskit_ibm_runtime.execution_span +--- + + + + + +# Execution Spans + +`qiskit_ibm_runtime.execution_span` + +## Overview + +An [`ExecutionSpans`](qiskit_ibm_runtime.execution_span.ExecutionSpans "qiskit_ibm_runtime.execution_span.ExecutionSpans") class instance is an iterable of [`ExecutionSpan`](qiskit_ibm_runtime.execution_span.ExecutionSpan "qiskit_ibm_runtime.execution_span.ExecutionSpan")s, where each iterand gives timing information about a chunk of data. Execution spans are returned as part of the metadata of a primitive job result. + +## Classes + +| | | +| ----------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [`ExecutionSpan`](qiskit_ibm_runtime.execution_span.ExecutionSpan "qiskit_ibm_runtime.execution_span.ExecutionSpan")(start, stop) | Abstract parent for classes that store an execution time span for a subset of job data. | +| [`ExecutionSpans`](qiskit_ibm_runtime.execution_span.ExecutionSpans "qiskit_ibm_runtime.execution_span.ExecutionSpans")(spans) | A collection of timings for pub results. | +| [`ShapeType`](qiskit_ibm_runtime.execution_span.ShapeType "qiskit_ibm_runtime.execution_span.ShapeType") | alias of `Tuple`\[`int`, ...] | +| [`SliceSpan`](qiskit_ibm_runtime.execution_span.SliceSpan "qiskit_ibm_runtime.execution_span.SliceSpan")(start, stop, data\_slices) | An [`ExecutionSpan`](qiskit_ibm_runtime.execution_span.ExecutionSpan "qiskit_ibm_runtime.execution_span.ExecutionSpan") for data stored in a sliceable format. | + diff --git a/docs/api/qiskit-ibm-runtime/0.30/fake_provider.mdx b/docs/api/qiskit-ibm-runtime/0.30/fake_provider.mdx new file mode 100644 index 00000000000..ec05352413c --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/fake_provider.mdx @@ -0,0 +1,201 @@ +--- +title: fake_provider +description: API reference for qiskit_ibm_runtime.fake_provider +in_page_toc_min_heading_level: 2 +python_api_type: module +python_api_name: qiskit_ibm_runtime.fake_provider +--- + + + + + +# Fake Provider + +`qiskit_ibm_runtime.fake_provider` + +## Overview + +The fake provider module contains fake providers and fake backends classes. The fake backends are built to mimic the behaviors of IBM Quantum systems using system snapshots. The system snapshots contain important information about the quantum system such as coupling map, basis gates, qubit properties (T1, T2, error rate, etc.) which are useful for testing the transpiler and performing noisy simulations of the system. + +## Example Usage + +Here is an example of using a fake backend for transpilation and simulation. + +```python +from qiskit import QuantumCircuit +from qiskit import transpile +from qiskit.visualization import plot_histogram +from qiskit_ibm_runtime import SamplerV2 +from qiskit_ibm_runtime.fake_provider import FakeManilaV2 + +# Get a fake backend from the fake provider +backend = FakeManilaV2() + +# Create a simple circuit +circuit = QuantumCircuit(3) +circuit.h(0) +circuit.cx(0,1) +circuit.cx(0,2) +circuit.measure_all() +circuit.draw('mpl', style="iqp") + +# Transpile the ideal circuit to a circuit that can be directly executed by the backend +transpiled_circuit = transpile(circuit, backend) +transpiled_circuit.draw('mpl', style="iqp") + +# Run the transpiled circuit using the simulated fake backend +sampler = SamplerV2(backend) +job = sampler.run([transpiled_circuit]) +pub_result = job.result()[0] +counts = pub_result.data.meas.get_counts() +plot_histogram(counts) +``` + +![../\_images/fake\_provider-1\_00.png](/images/api/qiskit-ibm-runtime/0.30/fake_provider-1_00.png) + +![../\_images/fake\_provider-1\_01.png](/images/api/qiskit-ibm-runtime/0.30/fake_provider-1_01.png) + +![../\_images/fake\_provider-1\_02.png](/images/api/qiskit-ibm-runtime/0.30/fake_provider-1_02.png) + + + Please note that the simulation is done using a noise model generated from system snapshots obtained in the past (sometimes a few years ago) and the results are not representative of the latest behaviours of the real quantum system which the fake backend is mimicking. If you want to run noisy simulations to compare with the real quantum system, you should use the `qiskit_aer` library. After installation, you can follow the steps below to generate a simulator that mimics a real quantum system with the latest calibration results. + + ```python + from qiskit_ibm_runtime import QiskitRuntimeService + from qiskit_aer import AerSimulator + + # get a real backend from the runtime service + service = QiskitRuntimeService() + backend = service.backend('ibmq_manila') + + # generate a simulator that mimics the real quantum system with the latest calibration results + backend_sim = AerSimulator.from_backend(backend) + ``` + + +## Fake Providers + +Fake providers provide access to a list of fake backends. + +| | | +| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | +| [`FakeProviderForBackendV2`](qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2 "qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2")() | Fake provider containing fake V2 backends. | +| [`FakeProvider`](qiskit_ibm_runtime.fake_provider.FakeProvider "qiskit_ibm_runtime.fake_provider.FakeProvider")() | Fake provider containing fake V1 backends. | + +## Fake Backends + +### Fake V2 Backends + +Fake V2 backends are fake backends with IBM Quantum systems snapshots implemented with `BackendV2` interface. They are all subclasses of `FakeBackendV2`. + +| | | +| -------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | +| [`FakeAlgiers`](qiskit_ibm_runtime.fake_provider.FakeAlgiers "qiskit_ibm_runtime.fake_provider.FakeAlgiers")() | A fake 27 qubit backend. | +| [`FakeAlmadenV2`](qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 "qiskit_ibm_runtime.fake_provider.FakeAlmadenV2")() | A fake Almaden V2 backend. | +| [`FakeArmonkV2`](qiskit_ibm_runtime.fake_provider.FakeArmonkV2 "qiskit_ibm_runtime.fake_provider.FakeArmonkV2")() | A fake 1 qubit backend. | +| [`FakeAthensV2`](qiskit_ibm_runtime.fake_provider.FakeAthensV2 "qiskit_ibm_runtime.fake_provider.FakeAthensV2")() | A fake 5 qubit backend. | +| [`FakeAuckland`](qiskit_ibm_runtime.fake_provider.FakeAuckland "qiskit_ibm_runtime.fake_provider.FakeAuckland")() | A fake 27 qubit backend. | +| [`FakeBelemV2`](qiskit_ibm_runtime.fake_provider.FakeBelemV2 "qiskit_ibm_runtime.fake_provider.FakeBelemV2")() | A fake 5 qubit backend. | +| [`FakeBoeblingenV2`](qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 "qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2")() | A fake Boeblingen V2 backend. | +| [`FakeBogotaV2`](qiskit_ibm_runtime.fake_provider.FakeBogotaV2 "qiskit_ibm_runtime.fake_provider.FakeBogotaV2")() | A fake 5 qubit backend. | +| [`FakeBrisbane`](qiskit_ibm_runtime.fake_provider.FakeBrisbane "qiskit_ibm_runtime.fake_provider.FakeBrisbane")() | A fake 127 qubit backend. | +| [`FakeBrooklynV2`](qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 "qiskit_ibm_runtime.fake_provider.FakeBrooklynV2")() | A fake Brooklyn V2 backend. | +| [`FakeBurlingtonV2`](qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 "qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2")() | A fake 5 qubit backend. | +| [`FakeCairoV2`](qiskit_ibm_runtime.fake_provider.FakeCairoV2 "qiskit_ibm_runtime.fake_provider.FakeCairoV2")() | A fake 27 qubit backend. | +| [`FakeCambridgeV2`](qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 "qiskit_ibm_runtime.fake_provider.FakeCambridgeV2")() | A fake Cambridge backend. | +| [`FakeCasablancaV2`](qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 "qiskit_ibm_runtime.fake_provider.FakeCasablancaV2")() | A fake 7 qubit backend. | +| [`FakeCusco`](qiskit_ibm_runtime.fake_provider.FakeCusco "qiskit_ibm_runtime.fake_provider.FakeCusco")() | A fake 127 qubit backend. | +| [`FakeEssexV2`](qiskit_ibm_runtime.fake_provider.FakeEssexV2 "qiskit_ibm_runtime.fake_provider.FakeEssexV2")() | A fake 5 qubit backend. | +| [`FakeGeneva`](qiskit_ibm_runtime.fake_provider.FakeGeneva "qiskit_ibm_runtime.fake_provider.FakeGeneva")() | A fake 27 qubit backend. | +| [`FakeGuadalupeV2`](qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 "qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2")() | A fake 16 qubit backend. | +| [`FakeHanoiV2`](qiskit_ibm_runtime.fake_provider.FakeHanoiV2 "qiskit_ibm_runtime.fake_provider.FakeHanoiV2")() | A fake 27 qubit backend. | +| [`FakeJakartaV2`](qiskit_ibm_runtime.fake_provider.FakeJakartaV2 "qiskit_ibm_runtime.fake_provider.FakeJakartaV2")() | A fake 7 qubit V2 backend. | +| [`FakeJohannesburgV2`](qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 "qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2")() | A fake Johannesburg V2 backend. | +| [`FakeKawasaki`](qiskit_ibm_runtime.fake_provider.FakeKawasaki "qiskit_ibm_runtime.fake_provider.FakeKawasaki")() | A fake 127 qubit backend. | +| [`FakeKolkataV2`](qiskit_ibm_runtime.fake_provider.FakeKolkataV2 "qiskit_ibm_runtime.fake_provider.FakeKolkataV2")() | A fake 27 qubit backend. | +| [`FakeKyiv`](qiskit_ibm_runtime.fake_provider.FakeKyiv "qiskit_ibm_runtime.fake_provider.FakeKyiv")() | A fake 127 qubit backend. | +| [`FakeKyoto`](qiskit_ibm_runtime.fake_provider.FakeKyoto "qiskit_ibm_runtime.fake_provider.FakeKyoto")() | A fake 127 qubit backend. | +| [`FakeLagosV2`](qiskit_ibm_runtime.fake_provider.FakeLagosV2 "qiskit_ibm_runtime.fake_provider.FakeLagosV2")() | A fake 7 qubit backend. | +| [`FakeLimaV2`](qiskit_ibm_runtime.fake_provider.FakeLimaV2 "qiskit_ibm_runtime.fake_provider.FakeLimaV2")() | A fake 5 qubit backend. | +| [`FakeFractionalBackend`](qiskit_ibm_runtime.fake_provider.FakeFractionalBackend "qiskit_ibm_runtime.fake_provider.FakeFractionalBackend")() | A fake 5 qubit backend with dynamic and fractional feature modeled based on FakeLima. | +| [`FakeLondonV2`](qiskit_ibm_runtime.fake_provider.FakeLondonV2 "qiskit_ibm_runtime.fake_provider.FakeLondonV2")() | A fake 5 qubit backend. | +| [`FakeManhattanV2`](qiskit_ibm_runtime.fake_provider.FakeManhattanV2 "qiskit_ibm_runtime.fake_provider.FakeManhattanV2")() | A fake Manhattan backend. | +| [`FakeManilaV2`](qiskit_ibm_runtime.fake_provider.FakeManilaV2 "qiskit_ibm_runtime.fake_provider.FakeManilaV2")() | A fake 5 qubit backend. | +| [`FakeMelbourneV2`](qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 "qiskit_ibm_runtime.fake_provider.FakeMelbourneV2")() | A fake 14 qubit backend. | +| [`FakeMontrealV2`](qiskit_ibm_runtime.fake_provider.FakeMontrealV2 "qiskit_ibm_runtime.fake_provider.FakeMontrealV2")() | A fake 27 qubit backend. | +| [`FakeMumbaiV2`](qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 "qiskit_ibm_runtime.fake_provider.FakeMumbaiV2")() | A fake 27 qubit backend. | +| [`FakeNairobiV2`](qiskit_ibm_runtime.fake_provider.FakeNairobiV2 "qiskit_ibm_runtime.fake_provider.FakeNairobiV2")() | A fake 7 qubit backend. | +| [`FakeOsaka`](qiskit_ibm_runtime.fake_provider.FakeOsaka "qiskit_ibm_runtime.fake_provider.FakeOsaka")() | A fake 127 qubit backend. | +| [`FakeOslo`](qiskit_ibm_runtime.fake_provider.FakeOslo "qiskit_ibm_runtime.fake_provider.FakeOslo")() | A fake 7 qubit backend. | +| [`FakeOurenseV2`](qiskit_ibm_runtime.fake_provider.FakeOurenseV2 "qiskit_ibm_runtime.fake_provider.FakeOurenseV2")() | A fake 5 qubit backend. | +| [`FakeParisV2`](qiskit_ibm_runtime.fake_provider.FakeParisV2 "qiskit_ibm_runtime.fake_provider.FakeParisV2")() | A fake Paris backend. | +| [`FakePeekskill`](qiskit_ibm_runtime.fake_provider.FakePeekskill "qiskit_ibm_runtime.fake_provider.FakePeekskill")() | A fake 27 qubit backend. | +| [`FakePerth`](qiskit_ibm_runtime.fake_provider.FakePerth "qiskit_ibm_runtime.fake_provider.FakePerth")() | A fake 7 qubit backend. | +| [`FakePrague`](qiskit_ibm_runtime.fake_provider.FakePrague "qiskit_ibm_runtime.fake_provider.FakePrague")() | A fake 33 qubit backend. | +| [`FakePoughkeepsieV2`](qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 "qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2")() | A fake Poughkeepsie backend. | +| [`FakeQuebec`](qiskit_ibm_runtime.fake_provider.FakeQuebec "qiskit_ibm_runtime.fake_provider.FakeQuebec")() | A fake 127 qubit backend. | +| [`FakeQuitoV2`](qiskit_ibm_runtime.fake_provider.FakeQuitoV2 "qiskit_ibm_runtime.fake_provider.FakeQuitoV2")() | A fake 5 qubit backend. | +| [`FakeRochesterV2`](qiskit_ibm_runtime.fake_provider.FakeRochesterV2 "qiskit_ibm_runtime.fake_provider.FakeRochesterV2")() | A fake Rochester backend. | +| [`FakeRomeV2`](qiskit_ibm_runtime.fake_provider.FakeRomeV2 "qiskit_ibm_runtime.fake_provider.FakeRomeV2")() | A fake 5 qubit backend. | +| [`FakeSantiagoV2`](qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 "qiskit_ibm_runtime.fake_provider.FakeSantiagoV2")() | A fake Santiago backend. | +| [`FakeSherbrooke`](qiskit_ibm_runtime.fake_provider.FakeSherbrooke "qiskit_ibm_runtime.fake_provider.FakeSherbrooke")() | A fake 127 qubit backend. | +| [`FakeSingaporeV2`](qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 "qiskit_ibm_runtime.fake_provider.FakeSingaporeV2")() | A fake Singapore backend. | +| [`FakeSydneyV2`](qiskit_ibm_runtime.fake_provider.FakeSydneyV2 "qiskit_ibm_runtime.fake_provider.FakeSydneyV2")() | A fake 27 qubit backend. | +| [`FakeTorino`](qiskit_ibm_runtime.fake_provider.FakeTorino "qiskit_ibm_runtime.fake_provider.FakeTorino")() | A fake 133 qubit backend. | +| [`FakeTorontoV2`](qiskit_ibm_runtime.fake_provider.FakeTorontoV2 "qiskit_ibm_runtime.fake_provider.FakeTorontoV2")() | A fake 27 qubit backend. | +| [`FakeValenciaV2`](qiskit_ibm_runtime.fake_provider.FakeValenciaV2 "qiskit_ibm_runtime.fake_provider.FakeValenciaV2")() | A fake 5 qubit backend. | +| [`FakeVigoV2`](qiskit_ibm_runtime.fake_provider.FakeVigoV2 "qiskit_ibm_runtime.fake_provider.FakeVigoV2")() | A fake 5 qubit backend. | +| [`FakeWashingtonV2`](qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 "qiskit_ibm_runtime.fake_provider.FakeWashingtonV2")() | A fake 127 qubit backend. | +| [`FakeYorktownV2`](qiskit_ibm_runtime.fake_provider.FakeYorktownV2 "qiskit_ibm_runtime.fake_provider.FakeYorktownV2")() | A fake 5 qubit backend. | + +### Fake V1 Backends + +Fake V1 backends are fake backends with IBM Quantum systems snapshots implemented with `BackendV1` interface. + +| | | +| ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | +| [`FakeAlmaden`](qiskit_ibm_runtime.fake_provider.FakeAlmaden "qiskit_ibm_runtime.fake_provider.FakeAlmaden")() | A fake Almaden backend. | +| [`FakeArmonk`](qiskit_ibm_runtime.fake_provider.FakeArmonk "qiskit_ibm_runtime.fake_provider.FakeArmonk")() | A fake 1 qubit backend. | +| [`FakeAthens`](qiskit_ibm_runtime.fake_provider.FakeAthens "qiskit_ibm_runtime.fake_provider.FakeAthens")() | A fake 5 qubit backend. | +| [`FakeBelem`](qiskit_ibm_runtime.fake_provider.FakeBelem "qiskit_ibm_runtime.fake_provider.FakeBelem")() | A fake 5 qubit backend. | +| [`FakeBoeblingen`](qiskit_ibm_runtime.fake_provider.FakeBoeblingen "qiskit_ibm_runtime.fake_provider.FakeBoeblingen")() | A fake Boeblingen backend. | +| [`FakeBogota`](qiskit_ibm_runtime.fake_provider.FakeBogota "qiskit_ibm_runtime.fake_provider.FakeBogota")() | A fake 5 qubit backend. | +| [`FakeBrooklyn`](qiskit_ibm_runtime.fake_provider.FakeBrooklyn "qiskit_ibm_runtime.fake_provider.FakeBrooklyn")() | A fake Brooklyn backend. | +| [`FakeBurlington`](qiskit_ibm_runtime.fake_provider.FakeBurlington "qiskit_ibm_runtime.fake_provider.FakeBurlington")() | A fake 5 qubit backend. | +| [`FakeCairo`](qiskit_ibm_runtime.fake_provider.FakeCairo "qiskit_ibm_runtime.fake_provider.FakeCairo")() | A fake 27 qubit backend. | +| [`FakeCambridge`](qiskit_ibm_runtime.fake_provider.FakeCambridge "qiskit_ibm_runtime.fake_provider.FakeCambridge")() | A fake Cambridge backend. | +| [`FakeCasablanca`](qiskit_ibm_runtime.fake_provider.FakeCasablanca "qiskit_ibm_runtime.fake_provider.FakeCasablanca")() | A fake 7 qubit backend. | +| [`FakeEssex`](qiskit_ibm_runtime.fake_provider.FakeEssex "qiskit_ibm_runtime.fake_provider.FakeEssex")() | A fake 5 qubit backend. | +| [`FakeGuadalupe`](qiskit_ibm_runtime.fake_provider.FakeGuadalupe "qiskit_ibm_runtime.fake_provider.FakeGuadalupe")() | A fake 16 qubit backend. | +| [`FakeHanoi`](qiskit_ibm_runtime.fake_provider.FakeHanoi "qiskit_ibm_runtime.fake_provider.FakeHanoi")() | A fake 27 qubit backend. | +| [`FakeJakarta`](qiskit_ibm_runtime.fake_provider.FakeJakarta "qiskit_ibm_runtime.fake_provider.FakeJakarta")() | A fake 7 qubit backend. | +| [`FakeJohannesburg`](qiskit_ibm_runtime.fake_provider.FakeJohannesburg "qiskit_ibm_runtime.fake_provider.FakeJohannesburg")() | A fake Johannesburg backend. | +| [`FakeKolkata`](qiskit_ibm_runtime.fake_provider.FakeKolkata "qiskit_ibm_runtime.fake_provider.FakeKolkata")() | A fake 27 qubit backend. | +| [`FakeLagos`](qiskit_ibm_runtime.fake_provider.FakeLagos "qiskit_ibm_runtime.fake_provider.FakeLagos")() | A fake 7 qubit backend. | +| [`FakeLima`](qiskit_ibm_runtime.fake_provider.FakeLima "qiskit_ibm_runtime.fake_provider.FakeLima")() | A fake 5 qubit backend. | +| [`FakeLondon`](qiskit_ibm_runtime.fake_provider.FakeLondon "qiskit_ibm_runtime.fake_provider.FakeLondon")() | A fake 5 qubit backend. | +| [`FakeManhattan`](qiskit_ibm_runtime.fake_provider.FakeManhattan "qiskit_ibm_runtime.fake_provider.FakeManhattan")() | A fake Manhattan backend. | +| [`FakeManila`](qiskit_ibm_runtime.fake_provider.FakeManila "qiskit_ibm_runtime.fake_provider.FakeManila")() | A fake 5 qubit backend. | +| [`FakeMelbourne`](qiskit_ibm_runtime.fake_provider.FakeMelbourne "qiskit_ibm_runtime.fake_provider.FakeMelbourne")() | A fake 14 qubit backend. | +| [`FakeMontreal`](qiskit_ibm_runtime.fake_provider.FakeMontreal "qiskit_ibm_runtime.fake_provider.FakeMontreal")() | A fake 27 qubit backend. | +| [`FakeMumbai`](qiskit_ibm_runtime.fake_provider.FakeMumbai "qiskit_ibm_runtime.fake_provider.FakeMumbai")() | A fake 27 qubit backend. | +| [`FakeNairobi`](qiskit_ibm_runtime.fake_provider.FakeNairobi "qiskit_ibm_runtime.fake_provider.FakeNairobi")() | A fake 7 qubit backend. | +| [`FakeOurense`](qiskit_ibm_runtime.fake_provider.FakeOurense "qiskit_ibm_runtime.fake_provider.FakeOurense")() | A fake 5 qubit backend. | +| [`FakeParis`](qiskit_ibm_runtime.fake_provider.FakeParis "qiskit_ibm_runtime.fake_provider.FakeParis")() | A fake Paris backend. | +| [`FakePoughkeepsie`](qiskit_ibm_runtime.fake_provider.FakePoughkeepsie "qiskit_ibm_runtime.fake_provider.FakePoughkeepsie")() | A fake Poughkeepsie backend. | +| [`FakeQuito`](qiskit_ibm_runtime.fake_provider.FakeQuito "qiskit_ibm_runtime.fake_provider.FakeQuito")() | A fake 5 qubit backend. | +| [`FakeRochester`](qiskit_ibm_runtime.fake_provider.FakeRochester "qiskit_ibm_runtime.fake_provider.FakeRochester")() | A fake Rochester backend. | +| [`FakeRome`](qiskit_ibm_runtime.fake_provider.FakeRome "qiskit_ibm_runtime.fake_provider.FakeRome")() | A fake 5 qubit backend. | +| [`FakeRueschlikon`](qiskit_ibm_runtime.fake_provider.FakeRueschlikon "qiskit_ibm_runtime.fake_provider.FakeRueschlikon")() | A fake 16 qubit backend. | +| [`FakeSantiago`](qiskit_ibm_runtime.fake_provider.FakeSantiago "qiskit_ibm_runtime.fake_provider.FakeSantiago")() | A fake Santiago backend. | +| [`FakeSingapore`](qiskit_ibm_runtime.fake_provider.FakeSingapore "qiskit_ibm_runtime.fake_provider.FakeSingapore")() | A fake Singapore backend. | +| [`FakeSydney`](qiskit_ibm_runtime.fake_provider.FakeSydney "qiskit_ibm_runtime.fake_provider.FakeSydney")() | A fake 27 qubit backend. | +| [`FakeTenerife`](qiskit_ibm_runtime.fake_provider.FakeTenerife "qiskit_ibm_runtime.fake_provider.FakeTenerife")() | A fake 5 qubit backend. | +| [`FakeTokyo`](qiskit_ibm_runtime.fake_provider.FakeTokyo "qiskit_ibm_runtime.fake_provider.FakeTokyo")() | A fake 20 qubit backend. | +| [`FakeToronto`](qiskit_ibm_runtime.fake_provider.FakeToronto "qiskit_ibm_runtime.fake_provider.FakeToronto")() | A fake 27 qubit backend. | +| [`FakeValencia`](qiskit_ibm_runtime.fake_provider.FakeValencia "qiskit_ibm_runtime.fake_provider.FakeValencia")() | A fake 5 qubit backend. | +| [`FakeVigo`](qiskit_ibm_runtime.fake_provider.FakeVigo "qiskit_ibm_runtime.fake_provider.FakeVigo")() | A fake 5 qubit backend. | +| [`FakeWashington`](qiskit_ibm_runtime.fake_provider.FakeWashington "qiskit_ibm_runtime.fake_provider.FakeWashington")() | A fake 127 qubit backend. | +| [`FakeYorktown`](qiskit_ibm_runtime.fake_provider.FakeYorktown "qiskit_ibm_runtime.fake_provider.FakeYorktown")() | A fake 5 qubit backend. | + diff --git a/docs/api/qiskit-ibm-runtime/0.30/index.mdx b/docs/api/qiskit-ibm-runtime/0.30/index.mdx new file mode 100644 index 00000000000..9b94f073619 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/index.mdx @@ -0,0 +1,17 @@ +--- +title: Qiskit Runtime Client API Docs +description: API documentation for the qiskit-ibm-runtime client +--- + +# qiskit-ibm-runtime API reference + +* [Qiskit Runtime (`qiskit_ibm_runtime`)](runtime_service) +* [Noise learner (`qiskit_ibm_runtime.noise_learner.NoiseLearner`)](noise_learner) +* [NoiseLearner result classes (`qiskit_ibm_runtime.utils.noise_learner_result`)](noise_learner_result) +* [Primitive options (`qiskit_ibm_runtime.options`)](options) +* [Transpiler passes (`qiskit_ibm_runtime.transpiler.passes`)](transpiler) +* [Transpiler scheduling passes (`qiskit_ibm_runtime.transpiler.passes.scheduling`)](qiskit_ibm_runtime.transpiler.passes.scheduling) +* [Fake Provider (`qiskit_ibm_runtime.fake_provider`)](fake_provider) +* [Execution Spans (`qiskit_ibm_runtime.execution_span`)](execution_span) +* [Visualization (`qiskit_ibm_runtime.visualization`)](visualization) + diff --git a/docs/api/qiskit-ibm-runtime/0.30/noise_learner.mdx b/docs/api/qiskit-ibm-runtime/0.30/noise_learner.mdx new file mode 100644 index 00000000000..fd91bfc9cd4 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/noise_learner.mdx @@ -0,0 +1,24 @@ +--- +title: noise_learner +description: API reference for qiskit_ibm_runtime.noise_learner +in_page_toc_min_heading_level: 2 +python_api_type: module +python_api_name: qiskit_ibm_runtime.noise_learner +--- + + + + + +# Noise learner + +`qiskit_ibm_runtime.noise_learner.NoiseLearner` + +The tools to characterize the noise processes affecting the gates in noisy quantum circuits. + +## Classes + +| | | +| --------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- | +| [`NoiseLearner`](qiskit_ibm_runtime.noise_learner.NoiseLearner "qiskit_ibm_runtime.noise_learner.NoiseLearner")(\[mode, options]) | Class for executing noise learning experiments. | + diff --git a/docs/api/qiskit-ibm-runtime/0.30/noise_learner_result.mdx b/docs/api/qiskit-ibm-runtime/0.30/noise_learner_result.mdx new file mode 100644 index 00000000000..4bf17a9479d --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/noise_learner_result.mdx @@ -0,0 +1,21 @@ +--- +title: noise_learner_result +description: API reference for qiskit_ibm_runtime.utils.noise_learner_result +in_page_toc_min_heading_level: 2 +python_api_type: module +python_api_name: qiskit_ibm_runtime.utils.noise_learner_result +--- + + + + + +# NoiseLearner result classes + +`qiskit_ibm_runtime.utils.noise_learner_result` + +| | | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------- | +| [`PauliLindbladError`](qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError "qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError")(generators, rates) | A Pauli error channel generated by a Pauli Lindblad dissipators. | +| [`LayerError`](qiskit_ibm_runtime.utils.noise_learner_result.LayerError "qiskit_ibm_runtime.utils.noise_learner_result.LayerError")(circuit, qubits, error) | The error channel (in Pauli-Lindblad format) of a single layer of instructions. | + diff --git a/docs/api/qiskit-ibm-runtime/0.30/options.mdx b/docs/api/qiskit-ibm-runtime/0.30/options.mdx new file mode 100644 index 00000000000..bc56ae4cf27 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/options.mdx @@ -0,0 +1,74 @@ +--- +title: options +description: API reference for qiskit_ibm_runtime.options +in_page_toc_min_heading_level: 2 +python_api_type: module +python_api_name: qiskit_ibm_runtime.options +--- + + + + + +# Primitive options + +`qiskit_ibm_runtime.options` + +Options that can be passed to the Qiskit Runtime primitives. + +## V2 Primitives + +`SamplerV2` and `EstimatorV2` each have their own options. You can use the `options` attribute to set the options. For example: + +```python +from qiskit_ibm_runtime import QiskitRuntimeService, EstimatorV2 + +service = QiskitRuntimeService() +backend = service.least_busy(operational=True, simulator=False) +estimator = EstimatorV2(mode=backend) +estimator.options.resilience_level = 1 +``` + +You can also use the `update()` method to do bulk update. For example: + +```python +from qiskit_ibm_runtime import QiskitRuntimeService, EstimatorV2 + +service = QiskitRuntimeService() +backend = service.least_busy(operational=True, simulator=False) +estimator = EstimatorV2(mode=backend) +estimator.options.update(resilience_level=1) +``` + +Refer to [`SamplerOptions`](qiskit_ibm_runtime.options.SamplerOptions "qiskit_ibm_runtime.options.SamplerOptions") and [`EstimatorOptions`](qiskit_ibm_runtime.options.EstimatorOptions "qiskit_ibm_runtime.options.EstimatorOptions") for V2 Sampler and V2 Estimator options, respectively. + + + If an option is not specified, the server default value is used. The default values are subject to change. Refer to this current module’s documentation for the latest defaults. + + +## Classes + +### Base primitive options + +| | | +| ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------- | +| [`EstimatorOptions`](qiskit_ibm_runtime.options.EstimatorOptions "qiskit_ibm_runtime.options.EstimatorOptions")(\*args, \*\*kwargs) | Options for V2 Estimator. | +| [`SamplerOptions`](qiskit_ibm_runtime.options.SamplerOptions "qiskit_ibm_runtime.options.SamplerOptions")(\*args, \*\*kwargs) | Options for V2 Sampler. | + +### Suboptions + +| | | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [`NoiseLearnerOptions`](qiskit_ibm_runtime.options.NoiseLearnerOptions "qiskit_ibm_runtime.options.NoiseLearnerOptions")(\*args, \*\*kwargs) | Options for [`NoiseLearner`](qiskit_ibm_runtime.noise_learner.NoiseLearner "qiskit_ibm_runtime.noise_learner.NoiseLearner"). | +| [`DynamicalDecouplingOptions`](qiskit_ibm_runtime.options.DynamicalDecouplingOptions "qiskit_ibm_runtime.options.DynamicalDecouplingOptions")(\*args, \*\*kwargs) | Options for dynamical decoupling (DD). | +| [`ResilienceOptionsV2`](qiskit_ibm_runtime.options.ResilienceOptionsV2 "qiskit_ibm_runtime.options.ResilienceOptionsV2")(\*args, \*\*kwargs) | Resilience options for V2 Estimator. | +| [`LayerNoiseLearningOptions`](qiskit_ibm_runtime.options.LayerNoiseLearningOptions "qiskit_ibm_runtime.options.LayerNoiseLearningOptions")(\*args, \*\*kwargs) | Options for learning layer noise. | +| [`MeasureNoiseLearningOptions`](qiskit_ibm_runtime.options.MeasureNoiseLearningOptions "qiskit_ibm_runtime.options.MeasureNoiseLearningOptions")(\*args, \*\*kwargs) | Options for measurement noise learning. | +| [`PecOptions`](qiskit_ibm_runtime.options.PecOptions "qiskit_ibm_runtime.options.PecOptions")(\*args, \*\*kwargs) | Probabalistic error cancellation mitigation options. | +| [`ZneOptions`](qiskit_ibm_runtime.options.ZneOptions "qiskit_ibm_runtime.options.ZneOptions")(\*args, \*\*kwargs) | Zero noise extrapolation mitigation options. | +| [`TwirlingOptions`](qiskit_ibm_runtime.options.TwirlingOptions "qiskit_ibm_runtime.options.TwirlingOptions")(\*args, \*\*kwargs) | Twirling options. | +| [`ExecutionOptionsV2`](qiskit_ibm_runtime.options.ExecutionOptionsV2 "qiskit_ibm_runtime.options.ExecutionOptionsV2")(\*args, \*\*kwargs) | Execution options for V2 primitives. | +| [`SamplerExecutionOptionsV2`](qiskit_ibm_runtime.options.SamplerExecutionOptionsV2 "qiskit_ibm_runtime.options.SamplerExecutionOptionsV2")(\*args, \*\*kwargs) | Extension of [`ExecutionOptionsV2`](qiskit_ibm_runtime.options.ExecutionOptionsV2 "qiskit_ibm_runtime.options.ExecutionOptionsV2") for the sampler primitive. | +| [`EnvironmentOptions`](qiskit_ibm_runtime.options.EnvironmentOptions "qiskit_ibm_runtime.options.EnvironmentOptions")(\*args, \*\*kwargs) | Options related to the execution environment. | +| [`SimulatorOptions`](qiskit_ibm_runtime.options.SimulatorOptions "qiskit_ibm_runtime.options.SimulatorOptions")(\*args, \*\*kwargs) | Simulator options. | + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.Batch.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.Batch.mdx new file mode 100644 index 00000000000..2b4218e796e --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.Batch.mdx @@ -0,0 +1,232 @@ +--- +title: Batch +description: API reference for qiskit_ibm_runtime.Batch +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.Batch +--- + +# Batch + + + Class for running jobs in batch execution mode. + + The `batch` mode is designed to efficiently perform experiments that comprise multiple independent jobs. + + **Using the `batch` mode provides the following benefits:** + + * The jobs’ classical computation, such as compilation, is run in parallel. Thus, running multiple jobs in a batch is significantly faster than running them serially. + * There is usually minimal delay between job, which can help avoid drift. + * If you partition your workload into multiple jobs and run them in `batch` mode, you can get results from individual jobs, which makes them more flexible to work with. For example, if a job’s results do not meet your expectations, you can cancel the remaining jobs, or simply re-submit that individual job and avoid re-running the entire workload. + + Batch mode can shorten processing time if all jobs are provided at the outset. If you want to submit iterative jobs, use `session` mode instead. + + You can open a Qiskit Runtime batch by using this `Batch` class, then submit jobs to one or more primitives. + + For example: + + ```python + import numpy as np + from qiskit.circuit.library import IQP + from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager + from qiskit.quantum_info import random_hermitian + from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2 as Sampler, Batch + + n_qubits = 127 + + service = QiskitRuntimeService() + backend = service.least_busy(operational=True, simulator=False, min_num_qubits=n_qubits) + + rng = np.random.default_rng() + mats = [np.real(random_hermitian(n_qubits, seed=rng)) for _ in range(30)] + circuits = [IQP(mat) for mat in mats] + for circuit in circuits: + circuit.measure_all() + + pm = generate_preset_pass_manager(backend=backend, optimization_level=1) + isa_circuits = pm.run(circuits) + + max_circuits = 10 + all_partitioned_circuits = [] + for i in range(0, len(isa_circuits), max_circuits): + all_partitioned_circuits.append(isa_circuits[i : i + max_circuits]) + jobs = [] + start_idx = 0 + + with Batch(backend=backend): + sampler = Sampler() + for partitioned_circuits in all_partitioned_circuits: + job = sampler.run(partitioned_circuits) + jobs.append(job) + ``` + + For more details, check the “[Run jobs in a batch](/guides/run-jobs-batch)” page. + + Batch constructor. + + **Parameters** + + * **service** (`Optional`\[[`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")]) – (DEPRECATED) Optional instance of the `QiskitRuntimeService` class. If `None`, the service associated with the backend, if known, is used. Otherwise `QiskitRuntimeService()` is used to initialize your default saved account. + * **backend** (`Union`\[`str`, [`BackendV1`](/api/qiskit/qiskit.providers.BackendV1 "(in Qiskit v1.2)"), [`BackendV2`](/api/qiskit/qiskit.providers.BackendV2 "(in Qiskit v1.2)"), `None`]) – Instance of `Backend` class or backend string name. Note that passing a backend name is deprecated. + * **max\_time** (`Union`\[`int`, `str`, `None`]) – Maximum amount of time a runtime session can be open before being forcibly closed. Can be specified as seconds (int) or a string like “2h 30m 40s”. This value must be less than the [system imposed maximum](/guides/max-execution-time). + + **Raises** + + **ValueError** – If an input value is invalid. + + ## Attributes + + ### service + + + Return service associated with this session. + + **Return type** + + [`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService") + + **Returns** + + [`qiskit_ibm_runtime.QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService") associated with this session. + + + ### session\_id + + + Return the session ID. + + **Return type** + + `Optional`\[`str`] + + **Returns** + + Session ID. None if the backend is a simulator. + + + ## Methods + + ### backend + + + Return backend for this session. + + **Return type** + + `Optional`\[`str`] + + **Returns** + + Backend for this session. None if unknown. + + + ### cancel + + + Cancel all pending jobs in a session. + + **Return type** + + `None` + + + ### close + + + Close the session so new jobs will no longer be accepted, but existing queued or running jobs will run to completion. The session will be terminated once there are no more pending jobs. + + **Return type** + + `None` + + + ### details + + + Return session details. + + **Return type** + + `Optional`\[`Dict`\[`str`, `Any`]] + + **Returns** + + A dictionary with the sessions details. + + * `id`: id of the session. + * `backend_name`: backend used for the session. + * `interactive_timeout`: The maximum idle time (in seconds) between jobs that is allowed to occur before the session is deactivated. + * `max_time`: Maximum allowed time (in seconds) for the session, subject to plan limits. + * `active_timeout`: The maximum time (in seconds) a session can stay active. + * `state`: State of the session - open, active, inactive, or closed. + * `accepting_jobs`: Whether or not the session is accepting jobs. + * `last_job_started`: Timestamp of when the last job in the session started. + * `last_job_completed`: Timestamp of when the last job in the session completed. + * `started_at`: Timestamp of when the session was started. + * `closed_at`: Timestamp of when the session was closed. + * `activated_at`: Timestamp of when the session state was changed to active. + * `mode`: Execution mode of the session. + * `usage_time`: The usage time, in seconds, of this Session or Batch. Usage is defined as the time a quantum system is committed to complete a job. + + + ### from\_id + + + Construct a Session object with a given session\_id + + **Parameters** + + * **session\_id** (`str`) – the id of the session to be created. This must be an already existing session id. + + * **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – + + instance of the `QiskitRuntimeService` class. + + **Raises:** + + IBMInputValueError: If given session\_id does not exist. + + **Return type** + + [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session") + + **Returns** + + A new Session with the given `session_id` + + + ### status + + + Return current session status. + + **Return type** + + `Optional`\[`str`] + + **Returns** + + Session status as a string. + + * `Pending`: Session is created but not active. It will become active when the next job of this session is dequeued. + * `In progress, accepting new jobs`: session is active and accepting new jobs. + * `In progress, not accepting new jobs`: session is active and not accepting new jobs. + * `Closed`: max\_time expired or session was explicitly closed. + * `None`: status details are not available. + + + ### usage + + + Return session usage in seconds. + + Session usage is the time from when the first job starts until the session goes inactive, is closed, or when its last job completes, whichever happens last. + + Batch usage is the amount of time all jobs spend on the QPU. + + **Return type** + + `Optional`\[`float`] + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.Estimator.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.Estimator.mdx new file mode 100644 index 00000000000..9302cda026d --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.Estimator.mdx @@ -0,0 +1,14 @@ +--- +title: Estimator +description: API reference for qiskit_ibm_runtime.Estimator +in_page_toc_min_heading_level: 1 +python_api_type: attribute +python_api_name: qiskit_ibm_runtime.Estimator +--- + +# Estimator + + + alias of [`EstimatorV2`](qiskit_ibm_runtime.EstimatorV2 "qiskit_ibm_runtime.estimator.EstimatorV2") + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.EstimatorV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.EstimatorV2.mdx new file mode 100644 index 00000000000..c6c1a70832e --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.EstimatorV2.mdx @@ -0,0 +1,127 @@ +--- +title: EstimatorV2 +description: API reference for qiskit_ibm_runtime.EstimatorV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.EstimatorV2 +--- + +# EstimatorV2 + + + Class for interacting with Qiskit Runtime Estimator primitive service. + + Qiskit Runtime Estimator primitive service estimates expectation values of quantum circuits and observables. + + The [`run()`](#qiskit_ibm_runtime.EstimatorV2.run "qiskit_ibm_runtime.EstimatorV2.run") can be used to submit circuits, observables, and parameters to the Estimator primitive. + + Following construction, an estimator is used by calling its [`run()`](#qiskit_ibm_runtime.EstimatorV2.run "qiskit_ibm_runtime.EstimatorV2.run") method with a list of PUBs (Primitive Unified Blocs). Each PUB contains four values that, together, define a computation unit of work for the estimator to complete: + + * a single [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), possibly parametrized, whose final state we define as $\psi(\theta)$, + * one or more observables (specified as any `ObservablesArrayLike`, including `Pauli`, `SparsePauliOp`, `str`) that specify which expectation values to estimate, denoted $H_j$, and + * a collection parameter value sets to bind the circuit against, $\theta_k$. + * an optional target precision for expectation value estimates. + + Here is an example of how the estimator is used. + + ```python + from qiskit.circuit.library import RealAmplitudes + from qiskit.quantum_info import SparsePauliOp + from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager + from qiskit_ibm_runtime import QiskitRuntimeService, EstimatorV2 as Estimator + + service = QiskitRuntimeService() + backend = service.least_busy(operational=True, simulator=False) + + psi = RealAmplitudes(num_qubits=2, reps=2) + hamiltonian = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)]) + theta = [0, 1, 1, 2, 3, 5] + + pm = generate_preset_pass_manager(backend=backend, optimization_level=1) + isa_psi = pm.run(psi) + isa_observables = hamiltonian.apply_layout(isa_psi.layout) + + estimator = Estimator(mode=backend) + + # calculate [ ] + job = estimator.run([(isa_psi, isa_observables, [theta])]) + pub_result = job.result()[0] + print(f"Expectation values: {pub_result.data.evs}") + ``` + + Initializes the Estimator primitive. + + **Parameters** + + * **mode** (`Union`\[[`BackendV1`](/api/qiskit/qiskit.providers.BackendV1 "(in Qiskit v1.2)"), [`BackendV2`](/api/qiskit/qiskit.providers.BackendV2 "(in Qiskit v1.2)"), [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session"), [`Batch`](qiskit_ibm_runtime.Batch "qiskit_ibm_runtime.batch.Batch"), `str`, `None`]) – + + The execution mode used to make the primitive query. It can be: + + * A `Backend` if you are using job mode. + * A [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") if you are using session execution mode. + * A [`Batch`](qiskit_ibm_runtime.Batch "qiskit_ibm_runtime.Batch") if you are using batch execution mode. + + Refer to the [Qiskit Runtime documentation](/guides/execution-modes). for more information about the `Execution modes`. + + * **options** (`Union`\[`Dict`, [`EstimatorOptions`](qiskit_ibm_runtime.options.EstimatorOptions "qiskit_ibm_runtime.options.estimator_options.EstimatorOptions"), `None`]) – Estimator options, see `EstimatorOptions` for detailed description. + + **Raises** + + **NotImplementedError** – If “q-ctrl” channel strategy is used. + + ## Attributes + + ### mode + + + Return the execution mode used by this primitive. + + **Return type** + + Optional\[[Session](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") | [Batch](qiskit_ibm_runtime.Batch "qiskit_ibm_runtime.Batch")] + + **Returns** + + Mode used by this primitive, or `None` if an execution mode is not used. + + + ### options + + + Return options + + **Return type** + + `TypeVar`(`OptionsT`, bound= `BaseOptions`) + + + ### version + + + + ## Methods + + ### run + + + Submit a request to the estimator primitive. + + **Parameters** + + * **pubs** (*Iterable\[EstimatorPubLike]*) – An iterable of pub-like (primitive unified bloc) objects, such as tuples `(circuit, observables)` or `(circuit, observables, parameter_values)`. + * **precision** (*float | None*) – The target precision for expectation value estimates of each run Estimator Pub that does not specify its own precision. If None the estimator’s default precision value will be used. + + **Return type** + + [RuntimeJobV2](qiskit_ibm_runtime.RuntimeJobV2 "qiskit_ibm_runtime.RuntimeJobV2") + + **Returns** + + Submitted job. + + **Raises** + + **ValueError** – if precision value is not strictly greater than 0. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.IBMBackend.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.IBMBackend.mdx new file mode 100644 index 00000000000..d9f78ec056b --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.IBMBackend.mdx @@ -0,0 +1,701 @@ +--- +title: IBMBackend +description: API reference for qiskit_ibm_runtime.IBMBackend +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.IBMBackend +--- + +# IBMBackend + + + Backend class interfacing with an IBM Quantum backend. + + + * You should not instantiate the `IBMBackend` class directly. Instead, use the methods provided by an [`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService") instance to retrieve and handle backends. + + + This class represents an IBM Quantum backend. Its attributes and methods provide information about the backend. For example, the [`status()`](#qiskit_ibm_runtime.IBMBackend.status "qiskit_ibm_runtime.IBMBackend.status") method returns a `BackendStatus` instance. The instance contains the `operational` and `pending_jobs` attributes, which state whether the backend is operational and also the number of jobs in the server queue for the backend, respectively: + + ```python + status = backend.status() + is_operational = status.operational + jobs_in_queue = status.pending_jobs + ``` + + Here is list of attributes available on the `IBMBackend` class: + + > * name: backend name. + > + > * backend\_version: backend version in the form X.Y.Z. + > + > * num\_qubits: number of qubits. + > + > * target: A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + > + > * basis\_gates: list of basis gates names on the backend. + > + > * gates: list of basis gates on the backend. + > + > * local: backend is local or remote. + > + > * simulator: backend is a simulator. + > + > * conditional: backend supports conditional operations. + > + > * open\_pulse: backend supports open pulse. + > + > * memory: backend supports memory. + > + > * max\_shots: maximum number of shots supported. + > + > * coupling\_map (list): The coupling map for the device + > + > * supported\_instructions (List\[str]): Instructions supported by the backend. + > + > * dynamic\_reprate\_enabled (bool): whether delay between primitives can be set dynamically (ie via `rep_delay`). Defaults to False. + > + > * rep\_delay\_range (List\[float]): 2d list defining supported range of repetition delays for backend in μs. First entry is lower end of the range, second entry is higher end of the range. Optional, but will be specified when `dynamic_reprate_enabled=True`. + > + > * default\_rep\_delay (float): Value of `rep_delay` if not specified by user and `dynamic_reprate_enabled=True`. + > + > * n\_uchannels: Number of u-channels. + > + > * u\_channel\_lo: U-channel relationship on device los. + > + > * meas\_levels: Supported measurement levels. + > + > * qubit\_lo\_range: Qubit lo ranges for each qubit with form (min, max) in GHz. + > + > * meas\_lo\_range: Measurement lo ranges for each qubit with form (min, max) in GHz. + > + > * dt: Qubit drive channel timestep in nanoseconds. + > + > * dtm: Measurement drive channel timestep in nanoseconds. + > + > * rep\_times: Supported repetition times (program execution time) for backend in μs. + > + > * meas\_kernels: Supported measurement kernels. + > + > * discriminators: Supported discriminators. + > + > * hamiltonian: An optional dictionary with fields characterizing the system hamiltonian. + > + > * channel\_bandwidth (list): Bandwidth of all channels (qubit, measurement, and U) + > + > * acquisition\_latency (list): Array of dimension n\_qubits x n\_registers. Latency (in units of dt) to write a measurement result from qubit n into register slot m. + > + > * conditional\_latency (list): Array of dimension n\_channels \[d->u->m] x n\_registers. Latency (in units of dt) to do a conditional operation on channel n from register slot m + > + > * meas\_map (list): Grouping of measurement which are multiplexed + > + > * max\_circuits (int): The maximum number of experiments per job + > + > * sample\_name (str): Sample name for the backend + > + > * n\_registers (int): Number of register slots available for feedback (if conditional is True) + > + > * register\_map (list): An array of dimension n\_qubits X n\_registers that specifies whether a qubit can store a measurement in a certain register slot. + > + > * configurable (bool): True if the backend is configurable, if the backend is a simulator + > + > * credits\_required (bool): True if backend requires credits to run a job. + > + > * online\_date (datetime): The date that the device went online + > + > * display\_name (str): Alternate name field for the backend + > + > * description (str): A description for the backend + > + > * tags (list): A list of string tags to describe the backend + > + > * version: version of `Backend` class (Ex: 1, 2) + > + > * channels: An optional dictionary containing information of each channel – their purpose, type, and qubits operated on. + > + > * parametric\_pulses (list): A list of pulse shapes which are supported on the backend. For example: `['gaussian', 'constant']` + > + > * processor\_type (dict): Processor type for this backend. A dictionary of the form `{"family": , "revision": , segment: }` such as `{"family": "Canary", "revision": "1.0", segment: "A"}`. + > + > > * family: Processor family of this backend. + > > * revision: Revision version of this processor. + > > * segment: Segment this processor belongs to within a larger chip. + + IBMBackend constructor. + + **Parameters** + + * **configuration** (`Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`]) – Backend configuration. + * **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – Instance of QiskitRuntimeService. + * **api\_client** (`RuntimeClient`) – IBM client used to communicate with the server. + + ## Attributes + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Returns** + + The output signal timestep in seconds. + + **Return type** + + dtm + + + ### id\_warning\_issued + + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + The maximum number of circuits + + The maximum number of circuits (or Pulse schedules) that can be run in a single job. If there is no limit this will return None. + + **Return type** + + `int` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The grouping of measurements which are multiplexed + + **Return type** + + meas\_map + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.IBMBackend.run "qiskit_ibm_runtime.IBMBackend.run") method. + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### service + + + Return the `service` object + + **Returns** + + instance of QiskitRuntimeService + + **Return type** + + service + + + ### session + + + Return session + + **Return type** + + `Session` + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + [`Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") + + **Returns** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### \_\_call\_\_ + + + Call self as a function. + + **Return type** + + [`IBMBackend`](#qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend") + + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### cancel\_session + + + Cancel session. All pending jobs will be cancelled. + + **Return type** + + `None` + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### close\_session + + + Close the session so new jobs will no longer be accepted, but existing queued or running jobs will run to completion. The session will be terminated once there are no more pending jobs. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + Backend configuration contains fixed information about the backend, such as its name, number of qubits, basis gates, coupling map, quantum volume, etc. + + The schema for backend configuration can be found in [Qiskit/ibm-quantum-schemas/backend\_configuration](https://github.com/Qiskit/ibm-quantum-schemas/blob/main/schemas/backend_configuration_schema.json). + + More details about backend configuration properties can be found here [QasmBackendConfiguration](/api/qiskit/qiskit.providers.models.QasmBackendConfiguration). + + **IBM backends may also include the following properties:** + + * **`supported_features`: a list of strings of supported features like “qasm3” for dynamic** + + circuits support. + + * **`parallel_compilation`: a boolean of whether or not the backend can process multiple** + + jobs at once. Parts of the classical computation will be parallelized. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + **Returns** + + The configuration for the backend. + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend. + + The schema for default pulse configuration can be found in [Qiskit/ibm-quantum-schemas/default\_pulse\_configuration](https://github.com/Qiskit/ibm-quantum-schemas/blob/main/schemas/default_pulse_configuration_schema.json). + + **Parameters** + + **refresh** (`bool`) – If `True`, re-query the server for the backend pulse defaults. Otherwise, return a cached version. + + **Return type** + + `Optional`\[`PulseDefaults`] + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### get\_translation\_stage\_plugin + + + Return the default translation stage plugin name for IBM backends. + + **Return type** + + `str` + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### open\_session + + + Open session + + **Return type** + + `Session` + + + ### properties + + + Return the backend properties, subject to optional filtering. + + This data describes qubits properties (such as T1 and T2), gates properties (such as gate length and error), and other general properties of the backend. + + The schema for backend properties can be found in [Qiskit/ibm-quantum-schemas/backend\_properties](https://github.com/Qiskit/ibm-quantum-schemas/blob/main/schemas/backend_properties_schema.json). + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-query the server for the backend properties. Otherwise, return a cached version. + * **datetime** (`Optional`\[`datetime`]) – By specifying datetime, this function returns an instance of the `BackendProperties` whose timestamp is closest to, but older than, the specified datetime. Note that this is only supported using `ibm_quantum` runtime. + + **Return type** + + `Optional`\[`BackendProperties`] + + **Returns** + + The backend properties or `None` if the backend properties are not currently available. + + **Raises** + + * **TypeError** – If an input argument is not of the correct type. + * **NotImplementedError** – If datetime is specified when cloud runtime is used. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### run + + + Run on the backend. If a keyword specified here is also present in the `options` attribute/object, the value specified here will be used for this run. + + **Parameters** + + * **circuits** (`Union`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), `str`, `List`\[`Union`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), `str`]]]) – An individual or a list of `QuantumCircuit`. + + * **dynamic** (`Optional`\[`bool`]) – Whether the circuit is dynamic (uses in-circuit conditionals) + + * **job\_tags** (`Optional`\[`List`\[`str`]]) – Tags to be assigned to the job. The tags can subsequently be used as a filter in the `jobs()` function call. + + * **init\_circuit** (`Optional`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")]) – A quantum circuit to execute for initializing qubits before each circuit. If specified, `init_num_resets` is ignored. Applicable only if `dynamic=True` is specified. + + * **init\_num\_resets** (`Optional`\[`int`]) – The number of qubit resets to insert before each circuit execution. + + * **header** (`Optional`\[`Dict`]) – User input that will be attached to the job and will be copied to the corresponding result header. Headers do not affect the run. This replaces the old `Qobj` header. This parameter is applicable only if `dynamic=False` is specified or defaulted to. + + * **shots** (`Union`\[`int`, `float`, `None`]) – Number of repetitions of each circuit, for sampling. Default: 4000 or `max_shots` from the backend configuration, whichever is smaller. This parameter is applicable only if `dynamic=False` is specified or defaulted to. + + * **memory** (`Optional`\[`bool`]) – If `True`, per-shot measurement bitstrings are returned as well (provided the backend supports it). For OpenPulse jobs, only measurement level 2 supports this option. This parameter is applicable only if `dynamic=False` is specified or defaulted to. + + * **meas\_level** (`Union`\[`int`, `MeasLevel`, `None`]) – + + Level of the measurement output for pulse experiments. See [OpenPulse specification](https://arxiv.org/pdf/1809.03452.pdf) for details: + + * `0`, measurements of the raw signal (the measurement output pulse envelope) + * `1`, measurement kernel is selected (a complex number obtained after applying the measurement kernel to the measurement output signal) + * `2` (default), a discriminator is selected and the qubit state is stored (0 or 1) + + This parameter is applicable only if `dynamic=False` is specified or defaulted to. + + * **meas\_return** (`Union`\[`str`, `MeasReturnType`, `None`]) – + + Level of measurement data for the backend to return. For `meas_level` 0 and 1: + + * `single` returns information from every shot. + * `avg` returns average measurement output (averaged over number of shots). + + This parameter is applicable only if `dynamic=False` is specified or defaulted to. + + * **rep\_delay** (`Optional`\[`float`]) – Delay between primitives in seconds. Only supported on certain backends (if `backend.configuration().dynamic_reprate_enabled=True`). If supported, `rep_delay` must be from the range supplied by the backend (`backend.configuration().rep_delay_range`). Default is given by `backend.configuration().default_rep_delay`. This parameter is applicable only if `dynamic=False` is specified or defaulted to. + + * **init\_qubits** (`Optional`\[`bool`]) – Whether to reset the qubits to the ground state for each shot. Default: `True`. This parameter is applicable only if `dynamic=False` is specified or defaulted to. + + * **use\_measure\_esp** (`Optional`\[`bool`]) – Whether to use excited state promoted (ESP) readout for measurements which are the terminal instruction to a qubit. ESP readout can offer higher fidelity than standard measurement sequences. See [here](https://arxiv.org/pdf/2008.08571.pdf). Default: `True` if backend supports ESP readout, else `False`. Backend support for ESP readout is determined by the flag `measure_esp_enabled` in `backend.configuration()`. This parameter is applicable only if `dynamic=False` is specified or defaulted to. + + * **noise\_model** (`Optional`\[`Any`]) – Noise model (Simulators only). This parameter is applicable only if `dynamic=False` is specified or defaulted to. + + * **seed\_simulator** (`Optional`\[`int`]) – Random seed to control sampling (Simulators only). This parameter is applicable only if `dynamic=False` is specified or defaulted to. + + * **\*\*run\_config** – Extra arguments used to configure the run. This parameter is applicable only if `dynamic=False` is specified or defaulted to. + + **Return type** + + [`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.runtime_job.RuntimeJob") + + **Returns** + + The job to be executed. + + **Raises** + + * **IBMBackendApiError** – If an unexpected error occurred while submitting the job. + + * **IBMBackendApiProtocolError** – If an unexpected value received from the server. + + * **IBMBackendValueError** – + + * If an input parameter value is not valid. - If ESP readout is used and the backend does not support this. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + + If the returned `BackendStatus` instance has `operational=True` but `status_msg="internal"`, then the backend is accepting jobs but not processing them. + + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + **Raises** + + **IBMBackendApiProtocolError** – If the status for the backend cannot be formatted properly. + + + ### target\_history + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + [`Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") + + **Returns** + + Target with properties found on datetime + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.QiskitRuntimeService.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.QiskitRuntimeService.mdx new file mode 100644 index 00000000000..beacdc6b681 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.QiskitRuntimeService.mdx @@ -0,0 +1,391 @@ +--- +title: QiskitRuntimeService +description: API reference for qiskit_ibm_runtime.QiskitRuntimeService +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.QiskitRuntimeService +--- + +# QiskitRuntimeService + + + Class for interacting with the Qiskit Runtime service. + + QiskitRuntimeService constructor + + An account is selected in the following order: + + > * Account with the input name, if specified. + > * Default account for the channel type, if channel is specified but token is not. + > * Account defined by the input channel and token, if specified. + > * Account defined by the default\_channel if defined in filename + > * Account defined by the environment variables, if defined. + > * Default account for the `ibm_cloud` account, if one is available. + > * Default account for the `ibm_quantum` account, if one is available. + + instance, proxies, and verify can be used to overwrite corresponding values in the loaded account. + + **Parameters** + + * **channel** (`Optional`\[`Literal`\[‘ibm\_cloud’, ‘ibm\_quantum’, ‘local’]]) – Channel type. `ibm_cloud`, `ibm_quantum` or `local`. If `local` is selected, the local testing mode will be used, and primitive queries will run on a local simulator. For more details, check the [Qiskit Runtime local testing mode](/guides/local-testing-mode) documentation. + * **token** (`Optional`\[`str`]) – IBM Cloud API key or IBM Quantum API token. + * **url** (`Optional`\[`str`]) – The API URL. Defaults to [https://cloud.ibm.com](https://cloud.ibm.com) (ibm\_cloud) or [https://auth.quantum-computing.ibm.com/api](https://auth.quantum-computing.ibm.com/api) (ibm\_quantum). + * **filename** (`Optional`\[`str`]) – Full path of the file where the account is created. Default: \_DEFAULT\_ACCOUNT\_CONFIG\_JSON\_FILE + * **name** (`Optional`\[`str`]) – Name of the account to load. + * **instance** (`Optional`\[`str`]) – The service instance to use. For `ibm_cloud` runtime, this is the Cloud Resource Name (CRN) or the service name. For `ibm_quantum` runtime, this is the hub/group/project in that format. + * **proxies** (`Optional`\[`dict`]) – Proxy configuration. Supported optional keys are `urls` (a dictionary mapping protocol or protocol and host to the URL of the proxy, documented at [https://docs.python-requests.org/en/latest/api/#requests.Session.proxies](https://docs.python-requests.org/en/latest/api/#requests.Session.proxies)), `username_ntlm`, `password_ntlm` (username and password to enable NTLM user authentication) + * **verify** (`Optional`\[`bool`]) – Whether to verify the server’s TLS certificate. + * **channel\_strategy** (`Optional`\[`str`]) – (DEPRECATED) Error mitigation strategy. + * **private\_endpoint** (`Optional`\[`bool`]) – Connect to private API URL. + * **url\_resolver** (`Optional`\[`Callable`\[\[`str`, `str`, `Optional`\[`bool`]], `str`]]) – Function used to resolve the runtime url. + + **Returns** + + An instance of QiskitRuntimeService or QiskitRuntimeLocalService for local channel. + + **Raises** + + **IBMInputValueError** – If an input is invalid. + + ## Attributes + + ### channel + + + Return the channel type used. + + **Return type** + + `str` + + **Returns** + + The channel type used. + + + ### global\_service + + + + ## Methods + + ### active\_account + + + Return the IBM Quantum account currently in use for the session. + + **Return type** + + `Optional`\[`Dict`\[`str`, `str`]] + + **Returns** + + A dictionary with information about the account currently in the session. + + + ### backend + + + Return a single backend matching the specified filtering. + + **Parameters** + + * **name** (`str`) – Name of the backend. + * **instance** (`Optional`\[`str`]) – This is only supported for `ibm_quantum` runtime and is in the hub/group/project format. If an instance is not given, among the providers with access to the backend, a premium provider will be prioritized. For users without access to a premium provider, the default open provider will be used. + * **use\_fractional\_gates** (`Optional`\[`bool`]) – Set True to allow for the backends to include fractional gates in target. Currently this feature cannot be used simulataneously with dynamic circuits, PEC, PEA, or gate twirling. When this flag is set, control flow instructions are automatically removed from the backend target. When you use the dynamic circuits feature (e.g. if\_else) in your algorithm, you must disable this flag to create executable ISA circuits. This flag might be modified or removed when our backend supports dynamic circuits and fractional gates simultaneously. If `None`, then both fractional gates and control flow operations are included in the backend targets. + + **Returns** + + A backend matching the filtering. + + **Return type** + + Backend + + **Raises** + + **QiskitBackendNotFoundError** – if no backend could be found. + + + ### backends + + + Return all backends accessible via this account, subject to optional filtering. + + **Parameters** + + * **name** (`Optional`\[`str`]) – Backend name to filter by. + + * **min\_num\_qubits** (`Optional`\[`int`]) – Minimum number of qubits the backend has to have. + + * **instance** (`Optional`\[`str`]) – This is only supported for `ibm_quantum` runtime and is in the hub/group/project format. + + * **dynamic\_circuits** (`Optional`\[`bool`]) – Filter by whether the backend supports dynamic circuits. + + * **filters** (`Optional`\[`Callable`\[\[[`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend")], `bool`]]) – + + More complex filters, such as lambda functions. For example: + + ```python + QiskitRuntimeService.backends( + filters=lambda b: b.max_shots > 50000 + ) + QiskitRuntimeService.backends( + filters=lambda x: ("rz" in x.basis_gates ) + ) + ``` + + * **use\_fractional\_gates** (`Optional`\[`bool`]) – Set True to allow for the backends to include fractional gates in target. Currently this feature cannot be used simulataneously with dynamic circuits, PEC, PEA, or gate twirling. When this flag is set, control flow instructions are automatically removed from the backend target. When you use the dynamic circuits feature (e.g. if\_else) in your algorithm, you must disable this flag to create executable ISA circuits. This flag might be modified or removed when our backend supports dynamic circuits and fractional gates simultaneously. If `None`, then both fractional gates and control flow operations are included in the backend targets. + + * **\*\*kwargs** – + + Simple filters that require a specific value for an attribute in backend configuration or status. Examples: + + ```python + # Get the operational real backends + QiskitRuntimeService.backends(simulator=False, operational=True) + + # Get the backends with at least 127 qubits + QiskitRuntimeService.backends(min_num_qubits=127) + + # Get the backends that support OpenPulse + QiskitRuntimeService.backends(open_pulse=True) + ``` + + For the full list of backend attributes, see the IBMBackend class documentation \<[api/qiskit/providers\_models](/api/qiskit/providers_models)> + + **Return type** + + `List`\[[`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend")] + + **Returns** + + The list of available backends that match the filter. + + **Raises** + + * **IBMInputValueError** – If an input is invalid. + * **QiskitBackendNotFoundError** – If the backend is not in any instance. + + + ### check\_pending\_jobs + + + Check the number of pending jobs and wait for the oldest pending job if the maximum number of pending jobs has been reached. + + **Return type** + + `None` + + + ### delete\_account + + + Delete a saved account from disk. + + **Parameters** + + * **filename** (`Optional`\[`str`]) – Name of file from which to delete the account. + * **name** (`Optional`\[`str`]) – Name of the saved account to delete. + * **channel** (`Optional`\[`Literal`\[‘ibm\_cloud’, ‘ibm\_quantum’, ‘local’]]) – Channel type of the default account to delete. Ignored if account name is provided. + + **Return type** + + `bool` + + **Returns** + + True if the account was deleted. False if no account was found. + + + ### delete\_job + + + Delete a runtime job. + + Note that this operation cannot be reversed. + + **Parameters** + + **job\_id** (`str`) – ID of the job to delete. + + **Raises** + + * **RuntimeJobNotFound** – If the job doesn’t exist. + * **IBMRuntimeError** – If the request failed. + + **Return type** + + `None` + + + ### instances + + + Return the IBM Quantum instances list currently in use for the session. + + **Return type** + + `List`\[`str`] + + **Returns** + + A list with instances currently in the session. + + + ### job + + + Retrieve a runtime job. + + **Parameters** + + **job\_id** (`str`) – Job ID. + + **Return type** + + `Union`\[[`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.runtime_job.RuntimeJob"), [`RuntimeJobV2`](qiskit_ibm_runtime.RuntimeJobV2 "qiskit_ibm_runtime.runtime_job_v2.RuntimeJobV2")] + + **Returns** + + Runtime job retrieved. + + **Raises** + + * **RuntimeJobNotFound** – If the job doesn’t exist. + * **IBMRuntimeError** – If the request failed. + + + ### jobs + + + Retrieve all runtime jobs, subject to optional filtering. + + **Parameters** + + * **limit** (`Optional`\[`int`]) – Number of jobs to retrieve. `None` means no limit. + * **skip** (`int`) – Starting index for the job retrieval. + * **backend\_name** (`Optional`\[`str`]) – Name of the backend to retrieve jobs from. + * **pending** (`Optional`\[`bool`]) – Filter by job pending state. If `True`, ‘QUEUED’ and ‘RUNNING’ jobs are included. If `False`, ‘DONE’, ‘CANCELLED’ and ‘ERROR’ jobs are included. + * **program\_id** (`Optional`\[`str`]) – Filter by Program ID. + * **instance** (`Optional`\[`str`]) – This is only supported for `ibm_quantum` runtime and is in the hub/group/project format. + * **job\_tags** (`Optional`\[`List`\[`str`]]) – Filter by tags assigned to jobs. Matched jobs are associated with all tags. + * **session\_id** (`Optional`\[`str`]) – Job ID of the first job in a runtime session. + * **created\_after** (`Optional`\[`datetime`]) – Filter by the given start date, in local time. This is used to find jobs whose creation dates are after (greater than or equal to) this local date/time. + * **created\_before** (`Optional`\[`datetime`]) – Filter by the given end date, in local time. This is used to find jobs whose creation dates are before (less than or equal to) this local date/time. + * **descending** (`bool`) – If `True`, return the jobs in descending order of the job creation date (i.e. newest first) until the limit is reached. + + **Return type** + + `List`\[`Union`\[[`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.runtime_job.RuntimeJob"), [`RuntimeJobV2`](qiskit_ibm_runtime.RuntimeJobV2 "qiskit_ibm_runtime.runtime_job_v2.RuntimeJobV2")]] + + **Returns** + + A list of runtime jobs. + + **Raises** + + **IBMInputValueError** – If an input value is invalid. + + + ### least\_busy + + + Return the least busy available backend. + + **Parameters** + + * **min\_num\_qubits** (`Optional`\[`int`]) – Minimum number of qubits the backend has to have. + + * **instance** (`Optional`\[`str`]) – This is only supported for `ibm_quantum` runtime and is in the hub/group/project format. + + * **filters** (`Optional`\[`Callable`\[\[[`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend")], `bool`]]) – + + Filters can be defined as for the [`backends()`](#qiskit_ibm_runtime.QiskitRuntimeService.backends "qiskit_ibm_runtime.QiskitRuntimeService.backends") method. An example to get the operational backends with 5 qubits: + + ```python + QiskitRuntimeService.least_busy(n_qubits=5, operational=True) + ``` + + **Return type** + + [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend") + + **Returns** + + The backend with the fewest number of pending jobs. + + **Raises** + + **QiskitBackendNotFoundError** – If no backend matches the criteria. + + + ### save\_account + + + Save the account to disk for future use. + + **Parameters** + + * **token** (`Optional`\[`str`]) – IBM Cloud API key or IBM Quantum API token. + * **url** (`Optional`\[`str`]) – The API URL. Defaults to [https://cloud.ibm.com](https://cloud.ibm.com) (ibm\_cloud) or [https://auth.quantum-computing.ibm.com/api](https://auth.quantum-computing.ibm.com/api) (ibm\_quantum). + * **instance** (`Optional`\[`str`]) – The CRN (ibm\_cloud) or hub/group/project (ibm\_quantum). + * **channel** (`Optional`\[`Literal`\[‘ibm\_cloud’, ‘ibm\_quantum’, ‘local’]]) – Channel type. ibm\_cloud or ibm\_quantum. + * **filename** (`Optional`\[`str`]) – Full path of the file where the account is saved. + * **name** (`Optional`\[`str`]) – Name of the account to save. + * **proxies** (`Optional`\[`dict`]) – Proxy configuration. Supported optional keys are `urls` (a dictionary mapping protocol or protocol and host to the URL of the proxy, documented at [https://docs.python-requests.org/en/latest/api/#requests.Session.proxies](https://docs.python-requests.org/en/latest/api/#requests.Session.proxies)), `username_ntlm`, `password_ntlm` (username and password to enable NTLM user authentication) + * **verify** (`Optional`\[`bool`]) – Verify the server’s TLS certificate. + * **overwrite** (`Optional`\[`bool`]) – `True` if the existing account is to be overwritten. + * **channel\_strategy** (`Optional`\[`str`]) – (DEPRECATED) Error mitigation strategy. + * **set\_as\_default** (`Optional`\[`bool`]) – If `True`, the account is saved in filename, as the default account. + * **private\_endpoint** (`Optional`\[`bool`]) – Connect to private API URL. + + **Return type** + + `None` + + + ### saved\_accounts + + + List the accounts saved on disk. + + **Parameters** + + * **default** (`Optional`\[`bool`]) – If set to True, only default accounts are returned. + * **channel** (`Optional`\[`Literal`\[‘ibm\_cloud’, ‘ibm\_quantum’, ‘local’]]) – Channel type. ibm\_cloud or ibm\_quantum. + * **filename** (`Optional`\[`str`]) – Name of file whose accounts are returned. + * **name** (`Optional`\[`str`]) – If set, only accounts with the given name are returned. + + **Return type** + + `dict` + + **Returns** + + A dictionary with information about the accounts saved on disk. + + **Raises** + + **ValueError** – If an invalid account is found on disk. + + + ### usage + + + Return monthly open plan usage information. + + **Return type** + + `Dict`\[`str`, `Any`] + + **Returns** + + Dict with usage details. + + **Raises** + + **IBMInputValueError** – If method is called when using the ibm\_cloud channel + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.RuntimeDecoder.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.RuntimeDecoder.mdx new file mode 100644 index 00000000000..84e3da73a73 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.RuntimeDecoder.mdx @@ -0,0 +1,52 @@ +--- +title: RuntimeDecoder +description: API reference for qiskit_ibm_runtime.RuntimeDecoder +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.RuntimeDecoder +--- + +# RuntimeDecoder + + + JSON Decoder used by runtime service. + + `object_hook`, if specified, will be called with the result of every JSON object decoded and its return value will be used in place of the given `dict`. This can be used to provide custom deserializations (e.g. to support JSON-RPC class hinting). + + `object_pairs_hook`, if specified will be called with the result of every JSON object decoded with an ordered list of pairs. The return value of `object_pairs_hook` will be used instead of the `dict`. This feature can be used to implement custom decoders. If `object_hook` is also defined, the `object_pairs_hook` takes priority. + + `parse_float`, if specified, will be called with the string of every JSON float to be decoded. By default this is equivalent to float(num\_str). This can be used to use another datatype or parser for JSON floats (e.g. decimal.Decimal). + + `parse_int`, if specified, will be called with the string of every JSON int to be decoded. By default this is equivalent to int(num\_str). This can be used to use another datatype or parser for JSON integers (e.g. float). + + `parse_constant`, if specified, will be called with one of the following strings: -Infinity, Infinity, NaN. This can be used to raise an exception if invalid JSON numbers are encountered. + + If `strict` is false (true is the default), then control characters will be allowed inside strings. Control characters in this context are those with character codes in the 0-31 range, including `'\t'` (tab), `'\n'`, `'\r'` and `'\0'`. + + ## Methods + + ### decode + + + Return the Python representation of `s` (a `str` instance containing a JSON document). + + + ### object\_hook + + + Called to decode object. + + **Return type** + + `Any` + + + ### raw\_decode + + + Decode a JSON document from `s` (a `str` beginning with a JSON document) and return a 2-tuple of the Python representation and the index in `s` where the document ended. + + This can be used to decode a JSON document from a string that may have extraneous data at the end. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.RuntimeEncoder.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.RuntimeEncoder.mdx new file mode 100644 index 00000000000..a7b1f6ea6bd --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.RuntimeEncoder.mdx @@ -0,0 +1,93 @@ +--- +title: RuntimeEncoder +description: API reference for qiskit_ibm_runtime.RuntimeEncoder +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.RuntimeEncoder +--- + +# RuntimeEncoder + + + JSON Encoder used by runtime service. + + Constructor for JSONEncoder, with sensible defaults. + + If skipkeys is false, then it is a TypeError to attempt encoding of keys that are not str, int, float or None. If skipkeys is True, such items are simply skipped. + + If ensure\_ascii is true, the output is guaranteed to be str objects with all incoming non-ASCII characters escaped. If ensure\_ascii is false, the output can contain non-ASCII characters. + + If check\_circular is true, then lists, dicts, and custom encoded objects will be checked for circular references during encoding to prevent an infinite recursion (which would cause an RecursionError). Otherwise, no such check takes place. + + If allow\_nan is true, then NaN, Infinity, and -Infinity will be encoded as such. This behavior is not JSON specification compliant, but is consistent with most JavaScript based encoders and decoders. Otherwise, it will be a ValueError to encode such floats. + + If sort\_keys is true, then the output of dictionaries will be sorted by key; this is useful for regression tests to ensure that JSON serializations can be compared on a day-to-day basis. + + If indent is a non-negative integer, then JSON array elements and object members will be pretty-printed with that indent level. An indent level of 0 will only insert newlines. None is the most compact representation. + + If specified, separators should be an (item\_separator, key\_separator) tuple. The default is (’, ‘, ‘: ‘) if *indent* is `None` and (‘,’, ‘: ‘) otherwise. To get the most compact JSON representation, you should specify (‘,’, ‘:’) to eliminate whitespace. + + If specified, default is a function that gets called for objects that can’t otherwise be serialized. It should return a JSON encodable version of the object or raise a `TypeError`. + + ## Attributes + + ### item\_separator + + + + ### key\_separator + + + + ## Methods + + ### default + + + Implement this method in a subclass such that it returns a serializable object for `o`, or calls the base implementation (to raise a `TypeError`). + + For example, to support arbitrary iterators, you could implement default like this: + + ```python + def default(self, o): + try: + iterable = iter(o) + except TypeError: + pass + else: + return list(iterable) + # Let the base class default method raise the TypeError + return JSONEncoder.default(self, o) + ``` + + **Return type** + + `Any` + + + ### encode + + + Return a JSON string representation of a Python data structure. + + ```python + >>> from json.encoder import JSONEncoder + >>> JSONEncoder().encode({"foo": ["bar", "baz"]}) + '{"foo": ["bar", "baz"]}' + ``` + + + ### iterencode + + + Encode the given object and yield each string representation as available. + + For example: + + ```python + for chunk in JSONEncoder().iterencode(bigobject): + mysocket.write(chunk) + ``` + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.RuntimeJob.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.RuntimeJob.mdx new file mode 100644 index 00000000000..98e3ba1a7ad --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.RuntimeJob.mdx @@ -0,0 +1,539 @@ +--- +title: RuntimeJob +description: API reference for qiskit_ibm_runtime.RuntimeJob +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.RuntimeJob +--- + +# RuntimeJob + + + Representation of a runtime primitive execution. + + A new `RuntimeJob` instance is returned when you call `QiskitRuntimeService.run` to execute a runtime primitive, or [`QiskitRuntimeService.job`](qiskit_ibm_runtime.QiskitRuntimeService#job "qiskit_ibm_runtime.QiskitRuntimeService.job") to retrieve a previously executed job. + + If the primitive execution is successful, you can inspect the job’s status by calling [`status()`](#qiskit_ibm_runtime.RuntimeJob.status "qiskit_ibm_runtime.RuntimeJob.status"). Job status can be one of the [`JobStatus`](/api/qiskit/qiskit.providers.JobStatus "(in Qiskit v1.2)") members. + + Some of the methods in this class are blocking, which means control may not be returned immediately. [`result()`](#qiskit_ibm_runtime.RuntimeJob.result "qiskit_ibm_runtime.RuntimeJob.result") is an example of a blocking method: + + ```python + job = service.run(...) + + try: + job_result = job.result() # It will block until the job finishes. + print("The job finished with result {}".format(job_result)) + except RuntimeJobFailureError as ex: + print("Job failed!: {}".format(ex)) + ``` + + If the primitive has any interim results, you can use the `callback` parameter of the `run()` method to stream the interim results along with the final result. Alternatively, you can use the [`stream_results()`](#qiskit_ibm_runtime.RuntimeJob.stream_results "qiskit_ibm_runtime.RuntimeJob.stream_results") method to stream the results at a later time, but before the job finishes. + + RuntimeJob constructor. + + **Parameters** + + * **backend** ([`Backend`](/api/qiskit/qiskit.providers.Backend "(in Qiskit v1.2)")) – The backend instance used to run this job. + * **api\_client** (`RuntimeClient`) – Object for connecting to the server. + * **client\_params** (`ClientParameters`) – Parameters used for server connection. + * **job\_id** (`str`) – Job ID. + * **program\_id** (`str`) – ID of the program this job is for. + * **creation\_date** (`Optional`\[`str`]) – Job creation date, in UTC. + * **user\_callback** (`Optional`\[`Callable`]) – User callback function. + * **result\_decoder** (`Union`\[`Type`\[`ResultDecoder`], `Sequence`\[`Type`\[`ResultDecoder`]], `None`]) – A `ResultDecoder` subclass used to decode job results. + * **image** (`Optional`\[`str`]) – Runtime image used for this job: image\_name:tag. + * **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – Runtime service. + * **session\_id** (`Optional`\[`str`]) – Job ID of the first job in a runtime session. + * **tags** (`Optional`\[`List`]) – Tags assigned to the job. + * **version** (`Optional`\[`int`]) – Primitive version. + + ## Attributes + + ### ERROR + + + + ### JOB\_FINAL\_STATES + + + + ### creation\_date + + + Job creation date in local time. + + **Return type** + + `Optional`\[`datetime`] + + **Returns** + + The job creation date as a datetime object, in local time, or `None` if creation date is not available. + + + ### image + + + Return the runtime image used for the job. + + **Returns** + + image\_name:tag or “” if the default image is used. + + **Return type** + + Runtime image + + + ### inputs + + + Job input parameters. + + **Return type** + + `Dict` + + **Returns** + + Input parameters used in this job. + + + ### instance + + + For ibm\_quantum channel jobs, return the instance where the job was run. For ibm\_cloud, None is returned. + + **Return type** + + `Optional`\[`str`] + + + ### primitive\_id + + + Primitive name. :rtype: `str` :returns: Primitive this job is for. + + + ### session\_id + + + Session ID. + + **Return type** + + `str` + + **Returns** + + Session ID. None if the backend is a simulator. + + + ### tags + + + Job tags. + + **Return type** + + `List` + + **Returns** + + Tags assigned to the job that can be used for filtering. + + + ### usage\_estimation + + + Return the usage estimation infromation for this job. + + **Return type** + + `Dict`\[`str`, `Any`] + + **Returns** + + `quantum_seconds` which is the estimated system execution time of the job in seconds. Quantum time represents the time that the system is dedicated to processing your job. + + + ### version + + + + ## Methods + + ### backend + + + Return the backend where this job was executed. Retrieve data again if backend is None. + + **Raises** + + **IBMRuntimeError** – If a network error occurred. + + **Return type** + + `Optional`\[[`Backend`](/api/qiskit/qiskit.providers.Backend "(in Qiskit v1.2)")] + + + ### cancel + + + Cancel the job. + + **Raises** + + * **RuntimeInvalidStateError** – If the job is in a state that cannot be cancelled. + * **IBMRuntimeError** – If unable to cancel job. + + **Return type** + + `None` + + + ### cancel\_result\_streaming + + + Cancel result streaming. + + **Return type** + + `None` + + + ### cancelled + + + Return whether the job has been cancelled. + + **Return type** + + `bool` + + + ### done + + + Return whether the job has successfully run. + + **Return type** + + `bool` + + + ### error\_message + + + Returns the reason if the job failed. + + **Return type** + + `Optional`\[`str`] + + **Returns** + + Error message string or `None`. + + + ### errored + + + Return whether the job has failed. + + **Return type** + + `bool` + + + ### in\_final\_state + + + Return whether the job is in a final job state such as `DONE` or `ERROR`. + + **Return type** + + `bool` + + + ### interim\_results + + + Return the interim results of the job. + + **Parameters** + + **decoder** (`Optional`\[`Type`\[`ResultDecoder`]]) – A `ResultDecoder` subclass used to decode interim results. + + **Return type** + + `Any` + + **Returns** + + Runtime job interim results. + + **Raises** + + **RuntimeJobFailureError** – If the job failed. + + + ### job\_id + + + Return a unique id identifying the job. + + **Return type** + + `str` + + + ### logs + + + Return job logs. + + + Job logs are only available after the job finishes. + + + **Return type** + + `str` + + **Returns** + + Job logs, including standard output and error. + + **Raises** + + **IBMRuntimeError** – If a network error occurred. + + + ### metrics + + + Return job metrics. + + **Returns** + + * `timestamps`: Timestamps of when the job was created, started running, and finished. + + * **`usage`: Details regarding job usage, the measurement of the amount of** + + time the QPU is locked for your workload. + + **Return type** + + A dictionary with job metrics including but not limited to the following + + **Raises** + + **IBMRuntimeError** – If a network error occurred. + + + ### properties + + + Return the backend properties for this job. + + **Parameters** + + **refresh** (`bool`) – If `True`, re-query the server for the backend properties. Otherwise, return a cached version. + + **Return type** + + `Optional`\[`BackendProperties`] + + **Returns** + + The backend properties used for this job, at the time the job was run, or `None` if properties are not available. + + + ### queue\_info + + + Return queue information for this job. + + The queue information may include queue position, estimated start and end time, and dynamic priorities for the hub, group, and project. See `QueueInfo` for more information. + + + The queue information is calculated after the job enters the queue. Therefore, some or all of the information may not be immediately available, and this method may return `None`. + + + **Return type** + + `Optional`\[`QueueInfo`] + + **Returns** + + A `QueueInfo` instance that contains queue information for this job, or `None` if queue information is unknown or not applicable. + + + ### queue\_position + + + Return the position of the job in the server queue. + + + The position returned is within the scope of the provider and may differ from the global queue position. + + + **Parameters** + + **refresh** (`bool`) – If `True`, re-query the server to get the latest value. Otherwise return the cached value. + + **Return type** + + `Optional`\[`int`] + + **Returns** + + Position in the queue or `None` if position is unknown or not applicable. + + + ### result + + + Return the results of the job. + + **Parameters** + + * **timeout** (`Optional`\[`float`]) – Number of seconds to wait for job. + * **decoder** (`Optional`\[`Type`\[`ResultDecoder`]]) – A `ResultDecoder` subclass used to decode job results. + + **Return type** + + `Any` + + **Returns** + + Runtime job result. + + **Raises** + + * **RuntimeJobFailureError** – If the job failed. + * **RuntimeJobMaxTimeoutError** – If the job does not complete within given timeout. + * **RuntimeInvalidStateError** – If the job was cancelled, and attempting to retrieve result. + + + ### running + + + Return whether the job is actively running. + + **Return type** + + `bool` + + + ### status + + + Return the status of the job. + + **Return type** + + [`JobStatus`](/api/qiskit/qiskit.providers.JobStatus "(in Qiskit v1.2)") + + **Returns** + + Status of this job. + + + ### stream\_results + + + Start streaming job results. + + **Parameters** + + * **callback** (`Callable`) – + + Callback function to be invoked for any interim results and final result. The callback function will receive 2 positional parameters: + + > 1. Job ID + > 2. Job result. + + * **decoder** (`Optional`\[`Type`\[`ResultDecoder`]]) – A `ResultDecoder` subclass used to decode job results. + + **Raises** + + **RuntimeInvalidStateError** – If a callback function is already streaming results or if the job already finished. + + **Return type** + + `None` + + + ### submit + + + Unsupported method. .. note: + + ```python + This method is not supported, please use + :meth:`~qiskit_ibm_runtime.QiskitRuntimeService.run` + to submit a job. + ``` + + **Raises** + + **NotImplementedError** – Upon invocation. + + **Return type** + + `None` + + + ### update\_tags + + + Update the tags associated with this job. + + **Parameters** + + **new\_tags** (`List`\[`str`]) – New tags to assign to the job. + + **Return type** + + `List`\[`str`] + + **Returns** + + The new tags associated with this job. + + **Raises** + + **IBMApiError** – If an unexpected error occurred when communicating with the server or updating the job tags. + + + ### usage + + + Return job usage in seconds. + + **Return type** + + `float` + + + ### wait\_for\_final\_state + + + Poll for the job status from the API until the status is in a final state. + + **Parameters** + + **timeout** (`Optional`\[`float`]) – Seconds to wait for the job. If `None`, wait indefinitely. + + **Raises** + + **RuntimeJobTimeoutError** – If the job does not complete within given timeout. + + **Return type** + + `None` + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.RuntimeJobV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.RuntimeJobV2.mdx new file mode 100644 index 00000000000..7020f198215 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.RuntimeJobV2.mdx @@ -0,0 +1,455 @@ +--- +title: RuntimeJobV2 +description: API reference for qiskit_ibm_runtime.RuntimeJobV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.RuntimeJobV2 +--- + +# RuntimeJobV2 + + + Representation of a runtime V2 primitive exeuction. + + RuntimeJob constructor. + + **Parameters** + + * **backend** ([`Backend`](/api/qiskit/qiskit.providers.Backend "(in Qiskit v1.2)")) – The backend instance used to run this job. + * **api\_client** (`RuntimeClient`) – Object for connecting to the server. + * **client\_params** (`ClientParameters`) – Parameters used for server connection. + * **job\_id** (`str`) – Job ID. + * **program\_id** (`str`) – ID of the program this job is for. + * **creation\_date** (`Optional`\[`str`]) – Job creation date, in UTC. + * **user\_callback** (`Optional`\[`Callable`]) – User callback function. + * **result\_decoder** (`Union`\[`Type`\[`ResultDecoder`], `Sequence`\[`Type`\[`ResultDecoder`]], `None`]) – A `ResultDecoder` subclass used to decode job results. + * **image** (`Optional`\[`str`]) – Runtime image used for this job: image\_name:tag. + * **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – Runtime service. + * **session\_id** (`Optional`\[`str`]) – Job ID of the first job in a runtime session. + * **tags** (`Optional`\[`List`]) – Tags assigned to the job. + * **version** (`Optional`\[`int`]) – Primitive version. + + ## Attributes + + ### ERROR + + + + ### JOB\_FINAL\_STATES + + + + ### creation\_date + + + Job creation date in local time. + + **Return type** + + `Optional`\[`datetime`] + + **Returns** + + The job creation date as a datetime object, in local time, or `None` if creation date is not available. + + + ### image + + + Return the runtime image used for the job. + + **Returns** + + image\_name:tag or “” if the default image is used. + + **Return type** + + Runtime image + + + ### inputs + + + Job input parameters. + + **Return type** + + `Dict` + + **Returns** + + Input parameters used in this job. + + + ### instance + + + For ibm\_quantum channel jobs, return the instance where the job was run. For ibm\_cloud, None is returned. + + **Return type** + + `Optional`\[`str`] + + + ### primitive\_id + + + Primitive name. :rtype: `str` :returns: Primitive this job is for. + + + ### session\_id + + + Session ID. + + **Return type** + + `str` + + **Returns** + + Session ID. None if the backend is a simulator. + + + ### tags + + + Job tags. + + **Return type** + + `List` + + **Returns** + + Tags assigned to the job that can be used for filtering. + + + ### usage\_estimation + + + Return the usage estimation infromation for this job. + + **Return type** + + `Dict`\[`str`, `Any`] + + **Returns** + + `quantum_seconds` which is the estimated system execution time of the job in seconds. Quantum time represents the time that the system is dedicated to processing your job. + + + ## Methods + + ### backend + + + Return the backend where this job was executed. Retrieve data again if backend is None. + + **Raises** + + **IBMRuntimeError** – If a network error occurred. + + **Return type** + + `Optional`\[[`Backend`](/api/qiskit/qiskit.providers.Backend "(in Qiskit v1.2)")] + + + ### cancel + + + Cancel the job. + + **Raises** + + * **RuntimeInvalidStateError** – If the job is in a state that cannot be cancelled. + * **IBMRuntimeError** – If unable to cancel job. + + **Return type** + + `None` + + + ### cancel\_result\_streaming + + + Cancel result streaming. + + **Return type** + + `None` + + + ### cancelled + + + Return whether the job has been cancelled. + + **Return type** + + `bool` + + + ### done + + + Return whether the job has successfully run. + + **Return type** + + `bool` + + + ### error\_message + + + Returns the reason if the job failed. + + **Return type** + + `Optional`\[`str`] + + **Returns** + + Error message string or `None`. + + + ### errored + + + Return whether the job has failed. + + **Return type** + + `bool` + + + ### in\_final\_state + + + Return whether the job is in a final job state such as `DONE` or `ERROR`. + + **Return type** + + `bool` + + + ### interim\_results + + + Return the interim results of the job. + + **Parameters** + + **decoder** (`Optional`\[`Type`\[`ResultDecoder`]]) – A `ResultDecoder` subclass used to decode interim results. + + **Return type** + + `Any` + + **Returns** + + Runtime job interim results. + + **Raises** + + **RuntimeJobFailureError** – If the job failed. + + + ### job\_id + + + Return a unique id identifying the job. + + **Return type** + + `str` + + + ### logs + + + Return job logs. + + + Job logs are only available after the job finishes. + + + **Return type** + + `str` + + **Returns** + + Job logs, including standard output and error. + + **Raises** + + **IBMRuntimeError** – If a network error occurred. + + + ### metrics + + + Return job metrics. + + **Returns** + + * `timestamps`: Timestamps of when the job was created, started running, and finished. + + * **`usage`: Details regarding job usage, the measurement of the amount of** + + time the QPU is locked for your workload. + + **Return type** + + A dictionary with job metrics including but not limited to the following + + **Raises** + + **IBMRuntimeError** – If a network error occurred. + + + ### properties + + + Return the backend properties for this job. + + **Parameters** + + **refresh** (`bool`) – If `True`, re-query the server for the backend properties. Otherwise, return a cached version. + + **Return type** + + `Optional`\[`BackendProperties`] + + **Returns** + + The backend properties used for this job, at the time the job was run, or `None` if properties are not available. + + + ### result + + + Return the results of the job. + + **Parameters** + + * **timeout** (`Optional`\[`float`]) – Number of seconds to wait for job. + * **decoder** (`Optional`\[`Type`\[`ResultDecoder`]]) – A `ResultDecoder` subclass used to decode job results. + + **Return type** + + `Any` + + **Returns** + + Runtime job result. + + **Raises** + + * **RuntimeJobFailureError** – If the job failed. + * **RuntimeJobMaxTimeoutError** – If the job does not complete within given timeout. + * **RuntimeInvalidStateError** – If the job was cancelled, and attempting to retrieve result. + + + ### running + + + Return whether the job is actively running. + + **Return type** + + `bool` + + + ### status + + + Return the status of the job. + + **Return type** + + `Literal`\[‘INITIALIZING’, ‘QUEUED’, ‘RUNNING’, ‘CANCELLED’, ‘DONE’, ‘ERROR’] + + **Returns** + + Status of this job. + + + ### stream\_results + + + Start streaming job results. + + **Parameters** + + * **callback** (`Callable`) – + + Callback function to be invoked for any interim results and final result. The callback function will receive 2 positional parameters: + + > 1. Job ID + > 2. Job result. + + * **decoder** (`Optional`\[`Type`\[`ResultDecoder`]]) – A `ResultDecoder` subclass used to decode job results. + + **Raises** + + **RuntimeInvalidStateError** – If a callback function is already streaming results or if the job already finished. + + **Return type** + + `None` + + + ### update\_tags + + + Update the tags associated with this job. + + **Parameters** + + **new\_tags** (`List`\[`str`]) – New tags to assign to the job. + + **Return type** + + `List`\[`str`] + + **Returns** + + The new tags associated with this job. + + **Raises** + + **IBMApiError** – If an unexpected error occurred when communicating with the server or updating the job tags. + + + ### usage + + + Return job usage in seconds. + + **Return type** + + `float` + + + ### wait\_for\_final\_state + + + Poll for the job status from the API until the status is in a final state. + + **Parameters** + + **timeout** (`Optional`\[`float`]) – Seconds to wait for the job. If `None`, wait indefinitely. + + **Raises** + + **RuntimeJobTimeoutError** – If the job does not complete within given timeout. + + **Return type** + + `None` + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.Sampler.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.Sampler.mdx new file mode 100644 index 00000000000..817c1dde5f4 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.Sampler.mdx @@ -0,0 +1,14 @@ +--- +title: Sampler +description: API reference for qiskit_ibm_runtime.Sampler +in_page_toc_min_heading_level: 1 +python_api_type: attribute +python_api_name: qiskit_ibm_runtime.Sampler +--- + +# Sampler + + + alias of [`SamplerV2`](qiskit_ibm_runtime.SamplerV2 "qiskit_ibm_runtime.sampler.SamplerV2") + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.SamplerV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.SamplerV2.mdx new file mode 100644 index 00000000000..e9fb4eb837e --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.SamplerV2.mdx @@ -0,0 +1,95 @@ +--- +title: SamplerV2 +description: API reference for qiskit_ibm_runtime.SamplerV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.SamplerV2 +--- + +# SamplerV2 + + + Class for interacting with Qiskit Runtime Sampler primitive service. + + This class supports version 2 of the Sampler interface, which uses different input and output formats than version 1. + + Qiskit Runtime Sampler primitive returns the sampled result according to the specified output type. For example, it returns a bitstring for each shot if measurement level 2 (bits) is requested. + + The [`run()`](#qiskit_ibm_runtime.SamplerV2.run "qiskit_ibm_runtime.SamplerV2.run") method can be used to submit circuits and parameters to the Sampler primitive. + + Initializes the Sampler primitive. + + **Parameters** + + * **mode** (`Union`\[[`BackendV1`](/api/qiskit/qiskit.providers.BackendV1 "(in Qiskit v1.2)"), [`BackendV2`](/api/qiskit/qiskit.providers.BackendV2 "(in Qiskit v1.2)"), [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session"), [`Batch`](qiskit_ibm_runtime.Batch "qiskit_ibm_runtime.batch.Batch"), `str`, `None`]) – + + The execution mode used to make the primitive query. It can be: + + * A `Backend` if you are using job mode. + * A [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") if you are using session execution mode. + * A [`Batch`](qiskit_ibm_runtime.Batch "qiskit_ibm_runtime.Batch") if you are using batch execution mode. + + Refer to the [Qiskit Runtime documentation](/guides/execution-modes). for more information about the `Execution modes`. + + * **options** (`Union`\[`Dict`, [`SamplerOptions`](qiskit_ibm_runtime.options.SamplerOptions "qiskit_ibm_runtime.options.sampler_options.SamplerOptions"), `None`]) – Sampler options, see `SamplerOptions` for detailed description. + + **Raises** + + **NotImplementedError** – If “q-ctrl” channel strategy is used. + + ## Attributes + + ### mode + + + Return the execution mode used by this primitive. + + **Return type** + + Optional\[[Session](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") | [Batch](qiskit_ibm_runtime.Batch "qiskit_ibm_runtime.Batch")] + + **Returns** + + Mode used by this primitive, or `None` if an execution mode is not used. + + + ### options + + + Return options + + **Return type** + + `TypeVar`(`OptionsT`, bound= `BaseOptions`) + + + ### version + + + + ## Methods + + ### run + + + Submit a request to the sampler primitive. + + **Parameters** + + * **pubs** (*Iterable\[SamplerPubLike]*) – An iterable of pub-like objects. For example, a list of circuits or tuples `(circuit, parameter_values)`. + * **shots** (*int | None*) – The total number of shots to sample for each sampler pub that does not specify its own shots. If `None`, the primitive’s default shots value will be used, which can vary by implementation. + + **Return type** + + [RuntimeJobV2](qiskit_ibm_runtime.RuntimeJobV2 "qiskit_ibm_runtime.RuntimeJobV2") + + **Returns** + + Submitted job. The result of the job is an instance of `qiskit.primitives.containers.PrimitiveResult`. + + **Raises** + + **ValueError** – Invalid arguments are given. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.Session.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.Session.mdx new file mode 100644 index 00000000000..3128e0ef5c5 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.Session.mdx @@ -0,0 +1,214 @@ +--- +title: Session +description: API reference for qiskit_ibm_runtime.Session +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.Session +--- + +# Session + + + Class for creating a Qiskit Runtime session. + + A Qiskit Runtime `session` allows you to group a collection of iterative calls to the quantum computer. A session is started when the first job within the session is started. Subsequent jobs within the session are prioritized by the scheduler. + + You can open a Qiskit Runtime session using this `Session` class and submit jobs to one or more primitives. + + For example: + + ```python + from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister + from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager + from qiskit_ibm_runtime import Session, SamplerV2 as Sampler + + service = QiskitRuntimeService() + backend = service.least_busy(operational=True, simulator=False) + + # Bell Circuit + qr = QuantumRegister(2, name="qr") + cr = ClassicalRegister(2, name="cr") + qc = QuantumCircuit(qr, cr, name="bell") + qc.h(qr[0]) + qc.cx(qr[0], qr[1]) + qc.measure(qr, cr) + + pm = generate_preset_pass_manager(backend=backend, optimization_level=1) + isa_circuit = pm.run(qc) + + with Session(backend=backend) as session: + sampler = Sampler(session=session) + job = sampler.run([isa_circuit]) + pub_result = job.result()[0] + print(f"Sampler job ID: {job.job_id()}") + print(f"Counts: {pub_result.data.cr.get_counts()}") + ``` + + Session constructor. + + **Parameters** + + * **service** (`Optional`\[[`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")]) – (DEPRECATED) Optional instance of the `QiskitRuntimeService` class. If `None`, the service associated with the backend, if known, is used. Otherwise `QiskitRuntimeService()` is used to initialize your default saved account. + * **backend** (`Union`\[`str`, [`BackendV1`](/api/qiskit/qiskit.providers.BackendV1 "(in Qiskit v1.2)"), [`BackendV2`](/api/qiskit/qiskit.providers.BackendV2 "(in Qiskit v1.2)"), `None`]) – Instance of `Backend` class or string name of backend. Note that passing a backend name is deprecated. + * **max\_time** (`Union`\[`int`, `str`, `None`]) – Maximum amount of time, a runtime session can be open before being forcibly closed. Can be specified as seconds (int) or a string like “2h 30m 40s”. This value must be less than the [system imposed maximum](/guides/max-execution-time). + + **Raises** + + **ValueError** – If an input value is invalid. + + ## Attributes + + ### service + + + Return service associated with this session. + + **Return type** + + [`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService") + + **Returns** + + [`qiskit_ibm_runtime.QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService") associated with this session. + + + ### session\_id + + + Return the session ID. + + **Return type** + + `Optional`\[`str`] + + **Returns** + + Session ID. None if the backend is a simulator. + + + ## Methods + + ### backend + + + Return backend for this session. + + **Return type** + + `Optional`\[`str`] + + **Returns** + + Backend for this session. None if unknown. + + + ### cancel + + + Cancel all pending jobs in a session. + + **Return type** + + `None` + + + ### close + + + Close the session so new jobs will no longer be accepted, but existing queued or running jobs will run to completion. The session will be terminated once there are no more pending jobs. + + **Return type** + + `None` + + + ### details + + + Return session details. + + **Return type** + + `Optional`\[`Dict`\[`str`, `Any`]] + + **Returns** + + A dictionary with the sessions details. + + * `id`: id of the session. + * `backend_name`: backend used for the session. + * `interactive_timeout`: The maximum idle time (in seconds) between jobs that is allowed to occur before the session is deactivated. + * `max_time`: Maximum allowed time (in seconds) for the session, subject to plan limits. + * `active_timeout`: The maximum time (in seconds) a session can stay active. + * `state`: State of the session - open, active, inactive, or closed. + * `accepting_jobs`: Whether or not the session is accepting jobs. + * `last_job_started`: Timestamp of when the last job in the session started. + * `last_job_completed`: Timestamp of when the last job in the session completed. + * `started_at`: Timestamp of when the session was started. + * `closed_at`: Timestamp of when the session was closed. + * `activated_at`: Timestamp of when the session state was changed to active. + * `mode`: Execution mode of the session. + * `usage_time`: The usage time, in seconds, of this Session or Batch. Usage is defined as the time a quantum system is committed to complete a job. + + + ### from\_id + + + Construct a Session object with a given session\_id + + **Parameters** + + * **session\_id** (`str`) – the id of the session to be created. This must be an already existing session id. + + * **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – + + instance of the `QiskitRuntimeService` class. + + **Raises:** + + IBMInputValueError: If given session\_id does not exist. + + **Return type** + + [`Session`](#qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session") + + **Returns** + + A new Session with the given `session_id` + + + ### status + + + Return current session status. + + **Return type** + + `Optional`\[`str`] + + **Returns** + + Session status as a string. + + * `Pending`: Session is created but not active. It will become active when the next job of this session is dequeued. + * `In progress, accepting new jobs`: session is active and accepting new jobs. + * `In progress, not accepting new jobs`: session is active and not accepting new jobs. + * `Closed`: max\_time expired or session was explicitly closed. + * `None`: status details are not available. + + + ### usage + + + Return session usage in seconds. + + Session usage is the time from when the first job starts until the session goes inactive, is closed, or when its last job completes, whichever happens last. + + Batch usage is the amount of time all jobs spend on the QPU. + + **Return type** + + `Optional`\[`float`] + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.execution_span.ExecutionSpan.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.execution_span.ExecutionSpan.mdx new file mode 100644 index 00000000000..8e9f4a67945 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.execution_span.ExecutionSpan.mdx @@ -0,0 +1,141 @@ +--- +title: ExecutionSpan +description: API reference for qiskit_ibm_runtime.execution_span.ExecutionSpan +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.execution_span.ExecutionSpan +--- + +# ExecutionSpan + + + Abstract parent for classes that store an execution time span for a subset of job data. + + A pub is said to have dependence on an execution span if the corresponding execution includes data that forms any part of the pub’s results. + + Execution spans are equality checkable, and they implement a comparison operator based on the tuple `(start, stop)`, so can be sorted. + + **Parameters** + + * **start** (`datetime`) – The start time of the span, in UTC. + * **stop** (`datetime`) – The stop time of the span, in UTC. + + ## Attributes + + ### duration + + + The duration of this span, in seconds. + + **Return type** + + `float` + + + ### pub\_idxs + + + Which pubs, by index, have dependence on this execution span. + + **Return type** + + `list`\[`int`] + + + ### size + + + The total number of results with dependence on this execution span, across all pubs. + + This attribute is equivalent to the sum of the elements of all present [`mask()`](#qiskit_ibm_runtime.execution_span.ExecutionSpan.mask "qiskit_ibm_runtime.execution_span.ExecutionSpan.mask")s. For sampler results, it represents the total number of shots with dependence on this execution span. + + Combine this attribute with [`filter_by_pub()`](#qiskit_ibm_runtime.execution_span.ExecutionSpan.filter_by_pub "qiskit_ibm_runtime.execution_span.ExecutionSpan.filter_by_pub") to find the size of some particular pub: + + ```python + span.filter_by_pub(2).size + ``` + + **Return type** + + `int` + + + ### start + + + The start time of the span, in UTC. + + **Return type** + + `datetime` + + + ### stop + + + The stop time of the span, in UTC. + + **Return type** + + `datetime` + + + ## Methods + + ### contains\_pub + + + Return whether the pub with the given index has data with dependence on this span. + + **Parameters** + + **pub\_idx** (*int | Iterable\[int]*) – One or more pub indices from the original primitive call. + + **Return type** + + bool + + **Returns** + + Whether there is dependence on this span. + + + ### filter\_by\_pub + + + Return a new span whose slices are filtered to the provided pub indices. + + For example, if this span contains slice information for pubs with indices 1, 3, 4 and `[1, 4]` is provided, then the span returned by this method will contain slice information for only those two indices, but be identical otherwise. + + **Parameters** + + **pub\_idx** (*int | Iterable\[int]*) – One or more pub indices from the original primitive call. + + **Return type** + + [ExecutionSpan](#qiskit_ibm_runtime.execution_span.ExecutionSpan "qiskit_ibm_runtime.execution_span.ExecutionSpan") + + **Returns** + + A new filtered span. + + + ### mask + + + Return an array-valued mask specifying which parts of a pub result depend on this span. + + **Parameters** + + **pub\_idx** (`int`) – The index of the pub to return a mask for. + + **Return type** + + [`ndarray`](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")\[`Any`, [`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[[`bool`](https://numpy.org/doc/stable/reference/arrays.scalars.html#numpy.bool "(in NumPy v2.1)")]] + + **Returns** + + An array with the same shape as the pub data. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.execution_span.ExecutionSpans.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.execution_span.ExecutionSpans.mdx new file mode 100644 index 00000000000..81c6cdacdac --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.execution_span.ExecutionSpans.mdx @@ -0,0 +1,114 @@ +--- +title: ExecutionSpans +description: API reference for qiskit_ibm_runtime.execution_span.ExecutionSpans +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.execution_span.ExecutionSpans +--- + +# ExecutionSpans + + + A collection of timings for pub results. + + This class is a list-like containing [`ExecutionSpan`](qiskit_ibm_runtime.execution_span.ExecutionSpan "qiskit_ibm_runtime.execution_span.ExecutionSpan")s, where each execution span represents a time window of data collection, and contains a reference to exactly which of the data were collected during the window. + + It is possible for distinct time windows to overlap. This is not because a QPU was performing multiple executions at once, but is instead an artifact of certain classical processing that may happen concurrently with quantum execution. The guarantee being made is that the referenced data definitely occurred in the reported execution span, but not necessarily that the limits of the time window are as tight as possible. + + ## Attributes + + ### duration + + + The total duration of this collection, in seconds. + + **Return type** + + `float` + + + ### pub\_idxs + + + Which pubs, by index, have dependence on one or more execution spans present. + + **Return type** + + `list`\[`int`] + + + ### start + + + The start time of the entire collection, in UTC. + + **Return type** + + `datetime` + + + ### stop + + + The stop time of the entire collection, in UTC. + + **Return type** + + `datetime` + + + ## Methods + + ### \_\_getitem\_\_ + + + **Return type** + + [ExecutionSpan](qiskit_ibm_runtime.execution_span.ExecutionSpan "qiskit_ibm_runtime.execution_span.ExecutionSpan") | ‘ExecutionSpans + + + ### \_\_len\_\_ + + + **Return type** + + `int` + + + ### filter\_by\_pub + + + Return a new set of spans where each one has been filtered to the specified pubs. + + See also :meth:\~.ExecutionSpan.filter\_by\_pub\`. + + **Parameters** + + **pub\_idx** (*int | Iterable\[int]*) – One or more pub indices to filter. + + **Return type** + + [ExecutionSpans](#qiskit_ibm_runtime.execution_span.ExecutionSpans "qiskit_ibm_runtime.execution_span.ExecutionSpans") + + + ### sort + + + Return the same execution spans, sorted. + + Sorting is done by the [`start`](qiskit_ibm_runtime.execution_span.ExecutionSpan#start "qiskit_ibm_runtime.execution_span.ExecutionSpan.start") timestamp of each execution span. + + **Parameters** + + **inplace** (`bool`) – Whether to sort this instance in place, or return a copy. + + **Return type** + + [`ExecutionSpans`](#qiskit_ibm_runtime.execution_span.ExecutionSpans "qiskit_ibm_runtime.execution_span.execution_spans.ExecutionSpans") + + **Returns** + + This instance if `inplace`, a new instance otherwise, sorted. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.execution_span.ShapeType.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.execution_span.ShapeType.mdx new file mode 100644 index 00000000000..7e0fd552068 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.execution_span.ShapeType.mdx @@ -0,0 +1,14 @@ +--- +title: ShapeType +description: API reference for qiskit_ibm_runtime.execution_span.ShapeType +in_page_toc_min_heading_level: 1 +python_api_type: data +python_api_name: qiskit_ibm_runtime.execution_span.ShapeType +--- + +# ShapeType + + + alias of `Tuple`\[`int`, …] + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.execution_span.SliceSpan.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.execution_span.SliceSpan.mdx new file mode 100644 index 00000000000..7691ee98533 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.execution_span.SliceSpan.mdx @@ -0,0 +1,128 @@ +--- +title: SliceSpan +description: API reference for qiskit_ibm_runtime.execution_span.SliceSpan +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.execution_span.SliceSpan +--- + +# SliceSpan + + + An [`ExecutionSpan`](qiskit_ibm_runtime.execution_span.ExecutionSpan "qiskit_ibm_runtime.execution_span.ExecutionSpan") for data stored in a sliceable format. + + This type of execution span references pub result data by assuming that it is a sliceable portion of the (row major) flattened data. Therefore, for each pub dependent on this span, the constructor accepts a single `slice` object, along with the corresponding shape of the data to be sliced. + + **Parameters** + + * **start** (`datetime`) – The start time of the span, in UTC. + * **stop** (`datetime`) – The stop time of the span, in UTC. + * **data\_slices** (`dict`\[`int`, `tuple`\[`Tuple`\[`int`, `...`], `slice`]]) – A map from pub indices to pairs `(shape_tuple, slice)`. + + ## Attributes + + ### duration + + + The duration of this span, in seconds. + + **Return type** + + `float` + + + ### pub\_idxs + + + **Return type** + + `list`\[`int`] + + + ### size + + + **Return type** + + `int` + + + ### start + + + The start time of the span, in UTC. + + **Return type** + + `datetime` + + + ### stop + + + The stop time of the span, in UTC. + + **Return type** + + `datetime` + + + ## Methods + + ### contains\_pub + + + Return whether the pub with the given index has data with dependence on this span. + + **Parameters** + + **pub\_idx** (*int | Iterable\[int]*) – One or more pub indices from the original primitive call. + + **Return type** + + bool + + **Returns** + + Whether there is dependence on this span. + + + ### filter\_by\_pub + + + Return a new span whose slices are filtered to the provided pub indices. + + For example, if this span contains slice information for pubs with indices 1, 3, 4 and `[1, 4]` is provided, then the span returned by this method will contain slice information for only those two indices, but be identical otherwise. + + **Parameters** + + **pub\_idx** (*int | Iterable\[int]*) – One or more pub indices from the original primitive call. + + **Return type** + + [SliceSpan](#qiskit_ibm_runtime.execution_span.SliceSpan "qiskit_ibm_runtime.execution_span.SliceSpan") + + **Returns** + + A new filtered span. + + + ### mask + + + Return an array-valued mask specifying which parts of a pub result depend on this span. + + **Parameters** + + **pub\_idx** (`int`) – The index of the pub to return a mask for. + + **Return type** + + [`ndarray`](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")\[`Any`, [`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[[`bool`](https://numpy.org/doc/stable/reference/arrays.scalars.html#numpy.bool "(in NumPy v2.1)")]] + + **Returns** + + An array with the same shape as the pub data. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAlgiers.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAlgiers.mdx new file mode 100644 index 00000000000..29e2db8bf6a --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAlgiers.mdx @@ -0,0 +1,454 @@ +--- +title: FakeAlgiers +description: API reference for qiskit_ibm_runtime.fake_provider.FakeAlgiers +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlgiers +--- + +# FakeAlgiers + + + A fake 27 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeAlgiers.run "qiskit_ibm_runtime.fake_provider.FakeAlgiers.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlmaden.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAlmaden.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlmaden.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAlmaden.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.mdx new file mode 100644 index 00000000000..0c1f7bb7cf1 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.mdx @@ -0,0 +1,464 @@ +--- +title: FakeAlmadenV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 +--- + +# FakeAlmadenV2 + + + A fake Almaden V2 backend. + + ```python + 00 ↔ 01 ↔ 02 ↔ 03 ↔ 04 + ↕ ↕ + 05 ↔ 06 ↔ 07 ↔ 08 ↔ 09 + ↕ ↕ ↕ + 10 ↔ 11 ↔ 12 ↔ 13 ↔ 14 + ↕ ↕ + 15 ↔ 16 ↔ 17 ↔ 18 ↔ 19 + ``` + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.run "qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeArmonk.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeArmonk.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeArmonk.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeArmonk.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeArmonkV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeArmonkV2.mdx new file mode 100644 index 00000000000..d99cbe7f51f --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeArmonkV2.mdx @@ -0,0 +1,458 @@ +--- +title: FakeArmonkV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeArmonkV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonkV2 +--- + +# FakeArmonkV2 + + + A fake 1 qubit backend. + + ```python + 0 + ``` + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.run "qiskit_ibm_runtime.fake_provider.FakeArmonkV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAthens.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAthens.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAthens.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAthens.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAthensV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAthensV2.mdx new file mode 100644 index 00000000000..9aaf6dd3199 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAthensV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeAthensV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeAthensV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthensV2 +--- + +# FakeAthensV2 + + + A fake 5 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeAthensV2.run "qiskit_ibm_runtime.fake_provider.FakeAthensV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAuckland.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAuckland.mdx new file mode 100644 index 00000000000..6e64452fc51 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeAuckland.mdx @@ -0,0 +1,454 @@ +--- +title: FakeAuckland +description: API reference for qiskit_ibm_runtime.fake_provider.FakeAuckland +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeAuckland +--- + +# FakeAuckland + + + A fake 27 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeAuckland.run "qiskit_ibm_runtime.fake_provider.FakeAuckland.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBelem.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBelem.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBelem.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBelem.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBelemV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBelemV2.mdx new file mode 100644 index 00000000000..89a6d3192d2 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBelemV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeBelemV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeBelemV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelemV2 +--- + +# FakeBelemV2 + + + A fake 5 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeBelemV2.run "qiskit_ibm_runtime.fake_provider.FakeBelemV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBoeblingen.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBoeblingen.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBoeblingen.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBoeblingen.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.mdx new file mode 100644 index 00000000000..09d176c008c --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.mdx @@ -0,0 +1,464 @@ +--- +title: FakeBoeblingenV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 +--- + +# FakeBoeblingenV2 + + + A fake Boeblingen V2 backend. + + ```python + 00 ↔ 01 ↔ 02 ↔ 03 ↔ 04 + ↕ ↕ + 05 ↔ 06 ↔ 07 ↔ 08 ↔ 09 + ↕ ↕ ↕ + 10 ↔ 11 ↔ 12 ↔ 13 ↔ 14 + ↕ ↕ + 15 ↔ 16 ↔ 17 ↔ 18 ↔ 19 + ``` + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.run "qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBogota.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBogota.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBogota.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBogota.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBogotaV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBogotaV2.mdx new file mode 100644 index 00000000000..1e2040ed817 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBogotaV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeBogotaV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeBogotaV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogotaV2 +--- + +# FakeBogotaV2 + + + A fake 5 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.run "qiskit_ibm_runtime.fake_provider.FakeBogotaV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBrisbane.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBrisbane.mdx new file mode 100644 index 00000000000..de0154d5005 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBrisbane.mdx @@ -0,0 +1,454 @@ +--- +title: FakeBrisbane +description: API reference for qiskit_ibm_runtime.fake_provider.FakeBrisbane +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrisbane +--- + +# FakeBrisbane + + + A fake 127 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeBrisbane.run "qiskit_ibm_runtime.fake_provider.FakeBrisbane.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrooklyn.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBrooklyn.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrooklyn.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBrooklyn.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.mdx new file mode 100644 index 00000000000..c82c101f5cd --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeBrooklynV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 +--- + +# FakeBrooklynV2 + + + A fake Brooklyn V2 backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.run "qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBurlington.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBurlington.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBurlington.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBurlington.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.mdx new file mode 100644 index 00000000000..634c143284e --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.mdx @@ -0,0 +1,460 @@ +--- +title: FakeBurlingtonV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 +--- + +# FakeBurlingtonV2 + + + A fake 5 qubit backend. + + ```python + 0 ↔ 1 ↔ 3 ↔ 4 + ↕ + 2 + ``` + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.run "qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCairo.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCairo.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCairo.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCairo.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCairoV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCairoV2.mdx new file mode 100644 index 00000000000..11e3bc322a3 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCairoV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeCairoV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeCairoV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairoV2 +--- + +# FakeCairoV2 + + + A fake 27 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeCairoV2.run "qiskit_ibm_runtime.fake_provider.FakeCairoV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCambridge.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCambridge.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCambridge.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCambridge.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.mdx new file mode 100644 index 00000000000..4c1ec839c59 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.mdx @@ -0,0 +1,466 @@ +--- +title: FakeCambridgeV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 +--- + +# FakeCambridgeV2 + + + A fake Cambridge backend. + + ```python + 00 ↔ 01 ↔ 02 ↔ 03 ↔ 04 + ↕ ↕ + 05 06 + ↕ ↕ + 07 ↔ 08 ↔ 09 ↔ 10 ↔ 11 ↔ 12 ↔ 13 ↔ 14 ↔ 15 + ↕ ↕ ↕ + 16 17 18 + ↕ ↕ ↕ + 19 ↔ 20 ↔ 21 ↔ 22 ↔ 23 ↔ 24 ↔ 25 ↔ 26 ↔ 27 + ``` + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.run "qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCasablanca.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCasablanca.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCasablanca.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCasablanca.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.mdx new file mode 100644 index 00000000000..6841c366eeb --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeCasablancaV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 +--- + +# FakeCasablancaV2 + + + A fake 7 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.run "qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCusco.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCusco.mdx new file mode 100644 index 00000000000..b3b87a28428 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeCusco.mdx @@ -0,0 +1,454 @@ +--- +title: FakeCusco +description: API reference for qiskit_ibm_runtime.fake_provider.FakeCusco +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeCusco +--- + +# FakeCusco + + + A fake 127 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeCusco.run "qiskit_ibm_runtime.fake_provider.FakeCusco.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeEssex.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeEssex.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeEssex.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeEssex.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeEssexV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeEssexV2.mdx new file mode 100644 index 00000000000..cc831834a8f --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeEssexV2.mdx @@ -0,0 +1,462 @@ +--- +title: FakeEssexV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeEssexV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssexV2 +--- + +# FakeEssexV2 + + + A fake 5 qubit backend. + + ```python + 0 ↔ 1 ↔ 2 + ↕ + 3 + ↕ + 4 + ``` + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeEssexV2.run "qiskit_ibm_runtime.fake_provider.FakeEssexV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.mdx new file mode 100644 index 00000000000..2978412cac4 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.mdx @@ -0,0 +1,461 @@ +--- +title: FakeFractionalBackend +description: API reference for qiskit_ibm_runtime.fake_provider.FakeFractionalBackend +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeFractionalBackend +--- + +# FakeFractionalBackend + + + A fake 5 qubit backend with dynamic and fractional feature modeled based on FakeLima. + + This backend include following features. + + * Fractional gates (rx, rzx) in addition to the standard basis gates. + * Control flow operations (if\_else, while\_loop). + * Pulse calibrations (fractional gates don’t support calibration). + * Gate properties of all instructions. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.run "qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeGeneva.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeGeneva.mdx new file mode 100644 index 00000000000..be8574aaeaf --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeGeneva.mdx @@ -0,0 +1,454 @@ +--- +title: FakeGeneva +description: API reference for qiskit_ibm_runtime.fake_provider.FakeGeneva +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeGeneva +--- + +# FakeGeneva + + + A fake 27 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeGeneva.run "qiskit_ibm_runtime.fake_provider.FakeGeneva.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGuadalupe.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeGuadalupe.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGuadalupe.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeGuadalupe.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.mdx new file mode 100644 index 00000000000..ab10058a0b0 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeGuadalupeV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 +--- + +# FakeGuadalupeV2 + + + A fake 16 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.run "qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeHanoi.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeHanoi.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeHanoi.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeHanoi.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeHanoiV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeHanoiV2.mdx new file mode 100644 index 00000000000..54f48088c66 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeHanoiV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeHanoiV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeHanoiV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoiV2 +--- + +# FakeHanoiV2 + + + A fake 27 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.run "qiskit_ibm_runtime.fake_provider.FakeHanoiV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJakarta.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeJakarta.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJakarta.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeJakarta.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeJakartaV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeJakartaV2.mdx new file mode 100644 index 00000000000..123cecab7f6 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeJakartaV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeJakartaV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeJakartaV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakartaV2 +--- + +# FakeJakartaV2 + + + A fake 7 qubit V2 backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.run "qiskit_ibm_runtime.fake_provider.FakeJakartaV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJohannesburg.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeJohannesburg.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJohannesburg.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeJohannesburg.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.mdx new file mode 100644 index 00000000000..bdc4e7e8fa8 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.mdx @@ -0,0 +1,464 @@ +--- +title: FakeJohannesburgV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 +--- + +# FakeJohannesburgV2 + + + A fake Johannesburg V2 backend. + + ```python + 00 ↔ 01 ↔ 02 ↔ 03 ↔ 04 + ↕ ↕ + 05 ↔ 06 ↔ 07 ↔ 08 ↔ 09 + ↕ ↕ ↕ + 10 ↔ 11 ↔ 12 ↔ 13 ↔ 14 + ↕ ↕ + 15 ↔ 16 ↔ 17 ↔ 18 ↔ 19 + ``` + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.run "qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeKawasaki.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeKawasaki.mdx new file mode 100644 index 00000000000..993c9bbabbe --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeKawasaki.mdx @@ -0,0 +1,454 @@ +--- +title: FakeKawasaki +description: API reference for qiskit_ibm_runtime.fake_provider.FakeKawasaki +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeKawasaki +--- + +# FakeKawasaki + + + A fake 127 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeKawasaki.run "qiskit_ibm_runtime.fake_provider.FakeKawasaki.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKolkata.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeKolkata.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKolkata.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeKolkata.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeKolkataV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeKolkataV2.mdx new file mode 100644 index 00000000000..ceefcc11492 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeKolkataV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeKolkataV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeKolkataV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkataV2 +--- + +# FakeKolkataV2 + + + A fake 27 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.run "qiskit_ibm_runtime.fake_provider.FakeKolkataV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeKyiv.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeKyiv.mdx new file mode 100644 index 00000000000..9d6583bf7ac --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeKyiv.mdx @@ -0,0 +1,454 @@ +--- +title: FakeKyiv +description: API reference for qiskit_ibm_runtime.fake_provider.FakeKyiv +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyiv +--- + +# FakeKyiv + + + A fake 127 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeKyiv.run "qiskit_ibm_runtime.fake_provider.FakeKyiv.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeKyoto.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeKyoto.mdx new file mode 100644 index 00000000000..895bcd6d52e --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeKyoto.mdx @@ -0,0 +1,454 @@ +--- +title: FakeKyoto +description: API reference for qiskit_ibm_runtime.fake_provider.FakeKyoto +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyoto +--- + +# FakeKyoto + + + A fake 127 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeKyoto.run "qiskit_ibm_runtime.fake_provider.FakeKyoto.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLagos.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeLagos.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLagos.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeLagos.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeLagosV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeLagosV2.mdx new file mode 100644 index 00000000000..7476331bf26 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeLagosV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeLagosV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeLagosV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagosV2 +--- + +# FakeLagosV2 + + + A fake 7 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeLagosV2.run "qiskit_ibm_runtime.fake_provider.FakeLagosV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLima.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeLima.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLima.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeLima.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeLimaV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeLimaV2.mdx new file mode 100644 index 00000000000..1ef41f68bc8 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeLimaV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeLimaV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeLimaV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeLimaV2 +--- + +# FakeLimaV2 + + + A fake 5 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeLimaV2.run "qiskit_ibm_runtime.fake_provider.FakeLimaV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLondon.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeLondon.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLondon.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeLondon.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeLondonV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeLondonV2.mdx new file mode 100644 index 00000000000..f068e3fc0e5 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeLondonV2.mdx @@ -0,0 +1,462 @@ +--- +title: FakeLondonV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeLondonV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondonV2 +--- + +# FakeLondonV2 + + + A fake 5 qubit backend. + + ```python + 0 ↔ 1 ↔ 2 + ↕ + 3 + ↕ + 4 + ``` + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeLondonV2.run "qiskit_ibm_runtime.fake_provider.FakeLondonV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManhattan.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeManhattan.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManhattan.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeManhattan.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeManhattanV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeManhattanV2.mdx new file mode 100644 index 00000000000..4bcff4a3a34 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeManhattanV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeManhattanV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeManhattanV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattanV2 +--- + +# FakeManhattanV2 + + + A fake Manhattan backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.run "qiskit_ibm_runtime.fake_provider.FakeManhattanV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManila.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeManila.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManila.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeManila.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeManilaV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeManilaV2.mdx new file mode 100644 index 00000000000..59e2ec13ad0 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeManilaV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeManilaV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeManilaV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeManilaV2 +--- + +# FakeManilaV2 + + + A fake 5 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeManilaV2.run "qiskit_ibm_runtime.fake_provider.FakeManilaV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMelbourne.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeMelbourne.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMelbourne.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeMelbourne.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.mdx new file mode 100644 index 00000000000..36c24eae91b --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeMelbourneV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 +--- + +# FakeMelbourneV2 + + + A fake 14 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.run "qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMontreal.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeMontreal.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMontreal.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeMontreal.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeMontrealV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeMontrealV2.mdx new file mode 100644 index 00000000000..c763da1d632 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeMontrealV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeMontrealV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeMontrealV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontrealV2 +--- + +# FakeMontrealV2 + + + A fake 27 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.run "qiskit_ibm_runtime.fake_provider.FakeMontrealV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMumbai.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeMumbai.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMumbai.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeMumbai.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.mdx new file mode 100644 index 00000000000..909b4f59f76 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeMumbaiV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 +--- + +# FakeMumbaiV2 + + + A fake 27 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.run "qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeNairobi.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeNairobi.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeNairobi.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeNairobi.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeNairobiV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeNairobiV2.mdx new file mode 100644 index 00000000000..3fc4ca6f18d --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeNairobiV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeNairobiV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeNairobiV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobiV2 +--- + +# FakeNairobiV2 + + + A fake 7 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.run "qiskit_ibm_runtime.fake_provider.FakeNairobiV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeOsaka.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeOsaka.mdx new file mode 100644 index 00000000000..68e3c8a9c45 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeOsaka.mdx @@ -0,0 +1,454 @@ +--- +title: FakeOsaka +description: API reference for qiskit_ibm_runtime.fake_provider.FakeOsaka +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeOsaka +--- + +# FakeOsaka + + + A fake 127 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeOsaka.run "qiskit_ibm_runtime.fake_provider.FakeOsaka.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeOslo.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeOslo.mdx new file mode 100644 index 00000000000..a8725fa05f2 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeOslo.mdx @@ -0,0 +1,454 @@ +--- +title: FakeOslo +description: API reference for qiskit_ibm_runtime.fake_provider.FakeOslo +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeOslo +--- + +# FakeOslo + + + A fake 7 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeOslo.run "qiskit_ibm_runtime.fake_provider.FakeOslo.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOurense.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeOurense.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOurense.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeOurense.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeOurenseV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeOurenseV2.mdx new file mode 100644 index 00000000000..367150388bd --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeOurenseV2.mdx @@ -0,0 +1,460 @@ +--- +title: FakeOurenseV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeOurenseV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurenseV2 +--- + +# FakeOurenseV2 + + + A fake 5 qubit backend. + + ```python + 0 ↔ 1 ↔ 3 ↔ 4 + ↕ + 2 + ``` + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.run "qiskit_ibm_runtime.fake_provider.FakeOurenseV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeParis.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeParis.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeParis.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeParis.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeParisV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeParisV2.mdx new file mode 100644 index 00000000000..7f948a9b31f --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeParisV2.mdx @@ -0,0 +1,466 @@ +--- +title: FakeParisV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeParisV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeParisV2 +--- + +# FakeParisV2 + + + A fake Paris backend. + + ```python + 06 17 + ↕ ↕ + 00 ↔ 01 ↔ 04 ↔ 07 ↔ 10 ↔ 12 ↔ 15 ↔ 18 ↔ 20 ↔ 23 + ↕ ↕ ↕ + 02 13 24 + ↕ ↕ ↕ + 03 ↔ 05 ↔ 08 ↔ 11 ↔ 14 ↔ 16 ↔ 19 ↔ 22 ↔ 25 ↔ 26 + ↕ ↕ + 09 20 + ``` + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeParisV2.run "qiskit_ibm_runtime.fake_provider.FakeParisV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakePeekskill.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakePeekskill.mdx new file mode 100644 index 00000000000..7b1b5ac7a41 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakePeekskill.mdx @@ -0,0 +1,454 @@ +--- +title: FakePeekskill +description: API reference for qiskit_ibm_runtime.fake_provider.FakePeekskill +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakePeekskill +--- + +# FakePeekskill + + + A fake 27 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakePeekskill.run "qiskit_ibm_runtime.fake_provider.FakePeekskill.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakePerth.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakePerth.mdx new file mode 100644 index 00000000000..f40abdcb7ba --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakePerth.mdx @@ -0,0 +1,454 @@ +--- +title: FakePerth +description: API reference for qiskit_ibm_runtime.fake_provider.FakePerth +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakePerth +--- + +# FakePerth + + + A fake 7 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakePerth.run "qiskit_ibm_runtime.fake_provider.FakePerth.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.mdx new file mode 100644 index 00000000000..71b49719a88 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakePoughkeepsieV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 +--- + +# FakePoughkeepsieV2 + + + A fake Poughkeepsie backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.run "qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakePrague.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakePrague.mdx new file mode 100644 index 00000000000..22dfd0d8ee6 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakePrague.mdx @@ -0,0 +1,454 @@ +--- +title: FakePrague +description: API reference for qiskit_ibm_runtime.fake_provider.FakePrague +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakePrague +--- + +# FakePrague + + + A fake 33 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakePrague.run "qiskit_ibm_runtime.fake_provider.FakePrague.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeProvider.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeProvider.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeProvider.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeProvider.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2.mdx new file mode 100644 index 00000000000..00602199bfa --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2.mdx @@ -0,0 +1,48 @@ +--- +title: FakeProviderForBackendV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2 +--- + +# FakeProviderForBackendV2 + + + Fake provider containing fake V2 backends. + + Only filtering backends by name is implemented. This class contains all fake V2 backends available in the [`qiskit_ibm_runtime.fake_provider`](fake_provider#module-qiskit_ibm_runtime.fake_provider "qiskit_ibm_runtime.fake_provider"). + + ## Methods + + ### backend + + + Filter backends in provider by name. + + **Return type** + + `FakeBackendV2` + + + ### backends + + + Return all backends accessible via this account. + + **Return type** + + `List`\[`FakeBackendV2`] + + + ### get\_backend + + + Return a single backend matching the specified filtering. + + **Return type** + + `FakeBackendV2` + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeQuebec.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeQuebec.mdx new file mode 100644 index 00000000000..f5027e885fa --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeQuebec.mdx @@ -0,0 +1,454 @@ +--- +title: FakeQuebec +description: API reference for qiskit_ibm_runtime.fake_provider.FakeQuebec +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuebec +--- + +# FakeQuebec + + + A fake 127 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeQuebec.run "qiskit_ibm_runtime.fake_provider.FakeQuebec.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuito.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeQuito.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuito.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeQuito.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeQuitoV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeQuitoV2.mdx new file mode 100644 index 00000000000..7c60f004f09 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeQuitoV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeQuitoV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeQuitoV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuitoV2 +--- + +# FakeQuitoV2 + + + A fake 5 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.run "qiskit_ibm_runtime.fake_provider.FakeQuitoV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRochester.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeRochester.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRochester.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeRochester.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeRochesterV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeRochesterV2.mdx new file mode 100644 index 00000000000..94a2197ef80 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeRochesterV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeRochesterV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeRochesterV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochesterV2 +--- + +# FakeRochesterV2 + + + A fake Rochester backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.run "qiskit_ibm_runtime.fake_provider.FakeRochesterV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRome.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeRome.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRome.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeRome.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeRomeV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeRomeV2.mdx new file mode 100644 index 00000000000..8a9ec31ba90 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeRomeV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeRomeV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeRomeV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeRomeV2 +--- + +# FakeRomeV2 + + + A fake 5 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeRomeV2.run "qiskit_ibm_runtime.fake_provider.FakeRomeV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRueschlikon.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeRueschlikon.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRueschlikon.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeRueschlikon.mdx diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSantiago.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSantiago.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSantiago.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSantiago.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.mdx new file mode 100644 index 00000000000..5ca5d6936bf --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeSantiagoV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 +--- + +# FakeSantiagoV2 + + + A fake Santiago backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.run "qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSherbrooke.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSherbrooke.mdx new file mode 100644 index 00000000000..ea496d812c7 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSherbrooke.mdx @@ -0,0 +1,454 @@ +--- +title: FakeSherbrooke +description: API reference for qiskit_ibm_runtime.fake_provider.FakeSherbrooke +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeSherbrooke +--- + +# FakeSherbrooke + + + A fake 127 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.run "qiskit_ibm_runtime.fake_provider.FakeSherbrooke.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSingapore.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSingapore.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSingapore.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSingapore.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.mdx new file mode 100644 index 00000000000..378ab63eb90 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.mdx @@ -0,0 +1,464 @@ +--- +title: FakeSingaporeV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 +--- + +# FakeSingaporeV2 + + + A fake Singapore backend. + + ```python + 00 ↔ 01 ↔ 02 ↔ 03 ↔ 04 + ↕ ↕ + 05 ↔ 06 ↔ 07 ↔ 08 ↔ 09 + ↕ ↕ ↕ + 10 ↔ 11 ↔ 12 ↔ 13 ↔ 14 + ↕ ↕ + 15 ↔ 16 ↔ 17 ↔ 18 ↔ 19 + ``` + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.run "qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSydney.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSydney.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSydney.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSydney.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSydneyV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSydneyV2.mdx new file mode 100644 index 00000000000..6c45dd2b2bc --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeSydneyV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeSydneyV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeSydneyV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydneyV2 +--- + +# FakeSydneyV2 + + + A fake 27 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.run "qiskit_ibm_runtime.fake_provider.FakeSydneyV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTenerife.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeTenerife.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTenerife.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeTenerife.mdx diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTokyo.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeTokyo.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTokyo.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeTokyo.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeTorino.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeTorino.mdx new file mode 100644 index 00000000000..a796b7eac5f --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeTorino.mdx @@ -0,0 +1,454 @@ +--- +title: FakeTorino +description: API reference for qiskit_ibm_runtime.fake_provider.FakeTorino +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorino +--- + +# FakeTorino + + + A fake 133 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeTorino.run "qiskit_ibm_runtime.fake_provider.FakeTorino.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeToronto.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeToronto.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeToronto.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeToronto.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeTorontoV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeTorontoV2.mdx new file mode 100644 index 00000000000..512f4e7d7e9 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeTorontoV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeTorontoV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeTorontoV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorontoV2 +--- + +# FakeTorontoV2 + + + A fake 27 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.run "qiskit_ibm_runtime.fake_provider.FakeTorontoV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeValencia.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeValencia.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeValencia.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeValencia.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeValenciaV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeValenciaV2.mdx new file mode 100644 index 00000000000..9d99a85a045 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeValenciaV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeValenciaV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeValenciaV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeValenciaV2 +--- + +# FakeValenciaV2 + + + A fake 5 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.run "qiskit_ibm_runtime.fake_provider.FakeValenciaV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeVigo.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeVigo.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeVigo.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeVigo.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeVigoV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeVigoV2.mdx new file mode 100644 index 00000000000..1874b59446d --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeVigoV2.mdx @@ -0,0 +1,460 @@ +--- +title: FakeVigoV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeVigoV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigoV2 +--- + +# FakeVigoV2 + + + A fake 5 qubit backend. + + ```python + 0 ↔ 1 ↔ 3 ↔ 4 + ↕ + 2 + ``` + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeVigoV2.run "qiskit_ibm_runtime.fake_provider.FakeVigoV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeWashington.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeWashington.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeWashington.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeWashington.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.mdx new file mode 100644 index 00000000000..a692f47d03c --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.mdx @@ -0,0 +1,454 @@ +--- +title: FakeWashingtonV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 +--- + +# FakeWashingtonV2 + + + A fake 127 qubit backend. + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.run "qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeYorktown.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeYorktown.mdx similarity index 100% rename from docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeYorktown.mdx rename to docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeYorktown.mdx diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeYorktownV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeYorktownV2.mdx new file mode 100644 index 00000000000..5d8beb55327 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.fake_provider.FakeYorktownV2.mdx @@ -0,0 +1,462 @@ +--- +title: FakeYorktownV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeYorktownV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktownV2 +--- + +# FakeYorktownV2 + + + A fake 5 qubit backend. + + ```python + 1 + / | + 0 - 2 - 3 + | / + 4 + ``` + + FakeBackendV2 initializer. + + ## Attributes + + ### backend\_name + + + + ### conf\_filename + + + + ### coupling\_map + + + Return the [`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") object + + + ### defs\_filename + + + + ### dirname + + + + ### dt + + + Return the system time resolution of input signals + + This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `Optional`\[`float`] + + **Returns** + + The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + ### dtm + + + Return the system time resolution of output signals + + **Return type** + + `float` + + **Returns** + + The output signal timestep in seconds. + + + ### instruction\_durations + + + Return the [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)") object. + + + ### instruction\_schedule\_map + + + Return the [`InstructionScheduleMap`](/api/qiskit/qiskit.pulse.InstructionScheduleMap "(in Qiskit v1.2)") for the instructions defined in this backend’s target. + + + ### instructions + + + A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + + **Return type** + + `List`\[`Tuple`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)"), `Tuple`\[`int`]]] + + + ### max\_circuits + + + **Return type** + + `None` + + + ### meas\_map + + + Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + + **Return type** + + `List`\[`List`\[`int`]] + + **Returns** + + The grouping of measurements which are multiplexed + + + ### num\_qubits + + + Return the number of qubits the backend has. + + **Return type** + + `int` + + + ### operation\_names + + + A list of instruction names that the backend supports. + + **Return type** + + `List`\[`str`] + + + ### operations + + + A list of [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") instances that the backend supports. + + **Return type** + + `List`\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")] + + + ### options + + + Return the options for the backend + + The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.run "qiskit_ibm_runtime.fake_provider.FakeYorktownV2.run") method. + + + ### props\_filename + + + + ### provider + + + Return the backend Provider. + + **Returns** + + the Provider responsible for the backend. + + **Return type** + + Provider + + + ### target + + + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. + + **Return type** + + Target + + + ### version + + + + ### name + + + Name of the backend. + + + ### description + + + Optional human-readable description. + + + ### online\_date + + + Date that the backend came online. + + + ### backend\_version + + + Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + + + ## Methods + + ### acquire\_channel + + + Return the acquisition channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement acquisition line. + + **Return type** + + AcquireChannel + + + ### check\_faulty + + + Check if the input circuit uses faulty qubits or edges. + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Circuit to check. + + **Raises** + + **ValueError** – If an instruction operating on a faulty qubit or edge is found. + + **Return type** + + `None` + + + ### configuration + + + Return the backend configuration. + + **Return type** + + `Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + + + ### control\_channel + + + Return the secondary drive channel for the given qubit + + This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Parameters** + + **qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + + **Returns** + + The multi qubit control line. + + **Return type** + + List\[ControlChannel] + + + ### defaults + + + Return the pulse defaults for the backend + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend defaults from the + * **file.** (*local*) + + **Return type** + + `PulseDefaults` + + **Returns** + + The backend pulse defaults or `None` if the backend does not support pulse. + + + ### drive\_channel + + + Return the drive channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit drive channel + + **Return type** + + DriveChannel + + + ### measure\_channel + + + Return the measure stimulus channel for the given qubit. + + This is required to be implemented if the backend supports Pulse scheduling. + + **Returns** + + The Qubit measurement stimulus line + + **Return type** + + MeasureChannel + + + ### properties + + + Return the backend properties + + **Parameters** + + * **refresh** (`bool`) – If `True`, re-retrieve the backend properties + * **file.** (*from the local*) + + **Return type** + + `BackendProperties` + + **Returns** + + The backend properties. + + + ### qubit\_properties + + + Return QubitProperties for a given qubit. + + If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + + **Parameters** + + **qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + + **Return type** + + `Union`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)"), `List`\[[`QubitProperties`](/api/qiskit/qiskit.providers.QubitProperties "(in Qiskit v1.2)")]] + + **Returns** + + The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + + **Raises** + + **NotImplementedError** – if the backend doesn’t support querying the qubit properties + + + ### refresh + + + Update the data files from its real counterpart + + This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json + + **The new data files will persist through sessions so the files will stay updated unless they** + + are manually reverted locally or when qiskit-ibm-runtime is upgraded/reinstalled. + + **Parameters** + + **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + + **Raises** + + * **ValueError** – if the provided service is a non-QiskitRuntimeService instance. + * **Exception** – If the real target doesn’t exist or can’t be accessed + + **Return type** + + `None` + + + ### run + + + Run on the fake backend using a simulator. + + This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. + + If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicSimulator without noise. + + Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + + **Parameters** + + * **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`ScheduleBlock`](/api/qiskit/qiskit.pulse.ScheduleBlock "(in Qiskit v1.2)"), or [`Schedule`](/api/qiskit/qiskit.pulse.Schedule "(in Qiskit v1.2)") objects to run on the backend. + * **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + + **Returns** + + The job object for the run + + **Return type** + + Job + + **Raises** + + **QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + + + ### set\_options + + + Set the options fields for the backend + + This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + + **Parameters** + + **fields** – The fields to update the options + + **Raises** + + **AttributeError** – If the field passed in is not part of the options + + + ### status + + + Return the backend status. + + **Return type** + + `BackendStatus` + + **Returns** + + The status of the backend. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.noise_learner.NoiseLearner.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.noise_learner.NoiseLearner.mdx new file mode 100644 index 00000000000..cfb090f0038 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.noise_learner.NoiseLearner.mdx @@ -0,0 +1,112 @@ +--- +title: NoiseLearner +description: API reference for qiskit_ibm_runtime.noise_learner.NoiseLearner +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.noise_learner.NoiseLearner +--- + +# NoiseLearner + + + Class for executing noise learning experiments. + + + Currently, the [`NoiseLearner`](#qiskit_ibm_runtime.noise_learner.NoiseLearner "qiskit_ibm_runtime.noise_learner.NoiseLearner") is released an experimental feature. As such, it is subject to change without notification and its stability is not guaranteed. + + + The noise learner class allows characterizing the noise processes affecting the gates in one or more circuits of interest, based on the Pauli-Lindblad noise model described in \[1]. + + The [`run()`](#qiskit_ibm_runtime.noise_learner.NoiseLearner.run "qiskit_ibm_runtime.noise_learner.NoiseLearner.run") method allows runnig a noise learner job for a list of circuits. After the job is submitted, the gates are collected into independent layers, and subsequently the resulting layers are are characterized individually. + + The way in which the gates are collected into layers depends on the twirling `strategy` specified in the given `options` (see `NoiseLearnerOptions` for more details). Note that all strategies obey barriers. For example, if you have three ISA entangling layers of interest, consider putting them into one circuit separated by barriers acting on the qubits you wish to twirl, and select `strategy="active-circuit"`. + + The following snippet shows an example where the noise learner is used to characterized the layers of two GHZ circuits. + + ```python + from qiskit.circuit import QuantumCircuit + from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager + from qiskit_ibm_runtime import QiskitRuntimeService + from qiskit_ibm_runtime.noise_learner import NoiseLearner + from qiskit_ibm_runtime.options import NoiseLearnerOptions + + service = QiskitRuntimeService() + backend = service.least_busy(operational=True, simulator=False) + + # a circuit returning a two-qubit GHZ state + ghz = QuantumCircuit(2) + ghz.h(0) + ghz.cx(0, 1) + + # another circuit returning a two-qubit GHZ state + another_ghz = QuantumCircuit(3) + another_ghz.h(0) + another_ghz.cx(0, 1) + another_ghz.cx(1, 2) + another_ghz.cx(0, 1) + + pm = generate_preset_pass_manager(backend=backend, optimization_level=1) + circuits = pm.run([ghz, another_ghz]) + + # set the options + options = NoiseLearnerOptions() + options.layer_pair_depths = [0, 1, 10] + + # run the noise learner job + learner = NoiseLearner(backend, options) + job = learner.run(circuits) + ``` + + **Parameters** + + * **mode** (`Union`\[[`BackendV2`](/api/qiskit/qiskit.providers.BackendV2 "(in Qiskit v1.2)"), [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session"), [`Batch`](qiskit_ibm_runtime.Batch "qiskit_ibm_runtime.batch.Batch"), `None`]) – + + The execution mode used to make the primitive query. It can be: + + * A `Backend` if you are using job mode. + * A `Session` if you are using session execution mode. + * A `Batch` if you are using batch execution mode. + + Refer to the [Qiskit Runtime documentation](/guides/execution-modes) for more information about the execution modes. + + * **options** (`Union`\[`Dict`, [`NoiseLearnerOptions`](qiskit_ibm_runtime.options.NoiseLearnerOptions "qiskit_ibm_runtime.options.noise_learner_options.NoiseLearnerOptions"), [`EstimatorOptions`](qiskit_ibm_runtime.options.EstimatorOptions "qiskit_ibm_runtime.options.estimator_options.EstimatorOptions"), `None`]) – `NoiseLearnerOptions`. Alternatively, `EstimatorOptions` can be provided for convenience, in which case the estimator options get reformatted into noise learner options and all the irrelevant fields are ignored. + + **References** + + 1. E. van den Berg, Z. Minev, A. Kandala, K. Temme, *Probabilistic error cancellation with sparse Pauli–Lindblad models on noisy quantum processors*, Nature Physics volume 19, pages1116–1121 (2023). [arXiv:2201.09866 \[quant-ph\]](https://arxiv.org/abs/2201.09866) + + ## Attributes + + ### options + + + The options in this noise learner. + + **Return type** + + [`NoiseLearnerOptions`](qiskit_ibm_runtime.options.NoiseLearnerOptions "qiskit_ibm_runtime.options.noise_learner_options.NoiseLearnerOptions") + + + ## Methods + + ### run + + + Submit a request to the noise learner program. + + This function breaks the given list of circuits into a list of unique layers, following the strategy set by the `twirling_strategy` field specified in the `options` (see `NoiseLearnerOptions` for more details) and sorting them based on the number of times they occur in the various circuits. Then, it runs the noise learning experiment for as many layers as specified by the `max_layers_to_learn` field in the `options`, prioritizing layers that occurr more frequently. + + **Parameters** + + **circuits** (`Iterable`\[`Union`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), `EstimatorPub`, `Tuple`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), `Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)"), [`SparsePauliOp`](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), `Mapping`\[`Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)")], `float`], `_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]]], `Tuple`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), `Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)"), [`SparsePauliOp`](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), `Mapping`\[`Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)")], `float`], `_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]], `Mapping`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`, `Tuple`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`], `...`]], `Union`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `str`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]]]], `Tuple`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), `Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)"), [`SparsePauliOp`](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), `Mapping`\[`Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)")], `float`], `_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]], `Mapping`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`, `Tuple`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`], `...`]], `Union`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `str`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]]], `Real`]]]) – An iterable of circuits to run the noise learner program for. Alternatively, estimator pub-like (primitive unified bloc) objects can be specified, such as tuples `(circuit, observables)` or `(circuit, observables, parameter_values)`. In this case, the pub-like objects are converted to a list of circuits, and all the other fields (such as `observables` and `parameter_values`) are ignored. + + **Return type** + + [`RuntimeJobV2`](qiskit_ibm_runtime.RuntimeJobV2 "qiskit_ibm_runtime.runtime_job_v2.RuntimeJobV2") + + **Returns** + + The submitted job. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.DynamicalDecouplingOptions.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.DynamicalDecouplingOptions.mdx new file mode 100644 index 00000000000..936008896c4 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.DynamicalDecouplingOptions.mdx @@ -0,0 +1,55 @@ +--- +title: DynamicalDecouplingOptions +description: API reference for qiskit_ibm_runtime.options.DynamicalDecouplingOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.DynamicalDecouplingOptions +--- + +# DynamicalDecouplingOptions + + + Options for dynamical decoupling (DD). + + **Parameters** + + * **enable** – Whether to enable DD as specified by the other options in this class. Default: False. + + * **sequence\_type** – + + Which dynamical decoupling sequence to use. Default: “XX”. + + * `"XX"`: use the sequence `tau/2 - (+X) - tau - (+X) - tau/2` + * `"XpXm"`: use the sequence `tau/2 - (+X) - tau - (-X) - tau/2` + * `"XY4"`: : use the sequence `tau/2 - (+X) - tau - (+Y) - tau (-X) - tau - (-Y) - tau/2` + + * **extra\_slack\_distribution** – + + Where to put extra timing delays due to rounding issues. Rounding issues arise because the discrete time step `dt` of the system cannot be divided. This option takes following values. Default: “middle”. + + * `"middle"`: Put the extra slack to the interval at the middle of the sequence. + * `"edges"`: Divide the extra slack as evenly as possible into intervals at beginning and end of the sequence. + + * **scheduling\_method** – Whether to schedule gates as soon as (“asap”) or as late as (“alap”) possible. Default: “alap”. + + ## Attributes + + ### enable + + + + ### extra\_slack\_distribution + + + + ### scheduling\_method + + + + ### sequence\_type + + + + ## Methods + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.EnvironmentOptions.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.EnvironmentOptions.mdx new file mode 100644 index 00000000000..04458bfa4b1 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.EnvironmentOptions.mdx @@ -0,0 +1,51 @@ +--- +title: EnvironmentOptions +description: API reference for qiskit_ibm_runtime.options.EnvironmentOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.EnvironmentOptions +--- + +# EnvironmentOptions + + + Options related to the execution environment. + + **Parameters** + + * **log\_level** – logging level to set in the execution environment. The valid log levels are: `DEBUG`, `INFO`, `WARNING`, `ERROR`, and `CRITICAL`. Default: `WARNING`. + + * **callback** – + + Callback function to be invoked for any interim results and final result. The callback function will receive 2 positional parameters: + + > 1. Job ID + > 2. Job result. + + Default: `None`. + + * **job\_tags** – Tags to be assigned to the job. The tags can subsequently be used as a filter in the `qiskit_ibm_runtime.qiskit_runtime_service.jobs()` function call. Default: `None`. + + * **private** – Boolean value for marking jobs as private. + + ## Attributes + + ### callback + + + + ### job\_tags + + + + ### log\_level + + + + ### private + + + + ## Methods + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.EstimatorOptions.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.EstimatorOptions.mdx new file mode 100644 index 00000000000..a130a67412e --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.EstimatorOptions.mdx @@ -0,0 +1,131 @@ +--- +title: EstimatorOptions +description: API reference for qiskit_ibm_runtime.options.EstimatorOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.EstimatorOptions +--- + +# EstimatorOptions + + + Options for V2 Estimator. + + **Parameters** + + * **default\_precision** – The default precision to use for any PUB or `run()` call that does not specify one. Each estimator pub can specify its own precision. If the `run()` method is given a precision, then that value is used for all PUBs in the `run()` call that do not specify their own. Default: 0.015625 (1 / sqrt(4096)). + + * **default\_shots** – + + The total number of shots to use per circuit per configuration. + + + If set, this value overrides [`default_precision`](#qiskit_ibm_runtime.options.EstimatorOptions.default_precision "qiskit_ibm_runtime.options.EstimatorOptions.default_precision"). + + + A configuration is a combination of a specific parameter value binding set and a physical measurement basis. A physical measurement basis groups together some collection of qubit-wise commuting observables for some specific circuit/parameter value set to create a single measurement with basis rotations that is inserted into hardware executions. + + If twirling is enabled, the value of this option will be divided over circuit, randomizations, with a smaller number of shots per randomization. See the [`twirling`](#qiskit_ibm_runtime.options.EstimatorOptions.twirling "qiskit_ibm_runtime.options.EstimatorOptions.twirling") options. + + Default: `None`. + + * **optimization\_level** – + + (DEPRECATED) How much optimization to perform on the circuits. Higher levels generate more optimized circuits, at the expense of longer processing times. + + * 0: no optimization + * 1: light optimization + + Default: 0. + + * **resilience\_level** – + + How much resilience to build against errors. Higher levels generate more accurate results, at the expense of longer processing times. + + * 0: No mitigation. + * 1: Minimal mitigation costs. Mitigate error associated with readout errors. + * 2: Medium mitigation costs. Typically reduces bias in estimators but is not guaranteed to be zero bias. + + Refer to the [Configure error mitigation for Qiskit Runtime](/guides/configure-error-mitigation). for more information about the error mitigation methods used at each level. + + Default: 1. + + * **seed\_estimator** – Seed used to control sampling. Default: `None`. + + * **dynamical\_decoupling** – Suboptions for dynamical decoupling. See [`DynamicalDecouplingOptions`](qiskit_ibm_runtime.options.DynamicalDecouplingOptions "qiskit_ibm_runtime.options.DynamicalDecouplingOptions") for all available options. + + * **resilience** – Advanced resilience options to fine tune the resilience strategy. See [`ResilienceOptionsV2`](qiskit_ibm_runtime.options.ResilienceOptionsV2 "qiskit_ibm_runtime.options.ResilienceOptionsV2") for all available options. + + * **execution** – Execution time options. See [`ExecutionOptionsV2`](qiskit_ibm_runtime.options.ExecutionOptionsV2 "qiskit_ibm_runtime.options.ExecutionOptionsV2") for all available options. + + * **twirling** – Pauli twirling options. See [`TwirlingOptions`](qiskit_ibm_runtime.options.TwirlingOptions "qiskit_ibm_runtime.options.TwirlingOptions") for all available options. + + * **experimental** – Experimental options. These options are subject to change without notification, and stability is not guaranteed. + + ## Attributes + + ### default\_precision + + + + ### default\_shots + + + + ### dynamical\_decoupling + + + + ### environment + + + + ### execution + + + + ### experimental + + + + ### max\_execution\_time + + + + ### optimization\_level + + + + ### resilience + + + + ### resilience\_level + + + + ### seed\_estimator + + + + ### simulator + + + + ### twirling + + + + ## Methods + + ### update + + + Update the options. + + **Return type** + + `None` + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.ExecutionOptionsV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.ExecutionOptionsV2.mdx new file mode 100644 index 00000000000..8c7a346c2ec --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.ExecutionOptionsV2.mdx @@ -0,0 +1,30 @@ +--- +title: ExecutionOptionsV2 +description: API reference for qiskit_ibm_runtime.options.ExecutionOptionsV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.ExecutionOptionsV2 +--- + +# ExecutionOptionsV2 + + + Execution options for V2 primitives. + + ## Attributes + + ### init\_qubits + + + Whether to reset the qubits to the ground state for each shot. Default is `True`. + + + ### rep\_delay + + + The repetition delay. This is the delay between a measurement and the subsequent quantum circuit. This is only supported on backends that have `backend.dynamic_reprate_enabled=True`. It must be from the range supplied by `backend.rep_delay_range`. Default is given by `backend.default_rep_delay`. + + + ## Methods + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.LayerNoiseLearningOptions.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.LayerNoiseLearningOptions.mdx new file mode 100644 index 00000000000..4603d62fe98 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.LayerNoiseLearningOptions.mdx @@ -0,0 +1,45 @@ +--- +title: LayerNoiseLearningOptions +description: API reference for qiskit_ibm_runtime.options.LayerNoiseLearningOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.LayerNoiseLearningOptions +--- + +# LayerNoiseLearningOptions + + + Options for learning layer noise. This is only used by V2 Estimator. + + + These options are only used when the resilience level or options specify a technique that requires layer noise learning. + + + **Parameters** + + * **max\_layers\_to\_learn** – The max number of unique layers to learn. A `None` value indicates that there is no limit. If there are more unique layers present, then some layers will not be learned or mitigated. The learned layers are prioritized based on the number of times they occur in a set of run estimator PUBs, and for equally occurring layers are further sorted by the number of two-qubit gates in the layer. Default: 4. + * **shots\_per\_randomization** – The total number of shots to use per random learning circuit. A learning circuit is a random circuit at a specific learning depth with a specific measurement basis that is executed on hardware. Default: 128. + * **num\_randomizations** – The number of random circuits to use per learning circuit configuration. A configuration is a measurement basis and depth setting. For example, if your experiment has six depths, and nine required measurement bases, then setting this value to 32 will result in a total of `32 * 9 * 6` circuits that need to be executed (at [`shots_per_randomization`](#qiskit_ibm_runtime.options.LayerNoiseLearningOptions.shots_per_randomization "qiskit_ibm_runtime.options.LayerNoiseLearningOptions.shots_per_randomization") each). Default: 32. + * **layer\_pair\_depths** – The circuit depths (measured in number of pairs) to use in learning experiments. Pairs are used as the unit because we exploit the order-2 nature of our entangling gates in the noise learning implementation. A value of `3` would correspond to 6 layers of the layer of interest, for example. Default: (0, 1, 2, 4, 16, 32). + + ## Attributes + + ### layer\_pair\_depths + + + + ### max\_layers\_to\_learn + + + + ### num\_randomizations + + + + ### shots\_per\_randomization + + + + ## Methods + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.MeasureNoiseLearningOptions.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.MeasureNoiseLearningOptions.mdx new file mode 100644 index 00000000000..ff44a664e9a --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.MeasureNoiseLearningOptions.mdx @@ -0,0 +1,35 @@ +--- +title: MeasureNoiseLearningOptions +description: API reference for qiskit_ibm_runtime.options.MeasureNoiseLearningOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.MeasureNoiseLearningOptions +--- + +# MeasureNoiseLearningOptions + + + Options for measurement noise learning. This is only used by V2 Estimator. + + + These options are only used when the resilience level or options specify a technique that requires measurement noise learning. + + + **Parameters** + + * **num\_randomizations** – The number of random circuits to draw for the measurement learning experiment. Default: 32. + * **shots\_per\_randomization** – The number of shots to use for the learning experiment per random circuit. If “auto”, the value will be chosen automatically based on the input PUBs. Default: “auto”. + + ## Attributes + + ### num\_randomizations + + + + ### shots\_per\_randomization + + + + ## Methods + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.NoiseLearnerOptions.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.NoiseLearnerOptions.mdx new file mode 100644 index 00000000000..056bc2c483a --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.NoiseLearnerOptions.mdx @@ -0,0 +1,106 @@ +--- +title: NoiseLearnerOptions +description: API reference for qiskit_ibm_runtime.options.NoiseLearnerOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.NoiseLearnerOptions +--- + +# NoiseLearnerOptions + + + Options for [`NoiseLearner`](qiskit_ibm_runtime.noise_learner.NoiseLearner "qiskit_ibm_runtime.noise_learner.NoiseLearner"). + + ## Attributes + + ### environment + + + + ### experimental + + + Experimental options. + + These options are subject to change without notification, and stability is not guaranteed. + + + ### layer\_pair\_depths + + + The circuit depths (measured in number of pairs) to use in learning experiments. + + Pairs are used as the unit because we exploit the order-2 nature of our entangling gates in the noise learning implementation. A value of `3` would correspond to 6 layers of the layer of interest, for example. Default: (0, 1, 2, 4, 16, 32). + + + ### max\_execution\_time + + + + ### max\_layers\_to\_learn + + + The max number of unique layers to learn. + + A `None` value indicates that there is no limit. If there are more unique layers present, then some layers will not be learned or mitigated. The learned layers are prioritized based on the number of times they occur, and for equally occurring layers are further sorted by the number of two-qubit gates in the layer. Default: 4. + + + ### num\_randomizations + + + The number of random circuits to use per learning circuit configuration. + + A configuration is a measurement basis and depth setting. For example, if your experiment has six depths, and nine required measurement bases, then setting this value to 32 will result in a total of `32 * 9 * 6` circuits that need to be executed (at [`shots_per_randomization`](#qiskit_ibm_runtime.options.NoiseLearnerOptions.shots_per_randomization "qiskit_ibm_runtime.options.NoiseLearnerOptions.shots_per_randomization") each). Default: 32. + + + ### shots\_per\_randomization + + + The total number of shots to use per random learning circuit. + + A learning circuit is a random circuit at a specific learning depth with a specific measurement basis that is executed on hardware. Default: 128. + + + ### simulator + + + + ### twirling\_strategy + + + The twirling strategy in the identified layers of two-qubit twirled gates. + + The allowed values are: + + > * `"active"`: in each individual twirled layer, only the instruction qubits are twirled. + > + > * **`"active-circuit"`: in each individual twirled layer, the union of all instruction** + > + > qubits in the circuit are twirled. + > + > * **`"active-accum"`: in each individual twirled layer, the union of instructions qubits** + > + > in the circuit up to the current twirled layer are twirled. + > + > * `"all"`: in each individual twirled layer, all qubits in the input circuit are twirled. + + + Barriers and delay instructions are ignored when determining whether a qubit is active. + + + Default: “active-accum”. + + + ## Methods + + ### update + + + Update the options. + + **Return type** + + `None` + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.PecOptions.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.PecOptions.mdx new file mode 100644 index 00000000000..0e88d2db69c --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.PecOptions.mdx @@ -0,0 +1,41 @@ +--- +title: PecOptions +description: API reference for qiskit_ibm_runtime.options.PecOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.PecOptions +--- + +# PecOptions + + + Probabalistic error cancellation mitigation options. This is only used by V2 Estimator. + + **Parameters** + + * **max\_overhead** – The maximum circuit sampling overhead allowed, or `None` for no maximum. Default: 100. + + * **noise\_gain** – + + The amount by which to scale the noise, where: + + * A value of 0 corresponds to removing the full learned noise. + * A value of 1 corresponds to no removal of the learned noise. + * A value between 0 and 1 corresponds to partially removing the learned noise. + * A value greater than one corresponds to amplifying the learned noise. + + If “auto”, the value in the range `[0, 1]` will be chosen automatically for each input PUB based on the learned noise strength, `max_overhead`, and the depth of the PUB. Default: “auto”. + + ## Attributes + + ### max\_overhead + + + + ### noise\_gain + + + + ## Methods + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.ResilienceOptionsV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.ResilienceOptionsV2.mdx new file mode 100644 index 00000000000..b316c9c0baa --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.ResilienceOptionsV2.mdx @@ -0,0 +1,61 @@ +--- +title: ResilienceOptionsV2 +description: API reference for qiskit_ibm_runtime.options.ResilienceOptionsV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.ResilienceOptionsV2 +--- + +# ResilienceOptionsV2 + + + Resilience options for V2 Estimator. + + **Parameters** + + * **measure\_mitigation** – Whether to enable measurement error mitigation method. If you enable measurement mitigation, you can fine tune its noise learning by using [`measure_noise_learning`](#qiskit_ibm_runtime.options.ResilienceOptionsV2.measure_noise_learning "qiskit_ibm_runtime.options.ResilienceOptionsV2.measure_noise_learning"). See [`MeasureNoiseLearningOptions`](qiskit_ibm_runtime.options.MeasureNoiseLearningOptions "qiskit_ibm_runtime.options.MeasureNoiseLearningOptions") for all measurement mitigation noise learning options. Default: True. + * **measure\_noise\_learning** – Additional measurement noise learning options. See [`MeasureNoiseLearningOptions`](qiskit_ibm_runtime.options.MeasureNoiseLearningOptions "qiskit_ibm_runtime.options.MeasureNoiseLearningOptions") for all options. + * **zne\_mitigation** – Whether to turn on Zero Noise Extrapolation error mitigation method. If you enable ZNE, you can fine tune its options by using [`zne`](#qiskit_ibm_runtime.options.ResilienceOptionsV2.zne "qiskit_ibm_runtime.options.ResilienceOptionsV2.zne"). See [`ZneOptions`](qiskit_ibm_runtime.options.ZneOptions "qiskit_ibm_runtime.options.ZneOptions") for additional ZNE related options. Default: False. + * **zne** – Additional zero noise extrapolation mitigation options. See [`ZneOptions`](qiskit_ibm_runtime.options.ZneOptions "qiskit_ibm_runtime.options.ZneOptions") for all options. + * **pec\_mitigation** – Whether to turn on Probabilistic Error Cancellation error mitigation method. If you enable PEC, you can fine tune its options by using [`pec`](#qiskit_ibm_runtime.options.ResilienceOptionsV2.pec "qiskit_ibm_runtime.options.ResilienceOptionsV2.pec"). See [`PecOptions`](qiskit_ibm_runtime.options.PecOptions "qiskit_ibm_runtime.options.PecOptions") for additional PEC related options. Default: False. + * **pec** – Additional probabalistic error cancellation mitigation options. See [`PecOptions`](qiskit_ibm_runtime.options.PecOptions "qiskit_ibm_runtime.options.PecOptions") for all options. + * **layer\_noise\_learning** – Layer noise learning options. See [`LayerNoiseLearningOptions`](qiskit_ibm_runtime.options.LayerNoiseLearningOptions "qiskit_ibm_runtime.options.LayerNoiseLearningOptions") for all options. + * **layer\_noise\_model** – A `NoiseLearnerResult` or a sequence of `LayerError` objects. If set, all the mitigation strategies that require noise data (e.g., PEC and PEA) skip the noise learning stage, and instead gather the required information from `layer_noise_model`. Layers whose information is missing in `layer_noise_model` are treated as noiseless and their noise is not mitigated. + + ## Attributes + + ### layer\_noise\_learning + + + + ### layer\_noise\_model + + + + ### measure\_mitigation + + + + ### measure\_noise\_learning + + + + ### pec + + + + ### pec\_mitigation + + + + ### zne + + + + ### zne\_mitigation + + + + ## Methods + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.SamplerExecutionOptionsV2.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.SamplerExecutionOptionsV2.mdx new file mode 100644 index 00000000000..fe47d7a48c6 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.SamplerExecutionOptionsV2.mdx @@ -0,0 +1,46 @@ +--- +title: SamplerExecutionOptionsV2 +description: API reference for qiskit_ibm_runtime.options.SamplerExecutionOptionsV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.SamplerExecutionOptionsV2 +--- + +# SamplerExecutionOptionsV2 + + + Extension of [`ExecutionOptionsV2`](qiskit_ibm_runtime.options.ExecutionOptionsV2 "qiskit_ibm_runtime.options.ExecutionOptionsV2") for the sampler primitive. + + ## Attributes + + ### init\_qubits + + + Whether to reset the qubits to the ground state for each shot. Default is `True`. + + + ### meas\_type + + + How to process and return measurement results. + + This option sets the return type of all classical registers in all `SamplerPubResult`s. If a sampler pub with shape `pub_shape` has a circuit that contains a classical register with size `creg_size`, then the returned data associated with this register will have one of the following formats depending on the value of this option. + + * `"classified"`: A `BitArray` of shape `pub_shape` over `num_shots` with a number of bits equal to `creg_size`. + * `"kerneled"`: A complex NumPy array of shape `(*pub_shape, num_shots, creg_size)`, where each entry represents an IQ data point (resulting from kerneling the measurement trace) in arbitrary units. + * `"avg_kerneled"`: A complex NumPy array of shape `(*pub_shape, creg_size)`, where each entry represents an IQ data point (resulting from kerneling the measurement trace and averaging over shots) in arbitrary units. This option is equivalent to selecting `"kerneled"` and then averaging over the shots axis, but requires less data bandwidth. + + Default: “classified”. + + See [here](https://pubs.aip.org/aip/rsi/article/88/10/104703/836456) for a description of kerneling. + + + ### rep\_delay + + + The repetition delay. This is the delay between a measurement and the subsequent quantum circuit. This is only supported on backends that have `backend.dynamic_reprate_enabled=True`. It must be from the range supplied by `backend.rep_delay_range`. Default is given by `backend.default_rep_delay`. + + + ## Methods + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.SamplerOptions.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.SamplerOptions.mdx new file mode 100644 index 00000000000..4db4f8bf15c --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.SamplerOptions.mdx @@ -0,0 +1,68 @@ +--- +title: SamplerOptions +description: API reference for qiskit_ibm_runtime.options.SamplerOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.SamplerOptions +--- + +# SamplerOptions + + + Options for V2 Sampler. + + **Parameters** + + * **default\_shots** – The default number of shots to use if none are specified in the PUBs or in the run method. Default: 4096. + * **dynamical\_decoupling** – Suboptions for dynamical decoupling. See [`DynamicalDecouplingOptions`](qiskit_ibm_runtime.options.DynamicalDecouplingOptions "qiskit_ibm_runtime.options.DynamicalDecouplingOptions") for all available options. + * **execution** – Execution time options. See [`SamplerExecutionOptionsV2`](qiskit_ibm_runtime.options.SamplerExecutionOptionsV2 "qiskit_ibm_runtime.options.SamplerExecutionOptionsV2") for all available options. + * **twirling** – Pauli twirling options. See [`TwirlingOptions`](qiskit_ibm_runtime.options.TwirlingOptions "qiskit_ibm_runtime.options.TwirlingOptions") for all available options. + * **experimental** – Experimental options. + + ## Attributes + + ### default\_shots + + + + ### dynamical\_decoupling + + + + ### environment + + + + ### execution + + + + ### experimental + + + + ### max\_execution\_time + + + + ### simulator + + + + ### twirling + + + + ## Methods + + ### update + + + Update the options. + + **Return type** + + `None` + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.SimulatorOptions.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.SimulatorOptions.mdx new file mode 100644 index 00000000000..3d410b9df4a --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.SimulatorOptions.mdx @@ -0,0 +1,61 @@ +--- +title: SimulatorOptions +description: API reference for qiskit_ibm_runtime.options.SimulatorOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.SimulatorOptions +--- + +# SimulatorOptions + + + Simulator options. + + For best practice in simulating a backend make sure to pass the basis gates and coupling map of that backend. + + **Parameters** + + * **noise\_model** – Noise model for the simulator. Default: `None`. + * **seed\_simulator** – Random seed to control sampling. Default: `None`. + * **coupling\_map** – Directed coupling map to target in mapping. If the coupling map is symmetric, both directions need to be specified. Each entry in the list specifies a directed two-qubit interactions, e.g: `[[0, 1], [0, 3], [1, 2], [1, 5], [2, 5], [4, 1], [5, 3]]`. Default: `None`, which implies no connectivity constraints. + * **basis\_gates** – List of basis gate names to unroll to. For example, `['u1', 'u2', 'u3', 'cx']`. Unrolling is not done if not set. Default: all basis gates supported by the simulator. + + ## Attributes + + ### basis\_gates + + + + ### coupling\_map + + + + ### noise\_model + + + + ### seed\_simulator + + + + ## Methods + + ### set\_backend + + + Set backend for simulation. This method changes noise\_model, coupling\_map, basis\_gates according to given backend. + + **Parameters** + + **backend** (`Union`\[[`BackendV1`](/api/qiskit/qiskit.providers.BackendV1 "(in Qiskit v1.2)"), [`BackendV2`](/api/qiskit/qiskit.providers.BackendV2 "(in Qiskit v1.2)")]) – backend to be set. + + **Raises** + + **MissingOptionalLibraryError** – if qiskit-aer is not found. + + **Return type** + + `None` + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.TwirlingOptions.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.TwirlingOptions.mdx new file mode 100644 index 00000000000..e5b64099a1e --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.TwirlingOptions.mdx @@ -0,0 +1,81 @@ +--- +title: TwirlingOptions +description: API reference for qiskit_ibm_runtime.options.TwirlingOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.TwirlingOptions +--- + +# TwirlingOptions + + + Twirling options. + + ## Attributes + + ### enable\_gates + + + Whether to apply 2-qubit Clifford gate twirling. Default: False. + + + ### enable\_measure + + + Whether to enable twirling of measurements. + + Twirling will only be applied to those measurement registers not involved within a conditional logic. Default: True for Estimator, false for Sampler. + + + ### num\_randomizations + + + The number of random samples to use when twirling or peforming sampled mitigation. + + If `num_randomizations` is “auto”, for every pub executed `shots` times: + + > * If `shots_per_randomization` is also “auto”, `shots_per_randomization` is set first as described below, then `num_randomizations` is set as `ceil(shots/shots_per_randomization)`, where `ceil` is the ceiling function. + > * Otherwise, the value is set to `ceil(shots/shots_per_randomization)`. + > + > Default: “auto”. + + + The `shots` value specified in a PUB or in the `run()` method is considered part of the primitive execution interface and therefore is always obeyed. `default_shots`, on the other hand, is considered a Qiskit Runtime specific option. Therefore, the product of `num_randomizations` and `shots_per_randomization` takes precedence over `default_shots`. + + + + ### shots\_per\_randomization + + + The number of shots to run for each random sample. + + If “auto”, for every pub executed `shots` times: + + > * If `num_randomizations` is also “auto”, the value is set to `64` for PEC mitigation or to `max(64, ceil(shots / 32))` in all other cases, where `ceil` is the ceiling function. + > * Otherwise, the value is set to `ceil(shots/num_randomizations)`. + > + > Default: “auto”. + + + The `shots` value specified in a PUB or in the `run()` method is considered part of the primitive execution interface and therefore is always obeyed. `default_shots`, on the other hand, is considered a Qiskit Runtime specific option. Therefore, the product of `num_randomizations` and `shots_per_randomization` takes precedence over `default_shots`. + + + + ### strategy + + + Specify the strategy of twirling qubits in identified layers of 2-qubit twirled gates. + + Allowed values are: + + > * If `"active"` only the instruction qubits in each individual twirled layer will be twirled. + > * If `"active-circuit"` the union of all instruction qubits in the circuit will be twirled in each twirled layer. + > * If `"active-accum"` the union of instructions qubits in the circuit up to the current twirled layer will be twirled in each individual twirled layer. + > * If `"all"` all qubits in the input circuit will be twirled in each twirled layer. + > + > Default: “active-accum”. + + + ## Methods + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.ZneOptions.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.ZneOptions.mdx new file mode 100644 index 00000000000..b987d977579 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.options.ZneOptions.mdx @@ -0,0 +1,88 @@ +--- +title: ZneOptions +description: API reference for qiskit_ibm_runtime.options.ZneOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.ZneOptions +--- + +# ZneOptions + + + Zero noise extrapolation mitigation options. This is only used by the V2 Estimator. + + + Any V2 estimator is guaranteed to return data fields called `evs` and `stds` that report the desired expectation value estimates and errors, respectively. When ZNE options are enabled in the runtime estimator, additional data is returned. + + In particular, suppose an input pub has observable array shape `obs_shape` and parameter values shape `par_shape`, with corresponding pub shape `shape=np.broadcast_shapes(obs_shape, par_shape)`. Then the corresponding pub result will additionally contain: + + 1. **pub\_result.data.evs\_extrapolated and pub\_result.data.stds\_extrapolated,** + + both with shape `(*shape, num_extrapolators, num_evaluation_points)`, where `num_extrapolators` is the length of the list of `options.resilience.zne.extrapolators`, and `num_evaluation_points` is the length of the list `options.resilience.extrapolated_noise_factors`. These values provide evaluations of every extrapolator at every specified noise extrapolation value. + + 2. `pub_result.data.evs_noise_factors`, `pub_result.data.stds_noise_factors`, and `ensemble_stds_noise_factors` all have shape `(*shape, num_noise_factors)` where `num_noise_factors` is the length of `options.resilience.zne.noise_factors`. These values provide evaluations of the best-fit model at each of the noise amplifications. In the case of no twirling, both `*stds*` arrays will be equal, otherwise, `stds_noise_factors` is derived from the spread over twirling samples, whereas `ensemble_stds_noise_factors` assumes only shot noise and no drift. + + Technical note: for single observables with multiple basis terms it might turn out that multiple extrapolation methods are used in *the same* expectation value, for example, `XX` gets linearly extrapolated but `XY` gets exponentially extrapolated in the observable `{"XX": 0.5, "XY": 0.5}`. Let’s call this a *hetergeneous fit*. The data from (2) is evaluated from heterogeneous fits by selecting the best fit for every individual distinct term, whereas data from (1) is evaluated from forced homogenous fits, one for each provided extrapolator. If your work requires a nuanced distinction in this regard, we presently recommend that you use single-term observables in addition to your multi-term observables. + + + **Parameters** + + * **amplifier** – + + Which technique to use for amplifying noise. One of: + + * ”gate\_folding” (default) uses 2-qubit gate folding to amplify noise. If the noise factor requires amplifying only a subset of the gates, then these gates are chosen randomly. + + * ”gate\_folding\_front” uses 2-qubit gate folding to amplify noise. If the noise factor requires amplifying only a subset of the gates, then these gates are selected from the front of the topologically ordered DAG circuit. + + * ”gate\_folding\_back” uses 2-qubit gate folding to amplify noise. If the noise factor requires amplifying only a subset of the gates, then these gates are selected from the back of the topologically ordered DAG circuit. + + * ”pea” uses a technique called Probabilistic Error Amplification ([PEA](https://www.nature.com/articles/s41586-023-06096-3)) to amplify noise. + + When this option is selected, gate twirling will always be used whether or not it has been enabled in the options. + + In this technique, the twirled noise model of each each unique layer of entangling gates in your ISA circuits is learned beforehand, see [`LayerNoiseLearningOptions`](qiskit_ibm_runtime.options.LayerNoiseLearningOptions "qiskit_ibm_runtime.options.LayerNoiseLearningOptions") for relevant learning options. Once complete, your circuits are executed at each noise factor, where every entangling layer of your circuits is amplified by probabilistically injecting single-qubit noise proportional to the corresponding learned noise model. + + * **noise\_factors** – Noise factors to use for noise amplification. Default: `(1, 1.5, 2)` for PEA, and `(1, 3, 5)` otherwise. + + * **extrapolated\_noise\_factors** – Noise factors to evaluate the fit extrapolation models at. If unset, this will default to `[0, *noise_factors]`. This option does not affect execution or model fitting in any way, it only determines the points at which the `extrapolator`s are evaluated to be returned in the data fields called `evs_extrapolated` and `stds_extrapolated`. + + * **extrapolator** – + + Extrapolator(s) to try (in order) for extrapolating to zero noise. The available options are: + + > * `"exponential"`, which fits the data using an exponential decaying function defined as $f(x; A, au) = A e^{-x/ au}$, where $A = f(0; A, au)$ is the value at zero noise ($x=0$) and :math:\` au>0\` is a positive rate. + > * `"double_exponential"`, which uses a sum of two exponential as in Ref. 1. + > * `"polynomial_degree_(1 <= k <= 7)"`, which uses a polynomial function defined as $f(x; c_0, c_1, \ldots, c_k) = \sum_{i=0, k} c_i x^i$. + > * `"linear"`, which is equivalent to `"polynomial_degree_1"`. + > * `"fallback"`, which simply returns the raw data corresponding to the lowest noise factor (typically `1`) without performing any sort of extrapolation. + + If more than one extrapolator is specified, the `evs` and `stds` reported in the result’s data refer to the first one, while the extrapolated values (`evs_extrapolated` and `stds_extrapolated`) are sorted according to the order of the extrapolators provided. + + Default: `("exponential", "linear")`. + + **References** + + 1. Z. Cai, *Multi-exponential error extrapolation and combining error mitigation techniques for NISQ applications*, [npj Quantum Inf 7, 80 (2021)](https://www.nature.com/articles/s41534-021-00404-3) + + ## Attributes + + ### amplifier + + + + ### extrapolated\_noise\_factors + + + + ### extrapolator + + + + ### noise\_factors + + + + ## Methods + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford.mdx new file mode 100644 index 00000000000..2f5979b3ff8 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford.mdx @@ -0,0 +1,149 @@ +--- +title: ConvertISAToClifford +description: API reference for qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford +--- + +# ConvertISAToClifford + + + Convert the gates of an ISA circuit to Clifford gates. + + ISA circuits only contain Clifford gates from a restricted set or [`qiskit.circuit.library.RZGate`](/api/qiskit/qiskit.circuit.library.RZGate "(in Qiskit v1.2)")s by arbitrary angles. To convert them to Clifford circuits, this pass rounds the angle of every [`qiskit.circuit.library.RZGate`](/api/qiskit/qiskit.circuit.library.RZGate "(in Qiskit v1.2)") to the closest multiple of pi/2 (or to a random multiple of pi/2 if the angle is unspecified), while it skips every Clifford gate, measurement, and barrier. + + ```python + import numpy as np + + from qiskit.circuit import QuantumCircuit, Parameter + from qiskit.transpiler import PassManager + + from qiskit_ibm_runtime.transpiler.passes import ConvertISAToClifford + + # An ISA circuit ending with a Z rotation by pi/3 + qc = QuantumCircuit(2, 2) + qc.sx(0) + qc.rz(np.pi/2, 0) + qc.sx(0) + qc.barrier() + qc.cx(0, 1) + qc.rz(np.pi/3, 0) # non-Clifford Z rotation + qc.rz(Parameter("th"), 0) # Z rotation with unspecified angle + + # Turn into a Clifford circuit + pm = PassManager([ConvertISAToClifford()]) + clifford_qc = pm.run(qc) + ``` + + **Raises** + + **ValueError** – If the given circuit contains unsupported operations, such as non-ISA gates. + + ## Attributes + + ### is\_analysis\_pass + + + Check if the pass is an analysis pass. + + If the pass is an AnalysisPass, that means that the pass can analyze the DAG and write the results of that analysis in the property set. Modifications on the DAG are not allowed by this kind of pass. + + + ### is\_transformation\_pass + + + Check if the pass is a transformation pass. + + If the pass is a TransformationPass, that means that the pass can manipulate the DAG, but cannot modify the property set (but it can be read). + + + ## Methods + + ### \_\_call\_\_ + + + Runs the pass on circuit. + + **Parameters** + + * **circuit** (*QuantumCircuit*) – The dag on which the pass is run. + * **property\_set** (*PropertySet | dict | None*) – Input/output property set. An analysis pass might change the property set in-place. + + **Return type** + + QuantumCircuit + + **Returns** + + If on transformation pass, the resulting QuantumCircuit. If analysis pass, the input circuit. + + + ### execute + + + Execute optimization task for input Qiskit IR. + + **Parameters** + + * **passmanager\_ir** (`Any`) – Qiskit IR to optimize. + * **state** ([`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")) – State associated with workflow execution by the pass manager itself. + * **callback** (`Optional`\[`Callable`]) – A callback function which is caller per execution of optimization task. + + **Return type** + + `tuple`\[`Any`, [`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")] + + **Returns** + + Optimized Qiskit IR and state of the workflow. + + + ### name + + + Name of the pass. + + **Return type** + + `str` + + + ### run + + + Run a pass on the DAGCircuit. This is implemented by the pass developer. + + **Parameters** + + **dag** ([`DAGCircuit`](/api/qiskit/qiskit.dagcircuit.DAGCircuit "(in Qiskit v1.2)")) – the dag on which the pass is run. + + **Raises** + + **NotImplementedError** – when this is left unimplemented for a pass. + + **Return type** + + [`DAGCircuit`](/api/qiskit/qiskit.dagcircuit.DAGCircuit "(in Qiskit v1.2)") + + + ### update\_status + + + Update workflow status. + + **Parameters** + + * **state** ([`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")) – Pass manager state to update. + * **run\_state** (`RunState`) – Completion status of current task. + + **Return type** + + [`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)") + + **Returns** + + Updated pass manager state. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.ConvertIdToDelay.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.ConvertIdToDelay.mdx new file mode 100644 index 00000000000..e2d6dca43b7 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.ConvertIdToDelay.mdx @@ -0,0 +1,127 @@ +--- +title: ConvertIdToDelay +description: API reference for qiskit_ibm_runtime.transpiler.passes.ConvertIdToDelay +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.transpiler.passes.ConvertIdToDelay +--- + +# ConvertIdToDelay + + + Convert `qiskit.circuit.library.standard_gates.IGate` to a delay of the corresponding length. + + Convert [`qiskit.circuit.library.IGate`](/api/qiskit/qiskit.circuit.library.IGate "(in Qiskit v1.2)") to a Convert [`qiskit.circuit.Delay`](/api/qiskit/circuit#qiskit.circuit.Delay "(in Qiskit v1.2)"). + + **Parameters** + + * **duration** – Duration of the delay to replace the identity gate with. + * **gate** (`str`) – Single qubit gate to extract duration from. + + ## Attributes + + ### is\_analysis\_pass + + + Check if the pass is an analysis pass. + + If the pass is an AnalysisPass, that means that the pass can analyze the DAG and write the results of that analysis in the property set. Modifications on the DAG are not allowed by this kind of pass. + + + ### is\_transformation\_pass + + + Check if the pass is a transformation pass. + + If the pass is a TransformationPass, that means that the pass can manipulate the DAG, but cannot modify the property set (but it can be read). + + + ## Methods + + ### \_\_call\_\_ + + + Runs the pass on circuit. + + **Parameters** + + * **circuit** (*QuantumCircuit*) – The dag on which the pass is run. + * **property\_set** (*PropertySet | dict | None*) – Input/output property set. An analysis pass might change the property set in-place. + + **Return type** + + QuantumCircuit + + **Returns** + + If on transformation pass, the resulting QuantumCircuit. If analysis pass, the input circuit. + + + ### execute + + + Execute optimization task for input Qiskit IR. + + **Parameters** + + * **passmanager\_ir** (`Any`) – Qiskit IR to optimize. + * **state** ([`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")) – State associated with workflow execution by the pass manager itself. + * **callback** (`Optional`\[`Callable`]) – A callback function which is caller per execution of optimization task. + + **Return type** + + `tuple`\[`Any`, [`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")] + + **Returns** + + Optimized Qiskit IR and state of the workflow. + + + ### name + + + Name of the pass. + + **Return type** + + `str` + + + ### run + + + Run a pass on the DAGCircuit. This is implemented by the pass developer. + + **Parameters** + + **dag** ([`DAGCircuit`](/api/qiskit/qiskit.dagcircuit.DAGCircuit "(in Qiskit v1.2)")) – the dag on which the pass is run. + + **Raises** + + **NotImplementedError** – when this is left unimplemented for a pass. + + **Return type** + + [`DAGCircuit`](/api/qiskit/qiskit.dagcircuit.DAGCircuit "(in Qiskit v1.2)") + + + ### update\_status + + + Update workflow status. + + **Parameters** + + * **state** ([`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")) – Pass manager state to update. + * **run\_state** (`RunState`) – Completion status of current task. + + **Return type** + + [`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)") + + **Returns** + + Updated pass manager state. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis.mdx new file mode 100644 index 00000000000..c456bfe3cdb --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis.mdx @@ -0,0 +1,142 @@ +--- +title: ALAPScheduleAnalysis +description: API reference for qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis +--- + +# ALAPScheduleAnalysis + + + Dynamic circuits as-late-as-possible (ALAP) scheduling analysis pass. + + This is a scheduler designed to work for the unique scheduling constraints of the dynamic circuits backends due to the limitations imposed by hardware. This is expected to evolve over time as the dynamic circuit backends also change. + + In its current form this is similar to Qiskit’s ALAP scheduler in which instructions start as late as possible. + + The primary differences are that: + + * **Resets and control-flow currently trigger the end of a “quantum block”. The period between the end** + + of the block and the next is *nondeterministic* ie., we do not know when the next block will begin (as we could be evaluating a classical function of nondeterministic length) and therefore the next block starts at a *relative* t=0. + + * During a measurement it is possible to apply gates in parallel on disjoint qubits. + + * Measurements and resets on disjoint qubits happen simultaneously and are part of the same block. + + Scheduler for dynamic circuit backends. + + **Parameters** + + * **durations** ([`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)")) – Durations of instructions to be used in scheduling. + * **block\_ordering\_callable** (`Optional`\[`Callable`\[\[[`DAGCircuit`](/api/qiskit/qiskit.dagcircuit.DAGCircuit "(in Qiskit v1.2)")], `Generator`\[[`DAGOpNode`](/api/qiskit/qiskit.dagcircuit.DAGOpNode "(in Qiskit v1.2)"), `None`, `None`]]]) – A callable used to produce an ordering of the nodes to minimize the number of blocks needed. If not provided, `block_order_op_nodes()` will be used. + + ## Attributes + + ### is\_analysis\_pass + + + Check if the pass is an analysis pass. + + If the pass is an AnalysisPass, that means that the pass can analyze the DAG and write the results of that analysis in the property set. Modifications on the DAG are not allowed by this kind of pass. + + + ### is\_transformation\_pass + + + Check if the pass is a transformation pass. + + If the pass is a TransformationPass, that means that the pass can manipulate the DAG, but cannot modify the property set (but it can be read). + + + ## Methods + + ### \_\_call\_\_ + + + Runs the pass on circuit. + + **Parameters** + + * **circuit** (*QuantumCircuit*) – The dag on which the pass is run. + * **property\_set** (*PropertySet | dict | None*) – Input/output property set. An analysis pass might change the property set in-place. + + **Return type** + + QuantumCircuit + + **Returns** + + If on transformation pass, the resulting QuantumCircuit. If analysis pass, the input circuit. + + + ### execute + + + Execute optimization task for input Qiskit IR. + + **Parameters** + + * **passmanager\_ir** (`Any`) – Qiskit IR to optimize. + * **state** ([`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")) – State associated with workflow execution by the pass manager itself. + * **callback** (`Optional`\[`Callable`]) – A callback function which is caller per execution of optimization task. + + **Return type** + + `tuple`\[`Any`, [`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")] + + **Returns** + + Optimized Qiskit IR and state of the workflow. + + + ### name + + + Name of the pass. + + **Return type** + + `str` + + + ### run + + + Run the ASAPSchedule pass on dag. :type dag: [`DAGCircuit`](/api/qiskit/qiskit.dagcircuit.DAGCircuit "(in Qiskit v1.2)") :param dag: DAG to schedule. :type dag: DAGCircuit + + **Raises** + + * **TranspilerError** – if the circuit is not mapped on physical qubits. + * **TranspilerError** – if conditional bit is added to non-supported instruction. + + **Return type** + + `None` + + **Returns** + + The scheduled DAGCircuit. + + + ### update\_status + + + Update workflow status. + + **Parameters** + + * **state** ([`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")) – Pass manager state to update. + * **run\_state** (`RunState`) – Completion status of current task. + + **Return type** + + [`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)") + + **Returns** + + Updated pass manager state. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis.mdx new file mode 100644 index 00000000000..93452f065e3 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis.mdx @@ -0,0 +1,142 @@ +--- +title: ASAPScheduleAnalysis +description: API reference for qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis +--- + +# ASAPScheduleAnalysis + + + Dynamic circuits as-soon-as-possible (ASAP) scheduling analysis pass. + + This is a scheduler designed to work for the unique scheduling constraints of the dynamic circuits backends due to the limitations imposed by hardware. This is expected to evolve over time as the dynamic circuit backends also change. + + In its current form this is similar to Qiskit’s ASAP scheduler in which instructions start as early as possible. + + The primary differences are that: + + * **Resets and control-flow currently trigger the end of a “quantum block”. The period between the end** + + of the block and the next is *nondeterministic* ie., we do not know when the next block will begin (as we could be evaluating a classical function of nondeterministic length) and therefore the next block starts at a *relative* t=0. + + * During a measurement it is possible to apply gates in parallel on disjoint qubits. + + * Measurements and resets on disjoint qubits happen simultaneously and are part of the same block. + + Scheduler for dynamic circuit backends. + + **Parameters** + + * **durations** ([`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)")) – Durations of instructions to be used in scheduling. + * **block\_ordering\_callable** (`Optional`\[`Callable`\[\[[`DAGCircuit`](/api/qiskit/qiskit.dagcircuit.DAGCircuit "(in Qiskit v1.2)")], `Generator`\[[`DAGOpNode`](/api/qiskit/qiskit.dagcircuit.DAGOpNode "(in Qiskit v1.2)"), `None`, `None`]]]) – A callable used to produce an ordering of the nodes to minimize the number of blocks needed. If not provided, `block_order_op_nodes()` will be used. + + ## Attributes + + ### is\_analysis\_pass + + + Check if the pass is an analysis pass. + + If the pass is an AnalysisPass, that means that the pass can analyze the DAG and write the results of that analysis in the property set. Modifications on the DAG are not allowed by this kind of pass. + + + ### is\_transformation\_pass + + + Check if the pass is a transformation pass. + + If the pass is a TransformationPass, that means that the pass can manipulate the DAG, but cannot modify the property set (but it can be read). + + + ## Methods + + ### \_\_call\_\_ + + + Runs the pass on circuit. + + **Parameters** + + * **circuit** (*QuantumCircuit*) – The dag on which the pass is run. + * **property\_set** (*PropertySet | dict | None*) – Input/output property set. An analysis pass might change the property set in-place. + + **Return type** + + QuantumCircuit + + **Returns** + + If on transformation pass, the resulting QuantumCircuit. If analysis pass, the input circuit. + + + ### execute + + + Execute optimization task for input Qiskit IR. + + **Parameters** + + * **passmanager\_ir** (`Any`) – Qiskit IR to optimize. + * **state** ([`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")) – State associated with workflow execution by the pass manager itself. + * **callback** (`Optional`\[`Callable`]) – A callback function which is caller per execution of optimization task. + + **Return type** + + `tuple`\[`Any`, [`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")] + + **Returns** + + Optimized Qiskit IR and state of the workflow. + + + ### name + + + Name of the pass. + + **Return type** + + `str` + + + ### run + + + Run the ALAPSchedule pass on dag. :type dag: [`DAGCircuit`](/api/qiskit/qiskit.dagcircuit.DAGCircuit "(in Qiskit v1.2)") :param dag: DAG to schedule. :type dag: DAGCircuit + + **Raises** + + * **TranspilerError** – if the circuit is not mapped on physical qubits. + * **TranspilerError** – if conditional bit is added to non-supported instruction. + + **Return type** + + [`DAGCircuit`](/api/qiskit/qiskit.dagcircuit.DAGCircuit "(in Qiskit v1.2)") + + **Returns** + + The scheduled DAGCircuit. + + + ### update\_status + + + Update workflow status. + + **Parameters** + + * **state** ([`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")) – Pass manager state to update. + * **run\_state** (`RunState`) – Completion status of current task. + + **Return type** + + [`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)") + + **Returns** + + Updated pass manager state. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder.mdx new file mode 100644 index 00000000000..35a8c7901ab --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder.mdx @@ -0,0 +1,135 @@ +--- +title: BlockBasePadder +description: API reference for qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder +--- + +# BlockBasePadder + + + The base class of padding pass. + + This pass requires one of scheduling passes to be executed before itself. Since there are multiple scheduling strategies, the selection of scheduling pass is left in the hands of the pass manager designer. Once a scheduling analysis pass is run, `node_start_time` is generated in the `property_set`. This information is represented by a python dictionary of the expected instruction execution times keyed on the node instances. The padding pass expects all `DAGOpNode` in the circuit to be scheduled. + + This base class doesn’t define any sequence to interleave, but it manages the location where the sequence is inserted, and provides a set of information necessary to construct the proper sequence. Thus, a subclass of this pass just needs to implement `_pad()` method, in which the subclass constructs a circuit block to insert. This mechanism removes lots of boilerplate logic to manage whole DAG circuits. + + Note that padding pass subclasses should define interleaving sequences satisfying: + + > * Interleaved sequence does not change start time of other nodes + > * Interleaved sequence should have total duration of the provided `time_interval`. + + Any manipulation violating these constraints may prevent this base pass from correctly tracking the start time of each instruction, which may result in violation of hardware alignment constraints. + + ## Attributes + + ### is\_analysis\_pass + + + Check if the pass is an analysis pass. + + If the pass is an AnalysisPass, that means that the pass can analyze the DAG and write the results of that analysis in the property set. Modifications on the DAG are not allowed by this kind of pass. + + + ### is\_transformation\_pass + + + Check if the pass is a transformation pass. + + If the pass is a TransformationPass, that means that the pass can manipulate the DAG, but cannot modify the property set (but it can be read). + + + ## Methods + + ### \_\_call\_\_ + + + Runs the pass on circuit. + + **Parameters** + + * **circuit** (*QuantumCircuit*) – The dag on which the pass is run. + * **property\_set** (*PropertySet | dict | None*) – Input/output property set. An analysis pass might change the property set in-place. + + **Return type** + + QuantumCircuit + + **Returns** + + If on transformation pass, the resulting QuantumCircuit. If analysis pass, the input circuit. + + + ### execute + + + Execute optimization task for input Qiskit IR. + + **Parameters** + + * **passmanager\_ir** (`Any`) – Qiskit IR to optimize. + * **state** ([`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")) – State associated with workflow execution by the pass manager itself. + * **callback** (`Optional`\[`Callable`]) – A callback function which is caller per execution of optimization task. + + **Return type** + + `tuple`\[`Any`, [`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")] + + **Returns** + + Optimized Qiskit IR and state of the workflow. + + + ### name + + + Name of the pass. + + **Return type** + + `str` + + + ### run + + + Run the padding pass on `dag`. + + **Parameters** + + **dag** ([`DAGCircuit`](/api/qiskit/qiskit.dagcircuit.DAGCircuit "(in Qiskit v1.2)")) – DAG to be checked. + + **Returns** + + DAG with idle time filled with instructions. + + **Return type** + + DAGCircuit + + **Raises** + + **TranspilerError** – When a particular node is not scheduled, likely some transform pass is inserted before this node is called. + + + ### update\_status + + + Update workflow status. + + **Parameters** + + * **state** ([`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")) – Pass manager state to update. + * **run\_state** (`RunState`) – Completion status of current task. + + **Return type** + + [`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)") + + **Returns** + + Updated pass manager state. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.mdx new file mode 100644 index 00000000000..78ef2e49e1f --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.mdx @@ -0,0 +1,120 @@ +--- +title: DynamicCircuitInstructionDurations +description: API reference for qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations +--- + +# DynamicCircuitInstructionDurations + + + For dynamic circuits the IBM Qiskit backend currently reports instruction durations that differ compared with those required for the legacy Qobj-based path. For now we use this class to report updated InstructionDurations. TODO: This would be mitigated by a specialized Backend/Target for dynamic circuit backends. + + Dynamic circuit instruction durations. + + ## Attributes + + ### MEASURE\_PATCH\_CYCLES + + + + ### MEASURE\_PATCH\_ODD\_OFFSET + + + + ## Methods + + ### from\_backend + + + Construct a `DynamicInstructionDurations` object from the backend. :type backend: [`Backend`](/api/qiskit/qiskit.providers.Backend "(in Qiskit v1.2)") :param backend: backend from which durations (gate lengths) and dt are extracted. + + **Returns** + + The InstructionDurations constructed from backend. + + **Return type** + + DynamicInstructionDurations + + + ### from\_target + + + Construct a `DynamicInstructionDurations` object from the target. :type target: [`Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") :param target: target from which durations (gate lengths) and dt are extracted. + + **Returns** + + The InstructionDurations constructed from backend. + + **Return type** + + DynamicInstructionDurations + + + ### get + + + Get the duration of the instruction with the name, qubits, and parameters. + + Some instructions may have a parameter dependent duration. + + **Parameters** + + * **inst** (*str |* [*qiskit.circuit.Instruction*](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")) – An instruction or its name to be queried. + * **qubits** (*int | list\[int]*) – Qubit indices that the instruction acts on. + * **unit** (*str*) – The unit of duration to be returned. It must be ‘s’ or ‘dt’. + * **parameters** (*list\[float] | None*) – The value of the parameters of the desired instruction. + + **Returns** + + The duration of the instruction on the qubits. + + **Return type** + + float|int + + **Raises** + + **TranspilerError** – No duration is defined for the instruction. + + + ### units\_used + + + Get the set of all units used in this instruction durations. + + **Return type** + + `set`\[`str`] + + **Returns** + + Set of units used in this instruction durations. + + + ### update + + + Update self with inst\_durations (inst\_durations overwrite self). Overrides the default durations for certain hardcoded instructions. + + **Parameters** + + * **inst\_durations** (`Union`\[`List`\[`Tuple`\[`str`, `Optional`\[`Iterable`\[`int`]], `float`, `Optional`\[`Iterable`\[`float`]], `str`]], `List`\[`Tuple`\[`str`, `Optional`\[`Iterable`\[`int`]], `float`, `Optional`\[`Iterable`\[`float`]]]], `List`\[`Tuple`\[`str`, `Optional`\[`Iterable`\[`int`]], `float`, `str`]], `List`\[`Tuple`\[`str`, `Optional`\[`Iterable`\[`int`]], `float`]], [`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)"), `None`]) – Instruction durations to be merged into self (overwriting self). + * **dt** (`Optional`\[`float`]) – Sampling duration in seconds of the target backend. + + **Returns** + + The updated InstructionDurations. + + **Return type** + + InstructionDurations + + **Raises** + + **TranspilerError** – If the format of instruction\_durations is invalid. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay.mdx new file mode 100644 index 00000000000..79bd892a63d --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay.mdx @@ -0,0 +1,149 @@ +--- +title: PadDelay +description: API reference for qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay +--- + +# PadDelay + + + Padding idle time with Delay instructions. + + Consecutive delays will be merged in the output of this pass. + + The ASAP-scheduled circuit output may become + + ```python + ┌────────────────┐ + q_0: ┤ Delay(160[dt]) ├──■── + └─────┬───┬──────┘┌─┴─┐ + q_1: ──────┤ X ├───────┤ X ├ + └───┘ └───┘ + ``` + + Note that the additional idle time of 60dt on the `q_0` wire coming from the duration difference between `Delay` of 100dt (`q_0`) and `XGate` of 160 dt (`q_1`) is absorbed in the delay instruction on the `q_0` wire, i.e. in total 160 dt. + + See [`BlockBasePadder`](qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder "qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder") pass for details. + + Create new padding delay pass. + + **Parameters** + + * **durations** ([`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)")) – Durations of instructions to be used in scheduling. + * **fill\_very\_end** (`bool`) – Set `True` to fill the end of circuit with delay. + * **schedule\_idle\_qubits** (`bool`) – Set to true if you’d like a delay inserted on idle qubits. This is useful for timeline visualizations, but may cause issues for execution on large backends. + * **block\_ordering\_callable** (`Optional`\[`Callable`\[\[[`DAGCircuit`](/api/qiskit/qiskit.dagcircuit.DAGCircuit "(in Qiskit v1.2)")], `Generator`\[[`DAGOpNode`](/api/qiskit/qiskit.dagcircuit.DAGOpNode "(in Qiskit v1.2)"), `None`, `None`]]]) – A callable used to produce an ordering of the nodes to minimize the number of blocks needed. If not provided, `block_order_op_nodes()` will be used. + + ## Attributes + + ### is\_analysis\_pass + + + Check if the pass is an analysis pass. + + If the pass is an AnalysisPass, that means that the pass can analyze the DAG and write the results of that analysis in the property set. Modifications on the DAG are not allowed by this kind of pass. + + + ### is\_transformation\_pass + + + Check if the pass is a transformation pass. + + If the pass is a TransformationPass, that means that the pass can manipulate the DAG, but cannot modify the property set (but it can be read). + + + ## Methods + + ### \_\_call\_\_ + + + Runs the pass on circuit. + + **Parameters** + + * **circuit** (*QuantumCircuit*) – The dag on which the pass is run. + * **property\_set** (*PropertySet | dict | None*) – Input/output property set. An analysis pass might change the property set in-place. + + **Return type** + + QuantumCircuit + + **Returns** + + If on transformation pass, the resulting QuantumCircuit. If analysis pass, the input circuit. + + + ### execute + + + Execute optimization task for input Qiskit IR. + + **Parameters** + + * **passmanager\_ir** (`Any`) – Qiskit IR to optimize. + * **state** ([`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")) – State associated with workflow execution by the pass manager itself. + * **callback** (`Optional`\[`Callable`]) – A callback function which is caller per execution of optimization task. + + **Return type** + + `tuple`\[`Any`, [`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")] + + **Returns** + + Optimized Qiskit IR and state of the workflow. + + + ### name + + + Name of the pass. + + **Return type** + + `str` + + + ### run + + + Run the padding pass on `dag`. + + **Parameters** + + **dag** ([`DAGCircuit`](/api/qiskit/qiskit.dagcircuit.DAGCircuit "(in Qiskit v1.2)")) – DAG to be checked. + + **Returns** + + DAG with idle time filled with instructions. + + **Return type** + + DAGCircuit + + **Raises** + + **TranspilerError** – When a particular node is not scheduled, likely some transform pass is inserted before this node is called. + + + ### update\_status + + + Update workflow status. + + **Parameters** + + * **state** ([`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")) – Pass manager state to update. + * **run\_state** (`RunState`) – Completion status of current task. + + **Return type** + + [`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)") + + **Returns** + + Updated pass manager state. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling.mdx new file mode 100644 index 00000000000..d5afda79f5b --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling.mdx @@ -0,0 +1,286 @@ +--- +title: PadDynamicalDecoupling +description: API reference for qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling +--- + +# PadDynamicalDecoupling + + + Dynamical decoupling insertion pass for IBM dynamic circuit backends. + + This pass works on a scheduled, physical circuit. It scans the circuit for idle periods of time (i.e. those containing delay instructions) and inserts a DD sequence of gates in those spots. These gates amount to the identity, so do not alter the logical action of the circuit, but have the effect of mitigating decoherence in those idle periods. As a special case, the pass allows a length-1 sequence (e.g. \[XGate()]). In this case the DD insertion happens only when the gate inverse can be absorbed into a neighboring gate in the circuit (so we would still be replacing Delay with something that is equivalent to the identity). This can be used, for instance, as a Hahn echo. This pass ensures that the inserted sequence preserves the circuit exactly (including global phase). + + ```python + import numpy as np + from qiskit.circuit import QuantumCircuit + from qiskit.circuit.library import XGate + from qiskit.transpiler import PassManager, InstructionDurations + from qiskit.visualization import timeline_drawer + + from qiskit_ibm_runtime.transpiler.passes.scheduling import ALAPScheduleAnalysis + from qiskit_ibm_runtime.transpiler.passes.scheduling import PadDynamicalDecoupling + + circ = QuantumCircuit(4) + circ.h(0) + circ.cx(0, 1) + circ.cx(1, 2) + circ.cx(2, 3) + circ.measure_all() + durations = InstructionDurations( + [("h", 0, 50), ("cx", [0, 1], 700), ("reset", None, 10), + ("cx", [1, 2], 200), ("cx", [2, 3], 300), + ("x", None, 50), ("measure", None, 1000)] + ) + ``` + + ```python + # balanced X-X sequence on all qubits + dd_sequence = [XGate(), XGate()] + pm = PassManager([ALAPScheduleAnalysis(durations), + PadDynamicalDecoupling(durations, dd_sequence)]) + circ_dd = pm.run(circ) + circ_dd.draw() + ``` + + ```python + ┌───┐ ┌───────────────┐ ┌───┐ » + q_0: ──────┤ H ├─────────■──┤ Delay(96[dt]) ├──────┤ X ├──────» + ┌─────┴───┴─────┐ ┌─┴─┐└───────────────┘┌─────┴───┴─────┐» + q_1: ┤ Delay(50[dt]) ├─┤ X ├────────■────────┤ Delay(48[dt]) ├» + ├───────────────┴┐└───┘ ┌─┴─┐ └───────────────┘» + q_2: ┤ Delay(750[dt]) ├───────────┤ X ├──────────────■────────» + ├────────────────┤ └───┘ ┌─┴─┐ » + q_3: ┤ Delay(950[dt]) ├────────────────────────────┤ X ├──────» + └────────────────┘ └───┘ » + meas: 4/═════════════════════════════════════════════════════════» + » + « ┌────────────────┐ ┌───┐ ┌───────────────┐ » + « q_0: ┤ Delay(208[dt]) ├──────┤ X ├──────┤ Delay(96[dt]) ├─────────────────» + « └─────┬───┬──────┘┌─────┴───┴─────┐└─────┬───┬─────┘┌───────────────┐» + « q_1: ──────┤ X ├───────┤ Delay(96[dt]) ├──────┤ X ├──────┤ Delay(56[dt]) ├» + « └───┘ └───────────────┘ └───┘ └───────────────┘» + « q_2: ─────────────────────────────────────────────────────────────────────» + « » + « q_3: ─────────────────────────────────────────────────────────────────────» + « » + «meas: 4/═════════════════════════════════════════════════════════════════════» + « » + « ░ ┌─┐ + « q_0: ─░─┤M├───────── + « ░ └╥┘┌─┐ + « q_1: ─░──╫─┤M├────── + « ░ ║ └╥┘┌─┐ + « q_2: ─░──╫──╫─┤M├─── + « ░ ║ ║ └╥┘┌─┐ + « q_3: ─░──╫──╫──╫─┤M├ + « ░ ║ ║ ║ └╥┘ + «meas: 4/════╩══╩══╩══╩═ + « 0 1 2 3 + ``` + + ```python + # Uhrig sequence on qubit 0 + n = 8 + dd_sequence = [XGate()] * n + def uhrig_pulse_location(k): + return np.sin(np.pi * (k + 1) / (2 * n + 2)) ** 2 + spacings = [] + for k in range(n): + spacings.append(uhrig_pulse_location(k) - sum(spacings)) + spacings.append(1 - sum(spacings)) + pm = PassManager( + [ + ALAPScheduleAnalysis(durations), + PadDynamicalDecoupling(durations, dd_sequence, qubits=[0], spacings=spacings), + ] + ) + circ_dd = pm.run(circ) + circ_dd.draw() + ``` + + ```python + ┌───┐ ┌────────────────┐ ░ ┌─┐ » + q_0: ──────┤ H ├─────────■──┤ Delay(500[dt]) ├───────────────────░─┤M├──────» + ┌─────┴───┴─────┐ ┌─┴─┐└────────────────┘┌────────────────┐ ░ └╥┘┌─┐ » + q_1: ┤ Delay(50[dt]) ├─┤ X ├────────■─────────┤ Delay(300[dt]) ├─░──╫─┤M├───» + ├───────────────┴┐└───┘ ┌─┴─┐ └────────────────┘ ░ ║ └╥┘┌─┐» + q_2: ┤ Delay(750[dt]) ├───────────┤ X ├───────────────■──────────░──╫──╫─┤M├» + ├────────────────┤ └───┘ ┌─┴─┐ ░ ║ ║ └╥┘» + q_3: ┤ Delay(950[dt]) ├─────────────────────────────┤ X ├────────░──╫──╫──╫─» + └────────────────┘ └───┘ ░ ║ ║ ║ » + meas: 4/═══════════════════════════════════════════════════════════════╩══╩══╩═» + 0 1 2 » + « + « q_0: ─── + « + « q_1: ─── + « + « q_2: ─── + « ┌─┐ + « q_3: ┤M├ + « └╥┘ + «meas: 4/═╩═ + « 3 + ``` + + + You need to call [`ALAPScheduleAnalysis`](qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis "qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis") before running dynamical decoupling to guarantee your circuit satisfies acquisition alignment constraints for dynamic circuit backends. + + + Dynamical decoupling initializer. + + **Parameters** + + * **durations** ([`InstructionDurations`](/api/qiskit/qiskit.transpiler.InstructionDurations "(in Qiskit v1.2)")) – Durations of instructions to be used in scheduling. + + * **dd\_sequences** (`Union`\[`List`\[[`Gate`](/api/qiskit/qiskit.circuit.Gate "(in Qiskit v1.2)")], `List`\[`List`\[[`Gate`](/api/qiskit/qiskit.circuit.Gate "(in Qiskit v1.2)")]]]) – Sequence of gates to apply in idle spots. Alternatively a list of gate sequences may be supplied that will preferentially be inserted if there is a delay of sufficient duration. This may be tuned by the optionally supplied `sequence_min_length_ratios`. + + * **qubits** (`Optional`\[`List`\[`int`]]) – Physical qubits on which to apply DD. If None, all qubits will undergo DD (when possible). + + * **spacings** (`Union`\[`List`\[`List`\[`float`]], `List`\[`float`], `None`]) – A list of lists of spacings between the DD gates. The available slack will be divided according to this. The list length must be one more than the length of dd\_sequence, and the elements must sum to 1. If None, a balanced spacing will be used \[d/2, d, d, …, d, d, d/2]. This spacing only applies to the first subcircuit, if a `coupling_map` is specified + + * **skip\_reset\_qubits** (`bool`) – If True, does not insert DD on idle periods that immediately follow initialized/reset qubits (as qubits in the ground state are less susceptible to decoherence). + + * **pulse\_alignment** (`int`) – The hardware constraints for gate timing allocation. This is usually provided from `backend.configuration().timing_constraints`. If provided, the delay length, i.e. `spacing`, is implicitly adjusted to satisfy this constraint. + + * **extra\_slack\_distribution** (`str`) – + + The option to control the behavior of DD sequence generation. The duration of the DD sequence should be identical to an idle time in the scheduled quantum circuit, however, the delay in between gates comprising the sequence should be integer number in units of dt, and it might be further truncated when `pulse_alignment` is specified. This sometimes results in the duration of the created sequence being shorter than the idle time that you want to fill with the sequence, i.e. extra slack. This option takes following values. + + > * ”middle”: Put the extra slack to the interval at the middle of the sequence. + > * ”edges”: Divide the extra slack as evenly as possible into intervals at beginning and end of the sequence. + + * **sequence\_min\_length\_ratios** (`Union`\[`int`, `List`\[`int`], `None`]) – List of minimum delay length to DD sequence ratio to satisfy in order to insert the DD sequence. For example if the X-X dynamical decoupling sequence is 320dt samples long and the available delay is 384dt it has a ratio of 384dt/320dt=1.2. From the perspective of dynamical decoupling this is likely to add more control noise than decoupling error rate reductions. The defaults value is 2.0. + + * **insert\_multiple\_cycles** (`bool`) – If the available duration exceeds 2\*sequence\_min\_length\_ratio\*duration(dd\_sequence) enable the insertion of multiple rounds of the dynamical decoupling sequence in that delay. + + * **coupling\_map** (`Optional`\[[`CouplingMap`](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)")]) – directed graph representing the coupling map for the device. Specifying a coupling map partitions the device into subcircuits, in order to apply DD sequences with different pulse spacings within each. Currently support 2 subcircuits. + + * **alt\_spacings** (`Union`\[`List`\[`List`\[`float`]], `List`\[`float`], `None`]) – A list of lists of spacings between the DD gates, for the second subcircuit, as determined by the coupling map. If None, a balanced spacing that is staggered with respect to the first subcircuit will be used \[d, d, d, …, d, d, 0]. + + * **schedule\_idle\_qubits** (`bool`) – Set to true if you’d like a delay inserted on idle qubits. This is useful for timeline visualizations, but may cause issues for execution on large backends. + + * **dd\_barrier** (`Optional`\[`str`]) – only apply DD to delays terminating with a barrier whose label contains the specified string + + * **block\_ordering\_callable** (`Optional`\[`Callable`\[\[[`DAGCircuit`](/api/qiskit/qiskit.dagcircuit.DAGCircuit "(in Qiskit v1.2)")], `Generator`\[[`DAGOpNode`](/api/qiskit/qiskit.dagcircuit.DAGOpNode "(in Qiskit v1.2)"), `None`, `None`]]]) – A callable used to produce an ordering of the nodes to minimize the number of blocks needed. If not provided, `block_order_op_nodes()` will be used. + + **Raises** + + * **TranspilerError** – When invalid DD sequence is specified. + * **TranspilerError** – When pulse gate with the duration which is non-multiple of the alignment constraint value is found. + * **TranspilerError** – When the coupling map is not supported (i.e., if degree > 3) + + ## Attributes + + ### is\_analysis\_pass + + + Check if the pass is an analysis pass. + + If the pass is an AnalysisPass, that means that the pass can analyze the DAG and write the results of that analysis in the property set. Modifications on the DAG are not allowed by this kind of pass. + + + ### is\_transformation\_pass + + + Check if the pass is a transformation pass. + + If the pass is a TransformationPass, that means that the pass can manipulate the DAG, but cannot modify the property set (but it can be read). + + + ## Methods + + ### \_\_call\_\_ + + + Runs the pass on circuit. + + **Parameters** + + * **circuit** (*QuantumCircuit*) – The dag on which the pass is run. + * **property\_set** (*PropertySet | dict | None*) – Input/output property set. An analysis pass might change the property set in-place. + + **Return type** + + QuantumCircuit + + **Returns** + + If on transformation pass, the resulting QuantumCircuit. If analysis pass, the input circuit. + + + ### execute + + + Execute optimization task for input Qiskit IR. + + **Parameters** + + * **passmanager\_ir** (`Any`) – Qiskit IR to optimize. + * **state** ([`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")) – State associated with workflow execution by the pass manager itself. + * **callback** (`Optional`\[`Callable`]) – A callback function which is caller per execution of optimization task. + + **Return type** + + `tuple`\[`Any`, [`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")] + + **Returns** + + Optimized Qiskit IR and state of the workflow. + + + ### name + + + Name of the pass. + + **Return type** + + `str` + + + ### run + + + Run the padding pass on `dag`. + + **Parameters** + + **dag** ([`DAGCircuit`](/api/qiskit/qiskit.dagcircuit.DAGCircuit "(in Qiskit v1.2)")) – DAG to be checked. + + **Returns** + + DAG with idle time filled with instructions. + + **Return type** + + DAGCircuit + + **Raises** + + **TranspilerError** – When a particular node is not scheduled, likely some transform pass is inserted before this node is called. + + + ### update\_status + + + Update workflow status. + + **Parameters** + + * **state** ([`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")) – Pass manager state to update. + * **run\_state** (`RunState`) – Completion status of current task. + + **Return type** + + [`PassManagerState`](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)") + + **Returns** + + Updated pass manager state. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.mdx new file mode 100644 index 00000000000..4ed17080239 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling.mdx @@ -0,0 +1,372 @@ +--- +title: scheduling +description: API reference for qiskit_ibm_runtime.transpiler.passes.scheduling +in_page_toc_min_heading_level: 2 +python_api_type: module +python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling +--- + + + + + +# Transpiler scheduling passes + +`qiskit_ibm_runtime.transpiler.passes.scheduling` + +A collection of scheduling passes for working with IBM Quantum’s next-generation backends that support advanced “dynamic circuit” capabilities. Ie., circuits with support for classical control-flow/feedback based off of measurement results. + + + You should not mix these scheduling passes with Qiskit’s builtin scheduling passes as they will negatively interact with the scheduling routines for dynamic circuits. This includes setting `scheduling_method` in [`transpile()`](/api/qiskit/compiler#qiskit.compiler.transpile "(in Qiskit v1.2)") or [`generate_preset_pass_manager()`](/api/qiskit/transpiler_preset#qiskit.transpiler.preset_passmanagers.generate_preset_pass_manager "(in Qiskit v1.2)"). + + +## Classes + +| | | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| [`BlockBasePadder`](qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder "qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder")(\[schedule\_idle\_qubits, ...]) | The base class of padding pass. | +| [`ALAPScheduleAnalysis`](qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis "qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis")(durations\[, ...]) | Dynamic circuits as-late-as-possible (ALAP) scheduling analysis pass. | +| [`ASAPScheduleAnalysis`](qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis "qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis")(durations\[, ...]) | Dynamic circuits as-soon-as-possible (ASAP) scheduling analysis pass. | +| [`DynamicCircuitInstructionDurations`](qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations "qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations")(\[...]) | For dynamic circuits the IBM Qiskit backend currently reports instruction durations that differ compared with those required for the legacy Qobj-based path. | +| [`PadDelay`](qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay "qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay")(durations\[, fill\_very\_end, ...]) | Padding idle time with Delay instructions. | +| [`PadDynamicalDecoupling`](qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling "qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling")(durations, dd\_sequences) | Dynamical decoupling insertion pass for IBM dynamic circuit backends. | + +## Example usage + +Below we demonstrate how to schedule and pad a teleportation circuit with delays for a dynamic circuit backend’s execution model: + +```python +from qiskit.circuit import ClassicalRegister, QuantumCircuit, QuantumRegister +from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager +from qiskit.transpiler.passmanager import PassManager + +from qiskit_ibm_runtime.transpiler.passes.scheduling import DynamicCircuitInstructionDurations +from qiskit_ibm_runtime.transpiler.passes.scheduling import ALAPScheduleAnalysis +from qiskit_ibm_runtime.transpiler.passes.scheduling import PadDelay +from qiskit_ibm_runtime.fake_provider import FakeJakartaV2 + +backend = FakeJakartaV2() + +# Use this duration class to get appropriate durations for dynamic +# circuit backend scheduling +durations = DynamicCircuitInstructionDurations.from_backend(backend) +# Generate the main Qiskit transpile passes. +pm = generate_preset_pass_manager(optimization_level=1, backend=backend) +# Configure the as-late-as-possible scheduling pass +pm.scheduling = PassManager([ALAPScheduleAnalysis(durations), PadDelay(durations)]) + +qr = QuantumRegister(3) +crz = ClassicalRegister(1, name="crz") +crx = ClassicalRegister(1, name="crx") +result = ClassicalRegister(1, name="result") + +teleport = QuantumCircuit(qr, crz, crx, result, name="Teleport") + +teleport.h(qr[1]) +teleport.cx(qr[1], qr[2]) +teleport.cx(qr[0], qr[1]) +teleport.h(qr[0]) +teleport.measure(qr[0], crz) +teleport.measure(qr[1], crx) +with teleport.if_test((crz, 1)): + teleport.z(qr[2]) +with teleport.if_test((crx, 1)): + teleport.x(qr[2]) +teleport.measure(qr[2], result) + +# Transpile. +scheduled_teleport = pm.run(teleport) + +scheduled_teleport.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_0\_0.png](/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_0_0.png) + +Instead of padding with delays we may also insert a dynamical decoupling sequence using the [`PadDynamicalDecoupling`](qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling "qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling") pass as shown below: + +```python +from qiskit.circuit.library import XGate + +from qiskit_ibm_runtime.transpiler.passes.scheduling import PadDynamicalDecoupling + + +dd_sequence = [XGate(), XGate()] + +pm = generate_preset_pass_manager(optimization_level=1, backend=backend) +pm.scheduling = PassManager( + [ + ALAPScheduleAnalysis(durations), + PadDynamicalDecoupling(durations, dd_sequence), + ] +) + +dd_teleport = pm.run(teleport) + +dd_teleport.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_1\_0.png](/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_1_0.png) + +When compiling a circuit with Qiskit, it is more efficient and more robust to perform all the transformations in a single transpilation. This has been done above by extending Qiskit’s preset pass managers. For example, Qiskit’s [`transpile()`](/api/qiskit/compiler#qiskit.compiler.transpile "(in Qiskit v1.2)") function internally builds its pass set by using [`generate_preset_pass_manager()`](/api/qiskit/transpiler_preset#qiskit.transpiler.preset_passmanagers.generate_preset_pass_manager "(in Qiskit v1.2)"). This returns instances of [`StagedPassManager`](/api/qiskit/qiskit.transpiler.StagedPassManager "(in Qiskit v1.2)"), which can be extended. + + + +## Scheduling old format c\_if conditioned gates + +Scheduling with old format `c_if` conditioned gates is not supported. + +```python +qc_c_if = QuantumCircuit(1, 1) +qc_c_if.x(0).c_if(0, 1) +qc_c_if.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_2\_0.png](/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_2_0.png) + +The [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") configures a translation plugin `IBMTranslationPlugin` to automatically apply transformations and optimizations for IBM hardware backends when invoking [`transpile()`](/api/qiskit/compiler#qiskit.compiler.transpile "(in Qiskit v1.2)"). This will automatically convert all old style `c_if` conditioned gates to new-style control-flow. We may then schedule the transpiled circuit without further modification. + +```python +# Temporary workaround for mock backends. For real backends this is not required. +backend.get_translation_stage_plugin = lambda: "ibm_dynamic_circuits" + +pm = generate_preset_pass_manager(optimization_level=1, backend=backend) +pm.scheduling = PassManager( + [ + ALAPScheduleAnalysis(durations), + PadDynamicalDecoupling(durations, dd_sequence), + ] +) + +qc_if_dd = pm.run(qc_c_if, backend) +qc_if_dd.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_3\_0.png](/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_3_0.png) + +If you are not using the transpiler plugin stages to work around this please manually run the pass [`qiskit.transpiler.passes.ConvertConditionsToIfOps`](/api/qiskit/qiskit.transpiler.passes.ConvertConditionsToIfOps "(in Qiskit v1.2)") prior to your scheduling pass. + +```python +from qiskit.transpiler.passes import ConvertConditionsToIfOps + +pm = generate_preset_pass_manager(optimization_level=1, backend=backend) +pm.scheduling = PassManager( + [ + ConvertConditionsToIfOps(), + ALAPScheduleAnalysis(durations), + PadDelay(durations), + ] +) + +qc_if_dd = pm.run(qc_c_if) +qc_if_dd.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_4\_0.png](/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_4_0.png) + + + +## Exploiting IBM backend’s local parallel “fast-path” + +IBM quantum hardware supports a localized “fast-path” which enables a block of gates applied to a *single qubit* that are conditional on an immediately predecessor measurement *of the same qubit* to be completed with lower latency. The hardware is also able to do this in *parallel* on disjoint qubits that satisfy this condition. + +For example, the conditional gates below are performed in parallel with lower latency as the measurements flow directly into the conditional blocks which in turn only apply gates to the same measurement qubit. + +```python +qc = QuantumCircuit(2, 2) +qc.measure(0, 0) +qc.measure(1, 1) +# Conditional blocks will be performed in parallel in the hardware +with qc.if_test((0, 1)): + qc.x(0) +with qc.if_test((1, 1)): + qc.x(1) + +qc.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_5\_0.png](/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_5_0.png) + +The circuit below will not use the fast-path as the conditional gate is on a different qubit than the measurement qubit. + +```python +qc = QuantumCircuit(2, 2) +qc.measure(0, 0) +with qc.if_test((0, 1)): + qc.x(1) + +qc.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_6\_0.png](/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_6_0.png) + +Similarly, the circuit below contains gates on multiple qubits and will not be performed using the fast-path. + +```python +qc = QuantumCircuit(2, 2) +qc.measure(0, 0) +with qc.if_test((0, 1)): + qc.x(0) + qc.x(1) + +qc.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_7\_0.png](/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_7_0.png) + +A fast-path block may contain multiple gates as long as they are on the fast-path qubit. If there are multiple fast-path blocks being performed in parallel each block will be padded out to the duration of the longest block. + +```python +qc = QuantumCircuit(2, 2) +qc.measure(0, 0) +qc.measure(1, 1) +# Conditional blocks will be performed in parallel in the hardware +with qc.if_test((0, 1)): + qc.x(0) + # Will be padded out to a duration of 1600 on the backend. +with qc.if_test((1, 1)): + qc.delay(1600, 1) + +qc.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_8\_0.png](/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_8_0.png) + +This behavior is also applied to the else condition of a fast-path eligible branch. + +```python +qc = QuantumCircuit(1, 1) +qc.measure(0, 0) +# Conditional blocks will be performed in parallel in the hardware +with qc.if_test((0, 1)) as else_: + qc.x(0) + # Will be padded out to a duration of 1600 on the backend. +with else_: + qc.delay(1600, 0) + +qc.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_9\_0.png](/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_9_0.png) + +If a single measurement result is used with several conditional blocks, if there is a fast-path eligible block it will be applied followed by the non-fast-path blocks which will execute with the standard higher latency conditional branch. + +```python +qc = QuantumCircuit(2, 2) +qc.measure(0, 0) +# Conditional blocks will be performed in parallel in the hardware +with qc.if_test((0, 1)): + # Uses fast-path + qc.x(0) +with qc.if_test((0, 1)): + # Does not use fast-path + qc.x(1) + +qc.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_10\_0.png](/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_10_0.png) + +If you wish to prevent the usage of the fast-path you may insert a barrier between the measurement and the conditional branch. + +```python +qc = QuantumCircuit(1, 2) +qc.measure(0, 0) +# Barrier prevents the fast-path. +qc.barrier() +with qc.if_test((0, 1)): + qc.x(0) + +qc.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_11\_0.png](/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_11_0.png) + +Conditional measurements are not eligible for the fast-path. + +```python +qc = QuantumCircuit(1, 2) +qc.measure(0, 0) +with qc.if_test((0, 1)): + # Does not use the fast-path + qc.measure(0, 1) + +qc.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_12\_0.png](/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_12_0.png) + +Similarly nested control-flow is not eligible. + +```python +qc = QuantumCircuit(1, 1) +qc.measure(0, 0) +with qc.if_test((0, 1)): + # Does not use the fast-path + qc.x(0) + with qc.if_test((0, 1)): + qc.x(0) + +qc.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_13\_0.png](/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_13_0.png) + +The scheduler is aware of the fast-path behavior and will not insert delays on idle qubits in blocks that satisfy the fast-path conditions so as to avoid preventing the backend compiler from performing the necessary optimizations to utilize the fast-path. If there are fast-path blocks that will be performed in parallel they currently *will not* be padded out by the scheduler to ensure they are of the same duration in Qiskit + +```python +dd_sequence = [XGate(), XGate()] + +pm = PassManager( + [ + ALAPScheduleAnalysis(durations), + PadDynamicalDecoupling(durations, dd_sequence), + ] +) + +qc = QuantumCircuit(2, 2) +qc.measure(0, 0) +qc.measure(1, 1) +with qc.if_test((0, 1)): + qc.x(0) + # Is currently not padded to ensure + # a duration of 1000. If you desire + # this you would need to manually add + # qc.delay(840, 0) +with qc.if_test((1, 1)): + qc.delay(1000, 0) + + +qc.draw(output="mpl", style="iqp") + +qc_dd = pm.run(qc) + +qc_dd.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_14\_0.png](/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_14_0.png) + + + If there are qubits that are *not* involved in a fast-path decision it is not currently possible to use them in a fast-path branch in parallel with the fast-path qubits resulting from a measurement. This will be revised in the future as we further improve these capabilities. + + For example: + + ```python + qc = QuantumCircuit(3, 2) + qc.x(1) + qc.measure(0, 0) + with qc.if_test((0, 1)): + qc.x(0) + # Qubit 1 sits idle throughout the fast-path decision + with qc.if_test((1, 0)): + # Qubit 2 is idle but there is no measurement + # to make it fast-path eligible. This will + # however avoid a communication event in the hardware + # since the condition is compile time evaluated. + qc.x(2) + + qc.draw(output="mpl", style="iqp") + ``` + + ![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_15\_0.png](/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_15_0.png) + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.utils.noise_learner_result.LayerError.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.utils.noise_learner_result.LayerError.mdx new file mode 100644 index 00000000000..c02dd321df7 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.utils.noise_learner_result.LayerError.mdx @@ -0,0 +1,110 @@ +--- +title: LayerError +description: API reference for qiskit_ibm_runtime.utils.noise_learner_result.LayerError +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.utils.noise_learner_result.LayerError +--- + +# LayerError + + + The error channel (in Pauli-Lindblad format) of a single layer of instructions. + + **Parameters** + + * **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – A circuit whose noise has been learnt. + * **qubits** (`Sequence`\[`int`]) – The labels of the qubits in the `circuit`. + * **error** ([`PauliLindbladError`](qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError "qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError")) – The Pauli Lindblad error channel affecting the `circuit`. + + **Raises** + + **ValueError** – If `circuit`, `qubits`, and `error` have mismatching number of qubits. + + ## Attributes + + ### circuit + + + The circuit in this `LayerError`. + + **Return type** + + [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)") + + + ### error + + + The error channel in this `LayerError`. + + **Return type** + + [`PauliLindbladError`](qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError "qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError") + + + ### generators + + + (DEPRECATED) The Pauli Lindblad generators of the error channel in this `LayerError`. + + **Return type** + + [`PauliList`](/api/qiskit/qiskit.quantum_info.PauliList "(in Qiskit v1.2)") + + + ### num\_qubits + + + The number of qubits in this [`LayerError`](#qiskit_ibm_runtime.utils.noise_learner_result.LayerError "qiskit_ibm_runtime.utils.noise_learner_result.LayerError"). + + **Return type** + + `int` + + + ### qubits + + + The qubits in this `LayerError`. + + **Return type** + + `list`\[`int`] + + + ### rates + + + (DEPRECATED) The Lindblad generator rates of the error channel in this `LayerError`. + + **Return type** + + [`ndarray`](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")\[`Any`, [`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`float64`]] + + + ## Methods + + ### draw\_map + + + Draw a map view of a this layer error. + + **Parameters** + + * **embedding** (`Union`\[`Embedding`, [`BackendV2`](/api/qiskit/qiskit.providers.BackendV2 "(in Qiskit v1.2)")]) – An `Embedding` object containing the coordinates and coupling map to draw the layer error on, or a backend to generate an `Embedding` for. + * **colorscale** (`str`) – The colorscale used to show the rates of this layer error. + * **color\_no\_data** (`str`) – The color used for qubits and edges for which no data is available. + * **num\_edge\_segments** (`int`) – The number of equal-sized segments that edges are made of. + * **edge\_width** (`float`) – The line width of the edges in pixels. + * **height** (`int`) – The height of the returned figure. + * **background\_color** (`str`) – The background color. + * **radius** (`float`) – The radius of the pie charts representing the qubits. + * **width** (`int`) – The width of the returned figure. + + **Return type** + + `Figure` + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError.mdx new file mode 100644 index 00000000000..f43e9225714 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError.mdx @@ -0,0 +1,96 @@ +--- +title: PauliLindbladError +description: API reference for qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError +--- + +# PauliLindbladError + + + A Pauli error channel generated by a Pauli Lindblad dissipators. + + This operator represents an N-qubit quantum error channel $E(\rho) = e^{\sum_j r_j D_{P_j}}(\rho)$ generated by Pauli Lindblad dissipators $D_P(\rho) = P \rho P - \rho$, where $P_j$ are N-qubit `Pauli` operators. + + The list of Pauli generator terms are stored as a `PauliList` and can be accessed via the [`generators`](#qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError.generators "qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError.generators") attribute. The array of dissipator rates $r_j$ can be accessed via the [`rates`](#qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError.rates "qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError.rates") attribute. + + The equivalent Pauli error channel can be constructed as a composition of single-Pauli channel terms + +$$ +E = e^{\sum_j r_j D_{P_j}} = \prod_j e^{r_j D_{P_j}} += prod_j \left( (1 - p_j) S_I + p_j S_{P_j} \right) +$$ + + where $p_j = \frac12 - \frac12 e^{-2 r_j}$ \[1]. + + **Parameters** + + * **generators** ([`PauliList`](/api/qiskit/qiskit.quantum_info.PauliList "(in Qiskit v1.2)")) – A list of the Pauli Lindblad generators for the error channel. + * **rates** (`Sequence`\[`float`]) – A list of the rates for the Pauli-Lindblad `generators`. + + **Raises** + + **ValueError** – If `generators` and `rates` have different lengths. + + **References** + + 1. E. van den Berg, Z. Minev, A. Kandala, K. Temme, *Probabilistic error cancellation with sparse Pauli–Lindblad models on noisy quantum processors*, Nature Physics volume 19, pages1116–1121 (2023). [arXiv:2201.09866 \[quant-ph\]](https://arxiv.org/abs/2201.09866) + + ## Attributes + + ### generators + + + The Pauli Lindblad generators of this [`PauliLindbladError`](#qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError "qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError"). + + **Return type** + + [`PauliList`](/api/qiskit/qiskit.quantum_info.PauliList "(in Qiskit v1.2)") + + + ### num\_qubits + + + The number of qubits in this [`PauliLindbladError`](#qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError "qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError"). + + **Return type** + + `int` + + + ### rates + + + The Lindblad generator rates of this quantum error. + + **Return type** + + [`ndarray`](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")\[`Any`, [`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`float64`]] + + + ## Methods + + ### restrict\_num\_bodies + + + The [`PauliLindbladError`](#qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError "qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError") containing only those terms acting on exactly `num_qubits` qubits. + + **Parameters** + + **num\_qubits** (`int`) – The number of qubits that the returned error acts on. + + **Return type** + + [`PauliLindbladError`](#qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError "qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError") + + **Returns** + + The error containing only those terms acting on exactly `num_qubits` qubits. + + **Raises** + + **ValueError** – If `num_qubits` is smaller than `0`. + + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.visualization.draw_layer_error_map.mdx b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.visualization.draw_layer_error_map.mdx new file mode 100644 index 00000000000..14d42dbd9ad --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.visualization.draw_layer_error_map.mdx @@ -0,0 +1,39 @@ +--- +title: draw_layer_error_map +description: API reference for qiskit_ibm_runtime.visualization.draw_layer_error_map +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_ibm_runtime.visualization.draw_layer_error_map +--- + + + +# draw\_layer\_error\_map + + + Draw a map view of a [`LayerError`](qiskit_ibm_runtime.utils.noise_learner_result.LayerError "qiskit_ibm_runtime.utils.noise_learner_result.LayerError"). + + **Parameters** + + * **layer\_error** ([`LayerError`](qiskit_ibm_runtime.utils.noise_learner_result.LayerError "qiskit_ibm_runtime.utils.noise_learner_result.LayerError")) – The [`LayerError`](qiskit_ibm_runtime.utils.noise_learner_result.LayerError "qiskit_ibm_runtime.utils.noise_learner_result.LayerError") to draw. + * **embedding** (`Union`\[`Embedding`, [`BackendV2`](/api/qiskit/qiskit.providers.BackendV2 "(in Qiskit v1.2)")]) – An `Embedding` object containing the coordinates and coupling map to draw the layer error on, or a backend to generate an `Embedding` for. + * **colorscale** (`str`) – The colorscale used to show the rates of `layer_error`. + * **color\_no\_data** (`str`) – The color used for qubits and edges for which no data is available. + * **num\_edge\_segments** (`int`) – The number of equal-sized segments that edges are made of. + * **edge\_width** (`float`) – The line width of the edges in pixels. + * **height** (`int`) – The height of the returned figure. + * **background\_color** (`str`) – The background color. + * **radius** (`float`) – The radius of the pie charts representing the qubits. + * **width** (`int`) – The width of the returned figure. + + **Raises** + + * **ValueError** – If the given coordinates are incompatible with the specified backend. + * **ValueError** – If `backend` has no coupling map. + * **ModuleNotFoundError** – If the required `plotly` dependencies cannot be imported. + + **Return type** + + `Figure` + + diff --git a/docs/api/qiskit-ibm-runtime/0.30/runtime_service.mdx b/docs/api/qiskit-ibm-runtime/0.30/runtime_service.mdx new file mode 100644 index 00000000000..2bec2ee8b14 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/runtime_service.mdx @@ -0,0 +1,168 @@ +--- +title: qiskit_ibm_runtime +description: API reference for qiskit_ibm_runtime +in_page_toc_min_heading_level: 2 +python_api_type: module +python_api_name: qiskit_ibm_runtime +--- + + + + + +# Qiskit Runtime + +`qiskit_ibm_runtime` + +Modules related to Qiskit Runtime IBM Client. + +Qiskit Runtime is a new architecture that streamlines computations requiring many iterations. These experiments will execute significantly faster within its improved hybrid quantum/classical process. + +## Primitives and sessions + +Qiskit Runtime has two predefined primitives: `Sampler` and `Estimator`. These primitives provide a simplified interface for performing foundational quantum computing tasks while also accounting for the latest developments in quantum hardware and software. + +Qiskit Runtime also has the concept of a session. Jobs submitted within a session are prioritized by the scheduler. A session allows you to make iterative calls to the quantum computer more efficiently. + +Below is an example of using primitives within a session: + +```python +from qiskit_ibm_runtime import QiskitRuntimeService, Session +from qiskit_ibm_runtime import SamplerV2 as Sampler +from qiskit_ibm_runtime import EstimatorV2 as Estimator +from qiskit.circuit.library import RealAmplitudes +from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister +from qiskit.quantum_info import SparsePauliOp +from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager + +# Initialize account. +service = QiskitRuntimeService() + +# Prepare inputs. +psi = RealAmplitudes(num_qubits=2, reps=2) +H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)]) +theta = [0, 1, 1, 2, 3, 5] +# Bell Circuit +qr = QuantumRegister(2, name="qr") +cr = ClassicalRegister(2, name="cr") +qc = QuantumCircuit(qr, cr, name="bell") +qc.h(qr[0]) +qc.cx(qr[0], qr[1]) +qc.measure(qr, cr) + +backend = service.least_busy(operational=True, simulator=False) +pm = generate_preset_pass_manager(target=backend.target, optimization_level=1) + +bell_isa_circuit = pm.run(qc) +psi_isa_circuit = pm.run(psi) +isa_observables = H1.apply_layout(psi_isa_circuit.layout) + +with Session(service=service, backend=backend) as session: + # Submit a request to the Sampler primitive within the session. + sampler = Sampler(session=session) + job = sampler.run([bell_isa_circuit]) + pub_result = job.result()[0] + print(f"Counts: {pub_result.data.cr.get_counts()}") + + # Submit a request to the Estimator primitive within the session. + estimator = Estimator(session=session) + estimator.options.resilience_level = 1 # Set options. + job = estimator.run( + [(psi_isa_circuit, isa_observables, theta)] + ) + pub_result = job.result()[0] + print(f"Expectation values: {pub_result.data.evs}") +``` + +## Local testing mode + +You can validate your quantum programs before sending them to a physical system using the local testing mode. The local testing mode is activated if one of the fake backends in `qiskit_ibm_runtime.fake_provider` or a Qiskit Aer backend instance is used when instantiating a primitive or a session. For example: + +```python +from qiskit_aer import AerSimulator +from qiskit.circuit.library import RealAmplitudes +from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister +from qiskit.quantum_info import SparsePauliOp +from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager + +from qiskit_ibm_runtime import Session +from qiskit_ibm_runtime import SamplerV2 as Sampler +from qiskit_ibm_runtime.fake_provider import FakeManilaV2 + +# Bell Circuit +qc = QuantumCircuit(2) +qc.h(0) +qc.cx(0, 1) +qc.measure_all() + +# Run the sampler job locally using FakeManilaV2 +fake_manila = FakeManilaV2() +pm = generate_preset_pass_manager(backend=fake_manila, optimization_level=1) +isa_qc = pm.run(qc) +sampler = Sampler(backend=fake_manila) +result = sampler.run([isa_qc]).result() + +# Run the sampler job locally using AerSimulator. +# Session syntax is supported but ignored. +aer_sim = AerSimulator() +pm = generate_preset_pass_manager(backend=aer_sim, optimization_level=1) +isa_qc = pm.run(qc) +with Session(backend=aer_sim) as session: + sampler = Sampler(session=session) + result = sampler.run([isa_qc]).result() +``` + +## Backend data + +[`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService") also has methods, such as `backend()`, `backends()`, and `least_busy()`, that allow you to query for a target backend to use. These methods return one or more [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") instances that contains methods and attributes describing the backend. + +## Supplementary Information + +### Account initialization + +You need to initialize your account before you can start using the Qiskit Runtime service. This is done by initializing a [`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService") instance with your account credentials. If you don’t want to pass in the credentials each time, you can use the [`QiskitRuntimeService.save_account()`](qiskit_ibm_runtime.QiskitRuntimeService#save_account "qiskit_ibm_runtime.QiskitRuntimeService.save_account") method to save the credentials on disk. + +Qiskit Runtime is available on both IBM Cloud and IBM Quantum, and you can specify `channel="ibm_cloud"` for IBM Cloud and `channel="ibm_quantum"` for IBM Quantum. The default is IBM Cloud. + +### Runtime Jobs + +When you use the `run()` method of the [`Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler") or [`Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") to invoke the primitive, a [`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") instance is returned. This class has all the basic job methods, such as [`RuntimeJob.status()`](qiskit_ibm_runtime.RuntimeJob#status "qiskit_ibm_runtime.RuntimeJob.status"), [`RuntimeJob.result()`](qiskit_ibm_runtime.RuntimeJob#result "qiskit_ibm_runtime.RuntimeJob.result"), and [`RuntimeJob.cancel()`](qiskit_ibm_runtime.RuntimeJob#cancel "qiskit_ibm_runtime.RuntimeJob.cancel"). + +### Logging + +`qiskit-ibm-runtime` uses the `qiskit_ibm_runtime` logger. + +Two environment variables can be used to control the logging: + +> * **`QISKIT_IBM_RUNTIME_LOG_LEVEL`: Specifies the log level to use.** +> +> If an invalid level is set, the log level defaults to `WARNING`. The valid log levels are `DEBUG`, `INFO`, `WARNING`, `ERROR`, and `CRITICAL` (case-insensitive). If the environment variable is not set, then the parent logger’s level is used, which also defaults to `WARNING`. +> +> * **`QISKIT_IBM_RUNTIME_LOG_FILE`: Specifies the name of the log file to use. If specified,** +> +> messages will be logged to the file only. Otherwise messages will be logged to the standard error (usually the screen). + +For more advanced use, you can modify the logger itself. For example, to manually set the level to `WARNING`: + +```python +import logging +logging.getLogger('qiskit_ibm_runtime').setLevel(logging.WARNING) +``` + +## Classes + +| | | +| ---------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | +| [`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService")(\[channel, token, url, ...]) | Class for interacting with the Qiskit Runtime service. | +| [`Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") | alias of [`EstimatorV2`](qiskit_ibm_runtime.EstimatorV2 "qiskit_ibm_runtime.estimator.EstimatorV2") | +| [`EstimatorV2`](qiskit_ibm_runtime.EstimatorV2 "qiskit_ibm_runtime.EstimatorV2")(\[mode, options]) | Class for interacting with Qiskit Runtime Estimator primitive service. | +| [`Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler") | alias of [`SamplerV2`](qiskit_ibm_runtime.SamplerV2 "qiskit_ibm_runtime.sampler.SamplerV2") | +| [`SamplerV2`](qiskit_ibm_runtime.SamplerV2 "qiskit_ibm_runtime.SamplerV2")(\[mode, options]) | Class for interacting with Qiskit Runtime Sampler primitive service. | +| [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session")(\[service, backend, max\_time]) | Class for creating a Qiskit Runtime session. | +| [`Batch`](qiskit_ibm_runtime.Batch "qiskit_ibm_runtime.Batch")(\[service, backend, max\_time]) | Class for running jobs in batch execution mode. | +| [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend")(configuration, service, api\_client) | Backend class interfacing with an IBM Quantum backend. | +| [`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob")(backend, api\_client, ...\[, ...]) | Representation of a runtime primitive execution. | +| [`RuntimeJobV2`](qiskit_ibm_runtime.RuntimeJobV2 "qiskit_ibm_runtime.RuntimeJobV2")(backend, api\_client, ...\[, ...]) | Representation of a runtime V2 primitive exeuction. | +| [`RuntimeEncoder`](qiskit_ibm_runtime.RuntimeEncoder "qiskit_ibm_runtime.RuntimeEncoder")(\*\[, skipkeys, ensure\_ascii, ...]) | JSON Encoder used by runtime service. | +| [`RuntimeDecoder`](qiskit_ibm_runtime.RuntimeDecoder "qiskit_ibm_runtime.RuntimeDecoder")(\*args, \*\*kwargs) | JSON Decoder used by runtime service. | + diff --git a/docs/api/qiskit-ibm-runtime/0.30/transpiler.mdx b/docs/api/qiskit-ibm-runtime/0.30/transpiler.mdx new file mode 100644 index 00000000000..51eda4fd58d --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/transpiler.mdx @@ -0,0 +1,25 @@ +--- +title: passes +description: API reference for qiskit_ibm_runtime.transpiler.passes +in_page_toc_min_heading_level: 2 +python_api_type: module +python_api_name: qiskit_ibm_runtime.transpiler.passes +--- + + + + + +# Transpiler passes + +`qiskit_ibm_runtime.transpiler.passes` + +A collection of transpiler passes. Refer to [guides/transpile](/guides/transpile) to learn more about transpilation and passes. + +| | | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| [`ConvertIdToDelay`](qiskit_ibm_runtime.transpiler.passes.ConvertIdToDelay "qiskit_ibm_runtime.transpiler.passes.ConvertIdToDelay")(durations\[, gate]) | Convert `qiskit.circuit.library.standard_gates.IGate` to a delay of the corresponding length. | +| [`ConvertISAToClifford`](qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford "qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford")(\*args, \*\*kwargs) | Convert the gates of an ISA circuit to Clifford gates. | + +See [`qiskit_ibm_runtime.transpiler.passes.scheduling`](qiskit_ibm_runtime.transpiler.passes.scheduling#module-qiskit_ibm_runtime.transpiler.passes.scheduling "qiskit_ibm_runtime.transpiler.passes.scheduling") for a collection of scheduling passes. + diff --git a/docs/api/qiskit-ibm-runtime/0.30/visualization.mdx b/docs/api/qiskit-ibm-runtime/0.30/visualization.mdx new file mode 100644 index 00000000000..25faf46d415 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.30/visualization.mdx @@ -0,0 +1,24 @@ +--- +title: visualization +description: API reference for qiskit_ibm_runtime.visualization +in_page_toc_min_heading_level: 2 +python_api_type: module +python_api_name: qiskit_ibm_runtime.visualization +--- + + + + + +# Visualization + +`qiskit_ibm_runtime.visualization` + +A suite of functions for visualizing qiskit-ibm-runtime’s objects. + +## Functions + +| | | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [`draw_layer_error_map`](qiskit_ibm_runtime.visualization.draw_layer_error_map "qiskit_ibm_runtime.visualization.draw_layer_error_map")(layer\_error, embedding) | Draw a map view of a [`LayerError`](qiskit_ibm_runtime.utils.noise_learner_result.LayerError "qiskit_ibm_runtime.utils.noise_learner_result.LayerError"). | + diff --git a/docs/api/qiskit-ibm-runtime/_package.json b/docs/api/qiskit-ibm-runtime/_package.json index ccfaf8a1d1a..becbcc5520c 100644 --- a/docs/api/qiskit-ibm-runtime/_package.json +++ b/docs/api/qiskit-ibm-runtime/_package.json @@ -1,4 +1,4 @@ { "name": "qiskit-ibm-runtime", - "version": "0.30.0" + "version": "0.31.0" } diff --git a/docs/api/qiskit-ibm-runtime/_toc.json b/docs/api/qiskit-ibm-runtime/_toc.json index c8527e72a07..03539a40204 100644 --- a/docs/api/qiskit-ibm-runtime/_toc.json +++ b/docs/api/qiskit-ibm-runtime/_toc.json @@ -98,26 +98,14 @@ "title": "FakeAlgiers", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlgiers" }, - { - "title": "FakeAlmaden", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlmaden" - }, { "title": "FakeAlmadenV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlmadenV2" }, - { - "title": "FakeArmonk", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeArmonk" - }, { "title": "FakeArmonkV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeArmonkV2" }, - { - "title": "FakeAthens", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAthens" - }, { "title": "FakeAthensV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAthensV2" @@ -126,26 +114,14 @@ "title": "FakeAuckland", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAuckland" }, - { - "title": "FakeBelem", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBelem" - }, { "title": "FakeBelemV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBelemV2" }, - { - "title": "FakeBoeblingen", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBoeblingen" - }, { "title": "FakeBoeblingenV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2" }, - { - "title": "FakeBogota", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBogota" - }, { "title": "FakeBogotaV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBogotaV2" @@ -154,42 +130,22 @@ "title": "FakeBrisbane", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrisbane" }, - { - "title": "FakeBrooklyn", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrooklyn" - }, { "title": "FakeBrooklynV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrooklynV2" }, - { - "title": "FakeBurlington", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBurlington" - }, { "title": "FakeBurlingtonV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2" }, - { - "title": "FakeCairo", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCairo" - }, { "title": "FakeCairoV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCairoV2" }, - { - "title": "FakeCambridge", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCambridge" - }, { "title": "FakeCambridgeV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCambridgeV2" }, - { - "title": "FakeCasablanca", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCasablanca" - }, { "title": "FakeCasablancaV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2" @@ -198,10 +154,6 @@ "title": "FakeCusco", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCusco" }, - { - "title": "FakeEssex", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeEssex" - }, { "title": "FakeEssexV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeEssexV2" @@ -214,34 +166,18 @@ "title": "FakeGeneva", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGeneva" }, - { - "title": "FakeGuadalupe", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGuadalupe" - }, { "title": "FakeGuadalupeV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2" }, - { - "title": "FakeHanoi", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeHanoi" - }, { "title": "FakeHanoiV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeHanoiV2" }, - { - "title": "FakeJakarta", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJakarta" - }, { "title": "FakeJakartaV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJakartaV2" }, - { - "title": "FakeJohannesburg", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJohannesburg" - }, { "title": "FakeJohannesburgV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2" @@ -250,10 +186,6 @@ "title": "FakeKawasaki", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKawasaki" }, - { - "title": "FakeKolkata", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKolkata" - }, { "title": "FakeKolkataV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKolkataV2" @@ -266,74 +198,38 @@ "title": "FakeKyoto", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKyoto" }, - { - "title": "FakeLagos", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLagos" - }, { "title": "FakeLagosV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLagosV2" }, - { - "title": "FakeLima", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLima" - }, { "title": "FakeLimaV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLimaV2" }, - { - "title": "FakeLondon", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLondon" - }, { "title": "FakeLondonV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLondonV2" }, - { - "title": "FakeManhattan", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManhattan" - }, { "title": "FakeManhattanV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManhattanV2" }, - { - "title": "FakeManila", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManila" - }, { "title": "FakeManilaV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManilaV2" }, - { - "title": "FakeMelbourne", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMelbourne" - }, { "title": "FakeMelbourneV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMelbourneV2" }, - { - "title": "FakeMontreal", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMontreal" - }, { "title": "FakeMontrealV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMontrealV2" }, - { - "title": "FakeMumbai", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMumbai" - }, { "title": "FakeMumbaiV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMumbaiV2" }, - { - "title": "FakeNairobi", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeNairobi" - }, { "title": "FakeNairobiV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeNairobiV2" @@ -346,18 +242,10 @@ "title": "FakeOslo", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOslo" }, - { - "title": "FakeOurense", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOurense" - }, { "title": "FakeOurenseV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOurenseV2" }, - { - "title": "FakeParis", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeParis" - }, { "title": "FakeParisV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeParisV2" @@ -370,10 +258,6 @@ "title": "FakePerth", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePerth" }, - { - "title": "FakePoughkeepsie", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePoughkeepsie" - }, { "title": "FakePoughkeepsieV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2" @@ -382,10 +266,6 @@ "title": "FakePrague", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePrague" }, - { - "title": "FakeProvider", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeProvider" - }, { "title": "FakeProviderForBackendV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2" @@ -394,38 +274,18 @@ "title": "FakeQuebec", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuebec" }, - { - "title": "FakeQuito", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuito" - }, { "title": "FakeQuitoV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuitoV2" }, - { - "title": "FakeRochester", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRochester" - }, { "title": "FakeRochesterV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRochesterV2" }, - { - "title": "FakeRome", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRome" - }, { "title": "FakeRomeV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRomeV2" }, - { - "title": "FakeRueschlikon", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRueschlikon" - }, - { - "title": "FakeSantiago", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSantiago" - }, { "title": "FakeSantiagoV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSantiagoV2" @@ -434,70 +294,34 @@ "title": "FakeSherbrooke", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSherbrooke" }, - { - "title": "FakeSingapore", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSingapore" - }, { "title": "FakeSingaporeV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSingaporeV2" }, - { - "title": "FakeSydney", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSydney" - }, { "title": "FakeSydneyV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSydneyV2" }, - { - "title": "FakeTenerife", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTenerife" - }, - { - "title": "FakeTokyo", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTokyo" - }, { "title": "FakeTorino", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTorino" }, - { - "title": "FakeToronto", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeToronto" - }, { "title": "FakeTorontoV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTorontoV2" }, - { - "title": "FakeValencia", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeValencia" - }, { "title": "FakeValenciaV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeValenciaV2" }, - { - "title": "FakeVigo", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeVigo" - }, { "title": "FakeVigoV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeVigoV2" }, - { - "title": "FakeWashington", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeWashington" - }, { "title": "FakeWashingtonV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeWashingtonV2" }, - { - "title": "FakeYorktown", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeYorktown" - }, { "title": "FakeYorktownV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeYorktownV2" diff --git a/docs/api/qiskit-ibm-runtime/dev/_package.json b/docs/api/qiskit-ibm-runtime/dev/_package.json index 4b3e5c62ffa..85ad945d4b2 100644 --- a/docs/api/qiskit-ibm-runtime/dev/_package.json +++ b/docs/api/qiskit-ibm-runtime/dev/_package.json @@ -1,4 +1,4 @@ { "name": "qiskit-ibm-runtime", - "version": "0.31.0-dev" + "version": "0.32.0-dev" } diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeJob.mdx b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeJob.mdx index 2bdea3d797e..ffd1f3aaf1d 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeJob.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeJob.mdx @@ -259,7 +259,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJob ### interim\_results - Return the interim results of the job. + (DEPRECATED) Return the interim results of the job. **Parameters** @@ -444,7 +444,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJob ### stream\_results - Start streaming job results. + (DEPRECATED) Start streaming job results. **Parameters** diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeJobV2.mdx b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeJobV2.mdx index c23f21dbcfb..ba4430c0ead 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeJobV2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeJobV2.mdx @@ -237,7 +237,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJobV2 ### interim\_results - Return the interim results of the job. + (DEPRECATED) Return the interim results of the job. **Parameters** @@ -380,7 +380,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJobV2 ### stream\_results - Start streaming job results. + (DEPRECATED) Start streaming job results. **Parameters** diff --git a/docs/api/qiskit-ibm-runtime/fake_provider.mdx b/docs/api/qiskit-ibm-runtime/fake_provider.mdx index 0e993864e0a..5e7f53d3e7d 100644 --- a/docs/api/qiskit-ibm-runtime/fake_provider.mdx +++ b/docs/api/qiskit-ibm-runtime/fake_provider.mdx @@ -81,7 +81,6 @@ Fake providers provide access to a list of fake backends. | | | | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | | [`FakeProviderForBackendV2`](qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2 "qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2")() | Fake provider containing fake V2 backends. | -| [`FakeProvider`](qiskit_ibm_runtime.fake_provider.FakeProvider "qiskit_ibm_runtime.fake_provider.FakeProvider")() | Fake provider containing fake V1 backends. | ## Fake Backends @@ -149,53 +148,3 @@ Fake V2 backends are fake backends with IBM Quantum systems snapshots implemente | [`FakeWashingtonV2`](qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 "qiskit_ibm_runtime.fake_provider.FakeWashingtonV2")() | A fake 127 qubit backend. | | [`FakeYorktownV2`](qiskit_ibm_runtime.fake_provider.FakeYorktownV2 "qiskit_ibm_runtime.fake_provider.FakeYorktownV2")() | A fake 5 qubit backend. | -### Fake V1 Backends - -Fake V1 backends are fake backends with IBM Quantum systems snapshots implemented with `BackendV1` interface. - -| | | -| ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -| [`FakeAlmaden`](qiskit_ibm_runtime.fake_provider.FakeAlmaden "qiskit_ibm_runtime.fake_provider.FakeAlmaden")() | A fake Almaden backend. | -| [`FakeArmonk`](qiskit_ibm_runtime.fake_provider.FakeArmonk "qiskit_ibm_runtime.fake_provider.FakeArmonk")() | A fake 1 qubit backend. | -| [`FakeAthens`](qiskit_ibm_runtime.fake_provider.FakeAthens "qiskit_ibm_runtime.fake_provider.FakeAthens")() | A fake 5 qubit backend. | -| [`FakeBelem`](qiskit_ibm_runtime.fake_provider.FakeBelem "qiskit_ibm_runtime.fake_provider.FakeBelem")() | A fake 5 qubit backend. | -| [`FakeBoeblingen`](qiskit_ibm_runtime.fake_provider.FakeBoeblingen "qiskit_ibm_runtime.fake_provider.FakeBoeblingen")() | A fake Boeblingen backend. | -| [`FakeBogota`](qiskit_ibm_runtime.fake_provider.FakeBogota "qiskit_ibm_runtime.fake_provider.FakeBogota")() | A fake 5 qubit backend. | -| [`FakeBrooklyn`](qiskit_ibm_runtime.fake_provider.FakeBrooklyn "qiskit_ibm_runtime.fake_provider.FakeBrooklyn")() | A fake Brooklyn backend. | -| [`FakeBurlington`](qiskit_ibm_runtime.fake_provider.FakeBurlington "qiskit_ibm_runtime.fake_provider.FakeBurlington")() | A fake 5 qubit backend. | -| [`FakeCairo`](qiskit_ibm_runtime.fake_provider.FakeCairo "qiskit_ibm_runtime.fake_provider.FakeCairo")() | A fake 27 qubit backend. | -| [`FakeCambridge`](qiskit_ibm_runtime.fake_provider.FakeCambridge "qiskit_ibm_runtime.fake_provider.FakeCambridge")() | A fake Cambridge backend. | -| [`FakeCasablanca`](qiskit_ibm_runtime.fake_provider.FakeCasablanca "qiskit_ibm_runtime.fake_provider.FakeCasablanca")() | A fake 7 qubit backend. | -| [`FakeEssex`](qiskit_ibm_runtime.fake_provider.FakeEssex "qiskit_ibm_runtime.fake_provider.FakeEssex")() | A fake 5 qubit backend. | -| [`FakeGuadalupe`](qiskit_ibm_runtime.fake_provider.FakeGuadalupe "qiskit_ibm_runtime.fake_provider.FakeGuadalupe")() | A fake 16 qubit backend. | -| [`FakeHanoi`](qiskit_ibm_runtime.fake_provider.FakeHanoi "qiskit_ibm_runtime.fake_provider.FakeHanoi")() | A fake 27 qubit backend. | -| [`FakeJakarta`](qiskit_ibm_runtime.fake_provider.FakeJakarta "qiskit_ibm_runtime.fake_provider.FakeJakarta")() | A fake 7 qubit backend. | -| [`FakeJohannesburg`](qiskit_ibm_runtime.fake_provider.FakeJohannesburg "qiskit_ibm_runtime.fake_provider.FakeJohannesburg")() | A fake Johannesburg backend. | -| [`FakeKolkata`](qiskit_ibm_runtime.fake_provider.FakeKolkata "qiskit_ibm_runtime.fake_provider.FakeKolkata")() | A fake 27 qubit backend. | -| [`FakeLagos`](qiskit_ibm_runtime.fake_provider.FakeLagos "qiskit_ibm_runtime.fake_provider.FakeLagos")() | A fake 7 qubit backend. | -| [`FakeLima`](qiskit_ibm_runtime.fake_provider.FakeLima "qiskit_ibm_runtime.fake_provider.FakeLima")() | A fake 5 qubit backend. | -| [`FakeLondon`](qiskit_ibm_runtime.fake_provider.FakeLondon "qiskit_ibm_runtime.fake_provider.FakeLondon")() | A fake 5 qubit backend. | -| [`FakeManhattan`](qiskit_ibm_runtime.fake_provider.FakeManhattan "qiskit_ibm_runtime.fake_provider.FakeManhattan")() | A fake Manhattan backend. | -| [`FakeManila`](qiskit_ibm_runtime.fake_provider.FakeManila "qiskit_ibm_runtime.fake_provider.FakeManila")() | A fake 5 qubit backend. | -| [`FakeMelbourne`](qiskit_ibm_runtime.fake_provider.FakeMelbourne "qiskit_ibm_runtime.fake_provider.FakeMelbourne")() | A fake 14 qubit backend. | -| [`FakeMontreal`](qiskit_ibm_runtime.fake_provider.FakeMontreal "qiskit_ibm_runtime.fake_provider.FakeMontreal")() | A fake 27 qubit backend. | -| [`FakeMumbai`](qiskit_ibm_runtime.fake_provider.FakeMumbai "qiskit_ibm_runtime.fake_provider.FakeMumbai")() | A fake 27 qubit backend. | -| [`FakeNairobi`](qiskit_ibm_runtime.fake_provider.FakeNairobi "qiskit_ibm_runtime.fake_provider.FakeNairobi")() | A fake 7 qubit backend. | -| [`FakeOurense`](qiskit_ibm_runtime.fake_provider.FakeOurense "qiskit_ibm_runtime.fake_provider.FakeOurense")() | A fake 5 qubit backend. | -| [`FakeParis`](qiskit_ibm_runtime.fake_provider.FakeParis "qiskit_ibm_runtime.fake_provider.FakeParis")() | A fake Paris backend. | -| [`FakePoughkeepsie`](qiskit_ibm_runtime.fake_provider.FakePoughkeepsie "qiskit_ibm_runtime.fake_provider.FakePoughkeepsie")() | A fake Poughkeepsie backend. | -| [`FakeQuito`](qiskit_ibm_runtime.fake_provider.FakeQuito "qiskit_ibm_runtime.fake_provider.FakeQuito")() | A fake 5 qubit backend. | -| [`FakeRochester`](qiskit_ibm_runtime.fake_provider.FakeRochester "qiskit_ibm_runtime.fake_provider.FakeRochester")() | A fake Rochester backend. | -| [`FakeRome`](qiskit_ibm_runtime.fake_provider.FakeRome "qiskit_ibm_runtime.fake_provider.FakeRome")() | A fake 5 qubit backend. | -| [`FakeRueschlikon`](qiskit_ibm_runtime.fake_provider.FakeRueschlikon "qiskit_ibm_runtime.fake_provider.FakeRueschlikon")() | A fake 16 qubit backend. | -| [`FakeSantiago`](qiskit_ibm_runtime.fake_provider.FakeSantiago "qiskit_ibm_runtime.fake_provider.FakeSantiago")() | A fake Santiago backend. | -| [`FakeSingapore`](qiskit_ibm_runtime.fake_provider.FakeSingapore "qiskit_ibm_runtime.fake_provider.FakeSingapore")() | A fake Singapore backend. | -| [`FakeSydney`](qiskit_ibm_runtime.fake_provider.FakeSydney "qiskit_ibm_runtime.fake_provider.FakeSydney")() | A fake 27 qubit backend. | -| [`FakeTenerife`](qiskit_ibm_runtime.fake_provider.FakeTenerife "qiskit_ibm_runtime.fake_provider.FakeTenerife")() | A fake 5 qubit backend. | -| [`FakeTokyo`](qiskit_ibm_runtime.fake_provider.FakeTokyo "qiskit_ibm_runtime.fake_provider.FakeTokyo")() | A fake 20 qubit backend. | -| [`FakeToronto`](qiskit_ibm_runtime.fake_provider.FakeToronto "qiskit_ibm_runtime.fake_provider.FakeToronto")() | A fake 27 qubit backend. | -| [`FakeValencia`](qiskit_ibm_runtime.fake_provider.FakeValencia "qiskit_ibm_runtime.fake_provider.FakeValencia")() | A fake 5 qubit backend. | -| [`FakeVigo`](qiskit_ibm_runtime.fake_provider.FakeVigo "qiskit_ibm_runtime.fake_provider.FakeVigo")() | A fake 5 qubit backend. | -| [`FakeWashington`](qiskit_ibm_runtime.fake_provider.FakeWashington "qiskit_ibm_runtime.fake_provider.FakeWashington")() | A fake 127 qubit backend. | -| [`FakeYorktown`](qiskit_ibm_runtime.fake_provider.FakeYorktown "qiskit_ibm_runtime.fake_provider.FakeYorktown")() | A fake 5 qubit backend. | - diff --git a/docs/api/qiskit-ibm-runtime/noise_learner_result.mdx b/docs/api/qiskit-ibm-runtime/noise_learner_result.mdx index 4bf17a9479d..277fbade34b 100644 --- a/docs/api/qiskit-ibm-runtime/noise_learner_result.mdx +++ b/docs/api/qiskit-ibm-runtime/noise_learner_result.mdx @@ -17,5 +17,5 @@ python_api_name: qiskit_ibm_runtime.utils.noise_learner_result | | | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------- | | [`PauliLindbladError`](qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError "qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError")(generators, rates) | A Pauli error channel generated by a Pauli Lindblad dissipators. | -| [`LayerError`](qiskit_ibm_runtime.utils.noise_learner_result.LayerError "qiskit_ibm_runtime.utils.noise_learner_result.LayerError")(circuit, qubits, error) | The error channel (in Pauli-Lindblad format) of a single layer of instructions. | +| [`LayerError`](qiskit_ibm_runtime.utils.noise_learner_result.LayerError "qiskit_ibm_runtime.utils.noise_learner_result.LayerError")(circuit, qubits\[, error]) | The error channel (in Pauli-Lindblad format) of a single layer of instructions. | diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Batch.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Batch.mdx index 2b4218e796e..99cc487da48 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Batch.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Batch.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.Batch # Batch - + Class for running jobs in batch execution mode. The `batch` mode is designed to efficiently perform experiments that comprise multiple independent jobs. @@ -108,7 +108,7 @@ python_api_name: qiskit_ibm_runtime.Batch ### backend - + Return backend for this session. **Return type** @@ -122,7 +122,7 @@ python_api_name: qiskit_ibm_runtime.Batch ### cancel - + Cancel all pending jobs in a session. **Return type** @@ -132,7 +132,7 @@ python_api_name: qiskit_ibm_runtime.Batch ### close - + Close the session so new jobs will no longer be accepted, but existing queued or running jobs will run to completion. The session will be terminated once there are no more pending jobs. **Return type** @@ -142,7 +142,7 @@ python_api_name: qiskit_ibm_runtime.Batch ### details - + Return session details. **Return type** @@ -171,7 +171,7 @@ python_api_name: qiskit_ibm_runtime.Batch ### from\_id - + Construct a Session object with a given session\_id **Parameters** @@ -197,7 +197,7 @@ python_api_name: qiskit_ibm_runtime.Batch ### status - + Return current session status. **Return type** @@ -217,7 +217,7 @@ python_api_name: qiskit_ibm_runtime.Batch ### usage - + Return session usage in seconds. Session usage is the time from when the first job starts until the session goes inactive, is closed, or when its last job completes, whichever happens last. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Estimator.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Estimator.mdx index 9302cda026d..0ff89fcbd70 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Estimator.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Estimator.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.Estimator # Estimator - + alias of [`EstimatorV2`](qiskit_ibm_runtime.EstimatorV2 "qiskit_ibm_runtime.estimator.EstimatorV2") diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.EstimatorV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.EstimatorV2.mdx index c6c1a70832e..997a7f76fcd 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.EstimatorV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.EstimatorV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.EstimatorV2 # EstimatorV2 - + Class for interacting with Qiskit Runtime Estimator primitive service. Qiskit Runtime Estimator primitive service estimates expectation values of quantum circuits and observables. @@ -103,7 +103,7 @@ python_api_name: qiskit_ibm_runtime.EstimatorV2 ### run - + Submit a request to the estimator primitive. **Parameters** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.IBMBackend.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.IBMBackend.mdx index d9f78ec056b..25ce5498e74 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.IBMBackend.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.IBMBackend.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend # IBMBackend - + Backend class interfacing with an IBM Quantum backend. @@ -343,7 +343,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend ### \_\_call\_\_ - + Call self as a function. **Return type** @@ -353,7 +353,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend ### acquire\_channel - + Return the acquisition channel for the given qubit. **Returns** @@ -367,7 +367,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend ### cancel\_session - + Cancel session. All pending jobs will be cancelled. **Return type** @@ -377,7 +377,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -395,7 +395,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend ### close\_session - + Close the session so new jobs will no longer be accepted, but existing queued or running jobs will run to completion. The session will be terminated once there are no more pending jobs. **Return type** @@ -405,7 +405,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend ### configuration - + Return the backend configuration. Backend configuration contains fixed information about the backend, such as its name, number of qubits, basis gates, coupling map, quantum volume, etc. @@ -435,7 +435,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -455,7 +455,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend ### defaults - + Return the pulse defaults for the backend. The schema for default pulse configuration can be found in [Qiskit/ibm-quantum-schemas/default\_pulse\_configuration](https://github.com/Qiskit/ibm-quantum-schemas/blob/main/schemas/default_pulse_configuration_schema.json). @@ -475,7 +475,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend ### drive\_channel - + Return the drive channel for the given qubit. **Returns** @@ -489,7 +489,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend ### get\_translation\_stage\_plugin - + Return the default translation stage plugin name for IBM backends. **Return type** @@ -499,7 +499,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend ### measure\_channel - + Return the measure stimulus channel for the given qubit. **Returns** @@ -513,7 +513,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend ### open\_session - + Open session **Return type** @@ -523,7 +523,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend ### properties - + Return the backend properties, subject to optional filtering. This data describes qubits properties (such as T1 and T2), gates properties (such as gate length and error), and other general properties of the backend. @@ -575,7 +575,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend ### run - + Run on the backend. If a keyword specified here is also present in the `options` attribute/object, the value specified here will be used for this run. **Parameters** @@ -664,7 +664,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend ### status - + Return the backend status. @@ -686,7 +686,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend ### target\_history - + A [`qiskit.transpiler.Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") object for the backend. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.QiskitRuntimeService.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.QiskitRuntimeService.mdx index beacdc6b681..454df61c788 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.QiskitRuntimeService.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.QiskitRuntimeService.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService # QiskitRuntimeService - + Class for interacting with the Qiskit Runtime service. QiskitRuntimeService constructor @@ -71,7 +71,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### active\_account - + Return the IBM Quantum account currently in use for the session. **Return type** @@ -85,7 +85,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### backend - + Return a single backend matching the specified filtering. **Parameters** @@ -109,7 +109,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### backends - + Return all backends accessible via this account, subject to optional filtering. **Parameters** @@ -170,7 +170,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### check\_pending\_jobs - + Check the number of pending jobs and wait for the oldest pending job if the maximum number of pending jobs has been reached. **Return type** @@ -180,7 +180,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### delete\_account - + Delete a saved account from disk. **Parameters** @@ -200,7 +200,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### delete\_job - + Delete a runtime job. Note that this operation cannot be reversed. @@ -221,7 +221,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### instances - + Return the IBM Quantum instances list currently in use for the session. **Return type** @@ -235,7 +235,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### job - + Retrieve a runtime job. **Parameters** @@ -258,7 +258,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### jobs - + Retrieve all runtime jobs, subject to optional filtering. **Parameters** @@ -290,7 +290,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### least\_busy - + Return the least busy available backend. **Parameters** @@ -322,7 +322,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### save\_account - + Save the account to disk for future use. **Parameters** @@ -347,7 +347,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### saved\_accounts - + List the accounts saved on disk. **Parameters** @@ -372,7 +372,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### usage - + Return monthly open plan usage information. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeDecoder.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeDecoder.mdx index 84e3da73a73..8ff0f862699 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeDecoder.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeDecoder.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeDecoder # RuntimeDecoder - + JSON Decoder used by runtime service. `object_hook`, if specified, will be called with the result of every JSON object decoded and its return value will be used in place of the given `dict`. This can be used to provide custom deserializations (e.g. to support JSON-RPC class hinting). @@ -33,7 +33,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeDecoder ### object\_hook - + Called to decode object. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeEncoder.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeEncoder.mdx index a7b1f6ea6bd..12811df1999 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeEncoder.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeEncoder.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeEncoder # RuntimeEncoder - + JSON Encoder used by runtime service. Constructor for JSONEncoder, with sensible defaults. @@ -43,7 +43,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeEncoder ### default - + Implement this method in a subclass such that it returns a serializable object for `o`, or calls the base implementation (to raise a `TypeError`). For example, to support arbitrary iterators, you could implement default like this: diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob.mdx index 98e3ba1a7ad..b88bfd635be 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJob # RuntimeJob - + Representation of a runtime primitive execution. A new `RuntimeJob` instance is returned when you call `QiskitRuntimeService.run` to execute a runtime primitive, or [`QiskitRuntimeService.job`](qiskit_ibm_runtime.QiskitRuntimeService#job "qiskit_ibm_runtime.QiskitRuntimeService.job") to retrieve a previously executed job. @@ -165,7 +165,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJob ### backend - + Return the backend where this job was executed. Retrieve data again if backend is None. **Raises** @@ -179,7 +179,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJob ### cancel - + Cancel the job. **Raises** @@ -194,7 +194,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJob ### cancel\_result\_streaming - + Cancel result streaming. **Return type** @@ -224,7 +224,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJob ### error\_message - + Returns the reason if the job failed. **Return type** @@ -238,7 +238,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJob ### errored - + Return whether the job has failed. **Return type** @@ -248,7 +248,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJob ### in\_final\_state - + Return whether the job is in a final job state such as `DONE` or `ERROR`. **Return type** @@ -258,8 +258,8 @@ python_api_name: qiskit_ibm_runtime.RuntimeJob ### interim\_results - - Return the interim results of the job. + + (DEPRECATED) Return the interim results of the job. **Parameters** @@ -290,7 +290,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJob ### logs - + Return job logs. @@ -312,7 +312,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJob ### metrics - + Return job metrics. **Returns** @@ -334,7 +334,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJob ### properties - + Return the backend properties for this job. **Parameters** @@ -352,7 +352,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJob ### queue\_info - + Return queue information for this job. The queue information may include queue position, estimated start and end time, and dynamic priorities for the hub, group, and project. See `QueueInfo` for more information. @@ -372,7 +372,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJob ### queue\_position - + Return the position of the job in the server queue. @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJob ### result - + Return the results of the job. **Parameters** @@ -429,7 +429,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJob ### status - + Return the status of the job. **Return type** @@ -443,8 +443,8 @@ python_api_name: qiskit_ibm_runtime.RuntimeJob ### stream\_results - - Start streaming job results. + + (DEPRECATED) Start streaming job results. **Parameters** @@ -468,7 +468,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJob ### submit - + Unsupported method. .. note: ```python @@ -488,7 +488,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJob ### update\_tags - + Update the tags associated with this job. **Parameters** @@ -510,7 +510,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJob ### usage - + Return job usage in seconds. **Return type** @@ -520,7 +520,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJob ### wait\_for\_final\_state - + Poll for the job status from the API until the status is in a final state. **Parameters** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJobV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJobV2.mdx index 7020f198215..c4347d7223b 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJobV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJobV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJobV2 # RuntimeJobV2 - + Representation of a runtime V2 primitive exeuction. RuntimeJob constructor. @@ -143,7 +143,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJobV2 ### backend - + Return the backend where this job was executed. Retrieve data again if backend is None. **Raises** @@ -157,7 +157,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJobV2 ### cancel - + Cancel the job. **Raises** @@ -172,7 +172,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJobV2 ### cancel\_result\_streaming - + Cancel result streaming. **Return type** @@ -182,7 +182,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJobV2 ### cancelled - + Return whether the job has been cancelled. **Return type** @@ -192,7 +192,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJobV2 ### done - + Return whether the job has successfully run. **Return type** @@ -202,7 +202,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJobV2 ### error\_message - + Returns the reason if the job failed. **Return type** @@ -216,7 +216,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJobV2 ### errored - + Return whether the job has failed. **Return type** @@ -226,7 +226,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJobV2 ### in\_final\_state - + Return whether the job is in a final job state such as `DONE` or `ERROR`. **Return type** @@ -236,8 +236,8 @@ python_api_name: qiskit_ibm_runtime.RuntimeJobV2 ### interim\_results - - Return the interim results of the job. + + (DEPRECATED) Return the interim results of the job. **Parameters** @@ -268,7 +268,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJobV2 ### logs - + Return job logs. @@ -290,7 +290,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJobV2 ### metrics - + Return job metrics. **Returns** @@ -312,7 +312,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJobV2 ### properties - + Return the backend properties for this job. **Parameters** @@ -330,7 +330,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJobV2 ### result - + Return the results of the job. **Parameters** @@ -355,7 +355,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJobV2 ### running - + Return whether the job is actively running. **Return type** @@ -365,7 +365,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJobV2 ### status - + Return the status of the job. **Return type** @@ -379,8 +379,8 @@ python_api_name: qiskit_ibm_runtime.RuntimeJobV2 ### stream\_results - - Start streaming job results. + + (DEPRECATED) Start streaming job results. **Parameters** @@ -404,7 +404,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJobV2 ### update\_tags - + Update the tags associated with this job. **Parameters** @@ -426,7 +426,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJobV2 ### usage - + Return job usage in seconds. **Return type** @@ -436,7 +436,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJobV2 ### wait\_for\_final\_state - + Poll for the job status from the API until the status is in a final state. **Parameters** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler.mdx index 817c1dde5f4..9c08360a745 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.Sampler # Sampler - + alias of [`SamplerV2`](qiskit_ibm_runtime.SamplerV2 "qiskit_ibm_runtime.sampler.SamplerV2") diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.SamplerV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.SamplerV2.mdx index e9fb4eb837e..e906e9e6537 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.SamplerV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.SamplerV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.SamplerV2 # SamplerV2 - + Class for interacting with Qiskit Runtime Sampler primitive service. This class supports version 2 of the Sampler interface, which uses different input and output formats than version 1. @@ -71,7 +71,7 @@ python_api_name: qiskit_ibm_runtime.SamplerV2 ### run - + Submit a request to the sampler primitive. **Parameters** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Session.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Session.mdx index 3128e0ef5c5..dc5416a8ecb 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Session.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Session.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.Session # Session - + Class for creating a Qiskit Runtime session. A Qiskit Runtime `session` allows you to group a collection of iterative calls to the quantum computer. A session is started when the first job within the session is started. Subsequent jobs within the session are prioritized by the scheduler. @@ -90,7 +90,7 @@ python_api_name: qiskit_ibm_runtime.Session ### backend - + Return backend for this session. **Return type** @@ -104,7 +104,7 @@ python_api_name: qiskit_ibm_runtime.Session ### cancel - + Cancel all pending jobs in a session. **Return type** @@ -114,7 +114,7 @@ python_api_name: qiskit_ibm_runtime.Session ### close - + Close the session so new jobs will no longer be accepted, but existing queued or running jobs will run to completion. The session will be terminated once there are no more pending jobs. **Return type** @@ -124,7 +124,7 @@ python_api_name: qiskit_ibm_runtime.Session ### details - + Return session details. **Return type** @@ -153,7 +153,7 @@ python_api_name: qiskit_ibm_runtime.Session ### from\_id - + Construct a Session object with a given session\_id **Parameters** @@ -179,7 +179,7 @@ python_api_name: qiskit_ibm_runtime.Session ### status - + Return current session status. **Return type** @@ -199,7 +199,7 @@ python_api_name: qiskit_ibm_runtime.Session ### usage - + Return session usage in seconds. Session usage is the time from when the first job starts until the session goes inactive, is closed, or when its last job completes, whichever happens last. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.execution_span.ExecutionSpan.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.execution_span.ExecutionSpan.mdx index 8e9f4a67945..d225a962fb3 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.execution_span.ExecutionSpan.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.execution_span.ExecutionSpan.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.ExecutionSpan # ExecutionSpan - + Abstract parent for classes that store an execution time span for a subset of job data. A pub is said to have dependence on an execution span if the corresponding execution includes data that forms any part of the pub’s results. @@ -84,7 +84,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.ExecutionSpan ### contains\_pub - + Return whether the pub with the given index has data with dependence on this span. **Parameters** @@ -102,7 +102,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.ExecutionSpan ### filter\_by\_pub - + Return a new span whose slices are filtered to the provided pub indices. For example, if this span contains slice information for pubs with indices 1, 3, 4 and `[1, 4]` is provided, then the span returned by this method will contain slice information for only those two indices, but be identical otherwise. @@ -122,7 +122,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.ExecutionSpan ### mask - + Return an array-valued mask specifying which parts of a pub result depend on this span. **Parameters** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.execution_span.ExecutionSpans.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.execution_span.ExecutionSpans.mdx index 81c6cdacdac..f8c3cc4ad89 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.execution_span.ExecutionSpans.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.execution_span.ExecutionSpans.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.ExecutionSpans # ExecutionSpans - + A collection of timings for pub results. This class is a list-like containing [`ExecutionSpan`](qiskit_ibm_runtime.execution_span.ExecutionSpan "qiskit_ibm_runtime.execution_span.ExecutionSpan")s, where each execution span represents a time window of data collection, and contains a reference to exactly which of the data were collected during the window. @@ -61,7 +61,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.ExecutionSpans ### \_\_getitem\_\_ - + **Return type** [ExecutionSpan](qiskit_ibm_runtime.execution_span.ExecutionSpan "qiskit_ibm_runtime.execution_span.ExecutionSpan") | ‘ExecutionSpans @@ -69,7 +69,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.ExecutionSpans ### \_\_len\_\_ - + **Return type** `int` @@ -77,7 +77,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.ExecutionSpans ### filter\_by\_pub - + Return a new set of spans where each one has been filtered to the specified pubs. See also :meth:\~.ExecutionSpan.filter\_by\_pub\`. @@ -93,7 +93,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.ExecutionSpans ### sort - + Return the same execution spans, sorted. Sorting is done by the [`start`](qiskit_ibm_runtime.execution_span.ExecutionSpan#start "qiskit_ibm_runtime.execution_span.ExecutionSpan.start") timestamp of each execution span. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.execution_span.SliceSpan.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.execution_span.SliceSpan.mdx index 7691ee98533..61d5b35a550 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.execution_span.SliceSpan.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.execution_span.SliceSpan.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.SliceSpan # SliceSpan - + An [`ExecutionSpan`](qiskit_ibm_runtime.execution_span.ExecutionSpan "qiskit_ibm_runtime.execution_span.ExecutionSpan") for data stored in a sliceable format. This type of execution span references pub result data by assuming that it is a sliceable portion of the (row major) flattened data. Therefore, for each pub dependent on this span, the constructor accepts a single `slice` object, along with the corresponding shape of the data to be sliced. @@ -71,7 +71,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.SliceSpan ### contains\_pub - + Return whether the pub with the given index has data with dependence on this span. **Parameters** @@ -89,7 +89,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.SliceSpan ### filter\_by\_pub - + Return a new span whose slices are filtered to the provided pub indices. For example, if this span contains slice information for pubs with indices 1, 3, 4 and `[1, 4]` is provided, then the span returned by this method will contain slice information for only those two indices, but be identical otherwise. @@ -109,7 +109,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.SliceSpan ### mask - + Return an array-valued mask specifying which parts of a pub result depend on this span. **Parameters** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlgiers.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlgiers.mdx index 29e2db8bf6a..c32045eb8bb 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlgiers.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlgiers.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlgiers # FakeAlgiers - + A fake 27 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlgiers ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlgiers ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlgiers ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlgiers ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlgiers ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlgiers ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlgiers ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlgiers ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlgiers ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlgiers ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlgiers ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.mdx index 0c1f7bb7cf1..8022c3e591d 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 # FakeAlmadenV2 - + A fake Almaden V2 backend. ```python @@ -219,7 +219,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -235,7 +235,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 ### configuration - + Return the backend configuration. **Return type** @@ -263,7 +263,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -285,7 +285,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -304,7 +304,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -320,7 +320,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -336,7 +336,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 ### properties - + Return the backend properties **Parameters** @@ -379,7 +379,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -404,7 +404,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -449,7 +449,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeArmonkV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeArmonkV2.mdx index d99cbe7f51f..07110a2a402 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeArmonkV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeArmonkV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonkV2 # FakeArmonkV2 - + A fake 1 qubit backend. ```python @@ -213,7 +213,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonkV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -229,7 +229,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonkV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -247,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonkV2 ### configuration - + Return the backend configuration. **Return type** @@ -257,7 +257,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonkV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -279,7 +279,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonkV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -298,7 +298,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonkV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -314,7 +314,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonkV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -330,7 +330,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonkV2 ### properties - + Return the backend properties **Parameters** @@ -373,7 +373,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonkV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -398,7 +398,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonkV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -443,7 +443,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonkV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAthensV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAthensV2.mdx index 9aaf6dd3199..c75f05f41ac 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAthensV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAthensV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthensV2 # FakeAthensV2 - + A fake 5 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthensV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthensV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthensV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthensV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthensV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthensV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthensV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthensV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthensV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthensV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthensV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAuckland.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAuckland.mdx index 6e64452fc51..3ed88fdd8e1 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAuckland.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAuckland.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAuckland # FakeAuckland - + A fake 27 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAuckland ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAuckland ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAuckland ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAuckland ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAuckland ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAuckland ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAuckland ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAuckland ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAuckland ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAuckland ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAuckland ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBelemV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBelemV2.mdx index 89a6d3192d2..ca168c10b43 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBelemV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBelemV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelemV2 # FakeBelemV2 - + A fake 5 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelemV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelemV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelemV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelemV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelemV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelemV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelemV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelemV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelemV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelemV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelemV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.mdx index 09d176c008c..5d81f536d7c 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 # FakeBoeblingenV2 - + A fake Boeblingen V2 backend. ```python @@ -219,7 +219,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -235,7 +235,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 ### configuration - + Return the backend configuration. **Return type** @@ -263,7 +263,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -285,7 +285,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -304,7 +304,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -320,7 +320,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -336,7 +336,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 ### properties - + Return the backend properties **Parameters** @@ -379,7 +379,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -404,7 +404,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -449,7 +449,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBogotaV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBogotaV2.mdx index 1e2040ed817..5e43b960539 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBogotaV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBogotaV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogotaV2 # FakeBogotaV2 - + A fake 5 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogotaV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogotaV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogotaV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogotaV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogotaV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogotaV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogotaV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogotaV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogotaV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogotaV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogotaV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrisbane.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrisbane.mdx index de0154d5005..021c2847210 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrisbane.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrisbane.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrisbane # FakeBrisbane - + A fake 127 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrisbane ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrisbane ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrisbane ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrisbane ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrisbane ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrisbane ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrisbane ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrisbane ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrisbane ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrisbane ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrisbane ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.mdx index c82c101f5cd..336893a30e4 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 # FakeBrooklynV2 - + A fake Brooklyn V2 backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.mdx index 634c143284e..6aa31b665f8 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 # FakeBurlingtonV2 - + A fake 5 qubit backend. ```python @@ -215,7 +215,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -231,7 +231,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -249,7 +249,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 ### configuration - + Return the backend configuration. **Return type** @@ -259,7 +259,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -281,7 +281,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -300,7 +300,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -316,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -332,7 +332,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 ### properties - + Return the backend properties **Parameters** @@ -375,7 +375,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -400,7 +400,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -445,7 +445,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCairoV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCairoV2.mdx index 11e3bc322a3..b08db244ec1 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCairoV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCairoV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairoV2 # FakeCairoV2 - + A fake 27 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairoV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairoV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairoV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairoV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairoV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairoV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairoV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairoV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairoV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairoV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairoV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.mdx index 4c1ec839c59..5876f4f0c60 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 # FakeCambridgeV2 - + A fake Cambridge backend. ```python @@ -221,7 +221,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -237,7 +237,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -255,7 +255,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 ### configuration - + Return the backend configuration. **Return type** @@ -265,7 +265,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -287,7 +287,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -306,7 +306,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -322,7 +322,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -338,7 +338,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 ### properties - + Return the backend properties **Parameters** @@ -381,7 +381,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -406,7 +406,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -451,7 +451,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.mdx index 6841c366eeb..3200dccd376 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 # FakeCasablancaV2 - + A fake 7 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCusco.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCusco.mdx index b3b87a28428..8fdc03729c5 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCusco.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCusco.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCusco # FakeCusco - + A fake 127 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCusco ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCusco ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCusco ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCusco ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCusco ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCusco ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCusco ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCusco ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCusco ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCusco ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCusco ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeEssexV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeEssexV2.mdx index cc831834a8f..42ceff241dc 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeEssexV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeEssexV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssexV2 # FakeEssexV2 - + A fake 5 qubit backend. ```python @@ -217,7 +217,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssexV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -233,7 +233,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssexV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -251,7 +251,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssexV2 ### configuration - + Return the backend configuration. **Return type** @@ -261,7 +261,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssexV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -283,7 +283,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssexV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -302,7 +302,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssexV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -318,7 +318,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssexV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -334,7 +334,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssexV2 ### properties - + Return the backend properties **Parameters** @@ -377,7 +377,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssexV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -402,7 +402,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssexV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -447,7 +447,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssexV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.mdx index 2978412cac4..2cf022e9536 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFractionalBackend # FakeFractionalBackend - + A fake 5 qubit backend with dynamic and fractional feature modeled based on FakeLima. This backend include following features. @@ -216,7 +216,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFractionalBackend ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -232,7 +232,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFractionalBackend ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -250,7 +250,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFractionalBackend ### configuration - + Return the backend configuration. **Return type** @@ -260,7 +260,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFractionalBackend ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -282,7 +282,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFractionalBackend ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -301,7 +301,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFractionalBackend ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -317,7 +317,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFractionalBackend ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -333,7 +333,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFractionalBackend ### properties - + Return the backend properties **Parameters** @@ -376,7 +376,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFractionalBackend ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -401,7 +401,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFractionalBackend ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -446,7 +446,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFractionalBackend ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGeneva.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGeneva.mdx index be8574aaeaf..01fdfcce0fe 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGeneva.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGeneva.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGeneva # FakeGeneva - + A fake 27 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGeneva ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGeneva ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGeneva ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGeneva ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGeneva ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGeneva ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGeneva ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGeneva ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGeneva ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGeneva ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGeneva ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.mdx index ab10058a0b0..15c0e866261 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 # FakeGuadalupeV2 - + A fake 16 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeHanoiV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeHanoiV2.mdx index 54f48088c66..ab96df41c4d 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeHanoiV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeHanoiV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoiV2 # FakeHanoiV2 - + A fake 27 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoiV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoiV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoiV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoiV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoiV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoiV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoiV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoiV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoiV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoiV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoiV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJakartaV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJakartaV2.mdx index 123cecab7f6..cb03b8dc162 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJakartaV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJakartaV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakartaV2 # FakeJakartaV2 - + A fake 7 qubit V2 backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakartaV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakartaV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakartaV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakartaV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakartaV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakartaV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakartaV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakartaV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakartaV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakartaV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakartaV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.mdx index bdc4e7e8fa8..70d39f63125 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 # FakeJohannesburgV2 - + A fake Johannesburg V2 backend. ```python @@ -219,7 +219,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -235,7 +235,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 ### configuration - + Return the backend configuration. **Return type** @@ -263,7 +263,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -285,7 +285,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -304,7 +304,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -320,7 +320,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -336,7 +336,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 ### properties - + Return the backend properties **Parameters** @@ -379,7 +379,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -404,7 +404,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -449,7 +449,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKawasaki.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKawasaki.mdx index 993c9bbabbe..3649e87c980 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKawasaki.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKawasaki.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKawasaki # FakeKawasaki - + A fake 127 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKawasaki ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKawasaki ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKawasaki ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKawasaki ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKawasaki ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKawasaki ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKawasaki ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKawasaki ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKawasaki ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKawasaki ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKawasaki ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKolkataV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKolkataV2.mdx index ceefcc11492..bb01b7c20e9 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKolkataV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKolkataV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkataV2 # FakeKolkataV2 - + A fake 27 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkataV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkataV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkataV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkataV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkataV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkataV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkataV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkataV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkataV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkataV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkataV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKyiv.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKyiv.mdx index 9d6583bf7ac..8dc985d2eab 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKyiv.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKyiv.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyiv # FakeKyiv - + A fake 127 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyiv ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyiv ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyiv ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyiv ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyiv ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyiv ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyiv ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyiv ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyiv ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyiv ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyiv ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKyoto.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKyoto.mdx index 895bcd6d52e..b8f745b7c6c 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKyoto.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKyoto.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyoto # FakeKyoto - + A fake 127 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyoto ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyoto ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyoto ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyoto ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyoto ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyoto ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyoto ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyoto ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyoto ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyoto ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyoto ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLagosV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLagosV2.mdx index 7476331bf26..785308c0508 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLagosV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLagosV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagosV2 # FakeLagosV2 - + A fake 7 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagosV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagosV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagosV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagosV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagosV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagosV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagosV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagosV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagosV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagosV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagosV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLimaV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLimaV2.mdx index 1ef41f68bc8..2d0b2179389 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLimaV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLimaV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLimaV2 # FakeLimaV2 - + A fake 5 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLimaV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLimaV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLimaV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLimaV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLimaV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLimaV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLimaV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLimaV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLimaV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLimaV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLimaV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLondonV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLondonV2.mdx index f068e3fc0e5..c8265710a69 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLondonV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLondonV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondonV2 # FakeLondonV2 - + A fake 5 qubit backend. ```python @@ -217,7 +217,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondonV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -233,7 +233,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondonV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -251,7 +251,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondonV2 ### configuration - + Return the backend configuration. **Return type** @@ -261,7 +261,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondonV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -283,7 +283,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondonV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -302,7 +302,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondonV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -318,7 +318,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondonV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -334,7 +334,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondonV2 ### properties - + Return the backend properties **Parameters** @@ -377,7 +377,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondonV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -402,7 +402,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondonV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -447,7 +447,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondonV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManhattanV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManhattanV2.mdx index 4bcff4a3a34..566e2f5a7d9 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManhattanV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManhattanV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattanV2 # FakeManhattanV2 - + A fake Manhattan backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattanV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattanV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattanV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattanV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattanV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattanV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattanV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattanV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattanV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattanV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattanV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManilaV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManilaV2.mdx index 59e2ec13ad0..d42d71fb2b6 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManilaV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManilaV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManilaV2 # FakeManilaV2 - + A fake 5 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManilaV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManilaV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManilaV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManilaV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManilaV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManilaV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManilaV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManilaV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManilaV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManilaV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManilaV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.mdx index 36c24eae91b..f987ea5b87a 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 # FakeMelbourneV2 - + A fake 14 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMontrealV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMontrealV2.mdx index c763da1d632..124e32c77b5 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMontrealV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMontrealV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontrealV2 # FakeMontrealV2 - + A fake 27 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontrealV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontrealV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontrealV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontrealV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontrealV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontrealV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontrealV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontrealV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontrealV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontrealV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontrealV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.mdx index 909b4f59f76..f141e5ee473 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 # FakeMumbaiV2 - + A fake 27 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeNairobiV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeNairobiV2.mdx index 3fc4ca6f18d..ca7c9f1ead7 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeNairobiV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeNairobiV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobiV2 # FakeNairobiV2 - + A fake 7 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobiV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobiV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobiV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobiV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobiV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobiV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobiV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobiV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobiV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobiV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobiV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOsaka.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOsaka.mdx index 68e3c8a9c45..4d2340a7295 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOsaka.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOsaka.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOsaka # FakeOsaka - + A fake 127 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOsaka ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOsaka ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOsaka ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOsaka ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOsaka ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOsaka ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOsaka ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOsaka ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOsaka ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOsaka ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOsaka ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOslo.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOslo.mdx index a8725fa05f2..5a00c34d949 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOslo.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOslo.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOslo # FakeOslo - + A fake 7 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOslo ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOslo ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOslo ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOslo ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOslo ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOslo ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOslo ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOslo ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOslo ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOslo ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOslo ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOurenseV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOurenseV2.mdx index 367150388bd..660dd42ebef 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOurenseV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOurenseV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurenseV2 # FakeOurenseV2 - + A fake 5 qubit backend. ```python @@ -215,7 +215,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurenseV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -231,7 +231,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurenseV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -249,7 +249,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurenseV2 ### configuration - + Return the backend configuration. **Return type** @@ -259,7 +259,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurenseV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -281,7 +281,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurenseV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -300,7 +300,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurenseV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -316,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurenseV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -332,7 +332,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurenseV2 ### properties - + Return the backend properties **Parameters** @@ -375,7 +375,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurenseV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -400,7 +400,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurenseV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -445,7 +445,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurenseV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeParisV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeParisV2.mdx index 7f948a9b31f..8071be20e3d 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeParisV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeParisV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeParisV2 # FakeParisV2 - + A fake Paris backend. ```python @@ -221,7 +221,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeParisV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -237,7 +237,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeParisV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -255,7 +255,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeParisV2 ### configuration - + Return the backend configuration. **Return type** @@ -265,7 +265,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeParisV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -287,7 +287,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeParisV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -306,7 +306,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeParisV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -322,7 +322,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeParisV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -338,7 +338,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeParisV2 ### properties - + Return the backend properties **Parameters** @@ -381,7 +381,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeParisV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -406,7 +406,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeParisV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -451,7 +451,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeParisV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePeekskill.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePeekskill.mdx index 7b1b5ac7a41..0bee3fd7398 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePeekskill.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePeekskill.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePeekskill # FakePeekskill - + A fake 27 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePeekskill ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePeekskill ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePeekskill ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePeekskill ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePeekskill ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePeekskill ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePeekskill ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePeekskill ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePeekskill ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePeekskill ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePeekskill ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePerth.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePerth.mdx index f40abdcb7ba..2c3b233bffd 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePerth.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePerth.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePerth # FakePerth - + A fake 7 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePerth ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePerth ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePerth ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePerth ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePerth ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePerth ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePerth ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePerth ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePerth ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePerth ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePerth ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.mdx index 71b49719a88..01a4f6c35ab 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 # FakePoughkeepsieV2 - + A fake Poughkeepsie backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePrague.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePrague.mdx index 22dfd0d8ee6..bed93f13811 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePrague.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePrague.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePrague # FakePrague - + A fake 33 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePrague ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePrague ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePrague ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePrague ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePrague ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePrague ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePrague ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePrague ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePrague ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePrague ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePrague ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2.mdx index 00602199bfa..771050045a2 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2 # FakeProviderForBackendV2 - + Fake provider containing fake V2 backends. Only filtering backends by name is implemented. This class contains all fake V2 backends available in the [`qiskit_ibm_runtime.fake_provider`](fake_provider#module-qiskit_ibm_runtime.fake_provider "qiskit_ibm_runtime.fake_provider"). @@ -17,7 +17,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2 ### backend - + Filter backends in provider by name. **Return type** @@ -27,22 +27,12 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2 ### backends - + Return all backends accessible via this account. **Return type** `List`\[`FakeBackendV2`] - - ### get\_backend - - - Return a single backend matching the specified filtering. - - **Return type** - - `FakeBackendV2` - diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuebec.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuebec.mdx index f5027e885fa..0dd6397beb6 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuebec.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuebec.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuebec # FakeQuebec - + A fake 127 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuebec ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuebec ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuebec ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuebec ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuebec ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuebec ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuebec ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuebec ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuebec ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuebec ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuebec ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuitoV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuitoV2.mdx index 7c60f004f09..8226331957a 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuitoV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuitoV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuitoV2 # FakeQuitoV2 - + A fake 5 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuitoV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuitoV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuitoV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuitoV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuitoV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuitoV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuitoV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuitoV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuitoV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuitoV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuitoV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRochesterV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRochesterV2.mdx index 94a2197ef80..be2b9df06a3 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRochesterV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRochesterV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochesterV2 # FakeRochesterV2 - + A fake Rochester backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochesterV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochesterV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochesterV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochesterV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochesterV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochesterV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochesterV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochesterV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochesterV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochesterV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochesterV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRomeV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRomeV2.mdx index 8a9ec31ba90..4ce5ef12271 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRomeV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRomeV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRomeV2 # FakeRomeV2 - + A fake 5 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRomeV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRomeV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRomeV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRomeV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRomeV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRomeV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRomeV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRomeV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRomeV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRomeV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRomeV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.mdx index 5ca5d6936bf..e084bbea270 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 # FakeSantiagoV2 - + A fake Santiago backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSherbrooke.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSherbrooke.mdx index ea496d812c7..7f6bb665588 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSherbrooke.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSherbrooke.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSherbrooke # FakeSherbrooke - + A fake 127 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSherbrooke ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSherbrooke ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSherbrooke ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSherbrooke ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSherbrooke ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSherbrooke ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSherbrooke ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSherbrooke ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSherbrooke ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSherbrooke ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSherbrooke ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.mdx index 378ab63eb90..f62977bc9c1 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 # FakeSingaporeV2 - + A fake Singapore backend. ```python @@ -219,7 +219,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -235,7 +235,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 ### configuration - + Return the backend configuration. **Return type** @@ -263,7 +263,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -285,7 +285,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -304,7 +304,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -320,7 +320,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -336,7 +336,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 ### properties - + Return the backend properties **Parameters** @@ -379,7 +379,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -404,7 +404,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -449,7 +449,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSydneyV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSydneyV2.mdx index 6c45dd2b2bc..8c1f6dd4ebb 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSydneyV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSydneyV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydneyV2 # FakeSydneyV2 - + A fake 27 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydneyV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydneyV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydneyV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydneyV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydneyV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydneyV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydneyV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydneyV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydneyV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydneyV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydneyV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTorino.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTorino.mdx index a796b7eac5f..20b0538a6f9 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTorino.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTorino.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorino # FakeTorino - + A fake 133 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorino ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorino ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorino ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorino ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorino ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorino ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorino ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorino ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorino ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorino ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorino ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTorontoV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTorontoV2.mdx index 512f4e7d7e9..68a5a650a3e 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTorontoV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTorontoV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorontoV2 # FakeTorontoV2 - + A fake 27 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorontoV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorontoV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorontoV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorontoV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorontoV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorontoV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorontoV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorontoV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorontoV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorontoV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorontoV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeValenciaV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeValenciaV2.mdx index 9d99a85a045..8a388446ee1 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeValenciaV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeValenciaV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeValenciaV2 # FakeValenciaV2 - + A fake 5 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeValenciaV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeValenciaV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeValenciaV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeValenciaV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeValenciaV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeValenciaV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeValenciaV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeValenciaV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeValenciaV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeValenciaV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeValenciaV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeVigoV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeVigoV2.mdx index 1874b59446d..030237b25f1 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeVigoV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeVigoV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigoV2 # FakeVigoV2 - + A fake 5 qubit backend. ```python @@ -215,7 +215,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigoV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -231,7 +231,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigoV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -249,7 +249,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigoV2 ### configuration - + Return the backend configuration. **Return type** @@ -259,7 +259,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigoV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -281,7 +281,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigoV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -300,7 +300,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigoV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -316,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigoV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -332,7 +332,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigoV2 ### properties - + Return the backend properties **Parameters** @@ -375,7 +375,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigoV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -400,7 +400,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigoV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -445,7 +445,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigoV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.mdx index a692f47d03c..8a6959ca804 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 # FakeWashingtonV2 - + A fake 127 qubit backend. FakeBackendV2 initializer. @@ -209,7 +209,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -225,7 +225,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -243,7 +243,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 ### configuration - + Return the backend configuration. **Return type** @@ -253,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -275,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -294,7 +294,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -310,7 +310,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -326,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 ### properties - + Return the backend properties **Parameters** @@ -369,7 +369,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -394,7 +394,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -439,7 +439,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeYorktownV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeYorktownV2.mdx index 5d8beb55327..ca7d472bd98 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeYorktownV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeYorktownV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktownV2 # FakeYorktownV2 - + A fake 5 qubit backend. ```python @@ -217,7 +217,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktownV2 ### acquire\_channel - + Return the acquisition channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -233,7 +233,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktownV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -251,7 +251,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktownV2 ### configuration - + Return the backend configuration. **Return type** @@ -261,7 +261,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktownV2 ### control\_channel - + Return the secondary drive channel for the given qubit This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. @@ -283,7 +283,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktownV2 ### defaults - + Return the pulse defaults for the backend **Parameters** @@ -302,7 +302,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktownV2 ### drive\_channel - + Return the drive channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -318,7 +318,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktownV2 ### measure\_channel - + Return the measure stimulus channel for the given qubit. This is required to be implemented if the backend supports Pulse scheduling. @@ -334,7 +334,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktownV2 ### properties - + Return the backend properties **Parameters** @@ -377,7 +377,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktownV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: \* ../fake\_provider/backends/\{backend\_name}/conf\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/defs\_\{backend\_name}.json \* ../fake\_provider/backends/\{backend\_name}/props\_\{backend\_name}.json @@ -402,7 +402,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktownV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicSimulator or Aer simulator and returns a [`Job`](/api/qiskit/qiskit.providers.Job "(in Qiskit v1.2)") object. @@ -447,7 +447,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktownV2 ### status - + Return the backend status. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.noise_learner.NoiseLearner.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.noise_learner.NoiseLearner.mdx index cfb090f0038..108e9ee995f 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.noise_learner.NoiseLearner.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.noise_learner.NoiseLearner.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.noise_learner.NoiseLearner # NoiseLearner - + Class for executing noise learning experiments. @@ -91,7 +91,7 @@ python_api_name: qiskit_ibm_runtime.noise_learner.NoiseLearner ### run - + Submit a request to the noise learner program. This function breaks the given list of circuits into a list of unique layers, following the strategy set by the `twirling_strategy` field specified in the `options` (see `NoiseLearnerOptions` for more details) and sorting them based on the number of times they occur in the various circuits. Then, it runs the noise learning experiment for as many layers as specified by the `max_layers_to_learn` field in the `options`, prioritizing layers that occurr more frequently. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.DynamicalDecouplingOptions.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.DynamicalDecouplingOptions.mdx index 936008896c4..7d027ba33ac 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.DynamicalDecouplingOptions.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.DynamicalDecouplingOptions.mdx @@ -8,47 +8,56 @@ python_api_name: qiskit_ibm_runtime.options.DynamicalDecouplingOptions # DynamicalDecouplingOptions - + Options for dynamical decoupling (DD). - **Parameters** + ## Attributes - * **enable** – Whether to enable DD as specified by the other options in this class. Default: False. + ### enable - * **sequence\_type** – + + Whether to enable DD as specified by the other options in this class. - Which dynamical decoupling sequence to use. Default: “XX”. + Default: False. + - * `"XX"`: use the sequence `tau/2 - (+X) - tau - (+X) - tau/2` - * `"XpXm"`: use the sequence `tau/2 - (+X) - tau - (-X) - tau/2` - * `"XY4"`: : use the sequence `tau/2 - (+X) - tau - (+Y) - tau (-X) - tau - (-Y) - tau/2` + ### extra\_slack\_distribution - * **extra\_slack\_distribution** – + + Where to put extra timing delays due to rounding issues. Rounding issues arise because the discrete time step `dt` of the system cannot be divided. This option takes following values. - Where to put extra timing delays due to rounding issues. Rounding issues arise because the discrete time step `dt` of the system cannot be divided. This option takes following values. Default: “middle”. + Default: “middle”. - * `"middle"`: Put the extra slack to the interval at the middle of the sequence. - * `"edges"`: Divide the extra slack as evenly as possible into intervals at beginning and end of the sequence. + * `"middle"`: Put the extra slack to the interval at the middle of the sequence. - * **scheduling\_method** – Whether to schedule gates as soon as (“asap”) or as late as (“alap”) possible. Default: “alap”. + * **`"edges"`: Divide the extra slack as evenly as possible into intervals at** - ## Attributes + beginning and end of the sequence. + - ### enable + ### scheduling\_method - + + Whether to schedule gates as soon as (“asap”) or as late as (“alap”) possible. - ### extra\_slack\_distribution + Default: “alap”. + - + ### sequence\_type - ### scheduling\_method + + Which dynamical decoupling sequence to use. - + Default: “XX”. - ### sequence\_type + * `"XX"`: use the sequence `tau/2 - (+X) - tau - (+X) - tau/2` + + * `"XpXm"`: use the sequence `tau/2 - (+X) - tau - (-X) - tau/2` + + * **`"XY4"`:use the sequence** - + `tau/2 - (+X) - tau - (+Y) - tau (-X) - tau - (-Y) - tau/2` + ## Methods diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.EnvironmentOptions.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.EnvironmentOptions.mdx index 04458bfa4b1..91d916b9e7c 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.EnvironmentOptions.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.EnvironmentOptions.mdx @@ -8,43 +8,43 @@ python_api_name: qiskit_ibm_runtime.options.EnvironmentOptions # EnvironmentOptions - + Options related to the execution environment. - **Parameters** - - * **log\_level** – logging level to set in the execution environment. The valid log levels are: `DEBUG`, `INFO`, `WARNING`, `ERROR`, and `CRITICAL`. Default: `WARNING`. - - * **callback** – - - Callback function to be invoked for any interim results and final result. The callback function will receive 2 positional parameters: - - > 1. Job ID - > 2. Job result. - - Default: `None`. - - * **job\_tags** – Tags to be assigned to the job. The tags can subsequently be used as a filter in the `qiskit_ibm_runtime.qiskit_runtime_service.jobs()` function call. Default: `None`. - - * **private** – Boolean value for marking jobs as private. - ## Attributes ### callback - + + Callback function to be invoked for any interim results and final result. The callback function will receive 2 positional parameters: + + > 1. Job ID + > 2. Job result. + + Default: `None`. + ### job\_tags - + + Tags to be assigned to the job. The tags can subsequently be used as a filter in the `qiskit_ibm_runtime.qiskit_runtime_service.jobs()` function call. + + Default: `None`. + ### log\_level - + + logging level to set in the execution environment. The valid log levels are: `DEBUG`, `INFO`, `WARNING`, `ERROR`, and `CRITICAL`. + + Default: `WARNING`. + ### private - + + Boolean value for marking jobs as private. + ## Methods diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.EstimatorOptions.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.EstimatorOptions.mdx index a130a67412e..8d56e9ab5bd 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.EstimatorOptions.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.EstimatorOptions.mdx @@ -8,73 +8,40 @@ python_api_name: qiskit_ibm_runtime.options.EstimatorOptions # EstimatorOptions - + Options for V2 Estimator. - **Parameters** - - * **default\_precision** – The default precision to use for any PUB or `run()` call that does not specify one. Each estimator pub can specify its own precision. If the `run()` method is given a precision, then that value is used for all PUBs in the `run()` call that do not specify their own. Default: 0.015625 (1 / sqrt(4096)). - - * **default\_shots** – - - The total number of shots to use per circuit per configuration. - - - If set, this value overrides [`default_precision`](#qiskit_ibm_runtime.options.EstimatorOptions.default_precision "qiskit_ibm_runtime.options.EstimatorOptions.default_precision"). - - - A configuration is a combination of a specific parameter value binding set and a physical measurement basis. A physical measurement basis groups together some collection of qubit-wise commuting observables for some specific circuit/parameter value set to create a single measurement with basis rotations that is inserted into hardware executions. - - If twirling is enabled, the value of this option will be divided over circuit, randomizations, with a smaller number of shots per randomization. See the [`twirling`](#qiskit_ibm_runtime.options.EstimatorOptions.twirling "qiskit_ibm_runtime.options.EstimatorOptions.twirling") options. - - Default: `None`. - - * **optimization\_level** – - - (DEPRECATED) How much optimization to perform on the circuits. Higher levels generate more optimized circuits, at the expense of longer processing times. - - * 0: no optimization - * 1: light optimization - - Default: 0. - - * **resilience\_level** – - - How much resilience to build against errors. Higher levels generate more accurate results, at the expense of longer processing times. - - * 0: No mitigation. - * 1: Minimal mitigation costs. Mitigate error associated with readout errors. - * 2: Medium mitigation costs. Typically reduces bias in estimators but is not guaranteed to be zero bias. - - Refer to the [Configure error mitigation for Qiskit Runtime](/guides/configure-error-mitigation). for more information about the error mitigation methods used at each level. - - Default: 1. - - * **seed\_estimator** – Seed used to control sampling. Default: `None`. - - * **dynamical\_decoupling** – Suboptions for dynamical decoupling. See [`DynamicalDecouplingOptions`](qiskit_ibm_runtime.options.DynamicalDecouplingOptions "qiskit_ibm_runtime.options.DynamicalDecouplingOptions") for all available options. + ## Attributes - * **resilience** – Advanced resilience options to fine tune the resilience strategy. See [`ResilienceOptionsV2`](qiskit_ibm_runtime.options.ResilienceOptionsV2 "qiskit_ibm_runtime.options.ResilienceOptionsV2") for all available options. + ### default\_precision - * **execution** – Execution time options. See [`ExecutionOptionsV2`](qiskit_ibm_runtime.options.ExecutionOptionsV2 "qiskit_ibm_runtime.options.ExecutionOptionsV2") for all available options. + + The default precision to use for any PUB or `run()` call that does not specify one. Each Estimator PUB can specify its own precision. If the `run()` method is given a precision, then that value is used for all PUBs in the `run()` call that do not specify their own. - * **twirling** – Pauli twirling options. See [`TwirlingOptions`](qiskit_ibm_runtime.options.TwirlingOptions "qiskit_ibm_runtime.options.TwirlingOptions") for all available options. + Default: 0.015625 (1 / sqrt(4096)). + - * **experimental** – Experimental options. These options are subject to change without notification, and stability is not guaranteed. + ### default\_shots - ## Attributes + + The total number of shots to use per circuit per configuration. - ### default\_precision + + If set, this value overrides [`default_precision`](#qiskit_ibm_runtime.options.EstimatorOptions.default_precision "qiskit_ibm_runtime.options.EstimatorOptions.default_precision"). + - + A configuration is a combination of a specific parameter value binding set and a physical measurement basis. A physical measurement basis groups together some collection of qubit-wise commuting observables for some specific circuit/parameter value set to create a single measurement with basis rotations that is inserted into hardware executions. - ### default\_shots + If twirling is enabled, the value of this option will be divided over circuit randomizations, with a smaller number of shots per randomization. See the [`twirling`](#qiskit_ibm_runtime.options.EstimatorOptions.twirling "qiskit_ibm_runtime.options.EstimatorOptions.twirling") options. - + Default: `None`. + ### dynamical\_decoupling - + + Suboptions for dynamical decoupling. See [`DynamicalDecouplingOptions`](qiskit_ibm_runtime.options.DynamicalDecouplingOptions "qiskit_ibm_runtime.options.DynamicalDecouplingOptions") for all available options. + ### environment @@ -82,11 +49,15 @@ python_api_name: qiskit_ibm_runtime.options.EstimatorOptions ### execution - + + Execution time options. See [`ExecutionOptionsV2`](qiskit_ibm_runtime.options.ExecutionOptionsV2 "qiskit_ibm_runtime.options.ExecutionOptionsV2") for all available options. + ### experimental - + + Experimental options. These options are subject to change without notification, and stability is not guaranteed. + ### max\_execution\_time @@ -94,19 +65,46 @@ python_api_name: qiskit_ibm_runtime.options.EstimatorOptions ### optimization\_level - + + (DEPRECATED) How much optimization to perform on the circuits. Higher levels generate more optimized circuits, at the expense of longer processing times. + + * 0: no optimization + * 1: light optimization + + Default: 0. + ### resilience - + + Advanced resilience options to fine-tune the resilience strategy. See [`ResilienceOptionsV2`](qiskit_ibm_runtime.options.ResilienceOptionsV2 "qiskit_ibm_runtime.options.ResilienceOptionsV2") for all available options. + ### resilience\_level - + + How much resilience to build against errors. Higher levels generate more accurate results, at the expense of longer processing times. + + * 0: No mitigation. + + * 1: Minimal mitigation costs. Mitigate error associated with readout errors. + + * **2: Medium mitigation costs. Typically reduces bias in estimators but** + + is not guaranteed to be zero bias. + + Refer to the [Configure error mitigation for Qiskit Runtime](/guides/configure-error-mitigation) guide for more information about the error mitigation methods used at each level. + + Default: 1. + ### seed\_estimator - + + Seed used to control sampling. + + Default: `None`. + ### simulator @@ -114,13 +112,15 @@ python_api_name: qiskit_ibm_runtime.options.EstimatorOptions ### twirling - + + Pauli twirling options. See [`TwirlingOptions`](qiskit_ibm_runtime.options.TwirlingOptions "qiskit_ibm_runtime.options.TwirlingOptions") for all available options. + ## Methods ### update - + Update the options. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ExecutionOptionsV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ExecutionOptionsV2.mdx index 8c7a346c2ec..752c6842d5b 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ExecutionOptionsV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ExecutionOptionsV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.options.ExecutionOptionsV2 # ExecutionOptionsV2 - + Execution options for V2 primitives. ## Attributes diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.LayerNoiseLearningOptions.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.LayerNoiseLearningOptions.mdx index 4603d62fe98..eaeefa355ea 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.LayerNoiseLearningOptions.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.LayerNoiseLearningOptions.mdx @@ -8,37 +8,46 @@ python_api_name: qiskit_ibm_runtime.options.LayerNoiseLearningOptions # LayerNoiseLearningOptions - + Options for learning layer noise. This is only used by V2 Estimator. These options are only used when the resilience level or options specify a technique that requires layer noise learning. - **Parameters** - - * **max\_layers\_to\_learn** – The max number of unique layers to learn. A `None` value indicates that there is no limit. If there are more unique layers present, then some layers will not be learned or mitigated. The learned layers are prioritized based on the number of times they occur in a set of run estimator PUBs, and for equally occurring layers are further sorted by the number of two-qubit gates in the layer. Default: 4. - * **shots\_per\_randomization** – The total number of shots to use per random learning circuit. A learning circuit is a random circuit at a specific learning depth with a specific measurement basis that is executed on hardware. Default: 128. - * **num\_randomizations** – The number of random circuits to use per learning circuit configuration. A configuration is a measurement basis and depth setting. For example, if your experiment has six depths, and nine required measurement bases, then setting this value to 32 will result in a total of `32 * 9 * 6` circuits that need to be executed (at [`shots_per_randomization`](#qiskit_ibm_runtime.options.LayerNoiseLearningOptions.shots_per_randomization "qiskit_ibm_runtime.options.LayerNoiseLearningOptions.shots_per_randomization") each). Default: 32. - * **layer\_pair\_depths** – The circuit depths (measured in number of pairs) to use in learning experiments. Pairs are used as the unit because we exploit the order-2 nature of our entangling gates in the noise learning implementation. A value of `3` would correspond to 6 layers of the layer of interest, for example. Default: (0, 1, 2, 4, 16, 32). - ## Attributes ### layer\_pair\_depths - + + The circuit depths (measured in number of pairs) to use in learning experiments. Pairs are used as the unit because we exploit the order-2 nature of our entangling gates in the noise learning implementation. A value of `3` would correspond to 6 layers of the layer of interest, for example. + + Default: (0, 1, 2, 4, 16, 32). + ### max\_layers\_to\_learn - + + The max number of unique layers to learn. A `None` value indicates that there is no limit. If there are more unique layers present, then some layers will not be learned or mitigated. The learned layers are prioritized based on the number of times they occur in a set of run Estimator PUBs, and for equally occurring layers are further sorted by the number of two-qubit gates in the layer. + + Default: 4. + ### num\_randomizations - + + The number of random circuits to use per learning circuit configuration. A configuration is a measurement basis and depth setting. For example, if your experiment has six depths, and nine required measurement bases, then setting this value to 32 will result in a total of `32 * 9 * 6` circuits that need to be executed (at [`shots_per_randomization`](#qiskit_ibm_runtime.options.LayerNoiseLearningOptions.shots_per_randomization "qiskit_ibm_runtime.options.LayerNoiseLearningOptions.shots_per_randomization") each). + + Default: 32. + ### shots\_per\_randomization - + + The total number of shots to use per random learning circuit. A learning circuit is a random circuit at a specific learning depth with a specific measurement basis that is executed on hardware. + + Default: 128. + ## Methods diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.MeasureNoiseLearningOptions.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.MeasureNoiseLearningOptions.mdx index ff44a664e9a..956f9d0c9ce 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.MeasureNoiseLearningOptions.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.MeasureNoiseLearningOptions.mdx @@ -8,27 +8,30 @@ python_api_name: qiskit_ibm_runtime.options.MeasureNoiseLearningOptions # MeasureNoiseLearningOptions - + Options for measurement noise learning. This is only used by V2 Estimator. These options are only used when the resilience level or options specify a technique that requires measurement noise learning. - **Parameters** - - * **num\_randomizations** – The number of random circuits to draw for the measurement learning experiment. Default: 32. - * **shots\_per\_randomization** – The number of shots to use for the learning experiment per random circuit. If “auto”, the value will be chosen automatically based on the input PUBs. Default: “auto”. - ## Attributes ### num\_randomizations - + + The number of random circuits to draw for the measurement learning experiment. + + Default: 32. + ### shots\_per\_randomization - + + The number of shots to use for the learning experiment per random circuit. If “auto”, the value will be chosen automatically based on the input PUBs. + + Default: “auto”. + ## Methods diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.NoiseLearnerOptions.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.NoiseLearnerOptions.mdx index 056bc2c483a..6c35f2eabea 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.NoiseLearnerOptions.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.NoiseLearnerOptions.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.options.NoiseLearnerOptions # NoiseLearnerOptions - + Options for [`NoiseLearner`](qiskit_ibm_runtime.noise_learner.NoiseLearner "qiskit_ibm_runtime.noise_learner.NoiseLearner"). ## Attributes @@ -95,7 +95,7 @@ python_api_name: qiskit_ibm_runtime.options.NoiseLearnerOptions ### update - + Update the options. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.PecOptions.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.PecOptions.mdx index 0e88d2db69c..638891240ed 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.PecOptions.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.PecOptions.mdx @@ -8,33 +8,33 @@ python_api_name: qiskit_ibm_runtime.options.PecOptions # PecOptions - + Probabalistic error cancellation mitigation options. This is only used by V2 Estimator. - **Parameters** - - * **max\_overhead** – The maximum circuit sampling overhead allowed, or `None` for no maximum. Default: 100. - - * **noise\_gain** – + ## Attributes - The amount by which to scale the noise, where: + ### max\_overhead - * A value of 0 corresponds to removing the full learned noise. - * A value of 1 corresponds to no removal of the learned noise. - * A value between 0 and 1 corresponds to partially removing the learned noise. - * A value greater than one corresponds to amplifying the learned noise. + + The maximum circuit sampling overhead allowed, or `None` for no maximum. - If “auto”, the value in the range `[0, 1]` will be chosen automatically for each input PUB based on the learned noise strength, `max_overhead`, and the depth of the PUB. Default: “auto”. + Default: 100. + - ## Attributes + ### noise\_gain - ### max\_overhead + + The amount by which to scale the noise, where: - + * A value of 0 corresponds to removing the full learned noise. + * A value of 1 corresponds to no removal of the learned noise. + * A value between 0 and 1 corresponds to partially removing the learned noise. + * A value greater than one corresponds to amplifying the learned noise. - ### noise\_gain + If “auto”, the value in the range `[0, 1]` will be chosen automatically for each input PUB based on the learned noise strength, `max_overhead`, and the depth of the PUB. - + Default: “auto”. + ## Methods diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ResilienceOptionsV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ResilienceOptionsV2.mdx index b316c9c0baa..f8f7c85a424 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ResilienceOptionsV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ResilienceOptionsV2.mdx @@ -8,53 +8,64 @@ python_api_name: qiskit_ibm_runtime.options.ResilienceOptionsV2 # ResilienceOptionsV2 - + Resilience options for V2 Estimator. - **Parameters** - - * **measure\_mitigation** – Whether to enable measurement error mitigation method. If you enable measurement mitigation, you can fine tune its noise learning by using [`measure_noise_learning`](#qiskit_ibm_runtime.options.ResilienceOptionsV2.measure_noise_learning "qiskit_ibm_runtime.options.ResilienceOptionsV2.measure_noise_learning"). See [`MeasureNoiseLearningOptions`](qiskit_ibm_runtime.options.MeasureNoiseLearningOptions "qiskit_ibm_runtime.options.MeasureNoiseLearningOptions") for all measurement mitigation noise learning options. Default: True. - * **measure\_noise\_learning** – Additional measurement noise learning options. See [`MeasureNoiseLearningOptions`](qiskit_ibm_runtime.options.MeasureNoiseLearningOptions "qiskit_ibm_runtime.options.MeasureNoiseLearningOptions") for all options. - * **zne\_mitigation** – Whether to turn on Zero Noise Extrapolation error mitigation method. If you enable ZNE, you can fine tune its options by using [`zne`](#qiskit_ibm_runtime.options.ResilienceOptionsV2.zne "qiskit_ibm_runtime.options.ResilienceOptionsV2.zne"). See [`ZneOptions`](qiskit_ibm_runtime.options.ZneOptions "qiskit_ibm_runtime.options.ZneOptions") for additional ZNE related options. Default: False. - * **zne** – Additional zero noise extrapolation mitigation options. See [`ZneOptions`](qiskit_ibm_runtime.options.ZneOptions "qiskit_ibm_runtime.options.ZneOptions") for all options. - * **pec\_mitigation** – Whether to turn on Probabilistic Error Cancellation error mitigation method. If you enable PEC, you can fine tune its options by using [`pec`](#qiskit_ibm_runtime.options.ResilienceOptionsV2.pec "qiskit_ibm_runtime.options.ResilienceOptionsV2.pec"). See [`PecOptions`](qiskit_ibm_runtime.options.PecOptions "qiskit_ibm_runtime.options.PecOptions") for additional PEC related options. Default: False. - * **pec** – Additional probabalistic error cancellation mitigation options. See [`PecOptions`](qiskit_ibm_runtime.options.PecOptions "qiskit_ibm_runtime.options.PecOptions") for all options. - * **layer\_noise\_learning** – Layer noise learning options. See [`LayerNoiseLearningOptions`](qiskit_ibm_runtime.options.LayerNoiseLearningOptions "qiskit_ibm_runtime.options.LayerNoiseLearningOptions") for all options. - * **layer\_noise\_model** – A `NoiseLearnerResult` or a sequence of `LayerError` objects. If set, all the mitigation strategies that require noise data (e.g., PEC and PEA) skip the noise learning stage, and instead gather the required information from `layer_noise_model`. Layers whose information is missing in `layer_noise_model` are treated as noiseless and their noise is not mitigated. - ## Attributes ### layer\_noise\_learning - + + Layer noise learning options. See [`LayerNoiseLearningOptions`](qiskit_ibm_runtime.options.LayerNoiseLearningOptions "qiskit_ibm_runtime.options.LayerNoiseLearningOptions") for all options. + ### layer\_noise\_model - + + A `NoiseLearnerResult` or a sequence of `LayerError` objects. If set, all the mitigation strategies that require noise data (e.g., PEC and PEA) skip the noise-learning stage, and instead gather the required information from `layer_noise_model`. Layers whose information is missing in `layer_noise_model` are treated as noiseless and their noise is not mitigated. + ### measure\_mitigation - + + Whether to enable measurement error mitigation method. If you enable measurement mitigation, you can fine-tune its noise learning by using [`measure_noise_learning`](#qiskit_ibm_runtime.options.ResilienceOptionsV2.measure_noise_learning "qiskit_ibm_runtime.options.ResilienceOptionsV2.measure_noise_learning"). See [`MeasureNoiseLearningOptions`](qiskit_ibm_runtime.options.MeasureNoiseLearningOptions "qiskit_ibm_runtime.options.MeasureNoiseLearningOptions") for all measurement mitigation noise learning options. + + Default: True. + ### measure\_noise\_learning - + + Additional measurement noise learning options. See [`MeasureNoiseLearningOptions`](qiskit_ibm_runtime.options.MeasureNoiseLearningOptions "qiskit_ibm_runtime.options.MeasureNoiseLearningOptions") for all options. + ### pec - + + Additional probabalistic error cancellation mitigation options. See [`PecOptions`](qiskit_ibm_runtime.options.PecOptions "qiskit_ibm_runtime.options.PecOptions") for all options. + ### pec\_mitigation - + + Whether to turn on Probabilistic Error Cancellation error mitigation method. If you enable PEC, you can fine-tune its options by using [`pec`](#qiskit_ibm_runtime.options.ResilienceOptionsV2.pec "qiskit_ibm_runtime.options.ResilienceOptionsV2.pec"). See [`PecOptions`](qiskit_ibm_runtime.options.PecOptions "qiskit_ibm_runtime.options.PecOptions") for additional PEC-related options. + + Default: False. + ### zne - + + Additional zero-noise extrapolation mitigation options. See [`ZneOptions`](qiskit_ibm_runtime.options.ZneOptions "qiskit_ibm_runtime.options.ZneOptions") for all options. + ### zne\_mitigation - + + Whether to turn on Zero-Noise Extrapolation error mitigation method. If you enable ZNE, you can fine-tune its options by using [`zne`](#qiskit_ibm_runtime.options.ResilienceOptionsV2.zne "qiskit_ibm_runtime.options.ResilienceOptionsV2.zne"). See [`ZneOptions`](qiskit_ibm_runtime.options.ZneOptions "qiskit_ibm_runtime.options.ZneOptions") for additional ZNE related options. + + Default: False. + ## Methods diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.SamplerExecutionOptionsV2.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.SamplerExecutionOptionsV2.mdx index fe47d7a48c6..38f13d7f87b 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.SamplerExecutionOptionsV2.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.SamplerExecutionOptionsV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.options.SamplerExecutionOptionsV2 # SamplerExecutionOptionsV2 - + Extension of [`ExecutionOptionsV2`](qiskit_ibm_runtime.options.ExecutionOptionsV2 "qiskit_ibm_runtime.options.ExecutionOptionsV2") for the sampler primitive. ## Attributes diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.SamplerOptions.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.SamplerOptions.mdx index 4db4f8bf15c..7b156e29866 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.SamplerOptions.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.SamplerOptions.mdx @@ -8,26 +8,24 @@ python_api_name: qiskit_ibm_runtime.options.SamplerOptions # SamplerOptions - + Options for V2 Sampler. - **Parameters** - - * **default\_shots** – The default number of shots to use if none are specified in the PUBs or in the run method. Default: 4096. - * **dynamical\_decoupling** – Suboptions for dynamical decoupling. See [`DynamicalDecouplingOptions`](qiskit_ibm_runtime.options.DynamicalDecouplingOptions "qiskit_ibm_runtime.options.DynamicalDecouplingOptions") for all available options. - * **execution** – Execution time options. See [`SamplerExecutionOptionsV2`](qiskit_ibm_runtime.options.SamplerExecutionOptionsV2 "qiskit_ibm_runtime.options.SamplerExecutionOptionsV2") for all available options. - * **twirling** – Pauli twirling options. See [`TwirlingOptions`](qiskit_ibm_runtime.options.TwirlingOptions "qiskit_ibm_runtime.options.TwirlingOptions") for all available options. - * **experimental** – Experimental options. - ## Attributes ### default\_shots - + + The default number of shots to use if none are specified in the PUBs or in the run method. + + Default: 4096. + ### dynamical\_decoupling - + + Suboptions for dynamical decoupling. See [`DynamicalDecouplingOptions`](qiskit_ibm_runtime.options.DynamicalDecouplingOptions "qiskit_ibm_runtime.options.DynamicalDecouplingOptions") for all available options. + ### environment @@ -35,11 +33,15 @@ python_api_name: qiskit_ibm_runtime.options.SamplerOptions ### execution - + + Execution time options. See [`SamplerExecutionOptionsV2`](qiskit_ibm_runtime.options.SamplerExecutionOptionsV2 "qiskit_ibm_runtime.options.SamplerExecutionOptionsV2") for all available options. + ### experimental - + + Experimental options. + ### max\_execution\_time @@ -51,13 +53,15 @@ python_api_name: qiskit_ibm_runtime.options.SamplerOptions ### twirling - + + Pauli twirling options. See [`TwirlingOptions`](qiskit_ibm_runtime.options.TwirlingOptions "qiskit_ibm_runtime.options.TwirlingOptions") for all available options. + ## Methods ### update - + Update the options. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.SimulatorOptions.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.SimulatorOptions.mdx index 3d410b9df4a..e6d6a917368 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.SimulatorOptions.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.SimulatorOptions.mdx @@ -8,41 +8,50 @@ python_api_name: qiskit_ibm_runtime.options.SimulatorOptions # SimulatorOptions - + Simulator options. For best practice in simulating a backend make sure to pass the basis gates and coupling map of that backend. - **Parameters** - - * **noise\_model** – Noise model for the simulator. Default: `None`. - * **seed\_simulator** – Random seed to control sampling. Default: `None`. - * **coupling\_map** – Directed coupling map to target in mapping. If the coupling map is symmetric, both directions need to be specified. Each entry in the list specifies a directed two-qubit interactions, e.g: `[[0, 1], [0, 3], [1, 2], [1, 5], [2, 5], [4, 1], [5, 3]]`. Default: `None`, which implies no connectivity constraints. - * **basis\_gates** – List of basis gate names to unroll to. For example, `['u1', 'u2', 'u3', 'cx']`. Unrolling is not done if not set. Default: all basis gates supported by the simulator. - ## Attributes ### basis\_gates - + + List of basis gate names to unroll to. For example, `['u1', 'u2', 'u3', 'cx']`. Unrolling is not done if not set. + + Default: all basis gates supported by the simulator. + ### coupling\_map - + + Directed coupling map to target in mapping. If the coupling map is symmetric, both directions need to be specified. Each entry in the list specifies a directed two-qubit interaction, e.g: `[[0, 1], [0, 3], [1, 2], [1, 5], [2, 5], [4, 1], [5, 3]]`. + + Default: `None`, which implies no connectivity constraints. + ### noise\_model - + + Noise model for the simulator. + + Default: `None`. + ### seed\_simulator - + + Random seed to control sampling. + + Default: `None`. + ## Methods ### set\_backend - + Set backend for simulation. This method changes noise\_model, coupling\_map, basis\_gates according to given backend. **Parameters** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.TwirlingOptions.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.TwirlingOptions.mdx index e5b64099a1e..42be9a5ebeb 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.TwirlingOptions.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.TwirlingOptions.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.options.TwirlingOptions # TwirlingOptions - + Twirling options. ## Attributes diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ZneOptions.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ZneOptions.mdx index b987d977579..70b47e566d2 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ZneOptions.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ZneOptions.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.options.ZneOptions # ZneOptions - + Zero noise extrapolation mitigation options. This is only used by the V2 Estimator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford.mdx index 2f5979b3ff8..c88e83e4424 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford # ConvertISAToClifford - + Convert the gates of an ISA circuit to Clifford gates. ISA circuits only contain Clifford gates from a restricted set or [`qiskit.circuit.library.RZGate`](/api/qiskit/qiskit.circuit.library.RZGate "(in Qiskit v1.2)")s by arbitrary angles. To convert them to Clifford circuits, this pass rounds the angle of every [`qiskit.circuit.library.RZGate`](/api/qiskit/qiskit.circuit.library.RZGate "(in Qiskit v1.2)") to the closest multiple of pi/2 (or to a random multiple of pi/2 if the angle is unspecified), while it skips every Clifford gate, measurement, and barrier. @@ -111,7 +111,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford ### run - + Run a pass on the DAGCircuit. This is implemented by the pass developer. **Parameters** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.ConvertIdToDelay.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.ConvertIdToDelay.mdx index e2d6dca43b7..0ebb38050d3 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.ConvertIdToDelay.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.ConvertIdToDelay.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.ConvertIdToDelay # ConvertIdToDelay - + Convert `qiskit.circuit.library.standard_gates.IGate` to a delay of the corresponding length. Convert [`qiskit.circuit.library.IGate`](/api/qiskit/qiskit.circuit.library.IGate "(in Qiskit v1.2)") to a Convert [`qiskit.circuit.Delay`](/api/qiskit/circuit#qiskit.circuit.Delay "(in Qiskit v1.2)"). @@ -89,7 +89,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.ConvertIdToDelay ### run - + Run a pass on the DAGCircuit. This is implemented by the pass developer. **Parameters** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis.mdx index c456bfe3cdb..ec57aa6fff4 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAna # ALAPScheduleAnalysis - + Dynamic circuits as-late-as-possible (ALAP) scheduling analysis pass. This is a scheduler designed to work for the unique scheduling constraints of the dynamic circuits backends due to the limitations imposed by hardware. This is expected to evolve over time as the dynamic circuit backends also change. @@ -103,7 +103,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAna ### run - + Run the ASAPSchedule pass on dag. :type dag: [`DAGCircuit`](/api/qiskit/qiskit.dagcircuit.DAGCircuit "(in Qiskit v1.2)") :param dag: DAG to schedule. :type dag: DAGCircuit **Raises** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis.mdx index 93452f065e3..37f8703ae96 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAna # ASAPScheduleAnalysis - + Dynamic circuits as-soon-as-possible (ASAP) scheduling analysis pass. This is a scheduler designed to work for the unique scheduling constraints of the dynamic circuits backends due to the limitations imposed by hardware. This is expected to evolve over time as the dynamic circuit backends also change. @@ -103,7 +103,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAna ### run - + Run the ALAPSchedule pass on dag. :type dag: [`DAGCircuit`](/api/qiskit/qiskit.dagcircuit.DAGCircuit "(in Qiskit v1.2)") :param dag: DAG to schedule. :type dag: DAGCircuit **Raises** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder.mdx index 35a8c7901ab..c1e8b78ccee 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder # BlockBasePadder - + The base class of padding pass. This pass requires one of scheduling passes to be executed before itself. Since there are multiple scheduling strategies, the selection of scheduling pass is left in the hands of the pass manager designer. Once a scheduling analysis pass is run, `node_start_time` is generated in the `property_set`. This information is represented by a python dictionary of the expected instruction execution times keyed on the node instances. The padding pass expects all `DAGOpNode` in the circuit to be scheduled. @@ -93,7 +93,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder ### run - + Run the padding pass on `dag`. **Parameters** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.mdx index 78ef2e49e1f..bd160bb9dd4 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitI # DynamicCircuitInstructionDurations - + For dynamic circuits the IBM Qiskit backend currently reports instruction durations that differ compared with those required for the legacy Qobj-based path. For now we use this class to report updated InstructionDurations. TODO: This would be mitigated by a specialized Backend/Target for dynamic circuit backends. Dynamic circuit instruction durations. @@ -27,7 +27,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitI ### from\_backend - + Construct a `DynamicInstructionDurations` object from the backend. :type backend: [`Backend`](/api/qiskit/qiskit.providers.Backend "(in Qiskit v1.2)") :param backend: backend from which durations (gate lengths) and dt are extracted. **Returns** @@ -41,7 +41,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitI ### from\_target - + Construct a `DynamicInstructionDurations` object from the target. :type target: [`Target`](/api/qiskit/qiskit.transpiler.Target "(in Qiskit v1.2)") :param target: target from which durations (gate lengths) and dt are extracted. **Returns** @@ -96,7 +96,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitI ### update - + Update self with inst\_durations (inst\_durations overwrite self). Overrides the default durations for certain hardcoded instructions. **Parameters** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay.mdx index 79bd892a63d..261c35f5685 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay # PadDelay - + Padding idle time with Delay instructions. Consecutive delays will be merged in the output of this pass. @@ -107,7 +107,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay ### run - + Run the padding pass on `dag`. **Parameters** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling.mdx index d5afda79f5b..1735443239d 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDec # PadDynamicalDecoupling - + Dynamical decoupling insertion pass for IBM dynamic circuit backends. This pass works on a scheduled, physical circuit. It scans the circuit for idle periods of time (i.e. those containing delay instructions) and inserts a DD sequence of gates in those spots. These gates amount to the identity, so do not alter the logical action of the circuit, but have the effect of mitigating decoherence in those idle periods. As a special case, the pass allows a length-1 sequence (e.g. \[XGate()]). In this case the DD insertion happens only when the gate inverse can be absorbed into a neighboring gate in the circuit (so we would still be replacing Delay with something that is equivalent to the identity). This can be used, for instance, as a Hahn echo. This pass ensures that the inserted sequence preserves the circuit exactly (including global phase). @@ -244,7 +244,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDec ### run - + Run the padding pass on `dag`. **Parameters** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.utils.noise_learner_result.LayerError.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.utils.noise_learner_result.LayerError.mdx index c02dd321df7..58f7eb6f2c3 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.utils.noise_learner_result.LayerError.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.utils.noise_learner_result.LayerError.mdx @@ -8,14 +8,14 @@ python_api_name: qiskit_ibm_runtime.utils.noise_learner_result.LayerError # LayerError - + The error channel (in Pauli-Lindblad format) of a single layer of instructions. **Parameters** * **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – A circuit whose noise has been learnt. * **qubits** (`Sequence`\[`int`]) – The labels of the qubits in the `circuit`. - * **error** ([`PauliLindbladError`](qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError "qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError")) – The Pauli Lindblad error channel affecting the `circuit`. + * **error** (`Optional`\[[`PauliLindbladError`](qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError "qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError")]) – The Pauli Lindblad error channel affecting the `circuit`, or `None` if the error channel is either unknown or explicitly disabled. **Raises** @@ -36,11 +36,11 @@ python_api_name: qiskit_ibm_runtime.utils.noise_learner_result.LayerError ### error - The error channel in this `LayerError`. + The error channel in this `LayerError`, or `None` if the error channel is either unknown or explicitly disabled. **Return type** - [`PauliLindbladError`](qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError "qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError") + `Optional`\[[`PauliLindbladError`](qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError "qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError")] ### generators @@ -87,7 +87,7 @@ python_api_name: qiskit_ibm_runtime.utils.noise_learner_result.LayerError ### draw\_map - + Draw a map view of a this layer error. **Parameters** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError.mdx index f43e9225714..9017c52773b 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladErro # PauliLindbladError - + A Pauli error channel generated by a Pauli Lindblad dissipators. This operator represents an N-qubit quantum error channel $E(\rho) = e^{\sum_j r_j D_{P_j}}(\rho)$ generated by Pauli Lindblad dissipators $D_P(\rho) = P \rho P - \rho$, where $P_j$ are N-qubit `Pauli` operators. @@ -73,7 +73,7 @@ $$ ### restrict\_num\_bodies - + The [`PauliLindbladError`](#qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError "qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError") containing only those terms acting on exactly `num_qubits` qubits. **Parameters** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.visualization.draw_layer_error_map.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.visualization.draw_layer_error_map.mdx index 14d42dbd9ad..d3c01120660 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.visualization.draw_layer_error_map.mdx +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.visualization.draw_layer_error_map.mdx @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.visualization.draw_layer_error_map # draw\_layer\_error\_map - + Draw a map view of a [`LayerError`](qiskit_ibm_runtime.utils.noise_learner_result.LayerError "qiskit_ibm_runtime.utils.noise_learner_result.LayerError"). **Parameters** diff --git a/docs/api/qiskit-ibm-runtime/release-notes.mdx b/docs/api/qiskit-ibm-runtime/release-notes.mdx index cb2148675e9..668c2f793d3 100644 --- a/docs/api/qiskit-ibm-runtime/release-notes.mdx +++ b/docs/api/qiskit-ibm-runtime/release-notes.mdx @@ -10,6 +10,23 @@ in_page_toc_max_heading_level: 2 +## 0.31.0 (2024-10-15) + +### New Features + +* Added Noisy Estimator Analyzer Tool (NEAT), a class to help understand the expected performance of Estimator jobs. ([1950](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1950)) +* Updated the ISA check to validate that the `rzz` angle is between `[0, pi/2]`. ([1953](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1953)) + +### Bug Fixes + +* Fixed an issue with ISA validation where a change related to connectivity inside control operations was not applied correctly. ([1954](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1954)) + +### Other Notes + +* Fake V1 backends have been removed. ([1946](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1946)) + + + ## 0.30.0 (2024-09-23) ### Deprecation Notes @@ -23,6 +40,8 @@ in_page_toc_max_heading_level: 2 * In a future release, `RuntimeJob.status()` will be returned as a string instead of an instance of `JobStatus`. ([1933](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1933)) + + ### New Features * Added new methods `Session.usage()`, `Batch.usage()`, and `Job.usage()` that all return information regarding job and session usage. Please find more information [here](/guides/execution-modes#sessions-versus-batch-usage). ([1827](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1827)) @@ -44,10 +63,14 @@ in_page_toc_max_heading_level: 2 * The `use_fractional_gates` flag for `QiskitRuntimeService.backend()` and `QiskitRuntimeService.backends()` can now be `None`. When set to `None`, no instruction filtering is done, and the returned backend target may contain both fractional gates and control flow operations. ([1938](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1938)) + + ### Bug Fixes * Fixed a bug where primitives could not be run in the session context with fractional gates. ([1922](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1922)) + + ### Other Notes * Deprecations from the `0.24.0` release have been removed. The following changes have beend made. @@ -60,27 +83,27 @@ in_page_toc_max_heading_level: 2 * In `Service.backend()`, “name” is now a required parameter * `Service.get_backend()` has been removed and replaced with `backend()` ([1907](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1907)) - + ## 0.29.1 (2024-09-17) - + ### New Features * Added logic to encode and decode `NoiseLearnerResult`. ([1908](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1908)) - + ## 0.29.0 (2024-09-04) - + ### Deprecation Notes * The simulator option `noise_model` is now deprecated for jobs running on real devices. `noise_model` will still be an acceptable option when using the local testing mode. ([1892](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1892)) - + ### New Features @@ -88,7 +111,7 @@ in_page_toc_max_heading_level: 2 * Added a new `private` option under `EnvironmentOptions`. ([1888](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1888)) * Added `fallback` option to ZNE extrapolators. ([1902](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1902)) - + ### Bug Fixes @@ -96,54 +119,54 @@ in_page_toc_max_heading_level: 2 * Revert a previous change to `backend.target` where the target was no longer being cached. ([1891](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1891)) * Fixed an issue where `Session.from_id()` would create a new empty session. ([1896](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1896)) - + ## 0.28.0 (2024-08-15) - + ### New Features * `ResilienceOptionsV2` has a new field `layer_noise_model`. When this field is set, all the mitigation strategies that require noise data skip the noise learning stage, and instead gather the required information from `layer_noise_model`. ([1858](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1858)) - + ### Other Notes * The V1 Primitives `SamplerV1` and `EstimatorV1` have been completely removed. Please see the [migration guide](/migration-guides/v2-primitives) and use the V2 Primitives instead. ([1857](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1857)) * The `service` parameter is now required in `Session.from_id()`. ([1868](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1868)) - + ## 0.27.1 (2024-08-12) - + ### New Features * Added logic to encode and decode `PauliLindbladError` and `LayerError`. ([1853](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1853)) - + ## 0.27.0 (2024-08-08) - + ### New Features * Added `PauliLindbladError` and `LayerError` classes to represent layers noise processes. ([1844](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1844)) - + ### Bug Fixes * Fixed an issue with using the aer simulator and local service mode with sessions. ([1838](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1838)) - + ## 0.26.0 (2024-07-31) - + ### Deprecation Notes @@ -152,7 +175,7 @@ in_page_toc_max_heading_level: 2 * Passing in `service` in `Session`, `Batch` has been deprecated. The `service` parameter is no longer necessary because the service can be extracted from the backend. ([1826](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1826)) * Since backend modules from `qiskit.providers.models` including `BackendProperties` and `BackendConfiguration` are deprecated in Qiskit 1.2, they have been copied into `qiskit-ibm-runtime`. Make sure to upgrade to the latest version, `0.26.0`, to use these classes. ([1803](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1803)) - + ### New Features @@ -174,7 +197,7 @@ in_page_toc_max_heading_level: 2 * Added `NoiseLearner` and related functionality, such as `NoiseLearnerOptions` and `NoiseLearnerResults`. ([1805](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1805)) - + ### Bug Fixes @@ -183,18 +206,18 @@ in_page_toc_max_heading_level: 2 * The options validation for checking if `zne_mitigation` or `pec_mitigation` are set to `True` when using other related options has been removed. ([1792](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1792)) * Fixed an issue where users were unable to retrieve job results if the python library `simplejson` was installed in their environment. ([1800](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1800)) - + ## 0.25.0 (2024-07-02) - + ### Deprecation Notes * The `optimization_level` option in `EstimatorV2` is deprecated. Instead, you can perform circuit optimization using the Qiskit transpiler or Qiskit transpiler service. ([1748](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1748)) * [`qiskit_ibm_runtime.RuntimeJobV2.interim_results()`](qiskit_ibm_runtime.RuntimeJobV2#interim_results "qiskit_ibm_runtime.RuntimeJobV2.interim_results"), [`qiskit_ibm_runtime.RuntimeJobV2.stream_results()`](qiskit_ibm_runtime.RuntimeJobV2#stream_results "qiskit_ibm_runtime.RuntimeJobV2.stream_results"), [`qiskit_ibm_runtime.RuntimeJob.interim_results()`](qiskit_ibm_runtime.RuntimeJob#interim_results "qiskit_ibm_runtime.RuntimeJob.interim_results"), and [`qiskit_ibm_runtime.RuntimeJob.stream_results()`](qiskit_ibm_runtime.RuntimeJob#stream_results "qiskit_ibm_runtime.RuntimeJob.stream_results") are now all deprecated. ([1776](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1776)) - + ### New Features @@ -202,21 +225,21 @@ in_page_toc_max_heading_level: 2 * Added an `instance` property to `BaseRuntimeJob` which returns the instance where the job was run. ([1771](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1771)) * `default_shots` are now a supported option when using `EstimatorV2` in local testing mode. ([1773](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1773)) - + ## 0.24.1 (2024-06-18) - + ### Bug Fixes * Disallowing fractional gates by default, so backend target would not exclude control flow. ([1755](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1755)) - + ## 0.24.0 (2024-06-10) - + ### Deprecation Notes @@ -230,11 +253,11 @@ in_page_toc_max_heading_level: 2 * The `backend` argument in [Sampler](/guides/get-started-with-primitives#3-initialize-the-qiskit-runtime-sampler) and [Estimator](/guides/get-started-with-primitives#3-initialize-qiskit-runtime-estimator) has been deprecated. Please use `mode` instead. The `session` argument in [Sampler](/guides/get-started-with-primitives#3-initialize-the-qiskit-runtime-sampler) and [Estimator](/guides/get-started-with-primitives#3-initialize-qiskit-runtime-estimator) has also been deprecated. Please use `mode` instead. ([1556](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1556)) -* `qiskit_ibm_runtime.QiskitRuntimeService.get_backend()` is deprecated. Please [`qiskit_ibm_runtime.QiskitRuntimeService.backend()`](qiskit_ibm_runtime.QiskitRuntimeService#backend "qiskit_ibm_runtime.QiskitRuntimeService.backend") use instead. The V1 fake backends, `FakeBackend`, along with [`FakeProvider`](qiskit_ibm_runtime.fake_provider.FakeProvider "qiskit_ibm_runtime.fake_provider.FakeProvider") are also being deprecated in favor of the V2 fake backends and [`FakeProviderForBackendV2`](qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2 "qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2"). ([1689](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1689)) +* `qiskit_ibm_runtime.QiskitRuntimeService.get_backend()` is deprecated. Please [`qiskit_ibm_runtime.QiskitRuntimeService.backend()`](qiskit_ibm_runtime.QiskitRuntimeService#backend "qiskit_ibm_runtime.QiskitRuntimeService.backend") use instead. The V1 fake backends, `FakeBackend`, along with `FakeProvider` are also being deprecated in favor of the V2 fake backends and [`FakeProviderForBackendV2`](qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2 "qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2"). ([1689](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1689)) * Specifying options without the full dictionary structure is deprecated. Instead, pass in a fully structured dictionary. For example, use `{'environment': {'log_level': 'INFO'}}` instead of `{'log_level': 'INFO'}`. ([1731](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1731)) - + ### New Features @@ -273,7 +296,7 @@ in_page_toc_max_heading_level: 2 * [`QiskitRuntimeService.backends()`](qiskit_ibm_runtime.QiskitRuntimeService#backends "qiskit_ibm_runtime.QiskitRuntimeService.backends") now always returns a new `IBMBackend` instance even when the same query is used. The backend properties and defaults data are retrieved from the server for every instance when they are accessed for the first time, while the configuration data is cached internally in the service instance. ([1732](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1732)) - + ### Bug Fixes @@ -285,18 +308,18 @@ in_page_toc_max_heading_level: 2 * Fixed nested experimental suboptions override non-experimental suboptions. ([1731](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1731)) * The backend utils method `convert_to_target` has been replaced with the [convert\_to\_target](/api/qiskit/qiskit.providers.convert_to_target) method from Qiskit. This fixes some issues related to target generation and calibration data. ([1600](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1600)) - + ## 0.23.0 (2024-04-15) - + ### Deprecation Notes * [backend.run()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.IBMBackend#run) has been deprecated. Please use the primitives instead. More details can be found in the [migration guide](/migration-guides/qiskit-runtime) . ([1561](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1561)) * In a future release, the `service` parameter in [from\_id()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Session#from_id) will be required. ([1311](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1311)) - + ### New Features @@ -306,7 +329,7 @@ in_page_toc_max_heading_level: 2 * [`SamplerV2`](qiskit_ibm_runtime.SamplerV2 "qiskit_ibm_runtime.SamplerV2") now supports twirling. Twirling will only be applied to those measurement registers not involved within a conditional logic. ([1557](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1557)) * Session [details()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Session#details) now includes a new field, `usage_time`. Usage is defined as the time a quantum system is committed to complete a job. ([1567](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1567)) - + ### Bug Fixes @@ -315,59 +338,59 @@ in_page_toc_max_heading_level: 2 * Fixed a bug with encoding/decoding `ParameterExpression`. ([1521](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1521)) * Fixed an issue where the [in\_final\_state()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJobV2#in_final_state) method in [`RuntimeJobV2`](qiskit_ibm_runtime.RuntimeJobV2 "qiskit_ibm_runtime.RuntimeJobV2") would not update the status when called. ([1547](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1547)) - + ## 0.22.0 (2024-03-21) - + ### Upgrade Notes * Modify `skip_reset_qubits` optional flag to the constructor for [`PadDynamicalDecoupling`](qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling "qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling"). If `False`, dynamical decoupling is applied on qubits regardless of their state, even on delays that are at the beginning of a circuit. This option now matches the behavior in Qiskit. ([1409](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1409)) - + ### New Features * A new local testing mode is added. It allows you to validate your quantum prorams before sending them to a physical system. The local testing mode is activated if one of the fake backends in `qiskit_ibm_runtime.fake_provider` or a Qiskit Aer backend instance is used when instantiating a primitive or a session. ([1495](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1495)) - + ### Bug Fixes * Fix a bug that caused setting of `resilience_level=0` in `EstimatorV2` to be ignored (and the default value used instead). ([1541](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1541)) - + ## 0.21.2 (2024-03-18) - + ### Bug Fixes * Fixed a bug where `RuntimeDecoder` could import arbitrary classes. ([1527](https://github.com/Qiskit/qiskit-ibm-runtime/pull/1527)) - + ## 0.21.1 - + ### Bug Fixes * Fixed a bug where `SamplerV1` and `EstimatorV1` could not be imported because of an issue with how the aliases were defined. - + ## 0.21.0 - + ### Upgrade Notes * Circuits that do not match the target hardware definition are no longer supported by Qiskit Runtime primitives, unless `channel_strategy="q-ctrl"` is used. See the transpilation documentation ([transpile](/guides/transpile)) for instructions to transform circuits and the primitive examples ([run/primitives-examples](/guides/primitives-examples)) to see this coupled with operator transformations. - + ### Deprecation Notes @@ -375,7 +398,7 @@ in_page_toc_max_heading_level: 2 It will also be a required parameter for `qiskit_ibm_runtime.Session` and `qiskit_ibm_runtime.Batch`. - + ### Bug Fixes @@ -383,11 +406,11 @@ in_page_toc_max_heading_level: 2 * Fixed a bug where retrieving a fake backend through `FakeProviderForBackendV2.backend()` would result in a type error. * Fixes the check for ISA circuits to allow pulse gates and circuits that don’t have layout. - + ## 0.20.0 - + ### New Features @@ -405,57 +428,57 @@ in_page_toc_max_heading_level: 2 The sessions functionality will not change but note that `backend.run()` sessions prior to this release will no longer be supported after March 31, 2024. Please update your `qiskit-ibm-runtime` version as soon as possible before this date. - + ### Deprecation Notes * Circuits that do not match the target hardware definition will no longer be supported after March 1, 2024. See the transpilation documentation ([transpile](/guides/transpile)) for instructions to transform circuits and the primitive examples ([run/primitives-examples](/guides/primitives-examples)) to see this coupled with operator transformations. - + ### Bug Fixes * Fix assignment of instruction durations when scheduling circuits with control flow. Prior to this fix, the indices for instructions on inner blocks were not mapped to the physical indices in the outer dag. - + ### Other Notes * The `InstructionDurations` durations input is now also required for the constructor of `PadDelay`. - + ## 0.19.1 - + ### Upgrade Notes * Extend `DynamicCircuitInstructions.from_backend()` to extract and patch durations from both `BackendV1` and `BackendV2` objects. Also add `DynamicCircuitInstructions.from_target()` to use a `Target` object instead. - + ### Bug Fixes * Fix the patching of `DynamicCircuitInstructions` for instructions with durations that are not in units of `dt`. * Fixed an issue with the `qpy.dump()` function, when the `use_symengine` flag was set to a truthy object that evaluated to `True` but was not actually the boolean `True` the generated QPY payload would be corrupt. - + ## 0.19.0 - + ### Upgrade Notes * qiskit-ibm-provider is pending deprecation, and therefore will no longer be a dependency for qiskit-ibm-runtime. * qiskit-ibm-runtime is now compatible with Qiskit versions >= 0.45, including 1.0.0. - + ## 0.18.0 - + ### New Features @@ -463,30 +486,30 @@ in_page_toc_max_heading_level: 2 * Added `max_time` parameter to `IBMBackend.open_session()`. * Added a method `RuntimeJob.queue_info()` to get the queue information from the backend. This feature was transferred from `qiskit_ibm_provider`. - + ### Deprecation Notes * [runtime()](/api/qiskit-ibm-runtime/0.21/qiskit_ibm_runtime.QiskitRuntimeService#runtime) has been deprecated. - + ### Bug Fixes * Many methods in [RuntimeJob](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob) require retrieving the job data from the API with `job_get()`. This API call will now exclude the `params` field by default because they are only necessary in [qiskit\_ibm\_runtime.RuntimeJob.inputs()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob#inputs). - + ## 0.17.0 - + ### New Features * Added a new method [properties()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob#properties) which returns the backend properties of the job at the time the job was run. * [details()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Session#details) has a new field, activated\_at, which is the timestamp of when the session was changed to active. - + ### Bug Fixes @@ -504,7 +527,7 @@ in_page_toc_max_heading_level: 2 * Fixed an issue where retrieving the coupling\_map of some backends would result in a NameError. - + ## 0.16.0 @@ -512,39 +535,39 @@ in_page_toc_max_heading_level: 2 Sessions are now thread-safe and allow for multiple concurrent interactive experiments. - + ### New Features * Sessions are now thread-safe. - + ### Upgrade Notes * Methods related to using custom programs are removed. - + ### Bug Fixes * If a cloud instance that is `q-ctrl` enabled is used while `q-ctrl` is not passed in as the `channel_strategy`, an error will be raised. - + ## 0.15.1 - + ### Bug Fixes * Reverting 0.15.0 changes to [from\_id()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Session#from_id) because it was a breaking change without proper deprecation. - + ## 0.15.0 - + ### New Features @@ -581,13 +604,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper * Removed storing result in `RuntimeJob._results`. Instead retrieve results every time the `results()` method is called. - + ### Deprecation Notes * Usage of the `~/.qiskit/qiskitrc.json` file for account information has been deprecated. Use `~/.qiskit/qiskit-ibm.json` instead. - + ### Bug Fixes @@ -596,34 +619,34 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper * The `backend` parameter in [from\_id()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Session#from_id) is being deprecated because sessions do not support multiple backends. Additionally, the `service` parameter is no longer optional. * The `circuit_indices` and `observable_indices` run inputs for [Estimator](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Estimator) and [Sampler](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler) have been completely removed. - + ### Other Notes * Added migration code for running `backend.run` in qiskit\_ibm\_runtime instead of in qiskit\_ibm\_provider. - + ## 0.14.0 - + ### New Features * There is a new class, `qiskit_ibm_runtime.Batch` that currently works the same way as [qiskit\_ibm\_runtime.Session](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Session) but will later be updated to better support submitting multiple jobs at once. * Arbitrary keys and values are no longer allowed in `Options`. - + ### Deprecation Notes * Custom programs are being deprecated as of qiskit-ibm-runtime 0.14.0 and will be removed on November 27, 2023. Users can instead convert their custom programs to use Qiskit Runtime primitives with Qiskit Serverless. Refer to the migration guide for instructions: [https://qiskit.github.io/qiskit-serverless/migration/migration\_from\_qiskit\_runtime\_programs.html](https://qiskit.github.io/qiskit-serverless/migration/migration_from_qiskit_runtime_programs.html) - + ## 0.13.0 - + ### New Features @@ -633,7 +656,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper * At initialization, if not passed in directly, the default `instance` selected by the provider will be logged at the “INFO” level. When running a job, if the backend selected is not in the default instance but in a different instance the user also has access to, that instance will also be logged. - + ### Upgrade Notes @@ -641,18 +664,18 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper The old close method behavior has been moved to a new method, [qiskit\_ibm\_runtime.Session.cancel()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Session#cancel), where all queued jobs within a session are cancelled and terminated. - + ### Bug Fixes * Fixed a bug where `shots` passed in as a numpy type were not being serialized correctly. * Fixed a bug in [target\_history()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.IBMBackend#target_history) where the datetime parameter was not being used to retrieve backend properties from the specified date. - + ## 0.12.2 - + ### New Features @@ -661,17 +684,17 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper * Added new method `Session.from_id` which creates a new session with a given id. * There will now be a warning if a user submits a job that is predicted to exceed their system execution time monthly quota of 10 minutes. This only applies to jobs run on real hardware in the instance `ibm-q/open/main`. If the job does end up exceeding the quota, it will be canceled. - + ### Upgrade Notes * Job error messages now include the error code. Error codes can be found in [errors](/errors). - + ## 0.12.1 - + ### New Features @@ -679,7 +702,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper * Users can now pass in a value of `default` to the `channel_strategy` parameter in [qiskit\_ibm\_runtime.QiskitRuntimeService](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.QiskitRuntimeService). Now, if an account is configured with a certain channel strategy, the user can override it by passing in `default`. * The Sampler and Estimator primitives have been enhanced to incorporate custom validation procedures when the channel\_strategy property within the :class:qiskit\_ibm\_runtime.QiskitRuntimeService is configured as “q-ctrl.” This customized validation logic effectively rectifies incorrect input options and safeguards users against inadvertently disabling Q-CTRL’s performance enhancements. - + ### Bug Fixes @@ -688,11 +711,11 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper * Job error messages will no longer be returned in all uppercase. * The max\_execution\_time option is now based on system execution time instead of wall clock time. System execution time is the amount of time that the system is dedicated to processing your job. If a job exceeds this time limit, it is forcibly cancelled. Simulator jobs continue to use wall clock time. - + ## 0.12.0 - + ### New Features @@ -711,19 +734,19 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper * There is a new parameter, `channel_strategy` that can be set in the initialization of [qiskit\_ibm\_runtime.QiskitRuntimeService](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.QiskitRuntimeService) or saved in [qiskit\_ibm\_runtime.QiskitRuntimeService.save\_account()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.QiskitRuntimeService#save_account). If `channel_strategy` is set to `q-ctrl`, all jobs within the service will use the Q-CTRL error mitigation strategy. - + ### Upgrade Notes * Circuits and other input parameters will no longer be automatically stored in runtime jobs. They can still be retrieved with [qiskit\_ibm\_runtime.RuntimeJob.inputs()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob#inputs). - + ### Deprecation Notes * The `noise_amplifier` resilience options is deprecated. After the deprecation period, only local folding amplification will be supported. Refer to [https://github.com/qiskit-community/prototype-zne](https://github.com/qiskit-community/prototype-zne) for global folding amplification. - + ### Bug Fixes @@ -731,11 +754,11 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper * Fixes a race condition in the test test\_cancel\_running\_job() in test\_job.py where job cancellation could not be performed. Refer to #1019 \<[https://github.com/Qiskit/qiskit-ibm-runtime/issues/1019](https://github.com/Qiskit/qiskit-ibm-runtime/issues/1019)>\_ for more details. * Previously we added validation when jobs were run to make sure the number of circuits was not greater than the maximum for that backend, `backend.max_circuits`. This limit isn’t actually necessary for primtives run from within a session. - + ## 0.11.3 - + ### New Features @@ -745,11 +768,11 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper * There is a new method [update\_tags()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob#update_tags) that can be used to update the `job_tags` of a job. * If `instance` is provided as parameter to [qiskit\_ibm\_runtime.QiskitRuntimeService](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.QiskitRuntimeService), then this is used as a filter in `QiskitRuntimeService.backends()`. If `instance` is not recognized as one of the provider instances, an exception will be raised. Previously, we only issued a warning. - + ## 0.11.2 - + ### New Features @@ -770,28 +793,28 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper options.simulator.seed_simulator = 42 ``` - + ### Bug Fixes * Fixed infinite recursion when attempting to deepcopy an IBMBackend. Added a method `qiskit_ibm_runtime.IBMBackend.deepcopy()`. * Fixed an issue where circuit metadata was not being serialized correctly resulting in a type error. - + ## 0.11.1 - + ### Deprecation Notes * In [qiskit\_ibm\_runtime.RuntimeJob.metrics()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob#metrics), the bss field will be replaced by usage. - + ## 0.11.0 - + ### New Features @@ -811,59 +834,59 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper options.simulator = {"coupling_map": CouplingMap.from_line(10)} ``` - + ### Upgrade Notes * A default session is no longer open for you if you pass a backend name or backend instance to [qiskit\_ibm\_runtime.Sampler](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler) or [qiskit\_ibm\_runtime.Estimator](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Estimator) constructors. The primitive will instead run without a session. In addition, you should now use the `backend` parameter to pass a backend name or instance instead of the `session` parameter (which can continue to be used to pass a session). * The first parameter of the [qiskit\_ibm\_runtime.Sampler](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler) and [qiskit\_ibm\_runtime.Estimator](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Estimator) constructors is now `backend` instead of `session`. - + ### Deprecation Notes * Passing a backend name or backend instance to the `session` parameter when initializing a [qiskit\_ibm\_runtime.Sampler](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler) or [qiskit\_ibm\_runtime.Estimator](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Estimator) has been deprecated. Please use the `backend` parameter instead. You can continue to pass a session using the `session` parameter. - + ## 0.10.0 - + ### New Features * Python 3.11 is now supported. - + ### Upgrade Notes * Added error messages in case the user defines unsupported values for ‘max\_execution\_time’. Previously, this validation was done on the server side. - + ### Bug Fixes * Added deserialization of the params of RuntimeJob.inputs. Previously, the circuits were returned in serialized format. Fixes issue [#829](https://github.com/Qiskit/qiskit-ibm-runtime/issues/829). * Allow for users to retrieve all backends even if one of the backends has a missing configuration. The backend without a configuration will not be returned. - + ## 0.9.4 - + ### New Features * Added methods to validate input options to `transpilation` and `environment` options. - + ### Upgrade Notes * When constructing a backend `qiskit.transpiler.Target`, faulty qubits and gates from the backend configuration will be filtered out. - + ### Deprecation Notes @@ -875,41 +898,41 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper Within [RuntimeOptions](/api/qiskit-ibm-runtime/0.25/qiskit_ibm_runtime.RuntimeOptions), `backend_name` is no longer supported. Please use `backend` instead. - + ### Bug Fixes * Fixed a bug where retrieving a job from a backend without `noise_model` or `seed_simulator` options would result in a key error. - + ## 0.9.3 - + ### Upgrade Notes * Added error messages in case the user defines unsupported values for ‘optimization\_level’ or for ‘resilience\_level’. Added validation checking for options given as input to `resilience`. Previously, this validation was done on the server side. By adding them on the client side, response will be much faster upon failure. The environment variable `QISKIT_RUNTIME_SKIP_OPTIONS_VALIDATION` is used to control validation. If set, validation will be skipped. * Backend configurations are no longer loaded when [QiskitRuntimeService](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.QiskitRuntimeService) is initialized. Instead, the configuration is only loaded and cached during [get\_backend()](/api/qiskit-ibm-runtime/0.29/qiskit_ibm_runtime.QiskitRuntimeService#get_backend) and [backends()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.QiskitRuntimeService#backends). - + ### Bug Fixes * When creating an Option object and passing an input option to `resilience_options`, this option was included in `resilience_options`, but the other, default options were removed. This was fixed, so now inputs are handled correctly, like other option types. - + ## 0.9.2 - + ### New Features * Added a new argument called `session_time` to the program\_run method and [qiskit\_ibm\_runtime.RuntimeOptions](/api/qiskit-ibm-runtime/0.25/qiskit_ibm_runtime.RuntimeOptions). Now values entered by the user for session `max_time` will be sent to the server side as `session_time`. This allows users to specify different values for session `max_time` and `max_execution_time`. * Added the method [target\_history()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.IBMBackend#target_history). This method is similar to [target()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.IBMBackend#target). The difference is that the new method enables the user to pass a datetime parameter, to retrieve historical data from the backend. - + ### Upgrade Notes @@ -917,7 +940,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper * If a job is returned without a backend, retrieving the backend through [qiskit\_ibm\_runtime.RuntimeJob.backend()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob#backend) will re-retrieve data from the server and attempt to update the backend. Additionally, `job_id` and `backend`, which were deprecated attributes of [qiskit\_ibm\_runtime.RuntimeJob](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob) have now been removed. * Added a user warning when the user passes an option that is not supported in Options. - + ### Bug Fixes @@ -926,11 +949,11 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper * If an instance is passed in to [qiskit\_ibm\_runtime.QiskitRuntimeService.get\_backend()](/api/qiskit-ibm-runtime/0.29/qiskit_ibm_runtime.QiskitRuntimeService#get_backend) and then the backend is used in a session, all jobs within the session will be run from the original instance passed in. * Removed additional decomposition of `BlueprintCircuit`s in the JSON encoder. This was introduced as a bugfix, but has since been fixed. Still doing the decomposition led to possible problems if the decomposed circuit was not in the correct basis set of the backend anymore. - + ## 0.9.1 - + ### Upgrade Notes @@ -948,47 +971,47 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper name = "my_account",) ``` - + ### Deprecation Notes * `backend` is no longer a supported option when using [qiskit\_ibm\_runtime.Session.run()](/api/qiskit-ibm-runtime/0.29/qiskit_ibm_runtime.Session#run). Sessions do not support multiple cross backends. Additionally, an exception will be raised if a backend passed in through options does not match the original session backend in an active session. - + ### Bug Fixes * `ECRGate` and `CZGate` mappings have been added to the `Target` constructor to fix a tranpile bug. - + ### Other Notes * Since error messages from a failing job may be long, we shortened them so that they begin from the last `Traceback` in the message. - + ## 0.9.0 - + ### Upgrade Notes * Changed the default values for `optimization_level` and for `resilience_level` in `qiskit_ibm_runtime.Options`. If their values are defined by the user, they are not modified. If not set, if the backend is a noiseless simulator then `optimization_level` is set to 1 and `resilience_level` is set to 0; Otherwise, they are be set to 3 and 1 respectively. * [session\_id()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob#session_id) and [tags()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob#tags) were added for an easy way to return the session\_id and job\_tags of a job. - + ### Bug Fixes * Fixed a bug where jobs that did not run before a session closes are not actually run as a part of that session. Jobs should run as a part of a session even if that session is closed by the exit of the context manager. * Fixes the issue wherein submitting a large job fails due to write operation timeout. - + ## 0.8.0 - + ### New Features @@ -996,29 +1019,29 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper * Advanced resilience options can now be set under `options.resilience`. See [qiskit\_ibm\_runtime.options.ResilienceOptions](/api/qiskit-ibm-runtime/0.27/qiskit_ibm_runtime.options.ResilienceOptions) for all available options. * You can now specify a pair of result decoders for the `result_decoder` parameter of [qiskit\_ibm\_runtime.QiskitRuntimeService.run()](/api/qiskit-ibm-runtime/0.29/qiskit_ibm_runtime.QiskitRuntimeService#run) method. If a pair is specified, the first one is used to decode interim results and the second the final results. - + ### Upgrade Notes * The default `resilience_level` option for has been changed from 0 to 1. In addition, the default `optimization_level` option has been changed from 1 to 3. - + ### Deprecation Notes * The transpilation options `translation_method` and `timing_constraints` have been deprecated. - + ### Bug Fixes * If a [qiskit\_ibm\_runtime.IBMBackend](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.IBMBackend) instance is passed to the [qiskit\_ibm\_runtime.Session](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Session) constructor, the service used to initialize the `IBMBackend` instance is used for the session instead of the default account service. - + ## 0.7.0 - + ### New Features @@ -1026,13 +1049,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper * The [qiskit\_ibm\_runtime.options.EnvironmentOptions](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.EnvironmentOptions) class now accepts a `callback` parameter. This parameter can be used to stream the interim and final results of the primitives. * The `qiskit_ibm_runtime.Options` class now accepts `max_execution_time` as a first level option and `job_tags` as an option under `environment`. [qiskit\_ibm\_runtime.RuntimeOptions](/api/qiskit-ibm-runtime/0.25/qiskit_ibm_runtime.RuntimeOptions) has also been updated to include these two parameters. - + ### Upgrade Notes * This version of qiskit-ibm-runtime requires qiskit-terra version 0.22 or higher. The `requirements.txt` file has been updated accordingly. - + ### Deprecation Notes @@ -1040,7 +1063,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper * Passing `instance` parameter to the [qiskit\_ibm\_runtime.QiskitRuntimeService.run()](/api/qiskit-ibm-runtime/0.29/qiskit_ibm_runtime.QiskitRuntimeService#run) has been deprecated. Instead, you can pass the `instance` parameter inside the `options` parameter. * Passing `job_tags` and `max_execution_time` as parameters to [qiskit\_ibm\_runtime.QiskitRuntimeService](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.QiskitRuntimeService) has been deprecated. Please pass them inside `options`. - + ### Bug Fixes @@ -1050,7 +1073,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper ## 0.7.0rc2 - + ### Upgrade Notes @@ -1058,7 +1081,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper * [Sampler](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler) is updated to return `SamplerResult` with `SamplerResult.quasi_dists` as a list of `QuasiDistrbution`. It used to set a list of `dict` as `SamplerResult.quasi_dists`, but it did not follow the design of `SamplerResult`. * The [RuntimeJob](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob) class is now a subclass of `qiskit.providers.Job`. - + ### Deprecation Notes @@ -1069,13 +1092,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper ## 0.7.0rc1 - + ### Prelude There are significant changes to how primitives are invoked within a session, and the options available to the primitives. Please review the rest of the release notes and the tutorials for full information. - + ### New Features @@ -1134,7 +1157,7 @@ There are significant changes to how primitives are invoked within a session, an * The [qiskit\_ibm\_runtime.QiskitRuntimeService](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.QiskitRuntimeService) `channel` can now be stored as an environment variable, `QISKIT_IBM_CHANNEL`. This way, when using Runtime Primitives, the service does not have to be instantiated manually and can instead be created directly from environment variables. - + ### Upgrade Notes @@ -1157,7 +1180,7 @@ There are significant changes to how primitives are invoked within a session, an * Since some accounts have many runtime programs, caching a list of all programs on the first call of `programs()` has been removed. Instead, programs will only be cached up to the `limit` given, which has a default value of 20. - + ### Deprecation Notes @@ -1175,17 +1198,17 @@ There are significant changes to how primitives are invoked within a session, an options.transpilation.skip_transpilation = True ``` - + ### Bug Fixes * Fixes issue [#428](https://github.com/Qiskit/qiskit-ibm-runtime/issues/428) by raising the minimum required `qiskit-terra` version to `0.21.0`, since latest version of `qiskit-ibm-runtime` is not compatible with `0.20.0` or earlier of `qiskit-terra`. - + ## 0.6.0 - + ### Upgrade Notes @@ -1202,17 +1225,17 @@ There are significant changes to how primitives are invoked within a session, an * `IBMRuntimeService` class which was deprecated earlier is now removed. Use [QiskitRuntimeService](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.QiskitRuntimeService) class going forward. - + ## 0.5.0 - + ### Prelude This release leverages the API and Queue enhancements to become more runtime session aware. As a result when using the primitives (sampler and estimator), runtime jobs in the same session will skip to the front of the queue, thereby speeding up the runtime session, once it has started. - + ### New Features @@ -1225,7 +1248,7 @@ This release leverages the API and Queue enhancements to become more runtime ses backend.service # QiskitRuntimeService instance used to instantiate the backend ``` - + ### Upgrade Notes @@ -1282,11 +1305,11 @@ This release leverages the API and Queue enhancements to become more runtime ses * [qubit\_properties()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.IBMBackend#qubit_properties) will now return a sub class of `QubitProperties` called `IBMQubitProperties` and will expose anharmonicity in addition to the t1, t2 and frequency already exposed by the `QubitProperties` class. - + ## 0.4.0 - + ### Upgrade Notes @@ -1371,55 +1394,55 @@ This release leverages the API and Queue enhancements to become more runtime ses result = sampler(circuit_indices=[0], ...) ``` - + ### Deprecation Notes * `IBMRuntimeService`, `IBMEstimator` and `IBMSampler` classes have been deprecated and will be removed in a future release. Use [QiskitRuntimeService](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.QiskitRuntimeService), [Estimator](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Estimator) and [Sampler](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler) classes instead. See upgrade notes section for a detailed explanation with examples. - + ## 0.3.0 - + ### Upgrade Notes * A new parameter `channel` has now been added to `qiskit_ibm_runtime.IBMRuntimeService` class and also to methods like `save_account()`, `saved_accounts()` and `delete_account()`. It can be set to `ibm_quantum` or `ibm_cloud` to authenticate to either of the two different channels through which Qiskit Runtime service is currently offered. `channel` replaces the `auth` parameter which has now been deprecated. - + ### Deprecation Notes * The `auth` parameter to `qiskit_ibm_runtime.IBMRuntimeService` class and also to methods like `save_account()`, `saved_accounts()` and `delete_account()` has now been deprecated and will be removed in a future release. Please use the new `channel` parameter instead. - + ### Bug Fixes * Fixed [#291](https://github.com/Qiskit/qiskit-ibm-runtime/issues/219) where passing a single `QuantumCircuit` to sampler or estimator primitives was throwing an error. - + ## 0.2.0 - + ### New Features * `qiskit_ibm_runtime.IBMEstimator` and `qiskit_ibm_runtime.IBMSampler` classes now allow you to easily interact with the `estimator` and `sampler` primitive programs. Refer to the examples in the respective class doc strings to learn more about how to use them. - + ### Bug Fixes * Fixed a bug where [qiskit\_ibm\_runtime.RuntimeJob.wait\_for\_final\_state()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob#wait_for_final_state) would result in a NoneType error if the job already completed and [qiskit\_ibm\_runtime.RuntimeJob.status()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob#status) was called beforehand. - + ## 0.1.0 - + ### Prelude @@ -1429,13 +1452,13 @@ This new package is built upon the work already done in qiskit.providers.ibmq.ru qiskit-ibm-runtime is not included as part of Qiskit meta package and thereby you have to install it separately using `pip install qiskit-ibm-runtime`. - + ### New Features * `qiskit_ibm_runtime.IBMRuntimeService.least_busy()` will now allow you find the least busy backend. - + ### Upgrade Notes @@ -1496,35 +1519,35 @@ qiskit-ibm-runtime is not included as part of Qiskit meta package and thereby yo * Final result is also streamed now after interim results when you specify a `callback` to `qiskit_ibm_runtime.IBMRuntimeService.run()` or [qiskit\_ibm\_runtime.RuntimeJob.stream\_results()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob#stream_results). - + ## 0.1.0rc2 - + ### New Features * For convenience, you can now set the `IBM Cloud service name` as a value for the account `instance` parameter. If you choose to set the name instead of the `CRN`, the initialization time of the `qiskit_ibm_runtime.IBMRuntimeService` class is slightly higher because the required `CRN` value is internally resolved via IBM Cloud APIs. - + ### Bug Fixes * [qiskit\_ibm\_runtime.utils.json.RuntimeEncoder](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeEncoder) and [qiskit\_ibm\_runtime.utils.json.RuntimeDecoder](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeDecoder) have been updated to handle instances of the Instruction class. * Fixed an issue where numpy ndarrays with object types could not be serialized. [qiskit\_ibm\_runtime.utils.json.RuntimeEncoder](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeEncoder) and [qiskit\_ibm\_runtime.utils.json.RuntimeDecoder](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeDecoder) have been updated to handle these ndarrays. - + ## 0.1.0rc1 - + ### New Features * You can now pass `instance` parameter in the hub/group/project format to `qiskit_ibm_runtime.IBMRuntimeService.jobs()` to filter jobs. Currently only supported for legacy authentication. * You can now use the [qiskit\_ibm\_runtime.RuntimeJob.interim\_results()](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob#interim_results) method to retrieve runtime program interim results. Note that interim results will only be available for up to two days. - + ### Upgrade Notes @@ -1532,7 +1555,7 @@ qiskit-ibm-runtime is not included as part of Qiskit meta package and thereby yo * When uploading a program with `qiskit_ibm_runtime.IBMRuntimeService.upload_program()`, the program description is now optional. * When printing programs with `qiskit_ibm_runtime.IBMRuntimeService.pprint_programs()`, `backend_requirements` will now be listed. - + ### Bug Fixes diff --git a/docs/api/qiskit/dev/_toc.json b/docs/api/qiskit/dev/_toc.json index 7aed01a78a8..c36b11a4dd6 100644 --- a/docs/api/qiskit/dev/_toc.json +++ b/docs/api/qiskit/dev/_toc.json @@ -27,6 +27,10 @@ "title": "CircuitInstruction", "url": "/api/qiskit/dev/qiskit.circuit.CircuitInstruction" }, + { + "title": "CommutationChecker", + "url": "/api/qiskit/dev/qiskit.circuit.CommutationChecker" + }, { "title": "ContinueLoopOp", "url": "/api/qiskit/dev/qiskit.circuit.ContinueLoopOp" diff --git a/docs/api/qiskit/dev/circuit.mdx b/docs/api/qiskit/dev/circuit.mdx index 5e6aa7cb1cd..f699b2afb59 100644 --- a/docs/api/qiskit/dev/circuit.mdx +++ b/docs/api/qiskit/dev/circuit.mdx @@ -485,7 +485,7 @@ Hardware can be instructed to apply a real-time idle period on a given qubit. A #### Delay - + Bases: [`Instruction`](qiskit.circuit.Instruction "qiskit.circuit.instruction.Instruction") Do nothing and just delay/wait/idle for a specified duration. @@ -678,6 +678,24 @@ When the low-level construction is being used the inner [`QuantumCircuit`](qiski Consult [the control-flow construction documentation](qiskit.circuit.QuantumCircuit#circuit-control-flow-methods) for more information on how to build circuits with control flow. +### Investigating commutation relations + +If two operations in a circuit commute, we can swap the order in which they are applied. This can allow for optimizations and simplifications, for example, if it allows to merge or cancel gates: + +```python + ┌─────────┐ ┌─────────┐ ┌─────────┐ +q_0: ┤ Rz(0.5) ├──■──┤ Rz(1.2) ├──■── q_0: ┤ Rz(1.7) ├ + └─────────┘┌─┴─┐└──┬───┬──┘┌─┴─┐ = └──┬───┬──┘ +q_1: ───────────┤ X ├───┤ X ├───┤ X ├ q_1: ───┤ X ├─── + └───┘ └───┘ └───┘ └───┘ +``` + +Performing these optimizations are part of the transpiler, but the tools to investigate commutations are available in the [`CommutationChecker`](qiskit.circuit.CommutationChecker "qiskit.circuit.CommutationChecker"). + +| | | +| ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- | +| [`CommutationChecker`](qiskit.circuit.CommutationChecker "qiskit.circuit.CommutationChecker")(\[...]) | This code is essentially copy-pasted from commutative\_analysis.py. | + ## Creating custom instructions @@ -696,7 +714,7 @@ Subclasses of [`Instruction`](qiskit.circuit.Instruction "qiskit.circuit.Instruc #### \_define - + Populate the cached `_definition` field of this [`Instruction`](qiskit.circuit.Instruction "qiskit.circuit.Instruction"). Subclasses should implement this method to provide lazy construction of their public [`definition`](qiskit.circuit.Instruction#definition "qiskit.circuit.Instruction.definition") attribute. A subclass can use its [`params`](qiskit.circuit.Instruction#params "qiskit.circuit.Instruction.params") at the time of the call. The method should populate `_definition` with a [`QuantumCircuit`](qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit") and not return a value. diff --git a/docs/api/qiskit/dev/providers.mdx b/docs/api/qiskit/dev/providers.mdx index ba9537ea9e0..933e16cfe58 100644 --- a/docs/api/qiskit/dev/providers.mdx +++ b/docs/api/qiskit/dev/providers.mdx @@ -250,7 +250,7 @@ The key piece of the [`Backend`](qiskit.providers.Backend "qiskit.providers.Back def _define(self): qc = QuantumCircuit(1) - q.ry(np.pi / 2, 0) + qc.ry(np.pi / 2, 0) self.definition = qc ``` diff --git a/docs/api/qiskit/dev/qiskit.circuit.BreakLoopOp.mdx b/docs/api/qiskit/dev/qiskit.circuit.BreakLoopOp.mdx index 56475fe181a..46daa11ec1d 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.BreakLoopOp.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.BreakLoopOp.mdx @@ -128,13 +128,13 @@ python_api_name: qiskit.circuit.BreakLoopOp ### add\_decomposition - + Add a decomposition of the instruction to the SessionEquivalenceLibrary. ### assemble - + Assemble a QasmQobjInstruction @@ -144,7 +144,7 @@ python_api_name: qiskit.circuit.BreakLoopOp ### broadcast\_arguments - + Validation of the arguments. **Parameters** @@ -163,7 +163,7 @@ python_api_name: qiskit.circuit.BreakLoopOp ### c\_if - + Set a classical equality condition on this instruction between the register or cbit `classical` and value `val`. @@ -173,7 +173,7 @@ python_api_name: qiskit.circuit.BreakLoopOp ### copy - + Copy of the instruction. **Parameters** @@ -191,7 +191,7 @@ python_api_name: qiskit.circuit.BreakLoopOp ### inverse - + Invert this instruction. If annotated is False, the inverse instruction is implemented as a fresh instruction with the recursively inverted definition. @@ -215,13 +215,13 @@ python_api_name: qiskit.circuit.BreakLoopOp ### is\_parameterized - + Return whether the [`Instruction`](qiskit.circuit.Instruction "qiskit.circuit.Instruction") contains [compile-time parameters](circuit#circuit-compile-time-parameters). ### repeat - + Creates an instruction with `self` repeated :math\`n\` times. If this operation has a conditional, the output instruction will have the same conditional and the inner repeated operations will be unconditional; instructions within a compound definition cannot be conditioned on registers within Qiskit’s data model. This means that it is not valid to apply a repeated instruction to a clbit that it both writes to and reads from in its condition. @@ -245,7 +245,7 @@ python_api_name: qiskit.circuit.BreakLoopOp ### reverse\_ops - + For a composite instruction, reverse the order of sub-instructions. This is done by recursively reversing all sub-instructions. It does not invert any gate. @@ -263,7 +263,7 @@ python_api_name: qiskit.circuit.BreakLoopOp ### soft\_compare - + Soft comparison between gates. Their names, number of qubits, and classical bit numbers must match. The number of parameters must match. Each parameter is compared. If one is a ParameterExpression then it is not taken into account. **Parameters** @@ -281,7 +281,7 @@ python_api_name: qiskit.circuit.BreakLoopOp ### to\_mutable - + Return a mutable copy of this gate. This method will return a new mutable copy of this gate instance. If a singleton instance is being used this will be a new unique instance that can be mutated. If the instance is already mutable it will be a deepcopy of that instance. @@ -289,7 +289,7 @@ python_api_name: qiskit.circuit.BreakLoopOp ### validate\_parameter - + Instruction parameters has no validation or normalization. diff --git a/docs/api/qiskit/dev/qiskit.circuit.CommutationChecker.mdx b/docs/api/qiskit/dev/qiskit.circuit.CommutationChecker.mdx new file mode 100644 index 00000000000..6e3114f8b87 --- /dev/null +++ b/docs/api/qiskit/dev/qiskit.circuit.CommutationChecker.mdx @@ -0,0 +1,85 @@ +--- +title: CommutationChecker +description: API reference for qiskit.circuit.CommutationChecker +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit.circuit.CommutationChecker +--- + +# CommutationChecker + + + Bases: [`object`](https://docs.python.org/3/library/functions.html#object "(in Python v3.13)") + + This code is essentially copy-pasted from commutative\_analysis.py. This code cleverly hashes commutativity and non-commutativity results between DAG nodes and seems quite efficient for large Clifford circuits. They may be other possible efficiency improvements: using rule-based commutativity analysis, evicting from the cache less useful entries, etc. + + ## Methods + + ### check\_commutation\_entries + + + Returns stored commutation relation if any + + **Parameters** + + * **first\_op** ([*Operation*](qiskit.circuit.Operation "qiskit.circuit.operation.Operation")) – first operation. + * **first\_qargs** ([*List*](https://docs.python.org/3/library/typing.html#typing.List "(in Python v3.13)")) – first operation’s qubits. + * **second\_op** ([*Operation*](qiskit.circuit.Operation "qiskit.circuit.operation.Operation")) – second operation. + * **second\_qargs** ([*List*](https://docs.python.org/3/library/typing.html#typing.List "(in Python v3.13)")) – second operation’s qubits. + + **Returns** + + True if the gates commute and false if it is not the case. + + **Return type** + + [bool](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)") + + + ### clear\_cached\_commutations + + + Clears the dictionary holding cached commutations + + + ### commute + + + Checks if two Operations commute. The return value of True means that the operations truly commute, and the return value of False means that either the operations do not commute or that the commutation check was skipped (for example, when the operations have conditions or have too many qubits). + + **Parameters** + + * **op1** ([*Operation*](qiskit.circuit.Operation "qiskit.circuit.operation.Operation")) – first operation. + * **qargs1** ([*List*](https://docs.python.org/3/library/typing.html#typing.List "(in Python v3.13)")) – first operation’s qubits. + * **cargs1** ([*List*](https://docs.python.org/3/library/typing.html#typing.List "(in Python v3.13)")) – first operation’s clbits. + * **op2** ([*Operation*](qiskit.circuit.Operation "qiskit.circuit.operation.Operation")) – second operation. + * **qargs2** ([*List*](https://docs.python.org/3/library/typing.html#typing.List "(in Python v3.13)")) – second operation’s qubits. + * **cargs2** ([*List*](https://docs.python.org/3/library/typing.html#typing.List "(in Python v3.13)")) – second operation’s clbits. + * **max\_num\_qubits** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – the maximum number of qubits to consider, the check may be skipped if the number of qubits for either operation exceeds this amount. + + **Returns** + + whether two operations commute. + + **Return type** + + [bool](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)") + + + ### commute\_nodes + + + Checks if two DAGOpNodes commute. + + **Return type** + + [bool](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)") + + + ### num\_cached\_entries + + + Returns number of cached entries + + + diff --git a/docs/api/qiskit/dev/qiskit.circuit.ContinueLoopOp.mdx b/docs/api/qiskit/dev/qiskit.circuit.ContinueLoopOp.mdx index ecca0a27299..29de201f7b2 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.ContinueLoopOp.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.ContinueLoopOp.mdx @@ -128,13 +128,13 @@ python_api_name: qiskit.circuit.ContinueLoopOp ### add\_decomposition - + Add a decomposition of the instruction to the SessionEquivalenceLibrary. ### assemble - + Assemble a QasmQobjInstruction @@ -144,7 +144,7 @@ python_api_name: qiskit.circuit.ContinueLoopOp ### broadcast\_arguments - + Validation of the arguments. **Parameters** @@ -163,7 +163,7 @@ python_api_name: qiskit.circuit.ContinueLoopOp ### c\_if - + Set a classical equality condition on this instruction between the register or cbit `classical` and value `val`. @@ -173,7 +173,7 @@ python_api_name: qiskit.circuit.ContinueLoopOp ### copy - + Copy of the instruction. **Parameters** @@ -191,7 +191,7 @@ python_api_name: qiskit.circuit.ContinueLoopOp ### inverse - + Invert this instruction. If annotated is False, the inverse instruction is implemented as a fresh instruction with the recursively inverted definition. @@ -215,13 +215,13 @@ python_api_name: qiskit.circuit.ContinueLoopOp ### is\_parameterized - + Return whether the [`Instruction`](qiskit.circuit.Instruction "qiskit.circuit.Instruction") contains [compile-time parameters](circuit#circuit-compile-time-parameters). ### repeat - + Creates an instruction with `self` repeated :math\`n\` times. If this operation has a conditional, the output instruction will have the same conditional and the inner repeated operations will be unconditional; instructions within a compound definition cannot be conditioned on registers within Qiskit’s data model. This means that it is not valid to apply a repeated instruction to a clbit that it both writes to and reads from in its condition. @@ -245,7 +245,7 @@ python_api_name: qiskit.circuit.ContinueLoopOp ### reverse\_ops - + For a composite instruction, reverse the order of sub-instructions. This is done by recursively reversing all sub-instructions. It does not invert any gate. @@ -263,7 +263,7 @@ python_api_name: qiskit.circuit.ContinueLoopOp ### soft\_compare - + Soft comparison between gates. Their names, number of qubits, and classical bit numbers must match. The number of parameters must match. Each parameter is compared. If one is a ParameterExpression then it is not taken into account. **Parameters** @@ -281,7 +281,7 @@ python_api_name: qiskit.circuit.ContinueLoopOp ### to\_mutable - + Return a mutable copy of this gate. This method will return a new mutable copy of this gate instance. If a singleton instance is being used this will be a new unique instance that can be mutated. If the instance is already mutable it will be a deepcopy of that instance. @@ -289,7 +289,7 @@ python_api_name: qiskit.circuit.ContinueLoopOp ### validate\_parameter - + Instruction parameters has no validation or normalization. diff --git a/docs/api/qiskit/dev/qiskit.circuit.ControlFlowOp.mdx b/docs/api/qiskit/dev/qiskit.circuit.ControlFlowOp.mdx index ba9c61f2a96..ea3ed488584 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.ControlFlowOp.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.ControlFlowOp.mdx @@ -147,13 +147,13 @@ python_api_name: qiskit.circuit.ControlFlowOp ### add\_decomposition - + Add a decomposition of the instruction to the SessionEquivalenceLibrary. ### assemble - + Assemble a QasmQobjInstruction @@ -163,7 +163,7 @@ python_api_name: qiskit.circuit.ControlFlowOp ### broadcast\_arguments - + Validation of the arguments. **Parameters** @@ -182,7 +182,7 @@ python_api_name: qiskit.circuit.ControlFlowOp ### c\_if - + Set a classical equality condition on this instruction between the register or cbit `classical` and value `val`. @@ -192,7 +192,7 @@ python_api_name: qiskit.circuit.ControlFlowOp ### copy - + Copy of the instruction. **Parameters** @@ -210,7 +210,7 @@ python_api_name: qiskit.circuit.ControlFlowOp ### inverse - + Invert this instruction. If annotated is False, the inverse instruction is implemented as a fresh instruction with the recursively inverted definition. @@ -234,7 +234,7 @@ python_api_name: qiskit.circuit.ControlFlowOp ### is\_parameterized - + Return whether the [`Instruction`](qiskit.circuit.Instruction "qiskit.circuit.Instruction") contains [compile-time parameters](circuit#circuit-compile-time-parameters). @@ -250,7 +250,7 @@ python_api_name: qiskit.circuit.ControlFlowOp ### repeat - + Creates an instruction with `self` repeated :math\`n\` times. If this operation has a conditional, the output instruction will have the same conditional and the inner repeated operations will be unconditional; instructions within a compound definition cannot be conditioned on registers within Qiskit’s data model. This means that it is not valid to apply a repeated instruction to a clbit that it both writes to and reads from in its condition. @@ -309,7 +309,7 @@ python_api_name: qiskit.circuit.ControlFlowOp ### reverse\_ops - + For a composite instruction, reverse the order of sub-instructions. This is done by recursively reversing all sub-instructions. It does not invert any gate. @@ -327,7 +327,7 @@ python_api_name: qiskit.circuit.ControlFlowOp ### soft\_compare - + Soft comparison between gates. Their names, number of qubits, and classical bit numbers must match. The number of parameters must match. Each parameter is compared. If one is a ParameterExpression then it is not taken into account. **Parameters** @@ -345,7 +345,7 @@ python_api_name: qiskit.circuit.ControlFlowOp ### to\_mutable - + Return a mutable copy of this gate. This method will return a new mutable copy of this gate instance. If a singleton instance is being used this will be a new unique instance that can be mutated. If the instance is already mutable it will be a deepcopy of that instance. @@ -353,7 +353,7 @@ python_api_name: qiskit.circuit.ControlFlowOp ### validate\_parameter - + Instruction parameters has no validation or normalization. diff --git a/docs/api/qiskit/dev/qiskit.circuit.ControlledGate.mdx b/docs/api/qiskit/dev/qiskit.circuit.ControlledGate.mdx index 3269af0ea43..c091d78d748 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.ControlledGate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.ControlledGate.mdx @@ -211,13 +211,13 @@ python_api_name: qiskit.circuit.ControlledGate ### add\_decomposition - + Add a decomposition of the instruction to the SessionEquivalenceLibrary. ### assemble - + Assemble a QasmQobjInstruction @@ -280,7 +280,7 @@ python_api_name: qiskit.circuit.ControlledGate ### c\_if - + Set a classical equality condition on this instruction between the register or cbit `classical` and value `val`. @@ -313,7 +313,7 @@ python_api_name: qiskit.circuit.ControlledGate ### copy - + Copy of the instruction. **Parameters** @@ -341,7 +341,7 @@ python_api_name: qiskit.circuit.ControlledGate ### is\_parameterized - + Return whether the [`Instruction`](qiskit.circuit.Instruction "qiskit.circuit.Instruction") contains [compile-time parameters](circuit#circuit-compile-time-parameters). @@ -368,7 +368,7 @@ python_api_name: qiskit.circuit.ControlledGate ### repeat - + Creates an instruction with `self` repeated :math\`n\` times. If this operation has a conditional, the output instruction will have the same conditional and the inner repeated operations will be unconditional; instructions within a compound definition cannot be conditioned on registers within Qiskit’s data model. This means that it is not valid to apply a repeated instruction to a clbit that it both writes to and reads from in its condition. @@ -392,7 +392,7 @@ python_api_name: qiskit.circuit.ControlledGate ### reverse\_ops - + For a composite instruction, reverse the order of sub-instructions. This is done by recursively reversing all sub-instructions. It does not invert any gate. @@ -410,7 +410,7 @@ python_api_name: qiskit.circuit.ControlledGate ### soft\_compare - + Soft comparison between gates. Their names, number of qubits, and classical bit numbers must match. The number of parameters must match. Each parameter is compared. If one is a ParameterExpression then it is not taken into account. **Parameters** @@ -446,7 +446,7 @@ python_api_name: qiskit.circuit.ControlledGate ### to\_mutable - + Return a mutable copy of this gate. This method will return a new mutable copy of this gate instance. If a singleton instance is being used this will be a new unique instance that can be mutated. If the instance is already mutable it will be a deepcopy of that instance. diff --git a/docs/api/qiskit/dev/qiskit.circuit.ForLoopOp.mdx b/docs/api/qiskit/dev/qiskit.circuit.ForLoopOp.mdx index 9a271ca04b7..5993f0a1635 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.ForLoopOp.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.ForLoopOp.mdx @@ -131,13 +131,13 @@ python_api_name: qiskit.circuit.ForLoopOp ### add\_decomposition - + Add a decomposition of the instruction to the SessionEquivalenceLibrary. ### assemble - + Assemble a QasmQobjInstruction @@ -147,7 +147,7 @@ python_api_name: qiskit.circuit.ForLoopOp ### broadcast\_arguments - + Validation of the arguments. **Parameters** @@ -166,7 +166,7 @@ python_api_name: qiskit.circuit.ForLoopOp ### c\_if - + Set a classical equality condition on this instruction between the register or cbit `classical` and value `val`. @@ -176,7 +176,7 @@ python_api_name: qiskit.circuit.ForLoopOp ### copy - + Copy of the instruction. **Parameters** @@ -194,7 +194,7 @@ python_api_name: qiskit.circuit.ForLoopOp ### inverse - + Invert this instruction. If annotated is False, the inverse instruction is implemented as a fresh instruction with the recursively inverted definition. @@ -218,7 +218,7 @@ python_api_name: qiskit.circuit.ForLoopOp ### is\_parameterized - + Return whether the [`Instruction`](qiskit.circuit.Instruction "qiskit.circuit.Instruction") contains [compile-time parameters](circuit#circuit-compile-time-parameters). @@ -234,7 +234,7 @@ python_api_name: qiskit.circuit.ForLoopOp ### repeat - + Creates an instruction with `self` repeated :math\`n\` times. If this operation has a conditional, the output instruction will have the same conditional and the inner repeated operations will be unconditional; instructions within a compound definition cannot be conditioned on registers within Qiskit’s data model. This means that it is not valid to apply a repeated instruction to a clbit that it both writes to and reads from in its condition. @@ -289,7 +289,7 @@ python_api_name: qiskit.circuit.ForLoopOp ### reverse\_ops - + For a composite instruction, reverse the order of sub-instructions. This is done by recursively reversing all sub-instructions. It does not invert any gate. @@ -307,7 +307,7 @@ python_api_name: qiskit.circuit.ForLoopOp ### soft\_compare - + Soft comparison between gates. Their names, number of qubits, and classical bit numbers must match. The number of parameters must match. Each parameter is compared. If one is a ParameterExpression then it is not taken into account. **Parameters** @@ -325,7 +325,7 @@ python_api_name: qiskit.circuit.ForLoopOp ### to\_mutable - + Return a mutable copy of this gate. This method will return a new mutable copy of this gate instance. If a singleton instance is being used this will be a new unique instance that can be mutated. If the instance is already mutable it will be a deepcopy of that instance. @@ -333,7 +333,7 @@ python_api_name: qiskit.circuit.ForLoopOp ### validate\_parameter - + Instruction parameters has no validation or normalization. diff --git a/docs/api/qiskit/dev/qiskit.circuit.Gate.mdx b/docs/api/qiskit/dev/qiskit.circuit.Gate.mdx index f49cc878e78..9201826c1aa 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.Gate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.Gate.mdx @@ -131,13 +131,13 @@ python_api_name: qiskit.circuit.Gate ### add\_decomposition - + Add a decomposition of the instruction to the SessionEquivalenceLibrary. ### assemble - + Assemble a QasmQobjInstruction @@ -200,7 +200,7 @@ python_api_name: qiskit.circuit.Gate ### c\_if - + Set a classical equality condition on this instruction between the register or cbit `classical` and value `val`. @@ -233,7 +233,7 @@ python_api_name: qiskit.circuit.Gate ### copy - + Copy of the instruction. **Parameters** @@ -251,7 +251,7 @@ python_api_name: qiskit.circuit.Gate ### inverse - + Invert this instruction. If annotated is False, the inverse instruction is implemented as a fresh instruction with the recursively inverted definition. @@ -275,7 +275,7 @@ python_api_name: qiskit.circuit.Gate ### is\_parameterized - + Return whether the [`Instruction`](qiskit.circuit.Instruction "qiskit.circuit.Instruction") contains [compile-time parameters](circuit#circuit-compile-time-parameters). @@ -302,7 +302,7 @@ python_api_name: qiskit.circuit.Gate ### repeat - + Creates an instruction with `self` repeated :math\`n\` times. If this operation has a conditional, the output instruction will have the same conditional and the inner repeated operations will be unconditional; instructions within a compound definition cannot be conditioned on registers within Qiskit’s data model. This means that it is not valid to apply a repeated instruction to a clbit that it both writes to and reads from in its condition. @@ -326,7 +326,7 @@ python_api_name: qiskit.circuit.Gate ### reverse\_ops - + For a composite instruction, reverse the order of sub-instructions. This is done by recursively reversing all sub-instructions. It does not invert any gate. @@ -344,7 +344,7 @@ python_api_name: qiskit.circuit.Gate ### soft\_compare - + Soft comparison between gates. Their names, number of qubits, and classical bit numbers must match. The number of parameters must match. Each parameter is compared. If one is a ParameterExpression then it is not taken into account. **Parameters** @@ -380,7 +380,7 @@ python_api_name: qiskit.circuit.Gate ### to\_mutable - + Return a mutable copy of this gate. This method will return a new mutable copy of this gate instance. If a singleton instance is being used this will be a new unique instance that can be mutated. If the instance is already mutable it will be a deepcopy of that instance. diff --git a/docs/api/qiskit/dev/qiskit.circuit.IfElseOp.mdx b/docs/api/qiskit/dev/qiskit.circuit.IfElseOp.mdx index 3414582f683..5cd5e69a46a 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.IfElseOp.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.IfElseOp.mdx @@ -135,13 +135,13 @@ python_api_name: qiskit.circuit.IfElseOp ### add\_decomposition - + Add a decomposition of the instruction to the SessionEquivalenceLibrary. ### assemble - + Assemble a QasmQobjInstruction @@ -151,7 +151,7 @@ python_api_name: qiskit.circuit.IfElseOp ### broadcast\_arguments - + Validation of the arguments. **Parameters** @@ -180,7 +180,7 @@ python_api_name: qiskit.circuit.IfElseOp ### copy - + Copy of the instruction. **Parameters** @@ -198,7 +198,7 @@ python_api_name: qiskit.circuit.IfElseOp ### inverse - + Invert this instruction. If annotated is False, the inverse instruction is implemented as a fresh instruction with the recursively inverted definition. @@ -222,7 +222,7 @@ python_api_name: qiskit.circuit.IfElseOp ### is\_parameterized - + Return whether the [`Instruction`](qiskit.circuit.Instruction "qiskit.circuit.Instruction") contains [compile-time parameters](circuit#circuit-compile-time-parameters). @@ -238,7 +238,7 @@ python_api_name: qiskit.circuit.IfElseOp ### repeat - + Creates an instruction with `self` repeated :math\`n\` times. If this operation has a conditional, the output instruction will have the same conditional and the inner repeated operations will be unconditional; instructions within a compound definition cannot be conditioned on registers within Qiskit’s data model. This means that it is not valid to apply a repeated instruction to a clbit that it both writes to and reads from in its condition. @@ -280,7 +280,7 @@ python_api_name: qiskit.circuit.IfElseOp ### reverse\_ops - + For a composite instruction, reverse the order of sub-instructions. This is done by recursively reversing all sub-instructions. It does not invert any gate. @@ -298,7 +298,7 @@ python_api_name: qiskit.circuit.IfElseOp ### soft\_compare - + Soft comparison between gates. Their names, number of qubits, and classical bit numbers must match. The number of parameters must match. Each parameter is compared. If one is a ParameterExpression then it is not taken into account. **Parameters** @@ -316,7 +316,7 @@ python_api_name: qiskit.circuit.IfElseOp ### to\_mutable - + Return a mutable copy of this gate. This method will return a new mutable copy of this gate instance. If a singleton instance is being used this will be a new unique instance that can be mutated. If the instance is already mutable it will be a deepcopy of that instance. @@ -324,7 +324,7 @@ python_api_name: qiskit.circuit.IfElseOp ### validate\_parameter - + Instruction parameters has no validation or normalization. diff --git a/docs/api/qiskit/dev/qiskit.circuit.Instruction.mdx b/docs/api/qiskit/dev/qiskit.circuit.Instruction.mdx index 2c76ca7f7f7..91024014594 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.Instruction.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.Instruction.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.Instruction # Instruction - + Bases: [`Operation`](qiskit.circuit.Operation "qiskit.circuit.operation.Operation") Generic quantum instruction. @@ -139,13 +139,13 @@ python_api_name: qiskit.circuit.Instruction ### add\_decomposition - + Add a decomposition of the instruction to the SessionEquivalenceLibrary. ### assemble - + Assemble a QasmQobjInstruction @@ -155,7 +155,7 @@ python_api_name: qiskit.circuit.Instruction ### broadcast\_arguments - + Validation of the arguments. **Parameters** @@ -174,7 +174,7 @@ python_api_name: qiskit.circuit.Instruction ### c\_if - + Set a classical equality condition on this instruction between the register or cbit `classical` and value `val`. @@ -184,7 +184,7 @@ python_api_name: qiskit.circuit.Instruction ### copy - + Copy of the instruction. **Parameters** @@ -202,7 +202,7 @@ python_api_name: qiskit.circuit.Instruction ### inverse - + Invert this instruction. If annotated is False, the inverse instruction is implemented as a fresh instruction with the recursively inverted definition. @@ -226,13 +226,13 @@ python_api_name: qiskit.circuit.Instruction ### is\_parameterized - + Return whether the [`Instruction`](#qiskit.circuit.Instruction "qiskit.circuit.Instruction") contains [compile-time parameters](circuit#circuit-compile-time-parameters). ### repeat - + Creates an instruction with `self` repeated :math\`n\` times. If this operation has a conditional, the output instruction will have the same conditional and the inner repeated operations will be unconditional; instructions within a compound definition cannot be conditioned on registers within Qiskit’s data model. This means that it is not valid to apply a repeated instruction to a clbit that it both writes to and reads from in its condition. @@ -256,7 +256,7 @@ python_api_name: qiskit.circuit.Instruction ### reverse\_ops - + For a composite instruction, reverse the order of sub-instructions. This is done by recursively reversing all sub-instructions. It does not invert any gate. @@ -274,7 +274,7 @@ python_api_name: qiskit.circuit.Instruction ### soft\_compare - + Soft comparison between gates. Their names, number of qubits, and classical bit numbers must match. The number of parameters must match. Each parameter is compared. If one is a ParameterExpression then it is not taken into account. **Parameters** @@ -292,7 +292,7 @@ python_api_name: qiskit.circuit.Instruction ### to\_mutable - + Return a mutable copy of this gate. This method will return a new mutable copy of this gate instance. If a singleton instance is being used this will be a new unique instance that can be mutated. If the instance is already mutable it will be a deepcopy of that instance. @@ -300,7 +300,7 @@ python_api_name: qiskit.circuit.Instruction ### validate\_parameter - + Instruction parameters has no validation or normalization. diff --git a/docs/api/qiskit/dev/qiskit.circuit.QuantumCircuit.mdx b/docs/api/qiskit/dev/qiskit.circuit.QuantumCircuit.mdx index 3577281c37f..155d1b958bd 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.QuantumCircuit.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.QuantumCircuit.mdx @@ -12,7 +12,7 @@ python_api_name: qiskit.circuit.QuantumCircuit # [`QuantumCircuit`](#qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit") class - + Core Qiskit representation of a quantum circuit. @@ -373,7 +373,7 @@ python_api_name: qiskit.circuit.QuantumCircuit ### copy - + Copy the circuit. **Parameters** @@ -393,7 +393,7 @@ python_api_name: qiskit.circuit.QuantumCircuit ### copy\_empty\_like - + Return a copy of self with the same structure but empty. That structure includes: @@ -465,7 +465,7 @@ python_api_name: qiskit.circuit.QuantumCircuit ### from\_qasm\_file - + Read an OpenQASM 2.0 program from a file and convert to an instance of [`QuantumCircuit`](#qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit"). **Parameters** @@ -487,7 +487,7 @@ python_api_name: qiskit.circuit.QuantumCircuit ### from\_qasm\_str - + Convert a string containing an OpenQASM 2.0 program to a [`QuantumCircuit`](#qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit"). **Parameters** @@ -764,7 +764,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### assign\_parameters - + Assign parameters to new parameters or values. If `parameters` is passed as a dictionary, the keys should be [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") instances in the current circuit. The values of the dictionary can either be numeric values or new parameter objects. @@ -1394,7 +1394,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### barrier - + Apply `Barrier`. If `qargs` is empty, applies to all qubits in the circuit. **Parameters** @@ -1413,7 +1413,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### ccx - + Apply [`CCXGate`](qiskit.circuit.library.CCXGate "qiskit.circuit.library.CCXGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -1436,7 +1436,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### ccz - + Apply [`CCZGate`](qiskit.circuit.library.CCZGate "qiskit.circuit.library.CCZGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -1460,7 +1460,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### ch - + Apply [`CHGate`](qiskit.circuit.library.CHGate "qiskit.circuit.library.CHGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -1483,7 +1483,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### cp - + Apply [`CPhaseGate`](qiskit.circuit.library.CPhaseGate "qiskit.circuit.library.CPhaseGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -1507,7 +1507,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### crx - + Apply [`CRXGate`](qiskit.circuit.library.CRXGate "qiskit.circuit.library.CRXGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -1531,7 +1531,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### cry - + Apply [`CRYGate`](qiskit.circuit.library.CRYGate "qiskit.circuit.library.CRYGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -1555,7 +1555,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### crz - + Apply [`CRZGate`](qiskit.circuit.library.CRZGate "qiskit.circuit.library.CRZGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -1579,7 +1579,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### cs - + Apply [`CSGate`](qiskit.circuit.library.CSGate "qiskit.circuit.library.CSGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -1602,7 +1602,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### csdg - + Apply [`CSdgGate`](qiskit.circuit.library.CSdgGate "qiskit.circuit.library.CSdgGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -1625,7 +1625,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### cswap - + Apply [`CSwapGate`](qiskit.circuit.library.CSwapGate "qiskit.circuit.library.CSwapGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -1649,7 +1649,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### csx - + Apply [`CSXGate`](qiskit.circuit.library.CSXGate "qiskit.circuit.library.CSXGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -1672,7 +1672,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### cu - + Apply [`CUGate`](qiskit.circuit.library.CUGate "qiskit.circuit.library.CUGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -1699,7 +1699,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### cx - + Apply [`CXGate`](qiskit.circuit.library.CXGate "qiskit.circuit.library.CXGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -1722,7 +1722,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### cy - + Apply [`CYGate`](qiskit.circuit.library.CYGate "qiskit.circuit.library.CYGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -1745,7 +1745,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### cz - + Apply [`CZGate`](qiskit.circuit.library.CZGate "qiskit.circuit.library.CZGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -1768,7 +1768,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### dcx - + Apply [`DCXGate`](qiskit.circuit.library.DCXGate "qiskit.circuit.library.DCXGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -1789,7 +1789,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### delay - + Apply [`Delay`](circuit#qiskit.circuit.Delay "qiskit.circuit.Delay"). If qarg is `None`, applies to all qubits. When applying to multiple qubits, delays with the same duration will be created. **Parameters** @@ -1813,7 +1813,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### ecr - + Apply [`ECRGate`](qiskit.circuit.library.ECRGate "qiskit.circuit.library.ECRGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -1834,7 +1834,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### h - + Apply [`HGate`](qiskit.circuit.library.HGate "qiskit.circuit.library.HGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -1854,7 +1854,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### id - + Apply [`IGate`](qiskit.circuit.library.IGate "qiskit.circuit.library.IGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -1874,7 +1874,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### initialize - + Initialize qubits in a specific state. Qubit initialization is done by first resetting the qubits to $|0\rangle$ followed by calling [`StatePreparation`](qiskit.circuit.library.StatePreparation "qiskit.circuit.library.StatePreparation") class to prepare the qubits in a specified state. Both these steps are included in the [`Initialize`](qiskit.circuit.library.Initialize "qiskit.circuit.library.Initialize") instruction. @@ -1963,7 +1963,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### iswap - + Apply [`iSwapGate`](qiskit.circuit.library.iSwapGate "qiskit.circuit.library.iSwapGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -1984,7 +1984,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### mcp - + Apply [`MCPhaseGate`](qiskit.circuit.library.MCPhaseGate "qiskit.circuit.library.MCPhaseGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2063,7 +2063,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### mcx - + Apply [`MCXGate`](qiskit.circuit.library.MCXGate "qiskit.circuit.library.MCXGate"). The multi-cX gate can be implemented using different techniques, which use different numbers of ancilla qubits and have varying circuit depth. These modes are: @@ -2099,7 +2099,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### measure - + Measure a quantum bit (`qubit`) in the Z basis into a classical bit (`cbit`). When a quantum state is measured, a qubit is projected in the computational (Pauli Z) basis to either $\lvert 0 \rangle$ or $\lvert 1 \rangle$. The classical bit `cbit` indicates the result of that projection as a `0` or a `1` respectively. This operation is non-reversible. @@ -2175,7 +2175,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### ms - + Apply [`MSGate`](qiskit.circuit.library.MSGate "qiskit.circuit.library.MSGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2196,7 +2196,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### p - + Apply [`PhaseGate`](qiskit.circuit.library.PhaseGate "qiskit.circuit.library.PhaseGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2217,7 +2217,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### pauli - + Apply [`PauliGate`](qiskit.circuit.library.PauliGate "qiskit.circuit.library.PauliGate"). **Parameters** @@ -2236,7 +2236,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### prepare\_state - + Prepare qubits in a specific state. This class implements a state preparing unitary. Unlike [`initialize()`](#qiskit.circuit.QuantumCircuit.initialize "qiskit.circuit.QuantumCircuit.initialize") it does not reset the qubits first. @@ -2331,7 +2331,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### r - + Apply [`RGate`](qiskit.circuit.library.RGate "qiskit.circuit.library.RGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2353,7 +2353,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### rcccx - + Apply [`RC3XGate`](qiskit.circuit.library.RC3XGate "qiskit.circuit.library.RC3XGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2376,7 +2376,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### rccx - + Apply [`RCCXGate`](qiskit.circuit.library.RCCXGate "qiskit.circuit.library.RCCXGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2398,7 +2398,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### reset - + Reset the quantum bit(s) to their default state. **Parameters** @@ -2416,7 +2416,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### rv - + Apply [`RVGate`](qiskit.circuit.library.RVGate "qiskit.circuit.library.RVGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2441,7 +2441,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### rx - + Apply [`RXGate`](qiskit.circuit.library.RXGate "qiskit.circuit.library.RXGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2463,7 +2463,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### rxx - + Apply [`RXXGate`](qiskit.circuit.library.RXXGate "qiskit.circuit.library.RXXGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2485,7 +2485,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### ry - + Apply [`RYGate`](qiskit.circuit.library.RYGate "qiskit.circuit.library.RYGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2507,7 +2507,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### ryy - + Apply [`RYYGate`](qiskit.circuit.library.RYYGate "qiskit.circuit.library.RYYGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2529,7 +2529,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### rz - + Apply [`RZGate`](qiskit.circuit.library.RZGate "qiskit.circuit.library.RZGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2550,7 +2550,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### rzx - + Apply [`RZXGate`](qiskit.circuit.library.RZXGate "qiskit.circuit.library.RZXGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2572,7 +2572,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### rzz - + Apply [`RZZGate`](qiskit.circuit.library.RZZGate "qiskit.circuit.library.RZZGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2594,7 +2594,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### s - + Apply [`SGate`](qiskit.circuit.library.SGate "qiskit.circuit.library.SGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2614,7 +2614,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### sdg - + Apply [`SdgGate`](qiskit.circuit.library.SdgGate "qiskit.circuit.library.SdgGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2634,7 +2634,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### store - + Store the result of the given real-time classical expression `rvalue` in the memory location defined by `lvalue`. Typically `lvalue` will be a [`Var`](circuit_classical#qiskit.circuit.classical.expr.Var "qiskit.circuit.classical.expr.Var") node and `rvalue` will be some [`Expr`](circuit_classical#qiskit.circuit.classical.expr.Expr "qiskit.circuit.classical.expr.Expr") to write into it, but anything that [`expr.lift()`](circuit_classical#qiskit.circuit.classical.expr.lift "qiskit.circuit.classical.expr.lift") can raise to an [`Expr`](circuit_classical#qiskit.circuit.classical.expr.Expr "qiskit.circuit.classical.expr.Expr") is permissible in both places, and it will be called on them. @@ -2661,7 +2661,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### swap - + Apply [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2682,7 +2682,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### sx - + Apply [`SXGate`](qiskit.circuit.library.SXGate "qiskit.circuit.library.SXGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2702,7 +2702,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### sxdg - + Apply [`SXdgGate`](qiskit.circuit.library.SXdgGate "qiskit.circuit.library.SXdgGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2722,7 +2722,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### t - + Apply [`TGate`](qiskit.circuit.library.TGate "qiskit.circuit.library.TGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2742,7 +2742,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### tdg - + Apply [`TdgGate`](qiskit.circuit.library.TdgGate "qiskit.circuit.library.TdgGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2762,7 +2762,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### u - + Apply [`UGate`](qiskit.circuit.library.UGate "qiskit.circuit.library.UGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2785,7 +2785,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### unitary - + Apply unitary gate specified by `obj` to `qubits`. **Parameters** @@ -2819,7 +2819,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### x - + Apply [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.library.XGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2840,7 +2840,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### y - + Apply [`YGate`](qiskit.circuit.library.YGate "qiskit.circuit.library.YGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2860,7 +2860,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### z - + Apply [`ZGate`](qiskit.circuit.library.ZGate "qiskit.circuit.library.ZGate"). For the full matrix form of this gate, see the underlying gate documentation. @@ -2904,7 +2904,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### break\_loop - + Apply [`BreakLoopOp`](qiskit.circuit.BreakLoopOp "qiskit.circuit.BreakLoopOp"). @@ -2926,7 +2926,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### continue\_loop - + Apply [`ContinueLoopOp`](qiskit.circuit.ContinueLoopOp "qiskit.circuit.ContinueLoopOp"). @@ -2948,7 +2948,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### for\_loop - + Create a `for` loop on this circuit. There are two forms for calling this function. If called with all its arguments (with the possible exception of `label`), it will create a [`ForLoopOp`](qiskit.circuit.ForLoopOp "qiskit.circuit.ForLoopOp") with the given `body`. If `body` (and `qubits` and `clbits`) are *not* passed, then this acts as a context manager, which, when entered, provides a loop variable (unless one is given, in which case it will be reused) and will automatically build a [`ForLoopOp`](qiskit.circuit.ForLoopOp "qiskit.circuit.ForLoopOp") when the scope finishes. In this form, you do not need to keep track of the qubits or clbits you are using, because the scope will handle it for you. @@ -2999,7 +2999,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### if\_else - + Apply [`IfElseOp`](qiskit.circuit.IfElseOp "qiskit.circuit.IfElseOp"). @@ -3043,7 +3043,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### if\_test - + Create an `if` statement on this circuit. There are two forms for calling this function. If called with all its arguments (with the possible exception of `label`), it will create a [`IfElseOp`](qiskit.circuit.IfElseOp "qiskit.circuit.IfElseOp") with the given `true_body`, and there will be no branch for the `false` condition (see also the [`if_else()`](#qiskit.circuit.QuantumCircuit.if_else "qiskit.circuit.QuantumCircuit.if_else") method). However, if `true_body` (and `qubits` and `clbits`) are *not* passed, then this acts as a context manager, which can be used to build `if` statements. The return value of the `with` statement is a chainable context manager, which can be used to create subsequent `else` blocks. In this form, you do not need to keep track of the qubits or clbits you are using, because the scope will handle it for you. @@ -3097,7 +3097,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### switch - + Create a `switch`/`case` structure on this circuit. There are two forms for calling this function. If called with all its arguments (with the possible exception of `label`), it will create a [`SwitchCaseOp`](qiskit.circuit.SwitchCaseOp "qiskit.circuit.SwitchCaseOp") with the given case structure. If `cases` (and `qubits` and `clbits`) are *not* passed, then this acts as a context manager, which will automatically build a [`SwitchCaseOp`](qiskit.circuit.SwitchCaseOp "qiskit.circuit.SwitchCaseOp") when the scope finishes. In this form, you do not need to keep track of the qubits or clbits you are using, because the scope will handle it for you. @@ -3144,7 +3144,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### while\_loop - + Create a `while` loop on this circuit. There are two forms for calling this function. If called with all its arguments (with the possible exception of `label`), it will create a `WhileLoopOp` with the given `body`. If `body` (and `qubits` and `clbits`) are *not* passed, then this acts as a context manager, which will automatically build a `WhileLoopOp` when the scope finishes. In this form, you do not need to keep track of the qubits or clbits you are using, because the scope will handle it for you. @@ -3245,7 +3245,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### measure\_active - + Adds measurement to all non-idle qubits. Creates a new ClassicalRegister with a size equal to the number of non-idle qubits being measured. Returns a new circuit with measurements if inplace=False. @@ -3265,7 +3265,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### measure\_all - + Adds measurement to all qubits. By default, adds new classical bits in a [`ClassicalRegister`](circuit#qiskit.circuit.ClassicalRegister "qiskit.circuit.ClassicalRegister") to store these measurements. If `add_bits=False`, the results of the measurements will instead be stored in the already existing classical bits, with qubit `n` being measured into classical bit `n`. @@ -3294,7 +3294,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### clear - + Clear all instructions in self. Clearing the circuits will keep the metadata and calibrations. @@ -3308,7 +3308,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### remove\_final\_measurements - + Removes final measurements and barriers on all qubits if they are present. Deletes the classical registers that were used to store the values from these measurements that become idle as a result of this operation, and deletes classical bits that are referenced only by removed registers, or that aren’t referenced at all but have become idle as a result of this operation. Measurements and barriers are considered final if they are followed by no other operations (aside from other measurements or barriers.) @@ -3358,7 +3358,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### add\_calibration - + Register a low-level, custom pulse definition for the given gate. **Parameters** @@ -3454,7 +3454,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### count\_ops - + Count each operation kind in the circuit. **Returns** @@ -3468,7 +3468,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### depth - + Return circuit depth (i.e., length of critical path). @@ -3510,7 +3510,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### get\_instructions - + Get instructions matching name. **Parameters** @@ -3528,7 +3528,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### num\_connected\_components - + How many non-entangled subcircuits can the circuit be factored to. **Parameters** @@ -3546,7 +3546,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### num\_nonlocal\_gates - + Return number of non-local gates (i.e. involving 2+ qubits). Conditional nonlocal gates are also included. @@ -3558,7 +3558,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### num\_tensor\_factors - + Computes the number of tensor factors in the unitary (quantum) part of the circuit only. **Notes** @@ -3572,7 +3572,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### num\_unitary\_factors - + Computes the number of tensor factors in the unitary (quantum) part of the circuit only. **Return type** @@ -3582,7 +3582,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### size - + Returns total number of instructions in circuit. **Parameters** @@ -3600,7 +3600,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### width - + Return number of qubits plus clbits in circuit. **Returns** @@ -3618,7 +3618,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### qubit\_duration - + Return the duration between the start and stop time of the first and last instructions, excluding delays, over the supplied qubits. Its time unit is `self.unit`. **Parameters** @@ -3636,7 +3636,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### qubit\_start\_time - + Return the start time of the first instruction, excluding delays, over the supplied qubits. Its time unit is `self.unit`. Return 0 if there are no instructions over qubits @@ -3661,7 +3661,7 @@ python_api_name: qiskit.circuit.QuantumCircuit #### qubit\_stop\_time - + Return the stop time of the last instruction, excluding delays, over the supplied qubits. Its time unit is `self.unit`. Return 0 if there are no instructions over qubits @@ -3854,7 +3854,7 @@ python_api_name: qiskit.circuit.QuantumCircuit ### draw - + Draw the quantum circuit. Use the output parameter to choose the drawing format: **text**: ASCII art TextDrawing that can be printed in the console. @@ -3954,13 +3954,13 @@ python_api_name: qiskit.circuit.QuantumCircuit ### decompose - + Call a decomposition pass on this circuit, to decompose one level (shallow decompose). **Parameters** - * **gates\_to\_decompose** ([*type*](https://docs.python.org/3/library/functions.html#type "(in Python v3.13)") *or*[*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)") *or*[*list*](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")*(*[*type*](https://docs.python.org/3/library/functions.html#type "(in Python v3.13)")*,* [*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")*)*) – Optional subset of gates to decompose. Can be a gate type, such as `HGate`, or a gate name, such as ‘h’, or a gate label, such as ‘My H Gate’, or a list of any combination of these. If a gate name is entered, it will decompose all gates with that name, whether the gates have labels or not. Defaults to all gates in circuit. - * **reps** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – Optional number of times the circuit should be decomposed. For instance, `reps=2` equals calling `circuit.decompose().decompose()`. can decompose specific gates specific time + * **gates\_to\_decompose** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)") *|*[*Type*](circuit_classical#qiskit.circuit.classical.types.Type "qiskit.circuit.classical.types.Type")*\[*[*Instruction*](qiskit.circuit.Instruction "qiskit.circuit.Instruction")*] | Sequence\[*[*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)") *|*[*Type*](circuit_classical#qiskit.circuit.classical.types.Type "qiskit.circuit.classical.types.Type")*\[*[*Instruction*](qiskit.circuit.Instruction "qiskit.circuit.Instruction")*]] | None*) – Optional subset of gates to decompose. Can be a gate type, such as `HGate`, or a gate name, such as “h”, or a gate label, such as “My H Gate”, or a list of any combination of these. If a gate name is entered, it will decompose all gates with that name, whether the gates have labels or not. Defaults to all gates in the circuit. + * **reps** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – Optional number of times the circuit should be decomposed. For instance, `reps=2` equals calling `circuit.decompose().decompose()`. **Returns** diff --git a/docs/api/qiskit/dev/qiskit.circuit.SwitchCaseOp.mdx b/docs/api/qiskit/dev/qiskit.circuit.SwitchCaseOp.mdx index f2641ae3fc3..6e5edfea48d 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.SwitchCaseOp.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.SwitchCaseOp.mdx @@ -131,13 +131,13 @@ python_api_name: qiskit.circuit.SwitchCaseOp ### add\_decomposition - + Add a decomposition of the instruction to the SessionEquivalenceLibrary. ### assemble - + Assemble a QasmQobjInstruction @@ -147,7 +147,7 @@ python_api_name: qiskit.circuit.SwitchCaseOp ### broadcast\_arguments - + Validation of the arguments. **Parameters** @@ -206,7 +206,7 @@ python_api_name: qiskit.circuit.SwitchCaseOp ### copy - + Copy of the instruction. **Parameters** @@ -224,7 +224,7 @@ python_api_name: qiskit.circuit.SwitchCaseOp ### inverse - + Invert this instruction. If annotated is False, the inverse instruction is implemented as a fresh instruction with the recursively inverted definition. @@ -248,7 +248,7 @@ python_api_name: qiskit.circuit.SwitchCaseOp ### is\_parameterized - + Return whether the [`Instruction`](qiskit.circuit.Instruction "qiskit.circuit.Instruction") contains [compile-time parameters](circuit#circuit-compile-time-parameters). @@ -264,7 +264,7 @@ python_api_name: qiskit.circuit.SwitchCaseOp ### repeat - + Creates an instruction with `self` repeated :math\`n\` times. If this operation has a conditional, the output instruction will have the same conditional and the inner repeated operations will be unconditional; instructions within a compound definition cannot be conditioned on registers within Qiskit’s data model. This means that it is not valid to apply a repeated instruction to a clbit that it both writes to and reads from in its condition. @@ -323,7 +323,7 @@ python_api_name: qiskit.circuit.SwitchCaseOp ### reverse\_ops - + For a composite instruction, reverse the order of sub-instructions. This is done by recursively reversing all sub-instructions. It does not invert any gate. @@ -341,7 +341,7 @@ python_api_name: qiskit.circuit.SwitchCaseOp ### soft\_compare - + Soft comparison between gates. Their names, number of qubits, and classical bit numbers must match. The number of parameters must match. Each parameter is compared. If one is a ParameterExpression then it is not taken into account. **Parameters** @@ -359,7 +359,7 @@ python_api_name: qiskit.circuit.SwitchCaseOp ### to\_mutable - + Return a mutable copy of this gate. This method will return a new mutable copy of this gate instance. If a singleton instance is being used this will be a new unique instance that can be mutated. If the instance is already mutable it will be a deepcopy of that instance. @@ -367,7 +367,7 @@ python_api_name: qiskit.circuit.SwitchCaseOp ### validate\_parameter - + Instruction parameters has no validation or normalization. diff --git a/docs/api/qiskit/dev/qiskit.circuit.WhileLoopOp.mdx b/docs/api/qiskit/dev/qiskit.circuit.WhileLoopOp.mdx index 6fecaeae43f..a00b24b7cb1 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.WhileLoopOp.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.WhileLoopOp.mdx @@ -132,13 +132,13 @@ python_api_name: qiskit.circuit.WhileLoopOp ### add\_decomposition - + Add a decomposition of the instruction to the SessionEquivalenceLibrary. ### assemble - + Assemble a QasmQobjInstruction @@ -148,7 +148,7 @@ python_api_name: qiskit.circuit.WhileLoopOp ### broadcast\_arguments - + Validation of the arguments. **Parameters** @@ -177,7 +177,7 @@ python_api_name: qiskit.circuit.WhileLoopOp ### copy - + Copy of the instruction. **Parameters** @@ -195,7 +195,7 @@ python_api_name: qiskit.circuit.WhileLoopOp ### inverse - + Invert this instruction. If annotated is False, the inverse instruction is implemented as a fresh instruction with the recursively inverted definition. @@ -219,7 +219,7 @@ python_api_name: qiskit.circuit.WhileLoopOp ### is\_parameterized - + Return whether the [`Instruction`](qiskit.circuit.Instruction "qiskit.circuit.Instruction") contains [compile-time parameters](circuit#circuit-compile-time-parameters). @@ -235,7 +235,7 @@ python_api_name: qiskit.circuit.WhileLoopOp ### repeat - + Creates an instruction with `self` repeated :math\`n\` times. If this operation has a conditional, the output instruction will have the same conditional and the inner repeated operations will be unconditional; instructions within a compound definition cannot be conditioned on registers within Qiskit’s data model. This means that it is not valid to apply a repeated instruction to a clbit that it both writes to and reads from in its condition. @@ -290,7 +290,7 @@ python_api_name: qiskit.circuit.WhileLoopOp ### reverse\_ops - + For a composite instruction, reverse the order of sub-instructions. This is done by recursively reversing all sub-instructions. It does not invert any gate. @@ -308,7 +308,7 @@ python_api_name: qiskit.circuit.WhileLoopOp ### soft\_compare - + Soft comparison between gates. Their names, number of qubits, and classical bit numbers must match. The number of parameters must match. Each parameter is compared. If one is a ParameterExpression then it is not taken into account. **Parameters** @@ -326,7 +326,7 @@ python_api_name: qiskit.circuit.WhileLoopOp ### to\_mutable - + Return a mutable copy of this gate. This method will return a new mutable copy of this gate instance. If a singleton instance is being used this will be a new unique instance that can be mutated. If the instance is already mutable it will be a deepcopy of that instance. @@ -334,7 +334,7 @@ python_api_name: qiskit.circuit.WhileLoopOp ### validate\_parameter - + Instruction parameters has no validation or normalization. diff --git a/docs/api/qiskit/dev/qiskit.circuit.classicalfunction.BooleanExpression.mdx b/docs/api/qiskit/dev/qiskit.circuit.classicalfunction.BooleanExpression.mdx index 69c7cfa58c6..034c6b44eba 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.classicalfunction.BooleanExpression.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.classicalfunction.BooleanExpression.mdx @@ -128,13 +128,13 @@ python_api_name: qiskit.circuit.classicalfunction.BooleanExpression ### add\_decomposition - + Add a decomposition of the instruction to the SessionEquivalenceLibrary. ### assemble - + Assemble a QasmQobjInstruction @@ -197,7 +197,7 @@ python_api_name: qiskit.circuit.classicalfunction.BooleanExpression ### c\_if - + Set a classical equality condition on this instruction between the register or cbit `classical` and value `val`. @@ -230,7 +230,7 @@ python_api_name: qiskit.circuit.classicalfunction.BooleanExpression ### copy - + Copy of the instruction. **Parameters** @@ -266,7 +266,7 @@ python_api_name: qiskit.circuit.classicalfunction.BooleanExpression ### inverse - + Invert this instruction. If annotated is False, the inverse instruction is implemented as a fresh instruction with the recursively inverted definition. @@ -290,7 +290,7 @@ python_api_name: qiskit.circuit.classicalfunction.BooleanExpression ### is\_parameterized - + Return whether the `Instruction` contains [compile-time parameters](circuit#circuit-compile-time-parameters). @@ -317,7 +317,7 @@ python_api_name: qiskit.circuit.classicalfunction.BooleanExpression ### repeat - + Creates an instruction with `self` repeated :math\`n\` times. If this operation has a conditional, the output instruction will have the same conditional and the inner repeated operations will be unconditional; instructions within a compound definition cannot be conditioned on registers within Qiskit’s data model. This means that it is not valid to apply a repeated instruction to a clbit that it both writes to and reads from in its condition. @@ -341,7 +341,7 @@ python_api_name: qiskit.circuit.classicalfunction.BooleanExpression ### reverse\_ops - + For a composite instruction, reverse the order of sub-instructions. This is done by recursively reversing all sub-instructions. It does not invert any gate. @@ -379,7 +379,7 @@ python_api_name: qiskit.circuit.classicalfunction.BooleanExpression ### soft\_compare - + Soft comparison between gates. Their names, number of qubits, and classical bit numbers must match. The number of parameters must match. Each parameter is compared. If one is a ParameterExpression then it is not taken into account. **Parameters** @@ -434,7 +434,7 @@ python_api_name: qiskit.circuit.classicalfunction.BooleanExpression ### to\_mutable - + Return a mutable copy of this gate. This method will return a new mutable copy of this gate instance. If a singleton instance is being used this will be a new unique instance that can be mutated. If the instance is already mutable it will be a deepcopy of that instance. diff --git a/docs/api/qiskit/dev/qiskit.circuit.classicalfunction.ClassicalFunction.mdx b/docs/api/qiskit/dev/qiskit.circuit.classicalfunction.ClassicalFunction.mdx index a547c859c82..f9bbe589b45 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.classicalfunction.ClassicalFunction.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.classicalfunction.ClassicalFunction.mdx @@ -179,13 +179,13 @@ python_api_name: qiskit.circuit.classicalfunction.ClassicalFunction ### add\_decomposition - + Add a decomposition of the instruction to the SessionEquivalenceLibrary. ### assemble - + Assemble a QasmQobjInstruction @@ -248,7 +248,7 @@ python_api_name: qiskit.circuit.classicalfunction.ClassicalFunction ### c\_if - + Set a classical equality condition on this instruction between the register or cbit `classical` and value `val`. @@ -287,7 +287,7 @@ python_api_name: qiskit.circuit.classicalfunction.ClassicalFunction ### copy - + Copy of the instruction. **Parameters** @@ -305,7 +305,7 @@ python_api_name: qiskit.circuit.classicalfunction.ClassicalFunction ### inverse - + Invert this instruction. If annotated is False, the inverse instruction is implemented as a fresh instruction with the recursively inverted definition. @@ -329,7 +329,7 @@ python_api_name: qiskit.circuit.classicalfunction.ClassicalFunction ### is\_parameterized - + Return whether the `Instruction` contains [compile-time parameters](circuit#circuit-compile-time-parameters). @@ -356,7 +356,7 @@ python_api_name: qiskit.circuit.classicalfunction.ClassicalFunction ### repeat - + Creates an instruction with `self` repeated :math\`n\` times. If this operation has a conditional, the output instruction will have the same conditional and the inner repeated operations will be unconditional; instructions within a compound definition cannot be conditioned on registers within Qiskit’s data model. This means that it is not valid to apply a repeated instruction to a clbit that it both writes to and reads from in its condition. @@ -380,7 +380,7 @@ python_api_name: qiskit.circuit.classicalfunction.ClassicalFunction ### reverse\_ops - + For a composite instruction, reverse the order of sub-instructions. This is done by recursively reversing all sub-instructions. It does not invert any gate. @@ -432,7 +432,7 @@ python_api_name: qiskit.circuit.classicalfunction.ClassicalFunction ### soft\_compare - + Soft comparison between gates. Their names, number of qubits, and classical bit numbers must match. The number of parameters must match. Each parameter is compared. If one is a ParameterExpression then it is not taken into account. **Parameters** @@ -489,7 +489,7 @@ python_api_name: qiskit.circuit.classicalfunction.ClassicalFunction ### to\_mutable - + Return a mutable copy of this gate. This method will return a new mutable copy of this gate instance. If a singleton instance is being used this will be a new unique instance that can be mutated. If the instance is already mutable it will be a deepcopy of that instance. diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.AND.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.AND.mdx index d72da812b74..0a71c11602f 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.AND.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.AND.mdx @@ -85,7 +85,7 @@ python_api_name: qiskit.circuit.library.AND ### instances - + ### layout diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.CDKMRippleCarryAdder.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.CDKMRippleCarryAdder.mdx index 431292ce46b..64fc3017969 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.CDKMRippleCarryAdder.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.CDKMRippleCarryAdder.mdx @@ -131,7 +131,7 @@ python_api_name: qiskit.circuit.library.CDKMRippleCarryAdder ### instances - + ### layout diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.CU1Gate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.CU1Gate.mdx index 2d270bb411c..b8601c86075 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.CU1Gate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.CU1Gate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.CU1Gate # CU1Gate - + Bases: [`ControlledGate`](qiskit.circuit.ControlledGate "qiskit.circuit.controlledgate.ControlledGate") Controlled-U1 gate. @@ -200,7 +200,7 @@ $$ ### control - + Controlled version of this gate. **Parameters** @@ -221,7 +221,7 @@ $$ ### inverse - + Return inverted CU1 gate ($CU1(\lambda)^{\dagger} = CU1(-\lambda))$ **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.CU3Gate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.CU3Gate.mdx index b7acf81c63b..bd2813de66a 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.CU3Gate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.CU3Gate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.CU3Gate # CU3Gate - + Bases: [`ControlledGate`](qiskit.circuit.ControlledGate "qiskit.circuit.controlledgate.ControlledGate") Controlled-U3 gate (3-parameter two-qubit gate). @@ -226,7 +226,7 @@ $$ ### inverse - + Return inverted CU3 gate. $CU3(\theta,\phi,\lambda)^{\dagger} =CU3(-\theta,-\phi,-\lambda))$ diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.CUGate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.CUGate.mdx index 709ef71d1cf..d8cc6e002de 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.CUGate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.CUGate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.CUGate # CUGate - + Bases: [`ControlledGate`](qiskit.circuit.ControlledGate "qiskit.circuit.controlledgate.ControlledGate") Controlled-U gate (4-parameter two-qubit gate). diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.MCPhaseGate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.MCPhaseGate.mdx index 408320a2fb6..8aedb6b9148 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.MCPhaseGate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.MCPhaseGate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.MCPhaseGate # MCPhaseGate - + Bases: [`ControlledGate`](qiskit.circuit.ControlledGate "qiskit.circuit.controlledgate.ControlledGate") Multi-controlled-Phase gate. diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.PhaseEstimation.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.PhaseEstimation.mdx index 51fac04bb94..0a552891de7 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.PhaseEstimation.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.PhaseEstimation.mdx @@ -104,7 +104,7 @@ $$ ### instances - + ### layout diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.PhaseOracle.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.PhaseOracle.mdx index 3d27006f1b2..655223e0868 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.PhaseOracle.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.PhaseOracle.mdx @@ -81,7 +81,7 @@ python_api_name: qiskit.circuit.library.PhaseOracle ### instances - + ### layout diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.PiecewiseChebyshev.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.PiecewiseChebyshev.mdx index 6523364835b..734b684fd8d 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.PiecewiseChebyshev.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.PiecewiseChebyshev.mdx @@ -136,7 +136,7 @@ python_api_name: qiskit.circuit.library.PiecewiseChebyshev ### instances - + ### layout diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.PiecewiseLinearPauliRotations.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.PiecewiseLinearPauliRotations.mdx index 8265e664520..3a9234a8dd9 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.PiecewiseLinearPauliRotations.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.PiecewiseLinearPauliRotations.mdx @@ -119,7 +119,7 @@ $$ ### instances - + ### layout diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.PiecewisePolynomialPauliRotations.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.PiecewisePolynomialPauliRotations.mdx index 25af77653d0..b3e37767a52 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.PiecewisePolynomialPauliRotations.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.PiecewisePolynomialPauliRotations.mdx @@ -177,7 +177,7 @@ $$ ### instances - + ### layout diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.PolynomialPauliRotations.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.PolynomialPauliRotations.mdx index 430c45fb56a..e6df906639b 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.PolynomialPauliRotations.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.PolynomialPauliRotations.mdx @@ -137,7 +137,7 @@ $$ ### instances - + ### layout diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.QAOAAnsatz.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.QAOAAnsatz.mdx index 229342ce2de..3af103c3618 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.QAOAAnsatz.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.QAOAAnsatz.mdx @@ -152,7 +152,7 @@ python_api_name: qiskit.circuit.library.QAOAAnsatz ### instances - + ### layout diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.QuadraticForm.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.QuadraticForm.mdx index 3dfe0da55a2..255c0462554 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.QuadraticForm.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.QuadraticForm.mdx @@ -106,7 +106,7 @@ $$ ### instances - + ### layout diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.QuantumVolume.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.QuantumVolume.mdx index b55dcfad3b0..91beefcd76e 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.QuantumVolume.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.QuantumVolume.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.QuantumVolume # QuantumVolume - + Bases: [`QuantumCircuit`](qiskit.circuit.QuantumCircuit "qiskit.circuit.quantumcircuit.QuantumCircuit") A quantum volume model circuit. @@ -93,7 +93,7 @@ python_api_name: qiskit.circuit.library.QuantumVolume ### instances - + ### layout diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.U1Gate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.U1Gate.mdx index 71851a60c97..140f28d161c 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.U1Gate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.U1Gate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.U1Gate # U1Gate - + Bases: [`Gate`](qiskit.circuit.Gate "qiskit.circuit.gate.Gate") Single-qubit rotation about the Z axis. diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.U2Gate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.U2Gate.mdx index c9a5f57249c..bc05c76c1ef 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.U2Gate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.U2Gate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.U2Gate # U2Gate - + Bases: [`Gate`](qiskit.circuit.Gate "qiskit.circuit.gate.Gate") Single-qubit rotation about the X+Z axis. diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.U3Gate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.U3Gate.mdx index 15baa66f4ea..12b45ddeb0e 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.U3Gate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.U3Gate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.U3Gate # U3Gate - + Bases: [`Gate`](qiskit.circuit.Gate "qiskit.circuit.gate.Gate") Generic single-qubit rotation gate with 3 Euler angles. diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.ZFeatureMap.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.ZFeatureMap.mdx index 8ec06f79c52..5c9d282b343 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.ZFeatureMap.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.ZFeatureMap.mdx @@ -202,7 +202,7 @@ python_api_name: qiskit.circuit.library.ZFeatureMap ### instances - + ### layout diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.ZZFeatureMap.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.ZZFeatureMap.mdx index 63b948bbb8e..ac3942a23f6 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.ZZFeatureMap.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.ZZFeatureMap.mdx @@ -223,7 +223,7 @@ python_api_name: qiskit.circuit.library.ZZFeatureMap ### instances - + ### layout diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.quantum_volume.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.quantum_volume.mdx index a82959b7c28..9a1b73b43fa 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.quantum_volume.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.quantum_volume.mdx @@ -10,7 +10,7 @@ python_api_name: qiskit.circuit.library.quantum_volume # quantum\_volume - + Bases: A quantum volume model circuit. diff --git a/docs/api/qiskit/dev/qiskit.quantum_info.Pauli.mdx b/docs/api/qiskit/dev/qiskit.quantum_info.Pauli.mdx index 73ecf53d603..90c8a9bc54a 100644 --- a/docs/api/qiskit/dev/qiskit.quantum_info.Pauli.mdx +++ b/docs/api/qiskit/dev/qiskit.quantum_info.Pauli.mdx @@ -266,7 +266,7 @@ $$ ### conjugate - Return the conjugate of each Pauli in the list. + Return the complex conjugate of the Pauli with respect to the Z basis. ### copy diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.BasisTranslator.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.BasisTranslator.mdx index 96f17c78b7b..a645ab67239 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.BasisTranslator.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.BasisTranslator.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.BasisTranslator # BasisTranslator - + Bases: [`TransformationPass`](qiskit.transpiler.TransformationPass "qiskit.transpiler.basepasses.TransformationPass") Translates gates to a target basis by searching for a set of translations from a given EquivalenceLibrary. @@ -120,7 +120,7 @@ python_api_name: qiskit.transpiler.passes.BasisTranslator ### run - + Translate an input DAGCircuit to the target basis. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.Decompose.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.Decompose.mdx index 1cbdd90f426..f7fc70a38ca 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.Decompose.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.Decompose.mdx @@ -8,16 +8,15 @@ python_api_name: qiskit.transpiler.passes.Decompose # Decompose - + Bases: [`TransformationPass`](qiskit.transpiler.TransformationPass "qiskit.transpiler.basepasses.TransformationPass") Expand a gate in a circuit using its decomposition rules. - Decompose initializer. - **Parameters** - **gates\_to\_decompose** – optional subset of gates to be decomposed, identified by gate label, name or type. Defaults to all gates. + * **gates\_to\_decompose** – optional subset of gates to be decomposed, identified by gate label, name or type. Defaults to all gates. + * **apply\_synthesis** – If `True`, run [`HighLevelSynthesis`](qiskit.transpiler.passes.HighLevelSynthesis "qiskit.transpiler.passes.HighLevelSynthesis") to synthesize operations that do not have a definition attached. ## Attributes @@ -71,7 +70,7 @@ python_api_name: qiskit.transpiler.passes.Decompose ### run - + Run the Decompose pass on dag. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.visualization.timeline_drawer.mdx b/docs/api/qiskit/dev/qiskit.visualization.timeline_drawer.mdx index 7e6ffe66881..4384458c855 100644 --- a/docs/api/qiskit/dev/qiskit.visualization.timeline_drawer.mdx +++ b/docs/api/qiskit/dev/qiskit.visualization.timeline_drawer.mdx @@ -10,7 +10,7 @@ python_api_name: qiskit.visualization.timeline_drawer # qiskit.visualization.timeline\_drawer - + Generate visualization data for scheduled circuit programs. @@ -57,6 +57,8 @@ python_api_name: qiskit.visualization.timeline_drawer * **filename** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)") *| None*) – If provided the output image is dumped into a file under the filename. + * **target** ([*Target*](qiskit.transpiler.Target "qiskit.transpiler.target.Target") *| None*) – The target for the backend the timeline is being generated for. + * **show\_idle** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)") *| None*) – DEPRECATED. * **show\_barriers** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)") *| None*) – DEPRECATED. diff --git a/docs/api/qiskit/dev/synthesis.mdx b/docs/api/qiskit/dev/synthesis.mdx index 3216cc4c766..537085a0f16 100644 --- a/docs/api/qiskit/dev/synthesis.mdx +++ b/docs/api/qiskit/dev/synthesis.mdx @@ -834,7 +834,7 @@ The Approximate Quantum Compiler is available as the module [`qiskit.synthesis.u ### synth\_mcmt\_vchain - + Synthesize MCMT using a V-chain. This uses a chain of CCX gates, using `num_ctrl_qubits - 1` auxiliary qubits. diff --git a/public/api/qiskit-ibm-runtime/0.30/objects.inv b/public/api/qiskit-ibm-runtime/0.30/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..0f13832965bd197eacf8e337c84ded46a316efff GIT binary patch literal 71515 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 Q9p#Wld?MHX0kx!FyR2TOO8@`> literal 0 HcmV?d00001 diff --git a/public/api/qiskit-ibm-runtime/dev/objects.inv b/public/api/qiskit-ibm-runtime/dev/objects.inv index 2da91bea724a983b201a6c44d10f7e5eb90ee230..fc29e62acd4093239b3d39218f6a3aa6d1bd7c9b 100644 GIT binary patch literal 58918 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 N#%2Rbe~S78{sZ{hNtOTr literal 58919 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 diff --git a/public/api/qiskit-ibm-runtime/objects.inv b/public/api/qiskit-ibm-runtime/objects.inv index 0f13832965bd197eacf8e337c84ded46a316efff..2da91bea724a983b201a6c44d10f7e5eb90ee230 100644 GIT binary patch literal 58919 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 literal 71515 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 Q9p#Wld?MHX0kx!FyR2TOO8@`> diff --git a/public/api/qiskit/dev/objects.inv b/public/api/qiskit/dev/objects.inv index 81541a938d5e80fc73f0dc3dc30d56b1c331caf5..dc01c7152d2c882f5e3e59e4f40fb1d4885baf33 100644 GIT binary patch delta 73147 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 literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-ibm-runtime/0.30/fake_provider-1_02.png b/public/images/api/qiskit-ibm-runtime/0.30/fake_provider-1_02.png new file mode 100644 index 0000000000000000000000000000000000000000..38e5185774b827dd10f3aa0f66bc11a48ab18138 GIT binary patch literal 11733 zcmd^lcTiN@*5?7i2%;BML;<}vNd!cafPe|GiIOFYNS2%ggl41q)KtwkRVo7Ar_b4Y?O$5!{@gz3>MV?8pX+T7fN0*az@1+?7YmtIJ;q(&e zf(*^M;}JdKHi1Rj*jG&f8~CQAlnX~Me3pyeWEd;$qDDOb2&UeOTDS z$)>8V!TK;`0h+2K2=bnRE_V-t;C*B%5Tx=6C*0zlBh>Kkp?LV`?llJZ_reQU3_P_8 z{P+DCbcv4N{IB!kXw!WcBMJ%%dh)HzTxbydDNbHqO*glqZvM#6OVqLYB`&p1O(NoZ zkxE)BDymTCPZpP{{=3zvWJ^p+sx{5EXo;655U+Xf<-%ZYx|Ha{AKTJJpONygu&`GF z0b1DxW%mnugWkS1Qng&aMv)?`wLB_BbAzw+*OSkmKQo*>nfl3lUqm1iQXlf}UBdc+ zhw_IHA5JLZM*KtqgMtz>GA>B0wyP0%OL6|EMOE996x;ln#q;cjult=8keO(V5;#}f z`<{fwuO=pOEW9{+j<<-cYg?8WCGKjuKHqQIlb8DH)hi}WE~GGcdfL*DSzJ@Vw7$7b zS<3V4Hmj7E-q){R<>cfDm}k$P)pT`f8G5b;%@@yPZTZi9WTZ&hC*`^1?%~m88CF3W z<8vPi(rVAMP{R@`DsY}MR7gk=fe^p3@laY?TK|%5Z6MbxU*C4m_5S3l=XCM}5{cCQ z!C00@ukd#3vnq-~ukB0+2M4B0AA94FcJFl0rQqP;>B*LaEz)w+F?#xh&`?I6JMUxT zjQ8NDTowj0^YR2G*83bo>LbKmv(^>{v(bmD#8VXSto1T4OOi>Bp1(fro9-_u7aUa1qF$@ z&PNJc_Yfl^Ps1v3UAdxH=DvDqSOvk0c4lZNz>l4$TBQl<>gq)Mk#DK*-`}QZS9pWz zejqHdyD{QE9%kl5+OW^J?$w0%wRRce=I$upy!o`)b-||A*zSZca=BYMru5UNPd$b9 z3E%uqC0FdOW*?-X30%P`55Nk|Y%Gpgwk7$6i`ZthB*@AWo_Kp7V`a^*uU8OYJ%|Vv z9-wDWfln0`6|JqQQF-tn!?Y2~i&Yc?!wpTFBe*?M$V z#jZOWJG<~hFW2i7b~#p_OOn4T_xP{5|NL^mdZ1KW!edQvj32?LbMf(Yy*H{tE6||K zeX8Geu;b^~*UZai@EPylUqm0BOq!5d?KX?4G0hDN{ju6jQ+2Wauu&2ok9RL)_!WE2 zThRXJOq#Ka2x9ba|1= zj`W2lU!R*4<~MO+2!5+0R8rtyPS$@OXWk@t148YO&LJ9f#Vpspch|2FcbGbgZ*NzJ zP2C^8v1$8zBGkziic75wVJ{WI(<@1W;)h|wgmDMS8&&Q@xAanx>{nGXAGi&&m3Kud7SHw$y4sfy{qllSR_f z(}i4S?=*z+-xwGe$k#C){`_pK!Pe^>_LaZCX0lRLo@GbcmhS-s-|J9A`R0Fhl>Awx zvR=J9xVgP8K7Zo$>5RUDF!y_H z&-K7BH8Q2x*rd6*xcqw)6BBicol-HW8tIy^{QNqgDxJ4hEU>MLBK^eJ*fW`TK79V5 zprGK}7%hpTxnN3?_o1`E%_BxwF7Cnv{gWl{yJdi5$E z%0A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

`Z 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 aNN#Z+y9!AqPcv}I3Zf*ZDqA9L?EfFtaa*ha literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_11_0.png b/public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_11_0.png new file mode 100644 index 0000000000000000000000000000000000000000..ac133e523410ad67c1deed4d09ff2315258fc361 GIT binary patch literal 7004 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 WcK8c_0uH($5V)MGY^k(Sz`p^pu|r${ literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_12_0.png b/public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_12_0.png new file mode 100644 index 0000000000000000000000000000000000000000..94435917b970f30314b7017a1f7ac2cc20d1cdc7 GIT binary patch literal 6991 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 literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_13_0.png b/public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_13_0.png new file mode 100644 index 0000000000000000000000000000000000000000..cea5147eb1c751ad69fc214058cfc0ce6d4b7f97 GIT binary patch literal 7246 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

ZbTXc1f)Sgq`PD7XX*d_ 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 literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_3_0.png b/public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_3_0.png new file mode 100644 index 0000000000000000000000000000000000000000..ec9c1acfb6471b0872ace29461f6adfd8a9e3149 GIT binary patch literal 21200 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 literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_4_0.png b/public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_4_0.png new file mode 100644 index 0000000000000000000000000000000000000000..ec9c1acfb6471b0872ace29461f6adfd8a9e3149 GIT binary patch literal 21200 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 literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_5_0.png b/public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_5_0.png new file mode 100644 index 0000000000000000000000000000000000000000..98ce16c3a34a3fc57662312e7766ec5663b53152 GIT binary patch literal 11208 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

?V_KWo!*yct&fmYw z{d4dSftPYdaW9)*y?T{pJov5NSI zb|bWRbs?pvr<*M`I!7$+N=z4iC`Th`K0$w;R_`CBuHH7qL|uh_Dl8H#?Rlf$`vd*4 zz15rW=DTkV5y7%y<>loTbt)}aYhfC-Rz$twM1j|*+d0k6q@dBmA|rdhvm4SB&dyew zPq10fbH&wJP8H${3JOMNWZ0fmO`u^ADjkfMNI2NB6rn4&sLeEtpcN^u1%9MW$%jG* ztL8XQ=2Hbep385dHBBM3FD;QZxgG{*WKg7g?9vN9+?~S0!n$g$7ls=1hmxn%!PaPm;E3HD{r0Muq+(Z-<6jdWzA+Uarfm^N#46J95^n>5r z#dPB`y$cW$qi4xWM2{?mS^xivl4#kLbi@Ex&&{zRF!PZ|AO^Ht6tyho! zmQ@X2q*73*5O0?cK5>wG7f9m*R@Nu+tsGRnmvLDpzr~AOAVCtn}Gz2s=e#ydkPpHTR zFyN&^y@T4?luidw1sx+t0H)QX*v%kLmni%Y*w^Rcu7ArV@MCi6QO^QD_m$~YV(9Km z85!eMj4L&>eca{9k3m0XSCUU*awakozoMmz!B>eSMum)(Y3VqNBF!OZ=?TW$HY57K z{2Ge_xMOj=!z3HsO|NK%2cdy1LwD7-f9TVKLFkA4__uFK=++D~VNpTYtE|qFMuCs7 zB7bz|=kS-3sYy57UMIm0ceVH7QRsM$*psKO{ z1`0&~%w!>ufGW;Vxx+O@8G1_e;S+L4=nXEb3-y1YvW9@sfl>`s-+db6hQ9Agln~Ock75wrvz%4 zF&gNjfKeBR|I;h7cy6ypfi7GEY4w@C34t&$Q0fjNg#IIBy;(;*OQ{vR-v2-_hcAK& zURQ#N?u*-2@wi}?AzeIc8w45UM8=+jdiM71wl-LHZ!4adLN`jb`Fh~K~A(-O(pD z--rO(#UutPzXNhmP>@EA1%7V?39U1~k?6h_Ez|;a(t;b(J~$}1Cfonp?Qy@>0|El< zu1}01Zy)aAn5UA;#n!m7I6w`FiMZW}dtdIjt@ua_t4v3w+}!FXU&TDeIm~Ktw!%;u zFwz7@b%U`?QNUfI8)+&jBV+z|Vo70M3a_oK4kC^+ck^t7)i>R;zRkfzd%y{ejE(=? zobTo5=liJ?d?_ko1aE^)N*X>krc~e9I6XK0Qz50?eBw0?=%0XcDV&jD;|P%krdo{v zDqHS)sJlO3^NiPKG2gkR>nj#gzK5me;c^SR+tFtyK= zUbuOB@-DN!l`sl08Lvst$cXy!gU0Fa7(!%Zq}f6(^9x*DWfhfxoryegK-+J2@>CLK zFn<8RYdi=#&o9QSe@%zG7{_RJZvd~|8cz8NS_(SP zNd2y0(Gs<;o*on&9Gw2);hx{QaxqCsAq#c3NRUS7z1P-Rlaw>1I$bB5gW$M1mk0yH zQ=KLk$#?J2=WDH>NlQxuX0Wlny$&v{cRPlvsHiAuYhyt8T>p^*iga`~@gB6ZMY?WU zh2$>)?C|a!N*YDBcwVZd@H+3R%BKm`3|Lm69=1&*Rb?Con>${v?+w2!WL~MV;4{e4 z%IW*?$!^QQ9~qw~TmkKoD@#QXqts|cBypOqrMWKqr=*bh6|(&1UGc(Y_&61|+T?P; zU|(ZYDsq2?G%zqgM^BHSbiTYI8i=ZYb@b=x{Jg}T#MjsN>h?D0eTMLNF7p>EA3jv* zccDI_E&yCKT0CmTZ@>~=C;u02D2F+y>&x@vNz2{Q<@?Bfj&1~!LoMHfnwjXhxIlG1 zZ~U;AtUO=%ARrK^z%pr-5QvJ3+PS(WmaA~6o0z;NVAe81w+Bxj$`GNL_^D9D-A!R+ zYa8VQzoFviClU|FD5$*yeBT6yJD`!P7WGI=dIp{sZJl!uVLdx(zvc9Ro^N1!oek4J zVYDJl!8`#GZvekJf8=@Dl3^CwdD2njkitg2!-ki4A^WF_+hU^Qc+P65*~QB))O{cZ%^&z?LA(kUiP{m zVdxYH6*>9&=n!mj@<`1plMe7k`xoTRAS%$M4X&B{K(4#dKn2H;P4|E zB2kfKZ>HxJH8cnr7#N01b66Y%gN@Riv(j+ZxAecKpH6?$xJ}#vL=W>niJooU|3dT* zPshsH=#(_~PJEGr^o!LQyUr?&jcjntB~&Y3{kpB2lQ(vK;%QqP}1uVESd^{X@J*~hwQWK`5_ zkQpY2d9~PRg}p-=Zfj4N^jb+FM|)*$(?lB$4Gs04m!)$xlai5r(L;{BYgXNVw*kBWiwnnkLbf9AvYgVBWN1zrI{D;<5GNTQWoOhn6fi#LLX}d$j zKuAb1d6Rv*>$y9DjU#~KXHge@`?=<`mD?PVB@|(0%Lid!%-=BmZp~=(O*7q492t?C z039#ba3MOie2$WW&yI2=T__AoxNrt#o zL03WhJfkrLt4-iZi*9%GXq3LP0qf9rJb&XAW5MQ_ul08Kg4(GE7CNPHH~MaG`rsWR zPTj7(xD1OUAL|Q)I?!6Gt>#{+m+49Z^55vR69C$pgtRm@4Gl69Dh9+)t1W&&AR#f4 zq%j*5e9QXNcD!>;K=j1LF-7zmod!1GI5E}82v;VeB6RqOKZoW_>!+Bm_df7B+`J}u zbs_Q2Z$VtELKl<`1O$Xfom48E5COCeBU96^!NF&YYQ^n9aI@DEug-hkI-&ySr$_+iShnUS(8b{pHLic9q zXOW)ix+8y8Tx{9*|Bm67z zoymwXen-K~uE5Oo=P4Pl@?9g`k4Emp9R2Up3O#<>STF59DlqmQzvAhywo+_~Yj_G% z0Mr2NN`84{ZjR_tO(bB_@aqUfOF7$j3KH{|CU@`N@P2{Aje_cqd4%7RKLw zjRn^mDeUiu=N&F5{Cr;7e1aC4+oChPmz1w5Y?)S^p;FL&b-d0zy)4Z*om2k<*@lJX z`*|X5k;10{m4fPbZzhKt8i*A_6Dw&LB(z2p8O&5N9*q&cH&f&V*}8gg4S=qiD?)EClHgY}Rr>*cQVwmX&;&om4 z7Cp3!`8N;nJz&K!C=am`y6*^G+q0!N&$8O0pTw+hR#IEkj8X8T>YUK_KAXQnI+)io zq7cNVf>uHU^3cAF!~i_cGla`(B*yE=Gxm!_jPY=H{jX7w#HtNSw`IfIil6f;l3p0d zqWSu7CLUpDarjB@&e(|i%X*#9&8sHD-6_|<@gxbTot_37ESiPY^p!e8p^VhXSK{Z( z+U-R_ley7BPtrOwQ+Y`Os^WU)HvoT*!GD2xmvwWb^VfGC#aoskvz5hJW)dQ%f%ZuC zFo?{?vC#lGlTed8GRNGEmr)YDNoK{Jc z<*uj-T-|yK*vgmb5@KuKN8^x@79BB^@x1;+0Sc*hCMhRkGALeYCokH^pZsE{{=pJM z)6M?>+F!Im5x)6L-QD{LU?^skB6U_E%Ks<60mWi95KFin7%epR&I*PAY!V84 z@j+IBSrK1P47C^`+)#U0HnR>$0We+I&4EE`zavZT{EEle^2JOC`E6cwK%A|lEcF2vd_Ge~rhDb!q_!yn#4#)R`R@dCzZ z&Os@_1Lhzz0C#{^xgGbsRG3%9MmE~q(4VoDw$#?uQj08WT~Xev7Nc6-95AG4%xG?I zwpbdt{CRqELWAi5(YRe7&7a)0(7q^tz*_TkkuocZ@||q$vijtt8-`GEuDdd#7zFMrUXZ`iM9%;3a|X(+=QGWR&m? zIzUB|eUW5YYDM6mvZ|_)OG-;q5H(Z1b;~pvKPBoiv*7O11&M95KVWm~C3VZ4z)vjq zIJaQ>REy#JaJw?hJhQgAqiY?lb1}UG|ff$L^g`64c~o|kPb?j zbScwqDR)0Lu>wW}xYgroEc-rq7d4$1Te^8Vh5c397PxR>kS9%2I$VZ%0zy94;_2#i zxJ>5m?tZmjHTwALqxgqOp9JeSBE_yo%%+?6Tq-VdM?bRuSXQC!%KI{$?DxwR>$#8X z4yLqd;S?8i$ecDc#OwyhpnL0|xF}ekWx5&Z42vt<%R~%HW5Bozc-PXud_j(jB*9TO z)Q=u~SMd|CsC5N_RvN8Yz@15OQHP>YVMdXP&$9w4GNWL5^Y$vb)y~z~CS0W?xGD$f zHOBk)#JxK8Ptyh7l-W4~GD->Np`oF6W{0eN4rZ*OVNc69(j;czG(ej_ajo5O?|VFr z{W_S)x}I3FXMZw#NXN?D@f(Hn&)WElG|%1~>FRSKuFzzHKy9fDxDTRM$#dq#rPY6G z4_|x2$qA$6)Wb(*DRxLhS;)kRbL5LAsPZw_Je{O|jZXx-k0?GT6sgY8Y{6038Dwpf z08S<__ApOnxgmDX-1!sjSGSqX)_>MD>SI=70Ity8E#Y;4y)7m5);RZ7`}tnIlQ5EJ zt!=xZ&>M}-50nMwcHwuz0%^}dVD$iTb-eH+BXCnGfyFHT^?46Ke^1g%x4wpR1sN#N zt4wf0AV{}oZ1jGqq-1RR5&`=26HE9xXgp;Pf4>S7M@%ydVNR?Ep9Q8QTuL$NG~%%~ z9|b7GMDi;u5q;r%ddJ6o6ukPzlXzzyLazbk1{%f;fA|M&Rlh!RPYhsHTXydDC!<5r zZXgiXe~TSJBB?MPC5QO6wTaAEn+Gl~YHw_9iQ!4&{fDvgA@-&geu?cP_a^AAFU8&Y z+_*`a%>8y7nmyYASGunU%{Kp|{V8THQ=czT;0UpIURj7 zif`K%ua$x2Q=6@%nxzsFce~2Ez_gZ@Aja(8>FCtY(MbLM`He6pp4$5;ZtkFlrB{B& zy}dHJwYDpfALWJ@T+R$zj)5=ssg}~hK~i0Dt!?V?dvT)r>!^S_UJBmDRJML)=PVM4 zn;Vy6;*SQyjmwOP?U#7^<0pqqI>ee;`$Hl_%PzOeT&cq)a0b`duV++l?A}rQei5g82Za{$7bPSBUHDKIF{BGqpq#z}+UH0gC_4%P}L4N+H^nQ-n z&Qx{`L-x-N^64l3R9W>7I{`8aJ+v79O+`Dd)6r+d98x0-qYzRNAJQnn6ZHN4{b(R< z!C>eGa%;10oUWU{@SXOiF#*Rs*IEI7OQV~Epwho?8Kner4UiG`)og>W zjCdiyZtm+2!By7O3;}52qo>$!AkS5pjYH$(xfBwO#nacMY9B{LfY}^WwAYo9ceu6| z0QQr!+j{8ePgjMLIlR=v>d`i_-JW%G?4f*kXuVo{24-nifph&hLjgQ5Fqkl2YyIi! z`dS|h;^Y?>Tg7Vq6Z#+o8b+3=b+S>05wMwe0)fhrsn_P?Tv}zjA`I@prK3M-WHR*K zpTg$~AuB73n?=1q^*f(E6pVv>;jzBb8P~3`gg@3BAj9+m6W1OLuEfX3w*!_9G`{a_ z`iMW}lMsz@!#^G>DD*8)I>{4rV(WJxM6`-j`T$p}cXz7D{(Sc%aHstIz#sqz3efu! z8o4YGJzB_tf7Ba{Ndo*QEHpGUz#=|_qH%P38rLWoOBlE)o3K*i7uZ79G!+8NSNzY} zv~|M&d_W`lY-*~$$K!gqEGaAd6o8@V=;+7UfM<6+M$hF)pZTCB^MZLL?f_7z zvw$c9<}Sp57+L{bQsS9~21nXP*TYD~Gyw#NuFth`@u#|xAKu;%@JqLy+(ZZj%-sZl zstVZcS0F7z>FCgbGy(Agb>%VKfNu(7u-y*<$?f$tZ1;d@V1XR{<` zZ2StSa1rzM4x3L=pOeCBEN9k|Ow&7noO^V$S7vzmZ^_PqaL2m_RuIq z2oDUsbw0)rkg14U{qUcnfc22K=>y{>J3Bj=g}LB4--W#e*4Ea_O@@g9E#}S_Dx~m1 z&8G*fhX#+35T@q~pJGb`oLfXhBww}ABQ2r^NDB-JPc3TZ?WDe?rA4&2zwK&#Our(v z61(%=sb08o|JoH%rUy<)f40p^EA!3GP3Z0A;Y&$nJZFJ4H=r~U&$KvhN6vz#c?{rs zHeKi%V_7qFB$a>S2V5bEL(*$I%@xc}_5d&zc7K0wASoF{7n)sfHOFyW(MOI8G%yxa zG_tfDy_|CfEHP``S52h<3 zvt_qiqQ~jZ$4CYfo$Ea|5(=57qv>N7HBzUKH4=EUvY>%+gB7nR2lfmY4xI(I(*G|r cpcO!cw57sG@06SYQ?(EoNkxfLvCjej4es-OE&u=k literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_6_0.png b/public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_6_0.png new file mode 100644 index 0000000000000000000000000000000000000000..c03b812054929c8418fcdc310551ecdaa23d8ed9 GIT binary patch literal 7598 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 literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_8_0.png b/public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_8_0.png new file mode 100644 index 0000000000000000000000000000000000000000..7e240ab623652b0196a8ebcd3636a81cce71ebd4 GIT binary patch literal 12759 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 literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_9_0.png b/public/images/api/qiskit-ibm-runtime/0.30/qiskit_ibm_runtime.transpiler.passes.scheduling_9_0.png new file mode 100644 index 0000000000000000000000000000000000000000..4c719a051af09e86961962dda85e71b1351f1d6c GIT binary patch literal 9282 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 KtNB;V@Ba@Ej1GJN literal 11593 zcmdsd2T+vhw(Sp!0YyheK@@Pb0Wkn0Ib*~I0m)fJBNgWq;dovezV<%HW$=Jog#@@xo^1>cBQzvIjdpkis zalRvm_E@;MI5WQNo z9#JD5mvl549xqS0?^_psljW=sMc}Mlea7|J#Qj^9SR}*4XD(XuG)|mpd@Wd)Y@Sn@ zk{%sy(Gc+}Sk+8DJk+y+S}BR6RG+hlQufHb-k`&HIlYTB`Uij23EE+6`C@I~mHEYZA)hECgN@st**Y(J4m2c0NMCxkFg>u3 zdNVkmKjX0ai$ro-T4Ox*u8@7Fl;@>OE5kw?SooT{Lu5xiI`Zv} zPM$dNrs7K3R-$~Ss5aQ|gu|93BFbj0 zvqV8rv9U5}SC&}q&#|(s;;~YFUteFP2OA0hl@R(b7kBR5d0_wkvpPBtC@JabXYTT- zXjxjOBq~2VP$3W+5s~WN=~>kiPY?&Ynf>o7J(SQ)NJtJ^zB9{7>3b zw-LSOmX^V1?RJ9VyhQoi{e+Uu*OynlhO?{qia(Am&30*@KOZaeb69X`BE(MvuiZvI znW`xea?a+08!H4P{|LtdcrptRu}32sWv-xZ{v#7nC3lq&%L_p*gVtV_=U%O@hB8FC zo*0(eftr$%lGA3R_sk}oGLT)xp&ldSb1}bt`?hUy!qzQfiPCPv4}53RjCc^H^~P1_rO$4tL~GKkJXmUG~X_#cs5C{IcwMbLRj*f7rEa*Ua8McvMgz z=Cd@@`u6SHhVS)pu03zIczSw z0lskaY8ux9(&{kv=8YSwt(k^-#uWkF)kB$oUZ1zRx|;3C#p{pb;`n!onpAG|`O#)B z;W`-F(9qEH_3NW;Jj%(5iKpo3=z<3>U%8^Gqw_H|yJORz*EIPnH=OIFXLGxad}cIz z`}?iQ%Po!hWli1bGwzgKY zDww@@U?3$Y=SbDu<;(O4jj*eC{xQHx!L1baq|~QRHSm9A?id(E?Kq?pOTEiIF#fe7 zc;K0RSEfl-aLT3GQCfVqNtM;|;yf)rJ^hdmVtX?rM6_4BU_%%mvEsGi4G!48b?e^Z z4!+`!Owmq{ir)_B`xA0gn(FFt>$hc+;# z5n_&yckrKk$4+Q}&0(Qi{(N{(!|Qgr(URHDn#BGczYrF_Em=lmb5nh_ky&Df{qG;% zi;nJGeIsIXm=wK3g1+2f#o;{!Arz&!!#}Nqe(Uz_369;B1CjQncPMsrbi@}Hr$Ti? zwv&F+xqn=Cas0UJP>WK4@%NGZu9gn>u8gIhvn!8#d3bmZii@{R6y@ZorD%~%;0I2@%RmwS7A6A;a+oUPlo zxz3FnZ)avcO_Ol>9{b<{t8M3V-7deC5=x4E2nXZ3bp<_RrsH2;kV&*@x7Z%)zX#AD6nE2?<<~Z(bqh8E)!o=py}mVB|JKQ%?hbQ77GRW!7C-T zNUOL~UtgaJD9ki0rcgy9m8ewer!v2?n>TM#sLRXCgI#51A~qjmQ&SI6)lQuF1A)kT z_wGzpP5{%cL?j>{m`c;jx6AnTc)ZwCYfSj`MJ2hU%)a6tq45*4+Z zsusB8aOi^v$v!`Sq!bkBG`y~ea4R+(YR%GibF%w(ZZ9l2l^uQ?CB;$9@Xsgmr7C>pM}0FLIiinwE9Z(liSCLeOq; zwZg)}1H8OJ__XSXo(7sH&=}R?VsRp4qnd>9kzmvQI-tCwXzvn;P^} zii<+Am>um1PAe*Q8%a%0-k+hHdnzw4j}|ZEv+$;>O1?ec-u=+QUw=I+AH2K%&OUjH zp|`^s8=Leaf`YDn?{-qvQ17Pl>*l2lU-b_>UXW3#y-__5BF=n|(Y}!am zD-jpBLNANJqH{Ga%*}mAmr%!=xONAL9*~voa%4XLrTq5@LGxfF(2$`Kz`Ofe+;4M7 z_7E1!QF(O^41Dg4Ulj8Fr6yi&3+CpdT3T8TelEl1z(}r~fG2<{#Ki;S>my?^DCB}{l zCq6jfA^=MRzyB3~F<2In0~%B{YD997F!x`Y-2A6uZ+yB0jYexqQsHbHabsea&_F`d zDC`n0rvU?6Aso`o=(eap@xB!M-RKvgfLAWX`xYpmx7F44Pc0jT9KW5QHiYu33wcgn zM0s0+LIr=--nACpvzNvYiT>W46iL_wQTgCc3$(CY85PVRtrh${37^ zp_hq+2pCkyg~+4=nW;3bOoNoikN3I`G@Oi%X4%(nBLWCYdGh3JX=$nUZWcB+t526e z2Q>?A=yaZ1+@TCy*(~#6dZ2OUTOhxLX(8ILg0iyP^UU=0rc})|3KfUl3=C`pbZe@r z{z@(Cy|2&A%-pkoAB}m}t~7w*0Z~zHS`Qu|)Mh3nHMIeNwL5Dq6I=Y-w+dBxo4{1r zWV{QUoSa;yzpGN!P-$K>g9*)P+Cwj|ZlF=n_W1evO-)V3@81Jx0r%5lW94W~kB+Z> z{pytk+SbDI&oM5lwAb`mIXQn3yU*Vr*#Ft7rzg;<f^|@qfW+ri8*yf`EIvp=R zzY49X$km!@=aCb-y1EjclkpT@F)^J-j~?ljc;%UtqLno_HSOo&k*761KDhzB#Hy>* z2VM0(#dY+v?*C_)e&FE2yA;=vPskEgy(D{E^ms?Wmoosf_au%S^Mtz*Y72k#bt zyiY#(bdiV9Z=eC;;o%a_eYYqi5k8^^|%i>nSB$|wr z0M{X7Bqc3v${JAQGVmD9HwDd#k%?)k%~4yD{ufr(?{lW@tl-2#UOQ)aJ!Ue8io6Md zyTyx}Tw7!+wu{ZM`Tz09YI)~HZE#hE)29mtk0{5;jLd~yqa4*{(|f6Y9YlAQbj<%ty$_w?|1 z)751J;&~5JN=;3TEb-cKL3!Mzrj=EyN$El*9pSGizQjgE*8a$?5Il0E2|P0Gz28)= zsF9QMSd!O|Vb5yMh=AZ#1QBNCLgz8x8#Xgp!>?FWFvSUeV9FH>_Ur2Ex)8E57gCvt z+Y&n(x1l^EzcY29kt8rn11f$E0E+FbtRB@ucq|RDiBmyr%^#b=TX`&8=&px^Xru4P z2g(!C9^cku&GPDB01{@po2-d*9$y*E`N*f`Q7&8O0B*4`oLi@%q0!^2_wb)HosOhl@q2&oIyxBUFaSXUN{k+RcvV#;>FkI= zOE_B5&DD37T*|X-$;>v`mlRF!0o@~P`j(j;E(g-Z zpPrtcY$S(ub54MhDNw17{|KVTw;Mbfnwkk@bn#hmF|oL`MBax|giv*O8cM45%>Z&1 znV8nK*e5FCF&^73PJI3Pb#mMyXN(=nP`mzniIbUGB2Z?gS=(r7<*Jv*{v$`!jt6X1 zy?8Nx8AAU}W1~9oI>-g8qFpw_SYH2a zLPf+ybeR`xIiC-@KomBkL$Vbkx4x_n;v=d;I9ruOJ6xIvia?3+v9KFTr+ht|A>r-g zqp7Fo)jWXc_YMuU|FeRFf|}(yeQ*qvU;4+7AO8si_I^M04;z&l2%5jwu(cgA?Y6eI z7A9ph9>;4iCF$=M_T40>rbZ*Hy*64}ABI8E$g_4db_(^tp+ilwEAuL3!0TjJp4%0V zJUg`(u3}Js=vumx@s}Iege-0^PllE4M=^qv598@r)DKEIP=Sk! zYXD7N!tvW5loULgRsG|uxmtjss8<6a^mcd$e%>?u8iD8eMz{1IYL762D*wN60B_f9 z_fLxUQh4#=1zZ=fJI9TiH*L}aT$tv!<7WmHAyN77)G+)uh~ey4Cx$N|IIW3FkuGEx z5E*S$k=2Cs1!EGj`z%&9&a0kiG1*fM^3e#MChYj_755o@MgQqk-P+wK!4bx;W=ZRRf7c8{G>v zN2S%8sY9PLZrD(JixC}aN=Q=fxb5cxRgj(3l$3fnDoL;+EPCJGEAtTlKjetfbnVC!psoQ=FOW& zK4w>Brz36Ir93{UeqLN$gbkT->(<7H(wDSo%p4qiva+(apPp9#)A7l5WFiJv|F4y!-c`2BavcsJOpl!3m0rB+y|M8(x2V05<`4Nm_F9XJ-@be2a>)AQ6JyXR^>gQ4)XyqT< zPk|r93#)X@Q2bZLPirc4His<9Fe*ETrc8@JSK>u7rB6AgfhM{W6BCf_^)M+YR6I>R zNN%2OyU0TsA3YlL)~%0k-~J`Tu(;*7E`$x$ogjVb$7veyP}r&GbZ=iDy8Q_n^Dn=| z0?MuMU`UTU6l7b9W}4QgXSR_hy8BMuI%{nFXmVzy=2NLpv5D^b_3I^^dai>a?xk9_W9=djyP({3PTGg9E8xbrEfeRT_qWaVfn zUZnWWfJc0WMHZm<;EN@LUT|jF%WQVtbFaL4ia$<L1^_lB@u~d!XIxx zsFjRI&F}Ip{`Ax`ZhG2r^?c&E0d)DcwzddK_e}WVNpbQa5$sGBLTDofM*)p+ zcczgKiX>Php+ry#5m6g0q{z>IhdFpEcsE%ARN7w>XaC;4FMBS^bz{Y1Ibc1v#;h!w zBlicuP&E}4ZrT+Ma4Ur$Ir;nVzeCZr;07{3d^npMM_;zioeq?-$bBpmrEe%A#l`jd z49iIP#`yyy4ZoU#ChIr z+-E+(pmq87YCU`mD((66=Oo?Uzi(efj|=g^Wj|rj0u7fzqiwAk0&yp41`OVMh#~e0 z+2uKtnW5IYKmH)jZ_1>T%hggaT8Kxd>^A z$e#?{5zfv+L~LXrYCnO=rGrne3>ScW3p=tA4($K^L@kNG}@46?@H&W^9(3D<3}XunhvV0l1Tn_i~qh z4A+x+BfU6YVODjSx}Wgh_1nhdX!5P({oB9|1i_faWicZXt90|}RsZriT2MV=TBY-(<{Y>1~uh}uW%FQw%cCTCdpVjW2tqP4)y7WVzWEG%c&i(J33mm&ip^_V? zdkW*n?mGU`xyM_#Ze@l8cVX{?tMvYB+Kb(@&_t#`JJ*G?zs@1&5Dg7#>|zdbG#AV? zFknc-poE*p`ax{$9+(SanNnk|Suw|s9Se<&w01f&jIJyrq7{r%;fz80TM4TQuV41_MIF5>eUx+ z?t-at1k2mY9A4jlm7e}^+^nj=j08T6dNWCDqN3tBFE4M=Kw{*(U7p2tgOl3zFo*QF%X=L3|#DUo}HER6^c|RP#S8acjz(kIwI_E z4pi7@sH*eN%v>4w{5x}Chg}lZl+Gvzx{zmDvm@6;=nd@UcflX__lUC0*Y=N&{k~`+ z(n=DD0PDa0#^D{gZQ`y&-)jRKKSE2MPT)qZnV{t5gzTkSZEbCHx7CU!Kd%H5N@vy7 z9)koUvr~b8V0Dd5qM!Fv2z>lanC_V@A(Y!rbiB~FFG&E>rhy!yS0h(GfL6|ott^iX zHY5bLO=N=RpFz}?PlkMP;j;0YdMN96ZkMQ?21;Y$$4J_bk#@<_s&0ryQX{r)i4=Y& z>-%bpKex#Fa)R_BFf-LwQVIe}CC+yF8A-a2Ho+tjvTE9&yRU^T6LLDk;qis8!}sS1 zTALOqF*(M=42?7;!4b`>p6`8DHa}X}&yi={s=RhHM-y}jSw8Rtmlj&f?q9n$6mw4s z(gKypZEtU%8)vZXne6V3Lg5(xR@mk5!qDxx&1aq%?+a(bkGvMU^do(JHJcem*p;N( ze-|lQ#|o-mUvkOaWcXutB^1}irluy=EnBu!HY6z4278{wlOsMmp#t2W!}k`&(D?lH zSXbAR_K{Q2V>bpe?S@)10feBFqH&ufIMh(0y#d%WFF0dJ1M;@ zqphvES(PDdoG{&UIk_2s-n(?rzss zL-zrA9Fh9AEAZ+uZ&09JvRk>v;dL6b=__QXXiQQuI`Y1zMse+?-2yy1t6T@0s3eQX zt&>SZ0uP|MB1mD-+leo(tR1SC=M48;aVo)_`Yr9jUmV!5aQD(mzHr#$6gMtQxjx?SZZ6wJ?yB=hUl^8z-a#vrH@NTn2Q{ zekrNXhx1oL$|O4+e-_g-%55Vn1XHazq*5BV|1J@mvuK^B_<0746JLUy`@a_s3Xc zX9cW*2GV!K#Dod^2xypuJHMXoW%P~cYHx2>{f10PhVV*8wqUOh$$q(54J?Z1bta28v77PXPNSpb-HbcA}fuB`&Jv1k4vM!lH1E zT(mEpPc+VLyLJ8gIukS&vfN#&o8QBpIAv;@aAW;Y>+MAp1vmHeqR>$0eKInga|=UR zLF5jP0-QUDZq*vr&C=7iYgQInD|_d0Qri>q^1Hz9L`io#x7)BeLfHBiywqLjNvGiE zadi(44xUkHc95-IX-r$L7u!u|L9ZCb*ZlV0!5Ih(LlHaNs{~BubC*Vhx6y=e75DpL z4DC|I?r!nw`WBKXX{GBtLR%gRmK?o}(M&^Q; zt$G5&^yk(lL&JwM*!dAAP0wv8z4G{EpuvLBIS-EljJ#kO#{a%*?I6~#5$cLG2A)0@ z!d{Al&@ICcv|aKRNg@HPeiuC8W-z<0_0}ymVFe&5nO8gb43fz)VZo}kn+g_<54yiM z0vEZ)>8nGI`@;APh0NdYCZz}NI1GE%(y~fZflduLanI;{LSVloxwK%SiUD0tHHR0V z&@g|C$7Coxbaar7=7;eicS3OyVwwhgSr{!Iduma?H_xhBVP!sMB}HsD6p9W&cb)r=;-K75;0fis$?~Ebq8`{jNR+Tuo11b&2OpI&k~hQj)lp%Z`tzb z<3}BkL=v4b+B%DQ^gA@1(P+QEcj2E(F6F~P!p0e4?>UDcEC42RWLLri1qhpVYeK`AA>SyUPmx*KbK*1^ozZmby8_UbHW!CeP zy`ZVAxH+eH#f!1??QnGJi{0(xo<41YmJpJG5bK5kE`;4yL19L|ZN2Lc${@FDofGi}J*t$R{cK{> zmh<`#4W?Fusj-gYR#s`Rr`euUX4}++ql)`QH&&4I20&|Z?cDdckXsOJHI;r)E!^=| z1%0%YF~5~!RRaTWs--LjmyST~sh7h3#r^KC2CF^Tu^-9@yM9_nJBs;ta=_xi^w0+r zJZ>)Q2YnG`Ff>UvwA}BvTor$jse5#uYXIz63wa(2nu+Z$R`7ZCvM*ev3{>;PxXd@Q z)N-wmf&>UiQum1`QQ?B-R)BVHp7a=8)zeJ$cHi*g{8S~J;UEAMD>gSK-HC{>!o-dh zxp)d&;)2i^K$5^QQR3G&bBb_y_H3yd0y8qf@k;B)^kaU%b0cCUF0`;(` z;4h&3wXE=O%OJF+dxfJ>584|V(ZESEP;$?oAGr*Kv5?aT4p^&x>z0z<*z+NSZeqi3 zgaPav_zy`?2a)W(5x2VxMx(nl;n!gM%P3U!zjz#v|01*hn?1lER#vI3T4Vmqq>Hpt O21SE+- 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 T8{<0<*FmsSiq~_l-n##9)LzYI literal 11733 zcmd^lcTiN@*5?7i2%;BML;<}vNd!cafPe|GiIOFYNS2%ggl41q)KtwkRVo7Ar_b4Y?O$5!{@gz3>MV?8pX+T7fN0*az@1+?7YmtIJ;q(&e zf(*^M;}JdKHi1Rj*jG&f8~CQAlnX~Me3pyeWEd;$qDDOb2&UeOTDS z$)>8V!TK;`0h+2K2=bnRE_V-t;C*B%5Tx=6C*0zlBh>Kkp?LV`?llJZ_reQU3_P_8 z{P+DCbcv4N{IB!kXw!WcBMJ%%dh)HzTxbydDNbHqO*glqZvM#6OVqLYB`&p1O(NoZ zkxE)BDymTCPZpP{{=3zvWJ^p+sx{5EXo;655U+Xf<-%ZYx|Ha{AKTJJpONygu&`GF z0b1DxW%mnugWkS1Qng&aMv)?`wLB_BbAzw+*OSkmKQo*>nfl3lUqm1iQXlf}UBdc+ zhw_IHA5JLZM*KtqgMtz>GA>B0wyP0%OL6|EMOE996x;ln#q;cjult=8keO(V5;#}f z`<{fwuO=pOEW9{+j<<-cYg?8WCGKjuKHqQIlb8DH)hi}WE~GGcdfL*DSzJ@Vw7$7b zS<3V4Hmj7E-q){R<>cfDm}k$P)pT`f8G5b;%@@yPZTZi9WTZ&hC*`^1?%~m88CF3W z<8vPi(rVAMP{R@`DsY}MR7gk=fe^p3@laY?TK|%5Z6MbxU*C4m_5S3l=XCM}5{cCQ z!C00@ukd#3vnq-~ukB0+2M4B0AA94FcJFl0rQqP;>B*LaEz)w+F?#xh&`?I6JMUxT zjQ8NDTowj0^YR2G*83bo>LbKmv(^>{v(bmD#8VXSto1T4OOi>Bp1(fro9-_u7aUa1qF$@ z&PNJc_Yfl^Ps1v3UAdxH=DvDqSOvk0c4lZNz>l4$TBQl<>gq)Mk#DK*-`}QZS9pWz zejqHdyD{QE9%kl5+OW^J?$w0%wRRce=I$upy!o`)b-||A*zSZca=BYMru5UNPd$b9 z3E%uqC0FdOW*?-X30%P`55Nk|Y%Gpgwk7$6i`ZthB*@AWo_Kp7V`a^*uU8OYJ%|Vv z9-wDWfln0`6|JqQQF-tn!?Y2~i&Yc?!wpTFBe*?M$V z#jZOWJG<~hFW2i7b~#p_OOn4T_xP{5|NL^mdZ1KW!edQvj32?LbMf(Yy*H{tE6||K zeX8Geu;b^~*UZai@EPylUqm0BOq!5d?KX?4G0hDN{ju6jQ+2Wauu&2ok9RL)_!WE2 zThRXJOq#Ka2x9ba|1= zj`W2lU!R*4<~MO+2!5+0R8rtyPS$@OXWk@t148YO&LJ9f#Vpspch|2FcbGbgZ*NzJ zP2C^8v1$8zBGkziic75wVJ{WI(<@1W;)h|wgmDMS8&&Q@xAanx>{nGXAGi&&m3Kud7SHw$y4sfy{qllSR_f z(}i4S?=*z+-xwGe$k#C){`_pK!Pe^>_LaZCX0lRLo@GbcmhS-s-|J9A`R0Fhl>Awx zvR=J9xVgP8K7Zo$>5RUDF!y_H z&-K7BH8Q2x*rd6*xcqw)6BBicol-HW8tIy^{QNqgDxJ4hEU>MLBK^eJ*fW`TK79V5 zprGK}7%hpTxnN3?_o1`E%_BxwF7Cnv{gWl{yJdi5$E z%0A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 N@x7cxskom1zW`4)UpoK* literal 8696 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 XNONfI62k)j!hjwtXu!(kEQ0?H_F73a diff --git a/public/images/api/qiskit/dev/providers_fake_provider-1_01.png b/public/images/api/qiskit/dev/providers_fake_provider-1_01.png index a71ece06c464ce8c765f1f30245e9aafd285411e..012f4882ab3cb63e68802a9542078581829b079b 100644 GIT binary patch literal 22679 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 literal 22538 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 diff --git a/public/images/api/qiskit/dev/providers_fake_provider-1_02.png b/public/images/api/qiskit/dev/providers_fake_provider-1_02.png index 7078fd62152703a08698e28e465bc3982acd9ccb..90c433804edc0bcac7b7a133810ea390b934befd 100644 GIT binary patch literal 11108 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 z z-oJUW^EMdEr=Z!O_ELa14Ul3aeYO}Uqwx2il6qnte*O0ksYT8&Ieu(ZE8f3H5%&|6 MV`@hkhtFO69~kgH2mk;8 literal 10766 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 diff --git a/public/images/api/qiskit/dev/pulse-2.png b/public/images/api/qiskit/dev/pulse-2.png index f3ce0243286da14171f9bdc40fd6b39a62ecb467..dd32aba71e2c3f1652493890bd8be137bacd19f8 100644 GIT binary patch literal 10889 zcmdUVcT|+g_H7#&9UMUgBuP*}G6)JtHW8XAIfG;xXfjO(Gm^DM5Sm~hN68r+kt8{` z&}0N8DmlYD-`xAV@2&OTU+=#=YdJLZ*VR?0PVKYzJ{59bP2ns#133zXI*V4kr-?$H zJO{6zp8f;=&pq$#F=?s<8~cGA413(s{;aHMKnFprQ);76%jV0|KWFMGWpA86e?HB3W4^Ja zr6tFpsPU>O7gzK4-X7uE8QLMK+Jj9JqeRr=?*8}_$~K4m8k=v?+?MQdpFUl4-&vg| zEFbC0-MdGJo@su?h9e1>R=>@zFmXQI-$90xT5V=alaF99n8Ah%b$53olWvS)BviQ1 z#veQJ2OTFT=h|eL;Lz99)YLd+HU2xRaYB}jZ(&7R6>iqAWrG6U$3Gtn7KiAxZSU^J z7h1Q*&-JDgLZ~?7ACsMlpYP8mD8~wn^!YH0yM0v@UYqSKE3H}YQI_vf-8h9p{dWHQ zDCWVNl}D8@jmG}|{!6lf!#0v+Pv1$#D65@0tq{d5GB-EZNN2e^-Rf0O_H?G5K(J^C zjSHg{G$iF2S6FmEP5NVw{hloZC$&b)^%`Qib)#o}Je2||soqi=Zi zMEkS##Psrv3rcHtW(Y`l0`@iyNHRzJ?rbf5CY60dxcNSAt#`MMA-fqYzOh6imRD5~ zzJJ$uAnk4}M6h4C?MPshmb3he>?8{HkTA_YE>Ry$sb^>ye^otc@fr?x!oDXZgq((l zT~AL>C(qcR$hNaIj8`WsdZ-xlF@jMn3%4}n=H;c=pQTgcIwgYZT-@-v&(=~{4q0=HdNx^0FUEbg@lAcLqb|scCK=AE6kd$B$bT=)3tl5hWpFd6iWC=W@(?wJ3nk{`}ef5uaBp=)1Xy zd0jtIAKYJHsj#!X-CSRP_tB$AhBdw=s%>x>tPAwl8)(h!CclQPZf(U92!wc1Y}Vai ziovfCREML(10@v|kL`H)C|A(oKE>4L@oAZL$D^I`POx_Si+SGB z{#q1FliS(ZnTG5BEotBNPgMebn~RxSV?k#49NCXXKFP;WD5(rC*3W8lJ*oXQeqQYa zF?CM0gl19P=Hejv>C;`mC+atrtA1tO3%M{)%un8sogzwj{Ct@duxaq@>C>ONWurY~ zK}WeSU!LPPt=1Q;+b^udEoBv0Ht}4&DsOIXuB5JBw!F9ZtB&{DwflRUOTC}W>(^mG z9<1?_vdGs}TqAm$U1+;7XNKgU2zO|3M@X?`F#`^OI}rkgITty6%j#_4K_g_3HGhjBCv`PSjx zTI$lNP(!jDh6qc|=2mDT%WqVA!}?ov0p`r<)7S8A0Mofx7+3_q_?)vd?s}7= zFr%pBr&1B@P@i_LVZY7K0AJrqOxL?d+-9}aBL#pZZvM3;_WgwwlmSq|_v9nR~$&NO{x&Di1hSyPr7Zdu>f24!RkojO!95w@R#57+4&4mvWg!3 z{n&A>F3yM!kH@R%>%T3~=Ns4&kdl&Wi!}?Ja~XSbijqN0OsqH8s7$4-%yF=1C_OAJ z%xB^mt%{OTsHzH}N;{-&8x*rP&SZa!p;D|vV*0p^cqKnXnnoTUClgR9baicFfu23C z`=f$Uaul=lkm5Iwi~t+rA)Z4yoPF(JYs`pLSVhCi%KCZ6_NMpm2W&0-zw0RnN}&W2 z;KUO&Q#MNz$;rIMKewzs@dgT#>DfjMI_bY&kK5H{2GQUV=`3Z@MG)zp1(=tFkcr;U9 zY>=$c-w0y)e^6Y?NJ(Ko*s42v^c^Fa^qAHss!5S&UZlJGx%mxe7?Z%>Bd zutd{6T0v873yTlOPn_UDSK*c_GpFt;C}ca0R1T2XQ?hr0gM$}f!b4SF`Ktc;rZqn% zCoKXX?orCSbz6}ho_!%gjWYw`MsM)=D`?TOFIFz@?nO?WFWPyQhiaW>ZboiKMMlOz z9o^kra=^B}=Iq2W^`Ah<(&XaJlSjI2^5I>;XheKgt*Xp-=tZ$Z$n+f`-b!%r2LbU7 zeEj^3lFf|RUs{dmez+H+Lb^V4`6j@9xDbQ5TZ(+-r8o>Tz=7t6s>}!9@aPme#pZQ1-Ote%f*NAn?qElp}y0JLeI}^CwR=qo)9WUmbRJ$|7xNzz>iQ6*oS;8a{# z5-D*U6z=`*HvMgSyLwqCN_z8c;NgxfKsOH`AD@C;aGO6A5a7qLsstf<$i)F94WWPy zQOm5(v}Z#gd4+{F;f>NAc_VyM(4kMj!3NQ=+PfhB1_uA}5`2GODb`3eNy-4WU@)+` zm5UXEb2UBP`!3Xcwz;FcS2Y?I8Y;RTFuTRP z1IdPNzgabI!{Q8fZW)=;JQN)ZOFo>Gp|3Wgq1+$&vmf_uG_^Pe0Ya!KZ~}OYcf5P} z&@qBe=uX&0{vMKZ9ky&KJHHk-D7M(XpNHUlN6hiNi;+7Q@UWC@77v1m1I}nKCIyf; z%XO-8U>1!=hek!|xwyE*?43M$@+Z+ONCyf+d+-VzZ=*70O<+SMxFthaP^0D+Eq>X^B)KqQqU%LEu^W@g3(-mi6=4(;jfT`E0GFMJP>mI%ee z$y@s#;Ci@_M9`ssDcRHTiA@7lK5yQho}Tr&^yF{#_4U3+w;IdViJf1Qh3wfm4-fa8 z1NN567$k8yKsKzgvfjVnnJh-M&9Iz1_YR0aecr+D0#BKBxabZH;225 zHXRAv>gwtM?r1#lKUT}|#z-ayqJquX1xN-}K;oe?=j1zg?iAM4N%G2tU4)a_?#SHJ zPb|3g=(u5l#WMl3TE_@=C8Zucvw&1M4@3T4Q7>L}N&c$-2t>%C>)mYw=3l!Ldp-S> zvj9n2As0BbGwxqT>*-<21Gy@N@^|*q&41YB=SL@|r>8m4tE;Q{ z{QUgdqeDN!wn352bosBgyZ|(uy?7JHTK^sPL0Udxs!Nx0mPlm?;tiC7zO!2%uHXU1 z1a&H5>eBV$X5mP2om3?nog94)_t}mTZi)6JX`_o_a!@1&O1rx5CrbHfw#EvUl|s3) z2gXeP=br`iw_gtWl>xEe-CfA{T>LKNKq?yx%m$j10eCYwLl0lt*QZTLweIcdag32~ zcVUx-v+yv8SDy9rd$BQpEtp9kOVIv%n2J8hsMzi@EiEm=twDI*2f&2Wmwx9NxwYiV zWV`p#!B+n#^Se5^hB{E&tAX--gz{t$D+&z@>jnC45z($MaV?#S+qBl-04TK%5E-Z; zleQS=oXlR6$<7JZ+F>ckbTZn2t3w@HYHI2fP{cMqYV;jR(hluHz{`Uvm=Hxw1GFD0FZq42-x~(9bd-Dg zw=|$CMvFO{!oKOtelm6V{>dDn6^3O_xsOhq`qtE>06Sa|c}e_(b!*IEd&Mg%Qkk>f zRAYpQ@48(u6*s7uf!zsTm^eNKToOdDk&#n>sxW1{as`2Fpe=V0kpRz8gTjRwc1YMh z@hEwCj*c$Fw8j^ykElHt_)RLcVd(?!Za;~Rj!t>;;xwdA z|FUl40+L|`P0WZM^H~3>fmjHT+MOPeq2bBBaIE?Zt(B)iSHrh{D-A*tHgVWs|Jc?C zhgjEYQ(&&)>{ZjN0ISxBjRHzbB~vrC4Z-xowdAAk{6`nT<4W>hMOOuSwy!>;7mgVW zd-38ECMqOEXr#(ZOfHmK2q>LMLl~_XcBohg5>V6?L8G9fJu@n1W+!k4?4+cnRbvHA z+Q1vaTI8EGcGFp^B}ri*7p%b`hyePXX;@;PrhFnTEiE1vr&VAfHwCl_)RGG1O*@FN zq5vjfW*8ui?bkb{EKOlaDh!gprhD<*g?&8|FgHBA0d)SGM`t|E} zzo}j8OA!^miNVjG#~&vnrvrJSRpw-}wm~!_eYN6iFZY1VE$(`nda}&S`(S2aW@hHATwGkeW7iF8ytWnxEe(t9 z%#l?-I!>kn8=?ZWp?*!M@hvQZ03oCYa|l@r)D9cmuTkulL@I0u;st_Tvml%fHR_YK z&I3A?3{C>xMt!|>8nt{IG|hcDN?gpypSI4)vm!rHs9?HB z|9WxBg60oJJaCvFv$L@z4D!cqT4fcLVxwKgEei6}FWGl?b}&aQ;%1E$$eT`ON;E7T zOVlsVI+-KCqfitYxBmJ0-}yp(7I*xXZeUdVYZ5oI49XmyW0;D>|C^Wf->@g; zoqYPAZe0v(*ah7MK-16%2nmA!?rdjr83~l%p@z42Ilx3T$ZVumg2emwY!S2pWHRsU zuo_CtcDUS?$E30t4CoI)(Xhki8bECa`ZBekQ1a*ik-|qOCFOw>*R0!L4SW6<{S`nT zq;y9xi1YxMfx6l;mZ3t1{Cx26_?LhzDAQRcRizs{jLy~Xf7R}(!O7BqB46S>CR0&W z#mmE^L=bZx0E$h+z`%nhKXXRw89B`js5$}QzEyZ4{TbB5z0+maq;7#g`0$ENfk#wS z7x+1zT~1Ce6AWJavDzAuj?PYX&}N2UuLzh_MjOo?M?SdBMtzR?8aM&3*})Z2!x#T= zBT051z<>uT?J0^&T?La6F%t0L z8fzRByU&iO(;)*KrkjpP{LcWZBVJ<&$3Ql}(qrxln*8ip9k6v{1kLh*SE4n+7Kjlr z$pRa7VgIz6+C?89pJ~HoWSob7jAT#u`r<_#iot#aSe*yAdlwwk;=lu6vXdw6z_A}d zU$}esF3tao3Z#J*JF{wljD%XIr9QW;^-(?o&t6ep-VCG!Qm!AQ4pctD>CWUahFDH@ zW;q1~2e5(Sg)Eara9bx|S5?|~QyX~Vub%~b>vOrl zB()FrD9dvXfMDIhWMbmi2aL)}%uuM8((gkP~UmWOrB%Ryu6U#X9^LahyS%ApL@Au$wP%DA|Eb z78T0Y%LnpPf>_Xyhd&d&Mm2nWebWxWj?e;L*9(0kWPv~wmGMe%cv2Ck2*Uj>S+;I8 zV9NyE1E>50==fF=$w((lyBmxNo8B?-XAlPkHp2{*iXOBHKy`m49o>Q5LsK!H+L?V_hjBRO{VAGrSxea?TV%cOm||Bfc9Rb3Ggft81P3l=Ex~^Ud9C zaid?lvb|WOcYl6#b93u~l+4gG^)blS4d6%)W_IIlg+^FU10TLKSGe&L_*djA9v z_X=3goLS}pX38Rb}*n--1fdRC*NcLybW=Q$0B7s&fb4brfHT(YcS>5l)P|1GG&u5jYOXotL zWTdivaL^z)>QXoS!Viet?|DB%K(DqMxXDF&SQc2h7V(bd;CpJ(6+32a{LQF zk8aM}_BCh#&%uQ7DIke6!KV-+WB9tE z70iwXxW?@nA6-KI9$#HqdBqL_T)6e^YfdWdFLh5Wx6Kl%bp!>2w#TzqiAH<}_Vy5?RuoH=J%y4g zhb9Cy7(D%EL8;(&+cIdCyPRhVleFo@@h!iF58|h$`f?1EMH~k3Lh`Z)>#t4ciF)7^ z>Of0k+N$7tLlmQ=Zqkl)$#yS?@6Y$aR^i=KQDV`rT2_P-`P7uO3?rwGp*}DDefp_n zhS#rAq{Rr}k_Ilw(rAqlwE02n)=k$!1aqK+o(ya?NY(* zz>I%>#IRl$m+#yF()Gu}LN=|LzXtTB-Eg=8wkW9&U3JqeI^gY*Q}bm21ZUeuC1vSn z!qPhya?w@PMby0qaOuF=;cc*A`ECN%iuYHMrf$ATWt_vP}U=SORT z8^f7Xn;2!TvduNIh+%#%)Zf5No|GQ_Ekwhoe}ANE>;8Mk8BDVZgl!koL?J@%dq=*f zCsl*Tu=wZMT97{D@&@5T;w;x+>UZ0MkwUxBkinh zq!aEYdDiNY(LWRe_3$n=a;FA>_io#x--5#CU!D%D{X;lik}XdDr|SOyylA!v7ph1+ z>6Vtd*ZUVC_`g5%M^Mla%yw}6B61@L;&2YR>+tUv!$qb(({JGIqvOW5<-O&N zE@Cc;6HagoV&t(Clde13m5eYk2$<)(19mZ5|!oUR#0ob)v4CcN zp+2AQk5>vgShxq{i@0$gG&& zS6B6~8xi=qsiIDqsx!7H(QX|}Cm%W>gatW#Qr@4w#R}%bg$b^kH}w%AUjO{8yQK86 z!f4F`~0Uj07FouCk0?Wf9BL{+60yFIUvoclUgmGkljLUy*Xuv?X z8%9i4-2;PHEIn9P`0}>o4k~#JZ=cErv*X;;b?~kd#ylj z!RJRBfQZAHYh2Oel&tYl-rB$z1)Y2(q;L2PGy!;sa9QIz;w1Hg#djI*N~p%)fJ{gG z&L(=TgPnze+X!y1t_2~#hAR-xfgOU17nH7cf_VM2v;`{GN{^PbCCDhmYXQp8Fcbsj3jg|bgivEO+-7=i7FJHvDYX_3p$hpEE{Q=d z7L*==djnlEY1|4h7-4)HIIzEL;>$Y|z$2sg&zgl*Rosm=9#m4n`a(1xDLCGIHRQ9(<|`4Ap$N(SqFc za3X+RpQW8?K^)C9kwh0(Tz#~FC{hH+uc{?*0V^^ocexFhxWtFbv@tY47RxJt|EGDhzw`hTz&~R&hH6MoE=u1;&gnjNA8ptuY zj;J)GIh(d;3?oB_tQK2wWtNL|JgER=EApG|^)f^%DkdP21Ma6%#BRIl5;ECHqGiI4RYEQmVqzAk}vbM=jG+WPHTcA(Fd7ABWP+27YGo~1Ugj?pum*WWp;jys2!Qj b9i8~&>Tcz1?QSqq9ME!V_ww#Mc>KQr{^=IP literal 10709 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 diff --git a/public/images/api/qiskit/dev/pulse-3.png b/public/images/api/qiskit/dev/pulse-3.png index 3db07e036bd17c8ec6babfb979bf15c1bf474482..0153f96ffa8b6e44c06878944e5aeccb36c47e32 100644 GIT binary patch literal 59611 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 A#sB~S literal 59673 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 diff --git a/public/images/api/qiskit/dev/pulse-4.png b/public/images/api/qiskit/dev/pulse-4.png index 0d300813016e1ef90a548883fc650996dfa43a79..8ad95e43771587c4fd68092ab9369783eaa56326 100644 GIT binary patch literal 19257 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 literal 19310 zcmd_SbySq?*EWoaauWuvgbGp;BA~R2#LzW#2+}Rxn4okcEgeHBA<`<+B`pooL&wnZ z?aTXlYpr)Z-@Cr=`R`@j{+yr8TytLMx#QT!KKAuqQC^aWfSLdg503~X^+XvD@9ZUb zy>j6^{O^mREr0ln-%(t{QN`B8(Z#^t7*Ec?(ay@&(aPMA-r3mR!Q9s79tS@M_Z@mO zM@Ksc0ZvZq|NaIJTYFQ^8}erc;UX99q%~wnDDv7tIE?@KcvwYtUoH~-~#>yS$Vw;z^4wkB2WPJ@NPs0N6@S0w{ zu0Hek6`m&D#j}53J-zy0_d@71`5g`Vh~{)*kL}-i*REVi4Gj&&Cl6>gQm*wrqSZKP zij%z^G3GW$=fd)XPtW!_Io{aX>cuS%+^ZggZQ_0U4UgBn`^nYYvcH0^-7k6i{WP!jkSd#6o+2!a z5%u}=XaD!_l{7Ry5RkE^|NQyHdZ+}YTjAK%l_tsSedy{C|NQxLWGPW>>RbKVw#|cs znsnZ~DHa0-`N=-VnqWoIj)E`k)+QeD+KgzteEHJe&hA%7q9Cv9+SBE+YHgVqj_SE7 zr2-v(A}a1D;f~8gyfh-78m%#$0}1>NJn$~BweR>lBilZuHlqSwhwF{zw=ZA0a%Flt z(ut!kfSkREb-36xBvU>ycP`1JBlU2(Y`hJ$D`PLrqr+(eCLU;n@MqV=zI;$!TFQ1nWz@%3`(I;cVl$R?d#VzHn`*N z+uArBWy-}8`D~Fd`{rUOcmtm@r&W9%kw&u5;qa)9l=cZh|_4eXGXQ)wvum_*Y zfnC;%7kFu?h}&v2>+9=(0KkMs9(MK`*-h-}@oTa0cF89HSo@0Ai z95iKR11Fc3te$s()lrsO^l=lAGCzIpoo+l>WbDiEY;R*`wy5@azqKjsmf!l1e>g`R z@=l#PB{A2L*uEOWsc$32{l#j~zSA1Q!vr0n!HcM}F?X5f=H@sqgIDbpn{%D&i2_d3 zi;HZqUs0@R>3gOfCAk!ol-Y2H7GPnysyX2!qoe2wM|11Z3Uqjh{fu-Jhpv{5jZLn` z=hW@xVbi{buv?O(6PmV;8yXuiE~{fLiGpQS z)zy7DDokLa&9m-4N4S^@m(_wQx6Ky#q;YF>-;cNd+4E&zC_j? z)m+X?8vG9)XyDG4yRN7D5?#v#3ul7>5Id%Ts&L2UdU|<*5w#hQjg4(=Y=l=z{Vm;jZ z#af$;RaL5>pnz55)5r59w0UpdoDIN<9`8OwMc18C&fvxWQR8*co2_(fb3DUlv|@kK zkM0gOo%sIH=VyL;ZZl+?Trbq}wH9C#$ejvx%2RJi2G6%dvAK8=+KyG_kg=&{J1-Bh zDt>%XF2v2P{QmuW>~L9OeGM48he|EgeU~MkJYj}+&(d;+Pftyyt*zOKOGsd6 z+vBMUY$<&kf@v_P&k;1$)rqB~qzJgKeH2fG8_TvH{t}-4>zCr@=i1FxVn~c_w_f70 zz5RzmElWO;$F$>mBEQ4!x(cul)rSvXjJYqeSDzdoAosbyy=-~hy=7Z_v>mVKxh~FY z*)O|Vb5OvcTaj+k9%tSh&PXlf`bofX{-aWw#KO<_R|!Z+)TO2U-9}&IljLfZS_pXV zej0O~B0{bR(N7he15BMYV7V90$Z4^^ed`!pNx_eVu3vDqDos970J*3IxIo;qBNavl z24)6^ClG3sA&o%nU@-1X(nVrmZ;lE(7UH<>>+?j)-(Q{Meg5Z3^?JiKdk2T&edS$S zu&kbUmv8Y{_TRy+j*lA-u1(fOaq5fURz?MT4nDBLRTl>e2Vi%>0`ifwfMC%Nk(9@7 z;v3J-Jw86QuC6YvuXZW3oymoeG~y$OSXfy0;a#dZ%8VE%jA~BmRVMj)I2iJoGMiCl zE2}(MeFhq%X1+1qOmN|XVppp8s=JTX`o@MbMlIiQf6JT(b}DH|N?KYOmJP0nX^vpR z$i?%8r_Z#;u!)H1dF^j?!J7I$J~|_pETRhz%w0HK>0-M%atbzqySCc_qIq8~S_X-s zmW9=slXZTJA)?2MQc_ZJoBUg=79N;Aqtm+U7PHB>k) zI__;4J9IPjfw@jEEaZeU%4kKZ=P1`#3EhHCR(VT6Ha+olPhSz7ofJImS!1yA*JETa zJ$LP**tOLnZp$f$-4x#%ap=?}oO9bAG(|EQsw^Tkr}4Ps!znyGJBp=|Gp9A1YAd&r zA3XnIXK&Aao{;jXUQ+)h-`!nTj59Tl*;7&$<)5i{=;^tfKDn}D zlOW{Qts?>_hp}k{6XBJP;jkY0`n*mjIy~GEJgkmcE$>6$m(!uXLtF4RS`s1TwW{?rGw8^iH%=c*UlxVpJfsTb<;64r6?*^XIB6+H+( z2^Nhy=6z$(6new=_3PK4AqiugwpYh(9|#CgU*oglg7-=UUw2a%qwGi)wFRpk2sQGa zX^v?8v$|o6_=5N->?yU+@m`kO9{3b|=X_UMe*e+#R0yO2h@W>_L{APK0{Ga_xkiT@ zt(>v`qU;Mq22wbP5L$=AWmbdXCS}_YN$Nt4+LA@bb^6O4OvS>%m~AymKrq1%tsM#c&x~55+g;%-+KqGOY^vRHcRJF( zzsA27930#Lwv~@P_Ne7XOwAXA!8~8+W(?T4Ef=TZ)j(9oRiIy+w6eZ`UqL}34dSWV z4CGZ_1}g9m1(#7I1KB-)em9QC-0<_NZ8a|X#`_zDfIdks3114$yeaOV4Hgn7?D3@| zNjTo7+Q-GC)_%s{@YyqTrL*wmB#<;BsQ`UL>;RK2~u zEk-L!y$_b}WA-_#)?V>h52a_w#9-?w^dlJpIQDZ+oSmFXwFcVT+jDCiD+Tu;zm|CJ z*;j9M%fNbTFz@MCqhn%X7&LKjzFq?l|IB)@Q|@!L?^NH=kSh^H%}rQ0%eiKbl9%sq z2)fo+WGq7lzM-=+HC7S`GG;gk5fQ=Fn+HBj7a3w>$nI!xwQuygT|l;j z$~OhVkLB*#qofWA-j`1lFO_6nU#$L`9^45O%MEn&nZCWR!`&xZAR6;HFAL*$Q6 zyZrfiai%j_AAnpDRikOLSLWBR584y>dv4whL&E-0xkDE5^#`E_f`D%Q0|M^Vx;Q#U zhJ=JLO;I=u79;U+uP>Xt3VFwBery4`p^lLn+R)(vkgvntM zm07sNgoHZ{Ct3S||9K66UdY!hZm{SG^oX^cfDG;*5~9BTr#?SA>W-!|qy+&dY~-s~ zui9o@yff`*+gMPsadmaku)cXXP_;UW^kJW#%DwpUPMnIUwu`rom#1gj0SRPc{MWP> zq|_mr_NIvWIeOek0PF#$g@$AzvO94G(5zZKpLO@d_t%WghQwzUwkZZn($#GaPp+TM zStg_rP=()0Z{p}1Iz_D@Ijh2*;kqR079i}Ywd#A}(52SHY8)IKvwGw?S4oltoLYqR z>%nqn=H^VjGvsY{4_0d}q4cpBt11_-gfmgLv-{+{^xNQG!>3PNkbb034#rQ~7Aq<$ zGTpq>qv7PnO^~|7KQOSQ{Kz9L&JHCkxw5nu#>&sn-);|36Z1sL-o6OgR`6#mZa{wk zJipYu=l15=K$oNg694?p4xi6P%~z0A4gslDYZeUMVXi~dnyJ{w0j%c4u><1EH<9_5 zF9?Yc`=sFP2WXKWjpVZmx6RD{Jk4k8GV^fmE0%;gqveT-iRePT>Vu^bzNIskrV zcVLYI9@}};_iYkZ1OPW9nL85l$NJ0$WXIW=@U31I1#^H26@WS0^)5g~+2^rZofR5- ziP!44;<(pNVtwH(0Hp5j44G2L1!asAn`-vQBI8!>oJg-Xd2*QLxy+xrNoP9x|n`ws<2$p@b2J(+T9PCYUjBS_szOG_)@zLniq1Yo7< z`}gm;WgV~Wx0f`n2aCi35uqHiAHn(YxUA?PMO=n-6n9LP{FX+6PC4N)r+PsGpjZ>! z-e9#ynUIjs)>e-~R;3Nrba8imid;+>s-mZTn>ULaX<_GM#YoN?&F5q#DMK-aAgDw^ zmkvWsY+>@rG1&%S);Lk0W3Qm^0|V+eZrp%+KrOCTYi#d#MWt8Z)Y4#a)Q1md-l7h( zvW$$3IS4K+==u8m8FG=-Rv##5OOHx5#$672DU6u>o83e?{(Pd>Wna^aMI76Nv{t4g&%L|`fJGZd? ziNe&>G~k&DrLV}|^wqtC0}Ld9*^Oe;PAr%udGcq(?L>X_*whPnVjw?QKpAKO_8x}{ zP=%NlQCwUM+h_CqFiSSp5PkoD9N6zI2=tZ!IT0hN-(7@?Tpk=BJ{#-4vyzVl+1PuM zH8nL<@>Q;!B2c%S!^g)UgvelVmOm*=Dzf&00$rdSx{i+y+MQJBCO-_mC$$}|$bbW3 z6%x`xb`Hu~#P0k0PR8AF*bL2LlN_KChALeOPeVa=`Em-FuUShZ%dGyWn3!1K=Vy}O z;&P24bn4)0QQ_gK5X4z{czUs69^tC_TD(xd9taaNkiWsJwfc_s=8_pv zLDam;NkVSiBMNkMbPyKhAWEPCZuM0-Swe=AgCkLV{P-18kvojSRm>ZMX)Jz!NiPhR#RvtF zy9!rafe5kw{pk_JR^?)ob_A|CjLy%Sk#Xo~fEDwR{L|F5(34f_x^9Rn^Pssd;3$P~ zCcrW9z?A|d^-LhL!F~1tl1Io72s8_eg|+?qK1aq5f;rNW%qdw(?$Tm@#C>p?ndRkt z$Q0@PI}c&KjH5|-#gAT}w|8{xh18R5QVHm)4-f_HdLAJ5mgZ&@tf{*_{yuKZW7Sxo z#zz}MNrm%rE`%Xd_nY;A^qGB*4}n!dIk>$%eU8WM7rk5@4+<*ET%GbFwL-moSQ}Dh zk&Ce*TgR^RRng~g-46~B+=(9Wg&b^dA0(tmCI#B|4|m0YR4~6ieB2IE2w8OHY7GWf zgq+(@nQd~--t09@=R*iS)ARG$@2@gpAw<|aIidfhAL4VSAf~(!6gtEgrN`{=JiERc zx&NS2kZ$U$Njr6#Y%I5Le0=<6N=h@?ga=)_5SRcq)A<}46vT|BZEqDeQe;YdC5)w` zBJQ*(Bs?&1#P&8f#c(Dg+{y02!8NciULXMOU`LmqU9UYk_DBPqC;^a|2x3f{*THrJ zKtXGzosPx_)D6p$H=)YzYl>hBnf&v|FcJyRk~0vesK6|^;baWHe*H=*A|fJ@CJ_`^ z?XhFxdj00DTSQDuOlhzw5`aJA4(!T8p3BP0@*s{F$)?_ca7R^DRe?}qKLaRBj^nc# zG2^iw>TOCEtwolJVDoIv;>^1~$DRR_a~TL+xJ*uN;_BgXO;1lx0^)oSU=Z!z_x}Fe zLtm^dNdX<(IXUqP2@3~-F;micuDuL{sH(IBFsr?H3Xf^c*r&Yc&NkYE)^CpvcF!UZm*MEUrUKA?oj5RPdVE&zh1izS>AY5Q^xZ>I~Q($Gw`ao)&VOe+j=xM@T>g3O3f0LvQe>i0V4{fU6a9?nasc z6zt(He4Iho@7`>mLBOI&;(di-m!)3|_e{~yFF7fxUY}}Yk#x4*n`yQ5c3K{)uNvVZ zbog;oUr(RcYAu17M!>AgH(wyud`f=jS*44`NOnq9vD-qA!klKLJ|wrjqm5?4_!xNz zc}hN8^Ga&VRlSvE?pyOo28Y1-u0K3|3NO^SJyuW>qI+Mec=7_E8nxDe!V?Jq3NeMY zV+UW_S<$)JrSi?$fy2Fj+FCQ^5_9VV$j$q(efzie(*ao(sIhCaf*m3c#`lKptGjg4Me@u?ynnOLeG2wMwTE{-b_aF#qK4| zV&IPn;ASyUVTr7LnC(bRJBCu6d7i4gveNSR+9aTe=$d^jMs}cC_8N&{rMY=;_UGgM zMNV;X@z~bc_C!pAdE3g;&dNeu3a~&9u9okuAARv{$pFUow8S;IbQ8@|>eBqCm zrwCZl%77ryj*cY^3y`M-+&0o#)$)uA7N@7vxdGhA939+4Gu^WuS@5>HFB~i%jO{Hi z7D;sRpsXuM6ohl+dlQeKCnDP$5LbGdSW!50`Lel98PMeWcP&D^ zPi|?&*Br^;jzB@8SJBZ)DA29EjcN%KuB;c}cbMklEdK9nyanLDFOD~?!gH@^wj&a`^*99j?`1)LTwRuTqh1w3|+)1i=TZEanwu`W~1p+^{SSP}q@0f@Lx+ig@x8ws#? z1cPpkeZ66#Oblmy%wTRrEZ>Tw=$H7*K0ZEuxwt$8EI3&X$KEc7pnK7E1a&a@u3 z!?-IcDPj9d0{}0jQS(}weD#8`K2HzM*Q88X_Y2@V(7a3m8_=^_Y~`%&1&)IeC3;k% z4hxYj4tjJ3Un8jgWC!E4s21yAZ^YdU|8Wr_btO{pEo4>C&Okx7j|0v&(@GOnr1>A` zIuN}g>^^_g908u{1?(87O5<(e#$Z~s>o6BMy`Eeg-;sj#|FF5iD!1a)v=hbnPh6wG zLmtA76pW0FlsGP2L3IO1lukg#mOj`JnbUKp;m`PG}By|WJ@&f z-!kn;Py*ryx6yjkyLaN342Y`HF9K-@PmF`>q)ks7313xZO`LJ)tM(wF*~O_xaV9&T zp44MMFpTxB+VKA~HH9=!`?57v!YpgJNzPDm*?lai*HzgxX-7JLK#oJvkzYh9VStf0 z8KUH|dvPq})RHj&m2SBG9W;TZq~?7@ytVmk`*T#XwvG=XaPX&nM$DJ6@0Ys%QRgzO z<$#;Y*WkC{h2P1wwY9;2v*(@bLJMY)IA4BzVdUWlW@qIZzMAz_-Hj*ej*<>^HnxG* z`1m)>uf1~%zj`Lt>3-uoqcfrWZD0q;kJZip&o93Dtko6h<|sQ4)p|k_Ph8 z^mK;!gT=&l8SO7tcVmd??moUHL8y+aZUe zOmiaVwAhQrM6*W%NxCAyZ$GUXk|fM)@Z(ARGN*2Z>bg0@MWEF4U%e$TAEeM9Q5gXv zYJLLgWbFwYZSd(c|5$#1wMRaKQ7=@3@=DM1vsc_=_4W`(z z-ZXV}ttT0>Y;X0n#NNwd0Qcj6Ab-L*5lF`nYN7?)z<6jx&+-X@XySeK$;ru$?d>mGrn7BS zTHEy$Lto7!JiRvKT6d006o3RcP*~5?uhkRwa2x=-5-R>J@RG>J#yQbab4p+6VWk0O zC~2#o{+$zup|x+^z=WrV`q zx0Z4QQf}-6S68|ez{z92aX{YMnJikk_Qe30@BlcJFq3ODEipZlxBS>!pwyY3nQ>CM z3&zb1oEMY)p>yZOH@bo@SjZOcU(`N{yEPIoBSpI0!3qCmVp^f>4Kmh|9suUwA`l=q z@g68)@hCQZz2)IrW*|hMCD>AR=f;gk%R_H5(A1`me`Na#;0(s4P)}N3z9#EEscGA; z22i#exOU9%e<*m|x0uVne$Cb@#V!;?BqZd4JYuvWiW!9VAZanUNkT2l8z-`gSTjJv3BtZ+CY--f3~g`~c#i63(J8lC!W7I!u|Hb0^Bv zafOl4X>>@0{FLpq=o5ZT-}AWK(`zFe-AW$L0JvsmF+x(%*(!zs+6_(PT9{`WD1ktkz*Z}U|MLf>w^`wOwx@Vbg8*24yC8HLH#zPj`5YyAtnEB|*8HGPC6o&0fhzzsEas0>o|ZbCZ!$VLSS#4uv<+)mjNvcIXQXhk}%W`z-oj6e#WSG zTpwJfp@wwEa9hdKD2P^A3u#On8m2gEr8k{fXBkB|sKLv8YId1C^Evtt&HN zb=-juj`|Od0+>jIg+hcKbHbFG(QY=pN$uAuf%VrBMl;ysaTB-fkCyUM^J z5z&e0KsTfpoP-etU(phOzfh~p#=2nce`)1!6Hq_|;;h~Zhek{a8Qab7{Hy(6@{!)M z2q(_%UDzo+yx$V1C-3$EkVJJugMktCKlN?13P3dl$sTyj&wjMG@Pyt2?OF1C>b&q~ z+dZK9#Vc^26Uc(lV>#78Gz7$>SRfof{WC%X*EUjS#fO8%rUO9YFrZ93llqD~MJ&;s zot+Bdju3ny5bdWlT)^LvRXl6M+=HkS~OdHic)_{rj8tC~4GPM~G&A6h^myGHEmhr)LFFC~UfG=hz#&d6*7>F{qZ9b)D$XnMGIfoe4=zGyR(NEsYZ^HM>aO z+37`1OL*l%ND45Wd;4Qau5ggT?QX<2BVP^lI8e~(L!UZ1B;l08bA8;0(QZ6kef&sn zRl`C#?MorHKWG>=v04+N95m-H{B!<=WNR{h?H88|n#t-^9+FQ*pV$5tJUwy-;H-z= z3&PNcu5CYm{zTLpv-*XHhlh?p!(-fYjQ2Lj<*BDz=dy%7c0{Tko|?D_45eB7{`6J3 z_~WqppI^*1%k4AHZ=L8R3YK(#GN@a%5IpSm&-2%Ra>_`ek2PwU<}~+1IND-RtDq2# z00Rm{D?LDJBdv?OVSiReD`zGrQ?io1wZfrGA6{0rQ%6FHmvo6;yQDWyK?HDvhzi^* z(2m`Cra&@le^m_cO?3;Xtl{&}F+Aiex@~J4u8p^ree2~KC4y@~sFVij8UsXGcsf|S z_>(7Q@SQ-&Mlk%({PX55&{fvPeg6*Rc0Xu?cs+k}1<~B+Xm_vkBkD;KR)T+5YoC~? z9FsR;8Z=COFv2OjbRJKE7|tZywq{QP^gK#H{zDhN5NaAr;JiR1@e86=TLgpe+qXH; z5y1|XVgMDV|A#OPB7Z+nLQ7Q?cxy(n!lnh-H@;@zsYs&QY6-mo0;VD;6X3h|*Xl@0 zjWe;@!`>t)AamZ55H4*3TNxMN=)R^fj)HlQ#Q_kdK*9r5I(=R$}PZg zPVy6lub_|{Wi;M5J)o8fK763`@O$a_>kL#Ker-nFIpP7)7G0?s)nef8O+5I+Xn;sa z{tW(4h!7O%DZGci+=9166)c-u(jX2SP`7 zTU%QXzfBE6??b5aV==&z&hO(ETf**TwM4U|LH(I+)T~V6I1Fkx6=+}d73!ZH46T3w zCo&;2Z+*4KLw~rw4$74K%O`uLkj0^!^#~MqteUxz5D(L!C)__adCGaybn9;Z`wwY# z_^FY0!t%6wV=b$6*>N}8RV($_DjT-P8ZDP9yy%NTB#;T5gZXNbFwo#}ph6=9kz0dY zTrO18&Oz2QxoGE65xn8~m!b7Ye-#>W&0KDwA3p3}y5%ke&a3mb}@UQd;QS3OoGr$ zZ*0)PeEN-eT;-Ca*8`7gt&-&oVNp-h)wLIrk9$KzbCE9rh&;=wk)2rS{cFH-04W5A zDvXP(>&~oQpnthW_vXzTvx#pn5z%B6G~J=uu84^CvWuay5AsMQBsBLZh~|T8hz&UF z_H9tCr9zh*>D$1;Dg$TDfC8N-qIaO?v&shca{-hTF$`WH3}My&l2>HfSpamb7kmNv zGLpTZ!`N=+4PQp;ryTRQbRVFCs7;Dmh5-h_)2n-wC`ltnA(qvUIk>WQXr7h^{;b0@YQ zf!jx05#()%swy|vy)-vGeLR>>y)a3blv-K)JFjK7*Z~D@YGpKbY<8sFVXM8uY3S?o z*X5&-szlbFy~pQNUm39&SaGY~$6CgnEc|WJGotjpN+l+(>qvEqeG${ejeADeTtoPU z-kdZGQEi#hSC+Y^Au9qvR5P$JGKxcQsRYYcVK;fY^dAx*JHhiKZxu`fl}jglvAvse zd$VlJfFJn-@e(~Ca zSGBjmc6Ig9nH4URHcH`vk1zFnj)=%0dlM5A+dqG<6qSqSHO4NVEzLg&EAeeYRD$LE zxVF`vO8oG2PLUHGxp*G6AZ(v16VDR>J@+^*d$Uv23UqG#1<=04G^zVIY>ouZ!lJ7x zwy)YIO@fFQx?@mSd7;zXd3mk7HR5Y;rCbn_A~e_y0pa*ZME3@g2&AtKI&FklA!FB4 zg#)nY%Z(!E)XRfNYYCVQ;W?l#g|5^`o?!w)!rroRZ_M&=nf9G{Udw1uNM^tXSfCX6 zhy2bjh~9`Q6`ig4NYG_P6~vq9j}K2l*_y>>ZJaw%4U5?dlLq%G#~B=etw@?ipREdzJ@PI`uu167P{}ZGdV$ZB%rN zM{~9B)OyV2gV8)6#;7hzLD5<98q@aRk{8=q8Pj#ah zo<_=SyS7v~x zed&G@;nb3JtE}D0c1-qHAc@|<;w@7aux_A3RT@cFBN!3|9h8$fcORyWpFBQy#(zQL zhttvXKXyYzRK6`}cQxVtpzun+nC;ckOqNw*Rgv1qtSUEt>sT)~kWn9QJDwxuNWoc( z^f0N6DJu?IY^<%djJ!Ox@}qg)47$0fYTWiP-=fK^H-j+M=o#d2R5CrY>jPr4%|07~ zo@M~b>~5<@F2Zy81Kn`$Gcz+8U>255Y_HMTPagpj(xYPwrnGO@LQ2M|_gIFUvma85 zYK8^c&263kH0@b;`a?;O$SWajN6`C&Op6&39#RxAm_w_{qC5RPSmq4yyig=y`_%RO zn36s12Zk2_bwE((h-hYjZWJPUcRyGzLxai_M9IvcO9t^l&#QC)FrW}kHB<}j7Xv{2 zngi|69fturO;8I&GRy#`85Ll=sg`YwQ3IMU?m7((8v5I%R(;Z!TWd?Q2QV(SNFmhM zhlbL=7qofpt>6b+2XsF3pfExDrDWHd<5TPXb0G49j5Q)4AYgxMfh|@R!8`Y=<%Gt7 zbA;lZ7`RsGKX_%*3cIs1GfRQXv+Ae3O0xV#KiZtt0)?vmObap$067(emY+bEhnb%j zWkBU?mG-B+#>auQ0aY>D&day`iu%6!#;sm?yOvch40hl9A*<3N$jBu-V8PKw+d znfMI>&!-^-=Sfu-Hh8E1U~ik6Qk1%_8^_AtPJFN}lUW8m-@Kl?wTnZ2G7xvraPZ*_ z`1q1k+@zaxws5Qw@s(N9A}TEHd^$R#NaA*LcN;(UR4d5mCVPcztw|)uJx;Pr`=JmO z4)RMZ58*)2n?(T!>`tYy(8ElfDo0fK^x{G1-2CqPGXmm*oQa9JT;=lc?Um7pg@drb zbQhB8>3NtCaRgaeeSLj1XrIa0GLQIS164q4JhSX|;IOq++?fj}22$M^@oES$7^CLl z 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 G_dfyM;@vd> diff --git a/public/images/api/qiskit/dev/pulse-6.png b/public/images/api/qiskit/dev/pulse-6.png index d2dbda57a5194a53fb98604bf66366e30c663aee..ce17e6a0a2c6487b798dc22278375d0b784e7022 100644 GIT binary patch literal 11628 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 R1?YT6)RZ(8i{)?M`#((*wlV+! literal 11477 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 diff --git a/public/images/api/qiskit/dev/pulse-7.png b/public/images/api/qiskit/dev/pulse-7.png index 9bfede9e1627252220293390ad97d0fe1849bc9a..9ee4185f1e627035b34795a6c815cba5716a3787 100644 GIT binary patch literal 14262 zcmaKT1z1&S+wKCSkx)vcQA#O6xN>sWL6cCW^7NitOixdG#k(BOGQl%xOq`L&p zvzT$dZ_YXYzprZ;iM{r_-gut7))Q4_g_8s{1PFqhynani9YIcz!oLIXaNsM)kN#r# zpNPX%O@~`H_Z*y!9+@FGjT~&PY#gla8#6kYJ+i-V^N^ogg!|G(MhgcATYFI+9_xSp zfZOJgIS-RE)&N`t-}ai8J%SJ^qyJ%eJBP6#h!D$lIT;O?*NZ>Qbu|=@1XnDbwKPMh z$>gNd*i(#gKTz>@^^KG!dXt+1f;TQc$+#{T#_D9^YQ;zSEh8hC zqR}s=pr$~qldx{LockvBRz~0U`Z)GS`|02JrfU-3ym^sIDvL*op;`2R0*8niLGTC( z>zzkE%{SaaDY>4-#|M8j?|jKpAseSRYSJ80J31=WS;3`Uh#(6?C3)A3)!50YB|U^G zxpm{sB}qs~&YeHc#K?%0J1@&ySg_y8(KdVDX~>&&|LZ$p±rurpW+3JMqXE2xER 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%0DA6+IRnzUXKk+ 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 J`LaeY{}YFMt1AEi literal 16236 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 WW&ZQcIJo(a+>=w5&6P2J@m~PH$i(vi diff --git a/public/images/api/qiskit/dev/qiskit-circuit-library-PhaseEstimation-1.png b/public/images/api/qiskit/dev/qiskit-circuit-library-PhaseEstimation-1.png index 034c164c8a42be92eeb7092afcc0674fc211ddd6..da3ce89c2d7a5d47625b77995aba825805d51689 100644 GIT binary patch literal 12227 zcmeHtc|4SD`}c)Pcak_4(WH%{CEm$_!nIj{3Pj_-0D=Myar71mvxyAT9n z#a_FjjUbG0$q=}62mI(g)>92XWZji-y6ZSuxqIGrwM5i!yF1@=a=&ML=a`43tDCKp zqlB2O*g4T-Htz1uZWwWKhkv|5%*oYS{I~{FHw^NJ^EE>^1lg^D{$s#D75D+iI6ID$&qZ(l+vCrc_Au?Fl}y)E$4k7KuF`l325~QJXNv@q^K8=vczoa9M>| zv+T-zmExPmjk?N8Q_;q}Z3yzL{ZsdL1PNSMfyvcegjbN=SN=c0bZizwo~Ptd^DRbx zk-Zc+6wOPUywdgvGX^eng}r{;5$qaQL>rCkvAs6$9xP5k0(X39`1&&JXwI4+PKyQE z?4&A{V!RVa>55YBZ(yI%$Cmjv-j-}>xT(Gep)fKcN7Is$E{lnYHH!_$+%b$+-4$Y? zrz=x_5DEIhiI{XgJ0cMo6O+}IV{E@V_rtCuE%fKlpNkVjQkEJ)tZXv3TryzOYr4PO zV7jMJ$JI5jqN3ucS$#Wi-ocrEqauBW#npIjpZ6-7!K7M44Zn?tG>PRFVR2dFsa$o* zTOaODw2F6jTQZbvtIpsWp`@2rlzX%;8#+;^!qeZFw(I@aiDX?=+ls#w&(3Dsg_>-rn9>ihTa8@_yL4Ph6NwCfZsEh!Nc5mD1g*U$?HsM>Q>Cb8GC zT>bd*<2@DL`RGiePaE4cL<(`3R#jJ5tE#FBR~DBVC~iM*AJ9gfo&Ii!u8jY0s&Im( zl~q=Cc#ED>zQl#eHcbbU3)7_VqYBw#)0;S>u{Sr_0~2CLdHAbOjnVNF>qKMsiCbYB z+}|>bm#nR<8ph7iTfBXICceBlDP<E84gCspj~LfCy~O2;JcetxDVM!#d;>Gm?MbK-nW zP0dAizx7$p7Rp{fuZ;u3-(Ond``@csb6?-k5>uBs!z{@svZ0vuk~vIxh@)*+g}~Kd z=@g>3fO(vP?t(R;^XjcziM!6@r{+fXBU;LL?j%9v{2Ccaef8=vKR>^axVYv?m9WUz z-Zj$o!76`tUS1O1DRk)7KXT;Au3fuaSCs?rl4kAbrDx;lgp?0z@tyenqgg3KDIwwP z<6Y8e?-!Uk-%aV+Hkd_?PMtd%gait&FH)0F8yD&NICZ3{N0|wnIwgGe?E8j_hs=RGPDFC2SU^?b#MIc&vB^0jq-NVTc*#*B-o@h&GpFZ|a zmp{*6l-z0AVg0os)7xGh(%JF&wm_p}NaCe;uJb7;RqPeaxjPw=Q$q)lqgIRKZF!;| zUlHfi$B>%a!otG8U;(GjAqcrf=-T&EZ)_j55Rs78Q#USdRcG5n@MWnYA`m$# zX=zy%6(*Au5~ad>;o$!LNlmfRMD&%e9355F5I)-)*Asiyz~dEt}Lmi)ZLGbxNZF$E_Jo<>g-Pa!8zPN zjd`qiDE*;*(Zo=ULqtkV+e6(&r7+Bu;H-*Y+0Aj7&( zW4B*mR)6b{&{m8`0-|nMcE6C=Uw~VW@agB#U`PznBkJ1%260N-Jdb$!l3ZY`V`*Vw z1F_91Wfy5;ViFk@mCDTHb@Aa2*7lx4d)(sq4Zso`csleWN|WAWbC)Vzhm5CBW2mho zA9vH^7M9oIs`>PEGXytY?Q#14qc6!>9pgQeaqguKv4VHK*W6~zoR%t2A7hf5{UuU7 z8o%7KOM-1OmZG5jAzsvfp+`l}g9ej4xLGr8=TezqQhDK^lyy>Bc%@SD=F*F@fumta zVpdYpi5!zsZ5oXxEF$tUHa2$j+w0_CzbqhW)gr8#-(;4$jWyKQt3YIwWdfB0C! z)py*iZM8G4jrGSgXKaCh`dqOZG!N0`5SN~bTn>DR5XynR}wnC4`* zF`n1qvtHER{jzR-xkwZY5=l=F%ZOY?1p!=@4rrT0dRi%2>i0gp4E|#`- z@|pva9Q9?PQ)8tpg(1;Le;KbUz;-mspuB6s)xf;e$43ya8Lh#Kp-)AS=vAuw=x*UA zv1OCL?k5Y&nYupak2i=g5H!$a!iRpTQuEtDG3^0SwI`x0czpIsFZ zm)9ArTFN{(*qd>dO3JjIJk%`q2jw{n!;q?x$MiAr>hle2u1+}=c4tpTsmY;aiF!@J z$%jo5&E~#)i@h)95WIzsG6X7ZXJ)o z51uAC<#2A4tgc}y4k2e47!X#*)BX&J0dN!EvhRPr`@dZlGbCLSj8#z6*DwnmbNjt8 za_BOWv7Hg&+$JJG((gxXE&o6YYlUD05LSV;&v@jGqU#2K{ht6#3Mt7rB4H&cC8d{R zT--JHqn4be&Q(`eMk-6E-6^J?wwtTJd&)gYkgn;F5#HY3vK3*eiWWkB<%Rch zdd7dt%PrmskKbd?jMRUpcM0@tHK-a!ce-djN*X)Wkcu5%lj{)3CYJRb;g=?*^_*Sd zj*1h)d0-7ve{Wh1oypA16c!h!tS?Qnb93iBf4&#x;=ci22TX_`%fcb1Yh)DDQ|v?n zz!Q>@DbbktCzvo4Xk>O?n)e7uC(#P7rw4o?qiXBjyu|ccZ*a3%(5@qVbAo+uo z@d)pMnJL#?P8CF}4oIlLd%?<~ujEF$Mx6G&d)epCoh!Igw=0xWN)?n?LqkJ*XQob6 zLIR12dCz!JucOYjYkv;l>HgE*`6}pgC5J0aJolOThmNof7G(<@=BB%nR9Ql%NR1(C zIE!J8$MP3GdMlG3Uv+4X=$O5YmG|!FnkT=91%q#I z^7`D(kJKo$V&i9~_D^g}{~z-BFDxj%8BPAPjEjk!@9}MSoI>Q})VV1QE8dr$7n!XI z$Eln0^HkQ_zM~cu<1G|PF-is;ZeEuW|DdMSq})7 ze`qBQhM_F=*z+JT9QEqMxXIOcyn2k}*KU3WBsUNVB<6vn2GMG_wZ6ou7*KKf^5r+C z+M%nDaC!u}}L zbgmPcnws1Yfu9%lAf%!R^FrZT5~int7Cr$?)3AOk|DKLY zBe_wDx-fwAFl4>_cSZc%@@z9j<-Tm8=fF?W+xPb~a+SUdUPp37DF(b~~!QfqScP~gv zPL4C(fh5M1u)xmzcUb3OU?lGa3bMqnDi@|VZ3rvH1uIX0cFC)rwP(>?o&6c9KsROg zi_2*pq+Mno8L{grd)z)&O?;<<=clC2U|t$$Y&m5Yws6SL7Gqv}UvX@bkNVy0(|^V_ zv0~Fm1gOY;!a1HXXhm-!tg44TDgahb7h*!IF>p^$^kR^o?~W{-vjDeAzTQCp=Coq* z$60*z6r=6yjZGa&r!gDUR=h{XLTfAz+}^y0#dy#Srb68M{{F=w zXYNfe;^z7`;$pqdeBt&ihfk~xgKKeoLcrY2iUW4$0mQ_x^*a+MSl8=^=jR;L`dJ1D z!JZPzn=SHD6V6M{gmO;_cHSm~-!J^8&E~35)oOW>dE{O%>EmozhW}u!u1nE%OKVl~ z#11@GyRP({w`ZlsK!0;JjoQ*pZ2#rywz7Wsvxwcd;Rw$Wr~?n^e&kSQoOoqAh~n-+xe|}qkUcz<(hmL}`sbboHq*7Q zI(wh)IjU#olQ!=ekUldU^hNPhQp0>cJuVGa6jZk^`w08IP5)W`Sv=VOFkI0@y|@XP5<-v4 zV9F_;O;cmjX9u1C7{piT?W^WZ{rQHMPLE}eR$b6+$T8Hx@%je4dRk-*#Xg)+aQxHH z;XbBhT@9;^z4W4|@4ND}&-QLMypLzO2JP%VyZ$YoI83An;gtHXo=#JAM9XwFNx!9p z#o8W+dEUdhQ*70((j&}v3}GdBxwA%T z4uyCs2Hhlip7qoiQ;Pl|iKeY@SPDM-MT)AT=lGx!ERFDZRd3|)<@6;?t|H}Cy{uIm zeZ1ZY{~Z4;)FrppWng{kPT_c`2BcBe&wGZIVUva5>heU5RBB{6;^V@yD#}gMOPW}Y z=81k@n?EYm^=x58c3!UkmGl1~yIi=A<@OZVb`;I_*Z-6zWq+nmZG2M?0?UG^q z7btc0^fUmOkgt}tZ`P4QjVAEwkG++aE04Si)8l<6VfO%qUOTcdKOf(<2oqCNatihU zE2rd_OeylGuS_aYuis2eo#T}MTpDnuIpYsT0Nf`B1S|}rUESQ!A_(hInYkF4>n-72 zh8n#m;o+1&_nkZl!l@Z53idpI69=6xmIUc0dDQ^*m`0+hJ+72UGLe^$tQH`CkQW#{ z0+wWCczF1KgTJ6J9UVF9`k$}so~?{;hA4t%wArU+J!(B zWTK~#7{)E9Km1V(9|JwXOi+$U0vN2fq1XWR4NrrW5P`3%D_{Na*MC~ zw??I_+uBprmTH*Tu0_zcX7Tp4%{5hZb=*z$rRiT^Uq)onTaGf~QZbJMfjVEuiHfW?E(g#Z~FX=sR@i;hGL{#*8xyQ8j<;xE~ ze*6f<^wip5wqAl1p5~`~^=g&@$&3@@o>4`oZ4kN5fM_f%ECl)amFcVXik%hSZdmP$ z7X!`wek(VyS1 zMbfh2U_YL|HPK&Q>@ho#V_NP(eP7Q*TrS(%+=ROP?z+#Ph2`Z$nsi~<{BB`p~f2BV?n8zohrt(8G>ECx3L-eJ=X9;1uq4a+%U zQQ2SaN$K|-%zP=D32rv7Q42jIz4hsWMs;pf9~AAZQJ)j z3f?(u2B7+drf4fN4|RHr6U-O6m>_3`FHJoKcU9W8ArWcPHAEf%My29S)CZp51Mbee*5Ub4)x24xKi# z8LGMO^Sh2?dKPSH51||c9#$J#N%|x+|29i6Uti+8ckhe}*Ecroe|~xrBVir3Rf*bI z3dI1v1?n8_5&UXdh1m&QXYV|M@lqZK5Fs4>LN=f@t|)x^!v1PCVf4r%zX) zjG~6YH+8?%R4}xq-^s%GoAl9XvvlDTCobQ(aRc&!3>cV#o9y~pUq2SIP_;H1+f(IV zepyM$GQYdP`Nw6fHuP^m3F3xBrR}D^zn|zWo>d;>z2NmuRZWeZhbQ3cQv`1ZS~V({ z>9CwfcF5DG z?N;kqXmm4?CwA8Ss0}9eNrwmh0Jw@+SC!j18Tz^-o$ z(sL6Nk1YZ9Xs@KQXfAS{xfKYoS!um6Q0XfLWeKQ7i-?JZu?!(d$pZ{40xN=ME6g9| z14~OwYO~yICwvLaKM9>422-YeGEUxidAxKi9y)Qc5S4r4WZgc~x*r!+CHODDhB=Om zjR{~?H8m+{J=Am7j9W3lL_|M3qp^t*Icxzjwu^$eT2$8}9z1-g2g<_Ou~ZpuMWxNQB?m)ER`OO2QfSk5*~P^rN&&z5yB@bO zT}(90w*mq+H6^eiXF7im*GoaeD2hO6%oBz5R)?lN6r%Ph$qii%@~A;>#rI4lQ2#PK zf3rFsHKDtw0~u;A6fgzx^)N66KCxlGCxc#ibDGEv1qLEgkOuMb@fiR00)U65UoSPY z%&P+m4RiQ}fC*8#13mQNe`T$3TMrI%yAOhtfs6>GU z{8$KDpYgZB2lwrJ+uEw-Fj!ToAkBgV+G|t}?l=szPpYOFEsQqlz`sJkW_S)%8nj$k zc;;UwUcISpPst@icIbhUBAEGLJqNtgXR0VIGG#B=BLR-RMGg}X4taTb1-Cvh_Pf+`lVfIG zO&QQl&0tZS-EsKn(Wze{N7K#15x=<)%QD^q^{yo1$tad}@w zTesgR0CgCz5r;{gpLacNR&leq-y=3S%71-h_t%hfXpe)HJJK|!jR!K+?ho*!>$YSIG%k#_y{39Qf1eP*cNCPqdcl;51I z-L-pn_M|%MC>#S7Z-nc#>HS$md)LBAfz?u{u_#6vmz z5w0V!1cBZFxmffq2ijO$ozaU0$qdIp4o-nL^1k{TE3*b5l=(7!S7rbebI`Dqfr9Fk7~l!o36;5N=PVnfxFF2K+KL={RX1|i7RKzMNF91-OkDQI z`5Ng#Kb;>xexSM+I#Q?-9{KeP73MvFRgfX4)MNOtWq@s{UfL)CdMf`pKh_*aMES;( z7V&F%IGMxD>jTXPgmM|MI?%bK^U%fV!D{n}sY&j?A-$`sE9zXBdHuA&+Q63?0NHPC zu4fzOy93|%Y#i~UZ>{X%5&#o051eZcVc9HJ>yphWC@NaOX9((z94`Q|Ye&wCvNVh? z^j&cz`fn_E0VTlMD;UPg5Eh{jt`CWu-P@WcRA);%X=sFPjVW$XHM^Yf8@UbPt|ONA>r_{QxVaLk>B4{!L}>0$)`Y1GNYnmGpR$|xahi5)mj?tBe2>DbMrw?(!vvg_*QTxNqv1L z(1z1M)jQxHns|^1nP5)0Z{JRMqX;-?YiqmSXihtU#kh?=0}2|Mp3VW1MMZwuaG0E= z->NeXw&e2?1HxHFF~^&NY>SFDe(2|?kt2gs6Qlf?1=&CmAyp(56iBYEtx@4&I>FkI zO1=S8*ntRHCzAsBv8ZC=6FPS6BJ6qx1n1J1li@Z13S~cnxKNry%XSfs`J!q-ttB?h z8E`sg{Hb`AmYrP|+Cl@+v9AeaFvy06#RvQN` z8?^pNe`(1+#f41CYXEMOdJ`g)2Sh~NPyX7P02!mi)Jikp{6mCG?8WF7FcpedFQ zeSr8t852h_6==)@HTh9>q4-{Ro;Ej%L8y~iNRV;4{QC84RM(=E1;i%5F_r%p3Btnk zup$`xBjEu78=A2Q! zKwa3%Og}0|Hl&fW-S)TZ<|qFy$cBwSa*^tmt@ol|V5x9e799=L>>p zbd8JAHt?Jl(ib~<{t419L%!EsbZ5F}@t16T%XN$o6^qxeNMEc)FTQmomNBS~@m38} zshJ?6z9+<^>D`o|Xby*0vYN8Q?OGEr0d$01eRlZAJ4>^@d-npWMm`+~^4eT=kzeZ6 zL0xTQ^l8XN=x(Q@eI(dZg6RyvP-n4|dGMfts`N#~IlJyDhdngeeIUIjEfj}EaRK{o z+1h5BK@p_POuZ6RUl-sUJB2SM_ZB-Dz$WbBRq(4@BZwL%L7J15Qjx%(hUVrj zds1Z@bO$iy2ZM{p+a@I?b>>@ZDqp!`1E;(qQcxR!T9^R(#$cmWes_YA%)grW%JLx)o(Fk& z#DIHwD1m|zPq2i;@-;Bir00?cUa?d=^pPrv zMEjPiP4IP~Ig6xReqJGFXMf8RZ8R!#&%}+zc^bhjSeh;lbHCd#E6{)j6Z)%eC{@z}k_X5MZa+xu2I; z91EgZuh_94&Qn>=@_7jnjI1Ei^g#KW)7L4>w&Ly_eedrETeZaJY;O8N#mtsY+d@$g zv|mF*+yNJFG_>5+;)aK5{hk+1Z2YGq%b+xOC zvwOy=R9kvCRMJ56twU0S$bi3#Py;k~=_gFe2*x=bJjlV3j#6(+y!^8Ha+D*kq7^sy z;OyPcf>3oid-g1Js@0EGt|SUlD1*EU+-C%d2OGeL1v<(11Cs7oT#7qu6`m#0m5ujJL0^eOI<&$g^j(w4^jPAx|kIWzr2GzX5^T9zxz^AL+ zZxMu|z{VD?+R{=Q!O09f;5V@eF~{ejOFl8|(011gorZCHL~J2mb{? CE8;o; literal 12131 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 Kimu+e|Gxl$s=ToP diff --git a/public/images/api/qiskit/dev/qiskit-circuit-library-QuantumVolume-2.png b/public/images/api/qiskit/dev/qiskit-circuit-library-QuantumVolume-2.png index 5b369ad37956103578804b5979a8771bc407a5ab..1c4badeb8b5791069b45a72601a5f04cb3c6fdcd 100644 GIT binary patch literal 19180 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 diff --git a/public/images/api/qiskit/dev/qiskit-visualization-plot_error_map-1.png b/public/images/api/qiskit/dev/qiskit-visualization-plot_error_map-1.png index 72ec1a5e477966615f7175aa8cb645e563107ce7..85c77b6cf105db420c7c8904c1d60c4c64563733 100644 GIT binary patch literal 49218 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 diff --git a/public/images/api/qiskit/dev/qiskit-visualization-timeline_drawer-1.png b/public/images/api/qiskit/dev/qiskit-visualization-timeline_drawer-1.png index a15189016ecdace9b14dc4f660c7a7e1ceed3edb..a21deda8ec6e4a72b31a583737dc0fecef35d242 100644 GIT binary patch literal 15879 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 CUfeFA+ugagO`_t(5!4o^a9U=D@4=p? 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 literal 15975 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 Q2pvF6$Uexu_vFR@0J0$kcK`qY diff --git a/public/images/api/qiskit/dev/qiskit-visualization-timeline_drawer-2.png b/public/images/api/qiskit/dev/qiskit-visualization-timeline_drawer-2.png index dd9fcbaccc9fc50b6407817e0aa9cabec6e9ad18..06772a17b83b5077b66608d4cb48a7d629bfe1c8 100644 GIT binary patch literal 8008 zcmeHsXHb(}w{{Q(q}f24fC`U16hjB;C?ZWjTIf~jRR|y@0YpJ5q9CI5CMBWwUPM6Y z5JC?{dZ^Mu=j`arJM(=r=g;|fW)3rf&ArRo_bS)A*2>!_8cH;j%#;uaghoaAp*93^ z-U5u9D9FHXHB)+B@J9l!XaLu7wSjwEx?4lkE#YoXu5c%NtD9cd?jH88F2Ya=s1V;x zJ2>3ULz180`9BMwuI{${w=_sc!66sjlnp%~5NZwLha|u|f&&6!D_41VU-w1g8V&)c z!=AMN?sZ`kzxbZ~`qgXEkf56suWwSO-PF8#IhGi~>S z<^CYb**V{c{ofDfkY?p@-3J$MKfHYV{Y_4?k_Cw`Q|yDSq8HEqcvdn>SV_F$WxGCk z(v$2b*23kzK0@6ha30(W{9s1%p?^oIr5u4Ie})1~B-DQffj=oM{!TuA1R?!1vJg7Q z`1euFm8QRg&k+!!x`5iAofr7~=+6Hg1r+hWT36eZHINr^(a~4YYJY5+LdVML?0K>3 zeAj=xMA*V2H}$2}>(eROQD$ni+OivUg081$I_eR@1=)CO-hV{zp#8yEwGi=u#b36< zAH}B2LQG)Rp4?0FpGinNM`R1N?ADRr;;xTSbI+NF&Ux3RkDidL22+@W9f7nt%|-St z4N!ONrnyUEt6iY=OK-N={DywKkfe0GpJKPm8DXZ+tAOar@{U;1vE9=vrxszQ6c!dV zEl>K`uJ1TUHbrT4z)Tm5*Gg685ZY{ZT8hNW7-gi6+zP&Uw$FZ!(cs(Ji2XseLmsq+ zcZ8Xl-mPfx>3D-?@Ld$qtK}V&3VvgXF(k0KAljFTFA!Z)8+93e>(xrN-WxC{r#$2# zCIwYhWngG%C^RM*Pb2N7-8faOfj&zZe`dZnH!dpaB43OBMRQJ0GIuP<)>T6Pg^=>b z*>)w*$Y)&U+IJsEx`gB1J-$msVN{fw=eaA4aR)5v7>>Z-w}6bHxt}rfaLL#&Uvdu* zeeW8UJe2XlZ9fZ_DQoHJ+Okp3+QvSaVj*C(J7{So?@&r^r_zh>T`O- z2%`4J`fDYr4~Q?`E%Ago^SMf5Mlhr;o6oGyAjHycWhg%^Dk_e%J5fR>nEaC1E@BEn zFm3(*J;!@PxKgL0+F>qW%Ogrm?NNZjrFZd`4y=<7om_sNh6b+^|H;;4XDLvyz8~$x z=KQGVxVoTW`IaLk(IS26*9suj4y%+@zsNWn-iccHKU7c%c6WFGn4G*$YtFg6)yc1K zWE5||VQgkrFz(uDS~-QR^)r_5w_R`VPn%)(F_b%z-q;v3DQhp2ti#%3q20b~-toI* z8}x4bU5j2htE<0iZ{gDEF|Hp^cek!0wwmvtJBXs)XhY>@$(U~j{$}FRNPMEF7kjw7 zGW^UO2#=}2WU1@e+2usX#Kb0y!;?M@`5rE3>%m}I7pSgRRbKGdUPs=TTP$px*ncW< zOj-^f=VdsNO~S@Vi7!3Vdwuuar<}jaX%MY*!2IHMy^BEdv`H9+ z#m#e!BC`dx>)LR5nMUHhH0#b!%L@svFhj#p#ocmy%pHj&4fP~RZ2jG7mak+%P6;JpS3_A=n z)a3>e13w9nl3jId+NaLOaEG>}ef#$9&e7hQRPB3o=llS=umJ^Z%EQU|P<--52H7RH zyny3b_L{Ydap*oGid8D>)vNQPPPRjQ#rnFPg~yMTi#GAgD3si_s-24)X=E8%?Yx@Y z#R=P1w8c7-Mp{{uGcrB?NScs$Y_fj1r8g`AS%)>kDb|&22x}3soUOsBf+)#6)ISzQrSVj*-3nA7xoiUS73m5t}YXnd8kCqZ)W_ zTNHcY{a~`{@hTIj=h_%{*3-1sE4I_~d8N9Vib{WTFgcDy1JMf=T21!e%tfKGHKbCp zBUo-*<>7^z--i0FoXZ)#s%0yfmgvmSOIgl%NA%9~Qx-h_v97Yd%_X9I)<~Sqzcr3Y zSnDRM^8&KZe!Rcc@$=^g%<|x`*6?z#H6v?l>*cHj7x&7GR8*K{Oty@f_u-EH>({SM z2mO#o<5QnFPxjm8U_L(8bko^~OVIU`5X+@@mX!YA9Xf~W!*@&u{opp00nWd^1Pt4v z2VohX?)wIw8OlMuSQv))}JR1<|1@yGidZHofU*dsgW<^z0{TlCK!o|zD8ZXau) z8Y)!V_Zraw(n5NElSoyWqlmsDZi0a+k$eQ&a6WV^y;4L*-Ef-5j1qW$ZLBos;d^=FLdnrJV1vYgs;_P*o<;+>#^hIcLz}m)G z^$ID%w?+%+dnfnohauh@`xveE2l&nf)TULroENwmcwabCBYP;{czEH2mQ_+$A(S?j z)AQg6dV!5cia<3zba}mRxGiE3d~_8uc1Aw2q3owAi9ns25gwHjE4R`ppGQKf^5x4H zA?n#_3%EvL_*D{l`x3IU#(Mhmh0_B zH^%Tk2eVBqJKiv3({qv(Al;=GI~L)sY7I?8^zA69v=L5K?G>5pqLiDCWmz}>oOPAK z3|-KiSUF1#mS_3?u!hA=(>sv0D|;ohSI7q_1p7v364@Z@Xwir&T1}q(0fe-3@DAY# zLiY{U8g3W)4x)D{+|g_5$M@cOSJ$a>KjN`v8iYPcnx$rT_2-|u?KZIbGgwts)v+?U zBimSaC;sUCAbTHk>k%i^!I(9wF>hY2Toy{Bd;e_)EBYMdb6Uk@mSzVjuGjDNFi&5K zjtFEEhV)Y4xF)OrOj#jekA;;LmvxecxY9KJvdoi6Rx?5L*Vjl*oJb?ws=u*1`wh@S zHj(EACL`6}6Ym3oJYI11B-w;=7J$pioKbS$oL=2t$0gw>TWfqlG9G_Q_P>q>2cW3} zy}7x$i)(-RHXEK72xJ%wxNSfa*@gVGtK=6Zh^O!u zGiTy`2Yxidj_hIVBspN=u4yZewBALllihSxm{h4vBSfTKcoM_kCtX*zs{Vy z!F@^Blw*{bW~XUn!9UKy>Osg5?AO15{`*&}5VeAFrHh`we;ud&Lf02&=@&(^D zSnW{}H;FRSB)t1bo};OoPuz6Ogi{g`5&4&kOKEv|d3{qc8rpd5{`KouLjxwLZoloH z@+nYUqDw;hA!JsV$Q@899zb0Re>Tj`J&Rh@ls(AQ*4C!Gd^xqNtIG>@IbTc1Rp+^4 zAl4d)gH%C|uh3s5p^m?D?OFzS9l+=?c>{7|Im}5au=m1hl|M~ zqTD2t-0$7s;p1~Eah+;Fu=Qdvn156NBXo=!a3cxR6h68@+$0uaiTO<#(5f^D?9BI_ znvs2GaWT8BOr-u0kLKawad(}n^)3YTiZ73v;Wkg^B>pP#J|?en-jku#0$V}ySBAkp zaoTr%7WCbp2`z^&Ye%xnnFW*4lvD|o!T7I&;uzAj^6>Q_uSgEy_ZEU6aSJ{Bae01j z?#D9R0jS!j)+@iHqy&yp7dJFzHsTg3(!wcRv?R)Ly~^HvH>a6dK-PA3q#C{r>9vErobR{2FN1Uc zfOO03;*haxc@5vOW>I6>h)W(R@$eVHvRYlpW~TE3ZsgESwv!|*EDk(|q|)E>Zf5{B zHvh+o45O=QL<9AGcrAs;ma5fbty6<<29nf08J>Q$Ya?hzT(7|5ZW!w%hDOUP5rZK2 z!`l=P%3vn&`uPKK2Lq?CU>E6cP`W`FxNfDxa^FJNq?xTei5?7T_&()gr+tQTKVReo z=_z5#YY3xyqOENO0v7yC$E0Uui~0{;V#02hce5J-$5>Hk&ukpFo%TW*o)D-OL+v_Ay$|1@p-*01v!Sa@D+@)6XSp<&G4B#Y2_LDj|s zgbmgf|0k`18vM`R|E5u~W`(QqWR`^IynOlciKLuYdGNd(V4$~Sy?}OX4jW`e~UmECQj@W`)n`R92Jc^8C5tLO0i#&48ChzVRyK* ztg5X1zS~B}#>OT_?1->ItR5dcctA%_|5a+eN&yp2@K&Lb^t0s>bd zgu1`NdAv*Z@r&xA2n_$nk01Y)lr$1cP!FYLb$2a9p$2w`%?tPUUtAz3M=M3KscLHK z-@hN!zH;r_wSwn&!j%}qBz9r2%xU9{}& zbCt|J7P_il%)xMo&OzfvmS;xozfc)F{rz`p% z|8CER(#WO*$-YZzp*!of8xFn6GBszXM?{UycgFdZ@j{_{`zq?{o*TyXzUAvRE6}?J zMe-LeT=4z%maEJG%OkVXr?7^&xAff%d0-tS_+oWLu(hqtVJOcqIx{|=8C=q#`Q?Rp z5qs@YL}pf&7*l6w9Df|nWw={>Y9cu_SmWEgyZv-iknh|FCD7-=t)9NU#?|3c$;;2L z82~Dg9RO;};Nw|ozg9I-?ilwdiY*@$Z@l8-`t1IjL2QT}Ek#Ae^7gcE;YqHE$h6{O zEhZ+W8axUezgjx#RI@kcxI5fUv-*!f&*|yuUQ%WvEs)21`L2jgMnS7r?G;DswY_h`!-bhy zSni@I8=x{WxT@2`6`B@-2oQT?_ojwtmijXyH;{x{w((E=<}R;ZyakO{mXrU*`(Zr)$G#}3;DvGTFW*MuJ+)oDu^;5th*v0|-h-_+-&&bQ`s$Yu~ zpA_I^0=3=UJ?uo)4JofYLC2vyv3#b6?CR%-uR*eY+VPRQ4R{reN?SX7fPYWJ*7i0S zzhjj$!pij-H!nBj9W@WA(sQLO7q!wnZ+kszv`EP~$h% z##M=Q1qLl|ZEcBIchE&S>tsFd2Ot99-?R)zy(|Q@WxUc=-^?r-)WI9Yg_J2XVFwycORg zwc*s#5m*X@!FRFxyti+Et9Ra-`&lx+c2~pO)x{)P+DF^C!l|EL-z06NpjJa8TL)0o zj-H;qeKgdqSj>4W6N}bg8MRG`?Y5C}Jqin>%m>gRC@83^p|LkYn2XT_977e5g@H=} z`z?3k0wB&aQ31yp_>~nI8@dX(22WD;_go1q7Hd@P{`G-^LPFBX>pcYsDTbbbLHvsq zp>-R;46o|TOOl@WkDx&`hU~55&{L;-mC>0`+us?wKVF&$3lHA~g|Vr-TXa%V z{>X@ddV*MfBoC>yD8Wzm=1utzA3oeYO$Lf!yXPh!T?V+1DR7&yBFo@~?u2ailO-ji za)($Sa!88X@&5DfFTzT_(%TWfJ4?@dDySHsx&{WHYrNJ_6B8!&Cwt?RR8$@tDRKb~ zW-n$gI8W9Ys(s??2mP(s_;?gxi=~%HW$#Ey84KHVy~ixWT@xfdQG2VS8KCL~v_}Jw zP2cGta!yehE>oZ@qAsppO$U=aAe8HUcO8bG26BNGzigUX9JHgicNq8|u@b*)-Y~&h z6u~U2T8Z;Y031}rVesFRb?-*Z>S*ciX3M2o^G3V=+uiY^YS*|lbmip(+aj1UBs>8hNug$Hvs>Yc-P!61S+A)W z9G3dh4x29_Q^5-R)-ZZlY`Dg44i1IN33s*d67g>YR1TYf1G$vix-yH zm#!E-2LPLe1q~?nE_j=t684WCg@EWQ_gsMyS?bjBg18}Ro7Hh4NmlsVw^}MHZ`&(o z+oNg;Bx}t8B)Pd&h*^fvc!t0M`M#UY_yHG`R5@dgsOv>#!eZIPzwE79}Fs2TfKSu55Xj$A-;!pCUJ64TlB zyGEJ7lp+#bYeV@7(b3T&zB_g@N2{fj)YO9=vApBU6n!_&F@AR0S?ULUt=}UR$P-`C z!Q;Mlt2rGty#nA>&(sw6>y$7R&^XE+4=xB^Uk7-`=}xv>uJ^{Is)~wWsqTI%xaG>` zOpCMoL4TP&hK_+@_)#p0dL)~S(b*}XQP0e5eX_!`g-ldT48LN2<{PtjH?k9;Ea(HN zu_O1>+V=n)a|;UgM-0p;cx_DPgX~J^jTd#~Bo;E5fv;-42SzOdJw828bagWa2DG7T z@(J9$yclA%1LBa;DhAj9KpRRL8m#&07K4hmukWG6k<64q$iXrAdMs&5hA@!<@Iq#@ zi8NlyyP(2#s(_vsW;a@5oo@u8snWe9v-6%v2tY~%(5aCi?mCnaC5zhdUzCc@1lVrs ziPghTH8wgpIPCli=f^K+r|f;+LT*mqcOETK%+1XO{m?!gO_{F@=KflRji-`vH`BVU zZEYO^(lU!V8N?tC4i2Jw5)-RUpoDGEu;URB=)<`z_9Xdk)Dw05F{X)8~2`++V&3dBY#tY@H1{a#1`s;mV50+gR!t}kFK_Mw37KE za~x2@CF#w;h2E4xuH+XFK+4bp3F34!RBnmr+O;=$>xK{7mH~>-^q+!nC89GyVAZxX z0bHWLe%)a(M=R{jn?8`AcY&3RNJvQH1)qj++K*Q_cXW1QK=+W2i7B_ zed^-4!FNj3uJ8ts0Butcu;}=%p2Kgh$ZZz&coCKR_wNI@>OUb&6{ei5+OBU*fDWyF zO9)N8faS{??~MZB*eh?jlAma4eGn27dMvA&81t22@v`>?Ab%0J6hat-f`T4_%Dg>) z5K`KmA~&@JS^`&Y+;Dmo8p;B~q-{1z&Sh|Tm?gxLkuc#A_2KhpyYuAaEP&Rw#>0XK7BBw`2vq%D literal 8035 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 tk@bl2W3o*qwc}WQIJuQu6%AB^lz9|67~Q9 diff --git a/public/images/api/qiskit/dev/qiskit-visualization-timeline_drawer-3.png b/public/images/api/qiskit/dev/qiskit-visualization-timeline_drawer-3.png index b8c83bee8dae8941c075fb599b6bb644d2e04ebe..e0d96143c340a758d5574a5906374d795380133f 100644 GIT binary patch literal 26427 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 KjH-C{#=ij>Lc~u1 diff --git a/public/images/api/qiskit/dev/release_notes-1.png b/public/images/api/qiskit/dev/release_notes-1.png index 2f3bbb7d13eb66f354bc0a7e7d1d389c8a8354ae..ecc619edc4372acf845bbcc7804372387c8217c2 100644 GIT binary patch literal 7267 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 Gh5iS4t+XEi literal 4185 zcmdT{XH*kRmyYscK@oi^A_}NMX+lI^L_${#1f+&uf`If+LKTS0N{1){QF=`vp}Yv8 z1wxY=X@P(cL21&Zmq>t(XV2O5?VoSIJ-dJQoSA3l$J{%2&dfabxiJQMnw%U08~^}- z6RM?Q1OS{UW6g8UoMNGIbTphbC?Fr3BVpc7$Ur+kM}V#!(#OLa>EUXBJ;2cq;p*)r zE3F`X@6L4>B+>@~27x^PbAhzCpEKx&9@`kp$ypyQ3j_dgUhj85feMTV0svecPz`nC zpp4at=g8!pmmM3<_by+%E-&5pl>gBmr`az>$DQHVAQ`(37?_$A`7cVAvqyWPDatYGi(>e+4I zNoMOFLa*=T-mlNWqFc|xx5!)Lty4bc0095Zz9m+88n32L0{CD5|A%%ve}MTKmfd@~ zax>qwbKv{Svmrah-GbwgHV1t%YeO0|2HbJK8Q3{}TCpl2`^bbtXstj^@C_AaDOc@4 zU-0V0y7bN9>9%9gn7qrXT?ApJy*D%&``GDMDw3*rv?_rJhTzVa8AD(C5gfFVS~LGn z`0nd!Ya{AWbndsc7pl-rhtx5nFnZVc4B#$DJNrL_QQs44=i3zo)54zG3@?`p`sj#a zWw=>3GP8oJ*30FLm_(lqzhQof_zD|RfViZjPE1UUwwBgFmFtkPp<(X+eo$|Q!q8F> zfb1M|8E0TA_(`#hUqV8HI$R7(NlU}G$6cnZ2Dq<|6VvWF#wH3XVh!^l7J@Q2QAevg z+S)#@tt+a<6&vZG!QdmzsLM+9kw9jndZ+$h=I{SL{P~rU)uT7;KC|y`)r)8}&2fe# z40_n6v3K9xGogjAk`G9g@M@=~kc@1Bd=0^&%tTJ`>2_Y=X)Yn-fPiZ1&=Apg22wZS z1*Mi)R3@j6Fm;?QeR~hvO;Z~DDuu|-RYHt4E)nRMymi3`R^Okumm!4KgqNEo4G#?D zygqjsub-`=t*uSX44f=}C#v6Z&x_>w#TYveKQsoF)k07~p-I}iBMTeOs#RdVBfSUL zM&>2GM~gub0w4F~#`>2X{RdoYm%h<=;DBL`3+z4s(d+<4oAunI2zO92MJe$ z$vxx;e6#><9i6$Y2?75LP>C#LV`RH1g!q#e+8rX@xHIu*lxGMKznYSo>Sip`nakOh zH7>RHx-B1mJV5WqyS0_4>{eoiDJaKby10~7%GxhV9^7^*yz@r|`CZEN6Bk5QuMkd> zZvxu^yRrJ&mF%?q${n&4S1P3m)H5D+J76QoEe5K>d=M3hX4gh)Ge{=P^pk>Q;L_p8+O$`Dor$q9S%<%^LL3n02P z|LNVJ`l6+!H1ELl;?5*R56p(&5%JP3^$!X#rvoa8?{TSs#|YDXJTOB;Qi>3 z!fjaC`kPi=U1#gvM%!8Ujy|QGZ4vjdj@C8nT{@HHp1lbzb}*WaOOIv!`LAEC6*BdB z`S{$1u(|^BUKu0hw&jI77`L^_Mx6e5G}`-!u-Ww%h|9Jn5{XhjG85XSqFwl#r{aIg zCP%GZDZN4d!zP>(0yT1QFs}iHXeyq=x=yXOv5xyTQ+dt@tf&-v$q%`*mD4xtgJf`?G7roWl4_}98{`M?y{ z-lDRF+a%a}bXs(pP+czh``Sld*7lu+9DF z8AfG-g@ofR+ntfmjxu`g7s_Tn8bF~j1tXV*K$cZn+@gBJ>r-uV&$=$!ge(^Jbaz)= zzwsjRmpw(AmO?xno9sHkNviY`JkMpP4u=|b9#5nbjvON0zSw;5EMuGWwOD%6KIiiw zIX#{JbGaITv?)Z185RB1AS@o1uP<*Nc#SCTm3a78PYs6gh8z#h%QG1Nz4j>}adZJciS2LWgDMNi{P~U-gz5Dj7_G0n`ru z73uU3!iv{{6tHS!YMS~dH+RaLH#x3D*y6mrhZ`FkX$lA|Z3B=)nUT!4FDfe1g5mT` z+}!YdAo!gcdMVL;)U79392~In9+Dv7=>IADuh(RwIZ5;~r4+O{+`<-%*nP9iG`^Ks zXDD7HRS6b);q{vzB2IHjC@NYlE-sGO`sRQ2su6KzksvG8yc3y;U2a}tfa|w(89$VZ zvm%CQ$d7Q*9&KaWUs<$40MdcSEPi%&wg`)but*fAqm%SI=&Y==yu6z;v4mX^YWT$m zv{*1xH8bmnUgMLn+mmi~5`YOomabYJDTP5Gk<4&Z`j)Z~x&dA;Qk;{cR##UiAuVm% z6nDX@S&LKauUYpu-V`hZ3OjrS$+n zsC@aTWK`Q%3<~k?YQe{kMlDYb#>U1^GnmtXn}TKww;}wB$4#q5jVJU1L|+YN}dW;$zBN{ReOw4 z?L#aqKJeW!zg~>c|GfSm=?5O((kaBQ2dM$2Pn5xrBxw{>A#zCHcyG`&MYtI{d9Xkn@Uu$WMQ-4+|lNsvh=qN5L3wx=i<~~yLwsXetF8|8# zwBLhkmpIve6S$*qSUP=FX_g;fniyn*8*<%VXMgb}r`BFXUfxU(2Ydbc^>~%*yN-mb zxSi!u_eE;qI4N-LivIXQj|yWiMw=WG8Nzu5sQJ+>_t6Ox9;MsqZH1p?V5NztbJFu_ z?F$0eCVMCp7#t3dTVxrIL|+2(Ty~zsycdCQ0BIhQ2JIBeu(_?Irafw>eqWo@hHT>X ztxcQOC-$;e1W5xTNad=afgAlbfuH2aw?)CVeg? zIa$js%)a9ss3Ax3XYI`P@q|~65ex<-XPpDo1GhSG^>1Z)N59q~crQd*F%2vM1E2XW zM75bly&yVyr0&uzG9T89!6j-(mUsa5;7Q*TfcS_1J+zvssEaF?>J5|-W&s1ljovE& qK>q)b6#i-5^$+Cnzg*XI%r?4Y+yWI(bY#`h0O(^qjk1SNU;R5V|K%Fb5+P6YgDnn0C)6;#<`M#fZjGBrZ1}X_E1OmZOkeAkgK;UyB5I8#&B(UY% z$q5PgPryS)*F)3A+QZxIjTJ=M%)`~u#lz9goXX4Ujk}$TGZ&ix8|MouTMrLccR_Y` zr+?pp&E<^^JGBbJ95~2RS9v{m2n1aP_75(|JB}6tF$`CbmeBI~ahXqm|#(O%&-#RDfx;`d1x>%Z!MlgRD8KH1o1(cAmxM}Lkj%JT`K zqM|Cx30~a)es&kODDAwMX|;CoR@hJ2@^4MHZ{mguyY=6*XE9VL@X@dzY0I3we_jYk}+Thc@OklY4AfQ7^wz(8<$*)3A~LHlR%yF&jALo6=Cn^ zS^WRwCFU|)1&15+q{aJa+DILIUW;DCh)8Xw?WCV{ zaCo>soy*45!U6$;^7N^MmKHuZjHdxv@WDbu&%y%f)2B~uXDZ0w1_XE-X`~_|BU|jx zRzrfXuYJDh)gUc3drr7%!wyN%id!nv;JhU1>dG-)X;O)q1L1I86@P+=m}(!iJxcAd zJqmX)Uni9<8sPeHdx5*xal6ZMeSO{8(}U3QaGBwE<51Zasgfy}Yt-UJ%51s`T1}VvHN3$W{(|sK0ZFj*{a-er_IexY9=NWr}HhU<*-g~ndYiedjEiEU91_`fhzg2{7blZqDb#`WB!jDC5sB@TMGaJp3*!9Gs z5C(5zk55b>y12Nkf%6EZLXot$FJ0Z=e?do2{}lY{(tcA^Wiyh+xtAf}UUWQXlMUO7 zj75R(cXe29><#XN+4=Su*w+2s>Q{J^`xYvA9dLV&6B-uwYd;apB73am1R`}u#}~2* zWHGI+!eICOUV{GPV^<$v->zT3(8Ny&27V+n(h3MX0~ZyN(~i1*c$l!<=D*P!gXik$ z+4qsvpvrE7;m_63>fxrRd1V%#50lkf7V*<G{&12bdS6AbVE8yq#0;eD0OD zCrG$$a~^AQbE#7lts)lQczX|A?9I6C&%O)~4_^&}-cf?F0#>p4dZ%|2UsZMdq2Tw) zuCwk4G@p|`A~;AW)#_-j)b;5v_G)lpdItu|dTI>W2Eg@7`tU)+d=$3GO|iXY(0Zp| z?-&yt3~9ajn?Wy|vGwOqiv2>l0iU$2?E3Ch86?}CS`U2+*_rq% zm8+JcS7W`)(uK#M)cKCRy}147&1~VTG{wchhWh$`EV27wFqvrh`H4e9LiFe4z&*l^ zk_J<1Mh073ZlT@@hlC^+-23fjeDGE&^}p4a?5F=9szoZLpoI3m@mR#Q?EB?uBwMH3 z_>*HbO|O|PELy(o{Nx_}nC#&jv1G~eU~C#Kt)Rk;6*kV8rcYo+wvSNOe=4FI2R<}3 zd46mi;xQ~^JJHd8!BOdm@8yI0d5gA3n{noO8$yzBD)o~7{!^r1XPY#*d(T`eBq@U1QP8YO9H4rU2(6Hl_U#9t@m&1WyUF=6IzX;hujkN`r4w zGc$V0;Ebl^$jaSOBdv9m`A(_t(;NY^nv~R2vV-5Nwk}9gQVLB6r)aU*{0AuJc$9Ye zS`cBm8D#WaEta>(UC7tRJy`#A4WLu-x!FvsezU3AdfbhsR`N6GwZa7coNx5)CWocS ze0M<-y?)&8JLgx+-4{GTX5K4Uu5We~`Oi-!6DwC(8?Y?gxq6|#NKwYd!EFfER9-g3 zZ*|&`?+%?HkmroFCrl~{A1g7LP6QHX9^O}pks)H$)HWwdYeD}IF}-}8z*8gCev7DO zZ4+BSo1f%i$!+OXL{R^GSbP1qFJtyjslDe3nNb5r_=jQ8A7HEmT#?Jh5r=@+Yvm2g z-Fz!=!$9#v%FWH4t#`^OzOa;D3hC{H5DqJ^idf*YvCYNKW||EuHb(i|xKQ0E*SS(I zmo2VDZrW5(Tl+I{=HVt0un*Kt1+5>R{BosSD|5!H+u;DCEUY)@n#J~Tl33ZlL2B|Z zZQedD&J;UKU`r%v0~hzQ%dFTN$2rQflR%bkcaNnm?9weZllC~UgzM_*b&ZeXg0)6o zK_Mg}0@2ualOW#7X1>;r-{;sg!pUoYHst*L-2SS~bMG}uXt3QxQL66aw1G?4&=7hC zpG$>T_K38`TQtxTd=lc5*z&bF(H~;C2to+Ddjc`td3`B$!@&D@yZIQ3?PD$=yD}R+ zW6qmvcjU$4?VRU~SM$KHavC$M1LJl6DK2RWES`K1c+Sq_z(7<9rzuFw}TY34~ z(UHmD+dqFS<0!=_$_*N1<>gTv9UV&-uWrt^%uG##*^HV~beF+2@bUNGxW73Y(en4y z^B0s-D|w&%<+b6;y@~5pZ>q+@n@y}=_irl+G|krR6W_gSpkjHXNbyD7KD{C3;B?4w z*8G$df8F+V?POk@jwtn?2j?~ zf3$S#Y-5W}uymTR^saatt9;N7$@q~W?}>>!f413`;I02Q!L-<3jyNXcLSdNx8@=Ra znA{=>8hCy;iHZxSFRebRDcC>3$mzx|{rZv3C>Hc5pt+SG7l-To`4bhKeCJrc91n%0 zl%(YQ>}(UWj0AF_b^d#8sdf_2r9k_M!;ebGqqNUmLwbdU3i%q z)2n+&Q@RK{3kPv{VuOtQla7fXV&YeB*3%@A&OUmBvAqn1LDiA|%!f6#=kH9Xx^adB z$=&?=Rjr&Exfq@uhP1gJ?R%my!x<+djCKxxpM1)8FwR=A(ik>;Hb5P?qK99QmUX3) zt48zudCB+#0}b=Y&buGK(AW11)Z!81!D#EMtInjvY+6$;nCP2sJJ)uEma^jv>!PsmkR(xa4LJ<(cN;E%OzpO~^!=tt#Txo88xO>X<{dARw9{ZpO zGfJ&M@^vejH|9rZbZ5zxPVU|JhL`)5GE9SmvXe!$*qC2fPFlw-#xfFf?#5%H*|yBC zwzqBLm~Dchqf2`&a7<5EZnjQPu77@6A<;b)Wb7!HZ%-?G^xZmC+rRg+jeqs__8xs3 zDj@jsB@Sq#wI5iD(}*Q6-W#&Xy?MhK8XBrtu34fL9Tyj#n3(7{m-1Y*%5jd9+i@1# z&d%%Lw_NY%SI(4`v(AWpi9Q4phy6XbQvXDvC>45vfIP0Cq6!YN;A#p zFJI7wgoNT(V#Rn4{J(s@3`m`4pb$*#l_K~unzhSFEBF){UbI|e#hTN=a#3-;=TN#p z1XrqU0cm9H0zs;n!cRD)MOwp;W=+KZauq-bmONj*6|?FL|=+J1^Tj`$@!z)yVuPE~<=4uewwT-w*&eLKKR`0{lRH@Y|rv}Bka zlrb~6yt}wr`F&kKb}uGD@Bb3OrtqjJSnq;@g(U~j{AXS#R4%TXH^?vQoR>&oDDBfr z3vOdgW%z9iaB&87OadYtW-821|NH>8m$XPFGq&UL77YpM-bPVcOH(SKPN-3xIn~s( zp-6uTX-XLo1z*9sRqc0S|IN6qx%ae8r?UIkud?pdA~hy#a`N&6+_JvWQEagC4uCWF zG(yEu&m14_AruMNKe;OO*WU^HBd#;JU&qn&!NV2lB;^5-u<;U7L)J79u^lUjTlOXjV^&gW7p^SAztX>{59xwh8=MHLOcmB4J z$VK^po+|k?CKoO;TQ{Wmx16c1Ir@lOSe47Hqi*AD{@sTL*X_-9*C4Oy&l-#kjC1v# z5q5YE7f%oO2OP`}x)gR|@W!#-g&@xE`cYA*gx8Ksx)y4&2c|3cr29uekb1V^NKun`Z zP*2wkT7+H`zvzhrn5fb%S8_DxzpWrX2^Flwl6&tJk{Qg#3ly5!q}ZD? zra9^zQ6L=koKk*om?7d9M=YD@%5h1lK9n*ysDsUQA@}DzC_ib0W82X141TTqYpU+> zZ+XsoJH^XYdz+aW-lsZ#C*m6_+pl@#-8n?ZEqgb=P z$-(^+UhS>uNYHz|zg|8G)8vtArB^SO$a6H9k}^|Jr|bys>xV+N_7HM42-i;eI?5I< zZcY#e{c0s9E9D>(!PRw5w^MGAoWbF+YO5bnXHMDfVajFJv(Rov4u^RZ+L3SYkVV}V ztRm%aI8F8qOn362Utu-+c6?PiVllMO@ug9%=EoYsEl*D~V!N&7l6cQl>hG$Mm#sDl zuu)!|#z~w-R~NtCYn|Op zai{zbY2Ui}&pd~Se^oUe=#%L%Q-$s{-u6&OR_e7Dk~5@``csq4$1%fTfV zFoh3^8&X!kF8)LCoYcznFagOKjJ}_GOQW+zyAtDi z)7TxXhwoN55oFMEaHSB=AJ+m5@7&lqotNPtx^*7XUj-~&?+;uQYeo3YDZDP;Vi{|~ zn^~Gg66W912%U(6Svn9xw3V~PS9pYfN>*+FAkZB_-li?sqWuZxgIAMW%*6{GArgSoYyt~v0 znBDHK@U|a%xUY}&AtfbG*;tqK?Ma2@_C87%?+3(5d-fiRPQ1s-EVwxE_$)-IEa?AQ z@b**zw#-Vgv+rZw*Y+YDgJFt-Zcvd4q=u{ybR!{WIZlw^-k!=%h3Tpfs z*!dqSFko)06ZBOQCn667K7Z`$gvh?Ww4E&#A~P`wM^edZX06EDsHUbF7Xz0~3j;%> zC4Z?O-=|zT{BEEnXGp29d?Zp_joHIUzij~gy#f;;1eHpdTcXpFK8qveiDG<#I@Cw_h+wcAAdk9 z^Y!xFnZ?GL(uNTsFN|A>iP(*MLAQWSM1)L4Lya!B0|Nt?0P^hFvu3uhhStA@x}0uZu<;QG?`^~=$c(Vk6w0RdoSLzsl&{uyv$=*3 zWlxLdY$t=hu>CCOEc=+yNb03GV|ZdJfj7-mg_<-}xe& znwm3sm0YM8iSQCtd|kV9nyF@?qtI(Y<^FCTtP{lxBkzt~>&88OFXsF9?5+Wqd+!F@ zA)=~|Tb+_rmCwN_O@~#W3DxnI1&O7>P=_7O2Z|y}d`4zW@dpXdLW=ygPC%M-0XQ_@ zv7Edx#U?&w#u$_$Dy3F`b>_1qB72-QDn&t*5d5 z^;}N#++@N&Ro%QoUi;#Hetz+{L1f|=@jb<=@7>S1$5o-~=1n;o)Q1Z*)T9Dv))faH zT1HbaTt4*4(kLz0&2w$`ZPO#FVB2?OQm++B>w0)*g7=@Z5(zqtq!w_3O!ppjjnZ^o zSQlIo!BP}<(KR+W#1^iISYU;3y7_U>$GMm7zMfrnhW@o)o-k>q>`_+>n(BtNVWi(p zAt@GzwHNX2!%AR*81tx6$kh1-d(t*`E%IJyep1rKO7)HNFHfKN*$CyJ<#ErLbM{Cz z5wG)Yb&tJi40Uz&Ph2*bgsl4E1qF2I&p4mV&CMNOUQW-}zy78hQe!jnu|*W9EE@xf z1DzoV4rJ07Nt5H4@ko!9hmX9-lIlr*zCRNpIJoPilefO^RyCJaA1xD}PRxM$*}rpF zJ$Jsv`nLA|ZPVVn*e7x6=RNreq#^lx>Ez{LdJF%9D);9f_E$CKo_*;oSUB!m>Z$V-LTRDNTY0O~ zwYeY5N}IF|*rh^Gr52Jux->uW)>Gfa@T9x97tF&e^>R$eR_*$6%+x4ge>6L2$thnL zr$>;4a_bt9sp$6RjpRE*R@eLM6OBD2OtNTz*h+goX_WK=d?Q$|xm1NTd2X4zug zBv|&*4*9D2iK}^n8m7t0+XnZwTH7V)&Vgzx@^Uv9I(rSTGWAKF`p|%?g;4Bp-2R!V zrKYct1md4QxaxOxCYs7~=TE*Y7yI2cZi-)Om!~Fw`h>#B$XI@1Ld21`N8MzY0EkhT z?ydh-qXZkkOCWPye3yAgNX^ZSpOlou!OPnZ^r>j*!%+~>9Ifi=g=~h&U|i1P1y})y zIW1ATdwQw^?k-6X)dIGT#|K<}b}Wq2)ERQ+BVL&}4XhrVxjyZqo>a0nU=D`w%tYA2 zuG!%CtMtQax}ur=e}O)G)gM^WYW6 zLURAh@ZH=mU)C4CTK)E~w;7>;k!QW-*FYv)|Ha-B4g@)f>ErzkjBYwPXjthURpXj) z7A6;u!lE?3iK-Q6NCs3z_0NN^#tm}jeX7LK{Xoo*DpmK_8;;Wt{nB_!DF^F*AH$Tm zJ!+*?-jF;=EnTeN5?u;bPkY@nw2ai%exx&dX-7dpA-`DNu3slsUO}F*8?7)T+tC26 z&{#m~N4nn14y)pKhu6pRS|vz zr-C4~-j%u_|Bfjrma<{3&D7TMNz5d6ypS(|K6Uz@!e{N1)fSrMDk|bowg$I-!_76* zAvD&pdhLgny&M)5mCjD*1{{ruv8hV26?o%vhpTgUu4N8M*KL#3`egawbm$DCiV7i( zmNpmIH;2NF|84W>^DSfYc`{=s`zx@R!5GBq>X-cqzmtkZ@&+wPP;6ZldNrjrgnAIxGcV^|6T58zH#RIF-8ah5$-^QbZvG%*Y!KQ zzojRsx5JmkYvIoVlaCg(N%B=*f$U0wg*@m#`6FHx;tu%_AftWt!tZD#vE4FzH|i<1 zW;k4J_i$A0W~YCL;2F@#lI!<#aghwHxBWo>fAyln?}E9twbj&A?fx#Ju8s#RprHST zQyp1X?@D7c3I#fop^;G^TZ^Gp{3+u>6RFoTy{A^H;LrD@nXNJOWIay6;bYkf3Ruw_ z^M6MNq)z0X!)1(~ecN=M5neAjN_XT^1IJ0ty3JB3Qp;L-Qu$~{8Ny0bxs*{W$;RcQ z`fTGC;j;emN_9HNINn1GcZ7sqOvT3!iWpV)URXn9M-g=`d2Xz{zv|dAM%fXEgO8|=(wJZBiWC9N-O*_r!0^>qd9@P_Fri{TtI}rHopmf zidW@xVt##l+dVjla<(-xaDB4D!^;$Nu6q74ALzcR`pb>^$n$M{@B=H4MZLv0at)ft zBcUc^zK{HLQAV=X=QY3K6tx*sNlfJ{p;>Yd_I^72KkScMlP_Yl>><2h1oXob(6H%`Bq|&A0Tv9HF5sCSiVEgxY-m|oF@W_VLb0&>6?BysreZ2sdR2TT;NhD*yG%-{qhN|k;j{ggxdj4qC|Y{fxof60ZyP{xM%oC znV7d09wLt(4?z$;q+$Rcr+MfeJCU9mt&))=UTEoZKT+UsZ^s5THbVQW* zSJ_=vhlIrol6%zua)Q_Z1U9+haJZiVLZwi0_&1l2#}4+30HlqvLMa~~dt{2N`N(3` zTN<|mZljO-N5=rc?GRxq(Ue9q^b{3C_a8eBAP@u#P2$gb-KAk-g8M^L+W(FUQ`Pcp zCX1n<+ZW$l1*j9SZT|+^$yF~t=ciY&TqiQvSG%T)_%o8^#0c)rgT3-T0K0_oU42;v z%jh?_j-heSrzDy)2^fH4>RmX2f%yN`e#C-iwqW@eas#XquUidgthC-ml%XR8rWfvU z0s{v(FhlOf{~J(80;@wv!^S`EN#uX~w*R;&wZ1O4Wrxw)e3%leL`&%I(o_IGi?2PU z+jegmU~bBD)ntol#*lO&axPMGdowAH@~7>^a1 z#<*anjC-hV4(uFu=_RnMoOSRG9~w4#tkw$Qw=qjTV$7FO6N3aR>OGNp&BkeQL?gfr&o@meZYEowz(Plp_tSC{-~3!|p!!JKyiUv? zY9=Zh=!0*OI=DM&Upwn?w+oQB#QXGFKgN#&%xw`fm z3O8rw?cv5m7n993p`r(FVGkR&LzNz2kQIxPz;vbofmm9mf8nISeQazD7{AzHE+?RU z_W%^Syu5t9{*L{9a&ms%K`H+K8YhReXEYTG@tuNh1l;7P8oZo87yo=l*QlC?S4f zUqMcmc4yFba9@e#;4JEZ4~8#`6bqP5QRp-McM8+qr=*0#Twy?n>k~R^4Fj6eMzX4C zS1OB6mGhFI`reP|W`vj!xEEhCI{o{Z3=O{%R15XIPj$tD^%mER4r`*VI!!t+{x7*V zlG=a%)?9BZw5c7x5<-JUD$?5)x-iF6YmFGSzkLP=2Uqp|duU-HJun6UcOE<%8d~e= zPZpAe;aa;1S0E*!E&u~8!p_dl)L{$w0$^|EI$>ZmfVcwFo&D8~5?x<|(-Vo{CU-oK zEIz`@K1U5G-*JN~1oF`t(<*SWx1Y?2=#dg$^~Jz8DJjg;!F{lV`FB`((#gD@GAbrs zfDHK>0%Rjm>_q3UtIO$o`pW`f^{ziybrK$A8dY3rz@=ClU3uG9qsz~skVr1#hd&|) z6*e?97$($PHu zZoQG#-vtHhctCD^;JVT#pUxV_)?)rc_Z1E@JOV}ZRyBM+#isLEH8gUi|B`^P;C@_0w$CQ9bb{u~GRc9FPAc&6q3HFU z$-|v8`ibZCE^jgMf94E;_2ScKLa`%G>mlOCrY5-mNEkdpLh2qF!J?+7uBxxEa0`-= zk-5G<8=+2BJlQR)w67RdBu>xBn`-Qm7kCzPU#n!v__e!KMiUg<#-9O$%?(`3}5p5?5ud9yB;9pbd^TXet8gFKab1)xu{~T#JPyzzqUNL zhph$Q%7B~`l4(_f{n=}WaNK24V(VrDyW{8u>iDY>y`p@ zDk{MBz;FJ%&iQb$$<@v6`IVxX6>JR#eyFq-Q6V8xsYrAQA0PgDmz9dZ7de7|N3s(E z+q@pnx7?{JmKso~j;Er0NAa~Nz@)G~CTf`WL=7?btRxW7?XFa-6U-M*3^g+S<#d?x zU`nCJ$XCmBE9~`kVwXlysID4MpE3Ji?sq-hUAW>5~L#7xqve5ErIjfIj@5PLQz_QWXre028eTpyl z^&jo`Ol?Zr;pctNoeK(5MYd{N<2Hlt+cAvhMHe6oUyo!p?EYIA4s023)II=O$-t#8 z;-~{^9MEDo5gQvzl_YOZCN6fj&-FsL3IdR57jTiAnX1*y^%Q8>H32*xXFno#1xG3t znyHFLw=eV#$Wy5c!-K{554nEQw<{SvWR{q&A9yCsUTVQ7#uvX8;(MaT8BR#>w9xsh z7%M$%4aBvXwyHeFV&S{v#<_%aSN|#)myj=eXgKkv1z+1mbuj^X~ ze$&m*pQJPIGx8A;isb>ChdDCLEG@%fo}1Zf;3R7k0#5xCVC<)6V2~9tea^suB=&HQ z2mE#g7oY6~Gy87N`bG?vo7|B>5n!onSIrjnWCJN0^^0dDB&M#a1BxbdH!mX3*OwTp zkK+~o4P8cp$qN_{OiIx>5G>dLSQE@>jg?_h&s}`50U5Y)X6NRp0ihruAW&6P(-VWo z=+R2l$LqX^B7yz$p|VKF1+-U(>G+fSm3LpE9O2W{K| z0GMYnO46Se6frbjPGmL8|+;KRWV*sZ@x0qfOvW{~;a3fdQZG?7+UBh8j z_NC1(A1AY5@85|!E;LKdSHT@-vjjdEHuT}GiY^iX!ituiN2<324pd}wQ>w1Wk$^F~ za|)(Zf<&ES%y*Hp*E11!0o@_N+gc7Vq#ACtcDROf;YGcl{Jt{ykRDyU%K zso-IDM~v8mH4R_kpN05@wi9~HgileR^$H$=8pA>Oul;g4Scs6}#rm3>NXHHzl6Eg` zY|5V#h-X_aOcPuh=|9XoZqyOfGt%Tif%!39MpH<8_V3B0vPz)AuP>21b}J)?3D%fA z{=X=v&?~_mff?!w6kz(@a+QZmEOMF!90aRkF*0E0wN<+y9z+Y;eyaH|P6J>0e{~u_ zhz-)Ip%T{V*$4kqhXctHA5C7fbH5LJfz_XlUl>VN6_r0Hl@kMmYFPSPM>Uc+)d@Jl zHQG`G&oDoCOd`J&O6aN1=2Ifo)1F-pnt|8#=U?m2TYp~gJz0aAho=kN2r8#ph@A0F z>!gk2|JbI`fAuc9SoFO-oi1lNmm%5E%d?C#p3n6^=DUf-hIc}ABDrTIBeb3Yr?wx< z%`Clea{$p}(2HQ;C=hN{KS`lPmK*A+$U1@*n79{1qvl#BmW<1CRY!OH$LnP0_eJO0 zw*S}+S`i_GZFdmgt7~IB8XDy!dAd*Mill~*0sKf;uHX8%g46B|-B^8|AQWSsC^Ahs z;FthJ3NuNohvW_M;vyi3!vksk-^F-psw66?86hNxiVIoxqjjO^9TOYkZ<9j=2#0%B zgkAEwdYTL>J)K5-#;0g`Jbmt(-mdI>H!d~=F=!xO?v|!24?|mTC%pwNu)o&!byg&N zy8gguNY3h^`w|W)n~CYO`Z+6~p8s*# zlI-y0f`bF5Aez$_(_+-rMqq|Ke>5Yx_ht>AoP3h@@nfL(NzWj^<+5V`s91-%tQO6i z%|3)I*a&{T@n8nV<5!ysSu-T$cQ`mAWv`v5udS{5fEywN_o;V{da+tp?<{sj!e0*F zb#`doQy^Fx0ROjQn~81lfrzDX5_%HXR@B zlao^-5#Zb>#k>uK;eazGSEI!KJBzgRc?uGPhEKEJUNd?rM2aaXGL=A(#r<-lPQN%D z1XM29JL$lh1EPYJVBDFlF;93tohnM?!NbAPMg(U;`VVf#1$cMcB^dD=WMlt5#Z%y-)=3m!#TgnB6TWR{)>Dtj; zX-6AFn|Hc(7lNM!xOS> zbWyUa{kI5ALxa<95n7a)%}fKN?y59@hx3_({;DWqis}+3up*mRpPVh*PAtkgT%7nz zNq_FeR=k*gI8#RnaDQe>6%wN@HS2jCJo5)ww#dW7X#cK{9pD?K$zKctL6Z1PfjBlc zoFw4!eu~>8z={1)p9dvCP{6ja8F~ymSf1FGb2PV7p&AW44}$O2coI%#_$Q}<3Q?lmi7yaq(}Oejt!QC!sIWWi#fQ`;hk>zU&dBfWPs=6oA{?<-dc zXEocFfuU^UgLmg*iCfG_6Z&54OE&{kbBElU%tC#qt7@NC(UyCNy)9Ene%mt;!Y~Cr zc0=~QA$_E>Xq4nAou zJoMZGcLfCnkZI@w_TFm1(7rHfCj*k`HR$-qfIkWN*&nP_)0>5!1BT%F;Mp5?o` z{dnDbh%WWITVzqlA7L%~Tg2V5@usnFQg&11r-R(VXhmt@ww`$njcFNR?+FO6Y*wBu z>aoR{#KH|*ugq!Ew19zR^^C;m?}=Let!FoOmX-wewIj2=FW#OmA;w?oJp#wTr&cg(W+0I=iV6i5 zHVwQ#k@NBKF`cb4gT+;3|1mjS-`(}VvTiV+LvVIBrK2M^m*5PLULfzYvMQ1uOMlK! zJPTEf`0|Gv(s^^!v3eN8QaHc)lk(%u4e)z)cTZ6e5xGdbz83-2Wpwk5&(v~Se5r_o zmh{A5wP&L)L|)YEDQnp6+ODd9U5%8M!$Z|Wwm)&;SPkYI?bP5D(0i`FaD1cGHsXbb>P}^9yPjp)yF` zuwR&{2hKI9SuHKB{_U4)bYCSKccG)Y8xGKI;$xjU{L3D-#+`#8Jb)e=Qzu~VO*V77 ztnNgE0w0JKGqcOJdaQZ&qe;c77$fN>zi{r#{2;a)Nr$d>lkdZS;B;uYk84?`&q zgJ+r%Ou2&R04mw!u zB3}(AZ4?o_h^@~C(~T;DF3cZ4T&@Vbl*xi;BGnrGyo;BvgjAC9vWx~-0^6RKi*qL> zIT=sC);0uKW772bK+N2*%}<-W9~P+s93rUq@E~>!0;`pmmvp#K(J?Ss9wbY&n3?cV ziJv{AW@c6l(5`2I*~39h!2&4U*Vh|~W#{R@h67@IX-&@mxD2N5gZk%J&pLEgPv7$G zABvO@UHpiZ`*ape8?;B4krg~aN>3;-pFzDdxJ}}{^QVE}$JLuxY^`nRgE6IU+4sv@ zlJ*F-#;@Q=+b^Aefbgx?%KzHwF>C1GZ%x5Y>`rW zC_9MMrvKv%0Q6GYor%6aNwe1hDlILo<4XHOIy@7k)?o${1fQ?hqA0UUvgZduf+BvN zFA9d+AJ0sh*`hoozO6tJQ~4Kg;J`rgM61NxgUS5{#<&VQd|&tHYLKsvRzSAl;r<>1 zfjt~RU->`z54_MRMGa{m{%&rrt@V7DoA@a6FM|J&r;RMDgo@!@!)_n1>4sd@nO#VD zfQ_5Ouj>E67SL9QKPJakyR(1PWl;SUmb@~p;Y7Z#@y$2B=_b>oqiSF{5WsNP8xx?{FD_8Z%GPaV-*qLOl}`Rc z3Q#}r&eq}tf1s`{mS+kOdU*ca&NsE*cPK9x$ItU5I7H&6^7b2g2Vd&@zs1mPD)->z zZ+}Cwi`z>?Y=}xZEi5eJ$b|?29ViZLYhX@B_V!A{o`!IFc`2`=GVOy>{_l!Zh0=9B*TEk@UG?<+B%K~54PmXD=EE7Q zF-Muw{QLK>Zkr#^>q=uI^P8zMowdzPL44;(^5Nq67#M(Vjf7lqEMW<{VQ(*~U&z#oFPo5OB-dd7; z$n<#})o69Sesv)Tx)6^0Kd2WY2z(=v&K?LzkAF0g2v9-aFgVH=xZ@!;^Lmb0z^g18OQyk(BE>l z_V%bmL}?_yiS%_!P*YGII;=oYqPX`IEQHui_TD9zK$(&7EhLlR zMYiAXztw#0;flH8Nlnj<`OoRsFYhrNuo$_4>mDSyBBYMIwvWebLBdNU_W2&4 zcfbj0DNSFxAok2JM!w@1#9lOvQOH5Xej>qiLWy9j5UQyC7kUr!u08KXvhxpG*dJ$J zV~=|O_CTM%d`?p5Vr(76*3-P!NBe8k*^+_ zcMCM9+Z+zukLOSn8AQ}p*Wzoh&3K+W)1`47Ipcu(G$gg9iM(|B?rE&PRc|cnHRm1g zTpg=j2FS796bf=68M+YZ!HBlq&LJdKGG@O(OSkcd>0}igXj@Y3w>li)zKMKsH5(&@ z^c`i4D5z*xrV)Q^CmbK@;KCQU;pcxtvHw;-Z*FxM7GMYMrDZ=IElB0eFTA9|#i$I& zP0c@6XM2*0${d0F^sdKjPg{5}f7R?HMG#~bX#g}W}$_~xikDm@uXLN7cj zsX?YP^E~lu1`pd2Spt;Q_#vGY9fSUpNUq4RV_*qSswpT_>0#`udmy&H9q}{b!!w-cd;X2tm{gO$08k)Nd^O z+~%I2-Nbu@*Xw`!&4_tsF*NM@8YY!ViOsuFungxZqS=@C3Q|MlH{F2!ABd0`kSg2h zCoq%#%12cYl6a@$J|Jmsn$!NXWQavvJp^6`F{07?QjqNK4g#?h$?gebDGXBZ$4`S7 z%3in8KLEAx&q|ZZJA6g?g8LOhb)zmI*F$$(ypTvlwveoxMfU}3!)b)D5(3(&i?!t6 zMfYWfZNbGn34?x01e_wVd?7!dw^WIDFd8!f8|y*>b&Hss${Xf4M+8{>KU%WkzGNAK0BBg&vTlj09@yXJ8S{a~>Hci4lB4>i+aM~+mtYk34 z!b6_~X4kI`Omz4q9~HoA7!GFA>_o#K_c`-Gmk)mgTq$ZXAn$#y3EJzEi%Ed6FOPtG znJEJzkyE!y=YO%KT`+&RS%yI<8f7b@ zWXp1Fg*25M6GvII)KMcP#9#>7k}wKIhLY?YLXnKJ6lEVO>qwboZyJQSpWi*_-shg@ zuIG-qp&Zb=;b48^W!(os;*N?T z22;=38fLdH^R`A!)eUuUQu65-YBzq@3On}S(--&pWR!9QOM-oHm(%fu^KP(M=O!6) zu4xUR4O_=~WM!x9mq*|zh2YTb7TOO=L$59*lyiqQzw?`CXef;{bbJLN)4m31mXCvs z(D(`8;&oSsb;2P{GPE?DxRNy|CA&?RCXrbo)#5ENz6J4U$ZKhBnx3A9Bo`?1nBK}P zsI{e}hSmg*!*gKty3%#g{pBuXhYK5wOS+FjsHBluwb-luVJU5E(QSN9#zf+=^R!CG z^P8dc2wm?+_tLaEmzT#q`6lxmXBZO^7n^mRrs-SrL>}BrA?Sn!4npu z`mkORlNlK)jNlfXLzu|OMBe58jR70fYX#o;+$QSfP->mIvu)jA%m+)Xp5{u?|GFS! zuig9$mxa=p4Cc*uw`G8-~39YM0b27<$PR4QZ z`7BtFP3e+&4900>fOAOQbmV-TxL z%f{Klc`4=rLG%bBnB2T%PbEOQBlO{5k{jKB8m@i`@AV1aFg9xo4td39n``ySv94f zzK&01_u5tKNL9oR&mINQg?^9-F5nS##oRY<7JuIHmV0MTNnU@$Im0-CZPz15QQPDs zt3r}Xunk%LJ0JUvRr@YnkIp|e5!z2mxSRgXAnU#QMU55Zm1bQTH@bT_Oluc6J4oM? zXleV2@tnQEcChIxpBHx+>gxUX&&=9me!Xeg^sek96e=|ih~-?g0wPZNPs$hmNlU@Z zbUy~T$3X2gd;9l^hNem)EJ*fBal{t2b}kN&n_*(JwbkAEQ4DwrKCxTnKIFKKwyk=C zLg*Lb2)7$8PFsI8NA1xK@f($=JO*GA0q+|+b5Yz9 z_44&=6Eic+rRVrQ-T0yFAe&HIzL`?0M|$JyL$rMO&ICp6 zChFccdoUqP)Q3Rf!{j8!*w`3||D+StgoMo6R>vV$CU3+#`5&o;$1)4z?%k8Y%Ow)I zEHbs_W(KMr(!bE@R%WRhJn*_Ev0Ak{iyfXQvgMNwzk2%J`IJ@QY8CeFq7W=;rJRRt z2Ku}T2YgLUKh9u<&PH8uQ%7w#K0}~beD+=HKGyX`(Svp0U{KG=)n+v1m7uDH_%Hfo^{>aq&UPKylVrO}@*%UvT3^|h z%=|@mf%6zB>a1%J{Kj>_w%^p-?V1~JW(9xyS*wj?*F>rOR}wOadB~yV-RFK$%pnA zl`bqw7O~f+bFFPB((osdJ$m9_!<6B`8GXbx2nYzc^-9mj$jWrd1`kShw$)oJ1!38j zjMB#TZc8w+I*$DAH>Jh>@NiBtSiMwKRd=eMPAnk|>pNYb-moQ2BP%N>=~LT}8Dp?^advj`GG0CBQTw`Ur{)Ik@55u{@NfOZ zw6t*HurWs(*q_o~C8VShT+-@)EZzt6@`OtluB}AHCkXwdmq>$6xaX&DxXN+~`QGV` z1TN^czn#6kr@E%{QG*<-y#)fd;5*%xuHW_Z3cYP*_h^-`&7Ni}>BiU0bH#k&t4Yx!oPaJBD#J)q-JVA5f8H=DmN(MA$sKuwvaD>=iNQml#bfG~S|1*33g2 ze493^@}S(a{A1eMTJ)LPseSTa zL(*bVVFOw#2m?f$H%s$9VRA5W3kA=3;>9bWSy5jUHsEmeG-;$;XXsm>MW#d}a;W5fM!gB7e7O&pp&llyW?El4MY*;+z4jG5j!Gb-Y^PH!fLYbEkc*oRS6NMfz zFAx?|qVo@eTeD!?f$`ocE52W6qx za)96{?Pa-D=IdHA2Pz;~mj_8{;N(bXl!YT{#g2y&p%f8pant_bC5a!}cT>L(59F!x zs(T&w7$w;A0&gu1e!NMDC>klA>?kXuMJjPCw93^ga$;QA06?s?uh$ ztC;ohT0pW754o*+*c9hM1_WAN%8i-1`#4ZgMHhE4*n)MVnR5p+?dE(_qp3FiVwxvZ z3v^LZT0dT0d}5TY+w*Z^Dyo|FLk_3YyZdTc>u}2fhyhMa=o;j7XcWAEmGGPb z=??;2{4&nM?yhUe7csfK#+|#kQdFXZJGyiqL=Vr){4FQPm-k=&_**pbP39_o2Cm9d z9O7cwg@g)RzzY01R0!~eEn4L)hrmCiJ}BCtz|4%_dt-hUI0^U@{>K~i|9Pe3ch!vl g|99ld46dP1{a}^LAnYy$Njd7!0dtdLBd4%G0bo%<@&Et; literal 25000 zcmeFZbySsa*YCRkr9(jJ5Rj1WE@@B@5CrLx?(R-$5fSO`lI{kPl16F~0@B^F_O<*y z@B8la?0wGJf1ES+IAa{faBzbQxb7?FJ-?s%ohw3FNfry81RVl_V9Co#sX`z~^biPw z1u8Q5PN<1SD)=PeEUoGM#?I8)&Cu~ZMA6XM-rCOD+QR6m>w8Bh3p-mbRsmK{=BMV) z&h}1%Y-~3F`2touM>94mC8S^Am!R3py>o&7C-PD+)ZA0|7Cm$x zpTSTLXAlQz3;g~45vkp?{0Y-70<+&P$GiVlNxnN~c*(?cFhs)?t27}zE_}j_k1IXd zg7cW|@sp55X=QQS^Xt3Lnc*jK-MX&+GbcxfM{&uc-WwuA`^*(-qeJ0pjEU${e?L4; zGY=5M|9(J1@u}e-c&Ptz@!3O+o^RI9-C_NUDJObSbe`oi&=DpI>lD2o*0c z0puxOL|k(6J6o|QHX6z63yX^@YimeiVq!JsV~Aq+munbhB~5o%n;Gs0trwGG74NE% zspCI-a`5845RQZ6km zU9QE7O-{&05e2yJ&1JdlO#gwli{+|X`xi`@ldlM8lqcOzL% zmp*sXy}G(W#lew{Bw+cOuSj~jzo^|hl+0yzcs$6KqucCycyZBRXEXn!jGl`Nzr4J> zvbs7bBZKlQpB*+nK7JIr5P|p+agiVFj*zYWmh+PWZC?y|AiU`lYW9J97-2y98e+jHDPO69(0SY!*$EW9Sp2o{TAjbVM zz3C!e3X{gh#z8CHVaCV52g0MHd%@sviHO40OWqyM|AUEbf1i6-SUy1PDOU|9t!)gr zjU0=K{OvO&@oLjy0~3=6MQZ388Z(?TQ()C}nq9Hh`eXZFvb6?-2}Xd#P>RLO*W2aT zLEA`nqGMyjA|oROtv}I$jStpF6tcX~=mb_)V|2dOiVzu-$bT@2&G_bgkKggPTu6N~ zJkHd_u1GE4-rdE=#ra1?Vb0FYWy>ef!6#*|)~eQVtWNG(SCw&prT3L%D!&6F772F; zm_c@@jUn`lqu*Z>%#y!;Er!{do1-@B+%LFzczUjGPnGaH|9O<1oqae!pYaq72E;dT zMtY9c`k7jNs;a8C#U1w-1X|ALtRRp?g^;_Oi?yAK_CB!C@n60aVymkbJzndJmQ+yq z(ARqmKZd#5WYe_viYdI(=H?7bzBe|}&HC#b8=uWd!Ll_p@awdB6GJLJPD~pb8ajG= zr585_l0WzKNRf$nK3;5ck(7}^W@ceAG&2j!&ZaKatdcOBKWTBHrKgvChPP5Xqu0#` z^+p0C$<2M{yuU!~w!iQ~P3=>YjkPuNhYugpn^_~I5aZ=?m+oICu@;RoriuEH45#pg zg@im@@;VU7&CPwv!GR0TIVvV*PeuFv4+9A>XtiPYja+2SW>=QB>uo0I-C0~28JWu3 z+K`|iB+2{#^ zDoyaooBUS+ujnLmWTGd{V&JECM$b#p=k4zZ3_@0O%(ZV-Rh{r)0rtM(=13YU2FAny zFCIKfO@*ty)@M;vldZA-g*P@fX8toXpzS3UI0e}-Lw@*YYU&ruJoNDOk$Q%T`Tyk$ znQK=6aK?@9H~!CFL)9Uy8yz2GuFJEHuw(SXccqHj1|bm5CZVjECJVMn6n!MHw(}gR zkER}d6kc|%Ybz;y_YFVqdrN%j0cTBU1p+m7@g9F^%DN#VZqMz=qq-YvoSjdHI_?~r_|YBKbR?nTV{ERrv3D^LHE|6?L4U_ zk2A|#*;r^(9(aGv8eNR`cU1UCLue{2&+tekt#=+k*z2rN`zwnYc*Gt*9GEfO*e}`K z4jvV^4pzC~)$q8g9SN${RGd2G5towU!Rc)0e(e7ObtToIxP*@m1+1MZ~Fs^*tj=bTlQOg=s?m-uH7NrNZgU!)}}^ z5HK)_*dbv1b=F$Vz~hHbgFS+ZiV8b>p->KyQ#nO%h&@K(CxyZf#|RMKG~}WRzVG~1 z_|LUB%$eWBIX|&APU_4$@S4)A_^HX~(s}nK@|txm(o{4M0LM0zqwi zi-Ll}9d>t71>yiErKnEqlecUqbbHGj>o|obA>RdWa40BrqWjh~3ODCnNg(q|NRwh_ z=?f1Bu15_oj?H~Oy%bbV(MLiL!Mll}T{F6+36~Nl&A3M0T1A)aZaR4wtSs`2FUeLo zP(i)L?%H*|4Hq#)A|l)`63WN;^`0+;#sJx&1P`w&CNCdS1 zG&7GQhT?biMiO#3ZM-5A^(F!_5&kIky}vSZ_wvf|gWb=zG;SLoWbk?%n*;|3KYjKr zcZgTJ-d5V)p55BUhH2^|Uoiz7a(3|l(OU;CC)nWYP%Kj3$s&6r10&=&W^54ucR8Qq zM4Dpfp_m~T3rMtc1bOspOCQh|3{j;_2{B63% zO$tRlX|#477C*VaG}lkRap_u}EuzisulUo9SyqBo5%6Tb-1xGlTTW@1g@f%m522)3 zMBfjwik&P@t*cEJ%$rm8j|#u|28tSqMEBU=TCcT@g{jZ4;oduN@5?(W482qu?j_CW zT`m~bI8%PN{$7+->Vm_oigqaD55Sm*I}<3mY0`DB`i#a zfPm0ozk(=we`)+Gl^+)choYy|>jENPvXU#z%E~%hWsFj;(-^qCY+zz)`qupyNC~@_ zmf)#Y-g!!TdJK4mvAor;CVKa)oAnRN0?b%Y4L!uu^T)IYJ9o82kOtjWm7pO9H?HKn zXBsfF77M}a16{}%mn3DAj~E(K3`QaT($4&T@k(KuO48BMGI6I+i8Hxnfj88&Px&_? zibhok@rQ5RFn7W8P8`(edu$s~Px7kBdI&^VqPc^n2IIW#`r+@ZkSFD|0$08J_v%Ud zNYGo~>K?wlQPm9F>L%(c?@&XXZg0h5Fq6$qA`YaG}IkRq^i zb2DEIm#Q&RB@8?zhy(`-2L~tC@#g&OtTzY+C+@4(F-|^}WT*kiC>WTTOO^TMm6SqL zQnVZQinSvT*t$zqUY4EGjt=zH#v(3@9`R|`?Y}E}e{!JPIVE3KqZ(E|T#XSLIa@sG zK`n_?bLaiwu{5WSrkb~|`r3VfyFD+(Rnb@I5YP5Jf{1TgpbwHMHQPFs1deaypx8lQ z-g_ZNok*#3q6x~+ElW9^+ox6?R>%f(g_l-Kn<_>Aw^GZ~8dItS2lW^Azg=pWoT^+rQov*v-YXsP>6vlwD5+n>@@kfJp-HEox|nxeX! zwi!Tv93d45q|4_o1!|1AgoFhS(tEjKCd^tkB-n18rP26^ zov8ZGbbf+s+TeT06Lz8`YribK^+9@CDT!gd-d4ohEhZLeT!q6_V<%W+6Do#-?gmY5 z{ThJq=Cww{UH(~nW=Tfc$hL!{H#(kU{wv7gKH z4-5@Ssj7aI(L_T<6?b*z#ly!R%Z+fg#VJx|02qLg{1xOWh`uMAqy0ee@pKLRNMwpn zN(#fJkx^@4qoJXBkzV`+`rxTQX&g|0FYbL6Xb6)0!e0v7W0$|MIXWD-$?acatWN9q zFK6c_kTfwt4Rc-kF0WML%))lx&Ymu=EstP(eJm}3? zuUl&?@-;@;Tr=N|cbqSRM3GOb{=CUIlq7U-((5LdcP%2k5Tn9FV8t5Z;O`-nks*7k zhVM`@rP9~eN5o_KcqCmU^5;+G+v}Z*FC50mg08!$Ld~moBkrOzp@p66Dc z;8_%Yaq90vCwmNA46k-Nxpw>NN#4)io0xX z_QB96q}2`+Q|b$6@sv{#nzHxRP#BFi$CpWi1t*tTAayuw7x+^JUC`laW6_&}N~cXF z_{rSZ*f=~tM}}x>X(2+sefu^!DB3uDkl-<=I>%o9L95C6dE3UL9RX0^T=KwtYPkLtL&)s26?=t?p6c6Wl%vc2#+UeiWu;kb(a>M%jTNDeb9 z>1JkTt~BaJm&;Q%F*Bp#|jOj_C5DY*|?>gz+cwY3ErT%FAeKoW4%U5ksl zV!cUSKYu;~GxGwVCv*%9s(87>MK`GWpSL|~^^38M;k(UwP?Gv#*^2J*ZnS>UO9b(w zkW*QD)-Xvg${P0qKbOz%Hm`W9yMGO55m7FYZREprcixT;q2h!NP}p8dM7NgtE~(QS$tWDQCBFONy)#Y2 z-Uun`+d~if+p0_y!5YV(UuKGnSf+<}V$`dfyE-zr^_@T7AHD6$r2>eluCC4<;FY66 zw)Vn;(KI1K_|6oA-6BN>fSjCKSt;=AX`Lb)T?ATUR0c~Ziqg(n^iY}X? z%trKa28+>#ImSCz(cd0l37z?C&Sapv`m2Y{(3K^z0`85gsO{+UYT31lxYzOO0WP!d z&D6}M7J1u#1o}v@i1vgC)2!at&9P7sq9uyyYnJdy+l7I^*MBk~{yWVmo&DW1?GNL% zZ07k2SVhE_N&OHYAF0E-ri#+jnW$}+uhhpM5fY+g{!Ul{qjt&#&y)9qpOqOCiG+3)L7GQm06NWP688AwMD}$vWy$XLrCm*EH5;+B@%r#JTPx`?_JUx#-;< z#D~K~RFmFsN!fT{O>*7Xp`wSOqYX~ntZm&%U2DvrN54c0jh_pbbskrK%g@2d*#!=Z zM}BVTV6zKF-?^>5mlqo5&O4eN?+2=N-e?y%(|?+|i|M?v9^uBvaiqqD0`_8jdwF!t z8lSYFNyKmKNDZix^t7u=$~X}GZxmK}CsXtMJlJ^(=tU0~l^h)l`w4P2fcILf2^ zBY4ACf(r?Lylz3|x|oLew+L0SJK05-R{M45-!Ul{sWsemYieFy1SlGO@x`D`Te0#F z54WTa#n0AaI8b6961n~0r_31db@zZme-?)cChG2OC`Lg(|3S8&m*zf_LQae4T}Ix= zn16{$ws8955R%i3!u$43dTj^X8~Byi68Fb}9)k;*i@k0z7n00dg$L-C z>3Tc)Tg?y3R{suM2z%!*O`(2a@E=^|f6E2?xEq4hX+}^EA+?Z7@d2k^cwRHUXIV=A z0VhBhg~&$yRCsZ_QqMW-(=>Ib=ujd4(U{Znf3D2v9u358{7W*4Z zw!+&J^3rGQZhf7Pt^AXOxO@Edq79jOCynz?sfm=rx8urR(sy)~Ay6X^kGnkwKmSBk zGqFl?urLjrj6x)SbJ~?!(c_@X?lbnW1Hun2Qz3J_mKcPLnfY zOP3cSO3lEp$8_`$n|Fb1)FF=*kH7M+^=Ko7f zzhfhOUi0R?o3r(zc-WJVb#TN3!5QhHx!&vb4?v}xJ~NB$ zNssdv_iPgJ=Ls}oEcjPN z#DEn=1rLWExnZ=2-!U2M_tg_zv2wgNgr4wkonv{#k%hw%$q2&6V&XP?v`B>oDk3K77A z2?pF%jCQ8$y>YP8#%#Jf6eSa?g+Ox2qPy3GRJqBQUK$G=@C7k=PPutVfAl+0^ik7I#-UE5ctUBA4wg$6O7Dt_YVxZM%5n!P$P z3!n~xE!I!pX@;7VBbkV+w-h6COzX^H5oHf=^DzUQE~eR?Dgy#$ABFZA<&w2$+a^@5 zvm=U*Gv z$%UOH8r+YlB_t&cZEUcZn3&)NFIw7%pFe*l5_B${p5_AV1e_k>`e9J6h>uq}5^@yY zlV>k_Y3;p`smd77B##0~O>V{Z3KYFR(61<(U9zC2(3NL)xhfx|>umJ0O4YB#1)JRP z_0Rse9-ZK<%k~4751dYM4V(NevJYOEnEU6ihXL-uhX5;-OPQ0 zN$;`%gg(5ea(U_gDnpbUWZklkj-1!$dy%QBWS3W07B;$Y);N$rKbXoEFUM{=MD*a{ zLv?}7Nm?TeE^g9Al;^T*%5mu-Wb!1Xtt22KX{}~tXBJM1rV7?}oYmeq*g-8!bebbm zy>JZnepN~}@9a>o%rQYkX}r37`Vi~uD5j650ms%o-3*XQJ8x$>j#0WPAcV6CkWrCz zb$8=FdgNbN$nYikiT*2Iz|BGZ4dVZ{Ti!!QN2k)b9~(ZUfJ*>oSy@$8RCk7v959P& zip}ef%3fFH-wm^+wKlL0#-DhL2pM5p2rh?4%f67o-oJA~S7=0>)?)?PbmZC_zvs2k z(g$e5-A&YIztsyrFFE?!*bsrTX-4h{6LX%~jPfYURM+<(^$(xC^L30|#(J+ZD0VU>bDCwWE>HCL_4^vZ94NQ8(a$H{Is%|-& zP@*N5lrXilwAf!BuHc;jDQ|yuypHFWyScg9Ju^e7T2wPmm>MZXO+-TS`Ns4uV`AKZ z2@v_=v9TH%y+u*{r+vz(AcQ%DPZ%(j1ZHsDp7A*mjd=WH2a7tV0Oyq z*lAwgB$nfjszRQMoa@`euWYRMu-aGzfv`Yy=#Vbb#ZrS4iL-qY} z9(Vj_MWYK>J4-^i^7bw+K3SrL&Mh0cF&`E3;^dy010ECM0YE#b+T^A4 zBnvpvk?`5-te+`?L-O$9!}s?uU%!^^k0GZbh^zuBCF4W{IVLxmR_V%K4%SuYJIEx2W$1#2ys$oKwPm?F?>jxYwuAd!U^T|S}u3Y-&Guyc^H$8m;p;r2j zK6_Q!#>U1@AaFQ1I7lWAmRcj_6F$5y5+zsq?I^J1u}OXlN@dE7E+^4J5?TIo&&I95 z-Up(+HLdtbWXQ$mC?f6>)xBP$ySw{BY>pr5u$f;2#N|q7r<#}+%Wb%<0SBaE$Rm$P z(?Va}L!rdzA;rHdOI34oH#G{=0s>H5n|UNfoQ^Q26q;yS+Jg(Vh)79|Cks_Ht4*;$ zkR5CH^8-_4xc(#2-q|@=ih2x{K9Z0vw7p%d2^8A4c^IFlEUha7#u*+F@%+qMNxD?O zodP%l9x8j&e*?gFD1{FP^0UFgIEqZ*o5CHau*L5u6OmG9Hj*p#=51M%w<+2Xzk2ZZ ze7AWE^cZot9xO#mhGA#DDNveibfVuFNs9~)egJ9(NDw?cyhEUzmb*eQ1S^V)J0C!N zZ}#f(%mPh^z92x{xAKxeCKVq3V1Jn1E-f^HPcmh@)NUL*G(m8vs|%6oZD|K6@o?ws zgQ{s;TN^t&Lz_Ol$QuVrx!6pc$(UdzD(maPCKUP!z_evWE4R8xjwE=Rbg^gq;d_7k z%}ufSy=JLCxrj=pz0aN+WWj$`-N3*Aup_j4&c#tlK6?B(_x`FU0-uP>6w}Dqcx8Dx zGnRAbfh3pl=`TSHUPWDp)d_tEvx|0iZXTJWgT5R+Ng)%cV((E=J3LVWDGxg*UqE~^ zTKVlU;r{MDp>6AY)_QXVBIMO>>EY$Hk5qdr(fvedXO*!N5lJMKh{MCp4IBTE5+uFo zTaxy94(EF0z<)D1vT$lM!@PJtc*Q+F5G zOhfgJ{xj)xX;qUWp9P^I@}Qa%J_HD1`y%o>jN+W=n=v+c-btuDmGrchh%h)V-LN}T z4@;om6X|ODW3UquUReH>z2@P)a9lXeW{um$kB({VOLH}*vNPGH?oA-|#=8cpJx~9r zY@x8Lt`~h$_+9Yc@|Dx>ESWsY2wcUEbX2{;fGCGy(Kz9oEd6Z3`u4p80tlCb9gH}- zj+#dDyCZsBQgI_Tr1IQV8rHrEUkmfc;|P%Ddo8m`rz+X+=K|(eOIBL*N}w2AKui=~ z2~u72Rnw~l*VndOyCf||liJ8)V+~mk>wG3KLPKw>>*<#DsNv>?Foiq`1B1-AmszSr z^IDk}>t0#Ym z7mSHnemF=%<(m9OE2%b(sf$?WB5yJXIudF@kKb=}%oblltgO{>LXv-Nd%$xZ*`$jV zAr4HVL0IUD2lj60yikngsgvi1mh}NY0$tr_`>ibvBazP(N^?0>b8Ek6g5k{A*9+Cd|hRue) znjHM3B=Z6_2IbKy1oDj-__2@opdt3U@q3%S7$TiA1*^X}k(g(bS-!7oK)1ob#T|?M zR?GPUwjceo-HXO2NkXv8UP9{oOOIgPMS2a(VS zk2~9+N|?|qoaxHsz5B<=07#Hr!R7rk>Twp}D-0M=`b2#q^Q~?0X}0R&o%~d{-bX`G2rhPSAMDy z#{5DS(!qD%b>K()36<_O6N8$;VtUFSej^-YU!sQ=o_aiQuUFxtUrolR?)<+K{BnHf zu#_mn3>lg=2bH{}MUO*PqY;HF3l*Hx{oUfA?GH!rJJtm(ho>Wm>nPmUi^Je)V1$dv zEQ))#n*@Wm%$ZD2N3y%OkTjGQ&tghH?7;A+EDBWuQ^`VqPN_r-=Mlt}1w*3U)>f-j z2_KpvB{kP=sH?`b(BOas%GFW^22aVz$P6qj&_J=;`)o=BID4ktJlJ0Sze5BzF7Nv8 zgp7WtMY9*#72QSW2_75|%ewn)XZ<@5NZvDXq($~|exzad{!g|V#M=)K*8(4SLC`_f ztnVZ3%b&UO_(Q1z`0!*WHWnuzRM1A!glNRX^r5ttY0UJLM?iH=HqwG;@-j~@3L;@! zPze*PubhH%^-u1){r-032((SZl(LUtL+*Cx!FjtVikGKiZvwQtc+DeF+BPN_bAo1#%Cf`cn2yYkPK+mhoqK1q;l%ZajMDxI5- z+Gr~mcBF8{NZccu88Sv5yr#}BHssIJGCW-F1a5*pO269x;ALBZ-5oK z(vl<}$$wY+wEE*iyFKhs+8uj0-xj}J6i;tOgo=|vR7bNxFw^j2Ivi@BsZ|%h{aGK@ z662&XQM+`oHE3~Zvx!x9aU%?$U3H3Xw3XG~NK`DWklI?F($dmL1O%a*}$V*FF)%@L{~>( zzqO77F~631L;+QLu^mw&xWr#<1&T*)(A?&ksSDBy@jTV7QWzfmoE3BHJ<{(d7j}PC z(Q=FqBuf}cq>OW>7dCPk9m>Y!M9V!gg##)T|XRKzYVRb zv8YK=#S|Owf-LMJ{HYwauK2`Zdc*A?#iI42DU1G*g4OFZ=Cm`v^|y2}{i5Q8ux$Yf zcsNt@07&A0ko~dq6atRVgoTCw58jKeuC7O9WKn<&%+AiLHHw8u1OTTF9x(3_fdc(G z`V&-OCioh?AM`25fkAFmBIX&^v>p~N%*!O?#(sMeag)Hhr`4wyrwX5#sAI0$FhcBe zc}1jDyU58h*Ehab*39-+JBBv4=(v#O?*c_5GY+RMHCkP0@Tj5Q4O}8DS~aM|#Kb^( zM1#tmKiDLQh=}%w%P-2p62PDyKYlD+uLxwM!|kQR0~8b*K|vA%0s?id8L)30R(sHf zGQ=o>Pw_sQ^c*w8}Y-0aWw zqWfc$-^-wMlKF|rU~e6gDkVqsMuT5hW!hcFxs|v8E2FC3zh%bAb{z z7N|?-jkp2nm5_k%ziRd3Gn;*AiY+ zQ^OdNK+I*j97gHe(crLl_{%Iq-SQo<4Dj(Sir{AnpX>&%P}hxrna*s*>0&Em^!=`_ zBuW7V{wbjt0S4l&pvL4)ADVTRi=h1c6Fds&^(1r7xatER>%XWBdyYYZCLMe6|MR6n=JU81BQ6A(9e5Z%5hkV~{4k z-4LExR*cKNzsS98jW1X}KPgdX1#^PV4kr%C5NC5JLfp&To~^zIAUtuOKB@Uik_&K{ zP&pp_vD5rj-Sc^)^4K{P@DBd=Qz+VX|vmb5wN2}iZ6`ZGcOTc4AzyCKG)e z!QaoRpU^Yy`0gEoOyf38P)MMAsz~pwH0ejbk0g(OWz07hO2Di6=j%8n};eBf?qHAeMh7&fJ7=>c9u zA(>uu>Cfis{VqvpdHJDpEn_uWLzoH8Q@)7vv zLG}CW%`@C7Ey~!VsdvyfvODE=)YO1*;Qy;E+k3b(QxTS&OdN_y9O!ki-#Ii?s*1z= zY>$JROQyZOt?O`SXBl_yA;e&PD=Kc!>F4I?FLSY*c0(IF*SGFlNjPI>^USB$t(P8b zdXk<7KL;pRcyeVU+Jsn0Pzsb-46WZ|kG@!(oM;8WetANyXht@d=|upmJ6CDZ^bNo! zq#{Dxlb-DmgM-Zw@asWpi>>#o9koKnw=8{=&jl5kOgDc_&%`7=0OpGWjWC2j3PxDQ z4k{`h0r?-u>y2%kvT7z2Vx1A>>($2S+p)%#e!4YTL~HGR@8v5$3Ki`GH&D|OA|*8y zHUl*Ox2^%;3IP!P%QjoMf-=Dm+`DO`%c$+L^l95ZxzywvAqu^gkeHLDKv08_6L3V^ zGmDnl<yuNP(2Q2y!|E1N?X{HW`?`|W>k8KSZH1t7bNpa=xz#%EaYZaHnB(L`8hff4Z9RIAT08I zvQ7GespiM8C?VOqLI|EsTB{uuRF!qy)6zw>?wEf*2nod^K<2#pi5#E@lV9viY|)dF z?i}0>~J|RE=*HKe=KM*5L?R?{lCs8;0B8(0CK>0Qbzv7U>{AA4Fbm>R4 zD=7a08Ks6{(nsH!Crb+Pw|edOWmdCeatZxRyJ78k)a#MJ=}T_%YfffTAxma@PImE* z8pBI^Yh>)$8|-}7UP26g?M96|8~Y#eFQ?i>r1n`q^VgM&1tOM+J}z-HBP7$lKnF%+ z^Qv#(-gyX00$o8bfCT`>qZuygzS?FI8?9(REDeo)78egt&%2D;3Q8fx`TS*uAy>qt z@nJX-H%7f1Sx{C4(YIaUXVwByk1P$05>%&>u)3Cq_>u zqn4EPvB8f23ff*8I)~ZmYM#52H$`IkLA#QfENIKQ9DoK1dyDP9_Jl3?%o?+*;kw<+ z$*+v-JY*R32=H3^cRVykfNYGMjoEH6$Yry2Opc&;lD7LdzVRUnk3Kv+CYOV?22wB; zEdOBhqq>vW!pZXXrhho1>jN*G?#^=ue9yd0R)&v+#&=Xssupks6|70)DYeyy;8M20+ty`Tfz)wA^LhZ3fX)y^U-&tFQ}^ijQ`MC1MVlGpBt5Y_SHL-uM2=z%*c zQ!GBil(*QuOQF88WkjcZj|92*IKwz=L6A*a*kyL`VA2``Id z-|Mk+`e2nUd0~D0gAsmXm?Q&}$2I%e;P+I*b?C))$b&N;#tUQC?Cu2)P#+5eP)8L@ zTLJI}>O_TJr*0|4Z##Jd@Lr1Qd(sOWsT~~TmAT^9(N^P`37`!ns>gin?{|hlv9x@W zmv^ZgHS%3?t3<>DxtW8}g4WZMFm|`{*zN=Gn*||Pk+MxY%I;!$$=&^F9T{}ew$%qci@X>3)bI~M+XT52IM>la57j~TrqWPFr6BtRfHk9~lH26C zKlOw=nRwLM+uZ@he_6;gR8W9@#twqfHEWiFrRAbjqRJcnO`cj?>S8Yd-yh_IUXg3o zfbbt37xcLCwho$va0Y~nhS-hvzwsgvbTdAsRz#6ylXA^ggT7b$`dnghE#U zx$wUHm&qfWB&1&{doG~6>2DW{+@rsh1>m6guM78K_${@@%@4#@ZDq{!JJDj9Rpgcw zptMz?>}k#A_`F2H+}T8Xt-&PnR$ht+0c>dUahI(JK#Gd@WWKv*4GFglIMJBkSnGG1 zbz>%GR3Etdh~g0^+z_@ncEJw53tBKfu+i5^&l8+a>F;7JgK=I1s)nWmsL}G1C42~w zEKdhVB&W-6;-val=eB(qehiH{g-EH*JRW#_=_t)iaO;YTF8#bH_c7y>$^%VK>eq7Y zdu7vKuKe!V2}rj~WhjIqEa`xOh-A4l*&SY4V1Lxv(?qe0)UqN(^;k5=lg4QIm2g{H zHauyG`97Fr+!3Y{F3egqevBT1u3y#?K9Mw0X=TAaH0*p)fEt@7#e)O)6(N8FcRaxv zpYb(dh;%@1)*IFDA`KbPUQj13u-ybHNQDe*AMkE)Tn>$zil(SZdp=q@HOyHsS?|3SKT4 z7@0E!M&<|r*M}icVAYEO_!k_9-Jr!xLH857KUmJMz+Pn;0xI)SL>!3lMmC@^hlYp8 zO5bsLpN`4O$rq(TqXrz0aobt(l+v`jdPdMe7WCA9MW~_a*lu_Gh$==&3wyJ??a%F= z*ZXrrYr~kHb|nMYj#Fj9jM~B+L6EIj3r@ch3k1Z7wZqGp$BJPWcEv*@g%c@IU6PZR z@AOANsx;_Cgtv=!c6MH#&FGJT22D`#6o=AoOZ~4HLatcSPJ5m_vyPB4^~M98TMge< z*%rjSanq5Si{^VOVuLl@Ux#CUz#$|k$2OmBgI7l;(^1g9JU&P{ zfHIP`Mfw6T$cIJr<=d|F;d06ZWo^OK$>(7PPX<0|)?DLF`<#88zG1}&yDzZU{;xsA zbR;#RI}ArMPjzKINxu(RXfW;U>`o7$lqr06(?2}vUZ+RJ#XSNIN1uL~g6?HhZ0yjo zva+|+zd)@LA}%9y=F6m^`yZZ>=f33~$-j2&Vc+xc_P`TWLAPz^n|!6SThG-)()hG5 z=PGn0oflmdT5fr<_%-+b*Ww~MDX+D7z3pOp^{2ys z<2J5e{@1w8&9FjT2UjVR>TA6ag`&WNVC64!+KHES>~~#?z&8^HyswNcxr{}t;+Pb3vyj}hC7+vx!JtM84b5Y=IE53YTByi>Ky(4OSz^`@t zw5n7G(y=ENEB-kRu8zz_EFfy=wD6-!=#W3;LVmN1;;ePcdJPky3`rIU*Y|@I`xF?i zOlL~X11*yY{B#W}eZ8ri$z%fqqwSG6xKpnR*esULfVEg{BdsAd* z`%6Yw)&BOmxA}O1K6la#pYwMipa0dMlQ?sgz47Z|x3qO${aI2kEFsJMR^h3uONP$2 zcf>A7zSwVF^KeVrie&$HG-t7_F&iLo?uIluV=X<9w_NhWKTZe;{-wSj+duLTNczXR z;<494Q7s5844qR`>d^O-3jcFU%62uKV3@9?N7skd(l>TDN3c${n)g2<4lcW}Bj zp`xs;ywQGo>J0B^HmV}huCw;YGC+g?KOEc);d{MRK)7ANim&~(yIc|fGHO4lr2W3^ zz%g8ot$5Ar)uKq03MDuv#U%goth_dh1fG?p=6^gZ;^ayIv4jEKswx5nZ>dnxdQJjd z2%(^n$-FEdY$bRI0NwUo;PkT_bU?~ZQ!+AQWn&fE*Ay)NK}orZE*iZNR2cDIvVPq^ z(xS#>M%h&4Jmr<8RV z&$q7f>Jmh`?()j-XCLXF8MDQvt-q9K6Ax42fcQ_CDRuu!?`|pvEjaQ}+DR=ym_MbY zkb>pL#mCR#xZ7WB-d@pquWLu0Fklbr@t_-9y@coaWAt#TY+&mtQq$TFpa$?ZiA`T7 zmO_MaAt^pSUhnnPhu$tvZ5hn3>RGNvRla_9Qn^BDcX|JyB9UiUi|eCqzkm6Mi!AdX~Ysu$3slGfaF>Hi#@$9)y(3!`-eG&1O#l{;lZDA;DNFV zC>OA`RE($&@|b*oRHg?5zYfMhK)RatLKGy4rApV7fZX&MNv54DO7UPEOiPn+a&g6{ zrs^2U&DJobZ|6BC`(pPrFeK)L$GZK5nByHYa_6S;_!w#GjK*>zWJ^ zt(?~H-yb2t?kL*uyCD#4o7TuAn7)_O<~770PMpBc_ToJE>hsS5-Q`MYT3vmc?b=Ki zw|mBz?QKeYqzY1jXJg;r+FKZupZV&Nd@2}QBC#4*a(VK6Sw);DwLa$ z4l6mF7Q8Cdy9-ujN+E>I6Fyj2T$&RuX#E@_okM^$v8MTJ(6r0kecq>?KFb}wW?3A| zl;k=)1!9%s_PR+mwqEL#@?Y>w{KV)IfY4QN!?F?*h@d)RU}%Vdfq?{rodujgf71QYL(GyEVL&*rBIA z>Sv>Wp^|msSpM1X7vV(g_+I)~Wa&XolGYY6GE{qj#ZVb_yn>rnZQ9)>7w>=9B)U7( zRt>pK+ihX@7j%IK!CR4f5!@$hm8|2+TKpEEHrq&8onTw^7`6z5&W>ZomeX}P8Sn|W zIFmx+2vQ)MtYvYIzwx4m6jzSFiS6IJAev%XLm)p2(o=6uuJEL&owY@A&q(GTE`-L`W@0BNzS$}msEs}b6?BDUvLDpMrNX4EE4|u~5ADAlc4teaV341# z*QEBq&J%0**B+AbcDVmMtSV7J$Mc%TbD^HW`%*JZTVBlzh*}FGF<)U&(SyJDj4rxJ zj_*si)0-V8=UYo=)tEji;D=@vnS(%dysqJvS;$YzTdRg9N4to1UC-;4L?4V5u42A% zW4pvJ(EkfgGyvZ10^&c~SJ#<6u%|M8_wv7(8e1KK_fKs7sFMlB_}3P9o#H)rm2d8< z^TP0Z&R)ek?3K$j3pK-ffv4S|W9&V=Kn#Elym2yA#v?M#Z{zM8Q0Ie-EUz-|iK1dQ0Jiox3gWs|IqB}(0%Y!mYHn^Fmm_>r1zlm=aV z2LMhONgA{PB!~tUweoD&ABzKqM*BGlD8+-e347a4nFrpyEj`{$qoHy_Zb*4zfX?MO3C`g^%xaE! zic2~L2gTTI=Ax=~?E$wr6!T2mL)`HXA_cT9799I!u$3r8@Xh^KcisX2*#pS$MZfUd zNz6st$0{tqn=HlSA5ew+NxE0E+9dWQ^E;cwzauT{6u!Wsv?qalz6eeQ*FY_-tgH*g zQM704wJ|UeehAFQ+j0LNh?12`$Sdr4-1dH;{uk#3)>i8fG^=mueCHgoW^Bzw>wUOz ztfFx2V(PnER7Q1lSa_!G*0JG88dS!tzw!jCCxo(F83g_JaI1%P2{G>#wuc^-ngT6A zfs&;mIu}rLNzjPgWn}JK!iaTq%XjW zlz%+o=QvBk+mZXgAJlh;g!|vRJM(a;`@N5k6d~E;M#`FubGkBrpqAtGDet6H|?nAWlY|HY;VZjAym3)Zf21?tlk$#<&$_L13 zeo-=?U5e+DgZplGdUc(I7;u9SB%HGyEy+lA#Lko z;|BZaP(mq{QP=FXjq9GMM)?!A!PZDTK|Je$u9VI6NioT4n@15q2R^>QXP0N7{V}jhlrrDZM+d77<1cA zE=8R&{ofc2|YFhd_S`ke`oqg#Bqw+y0v*rtInA zsSp^{&QwPjzH;}{e&NxzV$A^fZI@q#$f2-Lgt<{i3lsB0jL~&Y0R!DC!e; zKFnM~=yjBM4Vh>ZSz?hYfh#n*0DU)3PY47xZ!A_@jMHwkF`Obh8FKLIZAhPrXe!Vr zD?NxU`oT_}S7n9Eq`T#j)1TX+cEKj{VnnQ$;$?DjdIzqZk1shn?vv{sTej^k>w+VR zW_FDQtlly+0^Y$MCM2)iB%#rRHQ=rQA1OQ zU}$I-h(zOt1dUa8*&)B|`)BFMm`Eh|S=tFB-PnW#P}|%M6COsdd&IiU406KokIdgm zAILIP|1sX*-aMM^mV4)IWv|ualdePPS8Vny7%^A}Y}lp;sn_I;LSD#yW8{vqrxP7Y z|0qAc#VgxUg^<{M`-|)Lv3bp>#_N(+PX|B{`+80?&KuLrG0rQQHqid|3j(?j+e!J; zWA$>EW0~7r+trvW36%MXCX&K7=+N1t;!jmekhQ*d6yrqOar-}uDjoaZM3utA(p*>D z1(baZHf&o{YaT@L_}lbi>qreG1@QeY61+KJ3SCrI78)PV1IZZJ6l^mxGTOCQ#ngE= zS=`xLE144-sfpox<)1?^)y7JsToi$wH`4A?&)_z23? ziah5m{}~@K2nYxu+)L#bL2~>;I10Tapq5!pdq`h+xxM#=ZOhu+fNjYje|>WctJD+D z$_MVKzXGr)(E{`T^Pmz3$9dv2qw8VS7gps~iI}a^d!o`FX8BfkHUyL{Vj}rY&lHuE z90|tbMfdMVA&p6g(L(+z|5i{UFF|ivJ>&+Uo$X{rbu|QIOdLv?1N+|WdVk{kF=B@@ zceaDD-U9~b7olJqzkG8?*~2Li!=gC)rFIm5D;zvJ@TeM((I{2=D+7nw{vuLMNe zdWU*Id@moC2;@|D=5xOJoQ#VrEK0D{6zV4lMK;zPFiA355?c95hTh6iVH%RftcqPr zYbGHl3pr0OoKw{@=4ZM@Cv)9ZvbPxXR{wM%rEAQ2Z1NF=k0K)09ZF=$<(7CCC>w-w zxuEiLuV>49_wF4TAK#8b7Ti?ItlX8WSL<3mDH6y+ZWxSjriM+UTJ@!hu!18w3XTgw zFb}x5&n*67bW8dC*jm&dO>Fr@;ttdxb$RENPd~`1e4#xL8MK}lgDrQ@m&1X0vA38F zr}eaHA&WM&Y?725w7$xi(eGtxe`B6YNl{Si>G3hQKO$HdTn8%xg|VA8a4|PHRf}p< z@7C0)6gBq&6oSU2Ig=&y&(eI)Zc=q7hu3DE&&w7o;tItPmUP~WE${g|IAVVlv5?7R z&Sj{F9334UURZdMrU;Bd+J?ZlI`dHnxU7x;mIo3~gG^FkH&Vw!9lQ#4Bp=FMZIRXo zfJr87a=vMA-e@Cph^gKe`w*xT6NAcF=ih^BB@(q^M~ajtDx5qi8Fh-v(IP>!$SgD1 zAnm_S!|d)StvrO}_lCBEX|5|Qj#~-IZ7dAoVZpjrEXI23NeWmY02ES67 z(JS8Q3xJo;ey01`*R{#<@nGlxH0*sL^Gl#&Mf)c7bqboLwUdAQ%s9!rX>v^!u)COx zwRL1X^pINvS1`7_MfJ-xeuAWCzCSs{AGKZ zNu>uwjr2E=r&&o!3FI~r35gT-6iDtMJr__i5o%lECJZS{{NUilzE7X*M&5*278qn2 zYl(55mr6ou!DOPyWuT0+tE;o~cig5ooc4x63OfO(ZFG0~U$E1f<;KBpTQzPl3LPBu z&TacepmaTAZC|PWYno}9LC)Q8a+3diXpxP~zl|=%?L5$xbE=`_dY9W=zrrR^9XHRy z!BkaZ^_eP|KwZ9k*--uQvKmlDpf$3Gw%&fOdUWLa*%`mQq_AVJK)UDPh|hFk@!c$2 z4sGu>c}&Kf>RV@T{z;sW%1=N|AqUUp40k^}hZs}*iZ^y*Fw63CajtM??=QI?1Q6b- zCWpuX&AM4t(%JXX?pqzdb%r>w% zRsOe|gCFLU6y%7XKi6Q>oj|cReXn*=rlUL`O+A_itxAkL6obpFOHWfIq*zH1$Z2ak zDR$t1^R8(kk@yCxG-H#KnV?`2`XlYW5PYV(o<>ud#o^kCdfnYotMJk_tMhmGDX6kU zJ>qQugAplv1R)zP1iApyp&1hojh;4uUru=zsB;i}7$}=Z1*qw}L*Pmo{4M1^5;6kZ z6H(Acho~i)@P6lbiIIgZ6B^@#ngSypv7%P3suC@ReiA3RiC88x(}66_m)BQ4n%GG2 zaB5~hWePX%mcApocAsxGkC!s#sGpdbe2B8O$`fj9%NYGZwyEo6WXIOiw^P-#M();% z91OJTm|BE52^XU~AoRGp1S7+&AzNGFD=mV^I<8rkY$4Gtiu6LP&<{mhXlMvOq1rlOowft$zh5s@}oW^@xAI zoGi}VZ?YZI1K|C?YV%O_xET&AFl=wT=hC=r; z`@tTX(_B&H$R$6zP~Vp)gnHfAFZkPoBS}5wy2mK?9;mm56>Ru`9AoachSKSth2si3 zE>G*|TB6=Bf*8lg$GcDHQS=;}JsMN7vZA+A;cBv8^o>meb{lNYM)rah9Cs62<{Re5 zznvX0T~Ta^6tEmdf={LL9iGWfkh9VaKmZeOq6;HR?05=@r(g8@uzWt9dPPeg2s(~m zw(v7F^wrzBal{8`j_?mIKXkjD9i#Qkx#+kx#~RTDMyOJAR1w)3t25!~Q9af4vq@nh zsw{ViaA<9X%Gcbp%1#);2zuLV+*LY_C&8wk$OD_JArl3lZT~x&0Q;5+B&)`r z*|=0~o0e4^MJZ6bH1M1Q$)O}El{92d8P zJ&eBdyY)zG?G~Ce@e1XhuG=1850{l{nV9WHW&Dn2lu%6gDrWJyWlB=%wZv)=H*GtUv+*esXb`&fz;=`^CiJ~IX}=dP5BjS9 zTw04tXQ2~<(q{@K%5?3!C;DhcJI!uJx3ujeiLQ<;<6YH9E;--(wD4n$7J3997>K($ zYa5qLZ=a6^XK6cpl5CUS+Vz3!#6-?i@u+A@N*VJHHhH7A@}(QOLgIhoEHCnNCZxrM zH3mnO0H&yY#SsNsabv!m4Q<-FsJ;u2GwkRwH5!{0 zEqTw1oWIif*wB5We>A%JCUUCk$~JA!_Tx8i^UKP})KatGBu3E=A8Gl=c$6gbRaC&nA>Izq9xHZ~>%gn}!^?}!6N*HeblJ5tDv`~f9w}2QVM|*i^%h- z>CSRno5F3Wvtwk{Ar0i)XMYT|6ghRWSNrXB-jzE72P=Gf$i=>?s~#DRp! z$xhS|)0x6?zQwzxGV?|QRN)E%jr7~ojtX<~8F?MJlV~iCM4m)C3m#E^7@wOhoc=Qm qgan=bOZ>P0Tl?<+*}ZRS%BwV+J6{*ng8!O;GB|!(w@~}i-M<0)OsmrX diff --git a/public/images/api/qiskit/dev/transpiler-17.png b/public/images/api/qiskit/dev/transpiler-17.png index 8ee0bc5d4b22d609ca7c0ef9880619303d5e39e4..55f03678d17a77f737b0333fbeed4949cc99f3d5 100644 GIT binary patch literal 19371 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

3}PE$QKJqz~Z^ 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

VfJ|QNz7igNujPO(!0WQG&K<0$Jfn))8 zR@Tqgw|>3h(l=A}0dQryvp$dfVdvud4xqjsl(50MzS5@liMd?~@9mhLLT$0L&@fU@ zw<0s_GajkY4A`f6e{ZJ+*s2^L3pq%hW2N!eAyTBbBDu4&2Up2puBR%#u*lHjsUr5;;lD;rQ@xND(fM5bR+xP#8urK z#3a_k2-0Tz1jGnFD834wJb4mXH65R=aZ}LEbhL?RjUmToK^SEh7XHC+-iDKnx%PpI zib{AQIx;f$V5jbYPeaE(;3y@f0LTcupnY@FsvbZ%H*HI~$$tI%z|-f?<8MA85eXQ= z)a`GJNJdu%h<-O4{TRS5Au)uQA5iD`)Z5SFz&StUw!p1qpC4zEg*^50>%U(> zk=fpI1rSg?c+B9PyLV%AaxQg3%ycNfxd=z4a@7mtj*^q}0{*)ODnSV>Mk+umwNbM^ z+q&7-wMy5r1DhXjKOnZIiqRXizvA3)T`m$J3@l0j1paHFlClHJfW*f3A*t!wK4~?l09|Qa@ z2D)w$xNi*tHh8fLRCU?V0DZ$DoC6?(#0|I5;q_01fVf74`;v zZwXrqzTy0dQV0RFNIxFXE!9kEYUjBhO2aR)5BK5skaC?x&$u$D**$%a@b-7_ZYxH96YlV+-wR$ zr-a!KAb;dQxCev-I6n>l@tb{TM2{=n6ctluhsrVZ#=|-1whH?(gxLcRRfG8{1HTi1 zO@b~nVeEHAsDK2kg#ZYM=SbNE&gIUy9=OgpFAkxeF4f8l-E)mg=gDpmU@HK8~#a zWhluZ5~WtDB^#PS+@oZDzCRmoCE7@)^YuBv*32PQBa&7Kqe$BM z+s_gl6KS|~a>g1$t>A&<_{>7|Jm&=f7AxdyV0u7eOFJRCtB8Oq2qR3bfS5w+LzwbO z&$`_}q$$uPO5u>xARw-~oegccF_`)!zxDFZFAS1CHT9v)7z99pICe-wS9}-uqJ55< zKyJ$fBiviCf}L`N;sK83(LhBzzh&3g&8@9iSf}{9-Er;-us8wm?GQl1uz%| zf!Y!NuJ_Rdu;vg!AfSTb&47OxJBNIBtc{9$WdU~u2tW#m2@Cs+&v~ZHasMiCJELdE z=zqFh2ZKI+@}wc$86*}Y`)0vHhcrxTw?gqW7SuA)(s%vy6Yrb2_<-;2ip);+mFCm) zJiJpmP07H24ffi>5)Wj@sJx%46Op^%_%&sA-6tql$%5A>M)6tq@n@T0007+Qg)${| zkJIj^J^qMu-cDNRC>miTXtLP5U4LN~=Au4k?;^jc=OU>JF z0q?*gw(^AZMAAkn=)idgyOWYYab0(%33@C?Tu5b-ae<(nciK=;cB z?jzp`(odgc$#Jlhka4gq$!D*YAoAY?f(YI%2FzF<77Pz2+Ffd;fdzES!1E9(;DO;? zLZr@ZBnSdDl>7Ajga!bcu`R^%0YH@k^uDV3_6FeEt{V51F2H?`wMC#ZKn7ABW%7Oa z@FC;DK^>k^|m$Wcfa`KwLJMmQR-TGa7@UlPJjVrl*-<~L@W0Q zKS6%nN%UYioQZr5fo6@AGQa_(0S4Jh*f8e+YhWeFX-;?m83?tC5CNI+FJ5QB zg3NYn=&Rkl`GGjt9~lH`%7SI(ymDpE--?o)oMWTBN);9baEbW*V6_H3G8bmuBKxfP^hgkvyu3O@QV(lw#8SjURwYy?}=ibBf-Z3xnbu=E#laspJ&0zm6l zfK0XOe6Tjv^MarfOaobPDFG2U1bj6en7;yI>=4-*R|IVaa?Fz4rI32SV}CO9lZ;R?xe=0k9*%5%Dy12g11#%D6G?TUTZ~TvSkS1wzksQS|~KfqgdJ)}4Loq;-3H79#+faJCE5j16aBR~tDo=FkHxzXFZ$Aetam56Uxwh$hvB z1XGaS)HmY*_hN#0pm#eNRx%rkOcs#n0pn!DS*I$;o<3kJQ0|ZeM{aCs>4q@3zso!# z#IBH30Bb#sd{YTjs7hTI^{(pGXaeTg9-LfT7}U1vDX@=Q2X1Bg!Jl}0Qt}|TxmmU) zmhT>5AZJU*q7D6Rwt}O_jyVlnhWhF*4^p*tdjWhE{MsEk|HDo5pHFF6GT0$HFx zmoK{vsW#c$zZ)yMVWtM?6L5ucozET>WK^-m8WnJA=K)?3hzH15pzJS)`sRSqhMc?v zK8bIPIObrcRqk>djkZ)2j{PYa@?iUS+L#+=c zk?absN~Jb~T7ZQ;0KgpVHXhVNWe#E1=HJ5EfZ-=XuuO*_p187_UR)nUpB{WhXa@Gn zPWH?-13zR&Q_KgO&*7jDoK@>##7GxBm zL%H@j(pKd58bbGcZ}B}~L+y|S=SxRrKrcrExAj1U5=1dqSCPn$;e&nG?n3R2aGi8h zD4l^ONizyn_CKc(mo5Nm>4Hs4pDn7EhYYF+!t#J_I2#mP0KXw6H1LjMX4l>7rHJ1bi!EAxk!T#OwY&24RXI0QMkuU#^8 za;k=_sI=+P%~9Kxdqel;fz|2%h13Wa<0$dKz8`JYR#&tv{P zxF3i@mI{T!JpAul!7}{!TK&Ig42>g0c$k9Zv@|sOI5N5=X)Z3V1rD6?n?(O&&TY7e z6^l)aGvTf+xT+87oj}pGR!9{0>%N;^;KrI9+4hq3UB&IJ($0wmZq$}vQkuZ}iHJ+! zHJH2OBo54k7~cHTy(4}{{vgI0fjZ&$`cswvog?3&3)B4m@j9yK2d9ZI?lJO&0*`fz zBFi3yuV24r8dO!L%EzRB|9+>>O7{?)&r8;at40bU)Oi#c3v=;L@>e4j-c&e&MAG-}z2%b1(#TQq@+xOA zZ~Y))(U$luh7H`ej*$(yZ>~9AcrL9>#Nxt9#X|Nio=Op z7x|g3za8t_-|Mn$ME9eoiBodD6+=QJyyaL_7nJH^66n3YQhaW~(eVrZ@#BY*zJ5F< zpVfU6?Ifu;^@Z~tX~EUi)t%|e^z2&s-_?zep-`oAIGcW7wXQ`8%A6S($+3PD8QQvzdd_3?Ho3GBY#V~u z3k;#lY2y2ctA$&o~d1wiI#=6Og~q9?^!J2D4{}f8ViqiaM>B( z{c>w6*Gj$Jl9Z_@-_M3vmF;imhzuSxRsUfeEEY_AUF-@gtIXxgmt|yS*?8D_dApVm z1qB7QOYJ^}goKb#QfB(>?_@~6zNlSj_KvLq4~6=qrko)!6-)RryF8mdB>82gJz1w% zW#4*zL%mW(_dbb6)C(Q#Tj-c&qgm~XOX+BNN1qgFypMrDrclsHkO}ETE{p$RfV^B-?QEo%NVkp zn87xWU)01`)Xpq=ygv;C4?bEHi83oIV9x$`>qO4S6<8R#K)@yRewmy$~_@7ug|j?I}g)e8~^<=bHwC>5Rs3*CXt+4 zedmLEap!8uu(gpQHZwdWhlf?YAgnw>gzDq7Gn6;|nn9rotk7?_T+v9VwU z2OFF0=;&xJ2N^gb_kqh#8~UeTqx4)iZ=~cHd$1FNz6EFJ^)qb6eU&R}%d;?81K;$*zWEvVLu#7ABHe+ACc9NitiyLPd=b1; z3f14fbyfNL%Et;Q=T&S(hhNi5%+V>y^gTRS;5dUqeYl0U9l@ISa)jRAM0uILYxgTr zv(Uc3mb-E7GtHb7Wz}G9t&1Y}--<_E+J;pOU9P3FHQQPm&D6+={`KqE+E;wKrIQvY z6xMl*m(q_7ybFi0{$)Tw`>&eUNaRELr93XZd=*8uTtcIKzi|_f_zb>CnD%1t{|AfFPLEB=}EuWPmh19f*Zklc#$yOLFqC+rFA{`=l^PEm*7E< zp)c;MKhZH$0Yi8I7BLH4?BGGk5PZ)Wg}(5 z1k1|W`K)J>mZFdAp0IjeH-f$Lk8qA*=U&|_w9`p8a=ZCjPV#wc0ZuM4G4a^K1*NmP zkB)7UkW9^BmGzUGUAUNn)}!zb2K4_8h>5I1pY}7A zR#bF#Jq2s$r}JoHJ0qRBoy%*@EHywetTgY^R%~P>xod=fRR11r+ucWI61KI)!aZMX68d1{5m6IWadO^M&K|NfgHU$370` zO#VvW{xLscW3sI;kW2l7N8!$cmr7m^aiU5)GHz{rL!o+p#o)uWVA$!wfc@(zOxM-~ z4vHU(p+gO_RYf9Kinb<}xw16#G|(>dB-GT|JL|KS{e|W-a&nfY#rmVHuW(*otg3K)y&e;`@~ENYEDjt5Q@FdR+U#1Q}4US@Nvj= zf7N4C3r)zuzMKiLZdJD45lNj{W-r3_ab#W?xF;&rVJbRnYDo&W|9v(y&inB6Xi^YM z??_9(Qc+R4VTeK9-MS(zAALi)C0?}1ZTTU;2L4w3Eg$z9W1F9i$`-u`Ce9VBq;;hq zKHcM;^(Zkab$C-YBlhbIdz^FCLrUEoQpdW?zY^F2Ges%$v*V*E6xkRd=I*0MkC-_* z70*!dUE|47PLfjirkX0JJlmZ^dhXl@z!PNZC$}yl^K!W&DjzlN*|`-h+%iyXKRKYD zC-3Y1wpU`>vuF1C?#M*t!=;mmN7?aKx+_UpS!G`!CgwG3z2q8k%q{0uS>+gac!cwv z5E5nHg~$DM{Ahi5EsD&ZvV>|@M*}Xm6OZjsep%-+TQ6Y;pFMrb%+8+ESlHRAmNtrm zdm`PS$|oQ&&`H_ZZ}GC<*YRurtAwORh!~qDz2EYAA0MBYzJj!i9J=Ya_-6%b7yFB3 zSy)(XvI&>u59Yk>DY7nfD81v-wAhUPGHIo$t)0lpM5MmYhuh`8v|8q2n5dF^R`no* zm?M*<)CtF@c8C#T7-1SpjDdwkI;1m2mJBvV`sdG|Gs6|=XkN>SiF(us@s#Gw!UaFa zvV{e68J((|Y?E(PyW94;Ytt|B%c3=!+WNN@r9--XW0TA02%V`8q8T#g<%8KE1F}bP zwa2C4k}Q{e4aW&NMn*<+EXE(g{gR->0rl3{%Eg|- zm=jDnn$53ndx(FmNFAj5=z7quvRmwvabn)K`{NMX`urqkW>2ImDLFNVbpC%#E~v>` zA957dLgaaWov!D65%}Bt4uN>5bFiAqENY#0Mc#F(W+%G5Bb`=QeY$-8dp22 zt=|QW;;?g*QdGaX2DxE-2~7&27J_Zf6wZ^^VEm9{P$-+<3G8^s_iRf&)|u6V?F>Xw zSeZFooKSpGxHIze{|_bHMx#+~;cIJ7t`R^Kk{U(CNl7Jzo(I!5sV!$**d#rU;`lCh zZsFoz*%jFzxOw9rZU}PXDr*H_%+e1XdoUTPQ z4aD4d{Zn`y0LAT+25p}wLFt_#Waz7(+2WTy2b5X@u+f3di*d(<_$Uvx$Gx<8#QL6k*A;I zGT+Z4AaH+uwx_4iydyL+k~yZy^VaLVhkTZck5nIg-n2?X-r#jQ_|@{|e?qiK>#003 z|2GMSP08o8-d7yPe_0gDe?rr;?&C2Ici|posjXjcEZX+P&M4@ny__jhkMvX#x7xXH zPIWO|YN&gLcS5gXSB)*Dcq&6G?m08(Zlp@;;Kv|-@k!p%*K4!J_mIh9U;Qsqjppa_ zc?R$Q^E}hXJ-pEeoC~!?Gu)+)G7Wq8?qhkm2(MM|r^Z65H5q#~J?1*!pAs4xT2RTs&MsdUOsDze z#2H;>lV?k*s%xxVXAlMgxAJUuNl9Vcaad96vgJ{V!xzuX!oSLDJac_KL1;8lM(S$c2T6_-*ST%F!>Qx#TTSrRKPYIldhB`uvef%|=snW8O zc8vp-C2Yc7a-x%pRue)Pat;Ng-TNqJ`1W|ERR&^cH6JyGX>%JT3(Mx&`TGp7|Fzfu zEMpn>UnC`+4%e|!h6%!IVxL=Z>b>>NK+C2p*~_EN?bNo2=rC?R+%(Legq7a z?y){YKt!bJ=2i*-aU5)pJR-x5Q%ncOg^I6VE#t?ifUpzJ6+hJAr+;CXE%MKOUL@iZ zLiCwh{@7rPhur%eJ_PL`V$(IS6=9?VF+U8&RFP}(uhTAlWm~t5 z&nUmO*i7a~uwQ6lTWVA)yHEWL-^2EvMEa4jBC(cDorvvSb@}d7QJy?C|0?%uj#epG zBrkv%4r4R^iAJA99>K?)_}9F*WN^@@auaj-JnJ7UivQCh4z{5e{}?lo2j=JvsQ>5H zVIb6~ct%mtA)ujEz$4YvNT$ifJZ`Agq{$3wo3v2xX42$Fjz&bLz;%?cRZO?iTuN;7ZZqoww))=7{t2L9D4NpAk|8 z-g^sBG$twb$Lii-FI6`Z+AuYj{cx~cf$tPZ-41Nn>Q4W4b@Up_ua24dbH;bKgC^CL zfZlav!z-T`KD+Fiu{O}e8Be&mn;gL5Tl{>I3+gkK0B#{RNrx<{99 zJ;1j<)plE1Ss93z8iduW3bE-^Q)aFaCv@NLJzV?|c)I+ND7+q}EAY=)k#6K;f;mBl zwMpy#Qf4iD*Bm8fpW?^#nQX-pcZ;T1BQxttIv<;&(`Bsa*U5PYmZKqFTDHknI5#}) z%2X~{XXHd*={d4^Q>^KII%O4=#L!TZGvwDX=PU22yuT{nSzxNjuW>@RG+;*10mxTH zLaYAAutZ(~`#7nVAKmjmbx1~jok+31e+ivXg@g}Je(%K2qDASDmHc29<9eDIw^he+ z0t1G{FA*T0p!`nPY5mV~V(jxp^rBczZEdDXiVPx`9<1m2e#w->#uCV~rcV9{iAw7H zwBI!2G0B!mqJEbzMqc8u7{r<|5Gz$5?;2#}QAP*UOD0)%Fa!4;Q}?9?A8v z-kAj@QDy|K&p&wR@@()^v@D{Qphf`V&?hD)l3ciuSXfxd-JznY8uy%v-zNLRhfC5S zO(v=j9(+7YBlJ5&$lsAA+Yfu?ZxUl}B$WnPc<&>*XN?H_@_TXV?>Uume=r4)6zG>0 zJ-KlQTXo_NN&31MW#qPTBmZfBjPTs9%FhTzAu(r(1ro^LP%Dkpc`DoTkD#%6uQu_| zv?bkrrt5+es`=J;TlMw-UY=B5pxm36@|p8S{3@ZE#gE9mFFyrhJEEUIeR{kpR!~)1 zTAEV84ofkxyS+VKHk;dlsJk_<$Mybg>TdRx2`M}nV;DC!O&?h5VUV`A_0UDw<?E8qU)1jqkxK_y_RBwc-_17p{W4*AJbe7w_lja|`Nj=va0!jR@!{5!*Xdi~Gy7P4)3^gnb~*Q0byjzK zddA&`in*JAg2^OgqgPEP9c$Aaye5t06h@sNBycNs7tj`6nPDKdko;bxiC8%9`SZx8 zOYM$dw^IRZ$F5V{IAn}6{mmY+;MVZhbAz}i5LJgO_S~Ux)|>1_+9jMNX3e?;m0A`{7rkvszWJXgT?h>*!fbzfn?Ae}!0Hu` zyqm)oR4x&jj!3VDiMXiAv~ODeL8DogldRlNhgp#q)Cd3ZFNC-ek?TUzMntqjL^V8i zz^_~35t@0oG>_I6<4F)p=gWlhqS(EO8khJ-DG6qA^z&cHeX>ro-SYna{s_PT4ZSm4 zi$^|&uW2kCSs&C*$xD9z#VjxgA-0ORP#nEcm(>G<;pVJZ3%Np1PYRlx z@M1agyh?(Yw}{Q3*MySc5MJZ)*>f{CF`4=PikOn?;nT{U88)a$c@83_9u$h1^BDPk zjw@Ggy=PMF4i-O1|M{LtHYAV>Jo!bL^K5EXUZu8rrW)j&Hsgvvsw4*~4x#Q9X6AdK z@Oy0ZnL4lhmhQ9S^Iq@L-1+@p5!@vW<{vImh!MqWOQAtg0+<`q+XYm9AW#?;hQ z!(a1PI}Y<_&qXf??SrRKinx7(;ZB^C7qR|peNH0JpQROPQZ=J(n6aT2tdzvQk z2>}6DXujPIHp$#ld$mija;!WJv%Tzk3={F0=qbA9`*+Z;LvfGlg|JTd8%+YC1bHkz z>52#D_=23~kDYx|C3&rF&6g?XdN%?0@-8bpeWCKI>u#@CLCt2SmG`+#o%9d;r zaZdM^F_;f(Js_3{zxGXiahg3xfw?tLZP807=a=c(`;9#tqDu;VF>OmObxv1W3|<#Y zmZ7QL&TaUYs?p5;PItHR`7(K%h`gni@t)lmzi(PA;_;SEKN^7F%zXTAgkotzTHV_XzHyvq+Bth2X*5 zYh{i(T>Fm)?@5&|;}D8ac@mb!il$-8+!I)p%rin&e{?wyPpsw13*yBe_L-3Ns;gDE z7^AQXf_N_DBwO9Vyr{t!`)3%Ak(c_jm$bIKPm=aA+B?izJDi?pWqn5=DiYm-G(rP>#6@aWwn{@3aGR0k{gH5E#o=!esIu3ys%@k z-O>*#t$zr6?x4Q0?A3hoOxV377O?szCa zQkLAfW-cm~>8Lv<8}E8xdn|IXax1NvGfpFQ$a%9_DMzYDx1AeHTa&^UxAM3ln1Q9L zmm{MS0->K`182T44G+pMZ0jBQ1)M;|zg4hj1FlOIKQ{2hT)VelvOz7bn<}l)mbdwm zV!zAD`K5LGD0`XS(wudQ)OOXE8oB-|@zz)0GK~94$0v1lhf1$K^88s;uwBC^J$(Ku zj$c|mXK}`dNN=vc3NE#23=9lE$dkZXSj5EiLvDa#TV&Q&-9DbHht~M~`E#aDNv@hM ztB!eJJRh;}NOqdgL4uLnWZM&hjnn1WCFAiHv>H!&0HxY1<*!;c9K#P~7n!w-2OAsZ-cSpw(BBOTW#}V_TRgl#d@lv=g4k0z)JeV1 zY1S8mnPw*A8nW-p%hC*f(OqOJ)HF*mL)4fyo_uG|m5Vhcr4pdV{8*UG(>EIK8kSFB zcAobP0oB(?Cd%Q3(C}WYruVjHXH&!Ae*DFyEH)88^q~SOiH>sc~N*RAC9K3t}fDVw;cN2;f(%IBMt zn}+02dE?Nc`Ge2$ zc+_iS+>;Ac#25>_8W)ABaD&&(Ab7GRksn+KH&dRqP+c@8RCAFVfF-_^ae$ zy*2wsf9kJdm!xBGdHbkizQs1IX+lqUJD}9PZ+t2KBFTVpf&Hlq90n2JMot+P?OmaQ znlJr^|0e=*jDPRQ-8+(!EDQ{Hpg+JkH6=B?LV6xaF-XFL>H$lS!{KVeVLHf>L7Z1~ zMh`tOBKFR{L;a=i54H|?ghD)37*o}%e#dv>qkAmwy>C`nrRZOyT(@qO(i@ISfAhk( zRfj*wrEyhh!@lcH_9*#*wd*gJ{ewhHn-~V^Ox>hPIrCQziU%sW&JHPm(5; z4mOQv=twjc)*ZtBDVsplHqx;0!<*YM6Ip0Qaq|0WJm;__jFYW#XOS!xZ};Z?lq*5T zqkSNg{g}R)@;`SgWDKb)il%%vs$=Em&L3>B8Y(OD*;~Fl-@80}#zp>S-++&6M%SHf z$!7s)bFytWth=n=2uGL~96owp%O00h*T2~zEUal+;~y7fK5s-d^@4bM=irBrw2GfW zU)nWNvWe+5_Jj--HJWD{0j!%IUu41}p9chfQ9<`KikhO^+b?(vx~I>SP^33MN$Baq zB@W|uj$BcUvr|sVwNGu?c&K-FF=NPt#E|o_45jgf`Tzn3o(9I1pq%*MPVHVpID1$~ zNFq`aWneIyXpEAPk!i>Hc*H+X2_WaCyhBq|A8c|VE+!D&>2F?g08!S-KixJZv|S#~%-XTUWi1+nqO4h7!M zDqdhi%u#&A+o9^So_lR?g2akT;$=5?g<`m#+tSiSL`J43Co@nOt*tb0&Q7N#Xn+>S zFb%Y4WplHqiGL(ptH6XsRCGUaQv5;n@uoWKajGZ|>iJDAp6q(Cf)8Q>KdfmURaTyW z^)H3#fhVMnr=lQB)_<)bID37EQTW3Z4ZKf;yR>cvTR)D`{5+*3w)qI7^@-??BvlvJ zZS`BS%_B?H4<9~cO{Xjc2{HCq;Cx6_FuQugKR#q2@j?|pU2m8*e~^Z zdcy5)Nz*0Yqz?pTu>>ePbDtryRbd8H&*&D>@#_LaLi*bv)9~yLQXt)vg*sztU_#T6s=3vB zSfkP@QsBiRV<{5hpZe+tUzS{=8jgT}>d z+s)xa_l%7arPa`zyYlz^9^-EDHc;X9%91WHiW=TJCPVs*F+vsaAHi8>_3OJ2Q5+Yl z1qq=2kpKF{6W3F|9?T7vtJ(Q2N4H+-tqPqdK@HCJT#rRy;!^n7{ZJxcVYxRtt7)%) z^d~sQ95zp=cC@N3suD=1CbtdrANZ#btcMJXps*ReWVm*W8~kri8e&hRj7o$z z57@k~ZrFC?*Y&A>;!|-b`;^S9cvK=K;N(isZXXK9MD)mj5aV3kH*ymwnT?WeR(`;t zV|$1@S&gJj$c!du>*%#vkABR$g(gcVLsyo@C13HDg;6#7@_YUVQf=oY7dY@xULiv! zYK(>VU8rDox%QF_yOj6%#`5b%FjW8O2Kv|LP7LEw@e75znDp=ZUl5x5-;K=3Dxm&P zo4)_lhil(Zu`w~F>8}3x`BT}=%?(fe`28pIB=LTK{XVuPjsNiJlhWNFYN(}`-r+L} zw0Awf#BOhIFXXoL0W|RDSO4MVe)F9OwmKTrzwbMb06{YrEsJV?{hz(%AEL{j{$0?~ z|MLbe-G|G+Y7qJA@#Dv8X$mwIYwfZN9H;cH#_PjoMyjen&18>hf)?EG+}4mnZ6-4b`yFESu__DwR3QXFSUSEv%psaVpqLUelol2mG2E2aVq31f3 za{I+utwNKftB#Y+>M?xQYAG_L&<~L={r;-Qat)dDPPY}0X|vkq!jO7}hqL6JJLw?s zcudB*);F4NuZ++17iEF|qW;Cf*m=5LQa1dW;H<;lKyv%;s?%7na1K3Is4I45sMeY9 z1yb-JT}jU%OaiNe_B>X0c4s+*B8#vSXDE|PO9haReemr$qU}pa_;+|g(Ud->3Fx;@ zi4Dhn9=9?motm#rwZWuP$J`v@>7eNX(-w{b>-_^yJ)y(puYD6n1$~8vUyo_#aEPdx zn`a#C^i<8%v*oElUk9va3VN|p2ifI9E$CMD*j&f~tqcZ)ER)B0nC9B9PKk-Bspan< z?~v9*q*FIblQShHMX(5|s68j7_!ZgX+@qJaSamqeI2*vT>gtNKtuwSK(K>oV8NQ%nI$RCkU}8kxSEM2>cm zii=Azpt(ApVj3Qkz?q)Byf|T3p*M>1^00Pk2yVy%5`~ofYJ+I9^ea5f0Z6T^u4YZC zKOxJ29lt6Ui52*PEG9Iv(4&WP@6vgz0f<)=mn z{_F^6*Fh`^ngAqy4^|VL_W^HBHpda1KCNnFlWS8tdZH^=Pv=2+s_HPU;>Vm{GdS+laZMMaU4=3^^$~(O`u1{)w1iAb#85M zN6inEBy6sOHS_syeWPn!7(%~cD6s0wcPxfBvx;|*ifx9pgEB|6P7snC+LTSF7ARCf zlWf!B{>Y)=bFypq4H=@cv#-^af{IBgJ@Ji5+{t4;h(=frx(#6qTPO}W{2ZafjH^e_ zHO~EDdlLC{c^Cyvhmh-n)xwua+O&;BsE)|NWT0yYvPD2moIcw0bV;Xn^(mb(%2$?IA^A+t7`?H zYXN;_tPh>-P66u+*C{ZOk1`;DN_NTG`| zbDGU5v4Hjpg?S*ZDRs1-a^R|!5JWl5hJj3kB)7J<668`2HS5C=rCYgbkGQ7XgNe>$r z@4cY~@^6}ffnq~Ti>963r;gIMZ_h#WwdhEdH;tQIESc;;?g9ZQ0|_)!A741l^?qK- zLzVY~n-WEcMXr>tj3!AtQnYo4fnt(Ej(RWWf2`8GeCU z#F)X-dcbWM_seXeJWQLZ5#UYdwdBvu&D{xY^e{=8o%N^d&_2;NaU99bF#i=F{sv2AUAA zq0?n;CMysAR65LP?;!^ppryR~(}Qo>`iyQL;g#mFNzuZtxmJ8SQPcdxZb=hOF=-$g z{v=NVVP-nva4#*{K#`;Q5xA`fi1X`PW5L32e3!oBuQv-XnnCu87O+pO+*^@#p6Qf! zcXubPdbmW1OcttL>EKTLvj&IlNG!oSeQ|05z35VC-kJW+q&YT&NPJI;&Uf!Kf~_mP zcW1yR9HLvcgNS@=p-pk7_2U!mVk`4)kLuMobmIC%Vp|{ji!9Up{7_w)>atKyXag5& z-iZd9Z*j1oDfL66v6x-Frv@RK%h&<>}6pvfIkPM~E4%o_$Vr!lEQBhi>vp9=tDk=}#+uIvA zM|^FE-Nw$SLVD*hstx3xhn7{d$4{O>NzyU4_7L(?DgXr&$d@J%Gm+m3Xs86^;W7ay zttB^tEir}jFJ}1#a4u(zn@Bf3Fpy9c++twuUqRhH?#1#|g=g7B<%s3Jdh>?&*|TRs z_Gz4Ld*cxX%{yfuZ@-9seuhfuIVa*T8;c{hb1vv8UQ3Od?33lgd)uq>Zzy>i;cSdC zgjEZ%-8r6)WNBiaM?c>36dRP-#AWDy$(L48aG^|yjkSV;b$wyg_C$<4Bt7bHkW+az z_1#n6JwgTxwI;d6;R^Y&+Ba-2HFjT58XA6qZY&<4@oDw|hPXl+6~*^|$0uTWnw=5_ zy|(NCpvXZFb;lMZuSFze|F6qJ=ph@p7xf_n1w1NqnV(rJ1A(~Xi=%1B$J_YTWT6en zdL$+##nmG4;;MkaRv^;{;;VAk&rsg5qlETg3vhQ^gd`g^9u{wo*fylqL5WMJnN(u4!kf?@mCQwP6!0;7TAzmKYxD0)^}GYYP&I3umfx|t+kEZ2(tad=R|b+ zsrwK!nxKIGhN~99MKe@$(_$?j%hoX7`=kpl47$;;8w(AbRcgArv4DT)!O$Dv%~y;9 zH|F}r$X(}pxoAW^I+xA5@+x;^Mtlz|immz*p~`CpSUSYVyK}}C{fbu9Lk(a;1c=m{ z2Hq(!LNo+%JxI(nJyx<+VtOXuU!ITVF%5ctmPR|(8&dt8%VeHIOw(2L(1P1>I|qk+ zFq)a(@DjK;#MYUE-Ni|BJ%K#PH|DT}3Ii?sn?YW5$Ja;mDJhWU#Gy4L~! zXgbe!tAk8V)4^{um<}4{O!0tC2Z%u}Zh{?)Gy--vq0reus;T?n=gwDQCjiyrdrMCM zt<#J_zXW4OBYlVOEZ|tj{$eB@APE@3K4q)T!lV~2sBp0z%ZrGK(V6hvTw9u6w3a?9 zt)pFSMOPbnOv^VlU?tT-M6s>huI1u@n(S;(o@*KYpgB_H1m6pdj?T2L+Sh<)xXg6* z>KX^vW5*Xu9(+47wzzm?Vg-mfYz)}O0K8p=BS&A*H{3Gj=Bx_bS51&#Vk#<2K)=SI z=UD;NeE``Vz+tM*P+2PAcf`~tb{DJoA#Za-kE{4>-hI=u9a1j5Y($WA`8S-Bt6SuhK-wE1B!o)?CIS4;opd*t z@8IA-A%Z>U{^#mDckV=@7s?vUJ;h)kNo3s+zMCKum{sm?=&VBEjDp^an2YS%k&vkc z^lstr4Fg`3gK$J4=#bo3WEr7V=9G~E$&W(FDLn~6TTOs_Y>=S3F+b4s^b~PmlL=2= z)j?TOQw=qp7hr#>kg?ulrRTuI^D=;ZM2Y)WZi8zzu8cRx!@)?o*B9BTcdNHoCu1Ow zynp*v$;5YCXMcB-9}J2YajzJDTRtQWz6uU@_1GDN%xVp|z5CUJfD~c?T15d> zh;xoNB`{PFZ(or+ETyHMT*W>iiiU$Qh#?SDP?!V6v)1?BcdnCA24LBOrlB%wWJ>UQ zDC9I{2tA!v$S?E_nThSMbvSawpiYc0@1iCk)n2zADCYh6@#9qhV9-y{lnom&%?mU` zeD+{vZT!cG&u-3i@8_fpm6U)}goHN$7V$uC@Qr$Z7Ase|Jwb(}E@BdrM-UXOf$L8? zUD<)^46-$mFg8_Sv>kx+8^UY~l^iB`$9Pb83W^6LXlUDd0po zfP_snu7jhcwlQ3_PV@ci*}DxR_4W1KM;n6-;nXQEQIECj85tQ0)__uxcOcOamYp9O z2ucN=XF_GWNli_7YRSo*3XeJ=Ks|)Uk|VX?ZwUW?q9hz$`Xl^c9m6>dIDqiOK4@_t z!pxYtxY|P84bmaKs3E6tq@{mq4d_noUbh_E1MfsFgL;AB4LyTaU*y~_w0?oS5CXn~SG8c3 za0mo8EG8!Fi{qq*T?(91IP2?52IJ&t1OfoXmPAO6k_b$LRV{>eJ?q|2Ux!jgT_K4M zmhC+|O~xuLtOG}0vfpkaJs(ge+?fU8Dk zXacnDd3*Wx8ng$ihCu%_#NymAHcg?51u*h3===enVw464X;;_OOMw}JSeyw<)nD#j z08ga>ostci>CRz;6+|3%ViiDU7APJBr%oxu_VGUae$x2SBY{*VIH#o$C$s}d5rN{s z1g3Uo^E5p?$`FJNwRa!|atMHhLQ^xk64;goV0=;%l4MBdW`K7?lG74=v>~u@Itn&E zArec6_Xs@)^&|^wYgzzK)q!9EHp~D(KbPIG3pR|DcihFn!BH49@SNwZsi|SPaYGF`i3>QN zx}$k>n}}LKNvGJ#-s&#Wet8Z9e_sZIf)sBcRL0wT0M>IJa_%t)!ly7c0`h_LT(2^0 z6tY-0U&b$@wF{b+~UUy7Ge_sdYeB`xq>?b1$S25(+{yz}i9?fCH;R9P0s8 znhLfv1L3vnV1Jj_5Q9p)1kjQ`TF5zb*mF@7BJ(W-o+AvbYHyqqk!%Wm_B}{1UYtSB z@l2K}zyVZ*!h;Bs1W{!gK?{&;8KnU{CLopoh+C+Ca(vu;xZJ&Lv2vF|dU|>qc*J{d z9-eiGwib}Wk)9sol7#KnNkpdL?a@s_Hn%2#R2!%`a#9>}8KPhaj#=uvkCP(vE*bX7 zLhw5TEks%|)k{+p+rGo35Zf9+%67wZ!wTU|$Q&VI^-PTzF4s-2fedNO~5@LAy^(@ z7eKB@rlv73U!Fw9Vid?V;=LL7?vc;VbQ%wb5!}=?b{OQH)n21u!8ZdSg}r+Ojap`b zTqba^zt*H63MMYx&%ne4U=j=?$Q}@S(C0p@tDKyRfxN$e|3(5a4w*@7T2~ZaFN>$}Ou8q!Hc->;P%@%aKS+)CS1|#sSd8nG&)) zIM)pT@(5?#-rf#LM$W$jZ;R%)jb}h4tM`CMko!ujKvM34PGDZ!VO`u4gsp6O<%vMt zx62!bOYM{Nz1P)&5epyiTKB89=S7IcU8JJQ0=G_kAPu(*>ku#s45Aivs5M4JHTa~m z(dSgn+AYvOxBinULBIpI0!RrZ_oJ6^_?mIwqfhZiSOzS1g5}JbZz^N=j%+UVgkOI^t6R7S@*r5o3ydXkn zAo3va&Q7E=6O>1Yrvmziu$N{419v83Y}eZE(oMr`I)RjRmDr9HaFi4ls*TkJi;ofe z0^^}MJlypRiaks1BYdz{3g}7Jht6YTE(3VCd2_5FBL4y9&FazjoDZ107WAsL)c}J=?+9ik9XX`;-DNI73NN`}1Q~Jx7F9_i6coPJZdp34~ z0e0|vQICFBkAbfqFn}JggCh8bk0GDkd6-D2Jpa&dGtDdw_VxJzO(M~?w~#fHfy)c0 z=0FP;B1U!R8RS7CH-k9UU*?=O=8y>ar{1OnB$J&8pY3t7I05@xA!|V8r+{nrfFhX< z$-xrHGMpQ212@T`C z+0oY-AmX-BAc&wJU~W^8YTJQmrgBzp{R(XG!usPs3RDK&0cZ>>*uEmD&uxHl3c;NU zx*>RbBdyKQ?jq!|mQFxGP=9!0PYU?lRmJ#hxQ)g@iLE9as{&M?{Eq%^{HilBj&6wG zv9-tu;ZN{duA zc5@nz^FmD}lSbHO3aFPl1Q;kM+z0uCg_$|Mx(7)u>M$cDwjfal zU@9WHPj+5~@1ua-g0F^nixe?#u=DY0AjjG7+76SY=(p+ z@7_i9JNOofcff=*LF`h7B^R-bL((f0>pN5BsU#&Ok$}f`Sbtaxy4)Io84ILrHBwp8 zUu>QAikK;WeI=;_sf7R}oq_Fg2&4i=d~mQ?HM{70h(>^r`|5kX~hjMK>am!vUp-ulZ-%Q(l8(qyow;Lx(mr14bBMT=cEo z?bpqQEIUgC(1WZ!nrZd1)I0g@)OA1?k!a`kf_yupEro1j)sV6AK~N z9>DjtP*7w*Z-VGr>+J;&=<&vu!=aj^pKH*!`sdNbUEkWrW$N^n`B>zFw4}nF+*^i^ F{|8lHzk~n) diff --git a/public/images/api/qiskit/dev/transpiler-5.png b/public/images/api/qiskit/dev/transpiler-5.png index 4f2d00ade0d4924b09b737d987178b0c598e2535..3f6eb88486e5f1a1e28a2eda872a37c0bce13c9d 100644 GIT binary patch literal 19906 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 Bp#T5? literal 19939 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 MD&5VMdHC$V0Ts1^`~Uy| diff --git a/scripts/config/api-html-artifacts.json b/scripts/config/api-html-artifacts.json index 63ce40d9515..bbfad6560cd 100644 --- a/scripts/config/api-html-artifacts.json +++ b/scripts/config/api-html-artifacts.json @@ -1,6 +1,6 @@ { "qiskit": { - "dev": "https://api.github.com/repos/Qiskit/qiskit/actions/artifacts/2024902013/zip", + "dev": "https://api.github.com/repos/Qiskit/qiskit/actions/artifacts/2062254897/zip", "1.2": "https://ibm.box.com/shared/static/nnao3s3gy1y5hyea506htupby9khrve1.zip", "1.1": "https://ibm.box.com/shared/static/bplxij6mapevjapr8ij7rluiayls982k.zip", "1.0": "https://ibm.box.com/shared/static/9mgo99x54z3rpo8irs23olqsov3uo1ly.zip", @@ -29,7 +29,8 @@ "0.19": "https://ibm.box.com/shared/static/wjoea4x5tnxd0l4lgo2v3kxnx6btxvvl.zip" }, "qiskit-ibm-runtime": { - "dev": "https://api.github.com/repos/Qiskit/qiskit-ibm-runtime/actions/artifacts/2023811873/zip", + "dev": "https://api.github.com/repos/Qiskit/qiskit-ibm-runtime/actions/artifacts/2063774491/zip", + "0.31": "https://ibm.box.com/shared/static/z19dt14je6cz69oi4knraitjglzo29w7.zip", "0.30": "https://ibm.box.com/shared/static/f950vkx3uq13o8g017bazpm4o9bcei2i.zip", "0.29": "https://ibm.box.com/shared/static/9n6xf8gkh24xpft2e7zrwgme7jzkh6nu.zip", "0.28": "https://ibm.box.com/shared/static/5wiif80csx3zl1tux89brx4we8w4kxhj.zip", diff --git a/scripts/config/api-redirect-data.json b/scripts/config/api-redirect-data.json index 6f2d58a0ac4..79da2a5b24f 100644 --- a/scripts/config/api-redirect-data.json +++ b/scripts/config/api-redirect-data.json @@ -1,7 +1,7 @@ { "latestVersions": { "qiskit": "1.2", - "qiskit-ibm-runtime": "0.30", + "qiskit-ibm-runtime": "0.31", "qiskit-ibm-transpiler": "0.7" }, "customRedirectsToLatest": { @@ -10025,8 +10025,7 @@ "0.43", "0.44", "1.1", - "1.2", - "1.3" + "1.2" ], "qiskit.circuit.ContinueLoopOp": [ "0.19", diff --git a/scripts/config/historical-pages-to-latest.json b/scripts/config/historical-pages-to-latest.json index e3a4114c816..183ca6062b7 100644 --- a/scripts/config/historical-pages-to-latest.json +++ b/scripts/config/historical-pages-to-latest.json @@ -18488,6 +18488,7 @@ "qiskit.pulse.library.Triangle_class.rst": "/qiskit.pulse.library.Triangle" }, "dev": { + "qiskit.circuit.CommutationChecker": "/", "qiskit.circuit.library.MCMTGate": "/", "qiskit.circuit.library.quantum_volume": "/", "qiskit.transpiler.passes.synthesis.hls_plugins.ACGSynthesisPermutation": "/", @@ -18551,6 +18552,50 @@ }, "0.18": { "qiskit_ibm_runtime.RuntimeOptions": "/", + "qiskit_ibm_runtime.fake_provider.FakeAlmaden": "/", + "qiskit_ibm_runtime.fake_provider.FakeArmonk": "/", + "qiskit_ibm_runtime.fake_provider.FakeAthens": "/", + "qiskit_ibm_runtime.fake_provider.FakeBelem": "/", + "qiskit_ibm_runtime.fake_provider.FakeBoeblingen": "/", + "qiskit_ibm_runtime.fake_provider.FakeBogota": "/", + "qiskit_ibm_runtime.fake_provider.FakeBrooklyn": "/", + "qiskit_ibm_runtime.fake_provider.FakeBurlington": "/", + "qiskit_ibm_runtime.fake_provider.FakeCairo": "/", + "qiskit_ibm_runtime.fake_provider.FakeCambridge": "/", + "qiskit_ibm_runtime.fake_provider.FakeCasablanca": "/", + "qiskit_ibm_runtime.fake_provider.FakeEssex": "/", + "qiskit_ibm_runtime.fake_provider.FakeGuadalupe": "/", + "qiskit_ibm_runtime.fake_provider.FakeHanoi": "/", + "qiskit_ibm_runtime.fake_provider.FakeJakarta": "/", + "qiskit_ibm_runtime.fake_provider.FakeJohannesburg": "/", + "qiskit_ibm_runtime.fake_provider.FakeKolkata": "/", + "qiskit_ibm_runtime.fake_provider.FakeLagos": "/", + "qiskit_ibm_runtime.fake_provider.FakeLima": "/", + "qiskit_ibm_runtime.fake_provider.FakeLondon": "/", + "qiskit_ibm_runtime.fake_provider.FakeManhattan": "/", + "qiskit_ibm_runtime.fake_provider.FakeManila": "/", + "qiskit_ibm_runtime.fake_provider.FakeMelbourne": "/", + "qiskit_ibm_runtime.fake_provider.FakeMontreal": "/", + "qiskit_ibm_runtime.fake_provider.FakeMumbai": "/", + "qiskit_ibm_runtime.fake_provider.FakeNairobi": "/", + "qiskit_ibm_runtime.fake_provider.FakeOurense": "/", + "qiskit_ibm_runtime.fake_provider.FakeParis": "/", + "qiskit_ibm_runtime.fake_provider.FakePoughkeepsie": "/", + "qiskit_ibm_runtime.fake_provider.FakeProvider": "/", + "qiskit_ibm_runtime.fake_provider.FakeQuito": "/", + "qiskit_ibm_runtime.fake_provider.FakeRochester": "/", + "qiskit_ibm_runtime.fake_provider.FakeRome": "/", + "qiskit_ibm_runtime.fake_provider.FakeRueschlikon": "/", + "qiskit_ibm_runtime.fake_provider.FakeSantiago": "/", + "qiskit_ibm_runtime.fake_provider.FakeSingapore": "/", + "qiskit_ibm_runtime.fake_provider.FakeSydney": "/", + "qiskit_ibm_runtime.fake_provider.FakeTenerife": "/", + "qiskit_ibm_runtime.fake_provider.FakeTokyo": "/", + "qiskit_ibm_runtime.fake_provider.FakeToronto": "/", + "qiskit_ibm_runtime.fake_provider.FakeValencia": "/", + "qiskit_ibm_runtime.fake_provider.FakeVigo": "/", + "qiskit_ibm_runtime.fake_provider.FakeWashington": "/", + "qiskit_ibm_runtime.fake_provider.FakeYorktown": "/", "qiskit_ibm_runtime.options.ExecutionOptions": "/", "qiskit_ibm_runtime.options.Options": "/", "qiskit_ibm_runtime.options.ResilienceOptions": "/", @@ -18560,6 +18605,50 @@ }, "0.19": { "qiskit_ibm_runtime.RuntimeOptions": "/", + "qiskit_ibm_runtime.fake_provider.FakeAlmaden": "/", + "qiskit_ibm_runtime.fake_provider.FakeArmonk": "/", + "qiskit_ibm_runtime.fake_provider.FakeAthens": "/", + "qiskit_ibm_runtime.fake_provider.FakeBelem": "/", + "qiskit_ibm_runtime.fake_provider.FakeBoeblingen": "/", + "qiskit_ibm_runtime.fake_provider.FakeBogota": "/", + "qiskit_ibm_runtime.fake_provider.FakeBrooklyn": "/", + "qiskit_ibm_runtime.fake_provider.FakeBurlington": "/", + "qiskit_ibm_runtime.fake_provider.FakeCairo": "/", + "qiskit_ibm_runtime.fake_provider.FakeCambridge": "/", + "qiskit_ibm_runtime.fake_provider.FakeCasablanca": "/", + "qiskit_ibm_runtime.fake_provider.FakeEssex": "/", + "qiskit_ibm_runtime.fake_provider.FakeGuadalupe": "/", + "qiskit_ibm_runtime.fake_provider.FakeHanoi": "/", + "qiskit_ibm_runtime.fake_provider.FakeJakarta": "/", + "qiskit_ibm_runtime.fake_provider.FakeJohannesburg": "/", + "qiskit_ibm_runtime.fake_provider.FakeKolkata": "/", + "qiskit_ibm_runtime.fake_provider.FakeLagos": "/", + "qiskit_ibm_runtime.fake_provider.FakeLima": "/", + "qiskit_ibm_runtime.fake_provider.FakeLondon": "/", + "qiskit_ibm_runtime.fake_provider.FakeManhattan": "/", + "qiskit_ibm_runtime.fake_provider.FakeManila": "/", + "qiskit_ibm_runtime.fake_provider.FakeMelbourne": "/", + "qiskit_ibm_runtime.fake_provider.FakeMontreal": "/", + "qiskit_ibm_runtime.fake_provider.FakeMumbai": "/", + "qiskit_ibm_runtime.fake_provider.FakeNairobi": "/", + "qiskit_ibm_runtime.fake_provider.FakeOurense": "/", + "qiskit_ibm_runtime.fake_provider.FakeParis": "/", + "qiskit_ibm_runtime.fake_provider.FakePoughkeepsie": "/", + "qiskit_ibm_runtime.fake_provider.FakeProvider": "/", + "qiskit_ibm_runtime.fake_provider.FakeQuito": "/", + "qiskit_ibm_runtime.fake_provider.FakeRochester": "/", + "qiskit_ibm_runtime.fake_provider.FakeRome": "/", + "qiskit_ibm_runtime.fake_provider.FakeRueschlikon": "/", + "qiskit_ibm_runtime.fake_provider.FakeSantiago": "/", + "qiskit_ibm_runtime.fake_provider.FakeSingapore": "/", + "qiskit_ibm_runtime.fake_provider.FakeSydney": "/", + "qiskit_ibm_runtime.fake_provider.FakeTenerife": "/", + "qiskit_ibm_runtime.fake_provider.FakeTokyo": "/", + "qiskit_ibm_runtime.fake_provider.FakeToronto": "/", + "qiskit_ibm_runtime.fake_provider.FakeValencia": "/", + "qiskit_ibm_runtime.fake_provider.FakeVigo": "/", + "qiskit_ibm_runtime.fake_provider.FakeWashington": "/", + "qiskit_ibm_runtime.fake_provider.FakeYorktown": "/", "qiskit_ibm_runtime.options.ExecutionOptions": "/", "qiskit_ibm_runtime.options.Options": "/", "qiskit_ibm_runtime.options.ResilienceOptions": "/", @@ -18569,6 +18658,50 @@ }, "0.20": { "qiskit_ibm_runtime.RuntimeOptions": "/", + "qiskit_ibm_runtime.fake_provider.FakeAlmaden": "/", + "qiskit_ibm_runtime.fake_provider.FakeArmonk": "/", + "qiskit_ibm_runtime.fake_provider.FakeAthens": "/", + "qiskit_ibm_runtime.fake_provider.FakeBelem": "/", + "qiskit_ibm_runtime.fake_provider.FakeBoeblingen": "/", + "qiskit_ibm_runtime.fake_provider.FakeBogota": "/", + "qiskit_ibm_runtime.fake_provider.FakeBrooklyn": "/", + "qiskit_ibm_runtime.fake_provider.FakeBurlington": "/", + "qiskit_ibm_runtime.fake_provider.FakeCairo": "/", + "qiskit_ibm_runtime.fake_provider.FakeCambridge": "/", + "qiskit_ibm_runtime.fake_provider.FakeCasablanca": "/", + "qiskit_ibm_runtime.fake_provider.FakeEssex": "/", + "qiskit_ibm_runtime.fake_provider.FakeGuadalupe": "/", + "qiskit_ibm_runtime.fake_provider.FakeHanoi": "/", + "qiskit_ibm_runtime.fake_provider.FakeJakarta": "/", + "qiskit_ibm_runtime.fake_provider.FakeJohannesburg": "/", + "qiskit_ibm_runtime.fake_provider.FakeKolkata": "/", + "qiskit_ibm_runtime.fake_provider.FakeLagos": "/", + "qiskit_ibm_runtime.fake_provider.FakeLima": "/", + "qiskit_ibm_runtime.fake_provider.FakeLondon": "/", + "qiskit_ibm_runtime.fake_provider.FakeManhattan": "/", + "qiskit_ibm_runtime.fake_provider.FakeManila": "/", + "qiskit_ibm_runtime.fake_provider.FakeMelbourne": "/", + "qiskit_ibm_runtime.fake_provider.FakeMontreal": "/", + "qiskit_ibm_runtime.fake_provider.FakeMumbai": "/", + "qiskit_ibm_runtime.fake_provider.FakeNairobi": "/", + "qiskit_ibm_runtime.fake_provider.FakeOurense": "/", + "qiskit_ibm_runtime.fake_provider.FakeParis": "/", + "qiskit_ibm_runtime.fake_provider.FakePoughkeepsie": "/", + "qiskit_ibm_runtime.fake_provider.FakeProvider": "/", + "qiskit_ibm_runtime.fake_provider.FakeQuito": "/", + "qiskit_ibm_runtime.fake_provider.FakeRochester": "/", + "qiskit_ibm_runtime.fake_provider.FakeRome": "/", + "qiskit_ibm_runtime.fake_provider.FakeRueschlikon": "/", + "qiskit_ibm_runtime.fake_provider.FakeSantiago": "/", + "qiskit_ibm_runtime.fake_provider.FakeSingapore": "/", + "qiskit_ibm_runtime.fake_provider.FakeSydney": "/", + "qiskit_ibm_runtime.fake_provider.FakeTenerife": "/", + "qiskit_ibm_runtime.fake_provider.FakeTokyo": "/", + "qiskit_ibm_runtime.fake_provider.FakeToronto": "/", + "qiskit_ibm_runtime.fake_provider.FakeValencia": "/", + "qiskit_ibm_runtime.fake_provider.FakeVigo": "/", + "qiskit_ibm_runtime.fake_provider.FakeWashington": "/", + "qiskit_ibm_runtime.fake_provider.FakeYorktown": "/", "qiskit_ibm_runtime.options.ExecutionOptions": "/", "qiskit_ibm_runtime.options.Options": "/", "qiskit_ibm_runtime.options.ResilienceOptions": "/", @@ -18580,6 +18713,50 @@ "qiskit_ibm_runtime.EstimatorV1": "/", "qiskit_ibm_runtime.RuntimeOptions": "/", "qiskit_ibm_runtime.SamplerV1": "/", + "qiskit_ibm_runtime.fake_provider.FakeAlmaden": "/", + "qiskit_ibm_runtime.fake_provider.FakeArmonk": "/", + "qiskit_ibm_runtime.fake_provider.FakeAthens": "/", + "qiskit_ibm_runtime.fake_provider.FakeBelem": "/", + "qiskit_ibm_runtime.fake_provider.FakeBoeblingen": "/", + "qiskit_ibm_runtime.fake_provider.FakeBogota": "/", + "qiskit_ibm_runtime.fake_provider.FakeBrooklyn": "/", + "qiskit_ibm_runtime.fake_provider.FakeBurlington": "/", + "qiskit_ibm_runtime.fake_provider.FakeCairo": "/", + "qiskit_ibm_runtime.fake_provider.FakeCambridge": "/", + "qiskit_ibm_runtime.fake_provider.FakeCasablanca": "/", + "qiskit_ibm_runtime.fake_provider.FakeEssex": "/", + "qiskit_ibm_runtime.fake_provider.FakeGuadalupe": "/", + "qiskit_ibm_runtime.fake_provider.FakeHanoi": "/", + "qiskit_ibm_runtime.fake_provider.FakeJakarta": "/", + "qiskit_ibm_runtime.fake_provider.FakeJohannesburg": "/", + "qiskit_ibm_runtime.fake_provider.FakeKolkata": "/", + "qiskit_ibm_runtime.fake_provider.FakeLagos": "/", + "qiskit_ibm_runtime.fake_provider.FakeLima": "/", + "qiskit_ibm_runtime.fake_provider.FakeLondon": "/", + "qiskit_ibm_runtime.fake_provider.FakeManhattan": "/", + "qiskit_ibm_runtime.fake_provider.FakeManila": "/", + "qiskit_ibm_runtime.fake_provider.FakeMelbourne": "/", + "qiskit_ibm_runtime.fake_provider.FakeMontreal": "/", + "qiskit_ibm_runtime.fake_provider.FakeMumbai": "/", + "qiskit_ibm_runtime.fake_provider.FakeNairobi": "/", + "qiskit_ibm_runtime.fake_provider.FakeOurense": "/", + "qiskit_ibm_runtime.fake_provider.FakeParis": "/", + "qiskit_ibm_runtime.fake_provider.FakePoughkeepsie": "/", + "qiskit_ibm_runtime.fake_provider.FakeProvider": "/", + "qiskit_ibm_runtime.fake_provider.FakeQuito": "/", + "qiskit_ibm_runtime.fake_provider.FakeRochester": "/", + "qiskit_ibm_runtime.fake_provider.FakeRome": "/", + "qiskit_ibm_runtime.fake_provider.FakeRueschlikon": "/", + "qiskit_ibm_runtime.fake_provider.FakeSantiago": "/", + "qiskit_ibm_runtime.fake_provider.FakeSingapore": "/", + "qiskit_ibm_runtime.fake_provider.FakeSydney": "/", + "qiskit_ibm_runtime.fake_provider.FakeTenerife": "/", + "qiskit_ibm_runtime.fake_provider.FakeTokyo": "/", + "qiskit_ibm_runtime.fake_provider.FakeToronto": "/", + "qiskit_ibm_runtime.fake_provider.FakeValencia": "/", + "qiskit_ibm_runtime.fake_provider.FakeVigo": "/", + "qiskit_ibm_runtime.fake_provider.FakeWashington": "/", + "qiskit_ibm_runtime.fake_provider.FakeYorktown": "/", "qiskit_ibm_runtime.options.ExecutionOptions": "/", "qiskit_ibm_runtime.options.Options": "/", "qiskit_ibm_runtime.options.ResilienceOptions": "/", @@ -18591,6 +18768,50 @@ "qiskit_ibm_runtime.EstimatorV1": "/", "qiskit_ibm_runtime.RuntimeOptions": "/", "qiskit_ibm_runtime.SamplerV1": "/", + "qiskit_ibm_runtime.fake_provider.FakeAlmaden": "/", + "qiskit_ibm_runtime.fake_provider.FakeArmonk": "/", + "qiskit_ibm_runtime.fake_provider.FakeAthens": "/", + "qiskit_ibm_runtime.fake_provider.FakeBelem": "/", + "qiskit_ibm_runtime.fake_provider.FakeBoeblingen": "/", + "qiskit_ibm_runtime.fake_provider.FakeBogota": "/", + "qiskit_ibm_runtime.fake_provider.FakeBrooklyn": "/", + "qiskit_ibm_runtime.fake_provider.FakeBurlington": "/", + "qiskit_ibm_runtime.fake_provider.FakeCairo": "/", + "qiskit_ibm_runtime.fake_provider.FakeCambridge": "/", + "qiskit_ibm_runtime.fake_provider.FakeCasablanca": "/", + "qiskit_ibm_runtime.fake_provider.FakeEssex": "/", + "qiskit_ibm_runtime.fake_provider.FakeGuadalupe": "/", + "qiskit_ibm_runtime.fake_provider.FakeHanoi": "/", + "qiskit_ibm_runtime.fake_provider.FakeJakarta": "/", + "qiskit_ibm_runtime.fake_provider.FakeJohannesburg": "/", + "qiskit_ibm_runtime.fake_provider.FakeKolkata": "/", + "qiskit_ibm_runtime.fake_provider.FakeLagos": "/", + "qiskit_ibm_runtime.fake_provider.FakeLima": "/", + "qiskit_ibm_runtime.fake_provider.FakeLondon": "/", + "qiskit_ibm_runtime.fake_provider.FakeManhattan": "/", + "qiskit_ibm_runtime.fake_provider.FakeManila": "/", + "qiskit_ibm_runtime.fake_provider.FakeMelbourne": "/", + "qiskit_ibm_runtime.fake_provider.FakeMontreal": "/", + "qiskit_ibm_runtime.fake_provider.FakeMumbai": "/", + "qiskit_ibm_runtime.fake_provider.FakeNairobi": "/", + "qiskit_ibm_runtime.fake_provider.FakeOurense": "/", + "qiskit_ibm_runtime.fake_provider.FakeParis": "/", + "qiskit_ibm_runtime.fake_provider.FakePoughkeepsie": "/", + "qiskit_ibm_runtime.fake_provider.FakeProvider": "/", + "qiskit_ibm_runtime.fake_provider.FakeQuito": "/", + "qiskit_ibm_runtime.fake_provider.FakeRochester": "/", + "qiskit_ibm_runtime.fake_provider.FakeRome": "/", + "qiskit_ibm_runtime.fake_provider.FakeRueschlikon": "/", + "qiskit_ibm_runtime.fake_provider.FakeSantiago": "/", + "qiskit_ibm_runtime.fake_provider.FakeSingapore": "/", + "qiskit_ibm_runtime.fake_provider.FakeSydney": "/", + "qiskit_ibm_runtime.fake_provider.FakeTenerife": "/", + "qiskit_ibm_runtime.fake_provider.FakeTokyo": "/", + "qiskit_ibm_runtime.fake_provider.FakeToronto": "/", + "qiskit_ibm_runtime.fake_provider.FakeValencia": "/", + "qiskit_ibm_runtime.fake_provider.FakeVigo": "/", + "qiskit_ibm_runtime.fake_provider.FakeWashington": "/", + "qiskit_ibm_runtime.fake_provider.FakeYorktown": "/", "qiskit_ibm_runtime.options.ExecutionOptions": "/", "qiskit_ibm_runtime.options.Options": "/", "qiskit_ibm_runtime.options.ResilienceOptions": "/", @@ -18602,6 +18823,50 @@ "qiskit_ibm_runtime.EstimatorV1": "/", "qiskit_ibm_runtime.RuntimeOptions": "/", "qiskit_ibm_runtime.SamplerV1": "/", + "qiskit_ibm_runtime.fake_provider.FakeAlmaden": "/", + "qiskit_ibm_runtime.fake_provider.FakeArmonk": "/", + "qiskit_ibm_runtime.fake_provider.FakeAthens": "/", + "qiskit_ibm_runtime.fake_provider.FakeBelem": "/", + "qiskit_ibm_runtime.fake_provider.FakeBoeblingen": "/", + "qiskit_ibm_runtime.fake_provider.FakeBogota": "/", + "qiskit_ibm_runtime.fake_provider.FakeBrooklyn": "/", + "qiskit_ibm_runtime.fake_provider.FakeBurlington": "/", + "qiskit_ibm_runtime.fake_provider.FakeCairo": "/", + "qiskit_ibm_runtime.fake_provider.FakeCambridge": "/", + "qiskit_ibm_runtime.fake_provider.FakeCasablanca": "/", + "qiskit_ibm_runtime.fake_provider.FakeEssex": "/", + "qiskit_ibm_runtime.fake_provider.FakeGuadalupe": "/", + "qiskit_ibm_runtime.fake_provider.FakeHanoi": "/", + "qiskit_ibm_runtime.fake_provider.FakeJakarta": "/", + "qiskit_ibm_runtime.fake_provider.FakeJohannesburg": "/", + "qiskit_ibm_runtime.fake_provider.FakeKolkata": "/", + "qiskit_ibm_runtime.fake_provider.FakeLagos": "/", + "qiskit_ibm_runtime.fake_provider.FakeLima": "/", + "qiskit_ibm_runtime.fake_provider.FakeLondon": "/", + "qiskit_ibm_runtime.fake_provider.FakeManhattan": "/", + "qiskit_ibm_runtime.fake_provider.FakeManila": "/", + "qiskit_ibm_runtime.fake_provider.FakeMelbourne": "/", + "qiskit_ibm_runtime.fake_provider.FakeMontreal": "/", + "qiskit_ibm_runtime.fake_provider.FakeMumbai": "/", + "qiskit_ibm_runtime.fake_provider.FakeNairobi": "/", + "qiskit_ibm_runtime.fake_provider.FakeOurense": "/", + "qiskit_ibm_runtime.fake_provider.FakeParis": "/", + "qiskit_ibm_runtime.fake_provider.FakePoughkeepsie": "/", + "qiskit_ibm_runtime.fake_provider.FakeProvider": "/", + "qiskit_ibm_runtime.fake_provider.FakeQuito": "/", + "qiskit_ibm_runtime.fake_provider.FakeRochester": "/", + "qiskit_ibm_runtime.fake_provider.FakeRome": "/", + "qiskit_ibm_runtime.fake_provider.FakeRueschlikon": "/", + "qiskit_ibm_runtime.fake_provider.FakeSantiago": "/", + "qiskit_ibm_runtime.fake_provider.FakeSingapore": "/", + "qiskit_ibm_runtime.fake_provider.FakeSydney": "/", + "qiskit_ibm_runtime.fake_provider.FakeTenerife": "/", + "qiskit_ibm_runtime.fake_provider.FakeTokyo": "/", + "qiskit_ibm_runtime.fake_provider.FakeToronto": "/", + "qiskit_ibm_runtime.fake_provider.FakeValencia": "/", + "qiskit_ibm_runtime.fake_provider.FakeVigo": "/", + "qiskit_ibm_runtime.fake_provider.FakeWashington": "/", + "qiskit_ibm_runtime.fake_provider.FakeYorktown": "/", "qiskit_ibm_runtime.options.ExecutionOptions": "/", "qiskit_ibm_runtime.options.Options": "/", "qiskit_ibm_runtime.options.ResilienceOptions": "/", @@ -18611,6 +18876,50 @@ "qiskit_ibm_runtime.EstimatorV1": "/", "qiskit_ibm_runtime.RuntimeOptions": "/", "qiskit_ibm_runtime.SamplerV1": "/", + "qiskit_ibm_runtime.fake_provider.FakeAlmaden": "/", + "qiskit_ibm_runtime.fake_provider.FakeArmonk": "/", + "qiskit_ibm_runtime.fake_provider.FakeAthens": "/", + "qiskit_ibm_runtime.fake_provider.FakeBelem": "/", + "qiskit_ibm_runtime.fake_provider.FakeBoeblingen": "/", + "qiskit_ibm_runtime.fake_provider.FakeBogota": "/", + "qiskit_ibm_runtime.fake_provider.FakeBrooklyn": "/", + "qiskit_ibm_runtime.fake_provider.FakeBurlington": "/", + "qiskit_ibm_runtime.fake_provider.FakeCairo": "/", + "qiskit_ibm_runtime.fake_provider.FakeCambridge": "/", + "qiskit_ibm_runtime.fake_provider.FakeCasablanca": "/", + "qiskit_ibm_runtime.fake_provider.FakeEssex": "/", + "qiskit_ibm_runtime.fake_provider.FakeGuadalupe": "/", + "qiskit_ibm_runtime.fake_provider.FakeHanoi": "/", + "qiskit_ibm_runtime.fake_provider.FakeJakarta": "/", + "qiskit_ibm_runtime.fake_provider.FakeJohannesburg": "/", + "qiskit_ibm_runtime.fake_provider.FakeKolkata": "/", + "qiskit_ibm_runtime.fake_provider.FakeLagos": "/", + "qiskit_ibm_runtime.fake_provider.FakeLima": "/", + "qiskit_ibm_runtime.fake_provider.FakeLondon": "/", + "qiskit_ibm_runtime.fake_provider.FakeManhattan": "/", + "qiskit_ibm_runtime.fake_provider.FakeManila": "/", + "qiskit_ibm_runtime.fake_provider.FakeMelbourne": "/", + "qiskit_ibm_runtime.fake_provider.FakeMontreal": "/", + "qiskit_ibm_runtime.fake_provider.FakeMumbai": "/", + "qiskit_ibm_runtime.fake_provider.FakeNairobi": "/", + "qiskit_ibm_runtime.fake_provider.FakeOurense": "/", + "qiskit_ibm_runtime.fake_provider.FakeParis": "/", + "qiskit_ibm_runtime.fake_provider.FakePoughkeepsie": "/", + "qiskit_ibm_runtime.fake_provider.FakeProvider": "/", + "qiskit_ibm_runtime.fake_provider.FakeQuito": "/", + "qiskit_ibm_runtime.fake_provider.FakeRochester": "/", + "qiskit_ibm_runtime.fake_provider.FakeRome": "/", + "qiskit_ibm_runtime.fake_provider.FakeRueschlikon": "/", + "qiskit_ibm_runtime.fake_provider.FakeSantiago": "/", + "qiskit_ibm_runtime.fake_provider.FakeSingapore": "/", + "qiskit_ibm_runtime.fake_provider.FakeSydney": "/", + "qiskit_ibm_runtime.fake_provider.FakeTenerife": "/", + "qiskit_ibm_runtime.fake_provider.FakeTokyo": "/", + "qiskit_ibm_runtime.fake_provider.FakeToronto": "/", + "qiskit_ibm_runtime.fake_provider.FakeValencia": "/", + "qiskit_ibm_runtime.fake_provider.FakeVigo": "/", + "qiskit_ibm_runtime.fake_provider.FakeWashington": "/", + "qiskit_ibm_runtime.fake_provider.FakeYorktown": "/", "qiskit_ibm_runtime.options.ExecutionOptions": "/", "qiskit_ibm_runtime.options.Options": "/", "qiskit_ibm_runtime.options.ResilienceOptions": "/", @@ -18620,6 +18929,50 @@ "qiskit_ibm_runtime.EstimatorV1": "/", "qiskit_ibm_runtime.RuntimeOptions": "/", "qiskit_ibm_runtime.SamplerV1": "/", + "qiskit_ibm_runtime.fake_provider.FakeAlmaden": "/", + "qiskit_ibm_runtime.fake_provider.FakeArmonk": "/", + "qiskit_ibm_runtime.fake_provider.FakeAthens": "/", + "qiskit_ibm_runtime.fake_provider.FakeBelem": "/", + "qiskit_ibm_runtime.fake_provider.FakeBoeblingen": "/", + "qiskit_ibm_runtime.fake_provider.FakeBogota": "/", + "qiskit_ibm_runtime.fake_provider.FakeBrooklyn": "/", + "qiskit_ibm_runtime.fake_provider.FakeBurlington": "/", + "qiskit_ibm_runtime.fake_provider.FakeCairo": "/", + "qiskit_ibm_runtime.fake_provider.FakeCambridge": "/", + "qiskit_ibm_runtime.fake_provider.FakeCasablanca": "/", + "qiskit_ibm_runtime.fake_provider.FakeEssex": "/", + "qiskit_ibm_runtime.fake_provider.FakeGuadalupe": "/", + "qiskit_ibm_runtime.fake_provider.FakeHanoi": "/", + "qiskit_ibm_runtime.fake_provider.FakeJakarta": "/", + "qiskit_ibm_runtime.fake_provider.FakeJohannesburg": "/", + "qiskit_ibm_runtime.fake_provider.FakeKolkata": "/", + "qiskit_ibm_runtime.fake_provider.FakeLagos": "/", + "qiskit_ibm_runtime.fake_provider.FakeLima": "/", + "qiskit_ibm_runtime.fake_provider.FakeLondon": "/", + "qiskit_ibm_runtime.fake_provider.FakeManhattan": "/", + "qiskit_ibm_runtime.fake_provider.FakeManila": "/", + "qiskit_ibm_runtime.fake_provider.FakeMelbourne": "/", + "qiskit_ibm_runtime.fake_provider.FakeMontreal": "/", + "qiskit_ibm_runtime.fake_provider.FakeMumbai": "/", + "qiskit_ibm_runtime.fake_provider.FakeNairobi": "/", + "qiskit_ibm_runtime.fake_provider.FakeOurense": "/", + "qiskit_ibm_runtime.fake_provider.FakeParis": "/", + "qiskit_ibm_runtime.fake_provider.FakePoughkeepsie": "/", + "qiskit_ibm_runtime.fake_provider.FakeProvider": "/", + "qiskit_ibm_runtime.fake_provider.FakeQuito": "/", + "qiskit_ibm_runtime.fake_provider.FakeRochester": "/", + "qiskit_ibm_runtime.fake_provider.FakeRome": "/", + "qiskit_ibm_runtime.fake_provider.FakeRueschlikon": "/", + "qiskit_ibm_runtime.fake_provider.FakeSantiago": "/", + "qiskit_ibm_runtime.fake_provider.FakeSingapore": "/", + "qiskit_ibm_runtime.fake_provider.FakeSydney": "/", + "qiskit_ibm_runtime.fake_provider.FakeTenerife": "/", + "qiskit_ibm_runtime.fake_provider.FakeTokyo": "/", + "qiskit_ibm_runtime.fake_provider.FakeToronto": "/", + "qiskit_ibm_runtime.fake_provider.FakeValencia": "/", + "qiskit_ibm_runtime.fake_provider.FakeVigo": "/", + "qiskit_ibm_runtime.fake_provider.FakeWashington": "/", + "qiskit_ibm_runtime.fake_provider.FakeYorktown": "/", "qiskit_ibm_runtime.options.ExecutionOptions": "/", "qiskit_ibm_runtime.options.Options": "/", "qiskit_ibm_runtime.options.ResilienceOptions": "/", @@ -18628,6 +18981,50 @@ "0.26": { "qiskit_ibm_runtime.EstimatorV1": "/", "qiskit_ibm_runtime.SamplerV1": "/", + "qiskit_ibm_runtime.fake_provider.FakeAlmaden": "/", + "qiskit_ibm_runtime.fake_provider.FakeArmonk": "/", + "qiskit_ibm_runtime.fake_provider.FakeAthens": "/", + "qiskit_ibm_runtime.fake_provider.FakeBelem": "/", + "qiskit_ibm_runtime.fake_provider.FakeBoeblingen": "/", + "qiskit_ibm_runtime.fake_provider.FakeBogota": "/", + "qiskit_ibm_runtime.fake_provider.FakeBrooklyn": "/", + "qiskit_ibm_runtime.fake_provider.FakeBurlington": "/", + "qiskit_ibm_runtime.fake_provider.FakeCairo": "/", + "qiskit_ibm_runtime.fake_provider.FakeCambridge": "/", + "qiskit_ibm_runtime.fake_provider.FakeCasablanca": "/", + "qiskit_ibm_runtime.fake_provider.FakeEssex": "/", + "qiskit_ibm_runtime.fake_provider.FakeGuadalupe": "/", + "qiskit_ibm_runtime.fake_provider.FakeHanoi": "/", + "qiskit_ibm_runtime.fake_provider.FakeJakarta": "/", + "qiskit_ibm_runtime.fake_provider.FakeJohannesburg": "/", + "qiskit_ibm_runtime.fake_provider.FakeKolkata": "/", + "qiskit_ibm_runtime.fake_provider.FakeLagos": "/", + "qiskit_ibm_runtime.fake_provider.FakeLima": "/", + "qiskit_ibm_runtime.fake_provider.FakeLondon": "/", + "qiskit_ibm_runtime.fake_provider.FakeManhattan": "/", + "qiskit_ibm_runtime.fake_provider.FakeManila": "/", + "qiskit_ibm_runtime.fake_provider.FakeMelbourne": "/", + "qiskit_ibm_runtime.fake_provider.FakeMontreal": "/", + "qiskit_ibm_runtime.fake_provider.FakeMumbai": "/", + "qiskit_ibm_runtime.fake_provider.FakeNairobi": "/", + "qiskit_ibm_runtime.fake_provider.FakeOurense": "/", + "qiskit_ibm_runtime.fake_provider.FakeParis": "/", + "qiskit_ibm_runtime.fake_provider.FakePoughkeepsie": "/", + "qiskit_ibm_runtime.fake_provider.FakeProvider": "/", + "qiskit_ibm_runtime.fake_provider.FakeQuito": "/", + "qiskit_ibm_runtime.fake_provider.FakeRochester": "/", + "qiskit_ibm_runtime.fake_provider.FakeRome": "/", + "qiskit_ibm_runtime.fake_provider.FakeRueschlikon": "/", + "qiskit_ibm_runtime.fake_provider.FakeSantiago": "/", + "qiskit_ibm_runtime.fake_provider.FakeSingapore": "/", + "qiskit_ibm_runtime.fake_provider.FakeSydney": "/", + "qiskit_ibm_runtime.fake_provider.FakeTenerife": "/", + "qiskit_ibm_runtime.fake_provider.FakeTokyo": "/", + "qiskit_ibm_runtime.fake_provider.FakeToronto": "/", + "qiskit_ibm_runtime.fake_provider.FakeValencia": "/", + "qiskit_ibm_runtime.fake_provider.FakeVigo": "/", + "qiskit_ibm_runtime.fake_provider.FakeWashington": "/", + "qiskit_ibm_runtime.fake_provider.FakeYorktown": "/", "qiskit_ibm_runtime.options.ExecutionOptions": "/", "qiskit_ibm_runtime.options.Options": "/", "qiskit_ibm_runtime.options.ResilienceOptions": "/", @@ -18636,13 +19033,193 @@ "0.27": { "qiskit_ibm_runtime.EstimatorV1": "/", "qiskit_ibm_runtime.SamplerV1": "/", + "qiskit_ibm_runtime.fake_provider.FakeAlmaden": "/", + "qiskit_ibm_runtime.fake_provider.FakeArmonk": "/", + "qiskit_ibm_runtime.fake_provider.FakeAthens": "/", + "qiskit_ibm_runtime.fake_provider.FakeBelem": "/", + "qiskit_ibm_runtime.fake_provider.FakeBoeblingen": "/", + "qiskit_ibm_runtime.fake_provider.FakeBogota": "/", + "qiskit_ibm_runtime.fake_provider.FakeBrooklyn": "/", + "qiskit_ibm_runtime.fake_provider.FakeBurlington": "/", + "qiskit_ibm_runtime.fake_provider.FakeCairo": "/", + "qiskit_ibm_runtime.fake_provider.FakeCambridge": "/", + "qiskit_ibm_runtime.fake_provider.FakeCasablanca": "/", + "qiskit_ibm_runtime.fake_provider.FakeEssex": "/", + "qiskit_ibm_runtime.fake_provider.FakeGuadalupe": "/", + "qiskit_ibm_runtime.fake_provider.FakeHanoi": "/", + "qiskit_ibm_runtime.fake_provider.FakeJakarta": "/", + "qiskit_ibm_runtime.fake_provider.FakeJohannesburg": "/", + "qiskit_ibm_runtime.fake_provider.FakeKolkata": "/", + "qiskit_ibm_runtime.fake_provider.FakeLagos": "/", + "qiskit_ibm_runtime.fake_provider.FakeLima": "/", + "qiskit_ibm_runtime.fake_provider.FakeLondon": "/", + "qiskit_ibm_runtime.fake_provider.FakeManhattan": "/", + "qiskit_ibm_runtime.fake_provider.FakeManila": "/", + "qiskit_ibm_runtime.fake_provider.FakeMelbourne": "/", + "qiskit_ibm_runtime.fake_provider.FakeMontreal": "/", + "qiskit_ibm_runtime.fake_provider.FakeMumbai": "/", + "qiskit_ibm_runtime.fake_provider.FakeNairobi": "/", + "qiskit_ibm_runtime.fake_provider.FakeOurense": "/", + "qiskit_ibm_runtime.fake_provider.FakeParis": "/", + "qiskit_ibm_runtime.fake_provider.FakePoughkeepsie": "/", + "qiskit_ibm_runtime.fake_provider.FakeProvider": "/", + "qiskit_ibm_runtime.fake_provider.FakeQuito": "/", + "qiskit_ibm_runtime.fake_provider.FakeRochester": "/", + "qiskit_ibm_runtime.fake_provider.FakeRome": "/", + "qiskit_ibm_runtime.fake_provider.FakeRueschlikon": "/", + "qiskit_ibm_runtime.fake_provider.FakeSantiago": "/", + "qiskit_ibm_runtime.fake_provider.FakeSingapore": "/", + "qiskit_ibm_runtime.fake_provider.FakeSydney": "/", + "qiskit_ibm_runtime.fake_provider.FakeTenerife": "/", + "qiskit_ibm_runtime.fake_provider.FakeTokyo": "/", + "qiskit_ibm_runtime.fake_provider.FakeToronto": "/", + "qiskit_ibm_runtime.fake_provider.FakeValencia": "/", + "qiskit_ibm_runtime.fake_provider.FakeVigo": "/", + "qiskit_ibm_runtime.fake_provider.FakeWashington": "/", + "qiskit_ibm_runtime.fake_provider.FakeYorktown": "/", "qiskit_ibm_runtime.options.ExecutionOptions": "/", "qiskit_ibm_runtime.options.Options": "/", "qiskit_ibm_runtime.options.ResilienceOptions": "/", "qiskit_ibm_runtime.options.TranspilationOptions": "/" }, - "0.28": {}, - "0.29": {}, + "0.28": { + "qiskit_ibm_runtime.fake_provider.FakeAlmaden": "/", + "qiskit_ibm_runtime.fake_provider.FakeArmonk": "/", + "qiskit_ibm_runtime.fake_provider.FakeAthens": "/", + "qiskit_ibm_runtime.fake_provider.FakeBelem": "/", + "qiskit_ibm_runtime.fake_provider.FakeBoeblingen": "/", + "qiskit_ibm_runtime.fake_provider.FakeBogota": "/", + "qiskit_ibm_runtime.fake_provider.FakeBrooklyn": "/", + "qiskit_ibm_runtime.fake_provider.FakeBurlington": "/", + "qiskit_ibm_runtime.fake_provider.FakeCairo": "/", + "qiskit_ibm_runtime.fake_provider.FakeCambridge": "/", + "qiskit_ibm_runtime.fake_provider.FakeCasablanca": "/", + "qiskit_ibm_runtime.fake_provider.FakeEssex": "/", + "qiskit_ibm_runtime.fake_provider.FakeGuadalupe": "/", + "qiskit_ibm_runtime.fake_provider.FakeHanoi": "/", + "qiskit_ibm_runtime.fake_provider.FakeJakarta": "/", + "qiskit_ibm_runtime.fake_provider.FakeJohannesburg": "/", + "qiskit_ibm_runtime.fake_provider.FakeKolkata": "/", + "qiskit_ibm_runtime.fake_provider.FakeLagos": "/", + "qiskit_ibm_runtime.fake_provider.FakeLima": "/", + "qiskit_ibm_runtime.fake_provider.FakeLondon": "/", + "qiskit_ibm_runtime.fake_provider.FakeManhattan": "/", + "qiskit_ibm_runtime.fake_provider.FakeManila": "/", + "qiskit_ibm_runtime.fake_provider.FakeMelbourne": "/", + "qiskit_ibm_runtime.fake_provider.FakeMontreal": "/", + "qiskit_ibm_runtime.fake_provider.FakeMumbai": "/", + "qiskit_ibm_runtime.fake_provider.FakeNairobi": "/", + "qiskit_ibm_runtime.fake_provider.FakeOurense": "/", + "qiskit_ibm_runtime.fake_provider.FakeParis": "/", + "qiskit_ibm_runtime.fake_provider.FakePoughkeepsie": "/", + "qiskit_ibm_runtime.fake_provider.FakeProvider": "/", + "qiskit_ibm_runtime.fake_provider.FakeQuito": "/", + "qiskit_ibm_runtime.fake_provider.FakeRochester": "/", + "qiskit_ibm_runtime.fake_provider.FakeRome": "/", + "qiskit_ibm_runtime.fake_provider.FakeRueschlikon": "/", + "qiskit_ibm_runtime.fake_provider.FakeSantiago": "/", + "qiskit_ibm_runtime.fake_provider.FakeSingapore": "/", + "qiskit_ibm_runtime.fake_provider.FakeSydney": "/", + "qiskit_ibm_runtime.fake_provider.FakeTenerife": "/", + "qiskit_ibm_runtime.fake_provider.FakeTokyo": "/", + "qiskit_ibm_runtime.fake_provider.FakeToronto": "/", + "qiskit_ibm_runtime.fake_provider.FakeValencia": "/", + "qiskit_ibm_runtime.fake_provider.FakeVigo": "/", + "qiskit_ibm_runtime.fake_provider.FakeWashington": "/", + "qiskit_ibm_runtime.fake_provider.FakeYorktown": "/" + }, + "0.29": { + "qiskit_ibm_runtime.fake_provider.FakeAlmaden": "/", + "qiskit_ibm_runtime.fake_provider.FakeArmonk": "/", + "qiskit_ibm_runtime.fake_provider.FakeAthens": "/", + "qiskit_ibm_runtime.fake_provider.FakeBelem": "/", + "qiskit_ibm_runtime.fake_provider.FakeBoeblingen": "/", + "qiskit_ibm_runtime.fake_provider.FakeBogota": "/", + "qiskit_ibm_runtime.fake_provider.FakeBrooklyn": "/", + "qiskit_ibm_runtime.fake_provider.FakeBurlington": "/", + "qiskit_ibm_runtime.fake_provider.FakeCairo": "/", + "qiskit_ibm_runtime.fake_provider.FakeCambridge": "/", + "qiskit_ibm_runtime.fake_provider.FakeCasablanca": "/", + "qiskit_ibm_runtime.fake_provider.FakeEssex": "/", + "qiskit_ibm_runtime.fake_provider.FakeGuadalupe": "/", + "qiskit_ibm_runtime.fake_provider.FakeHanoi": "/", + "qiskit_ibm_runtime.fake_provider.FakeJakarta": "/", + "qiskit_ibm_runtime.fake_provider.FakeJohannesburg": "/", + "qiskit_ibm_runtime.fake_provider.FakeKolkata": "/", + "qiskit_ibm_runtime.fake_provider.FakeLagos": "/", + "qiskit_ibm_runtime.fake_provider.FakeLima": "/", + "qiskit_ibm_runtime.fake_provider.FakeLondon": "/", + "qiskit_ibm_runtime.fake_provider.FakeManhattan": "/", + "qiskit_ibm_runtime.fake_provider.FakeManila": "/", + "qiskit_ibm_runtime.fake_provider.FakeMelbourne": "/", + "qiskit_ibm_runtime.fake_provider.FakeMontreal": "/", + "qiskit_ibm_runtime.fake_provider.FakeMumbai": "/", + "qiskit_ibm_runtime.fake_provider.FakeNairobi": "/", + "qiskit_ibm_runtime.fake_provider.FakeOurense": "/", + "qiskit_ibm_runtime.fake_provider.FakeParis": "/", + "qiskit_ibm_runtime.fake_provider.FakePoughkeepsie": "/", + "qiskit_ibm_runtime.fake_provider.FakeProvider": "/", + "qiskit_ibm_runtime.fake_provider.FakeQuito": "/", + "qiskit_ibm_runtime.fake_provider.FakeRochester": "/", + "qiskit_ibm_runtime.fake_provider.FakeRome": "/", + "qiskit_ibm_runtime.fake_provider.FakeRueschlikon": "/", + "qiskit_ibm_runtime.fake_provider.FakeSantiago": "/", + "qiskit_ibm_runtime.fake_provider.FakeSingapore": "/", + "qiskit_ibm_runtime.fake_provider.FakeSydney": "/", + "qiskit_ibm_runtime.fake_provider.FakeTenerife": "/", + "qiskit_ibm_runtime.fake_provider.FakeTokyo": "/", + "qiskit_ibm_runtime.fake_provider.FakeToronto": "/", + "qiskit_ibm_runtime.fake_provider.FakeValencia": "/", + "qiskit_ibm_runtime.fake_provider.FakeVigo": "/", + "qiskit_ibm_runtime.fake_provider.FakeWashington": "/", + "qiskit_ibm_runtime.fake_provider.FakeYorktown": "/" + }, + "0.30": { + "qiskit_ibm_runtime.fake_provider.FakeAlmaden": "/", + "qiskit_ibm_runtime.fake_provider.FakeArmonk": "/", + "qiskit_ibm_runtime.fake_provider.FakeAthens": "/", + "qiskit_ibm_runtime.fake_provider.FakeBelem": "/", + "qiskit_ibm_runtime.fake_provider.FakeBoeblingen": "/", + "qiskit_ibm_runtime.fake_provider.FakeBogota": "/", + "qiskit_ibm_runtime.fake_provider.FakeBrooklyn": "/", + "qiskit_ibm_runtime.fake_provider.FakeBurlington": "/", + "qiskit_ibm_runtime.fake_provider.FakeCairo": "/", + "qiskit_ibm_runtime.fake_provider.FakeCambridge": "/", + "qiskit_ibm_runtime.fake_provider.FakeCasablanca": "/", + "qiskit_ibm_runtime.fake_provider.FakeEssex": "/", + "qiskit_ibm_runtime.fake_provider.FakeGuadalupe": "/", + "qiskit_ibm_runtime.fake_provider.FakeHanoi": "/", + "qiskit_ibm_runtime.fake_provider.FakeJakarta": "/", + "qiskit_ibm_runtime.fake_provider.FakeJohannesburg": "/", + "qiskit_ibm_runtime.fake_provider.FakeKolkata": "/", + "qiskit_ibm_runtime.fake_provider.FakeLagos": "/", + "qiskit_ibm_runtime.fake_provider.FakeLima": "/", + "qiskit_ibm_runtime.fake_provider.FakeLondon": "/", + "qiskit_ibm_runtime.fake_provider.FakeManhattan": "/", + "qiskit_ibm_runtime.fake_provider.FakeManila": "/", + "qiskit_ibm_runtime.fake_provider.FakeMelbourne": "/", + "qiskit_ibm_runtime.fake_provider.FakeMontreal": "/", + "qiskit_ibm_runtime.fake_provider.FakeMumbai": "/", + "qiskit_ibm_runtime.fake_provider.FakeNairobi": "/", + "qiskit_ibm_runtime.fake_provider.FakeOurense": "/", + "qiskit_ibm_runtime.fake_provider.FakeParis": "/", + "qiskit_ibm_runtime.fake_provider.FakePoughkeepsie": "/", + "qiskit_ibm_runtime.fake_provider.FakeProvider": "/", + "qiskit_ibm_runtime.fake_provider.FakeQuito": "/", + "qiskit_ibm_runtime.fake_provider.FakeRochester": "/", + "qiskit_ibm_runtime.fake_provider.FakeRome": "/", + "qiskit_ibm_runtime.fake_provider.FakeRueschlikon": "/", + "qiskit_ibm_runtime.fake_provider.FakeSantiago": "/", + "qiskit_ibm_runtime.fake_provider.FakeSingapore": "/", + "qiskit_ibm_runtime.fake_provider.FakeSydney": "/", + "qiskit_ibm_runtime.fake_provider.FakeTenerife": "/", + "qiskit_ibm_runtime.fake_provider.FakeTokyo": "/", + "qiskit_ibm_runtime.fake_provider.FakeToronto": "/", + "qiskit_ibm_runtime.fake_provider.FakeValencia": "/", + "qiskit_ibm_runtime.fake_provider.FakeVigo": "/", + "qiskit_ibm_runtime.fake_provider.FakeWashington": "/", + "qiskit_ibm_runtime.fake_provider.FakeYorktown": "/" + }, "dev": {} }, "qiskit-ibm-transpiler": { diff --git a/scripts/js/commands/api/convertApiDocsToHistorical.ts b/scripts/js/commands/api/convertApiDocsToHistorical.ts index c879ae45ca1..3026045cb52 100644 --- a/scripts/js/commands/api/convertApiDocsToHistorical.ts +++ b/scripts/js/commands/api/convertApiDocsToHistorical.ts @@ -52,7 +52,7 @@ zxMain(async () => { const pkg = await Pkg.fromArgs(args.package, "ignored", "ignored", "latest"); const version = await readApiFullVersion(`docs/api/${pkg.name}`); - const versionWithoutPatch = await readApiMinorVersion(version); + const versionWithoutPatch = await readApiMinorVersion(`docs/api/${pkg.name}`); const projectNewHistoricalFolder = `docs/api/${pkg.name}/${versionWithoutPatch}`; if (await pathExists(projectNewHistoricalFolder)) { From 763ec2e5bda3d6b06186f8f8b12e156ac6f6ac84 Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Wed, 16 Oct 2024 17:46:07 -0400 Subject: [PATCH 06/32] Fix broken anchor link from execution modes rewrite (#2144) This broke the Runtime release notes. --- docs/guides/execution-modes.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/guides/execution-modes.mdx b/docs/guides/execution-modes.mdx index 8bde46354b6..2f62a3f09eb 100644 --- a/docs/guides/execution-modes.mdx +++ b/docs/guides/execution-modes.mdx @@ -17,6 +17,8 @@ The `mode` option requires `qiskit-ibm-runtime` 0.24 or later. [**Session mode**](sessions): A dedicated window for running a multi-job workload. This allows users to experiment with variational algorithms in a more predictable way and even run multiple experiments simultaneously, taking advantage of parallelism in the stack. Use sessions for iterative workloads or experiments that require dedicated access. To run in session mode, specify `mode=session` when instantiating a primitive, or run the job in a session context manager. Learn more about sessions in the [Introduction to sessions,](/guides/sessions) and see [Run jobs in a session](run-jobs-session) for examples. + + ## Choose batch or sessions mode Generally, you can use batch mode unless you have workloads that don’t have all inputs ready at the outset. From 1c0954ee3ff4d1f9ee7b6c6ee114015b5bc1a3e2 Mon Sep 17 00:00:00 2001 From: Rowen Wu Date: Thu, 17 Oct 2024 08:12:14 -0700 Subject: [PATCH 07/32] Update Q-CTRL Qiskit Function guides (#2134) - Update schemas for both functions - Split out Sampler/Estimator docs, rerun problems, update outputs - Update some text and typos --------- Co-authored-by: abbycross Co-authored-by: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> --- docs/guides/q-ctrl-optimization-solver.ipynb | 67 ++- .../q-ctrl-performance-management.ipynb | 558 +++++++++++------- scripts/config/cspell/dictionaries/qiskit.txt | 1 + 3 files changed, 392 insertions(+), 234 deletions(-) diff --git a/docs/guides/q-ctrl-optimization-solver.ipynb b/docs/guides/q-ctrl-optimization-solver.ipynb index 8e06ccb0b30..40d6e0ccd8b 100644 --- a/docs/guides/q-ctrl-optimization-solver.ipynb +++ b/docs/guides/q-ctrl-optimization-solver.ipynb @@ -45,21 +45,37 @@ "source": [ "## Inputs and outputs\n", "### Inputs\n", - "| Name | Type | Description | Required | Example |\n", - "| --------- | ---------------- | -------------------------- | -------- | ---------- |\n", - "| problem | `str` | One of the representations listed under \"Accepted problem formats\". | Yes |`Poly(2.0*n[0]*n[1] + 2.0*n[0]*n[2] - 3.13520241298341*n[0] + 2.0*n[1]*n[2] - 3.14469748506794*n[1] - 3.18897660121566*n[2] + 6.0, n[0], n[1], n[2], domain='RR')` |\n", - "| problem_type | `str` | Name of the problem class. This is only used for graph problem definitions to determine the objective. Currently limited to “maxcut”. | No | `“maxcut”` |\n", - "| instance | `str` | The hub/group/project to use in that format. | Yes | `“hub1/group1/project1”` |\n", - "| run_options | `dict` | Input options, including the following: (Optional) `backend_name`: str. Defaults to least busy backend. | No | `{“backend_name”: “ibm_fez\"}` |\n", + "| Name | Type | Description | Required | Default | Example |\n", + "| --------- | ---------------- | -------------------------- | -------- | ---------- | ---------- |\n", + "| problem | `str` | One of the representations listed under \"Accepted problem formats\" | Yes | N/A |`Poly(2.0*n[0]*n[1] + 2.0*n[0]*n[2] - 3.13520241298341*n[0] + 2.0*n[1]*n[2] - 3.14469748506794*n[1] - 3.18897660121566*n[2] + 6.0, n[0], n[1], n[2], domain='RR')` |\n", + "| problem_type | `str` | Name of the problem class; only used for graph problem definitions, which are limited to \"maxcut\"; not required for arbitrary objective function problem definitions | No | `None`| `\"maxcut\"` |\n", + "| backend_name | `str` | Name of the backend to use | No | Least busy backend that your instance has access to | `\"hub1/group1/project1\"` |\n", + "| instance | `str` | The hub/group/project to use | No | A Premium access instance is randomly chosen if your account has access to multiple instances | `\"hub1/group1/project1\"` |\n", + "| options | `dict` | Input options, including the following: (Optional) `session_id`: `str`; default behavior creates a new Session | No | `None` | `{\"session_id\": \"cw2q70c79ws0008z6g4g\"}` |\n", "\n", "**Accepted problem formats:**\n", "- Polynomial expression representation of an objective function. Ideally created in Python with an existing SymPy Poly object and formatted into a string using [sympy.srepr](https://docs.sympy.org/latest/tutorials/intro-tutorial/printing.html#srepr).\n", "- Graph representation of a specific problem type. The graph should be created using the networkx library in Python. It should then converted to a string by using the networkx function `[nx.readwrite.json_graph.adjacency_data](http://nx.readwrite.json_graph.adjacency_data.)`.\n", "\n", + "**Supported backends:**\n", + "The following list of backends are currently supported. If your device is not listed, [reach out to Q-CTRL](https://form.typeform.com/to/iuujEAEI?typeform-source=q-ctrl.com) to add support.\n", + "- ibm_brisbane\n", + "- ibm_brussels\n", + "- ibm_cleveland\n", + "- ibm_fez\n", + "- ibm_kawasaki\n", + "- ibm_kyiv\n", + "- ibm_nazca\n", + "- ibm_quebec\n", + "- ibm_rensselaer\n", + "- ibm_sherbrooke\n", + "- ibm_strasbourg\n", + "- ibm_torino\n", + "\n", "### Outputs\n", "| Name | Type | Description | Example |\n", "| --------- | ---------------- | -------------------------- | -------- |\n", - "| result | `dict[str, Any]` | Solution and metadata listed under \"Result dictionary contents\" | `{‘solution_bitstring_cost’: 3.0, ‘final_bitstring_distribution’: {‘000001’: 100, ‘000011’: 2}, ‘iteration_count’: 3, ‘solution_bitstring’: ‘000001’, 'variables_to_bitstring_index_map': {n[1]': 5, 'n[2]': 4, 'n[3]': 3, 'n[4]': 2, 'n[5]': 1}, 'best_parameters': [0.19628831763697097, -1.047052334523102], 'warnings': []}` |\n", + "| result | `dict[str, Any]` | Solution and metadata listed under \"Result dictionary contents\" | `{'solution_bitstring_cost': 3.0, ‘final_bitstring_distribution’: {‘000001’: 100, ‘000011’: 2}, ‘iteration_count’: 3, 'solution_bitstring': ‘000001’, 'variables_to_bitstring_index_map': {n[1]': 5, 'n[2]': 4, 'n[3]': 3, 'n[4]': 2, 'n[5]': 1}, 'best_parameters': [0.19628831763697097, -1.047052334523102], 'warnings': []}` |\n", "\n", "\n", "**Result dictionary contents:**\n", @@ -124,7 +140,7 @@ "catalog = QiskitFunctionsCatalog(token=token)\n", "\n", "# Access Function\n", - "solver = catalog.load('q-ctrl/optimization-solver')" + "solver = catalog.load(\"q-ctrl/optimization-solver\")" ] }, { @@ -132,8 +148,8 @@ "id": "e8837f5f", "metadata": {}, "source": [ - "## Example: Unconstrained Optimization\n", - "Run the [maximum cut](https://en.wikipedia.org/wiki/Maximum_cut) (Max-Cut) problem. The following example demonstrates the Solver's capabilities on a 120-node, 3-regular unweighted graph Max-Cut problem, but you can also solve weighted graph problems." + "## Example: Unconstrained optimization\n", + "Run the [maximum cut](https://en.wikipedia.org/wiki/Maximum_cut) (Max-Cut) problem. The following example demonstrates the Solver's capabilities on a 156-node, 3-regular unweighted graph Max-Cut problem, but you can also solve weighted graph problems." ] }, { @@ -141,7 +157,7 @@ "id": "a699235b", "metadata": {}, "source": [ - "In addition to the `qiskit-serverless` package, you will also use the following packages to run this example: `NetworkX`, `PuLP`, and `NumPy`. You can install these packages by uncommenting the following cell if you are running this example in a notebook using the IPython kernel." + "In addition to `qiskit-ibm-catalog`, you will also use the following packages to run this example: `networkx` and `numpy`. You can install these packages by uncommenting the following cell if you are running this example in a notebook using the IPython kernel." ] }, { @@ -171,10 +187,9 @@ "outputs": [], "source": [ "import networkx as nx\n", - "import pulp\n", "import numpy as np\n", "\n", - "# Generate a random graph with 120 nodes\n", + "# Generate a random graph with 156 nodes\n", "maxcut_graph = nx.random_regular_graph(d=3, n=156, seed=8)" ] }, @@ -237,18 +252,18 @@ "source": [ "# Solve the problem\n", "maxcut_job = solver.run(\n", - " problem = problem_as_str,\n", - " problem_type = \"maxcut\",\n", - " instance = hub + \"/\" + group + \"/\" + project\n", + " problem=problem_as_str,\n", + " problem_type=\"maxcut\",\n", + " instance=hub + \"/\" + group + \"/\" + project,\n", ")" ] }, { "cell_type": "markdown", - "id": "03998691", + "id": "48069093", "metadata": {}, "source": [ - "You can use the familiar [Qiskit Serverless APIs](https://docs.quantum.ibm.com/guides/qiskit-serverless) to check your Qiskit Function workload's status:" + "Check your Qiskit Function workload's [status](/guides/functions#check-job-status) or return [results](/guides/functions#retrieve-results) as follows:" ] }, { @@ -267,7 +282,7 @@ "id": "74f48eab", "metadata": {}, "source": [ - "### 3. Get the result\n", + "### 3. Retrieve the result\n", "Retrieve the optimal cut value from the results dictionary.\n", "\n", "The mapping of the variables to the bitstring may have changed. The output dictionary contains a `variables_to_bitstring_index_map` sub-dictionary, which helps to verify the ordering." @@ -322,7 +337,7 @@ "id": "a9fbc0e9", "metadata": {}, "source": [ - "In addition to the `qiskit-ibm-catalog` and `qiskit` packages, you will also use the following packages to run this example: `NumPy`, `NetworkX`, `SymPy` and `PuLP`. You can install these packages by uncommenting the following cell if you are running this example in a notebook using the IPython kernel." + "In addition to the `qiskit-ibm-catalog` and `qiskit` packages, you will also use the following packages to run this example: `numpy`, `networkx`, and `sympy`. You can install these packages by uncommenting the following cell if you are running this example in a notebook using the IPython kernel." ] }, { @@ -365,7 +380,6 @@ "import numpy as np\n", "import networkx as nx\n", "from sympy import symbols, Poly\n", - "import pulp\n", "\n", "# To change the weights, change the seed to any integer.\n", "rng_seed = 18\n", @@ -381,11 +395,7 @@ " mvc_graph.add_node(i, weight=_rng.random())\n", "\n", "# Optionally, visualize the graph\n", - "nx.draw(\n", - " mvc_graph,\n", - " nx.kamada_kawai_layout(mvc_graph),\n", - " node_size=200,\n", - ")" + "nx.draw(mvc_graph, nx.kamada_kawai_layout(mvc_graph), node_size=200)" ] }, { @@ -460,8 +470,7 @@ "source": [ "# Solve the problem\n", "mvc_job = solver.run(\n", - " problem = sympy.srepr(cost_function),\n", - " instance = hub + \"/\" + group + \"/\" + project\n", + " problem=sympy.srepr(cost_function), instance=hub + \"/\" + group + \"/\" + project\n", ")" ] }, @@ -470,7 +479,7 @@ "id": "d154c226", "metadata": {}, "source": [ - "You can check your Qiskit Function workload's status as follows:" + "Check your Qiskit Function workload's [status](/guides/functions#check-job-status) or return [results](/guides/functions#retrieve-results) as follows:" ] }, { diff --git a/docs/guides/q-ctrl-performance-management.ipynb b/docs/guides/q-ctrl-performance-management.ipynb index 51d52b0f4a0..45ae7937d6c 100644 --- a/docs/guides/q-ctrl-performance-management.ipynb +++ b/docs/guides/q-ctrl-performance-management.ipynb @@ -13,13 +13,13 @@ "\n", "## Overview\n", "\n", - "Fire Opal Performance Management makes it simple for anyone to achieve meaningful results from quantum computers at scale without needing to be quantum hardware experts. When running circuits with Fire Opal Performance Management, the function automatically applies AI-driven error suppression techniques for successfully scaling to larger problems, using more gates and qubits on the device. At the same time, reaching the correct answer takes fewer shots and requires no overhead, meaning that you save on compute time and cost.\n", + "Fire Opal Performance Management makes it simple for anyone to achieve meaningful results from quantum computers at scale without needing to be quantum hardware experts. When running circuits with Fire Opal Performance Management, AI-driven error suppression techniques are automatically applied, enabling the scaling of larger problems with more gates and qubits. This approach reduces the number of shots required to reach the correct answer, with no added overhead — resulting in significant savings in both compute time and cost.\n", "\n", "Performance Management suppresses errors and increases the probability of getting the correct answer on noisy hardware. In other words, it increases the signal-to-noise ratio. The following image shows how increased accuracy enabled by Performance Management can reduce the need for additional shots in the case of a 10-qubit Quantum Fourier Transform algorithm. With only 30 shots, Q-CTRL reaches the 99% confidence threshold, whereas the default (`QiskitRuntime` Sampler, `optimization_level`=3 and `resilience_level`=1, `ibm_sherbrooke`) requires 170,000 shots. By getting the right answer faster, you save significant compute runtime.\n", "\n", "![Visualization of the improved runtime](/images/guides/qctrl-performance-management/achieve_more.svg)\n", "\n", - "The Performance Management function can be used in place of the standard [Qiskit Runtime primitives](./primitives). Behind the scenes, multiple error suppression techniques work together to prevent errors from happening at runtime. All Fire Opal pipeline methods are pre-configured and algorithm-agnostic, meaning you always get the best performance out of the box.\n", + "The Performance Management function can be used with any algorithm, and you can easily use it in place of the standard [Qiskit Runtime primitives](./primitives). Behind the scenes, multiple error suppression techniques work together to prevent errors from happening at runtime. All Fire Opal pipeline methods are pre-configured and algorithm-agnostic, meaning you always get the best performance out of the box.\n", "\n", "To get access to Performance Management, [contact Q-CTRL](https://form.typeform.com/to/JKHcaxlv?typeform-source=q-ctrl.com#product=Fire%20Opal)." ] @@ -29,88 +29,27 @@ "id": "5f761442", "metadata": {}, "source": [ - "## Function description\n", + "## Description\n", "\n", "Fire Opal Performance Management has two options for execution that are similar to the Qiskit Runtime primitives, so you can easily swap in the Q-CTRL Sampler and Estimator. The general workflow for using the Performance Management function is:\n", "1. Define your circuit (and operators in the case of the Estimator).\n", "2. Run the circuit.\n", "3. Retrieve the results.\n", "\n", - "To reduce hardware noise, Fire Opal employs a range of AI-driven error suppression techniques depicted in the following image. Error suppression works at both the gate and pulse levels to address various sources of noise and to prevent the likelihood of an error occurring. With Fire Opal, the entire pipeline is completely automated with zero need for configuration. By preventing errors, the need for expensive post-processing is eliminated.\n", + "To reduce hardware noise, Fire Opal employs a range of AI-driven error suppression techniques depicted in the following image. With Fire Opal, the entire pipeline is completely automated with zero need for configuration.\n", "\n", - "The following image depicts the error suppression methods automated by Fire Opal Performance Management.\n", - "\n", - "![Visualization of the error suppression pipeline](/images/guides/qctrl-performance-management/error_suppression.svg)" - ] - }, - { - "cell_type": "markdown", - "id": "b364970b", - "metadata": {}, - "source": [ - "## Inputs and outputs\n", - "The Sampler and Estimator inputs are meant to closely follow the implemented spec for [Qiskit Runtime V2 primitives](../migration-guides/v2-primitives). The Q-CTRL primitives accept inputs in the form of Primitive Unified Blocs (PUBs), which are tuples containing circuits and their relevant execution data. For more information on the PUB data structure, refer to the [IBM Quantum Documentation](./primitive-input-output). The main difference is that the Q-CTRL primitives accept PUBs containing basic types - for example, QASM strings, dictionaries, and so on.\n", - "\n", - "Fire Opal Performance Management accepts abstract circuits, in contrast to the native Qiskit Runtime primitives, which only accept circuits that are written in the target backend’s Instruction Set Architecture (ISA). For best results, do not transpile circuits before submitting via the Performance Management function. \n", - "\n", - "\n", - "### Sampler inputs\n", - "| Name | Type | Description | Required | Example |\n", - "|------------|-----------------------------------------------|-------------------------------------------------------------------------------------------------------------|----------|---------------------------------------------------------------------------------------------------------------------|\n", - "| pubs | `SamplerPubLike` or `list[SamplerPubLike]` | One or more tuples containing the inputs listed under `SamplerPubLike` components. | Yes | `(circuit, parameter_values)` |\n", - "| instance | str | The hub/group/project to use in that format. | Yes | `\"hub1/group1/project1\"` |\n", - "| run_options| dict | Input options which includes the following: (Optional) `backend_name`: str, `shots`: int. Defaults to least busy backend and 4000 shots. | No | `{\"backend_name\": backend_name, \"shots\": 2048}` |\n", - "\n", - "**`SamplerPubLike` components:**\n", - "- A single circuit in the OpenQASM 2.0 or 3.0 string format.\n", - "- (Optional) A collection of parameter values to bind the circuit against.\n", - "- (Optional) A dictionary of run options, such as the shot count.\n", - "\n", - "### Sampler outputs\n", - "| Name | Type | Description | Example |\n", - "|--------|----------------------------------------|-------------------------------------------------------------------------------------------|---------------------------------|\n", - "| result | `list[ArrayLike[dict[str, int]]]` | The resultant list of counts dictionaries corresponding to the list of input PUBs. | `[{'000001': 100, '000011': 2}]` |\n", - "\n", - "\n", - "### Estimator inputs\n", - "| Name | Type | Description | Required | Example |\n", - "|------------|-----------------------------------------------|-------------------------------------------------------------------------------------------------------------|----------|---------------------------------------------------------------------------------------------------------------------|\n", - "| pubs | `EstimatorPubLike` or `list[EstimatorPubLike]` | One or more tuples containing the inputs listed under `EstimatorPubLike` components. | Yes | `(circuit, observables, parameter_values)` |\n", - "| instance | str | The hub/group/project to use in that format. | Yes | `\"hub1/group1/project1\"` |\n", - "| run_options| dict | Input options which includes the following: (Optional) `backend_name`: str, `shots`: int. Defaults to least busy backend and 4000 shots. | No | `{\"backend_name\": backend_name, \"shots\": 2048}` |\n", - "\n", - "**`EstimatorPubLike` components:**\n", - "- A single circuit in the OpenQASM 2.0 or 3.0 string format.\n", - "- One or more observables that specify the expectation values to estimate, in any of the formats denoted in the list \"Accepted observables formats\".\n", - "- (Optional) A collection of parameter values to bind the circuit against.\n", - "- (Optional) A dictionary of run options, such as the shot count.\n", - "\n", - "**Accepted observables formats:**\n", - "- A Pauli string: `\"XY\"`\n", - "- A dictionary - Pauli strings with coefficients: `{\"XY\": 0.5, \"YZ\": 0.3}`\n", - "- A list of Pauli strings: `[\"XY\", \"YZ\", \"ZX\"]`\n", - "- A list of Pauli strings with coefficients: `[(\"XY\", 0.5), (\"YZ\", 0.3)]`\n", - "- A nested list of Pauli strings: `[[\"XY\", \"YZ\"], [\"ZX\", \"XX\"]]`\n", - "- A nested list of Pauli strings with coefficients: `[[(\"XY\", 0.1), (\"YZ\", 0.2)], [(\"ZX\", 0.3), (\"XX\", 0.4)]]`\n", + "Fire Opal's pipeline eliminates the need for additional overhead, such as increased quantum runtime or extra physical qubits. Note that classical processing time remains a factor (refer to the [Benchmarks](#benchmarks) section for estimates, where \"Total time\" reflects both classical and quantum processing). In contrast to error mitigation, which requires overhead in the form of sampling, Fire Opal's error suppression works at both the gate and pulse levels to address various sources of noise and to prevent the likelihood of an error occurring. By preventing errors, the need for expensive post-processing is eliminated.\n", "\n", - "### Estimator outputs\n", - "| Name | Type | Description | Example |\n", - "|--------|---------------------------------|--------------------------------------------------------------------------------------------------|---------------------|\n", - "| values | `valueslist[ArrayLike[float]]` | The resultant list of expectation values corresponding to the list of input PUBs. | `[0.43046065915270004]` |\n", + "The following image depicts the error suppression methods automated by Fire Opal Performance Management.\n", "\n", - "### Parameter formats\n", - "The Sampler and Estimator both accept parameters, which follow the same [array broadcasting rules](./primitive-input-output#broadcasting-rules) as the `QiskitRuntime` primitives. The following parameter formats are accepted:\n", + "![Visualization of the error suppression pipeline](/images/guides/qctrl-performance-management/error_suppression.svg)\n", "\n", - "| Format | Example |\n", - "|---------------------------------------------|---------------------------------------------------------------------------------------------------|\n", - "| 0-d array (single binding) | `{\"a\": 4, (\"b\", \"c\"): [5, 6]}` |\n", - "| Single array (last index for parameters) | `{\"a[0]\", \"a[1]\", \"a[2]\": [0.1, 0.2, 0.3]}` |\n", - "| Multiple arrays (last index for parameters, flexible dimensions) | `{\"c\": np.ones((10, 10, 2)).tolist(), \"b\": np.zeros((10, 10)).tolist()}` |" + "The function offers two primitives, Sampler and Estimator, and the inputs and outputs of both extend the implemented spec for [Qiskit Runtime V2 primitives](/guides/primitive-input-output)." ] }, { "cell_type": "markdown", - "id": "895db40f", + "id": "64534d1a", "metadata": {}, "source": [ "## Benchmarks\n", @@ -144,7 +83,7 @@ }, { "cell_type": "markdown", - "id": "73390a19", + "id": "870af0fe", "metadata": {}, "source": [ "## Get started\n", @@ -155,7 +94,7 @@ { "cell_type": "code", "execution_count": null, - "id": "95a715d2", + "id": "11af8fb4", "metadata": {}, "outputs": [], "source": [ @@ -176,325 +115,534 @@ }, { "cell_type": "markdown", - "id": "e8837f5f", + "id": "2947b5c3", + "metadata": {}, + "source": [ + "## Estimator primitive" + ] + }, + { + "cell_type": "markdown", + "id": "df2788d5", "metadata": {}, "source": [ - "## Example: Sampler\n", + "### Estimator example\n", "\n", - "Use the Sampler mode of Fire Opal Performance Management to run a Bernstein–Vazirani circuit. This algorithm, used to find a hidden string from the outputs of a black box function, is a common benchmarking algorithm because there is a single correct answer." + "Use Fire Opal Performance Management's Estimator primitive to determine the expectation value of a single circuit-observable pair." ] }, { "cell_type": "markdown", - "id": "39819cbd", + "id": "82932760", "metadata": {}, "source": [ - "### 1. Create the circuit\n", - "Define the correct answer to the algorithm, the hidden bitstring, and the Bernstein–Vazirani circuit. You can adjust the width of the circuit by simply changing the `circuit_width`." + "In addition to the `qiskit-ibm-catalog` and `qiskit` packages, you will also use the `numpy` package to run this example. You can install this package by uncommenting the following cell if you are running this example in a notebook using the IPython kernel." ] }, { "cell_type": "code", - "execution_count": 2, - "id": "278c5298", + "execution_count": null, + "id": "70bb93ef", "metadata": {}, "outputs": [], "source": [ - "import qiskit\n", - "\n", - "circuit_width = 35\n", - "hidden_bitstring = \"1\" * circuit_width\n", - "\n", - "# Create circuit, reserving one qubit for BV oracle\n", - "bv_circuit = qiskit.QuantumCircuit(circuit_width + 1, circuit_width)\n", - "bv_circuit.x(circuit_width)\n", - "bv_circuit.h(range(circuit_width + 1))\n", - "for input_qubit, bit in enumerate(reversed(hidden_bitstring)):\n", - " if bit == \"1\":\n", - " bv_circuit.cx(input_qubit, circuit_width)\n", - "bv_circuit.barrier()\n", - "bv_circuit.h(range(circuit_width + 1))\n", - "bv_circuit.barrier()\n", - "for input_qubit in range(circuit_width):\n", - " bv_circuit.measure(input_qubit, input_qubit)\n", - "\n", - "# Create PUB tuple\n", - "pubs = [(bv_circuit,)]" + "# %pip install numpy" ] }, { "cell_type": "markdown", - "id": "86d47228", + "id": "02b2a79a", "metadata": {}, "source": [ - "### 2. Run the circuit\n", - "Run the circuit and optionally define the backend and number of shots." + "**1. Create the circuit**\n", + "\n", + "As an example, generate a random Hermitian operator and an observable to input to the Performance Management function." ] }, { "cell_type": "code", - "execution_count": null, - "id": "2ad187e0", + "execution_count": 28, + "id": "32037218", "metadata": {}, "outputs": [], "source": [ - "# Choose a backend or remove this option to default to the least busy device\n", - "backend_name = \"\"\n", + "import numpy as np\n", + "from qiskit.circuit.library import IQP\n", + "from qiskit.quantum_info import random_hermitian, SparsePauliOp\n", "\n", - "# Run the circuit using the sampler\n", - "qctrl_sampler_job = perf_mgmt.run(\n", - " runner_function =\"sampler\",\n", - " pubs = pubs,\n", - " instance = hub + \"/\" + group + \"/\" + project,\n", - " run_options = {\"backend_name\": backend_name},\n", - ")" + "n_qubits = 50\n", + "\n", + "# Generate a random circuit\n", + "mat = np.real(random_hermitian(n_qubits, seed=1234))\n", + "circuit = IQP(mat)\n", + "circuit.measure_all()\n", + "\n", + "# Define observables as a string\n", + "observable = SparsePauliOp(\"Z\" * n_qubits)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "476fae6a", + "metadata": {}, + "outputs": [], + "source": [ + "# Create PUB tuple\n", + "estimator_pubs = [(circuit, observable)]" ] }, { "cell_type": "markdown", - "id": "a6bfaf53", + "id": "09e64cd7", "metadata": {}, "source": [ - "You can use the familiar [Qiskit Serverless APIs](./serverless) to check your Qiskit Function workload's status:" + "**2. Run the circuit**\n", + "\n", + "Run the circuit and optionally define the backend and number of shots." ] }, { "cell_type": "code", - "execution_count": null, - "id": "e408b89e", + "execution_count": 30, + "id": "26952e1f", "metadata": {}, "outputs": [], "source": [ - "print(qctrl_sampler_job.status())" + "# Choose a backend or remove this option to default to the least busy device\n", + "backend_name = \"\"\n", + "\n", + "# Run the circuit using the sampler\n", + "qctrl_estimator_job = perf_mgmt.run(\n", + " primitive=\"estimator\",\n", + " pubs=estimator_pubs,\n", + " instance=hub + \"/\" + group + \"/\" + project,\n", + " backend_name=backend_name,\n", + ")" ] }, { "cell_type": "markdown", - "id": "1a371424", + "id": "c07af9d0", "metadata": {}, "source": [ - "### 3. Retrieve the result" + "You can use the familiar [Qiskit Serverless APIs](./serverless) to check your Qiskit Function workload's status:" ] }, { "cell_type": "code", - "execution_count": null, - "id": "b4ac097c", + "execution_count": 41, + "id": "2b309861", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'DONE'" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Retrieve the counts from the result list\n", - "counts = qctrl_sampler_job.result()[0]" + "qctrl_estimator_job.status()" ] }, { "cell_type": "markdown", - "id": "8ba9fd35", + "id": "23556c8e", "metadata": {}, "source": [ - "In case you need to retrieve results later, you can run the following cell to save your job ID and use it to retrieve your job." + "**3. Retrieve the result**" ] }, { "cell_type": "code", - "execution_count": null, - "id": "bc4df554", + "execution_count": 42, + "id": "8be67088", "metadata": {}, "outputs": [], "source": [ - "qctrl_sampler_job_id = qctrl_sampler_job.job_id\n", - "print(qctrl_sampler_job_id)" + "# Retrieve the counts from the result list\n", + "result = qctrl_estimator_job.result()" ] }, { "cell_type": "markdown", - "id": "71a7e415", + "id": "7375fcad", "metadata": {}, "source": [ - "You can use the job ID to retrieve your job object, which can be used to get the status or results." + "The results have the same format as an [Estimator result](/guides/primitive-input-output#estimator-output):" ] }, { "cell_type": "code", - "execution_count": null, - "id": "6951d866", - "metadata": {}, - "outputs": [], - "source": [ - "qctrl_sampler_job = catalog.get_job_by_id(qctrl_sampler_job_id)" + "execution_count": 44, + "id": "ef85a036", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The result of the submitted job had 1 PUB and has a value:\n", + " PrimitiveResult([PubResult(data=DataBin(evs=np.ndarray(), stds=np.ndarray()), metadata={'precision': None})], metadata={})\n", + "\n", + "The associated PubResult of this job has the following DataBins:\n", + " DataBin(evs=np.ndarray(), stds=np.ndarray())\n", + "\n", + "And this DataBin has attributes: dict_keys(['evs', 'stds'])\n", + "The expectation values measured from this PUB are: \n", + "[-0.01464844]\n" + ] + } + ], + "source": [ + "print(\n", + " f\"The result of the submitted job had {len(result)} PUB and has a value:\\n {result}\\n\"\n", + ")\n", + "print(\n", + " f\"The associated PubResult of this job has the following DataBins:\\n {result[0].data}\\n\"\n", + ")\n", + "print(f\"And this DataBin has attributes: {result[0].data.keys()}\")\n", + "print(f\"The expectation values measured from this PUB are: \\n{result[0].data.evs}\")" ] }, { "cell_type": "markdown", - "id": "df2788d5", + "id": "20cb6ab1", "metadata": {}, "source": [ - "## Example: Estimator\n", + "### Estimator inputs\n", + "Fire Opal Performance Management accepts abstract circuits, in contrast to the native Qiskit Runtime primitives, which only accept circuits that are written in the target backend’s Instruction Set Architecture (ISA). For best results, do not transpile circuits before submitting via the Performance Management function. \n", "\n", - "Use the Sampler mode of Fire Opal Performance Management to run a Bernstein–Vazirani circuit. This algorithm, used to find a hidden string from the outputs of a black box function, is a common benchmarking algorithm because there is a single correct answer." + "| Name | Type | Description | Required | Default | Example |\n", + "|------|------|----------|----------|-----------|-----------|\n", + "| pubs | `QctrlEstimatorPubLike` or `list[QctrlEstimatorPubLike]` | One or more tuples containing the inputs listed under `EstimatorPubLike` components | Yes | N/A | `(circuit, observables, parameter_values)` |\n", + "| instance | `str` | The hub/group/project to use in that format | No | A Premium access instance is randomly chosen if your account has access to multiple instances | `\"hub1/group1/project1\"` |\n", + "| backend_name| `str` | The name of the backend | No | The least busy backend that your instance has access to | `\"ibm_fez\"` |\n", + "| options| `dict` | Input options; see Options section for more details | No | See the Options section for details | `{\"default_shots\": 2048}` |\n", + "\n", + "**`QctrlEstimatorPubLike` components (derived from the [Qiskit Runtime PUB definition](/guides/primitive-input-output#estimator-pub)):**\n", + "- A single circuit defined as a `QuantumCircuit` or in OpenQASM 2.0 or 3.0 string format.\n", + "- One or more observables that specify the expectation values to estimate, in any of the formats denoted in the list \"Supported observables formats\".\n", + "- (Optional) A collection of parameter values to bind the circuit against, which follow the same [array broadcasting rules](./primitive-input-output#broadcasting-rules) as the `QiskitRuntime` primitives.\n", + "- (Optional) A target precision for expectation values to estimate.\n", + "- (Optional) A real number representing the precision, or a dictionary of run options containing the shot count. For example: `{\"shots\": }`.\n", + "\n", + "**Supported observables formats:**\n", + "- Any one of the `ObservablesArrayLike` formats, such as `Pauli`, `SparsePauliOp`, `PauliList`, or `str`\n", + "- A Pauli string: `\"XY\"`\n", + "- A dictionary - Pauli strings with coefficients: `{\"XY\": 0.5, \"YZ\": 0.3}`\n", + "- A list of Pauli strings: `[\"XY\", \"YZ\", \"ZX\"]`\n", + "- A list of Pauli strings with coefficients: `[(\"XY\", 0.5), (\"YZ\", 0.3)]`\n", + "- A nested list of Pauli strings: `[[\"XY\", \"YZ\"], [\"ZX\", \"XX\"]]`\n", + "- A nested list of Pauli strings with coefficients: `[[(\"XY\", 0.1), (\"YZ\", 0.2)], [(\"ZX\", 0.3), (\"XX\", 0.4)]]`\n", + "\n", + "**Supported backends:**\n", + "The following list of backends are currently supported. If your device is not listed, [reach out to Q-CTRL](https://form.typeform.com/to/iuujEAEI?typeform-source=q-ctrl.com) to add support.\n", + "- ibm_brisbane\n", + "- ibm_brussels\n", + "- ibm_cleveland\n", + "- ibm_fez\n", + "- ibm_kawasaki\n", + "- ibm_kyiv\n", + "- ibm_nazca\n", + "- ibm_quebec\n", + "- ibm_rensselaer\n", + "- ibm_sherbrooke\n", + "- ibm_strasbourg\n", + "- ibm_torino\n", + "\n", + "**Options:**\n", + "| Name | Type | Description | Default |\n", + "|--------|----------|-----------------------|---------------------|\n", + "| session_id | `str` | An existing Qiskit Runtime session ID | `\"cw4r3je6f0t010870y3g\"` |\n", + "| default_shots | `int` | The number of shots to use for each circuit | `2048` |\n", + "| default_precision | `float` | The target precision for expectation values to estimate for each circuit | `0.015625` |\n", + "\n", + "### Estimator outputs\n", + "| Name | Type | Description | Example |\n", + "|--------|---------------------------------|------------------------------------|---------------------|\n", + "| N/A | `PrimitiveResult` | The [`PrimitiveResult`](/api/qiskit/qiskit.primitives.PrimitiveResult) corresponding to the list of input PUBs | `PubResult(data=DataBin(evs=[0.1234], stds=[0.1]))` |" ] }, { "cell_type": "markdown", - "id": "82932760", + "id": "a78ce8bd", "metadata": {}, "source": [ - "In addition to the `qiskit-ibm-catalog` and `qiskit` package, you will also use the `NumPy` package to run this example. You can install this package by uncommenting the following cell if you are running this example in a notebook using the IPython kernel." + "## Sampler primitive" ] }, { - "cell_type": "code", - "execution_count": null, - "id": "70bb93ef", + "cell_type": "markdown", + "id": "b1300f06", "metadata": {}, - "outputs": [], "source": [ - "# %pip install numpy" + "### Sampler example\n", + "\n", + "Use Fire Opal Performance Management's Sampler primitive to run a Bernstein–Vazirani circuit. This algorithm, used to find a hidden string from the outputs of a black box function, is a common benchmarking algorithm because there is a single correct answer." ] }, { "cell_type": "markdown", - "id": "02b2a79a", + "id": "144e48f3", "metadata": {}, "source": [ - "### 1. Create the circuit\n", - "As an example, generate a random Hermitian operator and an observable to input to the Performance Management function." + "**1. Create the circuit**\n", + "\n", + "Define the correct answer to the algorithm, the hidden bitstring, and the Bernstein–Vazirani circuit. You can adjust the width of the circuit by simply changing the `circuit_width`." ] }, { "cell_type": "code", - "execution_count": 4, - "id": "32037218", + "execution_count": null, + "id": "2cd807b1", "metadata": {}, "outputs": [], "source": [ - "import numpy as np\n", - "from qiskit.circuit.library import IQP\n", - "from qiskit.quantum_info import random_hermitian\n", + "import qiskit\n", "\n", - "n_qubits = 50\n", + "circuit_width = 35\n", + "hidden_bitstring = \"1\" * circuit_width\n", "\n", - "# Generate a random circuit\n", - "mat = np.real(random_hermitian(n_qubits, seed=1234))\n", - "circuit = IQP(mat)\n", - "circuit.measure_all()\n", + "# Create circuit, reserving one qubit for BV oracle\n", + "bv_circuit = qiskit.QuantumCircuit(circuit_width + 1, circuit_width)\n", + "bv_circuit.x(circuit_width)\n", + "bv_circuit.h(range(circuit_width + 1))\n", + "for input_qubit, bit in enumerate(reversed(hidden_bitstring)):\n", + " if bit == \"1\":\n", + " bv_circuit.cx(input_qubit, circuit_width)\n", + "bv_circuit.barrier()\n", + "bv_circuit.h(range(circuit_width + 1))\n", + "bv_circuit.barrier()\n", + "for input_qubit in range(circuit_width):\n", + " bv_circuit.measure(input_qubit, input_qubit)\n", "\n", - "# Define observables as a string\n", - "observable = \"Z\" * n_qubits" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "476fae6a", - "metadata": {}, - "outputs": [], - "source": [ "# Create PUB tuple\n", - "pubs = [(circuit, observable)]" + "sampler_pubs = [(bv_circuit,)]" ] }, { "cell_type": "markdown", - "id": "09e64cd7", + "id": "85d3c00b", "metadata": {}, "source": [ - "### 2. Run the circuit\n", + "**2. Run the circuit**\n", + "\n", "Run the circuit and optionally define the backend and number of shots." ] }, { "cell_type": "code", - "execution_count": 8, - "id": "720c6919", + "execution_count": null, + "id": "2595df84", "metadata": {}, "outputs": [], "source": [ "# Choose a backend or remove this option to default to the least busy device\n", "backend_name = \"\"\n", "\n", - "qctrl_estimator_job = perf_mgmt.run(\n", - " runner_function = \"estimator\",\n", - " pubs = pubs,\n", - " instance = hub + \"/\" + group + \"/\" + project,\n", - " run_options = {\"backend_name\": backend_name},\n", + "# Run the circuit using the sampler\n", + "qctrl_sampler_job = perf_mgmt.run(\n", + " primitive=\"sampler\",\n", + " pubs=sampler_pubs,\n", + " instance=hub + \"/\" + group + \"/\" + project,\n", + " backend_name=backend_name,\n", ")" ] }, { "cell_type": "markdown", - "id": "c07af9d0", + "id": "3c49fbba", "metadata": {}, "source": [ - "You can use the familiar [Qiskit Serverless APIs](./serverless) to check your Qiskit Function workload's status:" + "Check your Qiskit Function workload's [status](/guides/functions#check-job-status) or return [results](/guides/functions#retrieve-results) as follows:" ] }, { "cell_type": "code", "execution_count": null, - "id": "7e2fab85", + "id": "b7acbb7f", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "DONE\n" + ] + } + ], "source": [ - "print(qctrl_estimator_job.status())" + "qctrl_sampler_job.status()" ] }, { "cell_type": "markdown", - "id": "23556c8e", + "id": "35921605", "metadata": {}, "source": [ - "### 3. Retrieve the result" + "**3. Retrieve the result**" ] }, { "cell_type": "code", "execution_count": null, - "id": "8be67088", + "id": "2d4f5f7d", "metadata": {}, "outputs": [], "source": [ - "# Retrieve the counts from the result list\n", - "expectation_value = qctrl_estimator_job.result()[0]\n", + "# Retrieve the job results\n", + "sampler_result = qctrl_sampler_job.result()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "302032d7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Counts for the meas output register: {'00000000000000000000000000000000001': 3, '00000001111111111111111111111111111': 6, '00111111111111111111111111111111111': 2, '01110111111111111111111111111111111': 1, '01111111111111111111111101111111111': 39, '01111111111111111111111111111110111': 1, '01111111111111111111111111111111111': 73, '10111111111111111111111111111111111': 18, '11101111101111111111111111111110111': 2, '11110111111111111111111111111111111': 37, '11111101011111111111111111111111111': 16, '11111101111111111111111111111111111': 15, '11111111011111111111101111111111111': 6, '11111111011111111111111111011111111': 19, '11111111110111111111111101111111111': 2, '11111111110111111111111111111111111': 24, '11111111111110111111111111111111111': 42, '11111111111111011111111111111111111': 10, '11111111111111110111111111111111111': 15, '11111111111111111011111111111111111': 12, '11111111111111111101111111111101111': 13, '11111111111111111101111111111110111': 7, '11111111111111111101111111111111111': 8, '11111111111111111110111111111111111': 28, '11111111111111111111011111111111111': 36, '11111111111111111111101101110111111': 2, '11111111111111111111110101111111111': 17, '11111111111111111111110111111111111': 39, '11111111111111111111111011111110111': 19, '11111111111111111111111011111111111': 1, '11111111111111111111111100111111111': 6, '11111111111111111111111101011111111': 1, '11111111111111111111111101101111111': 11, '11111111111111111111111101111011111': 5, '11111111111111111111111101111110111': 47, '11111111111111111111111101111111011': 26, '11111111111111111111111101111111111': 244, '11111111111111111111111110111111111': 15, '11111111111111111111111111011111111': 42, '11111111111111111111111111101111111': 2, '11111111111111111111111111110111111': 23, '11111111111111111111111111111011111': 37, '11111111111111111111111111111101111': 22, '11111111111111111111111111111110111': 188, '11111111111111111111111111111111011': 2, '11111111111111111111111111111111101': 24, '11111111111111111111111111111111110': 34, '11111111111111111111111111111111111': 806}\n" + ] + } + ], + "source": [ + "# Get results for the first (and only) PUB\n", + "pub_result = sampler_result[0]\n", + "counts = pub_result.data.c.get_counts()\n", "\n", - "print(f\"Expectation value: {expectation_value}\")" + "print(f\"Counts for the meas output register: {counts}\")" ] }, { "cell_type": "markdown", - "id": "4a56975a", + "id": "d920922e", "metadata": {}, "source": [ - "In case you need to retrieve results later, you can run the following cell to save your job ID." + "**3. Plot the top bitstrings**\n", + "\n", + "Plot the bitstring with the highest counts to see if the hidden bitstring was the mode." ] }, { "cell_type": "code", "execution_count": null, - "id": "0a5baa05", + "id": "cefa2234", "metadata": {}, "outputs": [], "source": [ - "qctrl_estimator_job_id = qctrl_estimator_job.job_id\n", - "print(qctrl_estimator_job_id)" + "import matplotlib.pyplot as plt\n", + "\n", + "def plot_top_bitstrings(counts_dict, hidden_bitstring=None):\n", + " # Sort and take the top 100 bitstrings\n", + " top_100 = sorted(counts_dict.items(), key=lambda x: x[1], reverse=True)[:100]\n", + " if not top_100:\n", + " print(\"No bitstrings found in the input dictionary.\")\n", + " return\n", + "\n", + " # Unzip the bitstrings and their counts\n", + " bitstrings, counts = zip(*top_100)\n", + "\n", + " # Assign colors: purple if the bitstring matches hidden_bitstring, otherwise gray\n", + " colors = ['#680CE9' if bit == hidden_bitstring else 'gray' for bit in bitstrings]\n", + "\n", + " # Create the bar plot\n", + " plt.figure(figsize=(15, 8))\n", + " plt.bar(range(len(bitstrings)), counts, tick_label=bitstrings, color=colors)\n", + "\n", + " # Rotate the bitstrings for better readability\n", + " plt.xticks(rotation=90, fontsize=8)\n", + " plt.xlabel('Bitstrings')\n", + " plt.ylabel('Counts')\n", + " plt.title('Top 100 Bitstrings by Counts')\n", + "\n", + " # Show the plot\n", + " plt.tight_layout()\n", + " plt.show()" ] }, { "cell_type": "markdown", - "id": "438469d9", + "id": "1d9d3b69", "metadata": {}, "source": [ - "You can use the job ID to retrieve your job object, which can be used to get the status or results." + "The hidden bitstring is highlighted in purple, and it should be the bitstring with the highest number of counts." ] }, { "cell_type": "code", "execution_count": null, - "id": "0324580e", + "id": "0f463b7e", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABdEAAAMWCAYAAAAeaM88AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACrP0lEQVR4nOzdfZxWdZ0//jcDirczOMqNs8wIhDADamxWOkAlRLJGkRu0a19KmCzRhSgtI5e8zXLX2pTaFGtbBmz81ld2u7PNMjDzCyTebGVS09RYQ6MgYTDqrqAz5/fH/ry+jczhZri4rrnOPJ+PxzxqzufM9fp8zvnM8VxvrvmcAUmSJAEAAAAAAOylrNgdAAAAAACAvkoRHQAAAAAAUiiiAwAAAABACkV0AAAAAABIoYgOAAAAAAApFNEBAAAAACCFIjoAAAAAAKRQRAcAAAAAgBSK6AAAAAAAkEIRHQAACmzUqFGxYMGCovZhwYIFMWrUqKL2Ic3vfve7GDBgQHz2s58tdlcAAEARHQCAAzNgwIAD+vrRj3502Pty2223xbve9a6oqamJAQMG7LMgvXPnzrj44otj6NChceyxx8a0adPi0Ucf7XHfb3/72/Ga17wmjjrqqKipqYlrrrkmXnrppf3250c/+tFex6GysjLOPvvsaGpq2u/Pb968Oa699tr43e9+t999X+m//uu/4tprry3Icc+q3/72t7Fw4cIYM2ZMHHXUUVFeXh5TpkyJ5cuXx3//938Xu3sREXHrrbdGY2NjsbsBANAvDSp2BwAAKA133HFHt+9Xr14d9957717b6+rqDntf/vEf/zGeffbZeP3rXx9PPfVU6n5dXV0xa9as+NnPfhZXXHFFnHTSSXHrrbfGOeecE4888kiceuqpuX2/973vxfnnnx/nnHNOfOELX4jHHnssbrjhhnj66afjtttuO6B+LVmyJF73utdFRMSOHTvi61//erznPe+JnTt3xqJFi3L7NTc3R1nZ//s8y+bNm+O6666Lc84556A/Hf5f//Vfcd1110VExDnnnHPAP/flL385urq6Diori7773e/Gu971rhg8eHBceOGFcdppp8WePXvi//7f/xtXXHFFPP744/GlL32p2N2MW2+9NU466aSi/wUDAEB/pIgOAMABec973tPt+5/85Cdx77337rW9EO6///7cp9CPO+641P3WrFkTGzZsiLvuuivmzp0bERF/8zd/E+PGjYtrrrkm7rzzzty+H/3oR+OMM86IH/zgBzFo0P/cJpeXl8enP/3p+NCHPhS1tbX77dcb3vCGXE5ExKWXXhpjxoyJO++8s1sRffDgwQc95nx5/vnn49hjj40jjjiiaH3oK5544om44IIL4pRTTol169bFySefnGtbtGhR/OY3v4nvfve7RewhAAB9geVcAADIm+effz4+8pGPRHV1dQwePDjGjx8fn/3sZyNJkm77DRgwIBYvXhxNTU0xfvz4OOqoo+LMM8+MH//4xweUc8opp8SAAQP2u9+aNWti+PDh8c53vjO3bejQofE3f/M38a1vfSt2794dEf/zSfDNmzfHxRdfnCugR0T83d/9XSRJEmvWrDmgfr3SkUceGSeccEK314zoviZ6Y2NjvOtd74qIiGnTpu21LM7DDz8cM2fOjJNOOimOPvroGD16dLzvfe+LiP9ZO3zo0KEREXHdddflfvbaa6+NiP9Z9/y4446L3/72t/HWt741jj/++Jg3b16u7c8/9f7n65B/6Utfile96lUxePDgeN3rXhcPPfTQXmO76667YsKECXHUUUfFaaedFt/4xjd6XGf9a1/7Wpx55plx/PHHR3l5eZx++umxfPnyAz6GN998c5xyyilx9NFHx5ve9Kb4xS9+kWtbuXJlDBgwIP7zP/9zr5/79Kc/HQMHDoz29vbU177pppviueeei6985SvdCugvGzt2bHzoQx/Kff/SSy/FJz/5ydyxGTVqVPz93/99bh697M/PwZ975Vr4jY2NMWDAgFi/fn1cfvnluSWH/vqv/zq2b9/e7ecef/zxuP/++3Pn+OW/OnjxxRfjuuuui1NPPTWOOuqoOPHEE2Pq1Klx7733po4bAICD45PoAADkRZIkMXv27LjvvvvioosuikmTJsX3v//9uOKKK6K9vT1uvvnmbvvff//98fWvfz2WLFkSgwcPjltvvTX+6q/+KjZt2hSnnXZaXvr0n//5n/Ga17ym29IpERGvf/3r40tf+lL8+te/jtNPPz1XhH3ta1/bbb+qqqoYOXJkj0Xanjz77LPxxz/+MSIinnnmmbjzzjvjF7/4RXzlK19J/Zk3vvGNsWTJkvj85z8ff//3f59bDqeuri6efvrpOPfcc2Po0KHx8Y9/PIYMGRK/+93v4t///d8j4n/+QeC2226LSy+9NP76r/86948FZ5xxRu71X3rppZg5c2ZMnTo1PvvZz8YxxxyzzzHceeed8eyzz8bChQtjwIABcdNNN8U73/nOaG1tzX16/bvf/W787d/+bZx++ulx4403xp/+9Ke46KKL4i/+4i+6vda9994b7373u+PNb35z/OM//mNERPzyl7+M9evXdytOp1m9enU8++yzsWjRonjhhRdi+fLlMX369Hjsscdi+PDhMXfu3Fi0aFE0NTXFX/7lX3b72aampjjnnHP26tOf+853vhNjxoyJyZMn77cvERHvf//7Y9WqVTF37tz4yEc+Eg8++GDceOON8ctf/jK+8Y1vHNBr9OSDH/xgnHDCCXHNNdfE7373u7jlllti8eLF8fWvfz0iIm655Zb44Ac/GMcdd1wsW7YsIiKGDx8eERHXXntt3HjjjfH+978/Xv/610dHR0c8/PDD8eijj8Zb3vKWXvcJAIA/kwAAQC8sWrQo+fPbyW9+85tJRCQ33HBDt/3mzp2bDBgwIPnNb36T2xYRSUQkDz/8cG7b73//++Soo45K/vqv//qg+nHssccm8+fPT2173/vet9f27373u0lEJPfcc0+SJEnymc98JomIpK2tba99X/e61yVnn332Pvtw33335cb0519lZWXJpz71qb32P+WUU7r1+a677koiIrnvvvu67feNb3wjiYjkoYceSs3evn17EhHJNddcs1fb/Pnzk4hIPv7xj/fYdsopp+S+f+KJJ5KISE488cTkmWeeyW3/1re+lURE8p3vfCe37fTTT09GjhyZPPvss7ltP/rRj5KI6PaaH/rQh5Ly8vLkpZdeSu1/T17uy9FHH5384Q9/yG1/8MEHk4hILrvssty2d7/73UlVVVXS2dmZ2/boo48mEZGsXLkyNWPXrl1JRCTveMc7DqhPP/3pT5OISN7//vd32/7Rj340iYhk3bp1uW1p5+OV533lypVJRCQzZsxIurq6ctsvu+yyZODAgcnOnTtz2yZOnJi86U1v2us1X/3qVyezZs06oDEAANA7lnMBACAv/uM//iMGDhwYS5Ys6bb9Ix/5SCRJEt/73ve6ba+vr48zzzwz931NTU284x3viO9///vR2dmZlz7993//d4/rjx911FG59j//37R9X27fn6uvvjruvffeuPfee+PrX/96vPvd745ly5Yd1PIlf27IkCEREXH33XfHiy++2KvXiPiftdkP1N/+7d/GCSeckPv+DW94Q0REtLa2RkTEk08+GY899lhceOGF3dajf9Ob3hSnn356t9caMmRIPP/8871eWuT888/v9kny17/+9XHWWWfFf/zHf+S2XXjhhfHkk0/Gfffdl9vW1NQURx99dMyZMyf1tTs6OiIi4vjjjz+gvrycefnll3fb/pGPfCQi4pDWTr/44ou7LU/0hje8ITo7O+P3v//9fn92yJAh8fjjj0dLS0uv8wEA2DdFdAAA8uL3v/99VFVV7VWUfHl5klcWBE899dS9XmPcuHHxX//1X93Wgz4URx999F7rVUdEvPDCC7n2P//ftH1fbt+f008/PWbMmBEzZsyIv/mbv4mvfvWr8ba3vS0+/vGP92pMb3rTm2LOnDlx3XXXxUknnRTveMc7YuXKlT32M82gQYNi5MiRB7x/TU1Nt+9fLqj/6U9/ioj/dx7Hjh2718++ctvf/d3fxbhx4+K8886LkSNHxvve97645557DrgvaXPkd7/7Xe77t7zlLXHyySdHU1NTRER0dXXF//7f/zve8Y537LNAXl5eHhH/swTPgfj9738fZWVle41xxIgRMWTIkAMqeKfZ3zHfl+uvvz527twZ48aNi9NPPz2uuOKK+PnPf97rvgAAsDdFdAAAMuvkk0+Op556aq/tL2+rqqrK7ffn21+578v79cab3/zmeOGFF2LTpk0H/bMDBgyINWvWxMaNG2Px4sXR3t4e73vf++LMM8+M55577oBeY/DgwXutCb8vAwcO7HF78oqHwx6IYcOGxU9/+tP49re/nVsv/7zzzov58+cf9GulGThwYPyv//W/4t/+7d/ihRdeiPvuuy+efPLJeM973rPPnysvL4+qqqpuDyo9EAfyQNs0aX9hcSjH/I1vfGP89re/jX/913+N0047Lf7lX/4lXvOa18S//Mu/9LqfAAB0p4gOAEBenHLKKfHkk0/u9cneX/3qV7n2P9fT8hO//vWv45hjjomhQ4fmpU+TJk2KRx99NLq6urptf/DBB+OYY46JcePG5faLiHj44Ye77ffkk0/GH/7wh1x7b7z00ksREfsseu+vMHv22WfHpz71qXj44YejqakpHn/88fja1752QD+bby+fx9/85jd7tfW07cgjj4y3v/3tceutt8Zvf/vbWLhwYaxevbrHfV8pbY6MGjWq27YLL7wwOjo64jvf+U40NTXF0KFDY+bMmft9/be97W3x29/+NjZu3LjffU855ZTo6uraq0/btm2LnTt3dpvfJ5xwQuzcubPbfnv27OnxH2kO1L7Oc2VlZTQ0NMT//t//O7Zs2RJnnHFGXHvttb3OAgCgO0V0AADy4q1vfWt0dnbGP//zP3fbfvPNN8eAAQPivPPO67Z948aN8eijj+a+37JlS3zrW9+Kc889N/WTuQdr7ty5sW3btvj3f//33LY//vGPcdddd8Xb3/723BroEydOjNra2vjSl77U7dPCt912WwwYMCDmzp3b6z7cfffdERHx6le/OnWfY489NiJir8Lrn/70p70+jfxyQf/lJV2OOeaYHn/2cKmqqorTTjstVq9e3e0fBu6///547LHHuu27Y8eObt+XlZXFGWecERE9L53zSt/85jejvb099/2mTZviwQcf3GsunXHGGXHGGWfEv/zLv8S//du/xQUXXBCDBg3a7+t/7GMfi2OPPTbe//73x7Zt2/Zq/+1vf5tbz/6tb31rRETccsst3fb53Oc+FxERs2bNym171ateFT/+8Y+77ffKuXWwjj322B7P8SuP8XHHHRdjx449qCV/AADYt/3fWQIAwAF4+9vfHtOmTYtly5bF7373u3j1q18dP/jBD+Jb3/pWfPjDH45XvepV3fY/7bTTYubMmbFkyZIYPHhw3HrrrRERcd111+036zvf+U787Gc/i4iIF198MX7+85/HDTfcEBERs2fPzhVq586dG2effXY0NDTE5s2b46STTopbb701Ojs798r5zGc+E7Nnz45zzz03LrjggvjFL34R//zP/xzvf//7c+u6788DDzyQW2/9mWeeiW9/+9tx//33xwUXXBC1tbWpPzdp0qQYOHBg/OM//mPs2rUrBg8eHNOnT48777wzbr311vjrv/7reNWrXhXPPvtsfPnLX47y8vJcUffoo4+OCRMmxNe//vUYN25cVFZWxmmnnRannXbaAfW5Nz796U/HO97xjpgyZUo0NDTEn/70p/jnf/7nOO2007oV1t///vfHM888E9OnT4+RI0fG73//+/jCF74QkyZNOqBjOnbs2Jg6dWpceumlsXv37rjlllvixBNPjI997GN77XvhhRfGRz/60YiI/S7l8rJXvepVceedd8bf/u3fRl1dXVx44YVx2mmnxZ49e2LDhg1x1113xYIFCyLif/4RZP78+fGlL30pdu7cGW9605ti06ZNsWrVqjj//PNj2rRp3cZ9ySWXxJw5c+Itb3lL/OxnP4vvf//7cdJJJx1Qv3py5plnxm233RY33HBDjB07NoYNGxbTp0+PCRMmxDnnnBNnnnlmVFZWxsMPPxxr1qyJxYsX9zoLAIBXSAAAoBcWLVqUvPJ28tlnn00uu+yypKqqKjniiCOSU089NfnMZz6TdHV1ddsvIpJFixYlX/3qV5NTTz01GTx4cPKXf/mXyX333XdA2fPnz08iosevlStXdtv3mWeeSS666KLkxBNPTI455pjkTW96U/LQQw/1+Lrf+MY3kkmTJiWDBw9ORo4cmXziE59I9uzZs9/+3HfffXv148gjj0xqa2uTT33qU3u9ximnnJLMnz+/27Yvf/nLyZgxY5KBAwcmEZHcd999yaOPPpq8+93vTmpqapLBgwcnw4YNS972trclDz/8cLef3bBhQ3LmmWcmRx55ZBIRyTXXXJM7Tscee2zqMTzllFNy3z/xxBNJRCSf+cxn9tr3z1/zZV/72teS2traZPDgwclpp52WfPvb307mzJmT1NbW5vZZs2ZNcu655ybDhg1LjjzyyKSmpiZZuHBh8tRTT+3zeP55X/7pn/4pqa6uTgYPHpy84Q1vSH72s5/1+DNPPfVUMnDgwGTcuHH7fO2e/PrXv04+8IEPJKNGjUqOPPLI5Pjjj0+mTJmSfOELX0heeOGF3H4vvvhict111yWjR49OjjjiiKS6ujq58soru+2TJEnS2dmZLF26NDnppJOSY445Jpk5c2bym9/8Zq/zvnLlyiQi9pqPL8+nP/992Lp1azJr1qzk+OOPTyIiedOb3pQkSZLccMMNyetf//pkyJAhydFHH5065wAA6L0BSdKLJwQBAMAhGDBgQCxatGivpV8obZMmTYqhQ4fGvffeW/DsP/7xj3HyySfH1VdfHVdddVXB8wEAyC5rogMAAAflxRdfzD0w9WU/+tGP4mc/+1mcc845RelTY2NjdHZ2xnvf+96i5AMAkF3WRAcAAA5Ke3t7zJgxI97znvdEVVVV/OpXv4oVK1bEiBEj4pJLLiloX9atWxebN2+OT33qU3H++efHqFGjCpoPAED2KaIDAAAH5YQTTogzzzwz/uVf/iW2b98exx57bMyaNSv+4R/+IU488cSC9uX666+PDRs2xJQpU+ILX/hCQbMBAOgfrIkOAAAAAAAprIkOAAAAAAApFNEBAAAAACCFNdEjoqurK5588sk4/vjjY8CAAcXuDgAAAAAAh1mSJPHss89GVVVVlJWlf95cET0innzyyaiuri52NwAAAAAAKLAtW7bEyJEjU9sV0SPi+OOPj4j/OVjl5eVF7g0AAAAAAIdbR0dHVFdX5+rDaRTRI3JLuJSXlyuiAwAAAAD0I/tb4tuDRQEAAAAAIIUiOgAAAAAApFBEBwAAAACAFIroAAAAAACQQhEdAAAAAABSKKIDAAAAAEAKRXQAAAAAAEihiA4AAAAAACkU0QEAAAAAIIUiOgAAAAAApFBEBwAAAACAFIroAAAAAACQQhEdAAAAAABSKKIDAAAAAEAKRXQAAAAAAEihiA4AAAAAACkU0QEAAAAAIIUiOgAAAAAApFBEBwAAAACAFEUtond2dsZVV10Vo0ePjqOPPjpe9apXxSc/+clIkiS3T5IkcfXVV8fJJ58cRx99dMyYMSNaWlq6vc4zzzwT8+bNi/Ly8hgyZEhcdNFF8dxzzxV6OAAAAAAAZMygYob/4z/+Y9x2222xatWqmDhxYjz88MPR0NAQFRUVsWTJkoiIuOmmm+Lzn/98rFq1KkaPHh1XXXVVzJw5MzZv3hxHHXVURETMmzcvnnrqqbj33nvjxRdfjIaGhrj44ovjzjvvLObwSsqlxz+d99e87dlheX9NAAAAAIBCGpD8+ce+C+xtb3tbDB8+PL7yla/kts2ZMyeOPvro+OpXvxpJkkRVVVV85CMfiY9+9KMREbFr164YPnx4NDY2xgUXXBC//OUvY8KECfHQQw/Fa1/72oiIuOeee+Ktb31r/OEPf4iqqqr99qOjoyMqKipi165dUV5efngG28cpogMAAAAA/cmB1oWLupzL5MmTY+3atfHrX/86IiJ+9rOfxf/9v/83zjvvvIiIeOKJJ2Lr1q0xY8aM3M9UVFTEWWedFRs3boyIiI0bN8aQIUNyBfSIiBkzZkRZWVk8+OCDPebu3r07Ojo6un0BAAAAAMArFXU5l49//OPR0dERtbW1MXDgwOjs7IxPfepTMW/evIiI2Lp1a0REDB8+vNvPDR8+PNe2devWGDas+yeeBw0aFJWVlbl9XunGG2+M6667Lt/DAQAAAAAgY4r6SfT/83/+TzQ1NcWdd94Zjz76aKxatSo++9nPxqpVqw5r7pVXXhm7du3KfW3ZsuWw5gEAAAAAUJqK+kn0K664Ij7+8Y/HBRdcEBERp59+evz+97+PG2+8MebPnx8jRoyIiIht27bFySefnPu5bdu2xaRJkyIiYsSIEfH0093X837ppZfimWeeyf38Kw0ePDgGDx58GEYEAAAAAECWFPWT6P/1X/8VZWXduzBw4MDo6uqKiIjRo0fHiBEjYu3atbn2jo6OePDBB6O+vj4iIurr62Pnzp3xyCOP5PZZt25ddHV1xVlnnVWAUQAAAAAAkFVF/ST629/+9vjUpz4VNTU1MXHixPjP//zP+NznPhfve9/7IiJiwIAB8eEPfzhuuOGGOPXUU2P06NFx1VVXRVVVVZx//vkREVFXVxd/9Vd/FR/4wAdixYoV8eKLL8bixYvjggsuiKqqqiKODgAAAACAUlfUIvoXvvCFuOqqq+Lv/u7v4umnn46qqqpYuHBhXH311bl9Pvaxj8Xzzz8fF198cezcuTOmTp0a99xzTxx11FG5fZqammLx4sXx5je/OcrKymLOnDnx+c9/vhhDAgAAAAAgQwYkSZIUuxPF1tHRERUVFbFr164oLy8vdneK4tLjn97/TgfptmeH5f01AQAAAADy4UDrwkVdEx0AAAAAAPoyRXQAAAAAAEihiA4AAAAAACkU0QEAAAAAIIUiOgAAAAAApFBEBwAAAACAFIroAAAAAACQQhEdAAAAAABSKKIDAAAAAEAKRXQAAAAAAEihiA4AAAAAACkU0QEAAAAAIIUiOgAAAAAApFBEBwAAAACAFIroAAAAAACQQhEdAAAAAABSKKIDAAAAAEAKRXQAAAAAAEihiA4AAAAAACkU0QEAAAAAIIUiOgAAAAAApFBEBwAAAACAFIroAAAAAACQQhEdAAAAAABSKKIDAAAAAEAKRXQAAAAAAEihiA4AAAAAACkU0QEAAAAAIIUiOgAAAAAApFBEBwAAAACAFIroAAAAAACQQhEdAAAAAABSKKIDAAAAAEAKRXQAAAAAAEihiA4AAAAAACkU0QEAAAAAIIUiOgAAAAAApFBEBwAAAACAFIroAAAAAACQQhEdAAAAAABSKKIDAAAAAEAKRXQAAAAAAEihiA4AAAAAACkU0QEAAAAAIIUiOgAAAAAApChqEX3UqFExYMCAvb4WLVoUEREvvPBCLFq0KE488cQ47rjjYs6cObFt27Zur9HW1hazZs2KY445JoYNGxZXXHFFvPTSS8UYDgAAAAAAGVPUIvpDDz0UTz31VO7r3nvvjYiId73rXRERcdlll8V3vvOduOuuu+L++++PJ598Mt75znfmfr6zszNmzZoVe/bsiQ0bNsSqVauisbExrr766qKMBwAAAACAbBmQJElS7E687MMf/nDcfffd0dLSEh0dHTF06NC48847Y+7cuRER8atf/Srq6upi48aNcfbZZ8f3vve9eNvb3hZPPvlkDB8+PCIiVqxYEUuXLo3t27fHkUceeUC5HR0dUVFREbt27Yry8vLDNr6+7NLjn877a9727LC8vyYAAAAAQD4caF24z6yJvmfPnvjqV78a73vf+2LAgAHxyCOPxIsvvhgzZszI7VNbWxs1NTWxcePGiIjYuHFjnH766bkCekTEzJkzo6OjIx5//PHUrN27d0dHR0e3LwAAAAAAeKU+U0T/5je/GTt37owFCxZERMTWrVvjyCOPjCFDhnTbb/jw4bF169bcPn9eQH+5/eW2NDfeeGNUVFTkvqqrq/M3EAAAAAAAMqPPFNG/8pWvxHnnnRdVVVWHPevKK6+MXbt25b62bNly2DMBAAAAACg9g4rdgYiI3//+9/HDH/4w/v3f/z23bcSIEbFnz57YuXNnt0+jb9u2LUaMGJHbZ9OmTd1ea9u2bbm2NIMHD47BgwfncQQAAAAAAGRRn/gk+sqVK2PYsGExa9as3LYzzzwzjjjiiFi7dm1uW3Nzc7S1tUV9fX1ERNTX18djjz0WTz/9/x6Kee+990Z5eXlMmDChcAMAAAAAACCTiv5J9K6urli5cmXMnz8/Bg36f92pqKiIiy66KC6//PKorKyM8vLy+OAHPxj19fVx9tlnR0TEueeeGxMmTIj3vve9cdNNN8XWrVvjE5/4RCxatMgnzQEAAAAAOGRFL6L/8Ic/jLa2tnjf+963V9vNN98cZWVlMWfOnNi9e3fMnDkzbr311lz7wIED4+67745LL7006uvr49hjj4358+fH9ddfX8ghAAAAAACQUQOSJEmK3Yli6+joiIqKiti1a1eUl5cXuztFcenxT+9/p4N027PD8v6aAAAAAAD5cKB14T6xJjoAAAAAAPRFiugAAAAA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AAAAAIAUiugAAAAAAJBCER0AAAAAAFIoogMAAAAAQApFdAAAAAAASKGIDgAAAAAAKRTRAQAAAAAghSI6AAAAAACkUEQHAAAAAIAUvSqiP/roo/HYY4/lvv/Wt74V559/fvz93/997NmzJ2+dAwAAAACAYupVEX3hwoXx61//OiIiWltb44ILLohjjjkm7rrrrvjYxz6W1w4CAAAAAECx9KqI/utf/zomTZoUERF33XVXvPGNb4w777wzGhsb49/+7d/y2T8AAAAAACiaXhXRkySJrq6uiIj44Q9/GG9961sjIqK6ujr++Mc/5q93AAAAAABQRL0qor/2ta+NG264Ie644464//77Y9asWRER8cQTT8Tw4cPz2kEAAAAAACiWXhXRb7755nj00Udj8eLFsWzZshg7dmxERKxZsyYmT56c1w4CAAAAAECxDOrND7361a+Oxx57bK/tn/nMZ2LQoF69JAAAAAAA9Dm9+iT6mDFjYseOHXttf+GFF2LcuHGH3CkAAAAAAOgLelVE/93vfhednZ17bd+9e3f84Q9/OOROAQAAAABAX3BQa698+9vfzv3/73//+1FRUZH7vrOzM9auXRujR4/OX+8AAAAAAKCIDqqIfv7550dExIABA2L+/Pnd2o444ogYNWpU/NM//VPeOgcAAAAAAMV0UEX0rq6uiIgYPXp0PPTQQ3HSSScdlk4BAAAAAEBfcFBF9Jc98cQT+e4HAAAAAAD0Ob0qokdErF27NtauXRtPP/107hPqL/vXf/3XQ+4YAAAAAAAUW6+K6Nddd11cf/318drXvjZOPvnkGDBgQL77BQAAAAAARderIvqKFSuisbEx3vve9+a7PwAAAAAA0GeU9eaH9uzZE5MnT853XwAAAAAAoE/pVRH9/e9/f9x555357gsAAAAAAPQpvVrO5YUXXogvfelL8cMf/jDOOOOMOOKII7q1f+5zn8tL5wAAAAAAoJh6VUT/+c9/HpMmTYqIiF/84hfd2jxkFAAAAACArOhVEf2+++7Ldz8AAAAAAKDP6dWa6AAAAAAA0B/06pPo06ZN2+eyLevWret1hwAAAAAAoK/oVRH95fXQX/biiy/GT3/60/jFL34R8+fPz0e/AAAAAACg6HpVRL/55pt73H7ttdfGc889d0gdAgAAAACAviKva6K/5z3viX/913/N50sCAAAAAEDR5LWIvnHjxjjqqKPy+ZIAAAAAAFA0vVrO5Z3vfGe375MkiaeeeioefvjhuOqqq/LSMQAAAAAAKLZeFdErKiq6fV9WVhbjx4+P66+/Ps4999y8dAwAAAAAAIqtV0X0lStX5rsfAAAAAADQ5xzSmuiPPPJIfPWrX42vfvWr8Z//+Z+H1JF/+Id/iAEDBsSHP/zh3LYXXnghFi1aFCeeeGIcd9xxMWfOnNi2bVu3n2tra4tZs2bFMcccE8OGDYsrrrgiXnrppUPqCwAAAAAARPTyk+hPP/10XHDBBfGjH/0ohgwZEhERO3fujGnTpsXXvva1GDp06EG93kMPPRS33357nHHGGd22X3bZZfHd73437rrrrqioqIjFixfHO9/5zli/fn1ERHR2dsasWbNixIgRsWHDhnjqqafiwgsvjCOOOCI+/elP92ZoAAAAAACQ06tPon/wgx+MZ599Nh5//PF45pln4plnnolf/OIX0dHREUuWLDmo13ruuedi3rx58eUvfzlOOOGE3PZdu3bFV77ylfjc5z4X06dPjzPPPDNWrlwZGzZsiJ/85CcREfGDH/wgNm/eHF/96ldj0qRJcd5558UnP/nJ+OIXvxh79uzpzdAAAAAAACCnV0X0e+65J2699daoq6vLbZswYUJ88YtfjO9973sH9VqLFi2KWbNmxYwZM7ptf+SRR+LFF1/str22tjZqampi48aNERGxcePGOP3002P48OG5fWbOnBkdHR3x+OOP92ZoAAAAAACQ06vlXLq6uuKII47Ya/sRRxwRXV1dB/w6X/va1+LRRx+Nhx56aK+2rVu3xpFHHplbLuZlw4cPj61bt+b2+fMC+svtL7el2b17d+zevTv3fUdHxwH3GQAAAACA/qNXn0SfPn16fOhDH4onn3wyt629vT0uu+yyePOb33xAr7Fly5b40Ic+FE1NTXHUUUf1phu9duONN0ZFRUXuq7q6uqD5AAAAAACUhl4V0f/5n/85Ojo6YtSoUfGqV70qXvWqV8Xo0aOjo6MjvvCFLxzQazzyyCPx9NNPx2te85oYNGhQDBo0KO6///74/Oc/H4MGDYrhw4fHnj17YufOnd1+btu2bTFixIiIiBgxYkRs27Ztr/aX29JceeWVsWvXrtzXli1bDmL0AAAAAAD0F71azqW6ujoeffTR+OEPfxi/+tWvIiKirq5ur3XN9+XNb35zPPbYY922NTQ0RG1tbSxdujSqq6vjiCOOiLVr18acOXMiIqK5uTna2tqivr4+IiLq6+vjU5/6VDz99NMxbNiwiIi49957o7y8PCZMmJCaPXjw4Bg8ePBBjRkAAAAAgP7noIro69ati8WLF8dPfvKTKC8vj7e85S3xlre8JSIidu3aFRMnTowVK1bEG97whv2+1vHHHx+nnXZat23HHntsnHjiibntF110UVx++eVRWVkZ5eXl8cEPfjDq6+vj7LPPjoiIc889NyZMmBDvfe9746abboqtW7fGJz7xiVi0aJEiOQAAAAAAh+yglnO55ZZb4gMf+ECUl5fv1VZRURELFy6Mz33uc3nr3M033xxve9vbYs6cOfHGN74xRowYEf/+7/+eax84cGDcfffdMXDgwKivr4/3vOc9ceGFF8b111+ftz4AAAAAANB/DUiSJDnQnU855ZS45557oq6ursf2X/3qV3HuuedGW1tb3jpYCB0dHVFRURG7du3q8R8I+oNLj386769527PD8v6aAAAAAAD5cKB14YP6JPq2bdviiCOOSG0fNGhQbN++/WBeEgAAAAAA+qyDKqL/xV/8RfziF79Ibf/5z38eJ5988iF3CgAAAAAA+oKDKqK/9a1vjauuuipeeOGFvdr++7//O6655pp429velrfOAQAAAABAMR3Umujbtm2L17zmNTFw4MBYvHhxjB8/PiL+Zy30L37xi9HZ2RmPPvpoDB8+/LB1+HCwJro10QEAAACA/uVA68KDDuZFhw8fHhs2bIhLL700rrzyyni5/j5gwICYOXNmfPGLXyy5AjoAAAAAAKQ5qCJ6RMQpp5wS//Ef/xF/+tOf4je/+U0kSRKnnnpqnHDCCYejfwAAAAAAUDQHXUR/2QknnBCve93r8tkXAAAAAADoUw7qwaIAAAAAANCfKKIDAAAAAEAKRXQAAAAAAEihiA4AAAAAACkU0QEAAAAAIIUiOgAAAAAApFBEBwAAAACAFIroAAAAAACQQhEdAAAAAABSKKIDAAAAAEAKRXQAAAAAAEihiA4AAAAAACkU0QEAAAAAIIUiOgAAAAAApFBEBwAAAACAFIroAAAAAACQQhEdAAAAAABSKKIDAAAAAEAKRXQAAAAAAEihiA4AAAAAACkU0QEAAAAAIIUiOgAAAAAApFBEBwAAAACAFIroAAAA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xzo+Ptb29rZu376tZ555RpL0yCOP6KmnntLt27dbfh7f/va39dhjj+nJJ59seQsAAACIAm6iAwAAAG3ge77ne/TUU0/pqaee0vDwsD760Y/q6OhIJycnDz3O5atf/arGx8clSW94wxt069Ytzc3NSZK2trb0tre9TY899pieeOIJvfe979VLL72kj33sY1pfX9ff/u3fXv60+wsvvHD53/sXf/EX+tEf/VE9+uijKhaLVx7n8rGPfUzDw8Pa3NxUT0+Pksmkfu7nfk7f+MY3Lv/MN77xDc3Ozup1r3ud7ty5oz/8wz/Uu9/9bn3kIx+5/DN/8id/ore85S169NFH9aY3vUkzMzM2phYAAAB4VbiJDgAAALSZb37zm/qzP/sz9ff364knnnjomOd5+su//EtJUqlU0vHxsZaXl3V8fKyf//mf1y/8wi/oy1/+sl544QU9++yzMsbo13/91/UzP/MzD/20++jo6OV/50c/+lH96q/+qr785S/rfe97X91z+spXvqK/+Zu/0fPPP6/nn39e//RP/6Tf/d3fvTz+a7/2a9rb29Pf/d3f6XOf+5x2d3f1hS984fL4v/zLv2hxcVGf+MQnVCqV9NnPflbvete7gpw2AAAAoCVa//ugAAAAAG70/PPP63u/93slSS+99JLu3Lmj559/XonEwz/38sgjj6ijo0OS9OSTT17+xPhXvvIV/e///q+effZZPf3005Kkt73tbZf/3mOPPaZvfetbeuqpp660P/KRj+jZZ59teH4XFxcqFAp6/PHHJUkf+tCHtL29rd/5nd/RN77xDa2vr+vP//zP9Z73vEeStLa2pq6urst/v1Kp6HWve52eeeYZPf7443r66af1Az/wA69kigAAAIBQ8JPoAAAAQBsYHx/Xl770JX3pS1/SwcGB3ve+9+kDH/iA/v3f//1l/ftvf/vb9Z73vEdve9vb9NM//dP61Kc+pa997Wsv6999xzveceOf6enpubyBLkl37tzRf/3Xf0mSyuWyvv3tb+vu3buXx5PJpAYHBy//84/92I/p6aefVl9fnz70oQ+pWCzqv//7v1/W+QEAAABh4iY6AAAA0AZe97rXqb+/X/39/XrnO9+pP/3TP9VLL72kT33qUy/r33/kkUf0uc99Tv/wD/+gt771rfqjP/ojDQ4O6t/+7d9eVvsmr3nNax76z7du3dLFxcXLOjdJevzxx/WFL3xBn/70p3Xnzh391m/9lt7+9rfr7OzsZf93AAAAAGHgJjoAAADQhm7duqVEIqH/+Z//uXLsta99rSSpVqtd+Xey2aw+/vGP64tf/KJe+9rX6q//+q8v/53//58PSl9fn17zmtfo85///OVrX//61/XgwYOH/tzt27f13ve+V7/3e7+n+/fv66tf/ap2dnZack4AAABAUHgmOgAAANAGvvWtb+k///M/JUlf+9rX9Md//Mf65je/qZ/4iZ+48meffvpp3bp1S88//7w++MEP6rHHHtOLL76o7e1t/fiP/7iefPJJ3bt3TycnJ8pkMpK+8ziWf/zHf1SpVNITTzyhZDIZ2Lk//vjj+vCHP6zf+I3fUEdHh5588kn99m//thKJhG7duiXpO898L5fLete73qU3vOEN+vu//3tdXFw89MgXAAAAoB3xk+gAAABAG/jsZz+rO3fu6M6dO/rhH/5hff7zn9dnPvMZvfvd777yZ9/85jfr4x//uD760Y/qTW96k375l39Z3/d936d//ud/1gc/+EENDAzoN3/zN/XJT35SH/jAByRJv/RLv6TBwUG94x3vUGdnp/b29gI9/z/4gz/QyMiInnnmGb33ve9VNptVJpPRo48+Kkl6/etfr7/6q7/SxMSEMpmMVlZW9OlPf1pDQ0OBngcAAAAQtFvGGBP2SQAAAABwy0svvaQ3v/nN+uQnP6lf/MVfDPt0AAAAgKbxOBcAAAAAr9oXv/hF/eu//qvu3r2rr3/96/rEJz4hSfrJn/zJkM8MAAAAeHW4iQ4AAAAgEL//+7+vUqmk1772tfqhH/oh7e7u6o1vfGPYpwUAAAC8KjzOBQAAAAAAAACAa/DFogAAAAAAAAAAXIOb6AAAAAAAAAAAXIOb6AAAAAAAAAAAXIOb6AAAAAAAAAAAXIOb6AAAAAAAAAAAXIOb6AAAAAAAAAAAXIOb6AAAAAAAAAAAXIOb6AAAAAAAAAAAXIOb6AAAAAAAAAAAXOP/AapDGsmwADvzAAAAAElFTkSuQmCC", + "text/plain": [ + "

" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_top_bitstrings(counts, hidden_bitstring)" + ] + }, + { + "cell_type": "markdown", + "id": "773466d6", "metadata": {}, - "outputs": [], "source": [ - "qctrl_estimator_job = catalog.get_job_by_id(qctrl_estimator_job_id)" + "### Sampler inputs\n", + "Fire Opal Performance Management accepts abstract circuits, in contrast to the native Qiskit Runtime primitives, which only accept circuits that are written in the target backend’s Instruction Set Architecture (ISA). For best results, do not transpile circuits before submitting via the Performance Management function. \n", + "\n", + "| Name | Type | Description | Required | Default | Example |\n", + "|------------|---------------|------------------|----------|----------|--------------------|\n", + "| pubs | `QctrlSamplerPubLike` or `list[QctrlSamplerPubLike]` | One or more tuples containing the inputs listed under `SamplerPubLike` components | Yes | N/A | `(circuit, parameter_values)` |\n", + "| instance | `str` | The hub/group/project to use in that format | No | A Premium access instance is randomly chosen if your account has access to multiple instances | `\"hub1/group1/project1\"` |\n", + "| backend_name| `str` | The name of the backend | No | The least busy backend that your instance has access to | `\"ibm_fez\"` |\n", + "| options| `dict` | Input options; see Options section for more details | No | See the Options section for details | `{\"default_shots\": 2048}` |\n", + "\n", + "**`QctrlSamplerPubLike` components (derived from the [Qiskit Runtime PUB definition](/guides/primitive-input-output#sampler-pub)):**\n", + "- A single circuit defined as a `QuantumCircuit` or in OpenQASM 2.0 or 3.0 string format.\n", + "- (Optional) A collection of parameter values to bind the circuit against.\n", + "- (Optional) An integer representing the shot count, or a dictionary of runtime options containing the shot count. For example: `(circ, None, 123)` or `(circ, None, {\"shots\": 123})`.\n", + "\n", + "**Supported backends:**\n", + "The following list of backends are currently supported. If your device is not listed, [reach out to Q-CTRL](https://form.typeform.com/to/iuujEAEI?typeform-source=q-ctrl.com) to add support.\n", + "- ibm_brisbane\n", + "- ibm_brussels\n", + "- ibm_cleveland\n", + "- ibm_fez\n", + "- ibm_kawasaki\n", + "- ibm_kyiv\n", + "- ibm_nazca\n", + "- ibm_quebec\n", + "- ibm_rensselaer\n", + "- ibm_sherbrooke\n", + "- ibm_strasbourg\n", + "- ibm_torino\n", + "\n", + "**Options:**\n", + "| Name | Type | Description | Default |\n", + "|--------|----------|-----------------------|---------------------|\n", + "| session_id | `str` | An existing Qiskit Runtime session ID | `\"cw4r3je6f0t010870y3g\"` |\n", + "| default_shots | `int` | The number of shots to use for each circuit | `2048` |\n", + "\n", + "### Sampler outputs\n", + "| Name | Type | Description | Example |\n", + "|--------|----------------------------------------|-------------------------------------------------------------------------------------------|---------------------------------|\n", + "| N/A | `PrimitiveResult` | The [`PrimitiveResult`](/api/qiskit/qiskit.primitives.PrimitiveResult) corresponding to the list of input PUBs | `PrimitiveResult([PubResult(data=DataBin(c=BitArray()), metadata={'shots': 2048})], metadata={})` |" ] }, { diff --git a/scripts/config/cspell/dictionaries/qiskit.txt b/scripts/config/cspell/dictionaries/qiskit.txt index 0f5fe3e1094..01d40011afa 100644 --- a/scripts/config/cspell/dictionaries/qiskit.txt +++ b/scripts/config/cspell/dictionaries/qiskit.txt @@ -38,6 +38,7 @@ NISQ PRNG Paulihedral QAOA +Qctrl QEDMA QESEM QESEM's From cc1fd8d357be3233ad750e71f7d879fe77171022 Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Thu, 17 Oct 2024 11:46:39 -0400 Subject: [PATCH 08/32] Fix external link checker exception handling (#2147) We weren't properly catching errors due to reusing the symbol `error`. That resulted in a test recently saying that a link we expected to 404 was instead a valid link. This PR also improves the tests to be deterministic by mocking `fetch()`. This removes the risk of flakiness and makes our test faster. --- scripts/js/lib/links/ExternalLink.test.ts | 33 +++++++++++++++++------ scripts/js/lib/links/ExternalLink.ts | 4 +-- 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/scripts/js/lib/links/ExternalLink.test.ts b/scripts/js/lib/links/ExternalLink.test.ts index 47805a79bc7..dfc52ca8ec5 100644 --- a/scripts/js/lib/links/ExternalLink.test.ts +++ b/scripts/js/lib/links/ExternalLink.test.ts @@ -20,21 +20,38 @@ test("ExternalLink constructor ignores anchors", () => { }); test.describe("ExternalLink.check()", () => { + let originalFetch: typeof global.fetch; + + test.beforeEach(() => { + originalFetch = global.fetch; + }); + + test.afterEach(() => { + global.fetch = originalFetch; + }); + test("valid link", async () => { - let link = new ExternalLink("https://github.com/Qiskit", [ - "/testorigin.mdx", - ]); + global.fetch = () => Promise.resolve(new Response()); + let link = new ExternalLink("https://good-link.com", ["/testorigin.mdx"]); const result = await link.check(); expect(result).toBeUndefined(); }); - test("Validate existing external links", async () => { - let link = new ExternalLink("https://ibm.com/FakePageDoesNotExist", [ - "/testorigin.mdx", - ]); + test("invalid link", async () => { + global.fetch = () => Promise.resolve(new Response("", { status: 404 })); + let link = new ExternalLink("https://bad-link.com", ["/testorigin.mdx"]); + const result = await link.check(); + expect(result).toEqual( + "❌ Could not find link 'https://bad-link.com'. Appears in:\n /testorigin.mdx", + ); + }); + + test("exception handling", async () => { + global.fetch = () => Promise.reject(new Error("some issue")); + let link = new ExternalLink("https://bad-link.com", ["/testorigin.mdx"]); const result = await link.check(); expect(result).toEqual( - "❌ Could not find link 'https://ibm.com/FakePageDoesNotExist'. Appears in:\n /testorigin.mdx", + "❌ Failed to fetch 'https://bad-link.com': some issue. Appears in:\n /testorigin.mdx", ); }); }); diff --git a/scripts/js/lib/links/ExternalLink.ts b/scripts/js/lib/links/ExternalLink.ts index 6074b477fa7..00bcec72e54 100644 --- a/scripts/js/lib/links/ExternalLink.ts +++ b/scripts/js/lib/links/ExternalLink.ts @@ -43,8 +43,8 @@ export class ExternalLink { if (response.status >= 300) { error = `Could not find link '${this.value}'`; } - } catch (error) { - error = `Failed to fetch '${this.value}': ${(error as Error).message}`; + } catch (err) { + error = `Failed to fetch '${this.value}': ${(err as Error).message}`; } if (!error) { From f9b3daf4ff733b6de381e31ceab191a68dc13971 Mon Sep 17 00:00:00 2001 From: Frank Harkins Date: Fri, 18 Oct 2024 16:12:53 +0100 Subject: [PATCH 09/32] Update assignees for weekly checks (#2145) To stop spamming Arnau. --- .github/workflows/weekly-checks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/weekly-checks.yml b/.github/workflows/weekly-checks.yml index 971d167e457..1ebfd3a9de0 100644 --- a/.github/workflows/weekly-checks.yml +++ b/.github/workflows/weekly-checks.yml @@ -80,5 +80,5 @@ jobs: repo: context.repo.repo, title: "Extended checks failed", body: message, - assignees: ["frankharkins", "Eric-Arellano", "arnaucasau"] + assignees: ["frankharkins", "Eric-Arellano"] }) From d70c46dfcddb2fe7ee2cc0c6f208f1a5c395ab24 Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Mon, 21 Oct 2024 06:30:38 -0400 Subject: [PATCH 10/32] Fix more external links (#2130) Closes https://github.com/Qiskit/documentation/issues/2126. --- docs/api/qiskit/0.46/qiskit.algorithms.VQE.mdx | 2 +- docs/api/qiskit/release-notes/0.19.mdx | 6 +++--- docs/api/qiskit/release-notes/0.20.mdx | 14 +++++++------- docs/api/qiskit/release-notes/0.23.mdx | 10 +++++----- docs/api/qiskit/release-notes/0.25.mdx | 12 ++++++------ docs/api/qiskit/release-notes/0.33.mdx | 6 +++--- docs/api/qiskit/release-notes/0.37.mdx | 2 +- scripts/js/lib/links/ignores.ts | 1 + 8 files changed, 27 insertions(+), 26 deletions(-) diff --git a/docs/api/qiskit/0.46/qiskit.algorithms.VQE.mdx b/docs/api/qiskit/0.46/qiskit.algorithms.VQE.mdx index fe687c30cf7..267a830e3b5 100644 --- a/docs/api/qiskit/0.46/qiskit.algorithms.VQE.mdx +++ b/docs/api/qiskit/0.46/qiskit.algorithms.VQE.mdx @@ -19,7 +19,7 @@ python_api_name: qiskit.algorithms.VQE An instance of VQE requires defining two algorithmic sub-components: a trial state (a.k.a. ansatz) which is a `QuantumCircuit`, and one of the classical [`optimizers`](qiskit.algorithms.optimizers#module-qiskit.algorithms.optimizers "qiskit.algorithms.optimizers"). The ansatz is varied, via its set of parameters, by the optimizer, such that it works towards a state, as determined by the parameters applied to the ansatz, that will result in the minimum expectation value being measured of the input operator (Hamiltonian). - An optional array of parameter values, via the *initial\_point*, may be provided as the starting point for the search of the minimum eigenvalue. This feature is particularly useful such as when there are reasons to believe that the solution point is close to a particular point. As an example, when building the dissociation profile of a molecule, it is likely that using the previous computed optimal solution as the starting initial point for the next interatomic distance is going to reduce the number of iterations necessary for the variational algorithm to converge. It provides an [initial point tutorial](https://github.com/Qiskit/qiskit-tutorials-community/blob/master/chemistry/h2_vqe_initial_point.ipynb) detailing this use case. + An optional array of parameter values, via the *initial\_point*, may be provided as the starting point for the search of the minimum eigenvalue. This feature is particularly useful such as when there are reasons to believe that the solution point is close to a particular point. As an example, when building the dissociation profile of a molecule, it is likely that using the previous computed optimal solution as the starting initial point for the next interatomic distance is going to reduce the number of iterations necessary for the variational algorithm to converge. It provides an [initial point tutorial](https://github.com/qiskit-community/qiskit-community-tutorials/blob/51cb790aebbe1015f22c0957a108ff66eb1c9136/chemistry/h2_vqe_initial_point.ipynb) detailing this use case. The length of the *initial\_point* list value must match the number of the parameters expected by the ansatz being used. If the *initial\_point* is left at the default of `None`, then VQE will look to the ansatz for a preferred value, based on its given initial state. If the ansatz returns `None`, then a random point will be generated within the parameter bounds set, as per above. If the ansatz provides `None` as the lower bound, then VQE will default it to $-2\pi$; similarly, if the ansatz returns `None` as the upper bound, the default value will be $2\pi$. diff --git a/docs/api/qiskit/release-notes/0.19.mdx b/docs/api/qiskit/release-notes/0.19.mdx index 0c9bb18abc6..6e06c215b98 100644 --- a/docs/api/qiskit/release-notes/0.19.mdx +++ b/docs/api/qiskit/release-notes/0.19.mdx @@ -161,7 +161,7 @@ VQE expectation computation with Aer qasm\_simulator now defaults to a computati * [cvxpy](https://github.com/cvxgrp/cvxpy/) is now in the requirements list as a dependency for qiskit-aqua. It is used for the quadratic program solver which is used as part of the `qiskit.aqua.algorithms.QSVM`. Previously `cvxopt` was an optional dependency that needed to be installed to use this functionality. This is no longer required as cvxpy will be installed with qiskit-aqua. * For state tomography run as part of `qiskit.aqua.algorithms.HHL` with a QASM backend the tomography fitter function `qiskit.ignis.verification.StateTomographyFitter.fit()` now gets called explicitly with the method set to `lstsq` to always use the least-squares fitting. Previously it would opportunistically try to use the `cvx` fitter if `cvxpy` were installed. But, the `cvx` fitter depends on a specifically configured `cvxpy` installation with an SDP solver installed as part of `cvxpy` which is not always present in an environment with `cvxpy` installed. -* The VQE expectation computation using qiskit-aer’s `qiskit.providers.aer.extensions.SnapshotExpectationValue` instruction is not enabled by default anymore. This was changed to be the default in 0.7.0 because it is significantly faster, but it led to unexpected ideal results without shot noise (see [#1013](https://github.com/Qiskit/qiskit-aqua/issues/1013) for more details). The default has now changed back to match user expectations. Using the faster expectation computation is now opt-in by setting the new `include_custom` kwarg to `True` on the `qiskit.aqua.algorithms.VQE` constructor. +* The VQE expectation computation using qiskit-aer’s `qiskit.providers.aer.extensions.SnapshotExpectationValue` instruction is not enabled by default anymore. This was changed to be the default in 0.7.0 because it is significantly faster, but it led to unexpected ideal results without shot noise (see [#1013](https://github.com/qiskit-community/qiskit-aqua/issues/1013) for more details). The default has now changed back to match user expectations. Using the faster expectation computation is now opt-in by setting the new `include_custom` kwarg to `True` on the `qiskit.aqua.algorithms.VQE` constructor. @@ -482,11 +482,11 @@ The Qiskit Aqua 0.7.0 release introduces a lot of new functionality along with a ##### Optimization module -The `` qiskit.optimization` `` module now offers functionality for modeling and solving quadratic programs. It provides various near-term quantum and conventional algorithms, such as the `MinimumEigenOptimizer` (covering e.g. `VQE` or `QAOA`) or `CplexOptimizer`, as well as a set of converters to translate between different problem representations, such as `QuadraticProgramToQubo`. See the [changelog](https://github.com/Qiskit/qiskit-aqua/#migration-guide) for a list of the added features. +The `` qiskit.optimization` `` module now offers functionality for modeling and solving quadratic programs. It provides various near-term quantum and conventional algorithms, such as the `MinimumEigenOptimizer` (covering e.g. `VQE` or `QAOA`) or `CplexOptimizer`, as well as a set of converters to translate between different problem representations, such as `QuadraticProgramToQubo`. See the [changelog](https://github.com/qiskit-community/qiskit-aqua/#migration-guide) for a list of the added features. ##### Operator flow -The operator logic provided in `` qiskit.aqua.operators` `` was completely refactored and is now a full set of tools for constructing physically-intuitive quantum computations. It contains state functions, operators and measurements and internally relies on Terra’s Operator objects. Computing expectation values and evolutions was heavily simplified and objects like the `ExpectationFactory` produce the suitable, most efficient expectation algorithm based on the Operator input type. See the [changelog](https://github.com/Qiskit/qiskit-aqua/#migration-guide) for a overview of the added functionality. +The operator logic provided in `` qiskit.aqua.operators` `` was completely refactored and is now a full set of tools for constructing physically-intuitive quantum computations. It contains state functions, operators and measurements and internally relies on Terra’s Operator objects. Computing expectation values and evolutions was heavily simplified and objects like the `ExpectationFactory` produce the suitable, most efficient expectation algorithm based on the Operator input type. See the [changelog](https://github.com/qiskit-community/qiskit-aqua/#migration-guide) for a overview of the added functionality. ##### Native circuits diff --git a/docs/api/qiskit/release-notes/0.20.mdx b/docs/api/qiskit/release-notes/0.20.mdx index 815fbd19341..5524e0a5150 100644 --- a/docs/api/qiskit/release-notes/0.20.mdx +++ b/docs/api/qiskit/release-notes/0.20.mdx @@ -754,7 +754,7 @@ The main change made in this release is a refactor of the Randomized Benchmarkin * The `qiskit.ignis.verification.randomized_benchmarking.randomized_benchmarking_seq()` function is now using the updated Clifford class [`Clifford`](/api/qiskit/0.45/qiskit.quantum_info.Clifford "qiskit.quantum_info.Clifford") and the updated CNOT-Dihedral class `qiskit.ignis.verification.randomized_benchmarking.CNOTDihedral` to construct its output instead of using pre-generated group tables for the Clifford and CNOT-Dihedral group elements, which were stored in pickle files. This may result in subtle differences from the output from the previous version. * A new requirement [scikit-learn](https://scikit-learn.org/stable/) has been added to the requirements list. This dependency was added in the 0.3.0 release but wasn’t properly exposed as a dependency in that release. This would lead to an `ImportError` if the `qiskit.ignis.measurement.discriminator.iq_discriminators` module was imported. This is now correctly listed as a dependency so that `scikit-learn` will be installed with qiskit-ignis. * The `qiskit.ignis.verification.qv_circuits()` function is now using the circuit library class [`QuantumVolume`](/api/qiskit/0.45/qiskit.circuit.library.QuantumVolume "qiskit.circuit.library.QuantumVolume") to construct its output instead of building the circuit from scratch. This may result in subtle differences from the output from the previous version. -* Tomography fitters can now also get list of Result objects instead of a single Result as requested in [issue #320](https://github.com/Qiskit/qiskit-ignis/issues/320/). +* Tomography fitters can now also get list of Result objects instead of a single Result as requested in [issue #320](https://github.com/qiskit-community/qiskit-ignis/issues/320/). @@ -783,7 +783,7 @@ The main change made in this release is a refactor of the Randomized Benchmarkin #### Bug Fixes -* Fix a bug of the position of measurement pulses inserted by py:func:qiskit.ignis.characterization.calibrations.pulse\_schedules.drag\_schedules. Fixes [#465](https://github.com/Qiskit/qiskit-ignis/issues/465) +* Fix a bug of the position of measurement pulses inserted by py:func:qiskit.ignis.characterization.calibrations.pulse\_schedules.drag\_schedules. Fixes [#465](https://github.com/qiskit-community/qiskit-ignis/issues/465) @@ -819,15 +819,15 @@ The main change made in this release is a refactor of the Randomized Benchmarkin #### Bug Fixes -* Changed in python version 3.8: On macOS, the spawn start method is now the default. The fork start method should be considered unsafe as it can lead to crashes in subprocesses. However P\_BFGS doesn’t support spawn, so we revert to single process. Refer to #1109 \<[https://github.com/Qiskit/qiskit-aqua/issues/1109](https://github.com/Qiskit/qiskit-aqua/issues/1109)> for more details. +* Changed in python version 3.8: On macOS, the spawn start method is now the default. The fork start method should be considered unsafe as it can lead to crashes in subprocesses. However P\_BFGS doesn’t support spawn, so we revert to single process. Refer to #1109 \<[https://github.com/qiskit-community/qiskit-aqua/issues/1109](https://github.com/qiskit-community/qiskit-aqua/issues/1109)> for more details. * Binding parameters in the `CircuitStateFn` did not copy the value of `is_measurement` and always set `is_measurement=False`. This has been fixed. * Previously, SummedOp.to\_matrix\_op built a list MatrixOp’s (with numpy matrices) and then summed them, returning a single MatrixOp. Some algorithms (for example vqe) require summing thousands of matrices, which exhausts memory when building the list of matrices. With this change, no list is constructed. Rather, each operand in the sum is converted to a matrix, added to an accumulator, and discarded. -* Changing backends in VQE from statevector to qasm\_simulator or real device was causing an error due to CircuitSampler incompatible reuse. VQE was changed to always create a new CircuitSampler and create a new expectation in case not entered by user. Refer to #1153 \<[https://github.com/Qiskit/qiskit-aqua/issues/1153](https://github.com/Qiskit/qiskit-aqua/issues/1153)> for more details. -* Exchange and Wikipedia finance providers were fixed to correctly handle Quandl data. Refer to #775 \<[https://github.com/Qiskit/qiskit-aqua/issues/775](https://github.com/Qiskit/qiskit-aqua/issues/775)> for more details. Fixes a divide by 0 error on finance providers mean vector and covariance matrix calculations. Refer to #781 \<[https://github.com/Qiskit/qiskit-aqua/issues/781](https://github.com/Qiskit/qiskit-aqua/issues/781)> for more details. +* Changing backends in VQE from statevector to qasm\_simulator or real device was causing an error due to CircuitSampler incompatible reuse. VQE was changed to always create a new CircuitSampler and create a new expectation in case not entered by user. Refer to #1153 \<[https://github.com/qiskit-community/qiskit-aqua/issues/1153](https://github.com/qiskit-community/qiskit-aqua/issues/1153)> for more details. +* Exchange and Wikipedia finance providers were fixed to correctly handle Quandl data. Refer to #775 \<[https://github.com/qiskit-community/qiskit-aqua/issues/775](https://github.com/qiskit-community/qiskit-aqua/issues/775)> for more details. Fixes a divide by 0 error on finance providers mean vector and covariance matrix calculations. Refer to #781 \<[https://github.com/qiskit-community/qiskit-aqua/issues/781](https://github.com/qiskit-community/qiskit-aqua/issues/781)> for more details. * The `ListOp.combo_fn` property has been lost in several transformations, such as converting to another operator type, traversing, reducing or multiplication. Now this attribute is propagated to the resulting operator. * The evaluation of some operator expressions, such as of `SummedOp``s and evaluations with the ``CircuitSampler` did not treat coefficients correctly or ignored them completely. E.g. evaluating `~StateFn(0 * (I + Z)) @ Plus` did not yield 0 or the normalization of `~StateFn(I) @ ((Plus + Minus) / sqrt(2))` missed a factor of `sqrt(2)`. This has been fixed. -* `OptimizationResult` included some public setters and class variables were `Optional`. This fix makes all class variables read-only so that mypy and pylint can check types more effectively. `MinimumEigenOptimizer.solve` generated bitstrings in a result as `str`. This fix changed the result into `List[float]` as the other algorithms do. Some public classes related to optimization algorithms were missing in the documentation of `qiskit.optimization.algorithms`. This fix added all such classes to the docstring. #1131 \<[https://github.com/Qiskit/qiskit-aqua/issues/1131](https://github.com/Qiskit/qiskit-aqua/issues/1131)> for more details. -* `OptimizationResult.__init__` did not check whether the sizes of `x` and `variables` match or not (they should match). This fix added the check to raise an error if they do not match and fixes bugs detected by the check. This fix also adds missing unit tests related to `OptimizationResult.variable_names` and `OptimizationResult.variables_dict` in `test_converters`. #1167 \<[https://github.com/Qiskit/qiskit-aqua/issues/1167](https://github.com/Qiskit/qiskit-aqua/issues/1167)> for more details. +* `OptimizationResult` included some public setters and class variables were `Optional`. This fix makes all class variables read-only so that mypy and pylint can check types more effectively. `MinimumEigenOptimizer.solve` generated bitstrings in a result as `str`. This fix changed the result into `List[float]` as the other algorithms do. Some public classes related to optimization algorithms were missing in the documentation of `qiskit.optimization.algorithms`. This fix added all such classes to the docstring. #1131 \<[https://github.com/qiskit-community/qiskit-aqua/issues/1131](https://github.com/qiskit-community/qiskit-aqua/issues/1131)> for more details. +* `OptimizationResult.__init__` did not check whether the sizes of `x` and `variables` match or not (they should match). This fix added the check to raise an error if they do not match and fixes bugs detected by the check. This fix also adds missing unit tests related to `OptimizationResult.variable_names` and `OptimizationResult.variables_dict` in `test_converters`. #1167 \<[https://github.com/qiskit-community/qiskit-aqua/issues/1167](https://github.com/qiskit-community/qiskit-aqua/issues/1167)> for more details. * Fix parameter binding in the `OperatorStateFn`, which did not bind parameters of the underlying primitive but just the coefficients. * `op.eval(other)`, where `op` is of type `OperatorBase`, sometimes silently returns a nonsensical value when the number of qubits in `op` and `other` are not equal. This fix results in correct behavior, which is to throw an error rather than return a value, because the input in this case is invalid. * The `construct_circuit` method of `VQE` previously returned the expectation value to be evaluated as type `OperatorBase`. This functionality has been moved into `construct_expectation` and `construct_circuit` returns a list of the circuits that are evaluated to compute the expectation value. diff --git a/docs/api/qiskit/release-notes/0.23.mdx b/docs/api/qiskit/release-notes/0.23.mdx index 815b9a15deb..f21cd2482fc 100644 --- a/docs/api/qiskit/release-notes/0.23.mdx +++ b/docs/api/qiskit/release-notes/0.23.mdx @@ -390,10 +390,10 @@ No change * optimize\_svm method of qp\_solver would sometimes fail resulting in an error like this ValueError: cannot reshape array of size 1 into shape (200,1) This addresses the issue by adding an L2 norm parameter, lambda2, which defaults to 0.001 but can be changed via the QSVM algorithm, as needed, to facilitate convergence. * A method `one_letter_symbol` has been removed from the `VarType` in the latest build of DOCplex making Aqua incompatible with this version. So instead of using this method an explicit type check of variable types has been introduced in the Aqua optimization module. -* :meth\`\~qiskit.aqua.operators.state\_fns.DictStateFn.sample()\` could only handle real amplitudes, but it is fixed to handle complex amplitudes. #1311 \<[https://github.com/Qiskit/qiskit-aqua/issues/1311](https://github.com/Qiskit/qiskit-aqua/issues/1311)> for more details. -* Trotter class did not use the reps argument in constructor. #1317 \<[https://github.com/Qiskit/qiskit-aqua/issues/1317](https://github.com/Qiskit/qiskit-aqua/issues/1317)> for more details. -* Raise an AquaError if :class\`qiskit.aqua.operators.converters.CircuitSampler\` samples an empty operator. #1321 \<[https://github.com/Qiskit/qiskit-aqua/issues/1321](https://github.com/Qiskit/qiskit-aqua/issues/1321)> for more details. -* `to_opflow()` returns a correct operator when coefficients are complex numbers. #1381 \<[https://github.com/Qiskit/qiskit-aqua/issues/1381](https://github.com/Qiskit/qiskit-aqua/issues/1381)> for more details. +* :meth\`\~qiskit.aqua.operators.state\_fns.DictStateFn.sample()\` could only handle real amplitudes, but it is fixed to handle complex amplitudes. #1311 \<[https://github.com/qiskit-community/qiskit-aqua/issues/1311](https://github.com/qiskit-community/qiskit-aqua/issues/1311)> for more details. +* Trotter class did not use the reps argument in constructor. #1317 \<[https://github.com/qiskit-community/qiskit-aqua/issues/1317](https://github.com/qiskit-community/qiskit-aqua/issues/1317)> for more details. +* Raise an AquaError if :class\`qiskit.aqua.operators.converters.CircuitSampler\` samples an empty operator. #1321 \<[https://github.com/qiskit-community/qiskit-aqua/issues/1321](https://github.com/qiskit-community/qiskit-aqua/issues/1321)> for more details. +* `to_opflow()` returns a correct operator when coefficients are complex numbers. #1381 \<[https://github.com/qiskit-community/qiskit-aqua/issues/1381](https://github.com/qiskit-community/qiskit-aqua/issues/1381)> for more details. * Let backend simulators validate NoiseModel support instead of restricting to Aer only in QuantumInstance. * Correctly handle PassManager on QuantumInstance `transpile` method by calling its `run` method if it exists. * A bug that mixes custom `initial_state` in `QAOA` with Hadamard gates has been fixed. This doesn’t change functionality of QAOA if no initial\_state is provided by the user. Attention should be taken if your implementation uses QAOA with cusom `initial_state` parameter as the optimization results might differ. @@ -1429,7 +1429,7 @@ VQE expectation computation with Aer qasm\_simulator now defaults to a computati * Calling PauliTrotterEvolution.convert on an operator including a term that is a scalar multiple of the identity gave an incorrect circuit, one that ignored the scalar coefficient. This fix includes the effect of the coefficient in the global\_phase property of the circuit. * Make ListOp.num\_qubits check that all ops in list have the same num\_qubits Previously, the number of qubits in the first operator in the ListOp was returned. With this change, an additional check is made that all other operators also have the same number of qubits. * Make PauliOp.exp\_i() generate the correct matrix with the following changes. 1) There was previously an error in the phase of a factor of 2. 2) The global phase was ignored when converting the circuit to a matrix. We now use qiskit.quantum\_info.Operator, which is generally useful for converting a circuit to a unitary matrix, when possible. -* Fixes the cyclicity detection as reported buggy in [https://github.com/Qiskit/qiskit-aqua/issues/1184](https://github.com/Qiskit/qiskit-aqua/issues/1184). +* Fixes the cyclicity detection as reported buggy in [https://github.com/qiskit-community/qiskit-aqua/issues/1184](https://github.com/qiskit-community/qiskit-aqua/issues/1184). diff --git a/docs/api/qiskit/release-notes/0.25.mdx b/docs/api/qiskit/release-notes/0.25.mdx index ed9e47ba885..599e5a67d2c 100644 --- a/docs/api/qiskit/release-notes/0.25.mdx +++ b/docs/api/qiskit/release-notes/0.25.mdx @@ -241,7 +241,7 @@ No change ## 0.25.0 -This release officially deprecates the Qiskit Aqua project. Accordingly, in a future release the `qiskit-aqua` package will be removed from the Qiskit metapackage, which means in that future release `pip install qiskit` will no longer include `qiskit-aqua`. The application modules that are provided by qiskit-aqua have been split into several new packages: `qiskit-optimization`, `qiskit-nature`, `qiskit-machine-learning`, and `qiskit-finance`. These packages can be installed by themselves (via the standard pip install command, e.g. `pip install qiskit-nature`) or with the rest of the Qiskit metapackage as optional extras (e.g. `pip install 'qiskit[finance,optimization]'` or `pip install 'qiskit[all]'` The core algorithms and the operator flow now exist as part of qiskit-terra at [`qiskit.algorithms`](/api/qiskit/0.45/algorithms#module-qiskit.algorithms "qiskit.algorithms") and [`qiskit.opflow`](/api/qiskit/0.45/opflow#module-qiskit.opflow "qiskit.opflow"). Depending on your existing usage of Aqua you should either use the application packages or the new modules in Qiskit Terra. For more details on how to migrate from Qiskit Aqua, you can refer to the [migration guide](https://github.com/Qiskit/qiskit-aqua/blob/main/README.md#migration-guide). +This release officially deprecates the Qiskit Aqua project. Accordingly, in a future release the `qiskit-aqua` package will be removed from the Qiskit metapackage, which means in that future release `pip install qiskit` will no longer include `qiskit-aqua`. The application modules that are provided by qiskit-aqua have been split into several new packages: `qiskit-optimization`, `qiskit-nature`, `qiskit-machine-learning`, and `qiskit-finance`. These packages can be installed by themselves (via the standard pip install command, e.g. `pip install qiskit-nature`) or with the rest of the Qiskit metapackage as optional extras (e.g. `pip install 'qiskit[finance,optimization]'` or `pip install 'qiskit[all]'` The core algorithms and the operator flow now exist as part of qiskit-terra at [`qiskit.algorithms`](/api/qiskit/0.45/algorithms#module-qiskit.algorithms "qiskit.algorithms") and [`qiskit.opflow`](/api/qiskit/0.45/opflow#module-qiskit.opflow "qiskit.opflow"). Depending on your existing usage of Aqua you should either use the application packages or the new modules in Qiskit Terra. For more details on how to migrate from Qiskit Aqua, you can refer to the [migration guide](https://github.com/qiskit-community/qiskit-aqua/blob/main/README.md#migration-guide). @@ -715,9 +715,9 @@ The Qiskit Terra 0.17.0 includes many new features and bug fixes. The major new This mapping is based on controlled Pauli Y-rotations and constructed using the [`PolynomialPauliRotations`](/api/qiskit/0.45/qiskit.circuit.library.PolynomialPauliRotations "qiskit.circuit.library.PolynomialPauliRotations"). -* A new module [`qiskit.algorithms`](/api/qiskit/0.45/algorithms#module-qiskit.algorithms "qiskit.algorithms") has been introduced. This module contains functionality equivalent to what has previously been provided by the `qiskit.aqua.algorithms` module (which is now deprecated) and provides the building blocks for constructing quantum algorithms. For details on migrating from `qiskit-aqua` to this new module, please refer to the [migration guide](https://github.com/Qiskit/qiskit-aqua/blob/main/README.md#migration-guide). +* A new module [`qiskit.algorithms`](/api/qiskit/0.45/algorithms#module-qiskit.algorithms "qiskit.algorithms") has been introduced. This module contains functionality equivalent to what has previously been provided by the `qiskit.aqua.algorithms` module (which is now deprecated) and provides the building blocks for constructing quantum algorithms. For details on migrating from `qiskit-aqua` to this new module, please refer to the [migration guide](https://github.com/qiskit-community/qiskit-aqua/blob/main/README.md#migration-guide). -* A new module [`qiskit.opflow`](/api/qiskit/0.45/opflow#module-qiskit.opflow "qiskit.opflow") has been introduced. This module contains functionality equivalent to what has previously been provided by the `qiskit.aqua.operators` module (which is now deprecated) and provides the operators and state functions which are used to build quantum algorithms. For details on migrating from `qiskit-aqua` to this new module, please refer to the [migration guide](https://github.com/Qiskit/qiskit-aqua/blob/main/README.md#migration-guide). +* A new module [`qiskit.opflow`](/api/qiskit/0.45/opflow#module-qiskit.opflow "qiskit.opflow") has been introduced. This module contains functionality equivalent to what has previously been provided by the `qiskit.aqua.operators` module (which is now deprecated) and provides the operators and state functions which are used to build quantum algorithms. For details on migrating from `qiskit-aqua` to this new module, please refer to the [migration guide](https://github.com/qiskit-community/qiskit-aqua/blob/main/README.md#migration-guide). * This is the first release that includes precompiled binary wheels for the for Linux aarch64 systems. If you are running a manylinux2014 compatible aarch64 Linux system there are now precompiled wheels available on PyPI, you are no longer required to build from source to install qiskit-terra. @@ -1354,7 +1354,7 @@ The Qiskit Terra 0.17.0 includes many new features and bug fixes. The major new * Fixes a bug where the `channels` field for a [`PulseBackendConfiguration`](/api/qiskit/0.45/qiskit.providers.models.PulseBackendConfiguration "qiskit.providers.models.PulseBackendConfiguration") object was not being included in the output of the [`qiskit.providers.models.PulseBackendConfiguration.to_dict`](/api/qiskit/0.45/qiskit.providers.models.PulseBackendConfiguration#to_dict "qiskit.providers.models.PulseBackendConfiguration.to_dict") method. Fixed [#5579](https://github.com/Qiskit/qiskit/issues/5579) -* Fixed the `'circular'` entanglement in the [`qiskit.circuit.library.NLocal`](/api/qiskit/0.45/qiskit.circuit.library.NLocal "qiskit.circuit.library.NLocal") circuit class for the edge case where the circuit has the same size as the entanglement block (e.g. a two-qubit circuit and CZ entanglement gates). In this case there should only be one entanglement gate, but there was accidentially added a second one in the inverse direction as the first. Fixed [Qiskit/qiskit-aqua#1452](https://github.com/Qiskit/qiskit-aqua/issues/1452) +* Fixed the `'circular'` entanglement in the [`qiskit.circuit.library.NLocal`](/api/qiskit/0.45/qiskit.circuit.library.NLocal "qiskit.circuit.library.NLocal") circuit class for the edge case where the circuit has the same size as the entanglement block (e.g. a two-qubit circuit and CZ entanglement gates). In this case there should only be one entanglement gate, but there was accidentially added a second one in the inverse direction as the first. Fixed [qiskit-community/qiskit-aqua#1452](https://github.com/qiskit-community/qiskit-aqua/issues/1452) * Fixed the handling of breakpoints in the [`PiecewisePolynomialPauliRotations`](/api/qiskit/0.45/qiskit.circuit.library.PiecewisePolynomialPauliRotations "qiskit.circuit.library.PiecewisePolynomialPauliRotations") class in the [`qiskit.circuit.library`](/api/qiskit/0.45/circuit_library#module-qiskit.circuit.library "qiskit.circuit.library"). Now for `n` intervals, `n+1` breakpoints are allowed. This enables specifying another end interval other than $2^\text{num qubits}$. This is important because from the end of the last interval to $2^\text{num qubits}$ the function is the identity. @@ -1692,7 +1692,7 @@ The 0.8 release includes several new features and bug fixes. The highlights for #### Bug Fixes -* Fixed an issue in the expectation value method `expectation_value()`, for the error mitigation classes `TensoredExpvalMeasMitigator` and `CTMPExpvalMeasMitigator` if the `qubits` kwarg was not specified it would incorrectly use the total number of qubits of the mitigator, rather than the number of classical bits in the count dictionary leading to greatly reduced performance. Fixed [#561](https://github.com/Qiskit/qiskit-ignis/issues/561) +* Fixed an issue in the expectation value method `expectation_value()`, for the error mitigation classes `TensoredExpvalMeasMitigator` and `CTMPExpvalMeasMitigator` if the `qubits` kwarg was not specified it would incorrectly use the total number of qubits of the mitigator, rather than the number of classical bits in the count dictionary leading to greatly reduced performance. Fixed [#561](https://github.com/qiskit-community/qiskit-ignis/issues/561) * Fix the `"auto"` method of the `TomographyFitter`, `StateTomographyFitter`, and `ProcessTomographyFitter` to only use `"cvx"` if CVXPY is installed *and* a third-party SDP solver other than SCS is available. This is because the SCS solver has lower accuracy than other solver methods and often returns a density matrix or Choi-matrix that is not completely-positive and fails validation when used with the [`qiskit.quantum_info.state_fidelity()`](/api/qiskit/0.45/quantum_info#qiskit.quantum_info.state_fidelity "qiskit.quantum_info.state_fidelity") or [`qiskit.quantum_info.process_fidelity()`](/api/qiskit/0.45/quantum_info#qiskit.quantum_info.process_fidelity "qiskit.quantum_info.process_fidelity") functions. @@ -1701,7 +1701,7 @@ The 0.8 release includes several new features and bug fixes. The highlights for This release officially deprecates the Qiskit Aqua project, in the future (no sooner than 3 months from this release) the Aqua project will have it’s final release and be archived. All the functionality that qiskit-aqua provides has been migrated to either new packages or to other qiskit packages. The application modules that are provided by qiskit-aqua have been split into several new packages: `qiskit-optimization`, `qiskit-nature`, `qiskit-machine-learning`, and `qiskit-finance`. These packages can be installed by themselves (via the standard pip install command, ie `pip install qiskit-nature`) or with the rest of the Qiskit metapackage as optional extras (ie, `pip install 'qiskit[finance,optimization]'` or `pip install 'qiskit[all]'`. The core building blocks for algorithms and the operator flow now exist as part of qiskit-terra at [`qiskit.algorithms`](/api/qiskit/0.45/algorithms#module-qiskit.algorithms "qiskit.algorithms") and [`qiskit.opflow`](/api/qiskit/0.45/opflow#module-qiskit.opflow "qiskit.opflow"). Depending on your existing usage of Aqua you should either use the application packages or the new modules in Qiskit Terra. -For more details on how to migrate from using Qiskit Aqua, you can refer to the [migration guide](https://github.com/Qiskit/qiskit-aqua/blob/main/README.md#migration-guide). +For more details on how to migrate from using Qiskit Aqua, you can refer to the [migration guide](https://github.com/qiskit-community/qiskit-aqua/blob/main/README.md#migration-guide). diff --git a/docs/api/qiskit/release-notes/0.33.mdx b/docs/api/qiskit/release-notes/0.33.mdx index 8d2804daf46..f8b25e1f5f7 100644 --- a/docs/api/qiskit/release-notes/0.33.mdx +++ b/docs/api/qiskit/release-notes/0.33.mdx @@ -142,9 +142,9 @@ No change This release officially marks the end of support for the Qiskit Aqua project in Qiskit. It was originally deprecated in the 0.25.0 release and as was documented in that release the `qiskit-aqua` package has been removed from the Qiskit metapackage, which means `pip install qiskit` will no longer include `qiskit-aqua`. However, because of limitations in python packaging we cannot automatically remove a pre-existing install of `qiskit-aqua` when upgrading a previous version of Qiskit to this release (or a future release) with `pip install -U qiskit`. If you are upgrading from a previous version it’s recommended that you manually uninstall Qiskit Aqua with `pip uninstall qiskit-aqua` or install in a fresh python environment. -The application modules that were provided by `qiskit-aqua` have been split into several new packages: `qiskit-optimization`, `qiskit-nature`, `qiskit-machine-learning`, and `qiskit-finance`. These packages can be installed by themselves (via the standard pip install command, e.g. `pip install qiskit-nature`) or with the rest of the Qiskit metapackage as optional extras (e.g. `pip install 'qiskit[finance,optimization]'` or `pip install 'qiskit[all]'`). The core algorithms and the operator flow now exist as part of Qiskit Terra at `qiskit.algorithms` and `qiskit.opflow`. Depending on your existing usage of Aqua you should either use the application packages or the new modules in Qiskit Terra. For more details on how to migrate from Qiskit Aqua you can refer to the [Aqua Migration Guide](https://github.com/Qiskit/qiskit-aqua/blob/main/docs/tutorials/Qiskit%20Algorithms%20Migration%20Guide.ipynb). +The application modules that were provided by `qiskit-aqua` have been split into several new packages: `qiskit-optimization`, `qiskit-nature`, `qiskit-machine-learning`, and `qiskit-finance`. These packages can be installed by themselves (via the standard pip install command, e.g. `pip install qiskit-nature`) or with the rest of the Qiskit metapackage as optional extras (e.g. `pip install 'qiskit[finance,optimization]'` or `pip install 'qiskit[all]'`). The core algorithms and the operator flow now exist as part of Qiskit Terra at `qiskit.algorithms` and `qiskit.opflow`. Depending on your existing usage of Aqua you should either use the application packages or the new modules in Qiskit Terra. For more details on how to migrate from Qiskit Aqua you can refer to the [Aqua Migration Guide](https://github.com/qiskit-community/qiskit-aqua/blob/main/docs/tutorials/Qiskit%20Algorithms%20Migration%20Guide.ipynb). -This release also officially deprecates the Qiskit Ignis project. Accordingly, in a future release the `qiskit-ignis` package will be removed from the Qiskit metapackage, which means in that future release `pip install qiskit` will no longer include `qiskit-ignis`. Qiskit Ignis has been supersceded by the [Qiskit Experiments](https://qiskit.org/documentation/experiments/) project and active development has ceased. While deprecated, critical bug fixes and compatibility fixes will continue to be made to provide users a sufficient opportunity to migrate off of Ignis. After the deprecation period (which will be no shorter than 3 months from this release) the project will be retired and archived. You can refer to the [migration guide](https://github.com/Qiskit/qiskit-ignis#migration-guide) for details on how to switch from Qiskit Ignis to Qiskit Experiments. +This release also officially deprecates the Qiskit Ignis project. Accordingly, in a future release the `qiskit-ignis` package will be removed from the Qiskit metapackage, which means in that future release `pip install qiskit` will no longer include `qiskit-ignis`. Qiskit Ignis has been supersceded by the [Qiskit Experiments](https://qiskit.org/documentation/experiments/) project and active development has ceased. While deprecated, critical bug fixes and compatibility fixes will continue to be made to provide users a sufficient opportunity to migrate off of Ignis. After the deprecation period (which will be no shorter than 3 months from this release) the project will be retired and archived. You can refer to the [migration guide](https://github.com/qiskit-community/qiskit-ignis#migration-guide) for details on how to switch from Qiskit Ignis to Qiskit Experiments. @@ -1453,6 +1453,6 @@ This release deprecates the Qiskit Ignis project, it has been supersceded by the * The Qiskit Ignis project as a whole has been deprecated and the project will be retired and archived in the future. While deprecated only compatibility fixes and fixes for critical bugs will be made to the proejct. Instead of using Qiskit Ignis you should migrate to use [Qiskit Experiments](https://qiskit.org/documentation/experiments/) instead. You can refer to the migration guide: - [https://github.com/Qiskit/qiskit-ignis#migration-guide](https://github.com/Qiskit/qiskit-ignis#migration-guide) + [https://github.com/qiskit-community/qiskit-ignis#migration-guide](https://github.com/qiskit-community/qiskit-ignis#migration-guide) \ No newline at end of file diff --git a/docs/api/qiskit/release-notes/0.37.mdx b/docs/api/qiskit/release-notes/0.37.mdx index 58c2a05ad91..92da22f54a8 100644 --- a/docs/api/qiskit/release-notes/0.37.mdx +++ b/docs/api/qiskit/release-notes/0.37.mdx @@ -169,7 +169,7 @@ No change This release officially marks the end of support for the Qiskit Ignis project from Qiskit. It was originally deprecated in the 0.33.0 release and as was documented in that release the `qiskit-ignis` package has been removed from the Qiskit metapackage, which means in that future release `pip install qiskit` will no longer include `qiskit-ignis`. However, note because of limitations in python packaging we cannot automatically remove a pre-existing install of `qiskit-ignis`. If you are upgrading from a previous version it’s recommended that you manually uninstall Qiskit Ignis with `pip uninstall qiskit-ignis` or install the metapackage in a fresh python environment. -Qiskit Ignis has been supersceded by the [Qiskit Experiments](https://qiskit.org/documentation/experiments/) project. You can refer to the [migration guide](https://github.com/Qiskit/qiskit-ignis#migration-guide) for details on how to switch from Qiskit Ignis to Qiskit Experiments. +Qiskit Ignis has been supersceded by the [Qiskit Experiments](https://qiskit.org/documentation/experiments/) project. You can refer to the [migration guide](https://github.com/qiskit-community/qiskit-ignis#migration-guide) for details on how to switch from Qiskit Ignis to Qiskit Experiments. diff --git a/scripts/js/lib/links/ignores.ts b/scripts/js/lib/links/ignores.ts index ac146add4d5..fba75b396bc 100644 --- a/scripts/js/lib/links/ignores.ts +++ b/scripts/js/lib/links/ignores.ts @@ -56,6 +56,7 @@ const ALWAYS_IGNORED_URLS__EXPECTED = [ "https://doi.org/10.1103/PhysRevApplied.5.034007", "http://dx.doi.org/10.1103/PhysRevA.83.012308", "https://doi.org/10.1103/PhysRevLett.103.150502", + "https://doi.org/10.1103/PhysRevA.99.032331", ]; // These external URLs cause actual 404s and should probably be fixed. From fc4f271acc0410fcd7821f64c808903d48387e56 Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Mon, 21 Oct 2024 11:40:33 -0400 Subject: [PATCH 11/32] Revert api-redirect-data.json (#2154) Reverts https://github.com/Qiskit/documentation/pull/2125. Turns out, we didn't need to take that approach so we can instead use the simpler generateHistoricalRedirects.ts. --- scripts/config/api-redirect-data.json | 33329 ---------------- .../api/convertApiDocsToHistorical.ts | 2 - .../commands/api/generateApiRedirectData.ts | 166 - scripts/js/commands/api/regenerateApiDocs.ts | 2 - scripts/js/commands/api/updateApiDocs.ts | 2 - 5 files changed, 33501 deletions(-) delete mode 100644 scripts/config/api-redirect-data.json delete mode 100644 scripts/js/commands/api/generateApiRedirectData.ts diff --git a/scripts/config/api-redirect-data.json b/scripts/config/api-redirect-data.json deleted file mode 100644 index 79da2a5b24f..00000000000 --- a/scripts/config/api-redirect-data.json +++ /dev/null @@ -1,33329 +0,0 @@ -{ - "latestVersions": { - "qiskit": "1.2", - "qiskit-ibm-runtime": "0.31", - "qiskit-ibm-transpiler": "0.7" - }, - "customRedirectsToLatest": { - "qiskit": { - "0.43": { - "qiskit.pulse.library.Constant_class.rst": "/qiskit.pulse.library.Constant", - "qiskit.pulse.library.Cos_class.rst": "/qiskit.pulse.library.Cos", - "qiskit.pulse.library.Drag_class.rst": "/qiskit.pulse.library.Drag", - "qiskit.pulse.library.Gaussian_class.rst": "/qiskit.pulse.library.Gaussian", - "qiskit.pulse.library.Sawtooth_class.rst": "/qiskit.pulse.library.Sawtooth", - "qiskit.pulse.library.Sin_class.rst": "/qiskit.pulse.library.Sin", - "qiskit.pulse.library.Triangle_class.rst": "/qiskit.pulse.library.Triangle" - }, - "0.44": { - "qiskit.pulse.library.Constant_class.rst": "/qiskit.pulse.library.Constant", - "qiskit.pulse.library.Cos_class.rst": "/qiskit.pulse.library.Cos", - "qiskit.pulse.library.Drag_class.rst": "/qiskit.pulse.library.Drag", - "qiskit.pulse.library.Gaussian_class.rst": "/qiskit.pulse.library.Gaussian", - "qiskit.pulse.library.Sawtooth_class.rst": "/qiskit.pulse.library.Sawtooth", - "qiskit.pulse.library.Sech_fun.rst": "/qiskit.pulse.library.Sech", - "qiskit.pulse.library.Sin_class.rst": "/qiskit.pulse.library.Sin", - "qiskit.pulse.library.Square_fun.rst": "/qiskit.pulse.library.Square", - "qiskit.pulse.library.Triangle_class.rst": "/qiskit.pulse.library.Triangle" - }, - "0.45": { - "qiskit.pulse.library.Constant_class.rst": "/qiskit.pulse.library.Constant", - "qiskit.pulse.library.Cos_class.rst": "/qiskit.pulse.library.Cos", - "qiskit.pulse.library.Drag_class.rst": "/qiskit.pulse.library.Drag", - "qiskit.pulse.library.Gaussian_class.rst": "/qiskit.pulse.library.Gaussian", - "qiskit.pulse.library.Sawtooth_class.rst": "/qiskit.pulse.library.Sawtooth", - "qiskit.pulse.library.Sech_fun.rst": "/qiskit.pulse.library.Sech", - "qiskit.pulse.library.Sin_class.rst": "/qiskit.pulse.library.Sin", - "qiskit.pulse.library.Square_fun.rst": "/qiskit.pulse.library.Square", - "qiskit.pulse.library.Triangle_class.rst": "/qiskit.pulse.library.Triangle" - }, - "0.46": { - "qiskit.pulse.library.Constant_class.rst": "/qiskit.pulse.library.Constant", - "qiskit.pulse.library.Cos_class.rst": "/qiskit.pulse.library.Cos", - "qiskit.pulse.library.Drag_class.rst": "/qiskit.pulse.library.Drag", - "qiskit.pulse.library.Gaussian_class.rst": "/qiskit.pulse.library.Gaussian", - "qiskit.pulse.library.Sawtooth_class.rst": "/qiskit.pulse.library.Sawtooth", - "qiskit.pulse.library.Sech_fun.rst": "/qiskit.pulse.library.Sech", - "qiskit.pulse.library.Sin_class.rst": "/qiskit.pulse.library.Sin", - "qiskit.pulse.library.Square_fun.rst": "/qiskit.pulse.library.Square", - "qiskit.pulse.library.Triangle_class.rst": "/qiskit.pulse.library.Triangle" - }, - "1.0": { - "qiskit.pulse.library.Constant_class.rst": "/qiskit.pulse.library.Constant", - "qiskit.pulse.library.Cos_class.rst": "/qiskit.pulse.library.Cos", - "qiskit.pulse.library.Drag_class.rst": "/qiskit.pulse.library.Drag", - "qiskit.pulse.library.Gaussian_class.rst": "/qiskit.pulse.library.Gaussian", - "qiskit.pulse.library.Sawtooth_class.rst": "/qiskit.pulse.library.Sawtooth", - "qiskit.pulse.library.Sech_fun.rst": "/qiskit.pulse.library.Sech", - "qiskit.pulse.library.Sin_class.rst": "/qiskit.pulse.library.Sin", - "qiskit.pulse.library.Square_fun.rst": "/qiskit.pulse.library.Square", - "qiskit.pulse.library.Triangle_class.rst": "/qiskit.pulse.library.Triangle" - }, - "1.1": { - "qiskit.pulse.library.Constant_class.rst": "/qiskit.pulse.library.Constant", - "qiskit.pulse.library.Cos_class.rst": "/qiskit.pulse.library.Cos", - "qiskit.pulse.library.Drag_class.rst": "/qiskit.pulse.library.Drag", - "qiskit.pulse.library.Gaussian_class.rst": "/qiskit.pulse.library.Gaussian", - "qiskit.pulse.library.Sawtooth_class.rst": "/qiskit.pulse.library.Sawtooth", - "qiskit.pulse.library.Sech_fun.rst": "/qiskit.pulse.library.Sech", - "qiskit.pulse.library.Sin_class.rst": "/qiskit.pulse.library.Sin", - "qiskit.pulse.library.Square_fun.rst": "/qiskit.pulse.library.Square", - "qiskit.pulse.library.Triangle_class.rst": "/qiskit.pulse.library.Triangle" - } - }, - "qiskit-ibm-runtime": {}, - "qiskit-ibm-transpiler": { - "0.3": { - "qiskit_transpiler_service.ai.AICliffordSynthesis": "/qiskit_ibm_transpiler.ai.AICliffordSynthesis", - "qiskit_transpiler_service.ai.AILinearFunctionSynthesis": "/qiskit_ibm_transpiler.ai.AILinearFunctionSynthesis", - "qiskit_transpiler_service.ai.AIPermutationSynthesis": "/qiskit_ibm_transpiler.ai.AIPermutationSynthesis", - "qiskit_transpiler_service.ai.AIRouting": "/qiskit_ibm_transpiler.ai.AIRouting", - "qiskit_transpiler_service.ai.CollectCliffords": "/qiskit_ibm_transpiler.ai.CollectCliffords", - "qiskit_transpiler_service.ai.CollectLinearFunctions": "/qiskit_ibm_transpiler.ai.CollectLinearFunctions", - "qiskit_transpiler_service.ai.CollectPermutations": "/qiskit_ibm_transpiler.ai.CollectPermutations", - "qiskit_transpiler_service.transpiler_service.TranspilerService": "/qiskit_ibm_transpiler.transpiler_service.TranspilerService" - }, - "0.4": { - "qiskit_transpiler_service.ai.AICliffordSynthesis": "/qiskit_ibm_transpiler.ai.AICliffordSynthesis", - "qiskit_transpiler_service.ai.AILinearFunctionSynthesis": "/qiskit_ibm_transpiler.ai.AILinearFunctionSynthesis", - "qiskit_transpiler_service.ai.AIPermutationSynthesis": "/qiskit_ibm_transpiler.ai.AIPermutationSynthesis", - "qiskit_transpiler_service.ai.AIRouting": "/qiskit_ibm_transpiler.ai.AIRouting", - "qiskit_transpiler_service.ai.CollectCliffords": "/qiskit_ibm_transpiler.ai.CollectCliffords", - "qiskit_transpiler_service.ai.CollectLinearFunctions": "/qiskit_ibm_transpiler.ai.CollectLinearFunctions", - "qiskit_transpiler_service.ai.CollectPermutations": "/qiskit_ibm_transpiler.ai.CollectPermutations", - "qiskit_transpiler_service.transpiler_service.TranspilerService": "/qiskit_ibm_transpiler.transpiler_service.TranspilerService" - } - } - }, - "missing": { - "qiskit": { - "aer": ["0.43", "0.44", "0.45", "0.46", "1.0", "1.1", "1.2", "1.3"], - "aer_extensions": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "aer_jobs": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "aer_library": [ - "0.19", - "0.24", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "aer_noise": ["0.43", "0.44", "0.45", "0.46", "1.0", "1.1", "1.2", "1.3"], - "aer_primitives": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "aer_provider": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "aer_pulse": ["0.43", "0.44", "0.45", "0.46", "1.0", "1.1", "1.2", "1.3"], - "aer_quantum_info": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "aer_utils": ["0.43", "0.44", "0.45", "0.46", "1.0", "1.1", "1.2", "1.3"], - "algorithms": ["0.19", "0.24", "1.0", "1.1", "1.2", "1.3"], - "aqua": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "characterization": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "circuit_classical": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43" - ], - "circuit_singleton": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "classicalfunction": ["0.19"], - "exceptions": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43" - ], - "execute": ["1.0", "1.1", "1.2", "1.3"], - "extensions": ["1.0", "1.1", "1.2", "1.3"], - "ibmq-provider": [ - "0.19", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "ibmq_credentials": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "ibmq_experiment": [ - "0.19", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "ibmq_job": ["0.43", "0.44", "0.45", "0.46", "1.0", "1.1", "1.2", "1.3"], - "ibmq_jupyter": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "ibmq_managed": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "ibmq_provider": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "ibmq_random": [ - "0.19", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "ibmq_runtime": [ - "0.19", - "0.24", - "0.25", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "ibmq_utils": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "ibmq_visualization": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "ignis": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "logging": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "measurement": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "mitigation": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "opflow": ["0.19", "0.24", "1.0", "1.1", "1.2", "1.3"], - "parallel": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "passmanager": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "primitives": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33" - ], - "providers_basic_provider": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45" - ], - "providers_basicaer": ["1.0", "1.1", "1.2", "1.3"], - "providers_fake_provider": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36" - ], - "qasm": ["1.0", "1.1", "1.2", "1.3"], - "qasm2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42" - ], - "qasm3": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33" - ], - "qiskit.algorithms.AlgorithmError": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.AlgorithmJob": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.AmplificationProblem": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.AmplitudeAmplifier": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.AmplitudeEstimation": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.AmplitudeEstimationResult": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.AmplitudeEstimator": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.AmplitudeEstimatorResult": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.Eigensolver": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.EigensolverResult": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.EstimationProblem": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.EvolutionProblem": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.EvolutionResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.FasterAmplitudeEstimation": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.FasterAmplitudeEstimationResult": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.Grover": ["0.19", "0.24", "1.0", "1.1", "1.2", "1.3"], - "qiskit.algorithms.GroverResult": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.HHL": [ - "0.19", - "0.24", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.HamiltonianPhaseEstimation": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.HamiltonianPhaseEstimationResult": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.ImaginaryEvolver": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.ImaginaryTimeEvolver": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.IterativeAmplitudeEstimation": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.IterativeAmplitudeEstimationResult": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.IterativePhaseEstimation": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.LinearSolver": [ - "0.19", - "0.24", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.LinearSolverResult": [ - "0.19", - "0.24", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.MaximumLikelihoodAmplitudeEstimation": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.MaximumLikelihoodAmplitudeEstimationResult": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.MinimumEigensolver": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.MinimumEigensolverResult": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.NumPyEigensolver": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.NumPyLinearSolver": [ - "0.19", - "0.24", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.NumPyMinimumEigensolver": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.PVQD": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.PVQDResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.PhaseEstimation": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.PhaseEstimationResult": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.PhaseEstimationScale": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.QAOA": ["0.19", "0.24", "1.0", "1.1", "1.2", "1.3"], - "qiskit.algorithms.RealEvolver": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.RealTimeEvolver": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.SciPyImaginaryEvolver": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.SciPyRealEvolver": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.Shor": [ - "0.19", - "0.24", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.ShorResult": [ - "0.19", - "0.24", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.TimeEvolutionProblem": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.TimeEvolutionResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.TrotterQRTE": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.VQD": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.VQDResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.VQE": ["0.19", "0.24", "1.0", "1.1", "1.2", "1.3"], - "qiskit.algorithms.VarQITE": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.VarQRTE": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.eigensolvers": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.eigensolvers.Eigensolver": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.eigensolvers.EigensolverResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.eigensolvers.NumPyEigensolver": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.eigensolvers.NumPyEigensolverResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.eigensolvers.VQD": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.eigensolvers.VQDResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.estimate_observables": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.eval_observables": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.gradients": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.gradients.BaseEstimatorGradient": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.gradients.BaseQGT": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.gradients.BaseSamplerGradient": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.gradients.DerivativeType": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.gradients.EstimatorGradientResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.gradients.FiniteDiffEstimatorGradient": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.gradients.FiniteDiffSamplerGradient": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.gradients.LinCombEstimatorGradient": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.gradients.LinCombQGT": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.gradients.LinCombSamplerGradient": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.gradients.ParamShiftEstimatorGradient": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.gradients.ParamShiftSamplerGradient": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.gradients.QFI": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.gradients.QFIResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.gradients.QGTResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.gradients.ReverseEstimatorGradient": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.gradients.ReverseQGT": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.gradients.SPSAEstimatorGradient": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.gradients.SPSASamplerGradient": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.gradients.SamplerGradientResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.linear_solvers": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.linear_solvers.AbsoluteAverage": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.linear_solvers.HHL": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.linear_solvers.LinearSolver": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.linear_solvers.LinearSolverResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.linear_solvers.LinearSystemMatrix": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.linear_solvers.LinearSystemObservable": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.linear_solvers.MatrixFunctional": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.linear_solvers.NumPyLinearSolver": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.linear_solvers.NumPyMatrix": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.linear_solvers.TridiagonalToeplitz": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.minimum_eigensolvers": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.minimum_eigensolvers.AdaptVQE": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.minimum_eigensolvers.AdaptVQEResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.minimum_eigensolvers.MinimumEigensolver": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.minimum_eigensolvers.MinimumEigensolverResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.minimum_eigensolvers.NumPyMinimumEigensolver": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.minimum_eigensolvers.NumPyMinimumEigensolverResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.minimum_eigensolvers.QAOA": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.minimum_eigensolvers.SamplingMinimumEigensolver": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.minimum_eigensolvers.SamplingMinimumEigensolverResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.minimum_eigensolvers.SamplingVQE": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.minimum_eigensolvers.SamplingVQEResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.minimum_eigensolvers.VQE": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.minimum_eigensolvers.VQEResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.ADAM": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.AQGD": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.AskData": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.BOBYQA": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.CG": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.COBYLA": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.CRS": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.DIRECT_L": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.DIRECT_L_RAND": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.ESCH": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.GSLS": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.GradientDescent": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.GradientDescentState": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.IMFIL": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.ISRES": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.L_BFGS_B": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.Minimizer": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.NELDER_MEAD": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.NFT": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.Optimizer": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.OptimizerResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.OptimizerState": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.OptimizerSupportLevel": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.POWELL": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.P_BFGS": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.QNSPSA": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.SLSQP": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.SNOBFIT": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.SPSA": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.SciPyOptimizer": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.SteppableOptimizer": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.TNC": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.TellData": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.UMDA": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.nlopts": [ - "0.19", - "0.24", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.optimizer_utils": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.optimizers.optimizer_utils.LearningRate": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.state_fidelities": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.state_fidelities.BaseStateFidelity": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.state_fidelities.ComputeUncompute": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.state_fidelities.StateFidelityResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.time_evolvers.trotterization": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.time_evolvers.trotterization.TrotterQRTE": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.time_evolvers.variational": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.time_evolvers.variational.ForwardEulerSolver": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.time_evolvers.variational.ImaginaryMcLachlanPrinciple": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.time_evolvers.variational.ImaginaryVariationalPrinciple": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.time_evolvers.variational.RealMcLachlanPrinciple": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.time_evolvers.variational.RealVariationalPrinciple": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.algorithms.time_evolvers.variational.VariationalPrinciple": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.AquaError": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.MissingOptionalLibraryError": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.QuantumInstance": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.AmplitudeEstimation": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.AmplitudeEstimationAlgorithmResult": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.AmplitudeEstimationResult": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.BernsteinVazirani": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.ClassicalAlgorithm": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.ClassicalCPLEX": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.DeutschJozsa": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.EOH": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.Eigensolver": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.EigensolverResult": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.Grover": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.GroverResult": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.HHL": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.HHLResult": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.IQPE": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.IterativeAmplitudeEstimation": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.IterativeAmplitudeEstimationResult": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.LinearsolverResult": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.MaximumLikelihoodAmplitudeEstimation": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.MaximumLikelihoodAmplitudeEstimationResult": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.MinimumEigensolver": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.MinimumEigensolverResult": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.NumPyEigensolver": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.NumPyLSsolver": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.NumPyLSsolverResult": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.NumPyMinimumEigensolver": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.QAOA": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.QGAN": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.QPE": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.QSVM": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.QuantumAlgorithm": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.Shor": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.Simon": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.SklearnSVM": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.VQC": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.VQE": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.algorithms.minimum_eigen_solvers.cplex": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.aqua_globals": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.circuits": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.circuits.CNF": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.circuits.DNF": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.circuits.ESOP": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.circuits.FixedValueComparator": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.circuits.FourierTransformCircuits": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.circuits.LinearRotation": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.circuits.PhaseEstimationCircuit": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.circuits.PiecewiseLinearRotation": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.circuits.PolynomialRotation": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.circuits.StateVectorCircuit": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.circuits.WeightedSumOperator": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.eigs": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.eigs.Eigenvalues": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.eigs.EigsQPE": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.feature_maps": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.feature_maps.FeatureMap": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.feature_maps.FirstOrderExpansion": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.feature_maps.PauliExpansion": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.feature_maps.PauliZExpansion": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.feature_maps.RawFeatureVector": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.feature_maps.SecondOrderExpansion": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.feature_maps.self_product": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.initial_states": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.initial_states.Custom": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.initial_states.InitialState": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.initial_states.VarFormBased": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.initial_states.Zero": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.iqfts": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.iqfts.Approximate": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.iqfts.IQFT": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.iqfts.Standard": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.multiclass_extensions": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.multiclass_extensions.AllPairs": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.multiclass_extensions.ErrorCorrectingCode": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.multiclass_extensions.MulticlassExtension": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.multiclass_extensions.OneAgainstRest": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.neural_networks": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.neural_networks.DiscriminativeNetwork": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.neural_networks.GenerativeNetwork": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.neural_networks.NumPyDiscriminator": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.neural_networks.PyTorchDiscriminator": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.neural_networks.QuantumGenerator": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers.ADAM": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers.AQGD": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers.BOBYQA": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers.CG": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers.COBYLA": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers.CRS": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers.DIRECT_L": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers.DIRECT_L_RAND": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers.ESCH": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers.GSLS": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers.IMFIL": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers.ISRES": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers.L_BFGS_B": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers.NELDER_MEAD": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers.NFT": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers.Optimizer": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers.OptimizerSupportLevel": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers.POWELL": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers.P_BFGS": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers.SLSQP": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers.SNOBFIT": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers.SPSA": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers.TNC": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.optimizers.nlopts": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.oracles": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.oracles.CustomCircuitOracle": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.oracles.LogicalExpressionOracle": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.oracles.Oracle": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.oracles.TruthTableOracle": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.qfts": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.qfts.Approximate": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.qfts.QFT": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.qfts.Standard": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.reciprocals": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.reciprocals.LongDivision": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.reciprocals.LookupRotation": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.reciprocals.Reciprocal": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.uncertainty_models": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.uncertainty_models.BernoulliDistribution": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.uncertainty_models.GaussianConditionalIndependenceModel": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.uncertainty_models.LogNormalDistribution": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.uncertainty_models.MultivariateDistribution": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.uncertainty_models.MultivariateLogNormalDistribution": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.uncertainty_models.MultivariateNormalDistribution": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.uncertainty_models.MultivariateUniformDistribution": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.uncertainty_models.MultivariateVariationalDistribution": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.uncertainty_models.NormalDistribution": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.uncertainty_models.UncertaintyModel": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.uncertainty_models.UniformDistribution": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.uncertainty_models.UnivariateDistribution": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.uncertainty_models.UnivariateVariationalDistribution": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.uncertainty_problems": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.uncertainty_problems.MultivariateProblem": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.uncertainty_problems.UncertaintyProblem": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.uncertainty_problems.UnivariatePiecewiseLinearObjective": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.uncertainty_problems.UnivariateProblem": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.variational_forms": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.variational_forms.RY": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.variational_forms.RYRZ": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.variational_forms.SwapRZ": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.components.variational_forms.VariationalForm": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.OperatorBase": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.converters": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.converters.AbelianGrouper": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.converters.CircuitSampler": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.converters.ConverterBase": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.converters.DictToCircuitSum": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.converters.PauliBasisChange": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.evolutions": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.evolutions.EvolutionBase": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.evolutions.EvolutionFactory": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.evolutions.EvolvedOp": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.evolutions.MatrixEvolution": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.evolutions.PauliTrotterEvolution": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.evolutions.QDrift": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.evolutions.Suzuki": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.evolutions.Trotter": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.evolutions.TrotterizationBase": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.evolutions.TrotterizationFactory": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.expectations": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.expectations.AerPauliExpectation": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.expectations.CVaRExpectation": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.expectations.ExpectationBase": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.expectations.ExpectationFactory": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.expectations.MatrixExpectation": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.expectations.PauliExpectation": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.gradients": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.gradients.CircuitGradient": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.gradients.CircuitQFI": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.gradients.DerivativeBase": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.gradients.Gradient": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.gradients.GradientBase": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.gradients.Hessian": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.gradients.HessianBase": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.gradients.NaturalGradient": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.gradients.QFI": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.gradients.QFIBase": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.legacy": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.legacy.LegacyBaseOperator": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.legacy.MatrixOperator": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.legacy.PauliGraph": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.legacy.TPBGroupedWeightedPauliOperator": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.legacy.WeightedPauliOperator": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.legacy.Z2Symmetries": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.legacy.check_commutativity": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.legacy.commutator": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.legacy.covariance": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.legacy.evolution_instruction": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.legacy.kernel_F2": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.legacy.measure_pauli_z": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.legacy.pauli_measurement": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.legacy.row_echelon_F2": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.legacy.suzuki_expansion_slice_pauli_list": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.list_ops": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.list_ops.ComposedOp": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.list_ops.ListOp": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.list_ops.SummedOp": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.list_ops.TensoredOp": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.primitive_ops": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.primitive_ops.CircuitOp": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.primitive_ops.MatrixOp": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.primitive_ops.PauliOp": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.primitive_ops.PrimitiveOp": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.state_fns": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.state_fns.CVaRMeasurement": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.state_fns.CircuitStateFn": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.state_fns.DictStateFn": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.state_fns.OperatorStateFn": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.state_fns.StateFn": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.operators.state_fns.VectorStateFn": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.utils": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.utils.CircuitFactory": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.utils.decimal_to_binary": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.utils.get_entangler_map": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.utils.get_feature_dimension": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.utils.get_num_classes": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.utils.get_subsystem_density_matrix": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.utils.get_subsystems_counts": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.utils.has_aer": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.utils.has_ibmq": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.utils.map_label_to_class_name": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.utils.name_args": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.utils.optimize_svm": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.utils.random_h1_body": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.utils.random_h2_body": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.utils.random_hermitian": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.utils.random_non_hermitian": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.utils.random_unitary": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.utils.reduce_dim_to_via_pca": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.utils.split_dataset_to_data_and_labels": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.utils.summarize_circuits": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.utils.tensorproduct": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.aqua.utils.validate_entangler_map": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.assembler.assemble_circuits": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.assembler.assemble_schedules": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.assembler.disassemble": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.BosonicOperator": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.FermionicOperator": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.MP2Info": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.QMolecule": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.QiskitChemistryError": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.WatsonHamiltonian": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.AdaptVQE": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.BOPESSampler": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.EigensolverFactory": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.ExcitedStatesEigensolver": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.ExcitedStatesSolver": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.GroundStateEigensolver": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.GroundStateSolver": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.MinimumEigensolverFactory": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.NumPyEigensolverFactory": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.NumPyMinimumEigensolverFactory": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.OrbitalOptimizationVQE": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.QEOM": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.QEomEE": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.QEomVQE": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.VQEAdapt": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.VQEUCCSDFactory": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.VQEUVCCSDFactory": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.pes_samplers": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.pes_samplers.BOPESSampler": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.pes_samplers.DifferentialExtrapolator": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.pes_samplers.EnergySurface1DSpline": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.pes_samplers.EnergySurfaceBase": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.pes_samplers.Extrapolator": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.pes_samplers.HarmonicPotential": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.pes_samplers.MorsePotential": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.pes_samplers.PCAExtrapolator": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.pes_samplers.PolynomialExtrapolator": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.pes_samplers.PotentialBase": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.pes_samplers.SieveExtrapolator": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.pes_samplers.VibronicStructureBase": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.algorithms.pes_samplers.WindowExtrapolator": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.applications": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.applications.MolecularGroundStateEnergy": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.components": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.components.bosonic_bases": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.components.bosonic_bases.BosonicBasis": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.components.bosonic_bases.HarmonicBasis": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.components.initial_states": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.components.initial_states.HartreeFock": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.components.initial_states.VSCF": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.components.variational_forms": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.components.variational_forms.CHC": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.components.variational_forms.UCCSD": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.components.variational_forms.UVCC": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.core": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.core.ChemistryOperator": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.core.Hamiltonian": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.core.MolecularChemistryResult": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.core.MolecularExcitedStatesResult": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.core.MolecularGroundStateResult": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.core.QubitMappingType": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.core.TransformationType": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.drivers": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.drivers.BaseDriver": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.drivers.BasisType": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.drivers.BosonicDriver": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.drivers.FCIDumpDriver": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.drivers.FermionicDriver": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.drivers.GaussianDriver": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.drivers.GaussianForcesDriver": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.drivers.GaussianLogDriver": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.drivers.GaussianLogResult": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.drivers.HDF5Driver": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.drivers.HFMethodType": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.drivers.InitialGuess": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.drivers.Molecule": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.drivers.PSI4Driver": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.drivers.PyQuanteDriver": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.drivers.PySCFDriver": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.drivers.UnitsType": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.drivers.gaussiand": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.drivers.psi4d": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.drivers.pyquanted": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.drivers.pyscfd": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.results": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.results.BOPESSamplerResult": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.results.EigenstateResult": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.results.ElectronicStructureResult": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.results.VibronicStructureResult": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.transformations": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.transformations.BosonicQubitMappingType": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.transformations.BosonicTransformation": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.transformations.BosonicTransformationType": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.transformations.FermionicQubitMappingType": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.transformations.FermionicTransformation": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.transformations.FermionicTransformationType": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.chemistry.transformations.Transformation": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.AncillaQubit": ["0.19", "1.1", "1.2", "1.3"], - "qiskit.circuit.AncillaRegister": ["0.19", "1.1", "1.2", "1.3"], - "qiskit.circuit.AnnotatedOperation": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.circuit.Barrier": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.Bit": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.BreakLoopOp": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.circuit.CircuitInstruction": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36" - ], - "qiskit.circuit.ClassicalRegister": ["1.1", "1.2", "1.3"], - "qiskit.circuit.Clbit": ["1.1", "1.2", "1.3"], - "qiskit.circuit.CommutationChecker": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "1.1", - "1.2" - ], - "qiskit.circuit.ContinueLoopOp": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.circuit.ControlFlowOp": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.circuit.ControlModifier": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.Delay": ["0.19", "1.1", "1.2", "1.3"], - "qiskit.circuit.ForLoopOp": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.circuit.IfElseOp": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.circuit.InverseModifier": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.Measure": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.Operation": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38" - ], - "qiskit.circuit.PowerModifier": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.QuantumRegister": ["1.1", "1.2", "1.3"], - "qiskit.circuit.Qubit": ["1.1", "1.2", "1.3"], - "qiskit.circuit.Register": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.Reset": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.SwitchCaseOp": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42" - ], - "qiskit.circuit.WhileLoopOp": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.circuit.classicalfunction.BooleanExpression": ["0.19", "0.24"], - "qiskit.circuit.classicalfunction.ClassicalFunction": ["0.19"], - "qiskit.circuit.classicalfunction.ClassicalFunctionCompilerTypeError": [ - "0.19" - ], - "qiskit.circuit.classicalfunction.ClassicalFunctionParseError": ["0.19"], - "qiskit.circuit.library.Barrier": ["0.35", "0.36", "1.1", "1.2", "1.3"], - "qiskit.circuit.library.C3SXGate": ["0.19"], - "qiskit.circuit.library.CCZGate": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.40", - "0.41", - "0.42" - ], - "qiskit.circuit.library.CDKMRippleCarryAdder": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27" - ], - "qiskit.circuit.library.CPhaseGate": ["0.19"], - "qiskit.circuit.library.CSGate": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.40", - "0.41", - "0.42" - ], - "qiskit.circuit.library.CSXGate": ["0.19"], - "qiskit.circuit.library.CSdgGate": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.40", - "0.41", - "0.42" - ], - "qiskit.circuit.library.CUGate": ["0.19"], - "qiskit.circuit.library.DiagonalGate": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.circuit.library.DraperQFTAdder": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27" - ], - "qiskit.circuit.library.ECRGate": ["0.19", "0.24"], - "qiskit.circuit.library.EvolvedOperatorAnsatz": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27" - ], - "qiskit.circuit.library.ExactReciprocal": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.circuit.library.GR": ["0.19"], - "qiskit.circuit.library.GRX": ["0.19"], - "qiskit.circuit.library.GRY": ["0.19"], - "qiskit.circuit.library.GRZ": ["0.19"], - "qiskit.circuit.library.GlobalPhaseGate": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42" - ], - "qiskit.circuit.library.GroverOperator": ["0.19"], - "qiskit.circuit.library.HRSCumulativeMultiplier": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27" - ], - "qiskit.circuit.library.HamiltonianGate": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.circuit.library.Initialize": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.circuit.library.Isometry": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.circuit.library.LinearAmplitudeFunction": ["0.19"], - "qiskit.circuit.library.LinearFunction": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33" - ], - "qiskit.circuit.library.LogNormalDistribution": [ - "0.19", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.MCMTGate": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.circuit.library.MCPhaseGate": ["0.19"], - "qiskit.circuit.library.MCXGate": ["0.19"], - "qiskit.circuit.library.MCXGrayCode": ["0.19"], - "qiskit.circuit.library.MCXRecursive": ["0.19"], - "qiskit.circuit.library.MCXVChain": ["0.19"], - "qiskit.circuit.library.Measure": ["0.35", "0.36", "1.1", "1.2", "1.3"], - "qiskit.circuit.library.NormalDistribution": [ - "0.19", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.PauliEvolutionGate": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.circuit.library.PauliGate": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27" - ], - "qiskit.circuit.library.PauliTwoDesign": ["0.19", "0.24"], - "qiskit.circuit.library.PermutationGate": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39" - ], - "qiskit.circuit.library.PhaseEstimation": ["0.19"], - "qiskit.circuit.library.PhaseGate": ["0.19"], - "qiskit.circuit.library.PhaseOracle": ["0.19", "0.24"], - "qiskit.circuit.library.PiecewiseChebyshev": ["0.19", "0.24"], - "qiskit.circuit.library.PiecewisePolynomialPauliRotations": [ - "0.19", - "0.24" - ], - "qiskit.circuit.library.QAOAAnsatz": ["0.19", "0.24"], - "qiskit.circuit.library.QFTGate": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1" - ], - "qiskit.circuit.library.QuadraticForm": ["0.19"], - "qiskit.circuit.library.RGQFTMultiplier": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27" - ], - "qiskit.circuit.library.RGate": ["0.19", "0.24"], - "qiskit.circuit.library.RVGate": ["0.19", "0.24"], - "qiskit.circuit.library.Reset": ["0.35", "0.36", "1.1", "1.2", "1.3"], - "qiskit.circuit.library.SXGate": ["0.19"], - "qiskit.circuit.library.SXdgGate": ["0.19"], - "qiskit.circuit.library.StatePreparation": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33" - ], - "qiskit.circuit.library.UCGate": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.circuit.library.UCPauliRotGate": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.circuit.library.UCRXGate": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.circuit.library.UCRYGate": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.circuit.library.UCRZGate": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.circuit.library.UGate": ["0.19"], - "qiskit.circuit.library.UniformDistribution": [ - "0.19", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.UnitaryGate": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.circuit.library.UnitaryOverlap": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.circuit.library.VBERippleCarryAdder": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27" - ], - "qiskit.circuit.library.XXMinusYYGate": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33" - ], - "qiskit.circuit.library.XXPlusYYGate": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33" - ], - "qiskit.circuit.library.clifford_2_1": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.clifford_2_2": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.clifford_2_3": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.clifford_2_4": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.clifford_3_1": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.clifford_4_1": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.clifford_4_2": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.clifford_4_3": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.clifford_4_4": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.clifford_5_1": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.clifford_6_1": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.clifford_6_2": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.clifford_6_3": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.clifford_6_4": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.clifford_6_5": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.clifford_8_1": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.clifford_8_2": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.clifford_8_3": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.quantum_volume": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.circuit.library.rzx_cy": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.rzx_xz": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.rzx_yz": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.rzx_zz1": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.rzx_zz2": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.rzx_zz3": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_2a_1": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_2a_2": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_2a_3": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_4a_1": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_4a_2": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_4a_3": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_4b_1": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_4b_2": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_5a_1": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_5a_2": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_5a_3": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_5a_4": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_6a_1": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_6a_2": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_6a_3": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_6a_4": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_6b_1": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_6b_2": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_6c_1": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_7a_1": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_7b_1": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_7c_1": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_7d_1": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_7e_1": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_9a_1": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_9c_1": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_9c_10": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_9c_11": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_9c_12": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_9c_2": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_9c_3": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_9c_4": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_9c_5": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_9c_6": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_9c_7": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_9c_8": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_9c_9": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_9d_1": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_9d_10": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_9d_2": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_9d_3": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_9d_4": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_9d_5": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_9d_6": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_9d_7": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_9d_8": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.library.templates.nct.template_nct_9d_9": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.qpy_serialization.dump": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.qpy_serialization.load": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.circuit.random.random_circuit": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.compiler.assemble": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.compiler.schedule": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.compiler.sequence": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.compiler.transpile": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.converters.ast_to_dag": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.converters.circuit_to_dag": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.converters.circuit_to_dagdependency": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.converters.circuit_to_gate": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.converters.circuit_to_instruction": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.converters.dag_to_circuit": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.converters.dag_to_dagdependency": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.converters.dagdependency_to_circuit": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.converters.dagdependency_to_dag": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.dagcircuit.BlockCollapser": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.43", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.dagcircuit.BlockCollector": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.43", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.dagcircuit.BlockSplitter": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.dagcircuit.DAGCircuitError": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.dagcircuit.DAGDepNode": ["0.19"], - "qiskit.dagcircuit.DAGDependency": ["0.19"], - "qiskit.dagcircuit.DAGInNode": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.dagcircuit.DAGOpNode": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.dagcircuit.DAGOutNode": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.extensions.HamiltonianGate": [ - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.extensions.Initialize": [ - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.extensions.SingleQubitUnitary": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.extensions.Snapshot": ["1.0", "1.1", "1.2", "1.3"], - "qiskit.extensions.UCPauliRotGate": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.extensions.UCRXGate": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.extensions.UCRYGate": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.extensions.UCRZGate": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.extensions.UnitaryGate": [ - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.finance.QiskitFinanceError": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.finance.applications": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.finance.applications.ising": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.finance.applications.ising.portfolio": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.finance.applications.ising.portfolio_diversification": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.finance.components": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.finance.components.uncertainty_problems": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.finance.components.uncertainty_problems.EuropeanCallDelta": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.finance.components.uncertainty_problems.EuropeanCallExpectedValue": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.finance.components.uncertainty_problems.FixedIncomeExpectedValue": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.finance.data_providers": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.finance.data_providers.BaseDataProvider": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.finance.data_providers.DataOnDemandProvider": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.finance.data_providers.DataType": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.finance.data_providers.ExchangeDataProvider": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.finance.data_providers.RandomDataProvider": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.finance.data_providers.StockMarket": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.finance.data_providers.WikipediaDataProvider": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.finance.data_providers.YahooDataProvider": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.characterization.AmpCalCXFitter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.characterization.AmpCalFitter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.characterization.AngleCalCXFitter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.characterization.AngleCalFitter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.characterization.BaseCoherenceFitter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.characterization.BaseGateFitter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.characterization.DragFitter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.characterization.RabiFitter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.characterization.T1Fitter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.characterization.T2Fitter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.characterization.T2StarFitter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.characterization.ZZFitter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.characterization.ampcal_1Q_circuits": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.characterization.ampcal_cx_circuits": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.characterization.anglecal_1Q_circuits": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.characterization.anglecal_cx_circuits": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.characterization.drag_schedules": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.characterization.get_single_q_pulse": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.characterization.rabi_schedules": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.characterization.t1_circuits": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.characterization.t2_circuits": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.characterization.t2star_circuits": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.characterization.update_u_gates": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.characterization.zz_circuits": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.logging.IgnisLogReader": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.logging.IgnisLogger": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.logging.IgnisLogging": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.measurement.DiscriminationFilter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.measurement.IQDiscriminationFitter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.measurement.LinearIQDiscriminator": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.measurement.QuadraticIQDiscriminator": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.measurement.SklearnIQDiscriminator": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.mitigation.CTMPExpvalMeasMitigator": [ - "0.19", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.mitigation.CompleteExpvalMeasMitigator": [ - "0.19", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.mitigation.CompleteMeasFitter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.mitigation.ExpvalMeasMitigatorFitter": [ - "0.19", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.mitigation.MeasurementFilter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.mitigation.TensoredExpvalMeasMitigator": [ - "0.19", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.mitigation.TensoredFilter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.mitigation.TensoredMeasFitter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.mitigation.complete_meas_cal": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.mitigation.expectation_value": [ - "0.19", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.mitigation.expval_meas_mitigator_circuits": [ - "0.19", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.mitigation.tensored_meas_cal": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.AccreditationCircuits": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.AccreditationFitter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.BConfig": [ - "0.19", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.BasicUtils": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.CNOTDihedral": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.CNOTDihedralRBFitter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.Clifford": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.CliffordUtils": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.DihedralUtils": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.GatesetTomographyFitter": [ - "0.19", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.GraphDecoder": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.InterleavedRBFitter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.Plotter": [ - "0.19", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.ProcessTomographyFitter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.PurityRBFitter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.QOTP": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.QOTPCorrectCounts": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.QOTPCorrectString": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.QVFitter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.RBFitter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.RepetitionCode": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.StateTomographyFitter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.TomographyFitter": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.basis": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.calculate_1q_epc": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.calculate_1q_epg": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.calculate_2q_epc": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.calculate_2q_epg": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.coherence_limit": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.combine_counts": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.composite_pauli_z": [ - "0.19", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.composite_pauli_z_expvalue": [ - "0.19", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.count_gates": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.count_keys": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.expectation_counts": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.gates_per_clifford": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.gateset_tomography_circuits": [ - "0.19", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.get_ghz_mqc": [ - "0.19", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.get_ghz_mqc_para": [ - "0.19", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.get_ghz_po": [ - "0.19", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.get_ghz_po_para": [ - "0.19", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.get_ghz_simple": [ - "0.19", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.lookuptable_decoding": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.marginal_counts": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.ordered_list_generator": [ - "0.19", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.postselection_decoding": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.process_tomography_circuits": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.qv_circuits": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.randomized_benchmarking_seq": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.rho_to_fidelity": [ - "0.19", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.state_tomography_circuits": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ignis.verification.twoQ_clifford_error": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ml.circuit.library": [ - "0.19", - "0.24", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ml.circuit.library.RawFeatureVector": [ - "0.19", - "0.24", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ml.datasets": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ml.datasets.ad_hoc_data": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ml.datasets.breast_cancer": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ml.datasets.digits": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ml.datasets.gaussian": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ml.datasets.iris": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ml.datasets.sample_ad_hoc_data": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.ml.datasets.wine": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.OperatorBase": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.OpflowError": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.anti_commutator": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.commutator": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.converters": ["0.19", "0.24", "1.0", "1.1", "1.2", "1.3"], - "qiskit.opflow.converters.AbelianGrouper": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.converters.CircuitSampler": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.converters.ConverterBase": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.converters.DictToCircuitSum": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.converters.PauliBasisChange": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.converters.TwoQubitReduction": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.double_commutator": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.evolutions": ["0.19", "0.24", "1.0", "1.1", "1.2", "1.3"], - "qiskit.opflow.evolutions.EvolutionBase": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.evolutions.EvolutionFactory": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.evolutions.EvolvedOp": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.evolutions.MatrixEvolution": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.evolutions.PauliTrotterEvolution": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.evolutions.QDrift": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.evolutions.Suzuki": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.evolutions.Trotter": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.evolutions.TrotterizationBase": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.evolutions.TrotterizationFactory": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.expectations": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.expectations.AerPauliExpectation": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.expectations.CVaRExpectation": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.expectations.ExpectationBase": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.expectations.ExpectationFactory": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.expectations.MatrixExpectation": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.expectations.PauliExpectation": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.gradients": ["0.19", "0.24", "1.0", "1.1", "1.2", "1.3"], - "qiskit.opflow.gradients.CircuitGradient": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.gradients.CircuitQFI": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.gradients.DerivativeBase": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.gradients.Gradient": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.gradients.GradientBase": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.gradients.Hessian": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.gradients.HessianBase": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.gradients.NaturalGradient": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.gradients.QFI": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.gradients.QFIBase": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.list_ops": ["0.19", "0.24", "1.0", "1.1", "1.2", "1.3"], - "qiskit.opflow.list_ops.ComposedOp": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.list_ops.ListOp": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.list_ops.SummedOp": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.list_ops.TensoredOp": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.primitive_ops": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.primitive_ops.CircuitOp": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.primitive_ops.MatrixOp": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.primitive_ops.PauliOp": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.primitive_ops.PauliSumOp": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.primitive_ops.PrimitiveOp": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.primitive_ops.TaperedPauliSumOp": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.primitive_ops.Z2Symmetries": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.state_fns": ["0.19", "0.24", "1.0", "1.1", "1.2", "1.3"], - "qiskit.opflow.state_fns.CVaRMeasurement": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.state_fns.CircuitStateFn": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.state_fns.DictStateFn": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.state_fns.OperatorStateFn": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.state_fns.SparseVectorStateFn": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.state_fns.StateFn": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.opflow.state_fns.VectorStateFn": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.INFINITY": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.QiskitOptimizationError": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.QuadraticProgram": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.algorithms": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.algorithms.ADMMOptimizationResult": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.algorithms.ADMMOptimizer": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.algorithms.ADMMParameters": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.algorithms.ADMMState": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.algorithms.CobylaOptimizer": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.algorithms.CplexOptimizer": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.algorithms.GroverOptimizationResult": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.algorithms.GroverOptimizer": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.algorithms.IntermediateResult": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.algorithms.MinimumEigenOptimizationResult": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.algorithms.MinimumEigenOptimizer": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.algorithms.MultiStartOptimizer": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.algorithms.OptimizationAlgorithm": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.algorithms.OptimizationResult": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.algorithms.OptimizationResultStatus": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.algorithms.RecursiveMinimumEigenOptimizationResult": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.algorithms.RecursiveMinimumEigenOptimizer": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.algorithms.SlsqpOptimizationResult": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.algorithms.SlsqpOptimizer": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.algorithms.SolutionSample": [ - "0.19", - "0.24", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.applications": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.applications.ising": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.applications.ising.clique": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.applications.ising.common": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.applications.ising.docplex": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.applications.ising.exact_cover": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.applications.ising.graph_partition": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.applications.ising.knapsack": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.applications.ising.max_cut": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.applications.ising.partition": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.applications.ising.set_packing": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.applications.ising.stable_set": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.applications.ising.tsp": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.applications.ising.vehicle_routing": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.applications.ising.vertex_cover": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.converters": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.converters.InequalityToEquality": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.converters.IntegerToBinary": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.converters.IsingToQuadraticProgram": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.converters.LinearEqualityToPenalty": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.converters.QuadraticProgramConverter": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.converters.QuadraticProgramToIsing": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.converters.QuadraticProgramToNegativeValueOracle": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.converters.QuadraticProgramToQubo": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.problems": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.problems.Constraint": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.problems.LinearConstraint": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.problems.LinearExpression": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.problems.QuadraticConstraint": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.problems.QuadraticExpression": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.problems.QuadraticObjective": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.problems.QuadraticProgram": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.problems.QuadraticProgramElement": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.optimization.problems.Variable": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.passmanager.BaseController": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.passmanager.BasePassManager": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.passmanager.ConditionalController": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.passmanager.DoWhileController": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.passmanager.FlowController": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.passmanager.FlowControllerLinear": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.passmanager.GenericPass": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.passmanager.PassManagerState": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.passmanager.PropertySet": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.passmanager.WorkflowStatus": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.primitives.BackendEstimator": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38" - ], - "qiskit.primitives.BackendEstimatorV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0" - ], - "qiskit.primitives.BackendSampler": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38" - ], - "qiskit.primitives.BackendSamplerV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0" - ], - "qiskit.primitives.BaseEstimator": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33" - ], - "qiskit.primitives.BaseEstimatorV1": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.primitives.BaseEstimatorV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.primitives.BasePrimitiveJob": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.primitives.BaseSampler": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33" - ], - "qiskit.primitives.BaseSamplerV1": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.primitives.BaseSamplerV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.primitives.BitArray": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.primitives.DataBin": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.primitives.Estimator": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33" - ], - "qiskit.primitives.EstimatorResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33" - ], - "qiskit.primitives.PrimitiveJob": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.primitives.PrimitiveResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.primitives.PubResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.primitives.Sampler": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33" - ], - "qiskit.primitives.SamplerPubResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0" - ], - "qiskit.primitives.SamplerResult": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33" - ], - "qiskit.primitives.Shaped": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.2", - "1.3" - ], - "qiskit.primitives.StatevectorEstimator": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.primitives.StatevectorSampler": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.providers.Backend": ["0.19"], - "qiskit.providers.BackendPropertyError": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.BackendV1": ["0.19"], - "qiskit.providers.BackendV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.providers.BackendV2Converter": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38" - ], - "qiskit.providers.BaseBackend": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.BaseJob": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.BaseProvider": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.Job": ["0.19"], - "qiskit.providers.JobError": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.JobTimeoutError": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.JobV1": ["0.19"], - "qiskit.providers.Options": ["0.19"], - "qiskit.providers.Provider": ["0.19"], - "qiskit.providers.ProviderV1": ["0.19"], - "qiskit.providers.QiskitBackendNotFoundError": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.QubitProperties": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.providers.aer.AerError": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.AerJob": [ - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.AerProvider": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.AerSimulator": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.PulseSimulator": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.QasmSimulator": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.StatevectorSimulator": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.UnitarySimulator": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.extensions.Snapshot": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.extensions.SnapshotDensityMatrix": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.extensions.SnapshotExpectationValue": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.extensions.SnapshotProbabilities": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.extensions.SnapshotStabilizer": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.extensions.SnapshotStatevector": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.jobs.AerJob": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.jobs.AerJobSet": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.SaveAmplitudes": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.SaveAmplitudesSquared": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.SaveClifford": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.SaveDensityMatrix": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.SaveExpectationValue": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.SaveExpectationValueVariance": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.SaveMatrixProductState": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.SaveProbabilities": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.SaveProbabilitiesDict": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.SaveStabilizer": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.SaveState": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.SaveStatevector": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.SaveStatevectorDict": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.SaveSuperOp": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.SaveUnitary": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.SetDensityMatrix": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.SetMatrixProductState": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.SetStabilizer": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.SetStatevector": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.SetSuperOp": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.SetUnitary": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.save_amplitudes": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.save_amplitudes_squared": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.save_clifford": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.save_density_matrix": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.save_expectation_value": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.save_expectation_value_variance": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.save_matrix_product_state": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.save_probabilities": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.save_probabilities_dict": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.save_stabilizer": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.save_state": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.save_statevector": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.save_statevector_dict": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.save_superop": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.save_unitary": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.set_density_matrix": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.set_matrix_product_state": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.set_stabilizer": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.set_statevector": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.set_superop": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.library.set_unitary": [ - "0.19", - "0.24", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.noise.LocalNoisePass": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.noise.NoiseModel": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.noise.QuantumError": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.noise.ReadoutError": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.noise.RelaxationNoisePass": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.noise.amplitude_damping_error": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.noise.coherent_unitary_error": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.noise.depolarizing_error": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.noise.device.basic_device_gate_errors": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.noise.device.basic_device_readout_errors": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.noise.device.gate_error_values": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.noise.device.gate_length_values": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.noise.device.gate_param_values": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.noise.device.readout_error_values": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.noise.device.thermal_relaxation_values": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.noise.kraus_error": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.noise.mixed_unitary_error": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.noise.pauli_error": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.noise.phase_amplitude_damping_error": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.noise.phase_damping_error": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.noise.reset_error": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.noise.thermal_relaxation_error": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.pulse.PulseSystemModel": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.pulse.duffing_system_model": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.utils.NoiseTransformer": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.utils.approximate_noise_model": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.utils.approximate_quantum_error": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.utils.insert_noise": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.utils.remap_noise_model": [ - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.utils.transform_noise_model": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.utils.transpile_noise_model": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.aer.utils.transpile_quantum_error": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.basic_provider.BasicProvider": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45" - ], - "qiskit.providers.basic_provider.BasicProviderError": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45" - ], - "qiskit.providers.basic_provider.BasicProviderJob": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45" - ], - "qiskit.providers.basic_provider.BasicSimulator": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45" - ], - "qiskit.providers.basicaer.BasicAerError": ["1.0", "1.1", "1.2", "1.3"], - "qiskit.providers.basicaer.BasicAerJob": ["1.0", "1.1", "1.2", "1.3"], - "qiskit.providers.basicaer.BasicAerProvider": [ - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.basicaer.QasmSimulatorPy": ["1.0", "1.1", "1.2", "1.3"], - "qiskit.providers.basicaer.StatevectorSimulatorPy": [ - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.basicaer.UnitarySimulatorPy": [ - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.convert_to_target": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38" - ], - "qiskit.providers.fake_provider.ConfigurableFakeBackend": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.Fake127QPulseV1": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.providers.fake_provider.Fake1Q": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36" - ], - "qiskit.providers.fake_provider.Fake20QV1": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.providers.fake_provider.Fake27QPulseV1": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.providers.fake_provider.Fake5QV1": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.providers.fake_provider.Fake7QPulseV1": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.providers.fake_provider.FakeAlmaden": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeAlmadenV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeArmonk": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeArmonkV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeAthens": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeAthensV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeAuckland": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeBackend5QV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeBackendV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeBelem": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeBelemV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeBoeblingen": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeBoeblingenV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeBogota": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeBogotaV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeBrooklyn": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeBrooklynV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeBurlington": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeBurlingtonV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeCairo": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeCairoV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeCambridge": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeCambridgeV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeCasablanca": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeCasablancaV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeEssex": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeEssexV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeGeneva": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeGuadalupe": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeGuadalupeV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeHanoi": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeHanoiV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeJakarta": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeJakartaV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeJohannesburg": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeJohannesburgV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeKolkata": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeKolkataV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeLagos": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeLagosV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeLima": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeLimaV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeLondon": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeLondonV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeManhattan": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeManhattanV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeManila": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeManilaV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeMelbourne": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeMelbourneV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeMontreal": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeMontrealV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeMumbai": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeMumbaiFractionalCX": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeMumbaiV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeNairobi": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeNairobiV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeOpenPulse2Q": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36" - ], - "qiskit.providers.fake_provider.FakeOpenPulse3Q": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36" - ], - "qiskit.providers.fake_provider.FakeOslo": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeOurense": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeOurenseV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeParis": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeParisV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakePerth": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakePoughkeepsie": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakePoughkeepsieV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakePrague": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeProvider": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeProviderForBackendV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeQasmSimulator": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeQuito": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeQuitoV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeRochester": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeRochesterV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeRome": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeRomeV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeRueschlikon": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeSantiago": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeSantiagoV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeSherbrooke": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeSingapore": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeSingaporeV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeSydney": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeSydneyV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeTenerife": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeTokyo": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeToronto": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeTorontoV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeValencia": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeValenciaV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeVigo": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeVigoV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeWashington": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeWashingtonV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeYorktown": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.FakeYorktownV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.fake_provider.GenericBackendV2": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45" - ], - "qiskit.providers.ibmq.AccountProvider": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.BackendJobLimit": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.IBMQAccountCredentialsInvalidFormat": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.IBMQAccountCredentialsInvalidToken": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.IBMQAccountCredentialsInvalidUrl": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.IBMQAccountCredentialsNotFound": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.IBMQAccountError": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.IBMQAccountMultipleCredentialsFound": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.IBMQBackend": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.IBMQBackendApiError": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.IBMQBackendApiProtocolError": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.IBMQBackendError": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.IBMQBackendService": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.IBMQBackendValueError": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.IBMQError": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.IBMQFactory": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.IBMQProviderError": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.RunnerResult": [ - "0.19", - "0.24", - "0.25", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.credentials.Credentials": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.credentials.CredentialsError": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.credentials.CredentialsNotFoundError": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.credentials.InvalidCredentialsFormatError": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.experiment.AnalysisResult": [ - "0.19", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.experiment.DeviceComponent": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.experiment.Experiment": [ - "0.19", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.experiment.ExperimentService": [ - "0.19", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.experiment.IBMExperimentEntryExists": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.experiment.IBMExperimentEntryNotFound": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.experiment.IBMExperimentError": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.experiment.IBMExperimentService": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.experiment.ResultQuality": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.job.IBMQJob": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.job.IBMQJobApiError": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.job.IBMQJobError": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.job.IBMQJobFailureError": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.job.IBMQJobInvalidStateError": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.job.IBMQJobTimeoutError": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.job.QueueInfo": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.job.job_monitor": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.least_busy": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.managed.IBMQJobManager": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.managed.IBMQJobManagerError": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.managed.IBMQJobManagerInvalidStateError": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.managed.IBMQJobManagerJobNotFound": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.managed.IBMQJobManagerTimeoutError": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.managed.IBMQJobManagerUnknownJobSet": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.managed.IBMQManagedResultDataNotAvailable": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.managed.ManagedJob": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.managed.ManagedJobSet": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.managed.ManagedResults": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.random.CQCExtractor": [ - "0.19", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.random.CQCExtractorJob": [ - "0.19", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.random.IBMQRandomService": [ - "0.19", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.runtime.IBMRuntimeService": [ - "0.19", - "0.24", - "0.25", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.runtime.ParameterNamespace": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.runtime.ProgramBackend": [ - "0.19", - "0.24", - "0.25", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.runtime.ResultDecoder": [ - "0.19", - "0.24", - "0.25", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.runtime.RuntimeDecoder": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.runtime.RuntimeEncoder": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.runtime.RuntimeJob": [ - "0.19", - "0.24", - "0.25", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.runtime.RuntimeOptions": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.runtime.RuntimeProgram": [ - "0.19", - "0.24", - "0.25", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.runtime.UserMessenger": [ - "0.19", - "0.24", - "0.25", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.utils.seconds_to_duration": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.utils.to_python_identifier": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.utils.update_qobj_config": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.utils.utc_to_local": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.ibmq.utils.validate_job_tags": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.providers.models.GateProperties": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.providers.models.Nduv": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.pulse.Acquire": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.AcquireChannel": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.Call": [ - "0.19", - "0.24", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.Constant": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.ControlChannel": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.Delay": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.Drag": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.DriveChannel": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.Gaussian": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.GaussianSquare": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.Instruction": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.MeasureChannel": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.MemorySlot": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.Play": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.PulseError": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.RegisterSlot": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.SamplePulse": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.ScheduleBlock": ["0.19", "0.24"], - "qiskit.pulse.SetFrequency": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.SetPhase": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.ShiftFrequency": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.ShiftPhase": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.Snapshot": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.Waveform": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.acquire": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.acquire_channel": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.active_backend": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.active_circuit_scheduler_settings": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.active_transpiler_settings": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.align_equispaced": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.align_func": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.align_left": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.align_right": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.align_sequential": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.barrier": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.build": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.call": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.circuit_scheduler_settings": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.control_channels": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.cx": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.delay": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.delay_qubits": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.drive_channel": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.frequency_offset": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.inline": [ - "0.19", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.measure": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.measure_all": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.measure_channel": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.num_qubits": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.pad": [ - "0.19", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.phase_offset": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.play": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.qubit_channels": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.reference": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.samples_to_seconds": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.seconds_to_samples": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.set_frequency": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.set_phase": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.shift_frequency": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.shift_phase": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.snapshot": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.transpiler_settings": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.u1": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.u2": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.u3": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.builder.x": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.channels": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.channels.AcquireChannel": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.pulse.channels.ControlChannel": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.pulse.channels.DriveChannel": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.pulse.channels.MeasureChannel": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.pulse.channels.MemorySlot": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.pulse.channels.RegisterSlot": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.pulse.channels.SnapshotChannel": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.pulse.instructions": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.instructions.Call": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.instructions.Instruction": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.instructions.Reference": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38" - ], - "qiskit.pulse.instructions.RelativeBarrier": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39" - ], - "qiskit.pulse.instructions.SetPhase": ["0.19"], - "qiskit.pulse.instructions.ShiftFrequency": ["0.19"], - "qiskit.pulse.instructions.TimeBlockade": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39" - ], - "qiskit.pulse.library": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.library.Constant": [ - "0.19", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1" - ], - "qiskit.pulse.library.Constant_class.rst": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "1.2", - "1.3" - ], - "qiskit.pulse.library.Cos": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1" - ], - "qiskit.pulse.library.Cos_class.rst": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "1.2", - "1.3" - ], - "qiskit.pulse.library.Drag": [ - "0.19", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1" - ], - "qiskit.pulse.library.Drag_class.rst": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "1.2", - "1.3" - ], - "qiskit.pulse.library.Gaussian": [ - "0.19", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1" - ], - "qiskit.pulse.library.GaussianDeriv": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43" - ], - "qiskit.pulse.library.GaussianSquare": ["0.19"], - "qiskit.pulse.library.GaussianSquareDrag": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39" - ], - "qiskit.pulse.library.Gaussian_class.rst": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "1.2", - "1.3" - ], - "qiskit.pulse.library.ParametricPulse": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.library.Sawtooth": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1" - ], - "qiskit.pulse.library.Sawtooth_class.rst": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "1.2", - "1.3" - ], - "qiskit.pulse.library.ScalableSymbolicPulse": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.43", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.library.Sech": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1" - ], - "qiskit.pulse.library.SechDeriv": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43" - ], - "qiskit.pulse.library.Sech_fun.rst": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "1.2", - "1.3" - ], - "qiskit.pulse.library.Sin": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1" - ], - "qiskit.pulse.library.Sin_class.rst": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "1.2", - "1.3" - ], - "qiskit.pulse.library.Square": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1" - ], - "qiskit.pulse.library.Square_fun.rst": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "1.2", - "1.3" - ], - "qiskit.pulse.library.SymbolicPulse": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36" - ], - "qiskit.pulse.library.Triangle": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1" - ], - "qiskit.pulse.library.Triangle_class.rst": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "1.2", - "1.3" - ], - "qiskit.pulse.library.Waveform": ["0.19"], - "qiskit.pulse.library.constant": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.library.cos": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.library.discrete": [ - "0.19", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.library.drag": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.library.gaussian": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.library.gaussian_deriv": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.library.gaussian_square": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.library.gaussian_square_echo": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43" - ], - "qiskit.pulse.library.sawtooth": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.library.sech": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.library.sech_deriv": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.library.sin": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.library.square": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.library.triangle": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.library.zero": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.pulse_lib": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.pulse_lib.Constant": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.pulse_lib.Drag": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.pulse_lib.Gaussian": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.pulse_lib.GaussianSquare": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.pulse_lib.SamplePulse": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.pulse_lib.discrete": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.reschedule.add_implicit_acquires": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.reschedule.align_measures": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.reschedule.pad": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.transforms.AlignEquispaced": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.pulse.transforms.AlignFunc": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.pulse.transforms.AlignLeft": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.pulse.transforms.AlignRight": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.pulse.transforms.AlignSequential": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.pulse.transforms.add_implicit_acquires": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.transforms.align_measures": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.transforms.block_to_dag": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.transforms.block_to_schedule": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.transforms.compress_pulses": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.transforms.flatten": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.transforms.inline_subroutines": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.transforms.pad": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.transforms.remove_directives": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.transforms.remove_trivial_barriers": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.pulse.transforms.target_qobj_transform": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.qasm.OpenQASMLexer": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.qasm.Qasm": ["0.44", "0.45", "0.46", "1.0", "1.1", "1.2", "1.3"], - "qiskit.qasm.QasmError": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.qasm.QasmHTMLStyle": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.qasm.QasmTerminalStyle": [ - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.qasm3.Exporter": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.qasm3.dump": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.qasm3.dumps": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.qobj.GateCalibration": ["0.19"], - "qiskit.qobj.QasmExperimentCalibrations": ["0.19"], - "qiskit.qobj.Qobj": ["0.45", "0.46", "1.0", "1.1", "1.2", "1.3"], - "qiskit.qobj.validate_qobj_against_schema": [ - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.qpy.dump": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.qpy.load": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.CNOTDihedral": ["0.19", "0.24"], - "qiskit.quantum_info.OneQubitEulerDecomposer": [ - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.PauliList": ["0.19", "0.24", "0.25", "0.26", "0.27"], - "qiskit.quantum_info.PauliTable": [ - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.StabilizerState": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27" - ], - "qiskit.quantum_info.StabilizerTable": [ - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.TwoQubitBasisDecomposer": [ - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.XXDecomposer": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.Z2Symmetries": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42" - ], - "qiskit.quantum_info.anti_commutator": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.average_gate_fidelity": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.commutator": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.concurrence": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.decompose_clifford": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.diamond_norm": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.double_commutator": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.entanglement_of_formation": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.entropy": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.euler_angles_1q": [ - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.gate_error": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.hellinger_distance": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.hellinger_fidelity": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.mutual_information": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.partial_trace": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.pauli_group": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.process_fidelity": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.purity": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.random_clifford": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.random_cnotdihedral": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.random_density_matrix": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.random_hermitian": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.random_pauli": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.random_pauli_list": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.random_pauli_table": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.random_quantum_channel": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.random_stabilizer_table": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.random_state": [ - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.random_statevector": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.random_unitary": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.shannon_entropy": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.state_fidelity": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.quantum_info.two_qubit_cnot_decompose": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.result.BaseReadoutMitigator": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.result.CorrelatedReadoutMitigator": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.result.Counts": ["0.19"], - "qiskit.result.LocalReadoutMitigator": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.result.ProbDistribution": ["0.19", "0.24", "0.25"], - "qiskit.result.QuasiDistribution": ["0.19", "0.24", "0.25"], - "qiskit.result.marginal_counts": [ - "0.19", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.result.marginal_distribution": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.result.marginal_memory": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.result.sampled_expectation_value": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.scheduler.ScheduleConfig": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.scheduler.methods.basic": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.scheduler.schedule_circuit": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.scheduler.utils": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.synthesis.EvolutionSynthesis": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.synthesis.LieTrotter": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.synthesis.MatrixExponential": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.synthesis.OneQubitEulerDecomposer": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45" - ], - "qiskit.synthesis.ProductFormula": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.synthesis.QDrift": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40" - ], - "qiskit.synthesis.SolovayKitaevDecomposition": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39" - ], - "qiskit.synthesis.SuzukiTrotter": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.synthesis.TwoQubitBasisDecomposer": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45" - ], - "qiskit.synthesis.TwoQubitWeylDecomposition": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.synthesis.XXDecomposer": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45" - ], - "qiskit.synthesis.generate_basic_approximations": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.synthesis.synth_clifford_ag": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.synthesis.synth_clifford_bm": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.synthesis.synth_clifford_depth_lnn": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.synthesis.synth_clifford_full": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.synthesis.synth_clifford_greedy": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.synthesis.synth_clifford_layers": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.synthesis.synth_cnot_count_full_pmh": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.synthesis.synth_cnot_depth_line_kms": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.synthesis.synth_cnotdihedral_full": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.synthesis.synth_cnotdihedral_general": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.synthesis.synth_cnotdihedral_two_qubits": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.synthesis.synth_cz_depth_line_mr": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.synthesis.synth_permutation_acg": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.synthesis.synth_permutation_basic": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.synthesis.synth_permutation_depth_lnn_kms": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.synthesis.synth_stabilizer_depth_lnn": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.synthesis.synth_stabilizer_layers": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.synthesis.unitary.aqc": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.synthesis.unitary.aqc.AQC": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45" - ], - "qiskit.synthesis.unitary.aqc.ApproximateCircuit": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45" - ], - "qiskit.synthesis.unitary.aqc.ApproximatingObjective": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45" - ], - "qiskit.synthesis.unitary.aqc.CNOTUnitCircuit": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45" - ], - "qiskit.synthesis.unitary.aqc.CNOTUnitObjective": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45" - ], - "qiskit.synthesis.unitary.aqc.DefaultCNOTUnitObjective": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45" - ], - "qiskit.synthesis.unitary.aqc.FastCNOTUnitObjective": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45" - ], - "qiskit.tools.backend_monitor": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.tools.backend_overview": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.tools.choi_to_pauli": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.tools.chop": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.tools.concurrence": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.tools.devectorize": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.tools.entanglement_of_formation": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.tools.entropy": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.tools.events.TextProgressBar": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.tools.is_pos_def": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.tools.job_monitor": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.tools.mutual_information": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.tools.outer": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.tools.parallel_map": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.tools.partial_trace": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.tools.qft": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.tools.shannon_entropy": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.tools.vectorize": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.AnalysisPass": ["0.19", "0.24"], - "qiskit.transpiler.ConditionalController": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.DoWhileController": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.FencedDAGCircuit": ["1.0", "1.1", "1.2", "1.3"], - "qiskit.transpiler.FencedPropertySet": ["1.0", "1.1", "1.2", "1.3"], - "qiskit.transpiler.FlowController": [ - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.InstructionDurations": ["0.19"], - "qiskit.transpiler.InstructionProperties": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.transpiler.PropertySet": [ - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.StagedPassManager": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36" - ], - "qiskit.transpiler.Target": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.transpiler.TransformationPass": ["0.19", "0.24"], - "qiskit.transpiler.TranspileLayout": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42" - ], - "qiskit.transpiler.TranspilerAccessError": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.TranspilerError": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.passes.ACGSynthesisPermutation": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.passes.ALAPSchedule": ["0.19"], - "qiskit.transpiler.passes.ALAPScheduleAnalysis": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33" - ], - "qiskit.transpiler.passes.AQCSynthesisPlugin": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.passes.ASAPSchedule": ["0.19"], - "qiskit.transpiler.passes.ASAPScheduleAnalysis": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33" - ], - "qiskit.transpiler.passes.AlignMeasures": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27" - ], - "qiskit.transpiler.passes.BIPMapping": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.passes.BasicSynthesisPermutation": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.passes.BasisTranslator": ["0.19"], - "qiskit.transpiler.passes.CXDirection": [ - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.passes.CheckCXDirection": [ - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.passes.CheckGateDirection": ["0.19", "0.24"], - "qiskit.transpiler.passes.Collect1qRuns": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.transpiler.passes.CollectAndCollapse": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1" - ], - "qiskit.transpiler.passes.CollectCliffords": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39" - ], - "qiskit.transpiler.passes.CollectLinearFunctions": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33" - ], - "qiskit.transpiler.passes.CollectMultiQBlocks": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.transpiler.passes.CommutativeInverseCancellation": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38" - ], - "qiskit.transpiler.passes.Commuting2qGateRouter": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36" - ], - "qiskit.transpiler.passes.ConstrainedReschedule": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33" - ], - "qiskit.transpiler.passes.ContainsInstruction": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.transpiler.passes.ConvertConditionsToIfOps": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38" - ], - "qiskit.transpiler.passes.CrosstalkAdaptiveSchedule": [ - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.passes.DynamicalDecoupling": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27" - ], - "qiskit.transpiler.passes.EchoRZXWeylDecomposition": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.transpiler.passes.ElidePermutations": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0" - ], - "qiskit.transpiler.passes.FilterOpNodes": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.transpiler.passes.GateDirection": ["0.19", "0.24"], - "qiskit.transpiler.passes.GatesInBasis": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.transpiler.passes.HLSConfig": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.transpiler.passes.HighLevelSynthesis": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38" - ], - "qiskit.transpiler.passes.HoareOptimizer": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33" - ], - "qiskit.transpiler.passes.InstructionDurationCheck": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33" - ], - "qiskit.transpiler.passes.InverseCancellation": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.transpiler.passes.KMSSynthesisPermutation": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.passes.LinearFunctionsSynthesis": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.passes.LinearFunctionsToPermutations": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33" - ], - "qiskit.transpiler.passes.MinimumPoint": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42" - ], - "qiskit.transpiler.passes.NoiseAdaptiveLayout": [ - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.passes.NormalizeRXAngle": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.transpiler.passes.Optimize1qGatesDecomposition": ["0.19"], - "qiskit.transpiler.passes.Optimize1qGatesSimpleCommutation": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.transpiler.passes.OptimizeAnnotated": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.transpiler.passes.OptimizeCliffords": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38" - ], - "qiskit.transpiler.passes.PadDelay": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33" - ], - "qiskit.transpiler.passes.PadDynamicalDecoupling": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33" - ], - "qiskit.transpiler.passes.PulseGates": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.transpiler.passes.RXCalibrationBuilder": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.transpiler.passes.RZXCalibrationBuilder": ["0.19", "0.24"], - "qiskit.transpiler.passes.RZXCalibrationBuilderNoEcho": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27" - ], - "qiskit.transpiler.passes.RemoveBarriers": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27" - ], - "qiskit.transpiler.passes.RemoveFinalReset": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0" - ], - "qiskit.transpiler.passes.ResetAfterMeasureSimplification": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38" - ], - "qiskit.transpiler.passes.SabreLayout": ["0.19"], - "qiskit.transpiler.passes.SabrePreLayout": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44" - ], - "qiskit.transpiler.passes.SabreSwap": ["0.19"], - "qiskit.transpiler.passes.SetIOLatency": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33" - ], - "qiskit.transpiler.passes.SolovayKitaev": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39" - ], - "qiskit.transpiler.passes.SolovayKitaevSynthesis": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.passes.Split2QUnitaries": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1" - ], - "qiskit.transpiler.passes.StarPreRouting": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0" - ], - "qiskit.transpiler.passes.TemplateOptimization": ["0.19"], - "qiskit.transpiler.passes.TimeUnitConversion": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27" - ], - "qiskit.transpiler.passes.TranslateParameterizedGates": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39" - ], - "qiskit.transpiler.passes.UnitarySynthesis": ["0.19"], - "qiskit.transpiler.passes.UnrollCustomDefinitions": ["0.19"], - "qiskit.transpiler.passes.UnrollForLoops": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42" - ], - "qiskit.transpiler.passes.Unroller": ["1.0", "1.1", "1.2", "1.3"], - "qiskit.transpiler.passes.VF2Layout": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.transpiler.passes.VF2PostLayout": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36" - ], - "qiskit.transpiler.passes.ValidatePulseGates": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27" - ], - "qiskit.transpiler.passes.synthesis.aqc_plugin.AQCSynthesisPlugin": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.transpiler.passes.synthesis.high_level_synthesis.ACGSynthesisPermutation": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.3" - ], - "qiskit.transpiler.passes.synthesis.high_level_synthesis.AGSynthesisClifford": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.3" - ], - "qiskit.transpiler.passes.synthesis.high_level_synthesis.BMSynthesisClifford": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.3" - ], - "qiskit.transpiler.passes.synthesis.high_level_synthesis.BasicSynthesisPermutation": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.3" - ], - "qiskit.transpiler.passes.synthesis.high_level_synthesis.DefaultSynthesisClifford": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.3" - ], - "qiskit.transpiler.passes.synthesis.high_level_synthesis.DefaultSynthesisLinearFunction": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.3" - ], - "qiskit.transpiler.passes.synthesis.high_level_synthesis.GreedySynthesisClifford": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.3" - ], - "qiskit.transpiler.passes.synthesis.high_level_synthesis.KMSSynthesisLinearFunction": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.3" - ], - "qiskit.transpiler.passes.synthesis.high_level_synthesis.KMSSynthesisPermutation": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.3" - ], - "qiskit.transpiler.passes.synthesis.high_level_synthesis.LayerLnnSynthesisClifford": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.3" - ], - "qiskit.transpiler.passes.synthesis.high_level_synthesis.LayerSynthesisClifford": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.3" - ], - "qiskit.transpiler.passes.synthesis.high_level_synthesis.PMHSynthesisLinearFunction": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.3" - ], - "qiskit.transpiler.passes.synthesis.high_level_synthesis.QFTSynthesisFull": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.3" - ], - "qiskit.transpiler.passes.synthesis.high_level_synthesis.QFTSynthesisLine": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.3" - ], - "qiskit.transpiler.passes.synthesis.high_level_synthesis.TokenSwapperSynthesisPermutation": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.3" - ], - "qiskit.transpiler.passes.synthesis.hls_plugins.ACGSynthesisPermutation": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.transpiler.passes.synthesis.hls_plugins.AGSynthesisClifford": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.transpiler.passes.synthesis.hls_plugins.BMSynthesisClifford": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.transpiler.passes.synthesis.hls_plugins.BasicSynthesisPermutation": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.transpiler.passes.synthesis.hls_plugins.DefaultSynthesisClifford": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.transpiler.passes.synthesis.hls_plugins.DefaultSynthesisLinearFunction": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.transpiler.passes.synthesis.hls_plugins.GreedySynthesisClifford": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.transpiler.passes.synthesis.hls_plugins.KMSSynthesisLinearFunction": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.transpiler.passes.synthesis.hls_plugins.KMSSynthesisPermutation": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.transpiler.passes.synthesis.hls_plugins.LayerLnnSynthesisClifford": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.transpiler.passes.synthesis.hls_plugins.LayerSynthesisClifford": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisDefault": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisNoAux": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisVChain": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1CleanB95": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisDefault": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisGrayCode": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNCleanM15": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNDirtyI15": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAuxV24": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.transpiler.passes.synthesis.hls_plugins.PMHSynthesisLinearFunction": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.transpiler.passes.synthesis.hls_plugins.QFTSynthesisFull": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.transpiler.passes.synthesis.hls_plugins.QFTSynthesisLine": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.transpiler.passes.synthesis.hls_plugins.TokenSwapperSynthesisPermutation": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2" - ], - "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38" - ], - "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPluginManager": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38" - ], - "qiskit.transpiler.passes.synthesis.plugin.UnitarySynthesisPlugin": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.transpiler.passes.synthesis.plugin.UnitarySynthesisPluginManager": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.transpiler.passes.synthesis.plugin.high_level_synthesis_plugin_names": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.transpiler.passes.synthesis.plugin.unitary_synthesis_plugin_names": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.transpiler.passes.synthesis.solovay_kitaev_synthesis.SolovayKitaevSynthesis": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.transpiler.passes.synthesis.unitary_synthesis.DefaultUnitarySynthesis": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46" - ], - "qiskit.transpiler.preset_passmanagers.common.generate_control_flow_options_check": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.preset_passmanagers.common.generate_embed_passmanager": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.preset_passmanagers.common.generate_error_on_control_flow": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.preset_passmanagers.common.generate_pre_op_passmanager": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.preset_passmanagers.common.generate_routing_passmanager": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.preset_passmanagers.common.generate_scheduling": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.preset_passmanagers.common.generate_translation_passmanager": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.preset_passmanagers.common.generate_unroll_3q": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.preset_passmanagers.generate_preset_pass_manager": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.preset_passmanagers.level_0_pass_manager": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.preset_passmanagers.level_1_pass_manager": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.preset_passmanagers.level_2_pass_manager": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.preset_passmanagers.level_3_pass_manager": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.preset_passmanagers.plugin.PassManagerStagePlugin": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38" - ], - "qiskit.transpiler.preset_passmanagers.plugin.PassManagerStagePluginManager": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38" - ], - "qiskit.transpiler.preset_passmanagers.plugin.list_stage_plugins": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.preset_passmanagers.plugin.passmanager_stage_plugins": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.synthesis.aqc.AQC": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.synthesis.aqc.AQCSynthesisPlugin": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.synthesis.aqc.ApproximateCircuit": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.synthesis.aqc.ApproximatingObjective": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.synthesis.aqc.CNOTUnitCircuit": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.synthesis.aqc.CNOTUnitObjective": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.synthesis.aqc.DefaultCNOTUnitObjective": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.transpiler.synthesis.aqc.FastCNOTUnitObjective": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.utils.QuantumInstance": [ - "0.19", - "0.24", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.utils.add_deprecation_to_docstring": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.utils.algorithm_globals": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.utils.apply_prefix": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.utils.deprecate_arg": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.utils.deprecate_arguments": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.utils.deprecate_func": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.utils.deprecate_function": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.utils.detach_prefix": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.utils.get_entangler_map": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.utils.has_aer": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.utils.has_ibmq": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.utils.is_main_process": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.utils.local_hardware_info": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.utils.mitigation.CompleteMeasFitter": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.utils.mitigation.TensoredMeasFitter": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.utils.name_args": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.utils.summarize_circuits": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.utils.validate_entangler_map": [ - "0.19", - "0.24", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.utils.wrap_method": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.validation.BaseModel": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.validation.BaseSchema": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.validation.ModelTypeValidator": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.validation.ModelValidationError": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.validation.bind_schema": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.validation.jsonschema.SchemaValidationError": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.validation.jsonschema.validate_json_against_schema": [ - "0.19", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.visualization.VisualizationError": [ - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.visualization.array_to_latex": ["0.19", "0.24"], - "qiskit.visualization.circuit.qcstyle.DefaultStyle": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.visualization.iplot_bloch_multivector": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.visualization.iplot_histogram": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.visualization.iplot_state_city": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.visualization.iplot_state_hinton": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.visualization.iplot_state_paulivec": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.visualization.iplot_state_qsphere": [ - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.visualization.plot_coupling_map": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "qiskit.visualization.plot_distribution": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38" - ], - "qiskit.visualization.pulse.IQXDebugging": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.visualization.pulse.IQXSimple": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.visualization.pulse.IQXStandard": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.visualization.pulse.interpolation": [ - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.visualization.pulse.qcstyle": [ - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.visualization.pulse_drawer": [ - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.visualization.pulse_v2.IQXDebugging": [ - "0.19", - "0.24", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.visualization.pulse_v2.IQXSimple": [ - "0.19", - "0.24", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.visualization.pulse_v2.IQXStandard": [ - "0.19", - "0.24", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.visualization.pulse_v2.draw": [ - "0.19", - "0.24", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.visualization.qcstyle.DefaultStyle": [ - "0.19", - "0.24", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.visualization.timeline.draw": [ - "0.19", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit.visualization.timeline_drawer": ["0.19"], - "qiskit_aer.AerError": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.AerProvider": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.AerSimulator": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.PulseSimulator": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.QasmSimulator": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.StatevectorSimulator": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.UnitarySimulator": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.jobs.AerJob": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.jobs.AerJobSet": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.SaveAmplitudes": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.SaveAmplitudesSquared": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.SaveClifford": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.SaveDensityMatrix": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.SaveExpectationValue": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.SaveExpectationValueVariance": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.SaveMatrixProductState": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.SaveProbabilities": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.SaveProbabilitiesDict": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.SaveStabilizer": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.SaveState": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.SaveStatevector": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.SaveStatevectorDict": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.SaveSuperOp": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.SaveUnitary": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.SetDensityMatrix": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.SetMatrixProductState": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.SetStabilizer": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.SetStatevector": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.SetSuperOp": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.SetUnitary": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.save_amplitudes": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.save_amplitudes_squared": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.save_clifford": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.save_density_matrix": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.save_expectation_value": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.save_expectation_value_variance": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.save_matrix_product_state": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.save_probabilities": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.save_probabilities_dict": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.save_stabilizer": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.save_state": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.save_statevector": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.save_statevector_dict": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.save_superop": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.save_unitary": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.set_density_matrix": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.set_matrix_product_state": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.set_stabilizer": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.set_statevector": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.set_superop": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.library.set_unitary": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.noise.LocalNoisePass": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.noise.NoiseModel": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.noise.QuantumError": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.noise.ReadoutError": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.noise.RelaxationNoisePass": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.noise.amplitude_damping_error": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.noise.coherent_unitary_error": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.noise.depolarizing_error": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.noise.device.basic_device_gate_errors": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.noise.device.basic_device_readout_errors": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.noise.device.gate_error_values": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.noise.device.gate_length_values": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.noise.device.gate_param_values": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.noise.device.readout_error_values": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.noise.device.thermal_relaxation_values": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.noise.kraus_error": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.noise.mixed_unitary_error": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.noise.pauli_error": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.noise.phase_amplitude_damping_error": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.noise.phase_damping_error": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.noise.reset_error": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.noise.thermal_relaxation_error": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.primitives.Estimator": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.primitives.Sampler": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.pulse.PulseSystemModel": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.pulse.duffing_system_model": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.quantum_info.AerDensityMatrix": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.quantum_info.AerStatevector": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.utils.NoiseTransformer": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.utils.approximate_noise_model": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.utils.approximate_quantum_error": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.utils.insert_noise": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.utils.remap_noise_model": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.utils.transform_noise_model": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.utils.transpile_noise_model": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aer.utils.transpile_quantum_error": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_aqua": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_chemistry": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_finance": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_ml": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qiskit_optimization": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "qpy": ["0.19", "0.24", "0.25", "0.26", "0.27"], - "synthesis": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "synthesis_aqc": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "tools": ["1.0", "1.1", "1.2", "1.3"], - "tools_jupyter": ["1.0", "1.1", "1.2", "1.3"], - "transpiler_builtin_plugins": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "transpiler_plugins": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32" - ], - "transpiler_synthesis_plugins": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "0.33", - "0.35", - "0.36", - "0.37", - "0.38" - ], - "utils": ["0.19", "0.24"], - "utils_mitigation": [ - "0.19", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31", - "0.32", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "validation": [ - "0.33", - "0.35", - "0.36", - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ], - "verification": [ - "0.37", - "0.38", - "0.39", - "0.40", - "0.41", - "0.42", - "0.43", - "0.44", - "0.45", - "0.46", - "1.0", - "1.1", - "1.2", - "1.3" - ] - }, - "qiskit-ibm-runtime": { - "execution_span": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20", - "0.21", - "0.22", - "0.23", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28" - ], - "fake_provider": ["0.14", "0.15", "0.16", "0.17"], - "noise_learner": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20", - "0.21", - "0.22", - "0.23", - "0.24", - "0.25" - ], - "noise_learner_result": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20", - "0.21", - "0.22", - "0.23", - "0.24", - "0.25", - "0.26", - "0.27" - ], - "qiskit_ibm_runtime.Batch": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20", - "0.21", - "0.22" - ], - "qiskit_ibm_runtime.EstimatorV1": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20", - "0.28", - "0.29", - "0.30", - "0.31" - ], - "qiskit_ibm_runtime.EstimatorV2": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20" - ], - "qiskit_ibm_runtime.ParameterNamespace": [ - "0.16", - "0.17", - "0.18", - "0.19", - "0.20", - "0.21", - "0.22", - "0.23", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31" - ], - "qiskit_ibm_runtime.RuntimeJobV2": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20" - ], - "qiskit_ibm_runtime.RuntimeOptions": [ - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31" - ], - "qiskit_ibm_runtime.RuntimeProgram": [ - "0.16", - "0.17", - "0.18", - "0.19", - "0.20", - "0.21", - "0.22", - "0.23", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31" - ], - "qiskit_ibm_runtime.SamplerV1": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20", - "0.28", - "0.29", - "0.30", - "0.31" - ], - "qiskit_ibm_runtime.SamplerV2": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20" - ], - "qiskit_ibm_runtime.execution_span.ExecutionSpan": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20", - "0.21", - "0.22", - "0.23", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28" - ], - "qiskit_ibm_runtime.execution_span.ExecutionSpans": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20", - "0.21", - "0.22", - "0.23", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28" - ], - "qiskit_ibm_runtime.execution_span.ShapeType": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20", - "0.21", - "0.22", - "0.23", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28" - ], - "qiskit_ibm_runtime.execution_span.SliceSpan": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20", - "0.21", - "0.22", - "0.23", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28" - ], - "qiskit_ibm_runtime.fake_provider.FakeAlgiers": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20" - ], - "qiskit_ibm_runtime.fake_provider.FakeAlmaden": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeAlmadenV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeArmonk": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeArmonkV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeAthens": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeAthensV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeAuckland": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeBelem": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeBelemV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeBoeblingen": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeBogota": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeBogotaV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeBrisbane": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20" - ], - "qiskit_ibm_runtime.fake_provider.FakeBrooklyn": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeBrooklynV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeBurlington": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeCairo": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeCairoV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeCambridge": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeCambridgeV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeCasablanca": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeCasablancaV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeCusco": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20" - ], - "qiskit_ibm_runtime.fake_provider.FakeEssex": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeEssexV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeFractionalBackend": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20", - "0.21", - "0.22", - "0.23" - ], - "qiskit_ibm_runtime.fake_provider.FakeGeneva": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeGuadalupe": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeHanoi": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeHanoiV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeJakarta": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeJakartaV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeJohannesburg": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeKawasaki": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20" - ], - "qiskit_ibm_runtime.fake_provider.FakeKolkata": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeKolkataV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeKyiv": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20" - ], - "qiskit_ibm_runtime.fake_provider.FakeKyoto": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20" - ], - "qiskit_ibm_runtime.fake_provider.FakeLagos": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeLagosV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeLima": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeLimaV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeLondon": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeLondonV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeManhattan": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeManhattanV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeManila": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeManilaV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeMelbourne": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeMelbourneV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeMontreal": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeMontrealV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeMumbai": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeMumbaiV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeNairobi": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeNairobiV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeOsaka": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20" - ], - "qiskit_ibm_runtime.fake_provider.FakeOslo": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeOurense": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeOurenseV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeParis": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeParisV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakePeekskill": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20" - ], - "qiskit_ibm_runtime.fake_provider.FakePerth": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakePoughkeepsie": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakePrague": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeProvider": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeQuebec": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20" - ], - "qiskit_ibm_runtime.fake_provider.FakeQuito": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeQuitoV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeRochester": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeRochesterV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeRome": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeRomeV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeRueschlikon": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeSantiago": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeSantiagoV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeSherbrooke": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeSingapore": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeSingaporeV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeSydney": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeSydneyV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeTenerife": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeTokyo": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeTorino": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20" - ], - "qiskit_ibm_runtime.fake_provider.FakeToronto": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeTorontoV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeValencia": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeValenciaV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeVigo": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeVigoV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeWashington": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeWashingtonV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.fake_provider.FakeYorktown": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.31" - ], - "qiskit_ibm_runtime.fake_provider.FakeYorktownV2": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.noise_learner.NoiseLearner": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20", - "0.21", - "0.22", - "0.23", - "0.24", - "0.25" - ], - "qiskit_ibm_runtime.options.DynamicalDecouplingOptions": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20" - ], - "qiskit_ibm_runtime.options.EstimatorOptions": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20" - ], - "qiskit_ibm_runtime.options.ExecutionOptions": [ - "0.28", - "0.29", - "0.30", - "0.31" - ], - "qiskit_ibm_runtime.options.ExecutionOptionsV2": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20" - ], - "qiskit_ibm_runtime.options.LayerNoiseLearningOptions": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20" - ], - "qiskit_ibm_runtime.options.MeasureNoiseLearningOptions": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20" - ], - "qiskit_ibm_runtime.options.NoiseLearnerOptions": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20", - "0.21", - "0.22", - "0.23", - "0.24", - "0.25", - "0.26", - "0.27" - ], - "qiskit_ibm_runtime.options.Options": ["0.28", "0.29", "0.30", "0.31"], - "qiskit_ibm_runtime.options.PecOptions": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20" - ], - "qiskit_ibm_runtime.options.ResilienceOptions": [ - "0.28", - "0.29", - "0.30", - "0.31" - ], - "qiskit_ibm_runtime.options.ResilienceOptionsV2": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20" - ], - "qiskit_ibm_runtime.options.SamplerExecutionOptionsV2": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20", - "0.21", - "0.22", - "0.23", - "0.24" - ], - "qiskit_ibm_runtime.options.SamplerOptions": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20" - ], - "qiskit_ibm_runtime.options.TranspilationOptions": [ - "0.28", - "0.29", - "0.30", - "0.31" - ], - "qiskit_ibm_runtime.options.TwirlingOptions": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20" - ], - "qiskit_ibm_runtime.options.ZneOptions": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20" - ], - "qiskit_ibm_runtime.transpiler.passes": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.23", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31" - ], - "qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20", - "0.21", - "0.22", - "0.23", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29" - ], - "qiskit_ibm_runtime.transpiler.passes.ConvertIdToDelay": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20", - "0.21", - "0.22" - ], - "qiskit_ibm_runtime.transpiler.passes.basis": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.23", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29", - "0.30", - "0.31" - ], - "qiskit_ibm_runtime.transpiler.passes.scheduling": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling": [ - "0.14", - "0.15", - "0.16", - "0.17" - ], - "qiskit_ibm_runtime.utils.noise_learner_result.LayerError": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20", - "0.21", - "0.22", - "0.23", - "0.24", - "0.25", - "0.26", - "0.27" - ], - "qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20", - "0.21", - "0.22", - "0.23", - "0.24", - "0.25", - "0.26", - "0.27" - ], - "qiskit_ibm_runtime.visualization.draw_layer_error_map": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20", - "0.21", - "0.22", - "0.23", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29" - ], - "transpiler": ["0.14", "0.15", "0.16", "0.17"], - "visualization": [ - "0.14", - "0.15", - "0.16", - "0.17", - "0.18", - "0.19", - "0.20", - "0.21", - "0.22", - "0.23", - "0.24", - "0.25", - "0.26", - "0.27", - "0.28", - "0.29" - ] - }, - "qiskit-ibm-transpiler": { - "qiskit_ibm_transpiler.ai.AICliffordSynthesis": ["0.3", "0.4"], - "qiskit_ibm_transpiler.ai.AILinearFunctionSynthesis": ["0.3", "0.4"], - "qiskit_ibm_transpiler.ai.AIPermutationSynthesis": ["0.3", "0.4"], - "qiskit_ibm_transpiler.ai.AIRouting": ["0.3", "0.4"], - "qiskit_ibm_transpiler.ai.CollectCliffords": ["0.3", "0.4"], - "qiskit_ibm_transpiler.ai.CollectLinearFunctions": ["0.3", "0.4"], - "qiskit_ibm_transpiler.ai.CollectPermutations": ["0.3", "0.4"], - "qiskit_ibm_transpiler.transpiler_service.TranspilerService": [ - "0.3", - "0.4" - ], - "qiskit_transpiler_service.ai.AICliffordSynthesis": ["0.5", "0.6", "0.7"], - "qiskit_transpiler_service.ai.AILinearFunctionSynthesis": [ - "0.5", - "0.6", - "0.7" - ], - "qiskit_transpiler_service.ai.AIPermutationSynthesis": [ - "0.5", - "0.6", - "0.7" - ], - "qiskit_transpiler_service.ai.AIRouting": ["0.5", "0.6", "0.7"], - "qiskit_transpiler_service.ai.CollectCliffords": ["0.5", "0.6", "0.7"], - "qiskit_transpiler_service.ai.CollectLinearFunctions": [ - "0.5", - "0.6", - "0.7" - ], - "qiskit_transpiler_service.ai.CollectPermutations": ["0.5", "0.6", "0.7"], - "qiskit_transpiler_service.transpiler_service.TranspilerService": [ - "0.5", - "0.6", - "0.7" - ] - } - } -} diff --git a/scripts/js/commands/api/convertApiDocsToHistorical.ts b/scripts/js/commands/api/convertApiDocsToHistorical.ts index 3026045cb52..c546b190d16 100644 --- a/scripts/js/commands/api/convertApiDocsToHistorical.ts +++ b/scripts/js/commands/api/convertApiDocsToHistorical.ts @@ -26,7 +26,6 @@ import { pathExists } from "../../lib/fs.js"; import { zxMain } from "../../lib/zx.js"; import { Pkg } from "../../lib/api/Pkg.js"; import { generateHistoricalRedirects } from "./generateHistoricalRedirects.js"; -import { generateApiRedirectData } from "./generateApiRedirectData.js"; interface Arguments { [x: string]: unknown; @@ -79,7 +78,6 @@ zxMain(async () => { ); await copyObjectsInv(pkg.name, versionWithoutPatch); await generateHistoricalRedirects(); - await generateApiRedirectData(); }); async function copyApiDocsAndUpdateLinks( diff --git a/scripts/js/commands/api/generateApiRedirectData.ts b/scripts/js/commands/api/generateApiRedirectData.ts deleted file mode 100644 index 5ca67f675e5..00000000000 --- a/scripts/js/commands/api/generateApiRedirectData.ts +++ /dev/null @@ -1,166 +0,0 @@ -// This code is a Qiskit project. -// -// (C) Copyright IBM 2024. -// -// This code is licensed under the Apache License, Version 2.0. You may -// obtain a copy of this license in the LICENSE 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. - -import { readdir, writeFile } from "fs/promises"; -import { join } from "path"; - -import { Pkg } from "../../lib/api/Pkg.js"; -import { readApiMinorVersion } from "../../lib/apiVersions.js"; -import { zxMain } from "../../lib/zx.js"; -import { removeSuffix } from "../../lib/stringUtils.js"; - -const OUTPUT_FILE = "./scripts/config/api-redirect-data.json"; - -type Version = string; - -// Store which minor version == the latest release. This simplifies the web app's -// implementation. -type LatestVersions = { [pkg: string]: Version }; - -// This isn't the most compact representation possible, but it's good enough for now. -// See https://github.com/Qiskit/documentation/pull/2125 for more information. -type MissingPages = { [pkg: string]: { [page: string]: Version[] } }; - -// This mechanism links pages between historical/dev versions and the latest version when URLs change. -// For simplicity, we only support custom redirects between historical/dev to latest, -// which covers the most important cases. See https://github.com/Qiskit/documentation/pull/2125 -// for more information. -type CustomRedirectsToLatest = { - [pkg: string]: { [version: string]: { [page: string]: string } }; -}; - -type RedirectData = { - latestVersions: LatestVersions; - missing: MissingPages; - customRedirectsToLatest: CustomRedirectsToLatest; -}; - -export async function generateApiRedirectData(): Promise { - console.log(`Generating ${OUTPUT_FILE}`); - const result: RedirectData = { - latestVersions: {}, - customRedirectsToLatest: {}, - missing: {}, - }; - - for (const pkgName of Pkg.VALID_NAMES) { - const pkgPath = join("docs/api", pkgName); - const latestVersion = await readApiMinorVersion(pkgPath); - const versionPaths = await determineVersionPaths(pkgPath); - - result.latestVersions[pkgName] = latestVersion; - result.missing[pkgName] = await findMissingPagesForPkg([ - pkgPath, - ...versionPaths, - ]); - result.customRedirectsToLatest[pkgName] = await determineRedirectsToLatest( - pkgPath, - versionPaths, - ); - } - await writeFile(OUTPUT_FILE, JSON.stringify(result, null, 2) + "\n"); -} - -async function findMissingPagesForPkg( - versionPaths: string[], -): Promise<{ [version: string]: string[] }> { - const versionsToPages: { [version: string]: Set } = {}; - for (const path of versionPaths) { - const pages = await readPagesForVersion(path); - const version = await readApiMinorVersion(path); - versionsToPages[version] = pages; - } - - // Aka Set.union(), which is not yet released in Node.js. - const allPages = new Set( - Object.values(versionsToPages).reduce( - (acc: string[], version) => [...acc, ...version], - [], - ), - ); - - const result: { [page: string]: string[] } = {}; - for (const page of Array.from(allPages).sort()) { - const missingVersions = Object.entries(versionsToPages) - .filter(([, versionPages]) => !versionPages.has(page)) - .map(([version]) => version) - .sort(); - if (missingVersions.length) { - result[page] = missingVersions; - } - } - return result; -} - -async function determineVersionPaths(pkgPath: string): Promise { - const entries = await readdir(pkgPath, { withFileTypes: true }); - return entries - .filter((entry) => entry.isDirectory() && entry.name !== "release-notes") - .map((entry) => join(entry.path, entry.name)); -} - -async function readPagesForVersion(path: string): Promise> { - const entries = await readdir(path, { withFileTypes: true }); - return new Set( - entries - .filter( - (entry) => - !entry.isDirectory() && - entry.name.endsWith(".mdx") && - !entry.name.startsWith("release-notes"), - ) - .map((entry) => removeSuffix(entry.name, ".mdx")), - ); -} - -async function determineRedirectsToLatest( - pkgPath: string, - historicalVersionPaths: string[], -): Promise<{ [version: string]: { [page: string]: string } }> { - const latestPages = await readPagesForVersion(pkgPath); - const redirectsByVersion: { [version: string]: { [page: string]: string } } = - {}; - for (const versionPath of historicalVersionPaths) { - const pages = await readPagesForVersion(versionPath); - const version = await readApiMinorVersion(versionPath); - const redirects: { [page: string]: string } = {}; - for (const page of pages) { - if (latestPages.has(page)) continue; - if ( - pkgPath.endsWith("qiskit-ibm-transpiler") && - page.includes("qiskit_transpiler_service") - ) { - redirects[page] = - `/${page.replace("qiskit_transpiler_service", "qiskit_ibm_transpiler")}`; - continue; - } - - if (pkgPath.endsWith("qiskit") && page.endsWith(".rst")) { - redirects[page] = - `/${page.replace("_class.rst", "").replace("_fun.rst", "")}`; - continue; - } - } - - if (Object.keys(redirects).length) { - redirectsByVersion[version] = redirects; - } - } - - return redirectsByVersion; -} - -if (import.meta.url === `file://${process.argv[1]}`) { - zxMain(async () => { - await generateApiRedirectData(); - }); -} diff --git a/scripts/js/commands/api/regenerateApiDocs.ts b/scripts/js/commands/api/regenerateApiDocs.ts index 9d129a79de6..4aa99cc62d3 100644 --- a/scripts/js/commands/api/regenerateApiDocs.ts +++ b/scripts/js/commands/api/regenerateApiDocs.ts @@ -21,7 +21,6 @@ import { zxMain } from "../../lib/zx.js"; import { pathExists } from "../../lib/fs.js"; import { readApiFullVersion } from "../../lib/apiVersions.js"; import { generateHistoricalRedirects } from "./generateHistoricalRedirects.js"; -import { generateApiRedirectData } from "./generateApiRedirectData.js"; interface Arguments { [x: string]: unknown; @@ -78,7 +77,6 @@ zxMain(async () => { } await generateHistoricalRedirects(); - await generateApiRedirectData(); console.log(`Each regenerated version has been saved as a distinct commit. If the changes are too large for one single PR, consider splitting it up into multiple PRs by using diff --git a/scripts/js/commands/api/updateApiDocs.ts b/scripts/js/commands/api/updateApiDocs.ts index 00107ff7d45..b677d2d3d4d 100644 --- a/scripts/js/commands/api/updateApiDocs.ts +++ b/scripts/js/commands/api/updateApiDocs.ts @@ -20,7 +20,6 @@ import { pathExists, rmFilesInFolder } from "../../lib/fs.js"; import { downloadSphinxArtifact } from "../../lib/api/sphinxArtifacts.js"; import { runConversionPipeline } from "../../lib/api/conversionPipeline.js"; import { generateHistoricalRedirects } from "./generateHistoricalRedirects.js"; -import { generateApiRedirectData } from "./generateApiRedirectData.js"; export interface Arguments { [x: string]: unknown; @@ -85,7 +84,6 @@ export async function generateVersion( console.log(`Run pipeline for ${pkg.name}:${pkg.versionWithoutPatch}`); await runConversionPipeline(sphinxArtifactFolder, "docs", "public", pkg); await generateHistoricalRedirects(); - await generateApiRedirectData(); } export function determineMinorVersion(args: Arguments): string { From e5a88a6222b62d4105d74ca4823f31201c0f2415 Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Mon, 21 Oct 2024 13:43:18 -0400 Subject: [PATCH 12/32] Update internal links for static check (#2152) This is used by repositories that install our link checker tooling as a third-party dependency. Generated with `npx tsx scripts/js/commands/saveInternalLinks.ts` --- scripts/config/internal-links.json | 5258 ++++++++++++++-------------- 1 file changed, 2552 insertions(+), 2706 deletions(-) diff --git a/scripts/config/internal-links.json b/scripts/config/internal-links.json index acb2e26ae09..d849e558ab4 100644 --- a/scripts/config/internal-links.json +++ b/scripts/config/internal-links.json @@ -1,4 +1,18 @@ [ + { + "path": "docs/faq.mdx", + "anchors": [ + "#didnt-find-what-you-were-looking-for", + "#frequently-asked-questions-faq", + "#how-do-i-cite-an-ibm-quantum-computer-in-my-research", + "#how-do-i-cite-ibm-quantum-composer-in-my-research", + "#how-do-i-cite-qiskit-in-my-research", + "#how-do-i-delete-my-account-and-data", + "#questions-about-cloud-simulator-retirement", + "#why-do-i-receive-the-error-message-attributeerror-quantumcircuit-object-has-no-attribute-save_state-when-using-save_method-on-a-circuit", + "#why-do-my-results-from-real-devices-differ-from-my-results-from-the-simulator" + ] + }, { "path": "docs/responsible-quantum-computing.mdx", "anchors": [ @@ -7,19 +21,17 @@ "#make-a-positive-societal-impact", "#make-consistent-principled-decisions", "#promote-our-products-accurately", - "#responsible-quantum-computing-and-inclusive-tech" + "#responsible-quantum-computing" ] }, { "path": "docs/support.mdx", "anchors": [ + "#discuss-and-ask-questions", "#frequently-asked-questions", - "#getting-help", - "#ibm-quantum-support", + "#get-help-with-qiskit-and-ibm-quantum-platform", "#open-source-governance", - "#other-discussions", - "#qiskit", - "#qiskit-runtime" + "#support" ] }, { @@ -34,6 +46,15 @@ "#title-code-of-conduct-description-the-qiskit-code-of-conduct-defines-and-enforces-the-values-and-conduct-of-contributors-and-participants-in-the-qiskit-open-source-community" ] }, + { + "path": "docs/open-source/create-a-provider.mdx", + "anchors": [ + "#integrate-external-quantum-resources-with-qiskit", + "#providing-access-to-backends", + "#providing-an-interface-for-execution", + "#title-create-a-provider-description-a-short-guide-on-integrating-qiskit-into-an-external-providers-quantum-resources" + ] + }, { "path": "docs/open-source/index.mdx", "anchors": [ @@ -54,258 +75,684 @@ ] }, { - "path": "docs/guides/ai-transpiler-passes.mdx", - "anchors": [ - "#ai-circuit-synthesis-passes", - "#ai-routing-pass", - "#ai-transpiler-passes", - "#citation", - "#title-ai-transpiler-passes-description-what-are-the-ai-transpiler-passes-and-how-to-use-them" - ] - }, - { - "path": "docs/guides/bit-ordering.mdx", - "anchors": [ - "#bit-ordering-in-the-qiskit-sdk", - "#change-ordering-in-qiskit", - "#circuit-diagrams", - "#gates", - "#integers", - "#next-steps", - "#qiskit-conventions", - "#quantum-circuits", - "#statevector-matrices", - "#strings", - "#title-bit-ordering-in-the-qiskit-sdk-description-learn-about-qiskit-sdks-ordering-conventions-and-why-we-chose-them" - ] - }, - { - "path": "docs/guides/build-noise-models.ipynb", - "anchors": [ - "#1-all-qubit-quantum-error", - "#2-specific-qubit-quantum-error", - "#add-errors-to-a-noise-model", - "#build-noise-models", - "#combining-quantum-errors", - "#converting-to-and-from-quantumchannel-operators", - "#example", - "#example-2-t1t2-thermal-relaxation", - "#execute-a-noisy-simulation-with-a-noise-model", - "#execute-the-noisy-simulation", - "#execute-the-noisy-simulation-1", - "#ideal-simulation", - "#initializing-a-noise-model-from-a-backend", - "#next-steps", - "#noise-example-1-basic-bit-flip-error-noise-model", - "#noise-model-examples", - "#note-on-non-local-qubit-quantum-error", - "#qiskit-aer-noise-module", - "#quantum-errors", - "#readout-error" - ] + "path": "docs/migration-guides/index.mdx", + "anchors": ["#introduction"] }, { - "path": "docs/guides/circuit-library.ipynb", + "path": "docs/migration-guides/local-simulators.mdx", "anchors": [ - "#arithmetic-circuits", - "#benchmarking-and-complexity-theory-circuits", - "#circuit-library", - "#data-encoding-circuits", - "#n-local-circuits", - "#next-steps", - "#standard-gates", - "#time-evolution-circuits" + "#aersimulator", + "#clifford-sim", + "#clifford-simulation", + "#fake-backends", + "#guidance-for-choosing-a-simulator", + "#migrate-from-cloud-simulators-to-local-simulators", + "#migrate-to-local-simulators", + "#title-migrate-to-local-simulators-description-migrate-from-using-the-ibm-quantum-cloud-simulators-to-using-qiskit-runtime-local-testing-mode", + "#when-should-simulators-be-used", + "#why-are-the-cloud-simulators-being-retired" ] }, { - "path": "docs/guides/classical-feedforward-and-control-flow.ipynb", + "path": "docs/migration-guides/qiskit-1.0-features.mdx", "anchors": [ - "#classical-feedforward-and-control-flow", - "#for-loop", - "#if-statement", - "#next-steps", - "#switch-statement", - "#while-loop" + "#Aer", + "#BasicAer", + "#ParametricPulse", + "#QuantumCircuit-gates", + "#QuantumCircuit.qasm", + "#ScalableSymbolicPulse", + "#aer", + "#basicaer", + "#basicaer-1", + "#builder.build", + "#builderbuild", + "#complex-val-amp", + "#complex-valued-amplitude", + "#events", + "#execute", + "#fake-backends-runtime", + "#fake_provider", + "#fake_provider-special-testing-backends", + "#global-instances-and-functions", + "#injecting-circuit-gate-operations", + "#jupyter", + "#library", + "#migrate-from-v1-to-v2", + "#migrate-to-v2", + "#monitor", + "#other-migration-tips", + "#parametricpulse", + "#passes", + "#passmanager", + "#providers.basicaer", + "#pulse.library", + "#qiskit-10-feature-changes", + "#qiskit-10-migration-tool", + "#qiskit.circuit", + "#qiskit.converters", + "#qiskit.extensions", + "#qiskit.global", + "#qiskit.primitives", + "#qiskit.providers", + "#qiskit.pulse", + "#qiskit.qasm", + "#qiskit.quantum_info", + "#qiskit.test", + "#qiskit.tools", + "#qiskit.transpiler", + "#qiskit.utils", + "#qiskit.visualization", + "#qiskitcircuit", + "#qiskitconverters", + "#qiskitextensions", + "#qiskitprimitives", + "#qiskitproviders", + "#qiskitpulse", + "#qiskitqasm", + "#qiskitquantum_info", + "#qiskittest", + "#qiskittools", + "#qiskittranspiler", + "#qiskitutils", + "#qiskitvisualization", + "#quantumcircuit-gates", + "#quantumcircuitqasm", + "#scalablesymbolicpulse", + "#synthesis", + "#title-qiskit-10-feature-migration-guide-description-description-of-feature-changes-introduced-in-qiskit-10-and-how-to-update-your-code-to-work-with-them", + "#transpiler.passes", + "#updates-in-the-v1-interface", + "#v1-changes", + "#visualization" ] }, { - "path": "docs/guides/common-parameters.ipynb", + "path": "docs/migration-guides/qiskit-1.0-installation.mdx", "anchors": [ - "#approx-degree", - "#approximation-degree", - "#commonly-used-parameters-for-transpilation", - "#init-layout", - "#initial-layout", - "#next-steps", - "#random-number-generator-seed", - "#seed", - "#transpiler-stage-and-plugin-options", - "#xx-method" + "#activate", + "#activating-a-venv", + "#create-a-working-environment-for-qiskit-045-or-046", + "#create-a-working-environment-for-qiskit-10", + "#create-the-new-environment", + "#creating-a-venv", + "#debug-venv-for-0.45", + "#debug-venv-for-1.0", + "#for-developers", + "#for-users", + "#im-a-developer-my-environments-are-definitely-right-and-im-still-getting-the-error", + "#import-qiskit-raises-importerror", + "#import-qiskit-says-modulenotfounderror-no-module-named-qiskit", + "#import-qiskit-succeeds-but-trying-to-do-anything-returns-attributeerror-module-qiskit-has-no-attribute-", + "#manually-upgrade-an-existing-environment", + "#pip-refuses-to-install-some-packages-together", + "#pip-resolution-impossible", + "#pip-succeeds-but-prints-errors-after-running-pip-install-commands", + "#qiskit-1.0-import-error", + "#qiskit-10-packaging-changes", + "#recommendations-for-requirements", + "#recommendations-for-testing-against-qiskit-10", + "#sample-manual-github-actions-workflows", + "#sample-tox-configuration", + "#the-new-qiskit-structure", + "#the-old-qiskit-structure", + "#title-qiskit-10-installation-and-packaging-changes-description-adapt-to-changes-in-installing-and-depending-on-qiskit-10", + "#troubleshooting", + "#use-the-new-environment", + "#why-did-this-happen", + "#why-these-changes-happened" ] }, { - "path": "docs/guides/configure-error-mitigation.mdx", + "path": "docs/migration-guides/qiskit-1.0.mdx", "anchors": [ - "#advanced-error", - "#advanced-resilience-options-v1-primitives", - "#configure-error-mitigation-for-qiskit-runtime", - "#configure-estimator-v1-with-resilience-levels", - "#configure-estimator-v2-with-resilience-levels", - "#configure-sampler-v1-with-resilience-levels", - "#custom-error-settings-v2-primitives", - "#example", - "#example-1", - "#example-of-adding-resilience_options-with-the-estimator-primitive", - "#next-steps", - "#no-error-mitigation", - "#resilience-table", - "#title-configure-error-mitigation-description-how-to-configure-error-mitigation-with-qiskit-runtime", - "#turn-off-all-error-mitigation-and-error-suppression", - "#turn-on-gate-twirling", - "#turn-on-measurement-error-mitigation" + "#qiskit-10-migration-guide", + "#title-qiskit-10-migration-guide-description-how-to-update-your-project-so-that-it-works-with-qiskit-10" ] }, { - "path": "docs/guides/configure-error-suppression.mdx", + "path": "docs/migration-guides/qiskit-algorithms-module.mdx", "anchors": [ - "#advanced-runtime-compilation-options", - "#configure-runtime-compilation-for-qiskit-runtime", - "#example-configure-estimator-with-optimization-levels", - "#next-steps", - "#set-the-optimization-level", - "#set-the-optimization-level-v1-primitives-only", - "#transpilation-table" + "#algorithms-migration-guide", + "#amp-estimate", + "#amplitude", + "#amplitude-amplifiers", + "#amplitude-estimators", + "#background", + "#eigen", + "#eigensolvers", + "#grover-example", + "#how-to-choose-a-primitive-configuration-for-your-algorithm", + "#iae-example", + "#ipe-example", + "#minimum-eigensolvers", + "#numpyeigensolver", + "#numpyeigensolver-example", + "#numpyminimumeigensolver", + "#numpyminimumeigensolver-example", + "#phase", + "#phase-estimators", + "#qaoa", + "#qaoa-example", + "#time", + "#time-evolvers", + "#title-qiskitalgorithms-migration-guide-description-how-to-update-your-code-to-use-the-new-interface-for-qiskitalgorithms", + "#trotterqrte", + "#trotterqrte-example", + "#vqd", + "#vqd-example", + "#vqe", + "#vqe-applying-cvar-samplingvqe-example", + "#vqe-examples", + "#what-has-changed" ] }, { - "path": "docs/guides/configure-qiskit-local.mdx", + "path": "docs/migration-guides/qiskit-opflow-module.mdx", "anchors": [ - "#available-options", - "#configure-the-qiskit-sdk-locally", - "#environment-variables", - "#next-steps", - "#user-configuration-file" - ] - }, - { - "path": "docs/guides/construct-circuits.ipynb", - "anchors": [ - "#build-circuits", - "#construct-circuits", - "#next-steps", - "#parameterized-circuits", - "#what-is-a-quantum-circuit" + "#1-qubit-states", + "#algorithm-agnostic-expectations", + "#attention_primitives", + "#background", + "#common-non-parametrized-gates-clifford", + "#converters", + "#cvarexpectation", + "#evolutions", + "#example-1-aer-pauli-expectation", + "#example-1-apply-an-operator-to-a-state", + "#example-1-circuitsampler-for-sampling-parametrized-circuits", + "#example-1-define-the-hh-operator", + "#example-1-define-the-xx-operator", + "#example-1-finite-differences-batched-gradient", + "#example-1-paulisumop", + "#example-1-stabilizer-states", + "#example-1-trotter-evolution", + "#example-1-vqe-with-cvar", + "#example-2-circuitsampler-for-computing-expectation-values", + "#example-2-define-a-more-complex-operator", + "#example-2-evolution-with-time-dependent-hamiltonian", + "#example-2-matrix-expectation", + "#example-2-qfi", + "#example-2-z2symmetries-and-taperedpaulisumop", + "#example-3-abeliangrouper-for-grouping-operators", + "#example-3-matrix-evolution", + "#example-commuting", + "#example-convert-state", + "#example-pauli-sum-op", + "#example-z2-sym", + "#expectations", + "#gradients", + "#listops", + "#operator-base-class", + "#operator-globals", + "#opflow-migration-guide", + "#other-evolution-classes", + "#primitive-and-list-ops", + "#primitive-ops", + "#single-qubit-paulis", + "#state-functions", + "#title-qiskitopflow-migration-guide-description-how-to-update-your-code-to-stop-using-the-deprecated-qiskitopflow-module", + "#trotterizations" ] }, { - "path": "docs/guides/create-transpiler-plugin.ipynb", + "path": "docs/migration-guides/qiskit-quantum-instance.mdx", "anchors": [ - "#create-a-transpiler-plugin", - "#example-create-a-high-level-synthesis-plugin", - "#example-create-a-transpiler-stage-plugin", - "#example-create-a-unitary-synthesis-plugin" + "#choose-the-right-primitive-for-your-settings", + "#choose-the-right-primitive-for-your-task", + "#code-examples", + "#example-1-circuit-sampling-with-local-simulation", + "#example-2-expectation-value-calculation-with-local-noisy-simulation", + "#example-3-circuit-sampling-on-ibm-system-with-error-mitigation", + "#example-4-circuit-sampling-with-custom-bound-and-unbound-pass-managers", + "#quantuminstance-migration-guide", + "#title-quantuminstance-migration-guide-description-stop-using-the-deprecated-qiskit-quantuminstance-class" ] }, { - "path": "docs/guides/custom-backend.ipynb", + "path": "docs/migration-guides/qiskit-runtime-examples.mdx", "anchors": [ - "#create-a-custom-backendv2", - "#create-unique-backends", - "#transpile-against-custom-backends", - "#transpile-against-custom-backends-1", - "#understand-the-provider-backendv2-and-target-interfaces", - "#visualize-backends" + "#2-calculate-expectation-values", + "#backend--aersimulatormethodstatevector-shots100", + "#backend--providerget_backendibm_brisbane", + "#backend-aersimulatormethodstatevector-shots100", + "#backend-providerget_backendibm_brisbane", + "#circuits-must-obey-the-isa-of-a-particular-backend", + "#convert-to-isa-circuits", + "#define-a-real-backend", + "#define-a-statevector-simulator", + "#define-estimator", + "#define-provider-and-simulator-backend", + "#define-sampler", + "#end-to-end-examples", + "#estimator-algorithm", + "#estimator-example", + "#from-qiskit_aer-import-aersimulator", + "#get-local-simulator-backend", + "#next-steps", + "#run", + "#run-an-expectation-value-calculation", + "#run-calculation", + "#run-the-sampler-job-locally-using-fakemanilav2", + "#run-the-sampler-job-locally-using-fakemanilav2-1", + "#sampler-algorithm", + "#sampler-example", + "#use-estimator-to-design-an-algorithm", + "#use-sampler-to-design-an-algorithm", + "#you-can-use-a-fixed-seed-to-get-fixed-results", + "#you-can-use-a-fixed-seed-to-get-fixed-results-1" ] }, { - "path": "docs/guides/custom-transpiler-pass.ipynb", + "path": "docs/migration-guides/qiskit-runtime-from-ibm-provider.mdx", "anchors": [ - "#create-a-paulitwirl-transpiler-pass", - "#next-steps", - "#transpiler-passes", - "#use-the-paulitwirl-transpiler-pass", - "#write-a-custom-transpiler-pass" + "#example-basic-execution", + "#example-use-sessions", + "#instance-selection-get-a-provider", + "#load-accounts", + "#migrate-from-qiskit_ibm_provider", + "#save-accounts" ] }, { - "path": "docs/guides/debugging-tools.mdx", + "path": "docs/migration-guides/qiskit-runtime-from-ibmq-provider.mdx", "anchors": [ - "#hardware-considerations", - "#introduction-to-debugging-tools", - "#title-introduction-to-debugging-tools-description-introduction-to-testing-and-debugging-quantum-circuits-in-qiskit" + "#changes-in-class-name-and-location", + "#get-a-backend", + "#import-path", + "#instance-selection-get-a-provider", + "#load-accounts", + "#migrate-from-qiskit_ibmq_provider", + "#save-accounts", + "#title-migrate-from-qiskit-ibmq-provider-description-how-to-migrate-backendrun-from-qiskit-ibmq-provider-to-qiskit-runtime" ] }, { - "path": "docs/guides/defaults-and-configuration-options.ipynb", + "path": "docs/migration-guides/qiskit-runtime-options.mdx", "anchors": [ - "#all-available-parameters", - "#basic-usage-without-parameters", - "#next-steps", - "#parameters-used-to-describe-the-compilation-target", - "#parameters-used-to-influence-how-the-transpiler-works", - "#transpilation-default-settings-and-configuration-options" + "#algorithm-tuning", + "#in_page_toc_max_heading_level-2", + "#migrate-options" ] }, { - "path": "docs/guides/dynamic-circuits-considerations.ipynb", + "path": "docs/migration-guides/qiskit-runtime-use-case.mdx", "anchors": [ - "#hardware-considerations-and-limitations-for-classical-feedforward-and-control-flow", - "#memory-limits-and-latency-in-control-hardware" + "#basic-circuits", + "#common-use-cases", + "#define-the-service--this-allows-you-to-access-ibm-qpus-quantum-processing-units", + "#define-the-service-this-allows-you-to-access-ibm-qpus-quantum-processing-units", + "#get-a-backend", + "#get-results-for-the-first-and-only-pub", + "#get-the-averaged-iq-data", + "#get-the-averaged-iq-data-meas_level1", + "#migrate-options", + "#parm-circ", + "#specifying-options", + "#this-is-equivalent-to-meas_level1-meas_returnavg-in-backendrun", + "#title-common-use-cases-description-common-use-cases-when-migrating-from-backendrun-to-qiskit-runtime-primitives", + "#upload-view-or-delete-custom-prototype-programs" ] }, { - "path": "docs/guides/dynamical-decoupling-pass-manager.ipynb", + "path": "docs/migration-guides/qiskit-runtime.mdx", "anchors": [ - "#create-a-pass-manager-for-dynamical-decoupling", - "#next-steps" + "#basic-steps-to-migrate-to-primitives", + "#in_page_toc_max_heading_level-2", + "#migrate-to-qr", + "#next-steps", + "#overview", + "#step-1-determine-which-primitive-to-use", + "#step-2-change-imports-as-necessary", + "#step-3-replace-the-call-to-backendrun-with-a-call-to-qiskit_ibm_runtime", + "#step-3a-replace-any-backendrun-options-with-qiskit_ibm_runtime-options" ] }, { - "path": "docs/guides/error-mitigation-and-suppression-techniques.ipynb", + "path": "docs/migration-guides/sessions.mdx", "anchors": [ - "#dynamical-decoupling", - "#error-mitigation-and-suppression-techniques", - "#next-steps", - "#pauli-twirling", - "#probabilistic-error-cancellation-pec", - "#twirled-readout-error-extinction-trex", - "#zero-noise-extrapolation-zne" + "#batch", + "#best-practices", + "#divide", + "#example-partition-a-500-circuit-job-into-five-100-circuit-jobs-and-run-them-in-batch", + "#example-run-two-vqe-algorithms-in-a-session-by-using-threading", + "#execution-modes", + "#execution-modes-changes", + "#sessions", + "#sessions-versus-batch-usage", + "#two-vqe" ] }, { - "path": "docs/guides/estimate-job-run-time.mdx", + "path": "docs/migration-guides/v2-primitives.mdx", "anchors": [ - "#add-a-hadamard-gate-to-qubit-0", - "#bits-second-argument", - "#create-a-new-circuit-with-two-qubits-first-argument-and-two-classical", - "#create-a-sampler-object", - "#estimate-job-run-time", - "#generate-isa-circuits", - "#measure-qubit-0-to-cbit-0-and-qubit-1-to-cbit-1", - "#next-steps", - "#perform-a-controlled-x-gate-on-qubit-1-controlled-by-qubit-0", - "#run-on-the-least-busy-system-you-have-access-to", - "#submit-the-circuit-to-the-sampler", - "#view-the-estimated-job-usage-on-ibm-quantum-platform", - "#view-usage" + "#check-if-a-job-is-still-running", + "#define-a-quantum-circuit-with-2-qubits", + "#define-three-sets-of-parameters-for-the-circuit", + "#error-mit", + "#error-mitigation-and-suppression", + "#estimator-examples-input-and-output", + "#estimator-full-examples", + "#examples", + "#first-job", + "#get-results-for-the-first-and-only-pub", + "#import", + "#input", + "#input-and-output", + "#job-status", + "#major-changes", + "#migrate-to-the-qiskit-runtime-v2-primitives", + "#options", + "#output", + "#overview", + "#print-the-dictionary-format", + "#print-the-dictionary-format-1", + "#reshape-observable-array-for-broadcasting", + "#run-a-single-experiment", + "#run-a-single-experiment-1", + "#run-multiple-experiments-in-a-single-job", + "#run-parameterized-circuits", + "#sampler-full-examples", + "#second-job", + "#server-defaults-are-used-for-unset-options", + "#server-defaults-are-used-for-unset-options-1", + "#set-resilience_level-to-0", + "#setting-options-after-primitive-initialization", + "#setting-options-after-primitive-initialization-1", + "#setting-options-during-primitive-initialization", + "#setting-options-during-primitive-initialization-1", + "#setting-options-during-primitive-initialization-2", + "#step-1-map-classical-inputs-to-a-quantum-problem", + "#step-1-map-classical-inputs-to-a-quantum-problem-1", + "#step-2-optimize-problem-for-quantum-execution", + "#step-2-optimize-problem-for-quantum-execution-1", + "#step-3-execute-using-qiskit-primitives", + "#step-3-execute-using-qiskit-primitives-1", + "#steps-to-migrate-to-estimator-v2", + "#steps-to-migrate-to-sampler-v2", + "#this-does-bulk-update", + "#this-does-bulk-update--the-value-for-default_shots-is-overridden-if-you-specify-shots-with-run-or-in-the-pub", + "#this-does-bulk-update-the-value-for-default_shots-is-overridden-if-you-specify-shots-with-run-or-in-the-pub", + "#this-uses-auto-complete", + "#this-uses-auto-complete-1", + "#transpilation", + "#turn-on-dynamical-decoupling-with-sequence-xpxm", + "#turn-on-gate-twirling-requires-qiskit_ibm_runtime-0230-or-later", + "#turn-on-measurement-error-mitigation", + "#use-sessions-and-advanced-options", + "#v2-prim-options", + "#v2-primitives" ] }, { - "path": "docs/guides/execute-on-hardware.mdx", + "path": "docs/guides/addons.mdx", "anchors": [ - "#configure-runtime-options", - "#execute-on-target-hardware", - "#execution-modes", - "#guides-for-executing-on-hardware", - "#manage-jobs", - "#qpu-and-platform-information", - "#run-with-primitives", - "#title-execute-on-target-hardware-description-run-circuits-on-hardware-and-return-output-from-a-quantum-computer" + "#addons-for-mapping", + "#addons-for-optimizing", + "#addons-for-post-processing", + "#circuit-cutting", + "#multi-product-formulas", + "#operator-backpropagation", + "#qiskit-addons", + "#sample-based-quantum-diagonalization", + "#title-qiskit-addons-description-understand-the-qiskit-addon-tools-which-help-you-build-utility-grade-quantum-workflows" ] }, { - "path": "docs/guides/execution-modes-faq.mdx", - "anchors": ["#batch", "#qiskit-runtime-execution-modes-faqs", "#sessions"] + "path": "docs/guides/ai-transpiler-passes.mdx", + "anchors": [ + "#ai-circuit-synthesis-passes", + "#ai-routing-pass", + "#ai-transpiler-passes", + "#citation", + "#limits", + "#title-ai-powered-transpiler-passes-description-what-are-the-ai-transpiler-passes-and-how-to-use-them" + ] + }, + { + "path": "docs/guides/algorithmiq-tem.ipynb", + "anchors": [ + "#description", + "#example", + "#fetching-error-messages", + "#get-started", + "#get-support", + "#inputs", + "#next-steps", + "#options", + "#outputs", + "#overview", + "#tensor-network-error-mitigation-tem-a-qiskit-function-by-algorithmiq" + ] + }, + { + "path": "docs/guides/bit-ordering.mdx", + "anchors": [ + "#bit-ordering-in-the-qiskit-sdk", + "#change-ordering-in-qiskit", + "#circuit-diagrams", + "#gates", + "#integers", + "#next-steps", + "#qiskit-conventions", + "#quantum-circuits", + "#statevector-matrices", + "#strings", + "#title-bit-ordering-in-the-qiskit-sdk-description-learn-about-qiskit-sdks-ordering-conventions-and-why-we-chose-them" + ] + }, + { + "path": "docs/guides/build-noise-models.ipynb", + "anchors": [ + "#1-all-qubit-quantum-error", + "#2-specific-qubit-quantum-error", + "#add-errors-to-a-noise-model", + "#build-noise-models", + "#combining-quantum-errors", + "#converting-to-and-from-quantumchannel-operators", + "#example", + "#example-2-t1t2-thermal-relaxation", + "#execute-a-noisy-simulation-with-a-noise-model", + "#execute-the-noisy-simulation", + "#execute-the-noisy-simulation-1", + "#ideal-simulation", + "#initializing-a-noise-model-from-a-backend", + "#next-steps", + "#noise-example-1-basic-bit-flip-error-noise-model", + "#noise-model-examples", + "#note-on-non-local-qubit-quantum-error", + "#qiskit-aer-noise-module", + "#quantum-errors", + "#readout-error" + ] + }, + { + "path": "docs/guides/circuit-library.ipynb", + "anchors": [ + "#arithmetic-circuits", + "#benchmarking-and-complexity-theory-circuits", + "#circuit-library", + "#data-encoding-circuits", + "#n-local-circuits", + "#next-steps", + "#standard-gates", + "#time-evolution-circuits" + ] + }, + { + "path": "docs/guides/classical-feedforward-and-control-flow.ipynb", + "anchors": [ + "#classical-feedforward-and-control-flow", + "#for-loop", + "#if-statement", + "#next-steps", + "#switch-statement", + "#while-loop" + ] + }, + { + "path": "docs/guides/common-parameters.ipynb", + "anchors": [ + "#approx-degree", + "#approximation-degree", + "#commonly-used-parameters-for-transpilation", + "#init-layout", + "#initial-layout", + "#next-steps", + "#random-number-generator-seed", + "#seed", + "#transpiler-stage-and-plugin-options", + "#xx-method" + ] + }, + { + "path": "docs/guides/configure-error-mitigation.mdx", + "anchors": [ + "#advanced-error", + "#configure-error-mitigation", + "#configure-estimator-with-resilience-levels", + "#custom-error-settings", + "#example", + "#next-steps", + "#resilience-table", + "#title-configure-error-mitigation-description-how-to-configure-error-mitigation-with-qiskit-runtime", + "#turn-off-all-error-mitigation", + "#turn-on-gate-twirling", + "#turn-on-measurement-error-mitigation" + ] + }, + { + "path": "docs/guides/configure-error-suppression.mdx", + "anchors": [ + "#advanced-error-suppression-options", + "#configure-error-suppression", + "#transpilation-table", + "#turn-on-dynamical-decoupling-with-sequence-xpxm" + ] + }, + { + "path": "docs/guides/configure-qiskit-local.mdx", + "anchors": [ + "#available-options", + "#configure-the-qiskit-sdk-locally", + "#environment-variables", + "#next-steps", + "#user-configuration-file" + ] + }, + { + "path": "docs/guides/construct-circuits.ipynb", + "anchors": [ + "#build-circuits", + "#construct-circuits", + "#next-steps", + "#parameterized-circuits", + "#what-is-a-quantum-circuit" + ] + }, + { + "path": "docs/guides/create-transpiler-plugin.ipynb", + "anchors": [ + "#create-a-transpiler-plugin", + "#example-create-a-high-level-synthesis-plugin", + "#example-create-a-transpiler-stage-plugin", + "#example-create-a-unitary-synthesis-plugin" + ] + }, + { + "path": "docs/guides/custom-backend.ipynb", + "anchors": [ + "#create-a-custom-backendv2", + "#create-unique-backends", + "#transpile-against-custom-backends", + "#transpile-against-custom-backends-1", + "#understand-the-provider-backendv2-and-target-interfaces", + "#visualize-backends" + ] + }, + { + "path": "docs/guides/custom-transpiler-pass.ipynb", + "anchors": [ + "#create-a-paulitwirl-transpiler-pass", + "#next-steps", + "#transpiler-passes", + "#use-the-paulitwirl-transpiler-pass", + "#write-a-custom-transpiler-pass" + ] + }, + { + "path": "docs/guides/debugging-tools.mdx", + "anchors": [ + "#hardware-considerations", + "#introduction-to-debugging-tools", + "#title-introduction-to-debugging-tools-description-introduction-to-testing-and-debugging-quantum-circuits-in-qiskit" + ] + }, + { + "path": "docs/guides/defaults-and-configuration-options.ipynb", + "anchors": [ + "#all-available-parameters", + "#basic-usage-without-parameters", + "#next-steps", + "#parameters-used-to-describe-the-compilation-target", + "#parameters-used-to-influence-how-the-transpiler-works", + "#transpilation-default-settings-and-configuration-options" + ] + }, + { + "path": "docs/guides/dynamic-circuits-considerations.ipynb", + "anchors": [ + "#hardware-considerations-and-limitations-for-classical-feedforward-and-control-flow", + "#memory-limits-and-latency-in-control-hardware" + ] + }, + { + "path": "docs/guides/dynamical-decoupling-pass-manager.ipynb", + "anchors": [ + "#create-a-pass-manager-for-dynamical-decoupling", + "#next-steps" + ] + }, + { + "path": "docs/guides/error-mitigation-and-suppression-techniques.ipynb", + "anchors": [ + "#dynamical-decoupling", + "#error-mitigation-and-suppression-techniques", + "#next-steps", + "#pauli-twirling", + "#pec", + "#probabilistic-error-amplification-pea", + "#probabilistic-error-cancellation-pec", + "#twirled-readout-error-extinction-trex", + "#zero-noise-extrapolation-zne", + "#zne" + ] + }, + { + "path": "docs/guides/estimate-job-run-time.mdx", + "anchors": [ + "#estimate-job-run-time", + "#next-steps", + "#view-the-estimated-workload-job-usage-on-ibm-quantum-platform", + "#view-usage" + ] + }, + { + "path": "docs/guides/execute-on-hardware.mdx", + "anchors": [ + "#configure-runtime-options", + "#execute-on-target-hardware", + "#execution-modes", + "#guides-for-executing-on-hardware", + "#manage-jobs", + "#qpu-and-platform-information", + "#run-with-primitives", + "#title-execute-on-target-hardware-description-run-circuits-on-hardware-and-return-output-from-a-quantum-computer" + ] + }, + { + "path": "docs/guides/execution-modes-faq.mdx", + "anchors": ["#batch", "#qiskit-runtime-execution-modes-faqs", "#sessions"] }, { "path": "docs/guides/execution-modes-rest-api.mdx", @@ -326,22 +773,43 @@ { "path": "docs/guides/execution-modes.mdx", "anchors": [ + "#batch-and-session-usage-calculation", "#best-practices", + "#choose-batch-or-sessions-mode", + "#failed-and-canceled-jobs", + "#failed-job", "#introduction-to-qiskit-runtime-execution-modes", - "#sessions-versus-batch-usage" + "#next-steps", + "#prepare-to-use-execution-modes", + "#sessions-versus-batch-usage", + "#usage" ] }, { "path": "docs/guides/fair-share-scheduler.mdx", "anchors": [ + "#allocation-and-administration", "#fair-share-scheduler", "#fair-share-terms", "#how-the-fair-share-scheduler-works", "#next-steps", - "#shares-and-administration", "#wait-time-estimate" ] }, + { + "path": "docs/guides/functions.ipynb", + "anchors": [ + "#check-job-status", + "#fetch-error-messages", + "#get-started-with-qiskit-functions", + "#install-qiskit-functions-catalog-client", + "#introduction-to-qiskit-functions", + "#list-previously-run-jobs-run-with-qiskit-functions", + "#next-steps", + "#retrieve-results", + "#run-enabled-functions" + ] + }, { "path": "docs/guides/get-qpu-information.ipynb", "anchors": [ @@ -364,6 +832,7 @@ "#2-create-a-circuit-and-an-observable", "#3-initialize-qiskit-runtime-estimator", "#3-initialize-the-qiskit-runtime-sampler", + "#4-invoke-the-estimator-and-get-results", "#4-invoke-the-sampler-and-get-results", "#backend", "#example-backendestimator", @@ -373,6 +842,7 @@ "#get-started-with-sampler", "#get-started-with-the-backend-primitives", "#next-steps", + "#similarities-and-differences-between-backend-and-runtime-primitives", "#start-estimator", "#start-sampler" ] @@ -384,6 +854,7 @@ "#create-and-run-a-simple-quantum-program", "#hello-world", "#next-steps", + "#optimize", "#scale-to-large-numbers-of-qubits", "#step-1-map-the-problem", "#step-1-map-the-problem-to-a-quantum-native-format", @@ -395,18 +866,41 @@ "#step-4-post-process-results" ] }, + { + "path": "docs/guides/ibm-circuit-function.ipynb", + "anchors": [ + "#all-available-options", + "#defaults", + "#description", + "#example", + "#fetching-error-messages", + "#get-started", + "#get-support", + "#ibm-circuit-function", + "#inputs", + "#mitigation-level", + "#next-steps", + "#options", + "#outputs", + "#overview", + "#structure" + ] + }, { "path": "docs/guides/index.mdx", "anchors": [ + "#benchmarking-and-the-benchpress-package", "#introduction-to-qiskit", "#is-qiskit-runtime-open-source", "#next-steps", + "#qiskit-addons", + "#qiskit-functions", "#qiskit-runtime", "#qiskit-serverless", "#qiskit-transpiler-as-a-service", "#the-qiskit-ecosystem", "#the-qiskit-sdk", - "#title-introduction-to-qiskit-description-what-is-qiskit-this-document-provides-an-introduction-to-the-qiskit-stack-in_page_toc_show-false" + "#title-introduction-to-qiskit-description-what-is-qiskit-this-document-provides-an-introduction-to-the-qiskit-stack" ] }, { @@ -437,20 +931,19 @@ "path": "docs/guides/instances.mdx", "anchors": [ "#connect-instance", - "#connect-to-an-instance", - "#find-your-instances", + "#how-jobs-relate-to-instances", + "#how-usage-affects-job-priority-within-an-instance", "#instances", - "#instances-and-jobs", - "#leaving-an-instance", + "#leave-an-instance", + "#list-your-instances-programmatically", "#next-steps", "#open-plan", - "#optional-list-all-the-instances-you-can-access", - "#optional-specify-it-at-service-level-this-becomes-the-default-unless-overwritten", - "#optional-specify-it-at-the-backend-level-which-overwrites-the-service-level-specification-when-this-backend-is-used", - "#qiskit-ibm-provider", - "#qiskit-ibm-runtime", + "#open-plan-instance", + "#specify-an-instance-in-your-code", "#switch-instances", - "#title-instances-description-what-ibm-quantum-platform-instances-are-and-how-to-use-them" + "#title-instances-description-what-ibm-quantum-platform-instances-are-and-how-to-use-them", + "#view-instances-in-the-ibm-quantum-interface", + "#view-your-instances" ] }, { @@ -494,6 +987,9 @@ "path": "docs/guides/intro-to-patterns.mdx", "anchors": [ "#execute-on-target-hardware", + "#guides-demonstrating-qiskit-patterns-in-action", + "#guides-focused-on-one-or-more-pattern-steps", + "#guides-focused-on-the-full-patterns-workflow", "#introduction-to-qiskit-patterns", "#map-problem-to-quantum-circuits-and-operators", "#next-steps", @@ -511,31 +1007,45 @@ "#title-introduction-to-openqasm-description-an-introduction-to-openqasm-open-quantum-assembly-language" ] }, + { + "path": "docs/guides/job-limits.mdx", + "anchors": [ + "#2-qubit-limit", + "#job-limits", + "#max-shots", + "#maximum-executions", + "#maximum-number-of-low-level-instructions-per-qubit", + "#maximum-number-of-two-qubit-gates-per-job", + "#per-qubit" + ] + }, { "path": "docs/guides/latest-updates.mdx", "anchors": [ + "#15-august-2024", + "#16-september-2024", "#18-june-2024", "#28-march-2024", "#3-july-2024", "#3-june-2024", - "#bug-fixes", - "#deprecation-notes", - "#deprecation-notes-1", - "#ibm-quantum-blog-defining--and-citing--the-qiskit-sdk", - "#ibm-quantum-blog-defining-and-citing-the-qiskit-sdk", + "#application-functions", + "#circuit-functions", + "#ibm-quantum-blog-a-closer-look-at-qiskit-code-assistant", "#latest-release-summaries", "#latest-updates", + "#new-and-updated-content", "#new-features", - "#new-features-1", + "#qiskit-functions-catalog-service-client-v010", + "#qiskit-functions-catalog-updates", "#qiskit-global-community-events", - "#qiskit-ibm-runtime-service-updates", - "#qiskit-runtime-ibm-client-0240", - "#qiskit-runtime-ibm-client-0250", - "#qiskit-sdk-v110", + "#qiskit-runtime-client-0280", + "#qiskit-runtime-service-updates", + "#qiskit-sdk-v120", "#qiskit-transpiler-service-client-v030", + "#removal", "#see-all-product-updates", "#title-latest-updates-description-the-latest-updates-from-qiskit-and-ibm-quantum-including-the-latest-package-release-summaries-news-and-events", - "#upgrade-notes", + "#user-experience-improvements", "#whats-new-in-the-documentation" ] }, @@ -580,14 +1090,30 @@ { "path": "docs/guides/max-execution-time.mdx", "anchors": [ + "#batch-max-time", + "#batch-maximum-execution-time", "#job-maximum-execution-time", + "#max-QPU", "#max-job", - "#max-system", - "#maximum-execution-time-for-a-qiskit-runtime-job-or-session", + "#maximum-execution-time-for-qiskit-runtime-workloads", "#next-steps", "#other-limitations", - "#session-maximum-execution-time", - "#system-maximum-execution-time" + "#qpu-maximum-execution-time", + "#session-max-time", + "#session-maximum-execution-time" + ] + }, + { + "path": "docs/guides/measure-qubits.mdx", + "anchors": [ + "#apply-a-measurement-to-a-circuit", + "#measure-class", + "#measure-qubits", + "#next-steps", + "#quantumcircuitmeasure-method", + "#quantumcircuitmeasure_active-method", + "#quantumcircuitmeasure_all-method", + "#title-measure-qubits-description-learn-how-to-measure-qubits-including-constraints-on-where-measurements-can-be-used" ] }, { @@ -599,11 +1125,13 @@ "anchors": [ "#cancel-a-job", "#example", + "#execution-spans", "#monitor-a-job", "#monitor-or-cancel-a-job", "#next-steps", "#retrieve-job-results-at-a-later-time", - "#retrieve-later" + "#retrieve-later", + "#view-sampler-execution-spans" ] }, { @@ -611,7 +1139,7 @@ "anchors": [ "#eagle", "#falcon", - "#find-the-native-gate-set-for-a-system", + "#find-the-native-gate-set-for-a-qpu", "#heron", "#native-gates-and-operations", "#native-gates-on-platform", @@ -622,6 +1150,31 @@ "#with-qiskit" ] }, + { + "path": "docs/guides/noise-learning.ipynb", + "anchors": [ + "#input-noise-model-to-a-primitive", + "#next-steps", + "#noise-learning-helper", + "#noise-learning-options", + "#overview" + ] + }, + { + "path": "docs/guides/online-lab-environments.mdx", + "anchors": [ + "#additional-notebook-environments-for-qiskit-users", + "#google-colab", + "#helpful-links", + "#ibm-watson-studio", + "#microsoft-azure-machine-learning-studio", + "#online-environments", + "#online-lab-environments", + "#ovhcloud-ai-notebooks", + "#qbraid-lab", + "#recommended-notebook-environments-with-qiskit-preinstalled" + ] + }, { "path": "docs/guides/operator-class.ipynb", "anchors": [ @@ -659,6 +1212,7 @@ "#get-started-with-the-qiskit-transpiler", "#guides-for-optimizing-for-target-hardware", "#optimize-for-target-hardware", + "#qiskit-functions", "#qiskit-transpiler-service", "#title-optimize-for-target-hardware-description-optimize-abstract-circuits-and-operators-so-they-can-run-on-quantum-hardware" ] @@ -685,19 +1239,37 @@ "#title-post-process-results-description-post-process-the-results-obtained-by-running-on-a-quantum-computer" ] }, + { + "path": "docs/guides/primitive-input-output.ipynb", + "anchors": [ + "#broadcasting-rules", + "#estimator-output", + "#estimator-pub", + "#how-the-estimator-calculates-error", + "#overview-of-primitive-results", + "#overview-of-pubs", + "#primitive-inputs-and-outputs", + "#pubs", + "#result-metadata", + "#sampler-output", + "#sampler-pub" + ] + }, { "path": "docs/guides/primitives-examples.mdx", "anchors": [ - "#define-three-sets-of-parameters-for-the-circuit", - "#define-three-sets-of-parameters-for-the-circuit-1", "#estimator-examples", - "#first-job", - "#first-job-1", + "#next-steps", "#primitives-examples", "#run-a-single-experiment", + "#run-a-single-experiment-1", + "#run-multiple-experiments-in-a-single-job", + "#run-multiple-experiments-in-a-single-job-1", + "#run-parameterized-circuits", + "#run-parameterized-circuits-1", "#sampler-examples", - "#second-job", - "#second-job-1" + "#use-sessions-and-advanced-options", + "#use-sessions-and-advanced-options-1" ] }, { @@ -705,41 +1277,43 @@ "anchors": [ "#1-initialize-the-account", "#1-initialize-the-account-1", + "#1-initialize-the-account-2", "#2-create-a-qasm-circuit", "#2-create-a-qasm-circuit-1", + "#2-define-parameters", + "#3-create-a-quantum-circuit-and-add-parameterized-gates", "#3-run-the-quantum-circuit-using-sampler-v2-api", "#3-run-the-quantum-circuit-using-the-estimator-v2-api", "#4-check-job-status-and-get-results", "#4-check-job-status-and-get-results-1", + "#4-generate-qasm-3-code", + "#5-run-the-quantum-circuit-using-sampler-v2-api", "#5-work-with-runtime-options", "#5-work-with-runtime-options-1", + "#6-check-job-status-and-get-results", "#estimator-primitive-with-rest-api", "#next-steps", "#primitives-with-rest-api", "#sampler-primitive-with-rest-api", + "#sampler-primitive-with-rest-api-and-parameterized-circuits", "#start-estimator", "#start-sampler", + "#start-sampler-parms", "#title-primitives-with-rest-api-description-how-to-use-the-sampler-and-estimator-primitives-with-qiskit-runtime-rest-api" ] }, { "path": "docs/guides/primitives.mdx", "anchors": [ + "#base-classes", "#benefits-of-qiskit-primitives", - "#broadcast-rules", - "#broadcasting-rules", "#estimator", - "#estimator-v1", - "#estimator-v2", - "#how-to-use-qiskit-primitives", - "#implementation-of-qiskit-primitives", - "#interface-changes", + "#implementations", "#introduction-to-primitives", "#next-steps", - "#sampler", - "#sampler-v1", - "#sampler-v2", - "#v2-primitives" + "#primitive-definition-and-implementations", + "#primitive-details", + "#sampler" ] }, { @@ -786,36 +1360,117 @@ "#shift_phase" ] }, + { + "path": "docs/guides/q-ctrl-optimization-solver.ipynb", + "anchors": [ + "#1-define-the-problem", + "#1-define-the-problem-1", + "#2-run-the-problem", + "#2-run-the-problem-1", + "#3-get-the-result", + "#3-retrieve-the-result", + "#benchmarks", + "#example-constrained-optimization", + "#example-unconstrained-optimization", + "#function-description", + "#get-started", + "#get-support", + "#inputs", + "#inputs-and-outputs", + "#next-steps", + "#optimization-solver-a-qiskit-function-by-q-ctrl-fire-opal", + "#outputs", + "#overview" + ] + }, + { + "path": "docs/guides/q-ctrl-performance-management.ipynb", + "anchors": [ + "#benchmarks", + "#description", + "#estimator-example", + "#estimator-inputs", + "#estimator-outputs", + "#estimator-primitive", + "#get-started", + "#get-support", + "#next-steps", + "#overview", + "#performance-management-a-qiskit-function-by-q-ctrl-fire-opal", + "#sampler-example", + "#sampler-inputs", + "#sampler-outputs", + "#sampler-primitive" + ] + }, { "path": "docs/guides/qasm-feature-table.mdx", - "anchors": ["#next-steps", "#openqasm-3-feature-table"] - }, - { - "path": "docs/guides/qiskit-serverless.mdx", - "anchors": [ - "#", - "#alternatively-one-can-automatically-select-a-system-according-to-most-available", - "#backend--ibmleastbusyqpuselectorserviceget_backendmin_num_qubits127", - "#backend-ibmleastbusyqpuselectorserviceget_backendmin_num_qubits127", - "#build-a-qiskit-pattern", - "#building-qiskit-patterns-with-qiskit-serverless", - "#from-qiskit_serverless_toolsselectors-import-ibmleastbusyqpuselector", - "#from-qiskittranspilerpreset_passmanagers-import-generate_preset_pass_manager", - "#migration-guide", - "#note-saved-items-must-be-serializable", - "#pm--generate_preset_pass_manageroptimization_level3-backendbackend", - "#pm-generate_preset_pass_manageroptimization_level3-backendbackend", - "#resource-management-alpha", - "#run-a-qiskit-pattern-remotely-on-qiskit-serverless", - "#run-workloads-remotely-with-qiskit-serverless", - "#save-results-of-program-execution", - "#step-1-map-quantum-circuits-and-operators", - "#step-2-optimize-the-circuit-for-quantum-execution-with-automatically-selected-system", - "#step-3-execute-the-target-circuit", - "#step-4-postprocess-the-results", - "#target_circuit--pmrunabstract_circuit", - "#target_circuit-pmrunabstract_circuit", - "#title-run-workloads-remotely-with-qiskit-serverless-description-how-to-run-quantum-computing-workloads-remotely-using-qiskit-serverless-on-ibm-quantum" + "anchors": [ + "#next-steps", + "#openqasm-3-feature-table", + "#title-openqasm-3-feature-table-description-a-table-of-the-language-features-included-in-openqasm-3" + ] + }, + { + "path": "docs/guides/qedma-qesem.ipynb", + "anchors": [ + "#benchmarks", + "#custom-options", + "#description", + "#example", + "#function-parameters", + "#get-started", + "#get-support", + "#next-steps", + "#overview", + "#qesem-a-qiskit-function-by-qedma", + "#unique-error-mitigation-features" + ] + }, + { + "path": "docs/guides/qiskit-code-assistant-jupyterlab.mdx", + "anchors": [ + "#authentication-and-setup", + "#configure-extension-settings", + "#contribute-to-the-jupyterlab-extension", + "#generate-code", + "#get-started-using-the-qiskit-code-assistant-extension-for-jupyterlab", + "#install-the-jupyterlab-extension", + "#next-steps", + "#title-use-qiskit-code-assistant-in-jupyterlab-description-how-to-install-use-and-configure-qiskit-code-assistant-in-jupyterlab", + "#troubleshooting", + "#uninstall-the-jupyterlab-extension", + "#use-qiskit-code-assistant-in-jupyterlab", + "#work-with-code-suggestions" + ] + }, + { + "path": "docs/guides/qiskit-code-assistant-vscode.mdx", + "anchors": [ + "#authentication-and-setup", + "#configure-extension-settings", + "#contribute-to-the-vs-code-extension", + "#generate-code", + "#get-started-using-the-qiskit-code-assistant-extension-for-vs-code", + "#install-the-vs-code-extension", + "#next-steps", + "#title-use-qiskit-code-assistant-in-vs-code-description-how-to-install-use-and-configure-qiskit-code-assistant-in-visual-studio-code-vs-code", + "#troubleshooting", + "#uninstall-the-vs-code-extension", + "#use-qiskit-code-assistant-in-visual-studio-code", + "#work-with-code-suggestions" + ] + }, + { + "path": "docs/guides/qiskit-code-assistant.mdx", + "anchors": [ + "#features", + "#more-information-and-citations", + "#next-steps", + "#qiskit-code-assistant", + "#the-large-language-model-llm-behind-qiskit-code-assistant", + "#the-qiskit-humaneval-benchmark", + "#title-qiskit-code-assistant-description-learn-how-to-use-qiskit-code-assistant-a-generative-ai-code-assistant" ] }, { @@ -823,10 +1478,12 @@ "anchors": [ "#citation", "#examples", - "#install-the-qiskit-transpiler-service-package", + "#install-the-qiskit-ibm-transpiler-package", "#install-transpiler-service", + "#limits-of-the-qiskit-transpiler-service", "#next-steps", - "#qiskit-transpiler-service-transpile-options", + "#qiskit-ibm-transpiler-transpile-options", + "#title-transpile-circuits-remotely-with-the-qiskit-transpiler-service-description-what-is-the-qiskit-transpiler-service-and-how-to-use-it", "#transpile-circuits-remotely-with-the-qiskit-transpiler-service" ] }, @@ -834,16 +1491,41 @@ "path": "docs/guides/qpu-information.mdx", "anchors": [ "#coupling-map", - "#expanded-card-for-a-sample-system", - "#find-system-information-from-other-channels", + "#expanded-card-for-a-sample-qpu", + "#find-qpu-information-from-other-channels", "#major-version", "#minor-version", + "#qpu-configuration-values", + "#qpu-information", + "#qpu-tabs", + "#qpu-versioning", "#revision-version", - "#system-configuration-values", - "#system-information", - "#system-tabs", - "#system-versioning", - "#view-system-configuration" + "#view-qpu-configuration" + ] + }, + { + "path": "docs/guides/qunasys-quri-chemistry.ipynb", + "anchors": [ + "#azobenzene", + "#configuration-recovery", + "#error-mitigation", + "#execute-algorithms", + "#execute-qsci", + "#function-description", + "#get-started", + "#next-steps", + "#optimization-based-qsci", + "#overview", + "#performance", + "#qsci-algorithm-parameter", + "#quri-chemistry", + "#quri-chemistry-a-qiskit-function-by-qunasys", + "#quri-chemistry-with-double-excitation-ansatz", + "#quri-chemistry-with-uccsd", + "#set-up-the-molecule", + "#support", + "#symmetry-post-selection", + "#textn_2-dissociation-curve" ] }, { @@ -871,19 +1553,24 @@ { "path": "docs/guides/retired-qpus.mdx", "anchors": [ - "#for-a-job-run-from-ibm-provider", - "#for-a-job-run-from-qiskit-runtime", - "#retired-systems", + "#retired-qpus", "#retrieve", - "#retrieve-a-job-from-a-retired-system" + "#retrieve-a-job-from-a-retired-qpu" ] }, { "path": "docs/guides/run-jobs-batch.mdx", "anchors": [ - "#example-partition-a-list-of-circuits-into-multiple-jobs-and-run-them-in-batch", + "#batch-details", + "#batch-length", + "#close", + "#close-a-batch", + "#determine-batch-details", + "#open-a-batch", "#partition", - "#run-jobs-in-a-batch" + "#reconfigure-jobs-for-parallel-processing", + "#run-jobs-in-a-batch", + "#specify-batch-length" ] }, { @@ -912,26 +1599,21 @@ { "path": "docs/guides/runtime-options-overview.mdx", "anchors": [ - "#advanced-qiskit-runtime-options", - "#commonly-used-options", - "#error-mitigation", - "#instantiate-the-options-class-v1", + "#available-options", + "#defaults", + "#introduction-to-options", "#next-steps", - "#options-class", "#options-classes", - "#pass-options-to-a-primitive", - "#primitive-initialization", - "#run-method", - "#runtime-compilation", - "#sample-two-circuits-at-128-shots-each", - "#setting-options-after-primitive-initialization", - "#setting-options-during-primitive-initialization", - "#setting-shots-during-primitive-initialization", - "#shots", - "#this-does-bulk-update--the-value-for-default_shots-is-overridden-if-you-specify-shots-with-run-or-in-the-pub", - "#this-does-bulk-update-the-value-for-default_shots-is-overridden-if-you-specify-shots-with-run-or-in-the-pub", - "#this-uses-auto-complete", - "#v2-changes" + "#options-classes-summary", + "#options-compatibility", + "#options-compatibility-table", + "#options-defaults", + "#options-precedence", + "#options-structure", + "#options-table", + "#overview", + "#set-options", + "#structure" ] }, { @@ -946,6 +1628,62 @@ "#save-results-to-disk" ] }, + { + "path": "docs/guides/serverless-first-program.ipynb", + "anchors": [ + "#deploy-to-ibm-quantum-platform", + "#example-remote-transpilation-with-qiskit-serverless", + "#get-program-arguments", + "#next-steps", + "#set-up-your-files", + "#write-your-first-qiskit-serverless-program" + ] + }, + { + "path": "docs/guides/serverless-manage-resources.ipynb", + "anchors": [ + "#explore-different-task-configurations", + "#manage-data-across-your-program", + "#manage-qiskit-serverless-compute-and-data-resources", + "#next-steps", + "#parallel-workflows" + ] + }, + { + "path": "docs/guides/serverless-port-code.mdx", + "anchors": [ + "#distribute_tasktargetcpu-1", + "#get-backend", + "#next-steps", + "#port-code-to-qiskit-serverless", + "#remotely-run-in-qiskit-serverless", + "#title-port-code-to-qiskit-serverless-description-how-to-port-existing-code-to-leverage-qiskit-serverless", + "#update-the-experiment", + "#upload-to-qiskit-serverless" + ] + }, + { + "path": "docs/guides/serverless-run-first-workload.ipynb", + "anchors": [ + "#check-job-status", + "#list-previously-run-jobs-run-with-qiskit-serverless", + "#list-programs-available", + "#next-steps", + "#retrieve-logs-and-results", + "#run-an-uploaded-program-and-pass-inputs", + "#run-your-first-qiskit-serverless-workload-remotely" + ] + }, + { + "path": "docs/guides/serverless.mdx", + "anchors": [ + "#install-qiskit-serverless", + "#next-steps", + "#title-introduction-to-qiskit-serverless-description-use-qiskit-serverless-to-run-quantum-classical-workloads-across-the-cloud-and-on-quantum-centric-supercomputers", + "#what-is-qiskit-serverless", + "#when-should-i-use-qiskit-serverless" + ] + }, { "path": "docs/guides/sessions.mdx", "anchors": [ @@ -1007,10 +1745,12 @@ "#circuit-for-which-you-want-to-obtain-the-expected-value", "#exact-simulation-with-qiskit-sdk-primitives", "#get-the-expected-value-from-the-result", + "#get-the-probability-distribution-or-measurement-outcome", "#initialize-estimator", - "#initialize-sampler", + "#initialize-samplerv2", "#next-steps", "#run-and-get-results", + "#run-and-get-results-1", "#set-estimator-run-options", "#title-exact-simulation-with-qiskit-sdk-primitives-description-how-to-perform-exact-simulation-of-quantum-circuits-using-primitives-in-qiskit", "#use-the-reference-estimator", @@ -1018,7 +1758,7 @@ ] }, { - "path": "docs/guides/specify-observables-pauli.mdx", + "path": "docs/guides/specify-observables-pauli.ipynb", "anchors": [ "#measure-in-pauli-bases", "#next-steps", @@ -1026,681 +1766,428 @@ ] }, { - "path": "docs/guides/synthesize-unitary-operators.mdx", - "anchors": [ - "#next-steps", - "#re-synthesis-for-circuit-optimization", - "#synthesize-unitary-operations", - "#title-synthesize-unitary-operations-description-on-the-implementation-of-arbitrary-unitary-matrices-on-qubits" - ] - }, - { - "path": "docs/guides/transpile-rest-api.mdx", - "anchors": [ - "#next-steps", - "#query-the-qiskit-transpiler-service", - "#request-results-based-on-the-task_id", - "#title-transpile-using-rest-api-description-how-to-transpile-quantum-circuits-using-rest-apis", - "#transpile-using-rest-api" - ] - }, - { - "path": "docs/guides/transpile-with-pass-managers.ipynb", - "anchors": [ - "#create-a-staged-pass-manager", - "#create-your-own-pass-manager", - "#generate-a-preset-staged-pass-manager", - "#next-steps", - "#transpile-with-pass-managers", - "#what-is-a-staged-pass-manager" - ] - }, - { - "path": "docs/guides/transpile.mdx", - "anchors": [ - "#default-transpilation", - "#instruction-set-architecture", - "#introduction-to-transpilation", - "#next-steps", - "#transpile-with-pass-managers", - "#transpiler-stages" - ] - }, - { - "path": "docs/guides/transpiler-plugins.ipynb", - "anchors": [ - "#install-and-use-transpiler-plugins", - "#list-available-high-level-synthesis-plugins", - "#list-available-plugins-and-install-new-ones", - "#list-available-transpiler-stage-plugins", - "#list-available-unitary-synthesis-plugins", - "#next-steps", - "#use-a-high-level-synthesis-plugin", - "#use-a-plugin", - "#use-a-transpiler-stage-plugin", - "#use-a-unitary-synthesis-plugin" - ] - }, - { - "path": "docs/guides/transpiler-stages.ipynb", - "anchors": [ - "#init-stage", - "#layout-stage", - "#next-steps", - "#optimization-stage", - "#routing-stage", - "#scheduling", - "#translation-stage", - "#transpiler-stages" - ] - }, - { - "path": "docs/guides/visualize-circuits.ipynb", - "anchors": [ - "#alternative-renderers", - "#control-circuit-drawings", - "#customize-the-output", - "#disable-plot-barriers-and-reverse-bit-order", - "#draw-a-quantum-circuit", - "#next-steps", - "#renderer-specific-customizations", - "#standalone-circuit-drawing-function", - "#visualize-circuits" - ] - }, - { - "path": "docs/guides/visualize-results.ipynb", - "anchors": [ - "#options-when-plotting-a-histogram", - "#plot-histogram-", - "#plotting-estimator-results", - "#visualize-results" - ] - }, - { - "path": "docs/migration-guides/index.mdx", - "anchors": ["#introduction"] - }, - { - "path": "docs/migration-guides/local-simulators.mdx", - "anchors": [ - "#aersimulator", - "#clifford-sim", - "#clifford-simulation", - "#fake-backends", - "#migrate-from-cloud-simulators-to-local-simulators", - "#migrate-to-local-simulators", - "#title-migrate-to-local-simulators-description-migrate-from-using-the-ibm-quantum-cloud-simulators-to-using-qiskit-runtime-local-testing-mode", - "#when-should-simulators-be-used", - "#why-are-the-cloud-simulators-being-retired" - ] - }, - { - "path": "docs/migration-guides/qiskit-1.0-features.mdx", - "anchors": [ - "#Aer", - "#BasicAer", - "#ParametricPulse", - "#QuantumCircuit-gates", - "#QuantumCircuit.qasm", - "#ScalableSymbolicPulse", - "#aer", - "#basicaer", - "#basicaer-1", - "#builder.build", - "#builderbuild", - "#complex-val-amp", - "#complex-valued-amplitude", - "#events", - "#execute", - "#fake-backends-runtime", - "#fake_provider", - "#fake_provider-special-testing-backends", - "#global-instances-and-functions", - "#injecting-circuit-gate-operations", - "#jupyter", - "#library", - "#migrate-from-v1-to-v2", - "#migrate-to-v2", - "#monitor", - "#other-migration-tips", - "#parametricpulse", - "#passes", - "#passmanager", - "#providers.basicaer", - "#pulse.library", - "#qiskit-10-feature-changes", - "#qiskit-10-migration-tool", - "#qiskit.circuit", - "#qiskit.converters", - "#qiskit.extensions", - "#qiskit.global", - "#qiskit.primitives", - "#qiskit.providers", - "#qiskit.pulse", - "#qiskit.qasm", - "#qiskit.quantum_info", - "#qiskit.test", - "#qiskit.tools", - "#qiskit.transpiler", - "#qiskit.utils", - "#qiskit.visualization", - "#qiskitcircuit", - "#qiskitconverters", - "#qiskitextensions", - "#qiskitprimitives", - "#qiskitproviders", - "#qiskitpulse", - "#qiskitqasm", - "#qiskitquantum_info", - "#qiskittest", - "#qiskittools", - "#qiskittranspiler", - "#qiskitutils", - "#qiskitvisualization", - "#quantumcircuit-gates", - "#quantumcircuitqasm", - "#scalablesymbolicpulse", - "#synthesis", - "#title-qiskit-10-feature-migration-guide-description-description-of-feature-changes-introduced-in-qiskit-10-and-how-to-update-your-code-to-work-with-them", - "#transpiler.passes", - "#updates-in-the-v1-interface", - "#v1-changes", - "#visualization" - ] - }, - { - "path": "docs/migration-guides/qiskit-1.0-installation.mdx", - "anchors": [ - "#activate", - "#activating-a-venv", - "#create-a-working-environment-for-qiskit-045-or-046", - "#create-a-working-environment-for-qiskit-10", - "#create-the-new-environment", - "#creating-a-venv", - "#debug-venv-for-0.45", - "#debug-venv-for-1.0", - "#for-developers", - "#for-users", - "#im-a-developer-my-environments-are-definitely-right-and-im-still-getting-the-error", - "#import-qiskit-raises-importerror", - "#import-qiskit-says-modulenotfounderror-no-module-named-qiskit", - "#import-qiskit-succeeds-but-trying-to-do-anything-returns-attributeerror-module-qiskit-has-no-attribute-", - "#manually-upgrade-an-existing-environment", - "#pip-refuses-to-install-some-packages-together", - "#pip-resolution-impossible", - "#pip-succeeds-but-prints-errors-after-running-pip-install-commands", - "#qiskit-1.0-import-error", - "#qiskit-10-packaging-changes", - "#recommendations-for-requirements", - "#recommendations-for-testing-against-qiskit-10", - "#sample-manual-github-actions-workflows", - "#sample-tox-configuration", - "#the-new-qiskit-structure", - "#the-old-qiskit-structure", - "#title-qiskit-10-installation-and-packaging-changes-description-adapt-to-changes-in-installing-and-depending-on-qiskit-10", - "#troubleshooting", - "#use-the-new-environment", - "#why-did-this-happen", - "#why-these-changes-happened" - ] - }, - { - "path": "docs/migration-guides/qiskit-1.0.mdx", + "path": "docs/guides/specify-runtime-options.mdx", "anchors": [ - "#qiskit-10-migration-guide", - "#title-qiskit-10-migration-guide-description-how-to-update-your-project-so-that-it-works-with-qiskit-10" - ] - }, - { - "path": "docs/migration-guides/qiskit-algorithms-module.mdx", - "anchors": [ - "#algorithms-migration-guide", - "#amp-estimate", - "#amplitude", - "#amplitude-amplifiers", - "#amplitude-estimators", - "#background", - "#eigen", - "#eigensolvers", - "#grover-example", - "#how-to-choose-a-primitive-configuration-for-your-algorithm", - "#iae-example", - "#ipe-example", - "#minimum-eigensolvers", - "#numpyeigensolver", - "#numpyeigensolver-example", - "#numpyminimumeigensolver", - "#numpyminimumeigensolver-example", - "#phase", - "#phase-estimators", - "#qaoa", - "#qaoa-example", - "#time", - "#time-evolvers", - "#title-qiskitalgorithms-migration-guide-description-how-to-update-your-code-to-use-the-new-interface-for-qiskitalgorithms", - "#trotterqrte", - "#trotterqrte-example", - "#vqd", - "#vqd-example", - "#vqe", - "#vqe-applying-cvar-samplingvqe-example", - "#vqe-examples", - "#what-has-changed" - ] - }, - { - "path": "docs/migration-guides/qiskit-opflow-module.mdx", - "anchors": [ - "#1-qubit-states", - "#algorithm-agnostic-expectations", - "#attention_primitives", - "#background", - "#common-non-parametrized-gates-clifford", - "#converters", - "#cvarexpectation", - "#evolutions", - "#example-1-aer-pauli-expectation", - "#example-1-apply-an-operator-to-a-state", - "#example-1-circuitsampler-for-sampling-parametrized-circuits", - "#example-1-define-the-hh-operator", - "#example-1-define-the-xx-operator", - "#example-1-finite-differences-batched-gradient", - "#example-1-paulisumop", - "#example-1-stabilizer-states", - "#example-1-trotter-evolution", - "#example-1-vqe-with-cvar", - "#example-2-circuitsampler-for-computing-expectation-values", - "#example-2-define-a-more-complex-operator", - "#example-2-evolution-with-time-dependent-hamiltonian", - "#example-2-matrix-expectation", - "#example-2-qfi", - "#example-2-z2symmetries-and-taperedpaulisumop", - "#example-3-abeliangrouper-for-grouping-operators", - "#example-3-matrix-evolution", - "#example-commuting", - "#example-convert-state", - "#example-pauli-sum-op", - "#example-z2-sym", - "#expectations", - "#gradients", - "#listops", - "#operator-base-class", - "#operator-globals", - "#opflow-migration-guide", - "#other-evolution-classes", - "#primitive-and-list-ops", - "#primitive-ops", - "#single-qubit-paulis", - "#state-functions", - "#title-qiskitopflow-migration-guide-description-how-to-update-your-code-to-stop-using-the-deprecated-qiskitopflow-module", - "#trotterizations" - ] - }, - { - "path": "docs/migration-guides/qiskit-quantum-instance.mdx", - "anchors": [ - "#choose-the-right-primitive-for-your-settings", - "#choose-the-right-primitive-for-your-task", - "#code-examples", - "#example-1-circuit-sampling-with-local-simulation", - "#example-2-expectation-value-calculation-with-local-noisy-simulation", - "#example-3-circuit-sampling-on-ibm-system-with-error-mitigation", - "#example-4-circuit-sampling-with-custom-bound-and-unbound-pass-managers", - "#quantuminstance-migration-guide", - "#title-quantuminstance-migration-guide-description-stop-using-the-deprecated-qiskit-quantuminstance-class" + "#commonly-used-options", + "#dictionary", + "#maximum-execution-time", + "#next-steps", + "#no-error-mitigation", + "#options-class", + "#pass-options", + "#precision-estimator-only", + "#primitive-initialization", + "#resilience-level-estimator-only", + "#run-method", + "#set-primitive-options", + "#shots", + "#shots-sampler-only", + "#special-cases", + "#specify-options", + "#turn-off-all-error-mitigation-and-error-suppression", + "#update-options-after-initialization" ] }, { - "path": "docs/migration-guides/qiskit-runtime-examples.mdx", + "path": "docs/guides/synthesize-unitary-operators.mdx", "anchors": [ - "#2-calculate-expectation-values", - "#backend--aersimulatormethodstatevector-shots100", - "#backend--providerget_backendibm_brisbane", - "#backend-aersimulatormethodstatevector-shots100", - "#backend-providerget_backendibm_brisbane", - "#circuits-must-obey-the-isa-of-a-particular-backend", - "#convert-to-isa-circuits", - "#define-a-real-backend", - "#define-a-statevector-simulator", - "#define-estimator", - "#define-provider-and-simulator-backend", - "#define-sampler", - "#end-to-end-examples", - "#estimator-algorithm", - "#estimator-example", - "#from-qiskit_aer-import-aersimulator", - "#get-local-simulator-backend", "#next-steps", - "#run", - "#run-an-expectation-value-calculation", - "#run-calculation", - "#run-the-sampler-job-locally-using-fakemanilav2", - "#run-the-sampler-job-locally-using-fakemanilav2-1", - "#sampler-algorithm", - "#sampler-example", - "#use-estimator-to-design-an-algorithm", - "#use-sampler-to-design-an-algorithm", - "#you-can-use-a-fixed-seed-to-get-fixed-results", - "#you-can-use-a-fixed-seed-to-get-fixed-results-1" + "#re-synthesis-for-circuit-optimization", + "#synthesize-unitary-operations", + "#title-synthesize-unitary-operations-description-on-the-implementation-of-arbitrary-unitary-matrices-on-qubits" ] }, { - "path": "docs/migration-guides/qiskit-runtime-from-ibm-provider.mdx", + "path": "docs/guides/transpile-rest-api.mdx", "anchors": [ - "#example-basic-execution", - "#example-use-sessions", - "#instance-selection-get-a-provider", - "#load-accounts", - "#migrate-from-qiskit_ibm_provider", - "#save-accounts" + "#next-steps", + "#query-the-qiskit-transpiler-service", + "#request-results-based-on-the-task_id", + "#title-transpile-using-rest-api-description-how-to-transpile-quantum-circuits-using-rest-apis", + "#transpile-using-rest-api" ] }, { - "path": "docs/migration-guides/qiskit-runtime-from-ibmq-provider.mdx", + "path": "docs/guides/transpile-with-pass-managers.ipynb", "anchors": [ - "#changes-in-class-name-and-location", - "#get-a-backend", - "#import-path", - "#instance-selection-get-a-provider", - "#load-accounts", - "#migrate-from-qiskit_ibmq_provider", - "#save-accounts", - "#title-migrate-from-qiskit_ibm_provider-description-how-to-migrate-backendrun-from-qiskit-ibm-provider-to-qiskit-ibm-runtime" + "#create-a-staged-pass-manager", + "#create-your-own-pass-manager", + "#generate-a-preset-staged-pass-manager", + "#next-steps", + "#transpile-with-pass-managers", + "#what-is-a-staged-pass-manager" ] }, { - "path": "docs/migration-guides/qiskit-runtime-options.mdx", + "path": "docs/guides/transpile.mdx", "anchors": [ - "#algorithm-tuning", - "#in_page_toc_max_heading_level-2", - "#migrate-options" + "#default-transpilation", + "#instruction-set-architecture", + "#introduction-to-transpilation", + "#next-steps", + "#transpile-with-pass-managers", + "#transpiler-stages" ] }, { - "path": "docs/migration-guides/qiskit-runtime-use-case.mdx", + "path": "docs/guides/transpiler-plugins.ipynb", "anchors": [ - "#basic-circuits", - "#common-use-cases", - "#define-the-service--this-allows-you-to-access-ibm-quantum-systems", - "#define-the-service-this-allows-you-to-access-ibm-quantum-systems", - "#get-a-backend", - "#get-results-for-the-first-and-only-pub", - "#get-the-averaged-iq-data", - "#get-the-averaged-iq-data-meas_level1", - "#migrate-options", - "#parm-circ", - "#specifying-options", - "#this-is-equivalent-to-meas_level1-meas_returnavg-in-backendrun", - "#title-common-use-cases-description-common-use-cases-when-migrating-from-backendrun-to-qiskit-runtime-primitives", - "#upload-view-or-delete-custom-prototype-programs" + "#install-and-use-transpiler-plugins", + "#list-available-high-level-synthesis-plugins", + "#list-available-plugins-and-install-new-ones", + "#list-available-transpiler-stage-plugins", + "#list-available-unitary-synthesis-plugins", + "#next-steps", + "#use-a-high-level-synthesis-plugin", + "#use-a-plugin", + "#use-a-transpiler-stage-plugin", + "#use-a-unitary-synthesis-plugin" ] }, { - "path": "docs/migration-guides/qiskit-runtime.mdx", + "path": "docs/guides/transpiler-stages.ipynb", "anchors": [ - "#basic-steps-to-migrate-to-primitives", - "#in_page_toc_max_heading_level-2", - "#migrate-to-qr", + "#init-stage", + "#layout-stage", "#next-steps", - "#overview", - "#step-1-determine-which-primitive-to-use", - "#step-2-change-imports-as-necessary", - "#step-3-replace-the-call-to-backendrun-with-a-call-to-qiskit_ibm_runtime", - "#step-3a-replace-any-backendrun-options-with-qiskit_ibm_runtime-options" + "#optimization-stage", + "#routing-stage", + "#scheduling", + "#translation-stage", + "#transpiler-stages" ] }, { - "path": "docs/migration-guides/sessions.mdx", + "path": "docs/guides/visualize-circuits.ipynb", "anchors": [ - "#batch", - "#best-practices", - "#divide", - "#example-partition-a-500-circuit-job-into-five-100-circuit-jobs-and-run-them-in-batch", - "#example-run-two-vqe-algorithms-in-a-session-by-using-threading", - "#execution-modes", - "#execution-modes-changes", - "#sessions", - "#sessions-versus-batch-usage", - "#two-vqe" + "#alternative-renderers", + "#control-circuit-drawings", + "#customize-the-output", + "#disable-plot-barriers-and-reverse-bit-order", + "#draw-a-quantum-circuit", + "#next-steps", + "#renderer-specific-customizations", + "#standalone-circuit-drawing-function", + "#visualize-circuits" ] }, { - "path": "docs/migration-guides/v2-primitives.mdx", + "path": "docs/guides/visualize-results.ipynb", "anchors": [ - "#check-if-a-job-is-still-running", - "#define-a-quantum-circuit-with-2-qubits", - "#define-three-sets-of-parameters-for-the-circuit", - "#error-mit", - "#error-mitigation-and-suppression", - "#estimator-examples-input-and-output", - "#estimator-full-examples", - "#examples", - "#first-job", - "#get-results-for-the-first-and-only-pub", - "#import", - "#input", - "#input-and-output", - "#job-status", - "#major-changes", - "#migrate-to-the-qiskit-runtime-v2-primitives", - "#options", - "#output", - "#overview", - "#print-the-dictionary-format", - "#print-the-dictionary-format-1", - "#reshape-observable-array-for-broadcasting", - "#run-a-single-experiment", - "#run-a-single-experiment-1", - "#run-multiple-experiments-in-a-single-job", - "#run-parameterized-circuits", - "#sampler-full-examples", - "#second-job", - "#server-defaults-are-used-for-unset-options", - "#server-defaults-are-used-for-unset-options-1", - "#set-resilience_level-to-0", - "#setting-options-after-primitive-initialization", - "#setting-options-after-primitive-initialization-1", - "#setting-options-during-primitive-initialization", - "#setting-options-during-primitive-initialization-1", - "#setting-options-during-primitive-initialization-2", - "#step-1-map-classical-inputs-to-a-quantum-problem", - "#step-1-map-classical-inputs-to-a-quantum-problem-1", - "#step-2-optimize-problem-for-quantum-execution", - "#step-2-optimize-problem-for-quantum-execution-1", - "#step-3-execute-using-qiskit-primitives", - "#step-3-execute-using-qiskit-primitives-1", - "#steps-to-migrate-to-estimator-v2", - "#steps-to-migrate-to-sampler-v2", - "#this-does-bulk-update", - "#this-does-bulk-update--the-value-for-default_shots-is-overridden-if-you-specify-shots-with-run-or-in-the-pub", - "#this-does-bulk-update-the-value-for-default_shots-is-overridden-if-you-specify-shots-with-run-or-in-the-pub", - "#this-uses-auto-complete", - "#this-uses-auto-complete-1", - "#transpilation", - "#turn-on-dynamical-decoupling-with-sequence-xpxm", - "#turn-on-gate-twirling-requires-qiskit_ibm_runtime-0230-or-later", - "#turn-on-measurement-error-mitigation", - "#use-sessions-and-advanced-options", - "#v2-prim-options", - "#v2-primitives" + "#options-when-plotting-a-histogram", + "#plot-histogram-", + "#plotting-estimator-results", + "#visualize-results" ] }, { - "path": "docs/api/qiskit-transpiler-service/ai.mdx", + "path": "docs/api/qiskit-ibm-transpiler/ai.mdx", "anchors": [ "#ai", - "#ai-qiskit-transpiler-service-ai", + "#ai-qiskit-ibm-transpiler-ai", "#classes", - "#module-qiskit_transpiler_service.ai", - "#title-ai-description-api-reference-for-qiskit_transpiler_serviceai-in_page_toc_min_heading_level-2-python_api_type-module-python_api_name-qiskit_transpiler_serviceai" + "#module-qiskit_ibm_transpiler.ai", + "#title-ai-description-api-reference-for-qiskit_ibm_transpilerai-in_page_toc_min_heading_level-2-python_api_type-module-python_api_name-qiskit_ibm_transpilerai" ] }, { - "path": "docs/api/qiskit-transpiler-service/index.mdx", + "path": "docs/api/qiskit-ibm-transpiler/index.mdx", "anchors": [ - "#qiskit-transpiler-service-api-reference", - "#title-qiskit-transpiler-service-client-docs-description-api-documentation-for-the-qiskit-transpiler-service-client" + "#qiskit-ibm-transpiler-api-reference", + "#title-qiskit-transpiler-service-client-docs-description-api-documentation-for-the-qiskit-ibm-transpiler-client" ] }, { - "path": "docs/api/qiskit-transpiler-service/qiskit_transpiler_service.ai.AICliffordSynthesis.mdx", + "path": "docs/api/qiskit-ibm-transpiler/qiskit_ibm_transpiler.ai.AICliffordSynthesis.mdx", "anchors": [ "#aicliffordsynthesis", "#execute", "#methods", "#name", - "#qiskit_transpiler_service.ai.AICliffordSynthesis", - "#qiskit_transpiler_service.ai.AICliffordSynthesis.execute", - "#qiskit_transpiler_service.ai.AICliffordSynthesis.name", - "#qiskit_transpiler_service.ai.AICliffordSynthesis.run", - "#qiskit_transpiler_service.ai.AICliffordSynthesis.synth_node", - "#qiskit_transpiler_service.ai.AICliffordSynthesis.update_status", + "#qiskit_ibm_transpiler.ai.AICliffordSynthesis", + "#qiskit_ibm_transpiler.ai.AICliffordSynthesis.execute", + "#qiskit_ibm_transpiler.ai.AICliffordSynthesis.name", + "#qiskit_ibm_transpiler.ai.AICliffordSynthesis.run", + "#qiskit_ibm_transpiler.ai.AICliffordSynthesis.synth_nodes", + "#qiskit_ibm_transpiler.ai.AICliffordSynthesis.update_status", "#run", - "#synth_node", - "#title-aicliffordsynthesis-description-api-reference-for-qiskit_transpiler_serviceaiaicliffordsynthesis-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_transpiler_serviceaiaicliffordsynthesis", + "#synth_nodes", + "#title-aicliffordsynthesis-description-api-reference-for-qiskit_ibm_transpileraiaicliffordsynthesis-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_transpileraiaicliffordsynthesis", "#update_status" ] }, { - "path": "docs/api/qiskit-transpiler-service/qiskit_transpiler_service.ai.AILinearFunctionSynthesis.mdx", + "path": "docs/api/qiskit-ibm-transpiler/qiskit_ibm_transpiler.ai.AILinearFunctionSynthesis.mdx", "anchors": [ "#ailinearfunctionsynthesis", "#execute", "#methods", "#name", - "#qiskit_transpiler_service.ai.AILinearFunctionSynthesis", - "#qiskit_transpiler_service.ai.AILinearFunctionSynthesis.execute", - "#qiskit_transpiler_service.ai.AILinearFunctionSynthesis.name", - "#qiskit_transpiler_service.ai.AILinearFunctionSynthesis.run", - "#qiskit_transpiler_service.ai.AILinearFunctionSynthesis.synth_node", - "#qiskit_transpiler_service.ai.AILinearFunctionSynthesis.update_status", + "#qiskit_ibm_transpiler.ai.AILinearFunctionSynthesis", + "#qiskit_ibm_transpiler.ai.AILinearFunctionSynthesis.execute", + "#qiskit_ibm_transpiler.ai.AILinearFunctionSynthesis.name", + "#qiskit_ibm_transpiler.ai.AILinearFunctionSynthesis.run", + "#qiskit_ibm_transpiler.ai.AILinearFunctionSynthesis.synth_nodes", + "#qiskit_ibm_transpiler.ai.AILinearFunctionSynthesis.update_status", "#run", - "#synth_node", - "#title-ailinearfunctionsynthesis-description-api-reference-for-qiskit_transpiler_serviceaiailinearfunctionsynthesis-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_transpiler_serviceaiailinearfunctionsynthesis", + "#synth_nodes", + "#title-ailinearfunctionsynthesis-description-api-reference-for-qiskit_ibm_transpileraiailinearfunctionsynthesis-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_transpileraiailinearfunctionsynthesis", "#update_status" ] }, { - "path": "docs/api/qiskit-transpiler-service/qiskit_transpiler_service.ai.AIPermutationSynthesis.mdx", + "path": "docs/api/qiskit-ibm-transpiler/qiskit_ibm_transpiler.ai.AIPermutationSynthesis.mdx", "anchors": [ "#aipermutationsynthesis", "#execute", "#methods", "#name", - "#qiskit_transpiler_service.ai.AIPermutationSynthesis", - "#qiskit_transpiler_service.ai.AIPermutationSynthesis.execute", - "#qiskit_transpiler_service.ai.AIPermutationSynthesis.name", - "#qiskit_transpiler_service.ai.AIPermutationSynthesis.run", - "#qiskit_transpiler_service.ai.AIPermutationSynthesis.synth_node", - "#qiskit_transpiler_service.ai.AIPermutationSynthesis.update_status", + "#qiskit_ibm_transpiler.ai.AIPermutationSynthesis", + "#qiskit_ibm_transpiler.ai.AIPermutationSynthesis.execute", + "#qiskit_ibm_transpiler.ai.AIPermutationSynthesis.name", + "#qiskit_ibm_transpiler.ai.AIPermutationSynthesis.run", + "#qiskit_ibm_transpiler.ai.AIPermutationSynthesis.synth_nodes", + "#qiskit_ibm_transpiler.ai.AIPermutationSynthesis.update_status", "#run", - "#synth_node", - "#title-aipermutationsynthesis-description-api-reference-for-qiskit_transpiler_serviceaiaipermutationsynthesis-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_transpiler_serviceaiaipermutationsynthesis", + "#synth_nodes", + "#title-aipermutationsynthesis-description-api-reference-for-qiskit_ibm_transpileraiaipermutationsynthesis-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_transpileraiaipermutationsynthesis", "#update_status" ] }, { - "path": "docs/api/qiskit-transpiler-service/qiskit_transpiler_service.ai.AIRouting.mdx", + "path": "docs/api/qiskit-ibm-transpiler/qiskit_ibm_transpiler.ai.AIRouting.mdx", "anchors": [ "#airouting", "#execute", "#methods", "#name", - "#qiskit_transpiler_service.ai.AIRouting", - "#qiskit_transpiler_service.ai.AIRouting.execute", - "#qiskit_transpiler_service.ai.AIRouting.name", - "#qiskit_transpiler_service.ai.AIRouting.run", - "#qiskit_transpiler_service.ai.AIRouting.update_status", + "#qiskit_ibm_transpiler.ai.AIRouting", + "#qiskit_ibm_transpiler.ai.AIRouting.execute", + "#qiskit_ibm_transpiler.ai.AIRouting.name", + "#qiskit_ibm_transpiler.ai.AIRouting.run", + "#qiskit_ibm_transpiler.ai.AIRouting.update_status", "#run", - "#title-airouting-description-api-reference-for-qiskit_transpiler_serviceaiairouting-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_transpiler_serviceaiairouting", + "#title-airouting-description-api-reference-for-qiskit_ibm_transpileraiairouting-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_transpileraiairouting", "#update_status" ] }, { - "path": "docs/api/qiskit-transpiler-service/qiskit_transpiler_service.ai.CollectCliffords.mdx", + "path": "docs/api/qiskit-ibm-transpiler/qiskit_ibm_transpiler.ai.CollectCliffords.mdx", "anchors": [ "#collectcliffords", "#execute", "#methods", "#name", - "#qiskit_transpiler_service.ai.CollectCliffords", - "#qiskit_transpiler_service.ai.CollectCliffords.execute", - "#qiskit_transpiler_service.ai.CollectCliffords.name", - "#qiskit_transpiler_service.ai.CollectCliffords.run", - "#qiskit_transpiler_service.ai.CollectCliffords.update_status", + "#qiskit_ibm_transpiler.ai.CollectCliffords", + "#qiskit_ibm_transpiler.ai.CollectCliffords.execute", + "#qiskit_ibm_transpiler.ai.CollectCliffords.name", + "#qiskit_ibm_transpiler.ai.CollectCliffords.run", + "#qiskit_ibm_transpiler.ai.CollectCliffords.update_status", "#run", - "#title-collectcliffords-description-api-reference-for-qiskit_transpiler_serviceaicollectcliffords-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_transpiler_serviceaicollectcliffords", + "#title-collectcliffords-description-api-reference-for-qiskit_ibm_transpileraicollectcliffords-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_transpileraicollectcliffords", "#update_status" ] }, { - "path": "docs/api/qiskit-transpiler-service/qiskit_transpiler_service.ai.CollectLinearFunctions.mdx", + "path": "docs/api/qiskit-ibm-transpiler/qiskit_ibm_transpiler.ai.CollectLinearFunctions.mdx", "anchors": [ "#collectlinearfunctions", "#execute", "#methods", "#name", - "#qiskit_transpiler_service.ai.CollectLinearFunctions", - "#qiskit_transpiler_service.ai.CollectLinearFunctions.execute", - "#qiskit_transpiler_service.ai.CollectLinearFunctions.name", - "#qiskit_transpiler_service.ai.CollectLinearFunctions.run", - "#qiskit_transpiler_service.ai.CollectLinearFunctions.update_status", + "#qiskit_ibm_transpiler.ai.CollectLinearFunctions", + "#qiskit_ibm_transpiler.ai.CollectLinearFunctions.execute", + "#qiskit_ibm_transpiler.ai.CollectLinearFunctions.name", + "#qiskit_ibm_transpiler.ai.CollectLinearFunctions.run", + "#qiskit_ibm_transpiler.ai.CollectLinearFunctions.update_status", "#run", - "#title-collectlinearfunctions-description-api-reference-for-qiskit_transpiler_serviceaicollectlinearfunctions-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_transpiler_serviceaicollectlinearfunctions", + "#title-collectlinearfunctions-description-api-reference-for-qiskit_ibm_transpileraicollectlinearfunctions-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_transpileraicollectlinearfunctions", "#update_status" ] }, { - "path": "docs/api/qiskit-transpiler-service/qiskit_transpiler_service.ai.CollectPermutations.mdx", + "path": "docs/api/qiskit-ibm-transpiler/qiskit_ibm_transpiler.ai.CollectPermutations.mdx", "anchors": [ "#collectpermutations", "#execute", "#methods", "#name", - "#qiskit_transpiler_service.ai.CollectPermutations", - "#qiskit_transpiler_service.ai.CollectPermutations.execute", - "#qiskit_transpiler_service.ai.CollectPermutations.name", - "#qiskit_transpiler_service.ai.CollectPermutations.run", - "#qiskit_transpiler_service.ai.CollectPermutations.update_status", + "#qiskit_ibm_transpiler.ai.CollectPermutations", + "#qiskit_ibm_transpiler.ai.CollectPermutations.execute", + "#qiskit_ibm_transpiler.ai.CollectPermutations.name", + "#qiskit_ibm_transpiler.ai.CollectPermutations.run", + "#qiskit_ibm_transpiler.ai.CollectPermutations.update_status", "#run", - "#title-collectpermutations-description-api-reference-for-qiskit_transpiler_serviceaicollectpermutations-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_transpiler_serviceaicollectpermutations", + "#title-collectpermutations-description-api-reference-for-qiskit_ibm_transpileraicollectpermutations-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_transpileraicollectpermutations", "#update_status" ] }, { - "path": "docs/api/qiskit-transpiler-service/qiskit_transpiler_service.transpiler_service.TranspilerService.mdx", + "path": "docs/api/qiskit-ibm-transpiler/qiskit_ibm_transpiler.transpiler_service.TranspilerService.mdx", "anchors": [ "#methods", - "#qiskit_transpiler_service.transpiler_service.TranspilerService", - "#qiskit_transpiler_service.transpiler_service.TranspilerService.run", + "#qiskit_ibm_transpiler.transpiler_service.TranspilerService", + "#qiskit_ibm_transpiler.transpiler_service.TranspilerService.run", "#run", - "#title-transpilerservice-description-api-reference-for-qiskit_transpiler_servicetranspiler_servicetranspilerservice-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_transpiler_servicetranspiler_servicetranspilerservice", + "#title-transpilerservice-description-api-reference-for-qiskit_ibm_transpilertranspiler_servicetranspilerservice-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_transpilertranspiler_servicetranspilerservice", "#transpilerservice" ] }, { - "path": "docs/api/qiskit-transpiler-service/transpiler_service.mdx", + "path": "docs/api/qiskit-ibm-transpiler/release-notes.mdx", + "anchors": [ + "#012-2023-12-04", + "#013-2023-12-11", + "#020-2024-02-12", + "#021-2024-02-22", + "#030-2024-02-29", + "#040-2024-05-28", + "#041-2024-06-06", + "#0410-2024-09-17", + "#042-2024-06-07", + "#043-2024-06-07", + "#044-2024-07-25", + "#045-2024-08-01", + "#046-2024-08-23", + "#047-2024-08-27", + "#048-2024-08-29", + "#049-2024-09-12", + "#050-2024-08-27", + "#051-2024-08-29", + "#052-2024-09-12", + "#053-2024-09-17", + "#060-2024-09-16", + "#061-2024-09-17", + "#070-2024-09-18", + "#bug-fixes", + "#bug-fixes-1", + "#bug-fixes-10", + "#bug-fixes-11", + "#bug-fixes-12", + "#bug-fixes-13", + "#bug-fixes-14", + "#bug-fixes-15", + "#bug-fixes-16", + "#bug-fixes-2", + "#bug-fixes-3", + "#bug-fixes-4", + "#bug-fixes-5", + "#bug-fixes-6", + "#bug-fixes-7", + "#bug-fixes-8", + "#bug-fixes-9", + "#deprecation-notes", + "#id1", + "#id10", + "#id11", + "#id12", + "#id13", + "#id14", + "#id15", + "#id16", + "#id17", + "#id18", + "#id19", + "#id2", + "#id20", + "#id21", + "#id22", + "#id23", + "#id24", + "#id25", + "#id26", + "#id27", + "#id28", + "#id29", + "#id3", + "#id30", + "#id31", + "#id32", + "#id33", + "#id34", + "#id35", + "#id36", + "#id37", + "#id38", + "#id39", + "#id4", + "#id40", + "#id41", + "#id42", + "#id43", + "#id44", + "#id45", + "#id46", + "#id47", + "#id48", + "#id49", + "#id5", + "#id50", + "#id51", + "#id52", + "#id53", + "#id54", + "#id6", + "#id7", + "#id8", + "#id9", + "#new-features", + "#new-features-1", + "#new-features-2", + "#new-features-3", + "#new-features-4", + "#new-features-5", + "#new-features-6", + "#other-notes", + "#other-notes-1", + "#other-notes-2", + "#other-notes-3", + "#prelude", + "#qiskit-ibm-transpiler-release-notes", + "#qiskit-transpiler-service-client-release-notes", + "#title-qiskit-transpiler-service-client-release-notes-description-changes-made-to-qiskit-transpiler-service-client-in_page_toc_max_heading_level-2", + "#upgrade-notes", + "#upgrade-notes-1", + "#upgrade-notes-2", + "#upgrade-notes-3", + "#upgrade-notes-4", + "#upgrade-notes-5", + "#upgrade-notes-6" + ] + }, + { + "path": "docs/api/qiskit-ibm-transpiler/transpiler_service.mdx", "anchors": [ "#classes", - "#module-qiskit_transpiler_service.transpiler_service", - "#qiskit-transpiler-service", - "#qiskit-transpiler-service-qiskit-transpiler-service-transpiler-service", - "#title-transpiler_service-description-api-reference-for-qiskit_transpiler_servicetranspiler_service-in_page_toc_min_heading_level-2-python_api_type-module-python_api_name-qiskit_transpiler_servicetranspiler_service" + "#module-qiskit_ibm_transpiler.transpiler_service", + "#qiskit-ibm-transpiler", + "#qiskit-ibm-transpiler-qiskit-ibm-transpiler-transpiler-service", + "#title-transpiler_service-description-api-reference-for-qiskit_ibm_transpilertranspiler_service-in_page_toc_min_heading_level-2-python_api_type-module-python_api_name-qiskit_ibm_transpilertranspiler_service" ] }, { - "path": "docs/api/qiskit-transpiler-service/utils.mdx", + "path": "docs/api/qiskit-ibm-transpiler/utils.mdx", "anchors": [ "#create_random_linear_function", "#functions", "#get_metrics", - "#module-qiskit_transpiler_service.utils", - "#qiskit_transpiler_service.utils.create_random_linear_function", - "#qiskit_transpiler_service.utils.get_metrics", - "#title-utils-description-api-reference-for-qiskit_transpiler_serviceutils-in_page_toc_min_heading_level-2-python_api_type-module-python_api_name-qiskit_transpiler_serviceutils", + "#module-qiskit_ibm_transpiler.utils", + "#qiskit_ibm_transpiler.utils.create_random_linear_function", + "#qiskit_ibm_transpiler.utils.get_metrics", + "#title-utils-description-api-reference-for-qiskit_ibm_transpilerutils-in_page_toc_min_heading_level-2-python_api_type-module-python_api_name-qiskit_ibm_transpilerutils", "#utilities", - "#utilities-qiskit-transpiler-service-utils" + "#utilities-qiskit-ibm-transpiler-utils" + ] + }, + { + "path": "docs/api/qiskit-ibm-runtime/execution_span.mdx", + "anchors": [ + "#classes", + "#execution-spans", + "#execution-spans-qiskit-ibm-runtime-execution-span", + "#module-qiskit_ibm_runtime.execution_span", + "#overview", + "#title-execution_span-description-api-reference-for-qiskit_ibm_runtimeexecution_span-in_page_toc_min_heading_level-2-python_api_type-module-python_api_name-qiskit_ibm_runtimeexecution_span" ] }, { @@ -1711,7 +2198,6 @@ "#fake-provider", "#fake-provider-qiskit-ibm-runtime-fake-provider", "#fake-providers", - "#fake-v1-backends", "#fake-v2-backends", "#module-qiskit_ibm_runtime.fake_provider", "#overview", @@ -1722,18 +2208,38 @@ "path": "docs/api/qiskit-ibm-runtime/index.mdx", "anchors": [ "#qiskit-ibm-runtime-api-reference", - "#title-qiskit-runtime-ibm-client-api-docs-description-api-documentation-for-the-qiskit-ibm-runtime-client" + "#title-qiskit-runtime-client-api-docs-description-api-documentation-for-the-qiskit-ibm-runtime-client" + ] + }, + { + "path": "docs/api/qiskit-ibm-runtime/noise_learner.mdx", + "anchors": [ + "#classes", + "#module-qiskit_ibm_runtime.noise_learner", + "#noise-learner", + "#noise-learner-qiskit-ibm-runtime-noise-learner-noiselearner", + "#title-noise_learner-description-api-reference-for-qiskit_ibm_runtimenoise_learner-in_page_toc_min_heading_level-2-python_api_type-module-python_api_name-qiskit_ibm_runtimenoise_learner" + ] + }, + { + "path": "docs/api/qiskit-ibm-runtime/noise_learner_result.mdx", + "anchors": [ + "#module-qiskit_ibm_runtime.utils.noise_learner_result", + "#noiselearner-result-classes", + "#noiselearner-result-classes-qiskit-ibm-runtime-utils-noise-learner-result", + "#title-noise_learner_result-description-api-reference-for-qiskit_ibm_runtimeutilsnoise_learner_result-in_page_toc_min_heading_level-2-python_api_type-module-python_api_name-qiskit_ibm_runtimeutilsnoise_learner_result" ] }, { "path": "docs/api/qiskit-ibm-runtime/options.mdx", "anchors": [ + "#base-primitive-options", "#classes", "#module-qiskit_ibm_runtime.options", "#primitive-options", "#primitive-options-qiskit-ibm-runtime-options", + "#suboptions", "#title-options-description-api-reference-for-qiskit_ibm_runtimeoptions-in_page_toc_min_heading_level-2-python_api_type-module-python_api_name-qiskit_ibm_runtimeoptions", - "#v1-primitives", "#v2-primitives" ] }, @@ -1754,15 +2260,15 @@ "#qiskit_ibm_runtime.Batch.close", "#qiskit_ibm_runtime.Batch.details", "#qiskit_ibm_runtime.Batch.from_id", - "#qiskit_ibm_runtime.Batch.run", "#qiskit_ibm_runtime.Batch.service", "#qiskit_ibm_runtime.Batch.session_id", "#qiskit_ibm_runtime.Batch.status", - "#run", + "#qiskit_ibm_runtime.Batch.usage", "#service", "#session_id", "#status", - "#title-batch-description-api-reference-for-qiskit_ibm_runtimebatch-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimebatch" + "#title-batch-description-api-reference-for-qiskit_ibm_runtimebatch-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimebatch", + "#usage" ] }, { @@ -1773,26 +2279,6 @@ "#title-estimator-description-api-reference-for-qiskit_ibm_runtimeestimator-in_page_toc_min_heading_level-1-python_api_type-attribute-python_api_name-qiskit_ibm_runtimeestimator" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.EstimatorV1.mdx", - "anchors": [ - "#attributes", - "#estimatorv1", - "#methods", - "#options", - "#qiskit_ibm_runtime.EstimatorV1", - "#qiskit_ibm_runtime.EstimatorV1.options", - "#qiskit_ibm_runtime.EstimatorV1.run", - "#qiskit_ibm_runtime.EstimatorV1.session", - "#qiskit_ibm_runtime.EstimatorV1.set_options", - "#qiskit_ibm_runtime.EstimatorV1.version", - "#run", - "#session", - "#set_options", - "#title-estimatorv1-description-api-reference-for-qiskit_ibm_runtimeestimatorv1-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimeestimatorv1", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.EstimatorV2.mdx", "anchors": [ @@ -1805,10 +2291,8 @@ "#qiskit_ibm_runtime.EstimatorV2.mode", "#qiskit_ibm_runtime.EstimatorV2.options", "#qiskit_ibm_runtime.EstimatorV2.run", - "#qiskit_ibm_runtime.EstimatorV2.session", "#qiskit_ibm_runtime.EstimatorV2.version", "#run", - "#session", "#title-estimatorv2-description-api-reference-for-qiskit_ibm_runtimeestimatorv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimeestimatorv2", "#version" ] @@ -1911,9 +2395,9 @@ "#backend", "#backends", "#channel", + "#check_pending_jobs", "#delete_account", "#delete_job", - "#get_backend", "#global_service", "#instances", "#job", @@ -1925,22 +2409,22 @@ "#qiskit_ibm_runtime.QiskitRuntimeService.backend", "#qiskit_ibm_runtime.QiskitRuntimeService.backends", "#qiskit_ibm_runtime.QiskitRuntimeService.channel", + "#qiskit_ibm_runtime.QiskitRuntimeService.check_pending_jobs", "#qiskit_ibm_runtime.QiskitRuntimeService.delete_account", "#qiskit_ibm_runtime.QiskitRuntimeService.delete_job", - "#qiskit_ibm_runtime.QiskitRuntimeService.get_backend", "#qiskit_ibm_runtime.QiskitRuntimeService.global_service", "#qiskit_ibm_runtime.QiskitRuntimeService.instances", "#qiskit_ibm_runtime.QiskitRuntimeService.job", "#qiskit_ibm_runtime.QiskitRuntimeService.jobs", "#qiskit_ibm_runtime.QiskitRuntimeService.least_busy", - "#qiskit_ibm_runtime.QiskitRuntimeService.run", "#qiskit_ibm_runtime.QiskitRuntimeService.save_account", "#qiskit_ibm_runtime.QiskitRuntimeService.saved_accounts", + "#qiskit_ibm_runtime.QiskitRuntimeService.usage", "#qiskitruntimeservice", - "#run", "#save_account", "#saved_accounts", - "#title-qiskitruntimeservice-description-api-reference-for-qiskit_ibm_runtimeqiskitruntimeservice-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimeqiskitruntimeservice" + "#title-qiskitruntimeservice-description-api-reference-for-qiskit_ibm_runtimeqiskitruntimeservice-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimeqiskitruntimeservice", + "#usage" ] }, { @@ -2002,7 +2486,6 @@ "#methods", "#metrics", "#primitive_id", - "#program_id", "#properties", "#qiskit_ibm_runtime.RuntimeJob", "#qiskit_ibm_runtime.RuntimeJob.ERROR", @@ -2024,7 +2507,6 @@ "#qiskit_ibm_runtime.RuntimeJob.logs", "#qiskit_ibm_runtime.RuntimeJob.metrics", "#qiskit_ibm_runtime.RuntimeJob.primitive_id", - "#qiskit_ibm_runtime.RuntimeJob.program_id", "#qiskit_ibm_runtime.RuntimeJob.properties", "#qiskit_ibm_runtime.RuntimeJob.queue_info", "#qiskit_ibm_runtime.RuntimeJob.queue_position", @@ -2036,6 +2518,7 @@ "#qiskit_ibm_runtime.RuntimeJob.submit", "#qiskit_ibm_runtime.RuntimeJob.tags", "#qiskit_ibm_runtime.RuntimeJob.update_tags", + "#qiskit_ibm_runtime.RuntimeJob.usage", "#qiskit_ibm_runtime.RuntimeJob.usage_estimation", "#qiskit_ibm_runtime.RuntimeJob.version", "#qiskit_ibm_runtime.RuntimeJob.wait_for_final_state", @@ -2051,6 +2534,7 @@ "#tags", "#title-runtimejob-description-api-reference-for-qiskit_ibm_runtimeruntimejob-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimeruntimejob", "#update_tags", + "#usage", "#usage_estimation", "#version", "#wait_for_final_state" @@ -2080,7 +2564,6 @@ "#methods", "#metrics", "#primitive_id", - "#program_id", "#properties", "#qiskit_ibm_runtime.RuntimeJobV2", "#qiskit_ibm_runtime.RuntimeJobV2.ERROR", @@ -2102,7 +2585,6 @@ "#qiskit_ibm_runtime.RuntimeJobV2.logs", "#qiskit_ibm_runtime.RuntimeJobV2.metrics", "#qiskit_ibm_runtime.RuntimeJobV2.primitive_id", - "#qiskit_ibm_runtime.RuntimeJobV2.program_id", "#qiskit_ibm_runtime.RuntimeJobV2.properties", "#qiskit_ibm_runtime.RuntimeJobV2.result", "#qiskit_ibm_runtime.RuntimeJobV2.running", @@ -2111,6 +2593,7 @@ "#qiskit_ibm_runtime.RuntimeJobV2.stream_results", "#qiskit_ibm_runtime.RuntimeJobV2.tags", "#qiskit_ibm_runtime.RuntimeJobV2.update_tags", + "#qiskit_ibm_runtime.RuntimeJobV2.usage", "#qiskit_ibm_runtime.RuntimeJobV2.usage_estimation", "#qiskit_ibm_runtime.RuntimeJobV2.wait_for_final_state", "#result", @@ -2122,38 +2605,11 @@ "#tags", "#title-runtimejobv2-description-api-reference-for-qiskit_ibm_runtimeruntimejobv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimeruntimejobv2", "#update_tags", + "#usage", "#usage_estimation", "#wait_for_final_state" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeOptions.mdx", - "anchors": [ - "#attributes", - "#backend", - "#get_backend_name", - "#image", - "#instance", - "#job_tags", - "#log_level", - "#max_execution_time", - "#methods", - "#qiskit_ibm_runtime.RuntimeOptions", - "#qiskit_ibm_runtime.RuntimeOptions.backend", - "#qiskit_ibm_runtime.RuntimeOptions.get_backend_name", - "#qiskit_ibm_runtime.RuntimeOptions.image", - "#qiskit_ibm_runtime.RuntimeOptions.instance", - "#qiskit_ibm_runtime.RuntimeOptions.job_tags", - "#qiskit_ibm_runtime.RuntimeOptions.log_level", - "#qiskit_ibm_runtime.RuntimeOptions.max_execution_time", - "#qiskit_ibm_runtime.RuntimeOptions.session_time", - "#qiskit_ibm_runtime.RuntimeOptions.validate", - "#runtimeoptions", - "#session_time", - "#title-runtimeoptions-description-api-reference-for-qiskit_ibm_runtimeruntimeoptions-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimeruntimeoptions", - "#validate" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler.mdx", "anchors": [ @@ -2162,26 +2618,6 @@ "#title-sampler-description-api-reference-for-qiskit_ibm_runtimesampler-in_page_toc_min_heading_level-1-python_api_type-attribute-python_api_name-qiskit_ibm_runtimesampler" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.SamplerV1.mdx", - "anchors": [ - "#attributes", - "#methods", - "#options", - "#qiskit_ibm_runtime.SamplerV1", - "#qiskit_ibm_runtime.SamplerV1.options", - "#qiskit_ibm_runtime.SamplerV1.run", - "#qiskit_ibm_runtime.SamplerV1.session", - "#qiskit_ibm_runtime.SamplerV1.set_options", - "#qiskit_ibm_runtime.SamplerV1.version", - "#run", - "#samplerv1", - "#session", - "#set_options", - "#title-samplerv1-description-api-reference-for-qiskit_ibm_runtimesamplerv1-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimesamplerv1", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.SamplerV2.mdx", "anchors": [ @@ -2193,11 +2629,9 @@ "#qiskit_ibm_runtime.SamplerV2.mode", "#qiskit_ibm_runtime.SamplerV2.options", "#qiskit_ibm_runtime.SamplerV2.run", - "#qiskit_ibm_runtime.SamplerV2.session", "#qiskit_ibm_runtime.SamplerV2.version", "#run", "#samplerv2", - "#session", "#title-samplerv2-description-api-reference-for-qiskit_ibm_runtimesamplerv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimesamplerv2", "#version" ] @@ -2218,16 +2652,102 @@ "#qiskit_ibm_runtime.Session.close", "#qiskit_ibm_runtime.Session.details", "#qiskit_ibm_runtime.Session.from_id", - "#qiskit_ibm_runtime.Session.run", "#qiskit_ibm_runtime.Session.service", "#qiskit_ibm_runtime.Session.session_id", "#qiskit_ibm_runtime.Session.status", - "#run", + "#qiskit_ibm_runtime.Session.usage", "#service", "#session", "#session_id", "#status", - "#title-session-description-api-reference-for-qiskit_ibm_runtimesession-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimesession" + "#title-session-description-api-reference-for-qiskit_ibm_runtimesession-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimesession", + "#usage" + ] + }, + { + "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.execution_span.ExecutionSpan.mdx", + "anchors": [ + "#attributes", + "#contains_pub", + "#duration", + "#executionspan", + "#filter_by_pub", + "#mask", + "#methods", + "#pub_idxs", + "#qiskit_ibm_runtime.execution_span.ExecutionSpan", + "#qiskit_ibm_runtime.execution_span.ExecutionSpan.contains_pub", + "#qiskit_ibm_runtime.execution_span.ExecutionSpan.duration", + "#qiskit_ibm_runtime.execution_span.ExecutionSpan.filter_by_pub", + "#qiskit_ibm_runtime.execution_span.ExecutionSpan.mask", + "#qiskit_ibm_runtime.execution_span.ExecutionSpan.pub_idxs", + "#qiskit_ibm_runtime.execution_span.ExecutionSpan.size", + "#qiskit_ibm_runtime.execution_span.ExecutionSpan.start", + "#qiskit_ibm_runtime.execution_span.ExecutionSpan.stop", + "#size", + "#start", + "#stop", + "#title-executionspan-description-api-reference-for-qiskit_ibm_runtimeexecution_spanexecutionspan-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimeexecution_spanexecutionspan" + ] + }, + { + "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.execution_span.ExecutionSpans.mdx", + "anchors": [ + "#__getitem__", + "#__len__", + "#attributes", + "#duration", + "#executionspans", + "#filter_by_pub", + "#methods", + "#pub_idxs", + "#qiskit_ibm_runtime.execution_span.ExecutionSpans", + "#qiskit_ibm_runtime.execution_span.ExecutionSpans.__getitem__", + "#qiskit_ibm_runtime.execution_span.ExecutionSpans.__len__", + "#qiskit_ibm_runtime.execution_span.ExecutionSpans.duration", + "#qiskit_ibm_runtime.execution_span.ExecutionSpans.filter_by_pub", + "#qiskit_ibm_runtime.execution_span.ExecutionSpans.pub_idxs", + "#qiskit_ibm_runtime.execution_span.ExecutionSpans.sort", + "#qiskit_ibm_runtime.execution_span.ExecutionSpans.start", + "#qiskit_ibm_runtime.execution_span.ExecutionSpans.stop", + "#sort", + "#start", + "#stop", + "#title-executionspans-description-api-reference-for-qiskit_ibm_runtimeexecution_spanexecutionspans-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimeexecution_spanexecutionspans" + ] + }, + { + "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.execution_span.ShapeType.mdx", + "anchors": [ + "#qiskit_ibm_runtime.execution_span.ShapeType", + "#shapetype", + "#title-shapetype-description-api-reference-for-qiskit_ibm_runtimeexecution_spanshapetype-in_page_toc_min_heading_level-1-python_api_type-data-python_api_name-qiskit_ibm_runtimeexecution_spanshapetype" + ] + }, + { + "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.execution_span.SliceSpan.mdx", + "anchors": [ + "#attributes", + "#contains_pub", + "#duration", + "#filter_by_pub", + "#mask", + "#methods", + "#pub_idxs", + "#qiskit_ibm_runtime.execution_span.SliceSpan", + "#qiskit_ibm_runtime.execution_span.SliceSpan.contains_pub", + "#qiskit_ibm_runtime.execution_span.SliceSpan.duration", + "#qiskit_ibm_runtime.execution_span.SliceSpan.filter_by_pub", + "#qiskit_ibm_runtime.execution_span.SliceSpan.mask", + "#qiskit_ibm_runtime.execution_span.SliceSpan.pub_idxs", + "#qiskit_ibm_runtime.execution_span.SliceSpan.size", + "#qiskit_ibm_runtime.execution_span.SliceSpan.start", + "#qiskit_ibm_runtime.execution_span.SliceSpan.stop", + "#size", + "#slicespan", + "#start", + "#stop", + "#title-slicespan-description-api-reference-for-qiskit_ibm_runtimeexecution_spanslicespan-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimeexecution_spanslicespan" ] }, { @@ -2237,9 +2757,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -2260,15 +2783,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeAlgiers", "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.configuration", "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.defaults", "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.description", "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.dirname", @@ -2287,59 +2814,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.operations", "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.options", + "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.properties", "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.provider", "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.refresh", "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.run", "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.status", "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.target", "#qiskit_ibm_runtime.fake_provider.FakeAlgiers.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakealgiers-description-api-reference-for-qiskit_ibm_runtimefake_providerfakealgiers-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakealgiers", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlmaden.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#dirname", - "#fakealmaden", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeAlmaden", - "#qiskit_ibm_runtime.fake_provider.FakeAlmaden.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeAlmaden.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeAlmaden.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeAlmaden.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeAlmaden.name", - "#qiskit_ibm_runtime.fake_provider.FakeAlmaden.options", - "#qiskit_ibm_runtime.fake_provider.FakeAlmaden.properties", - "#qiskit_ibm_runtime.fake_provider.FakeAlmaden.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeAlmaden.provider", - "#qiskit_ibm_runtime.fake_provider.FakeAlmaden.run", - "#qiskit_ibm_runtime.fake_provider.FakeAlmaden.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeAlmaden.status", - "#qiskit_ibm_runtime.fake_provider.FakeAlmaden.version", - "#run", - "#set_options", - "#status", - "#title-fakealmaden-description-api-reference-for-qiskit_ibm_runtimefake_providerfakealmaden-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakealmaden", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.mdx", "anchors": [ @@ -2347,9 +2841,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -2370,15 +2867,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2", "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.description", "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.dirname", @@ -2397,63 +2898,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.run", "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.status", "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.target", "#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakealmadenv2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakealmadenv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakealmadenv2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeArmonk.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakearmonk", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeArmonk", - "#qiskit_ibm_runtime.fake_provider.FakeArmonk.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeArmonk.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeArmonk.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeArmonk.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeArmonk.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeArmonk.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeArmonk.name", - "#qiskit_ibm_runtime.fake_provider.FakeArmonk.options", - "#qiskit_ibm_runtime.fake_provider.FakeArmonk.properties", - "#qiskit_ibm_runtime.fake_provider.FakeArmonk.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeArmonk.provider", - "#qiskit_ibm_runtime.fake_provider.FakeArmonk.run", - "#qiskit_ibm_runtime.fake_provider.FakeArmonk.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeArmonk.status", - "#qiskit_ibm_runtime.fake_provider.FakeArmonk.version", - "#run", - "#set_options", - "#status", - "#title-fakearmonk-description-api-reference-for-qiskit_ibm_runtimefake_providerfakearmonk-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakearmonk", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeArmonkV2.mdx", "anchors": [ @@ -2461,9 +2925,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -2484,15 +2951,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2", "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.description", "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.dirname", @@ -2511,63 +2982,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.run", "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.status", "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.target", "#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakearmonkv2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakearmonkv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakearmonkv2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAthens.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakeathens", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeAthens", - "#qiskit_ibm_runtime.fake_provider.FakeAthens.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeAthens.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeAthens.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeAthens.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeAthens.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeAthens.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeAthens.name", - "#qiskit_ibm_runtime.fake_provider.FakeAthens.options", - "#qiskit_ibm_runtime.fake_provider.FakeAthens.properties", - "#qiskit_ibm_runtime.fake_provider.FakeAthens.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeAthens.provider", - "#qiskit_ibm_runtime.fake_provider.FakeAthens.run", - "#qiskit_ibm_runtime.fake_provider.FakeAthens.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeAthens.status", - "#qiskit_ibm_runtime.fake_provider.FakeAthens.version", - "#run", - "#set_options", - "#status", - "#title-fakeathens-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeathens-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeathens", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAthensV2.mdx", "anchors": [ @@ -2575,9 +3009,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -2598,15 +3035,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeAthensV2", "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.description", "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.dirname", @@ -2625,18 +3066,21 @@ "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.run", "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.status", "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.target", "#qiskit_ibm_runtime.fake_provider.FakeAthensV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakeathensv2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeathensv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeathensv2", "#version" @@ -2649,9 +3093,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -2672,15 +3119,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeAuckland", "#qiskit_ibm_runtime.fake_provider.FakeAuckland.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeAuckland.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeAuckland.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeAuckland.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeAuckland.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeAuckland.configuration", "#qiskit_ibm_runtime.fake_provider.FakeAuckland.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeAuckland.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeAuckland.defaults", "#qiskit_ibm_runtime.fake_provider.FakeAuckland.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeAuckland.description", "#qiskit_ibm_runtime.fake_provider.FakeAuckland.dirname", @@ -2699,63 +3150,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeAuckland.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeAuckland.operations", "#qiskit_ibm_runtime.fake_provider.FakeAuckland.options", + "#qiskit_ibm_runtime.fake_provider.FakeAuckland.properties", "#qiskit_ibm_runtime.fake_provider.FakeAuckland.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeAuckland.provider", "#qiskit_ibm_runtime.fake_provider.FakeAuckland.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeAuckland.refresh", "#qiskit_ibm_runtime.fake_provider.FakeAuckland.run", "#qiskit_ibm_runtime.fake_provider.FakeAuckland.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeAuckland.status", "#qiskit_ibm_runtime.fake_provider.FakeAuckland.target", "#qiskit_ibm_runtime.fake_provider.FakeAuckland.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakeauckland-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeauckland-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeauckland", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBelem.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakebelem", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeBelem", - "#qiskit_ibm_runtime.fake_provider.FakeBelem.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeBelem.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeBelem.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeBelem.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeBelem.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeBelem.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeBelem.name", - "#qiskit_ibm_runtime.fake_provider.FakeBelem.options", - "#qiskit_ibm_runtime.fake_provider.FakeBelem.properties", - "#qiskit_ibm_runtime.fake_provider.FakeBelem.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeBelem.provider", - "#qiskit_ibm_runtime.fake_provider.FakeBelem.run", - "#qiskit_ibm_runtime.fake_provider.FakeBelem.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeBelem.status", - "#qiskit_ibm_runtime.fake_provider.FakeBelem.version", - "#run", - "#set_options", - "#status", - "#title-fakebelem-description-api-reference-for-qiskit_ibm_runtimefake_providerfakebelem-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakebelem", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBelemV2.mdx", "anchors": [ @@ -2763,9 +3177,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -2786,15 +3203,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeBelemV2", "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.description", "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.dirname", @@ -2813,60 +3234,23 @@ "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.run", "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.status", "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.target", - "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.version", - "#qubit_properties", - "#refresh", - "#run", - "#set_options", - "#target", - "#title-fakebelemv2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakebelemv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakebelemv2", - "#version" - ] - }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBoeblingen.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakeboeblingen", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeBoeblingen", - "#qiskit_ibm_runtime.fake_provider.FakeBoeblingen.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeBoeblingen.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeBoeblingen.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeBoeblingen.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeBoeblingen.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeBoeblingen.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeBoeblingen.name", - "#qiskit_ibm_runtime.fake_provider.FakeBoeblingen.options", - "#qiskit_ibm_runtime.fake_provider.FakeBoeblingen.properties", - "#qiskit_ibm_runtime.fake_provider.FakeBoeblingen.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeBoeblingen.provider", - "#qiskit_ibm_runtime.fake_provider.FakeBoeblingen.run", - "#qiskit_ibm_runtime.fake_provider.FakeBoeblingen.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeBoeblingen.status", - "#qiskit_ibm_runtime.fake_provider.FakeBoeblingen.version", + "#qiskit_ibm_runtime.fake_provider.FakeBelemV2.version", + "#qubit_properties", + "#refresh", "#run", "#set_options", "#status", - "#title-fakeboeblingen-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeboeblingen-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeboeblingen", + "#target", + "#title-fakebelemv2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakebelemv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakebelemv2", "#version" ] }, @@ -2877,9 +3261,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -2900,15 +3287,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2", "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.description", "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.dirname", @@ -2927,63 +3318,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.run", "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.status", "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.target", "#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakeboeblingenv2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeboeblingenv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeboeblingenv2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBogota.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakebogota", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeBogota", - "#qiskit_ibm_runtime.fake_provider.FakeBogota.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeBogota.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeBogota.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeBogota.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeBogota.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeBogota.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeBogota.name", - "#qiskit_ibm_runtime.fake_provider.FakeBogota.options", - "#qiskit_ibm_runtime.fake_provider.FakeBogota.properties", - "#qiskit_ibm_runtime.fake_provider.FakeBogota.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeBogota.provider", - "#qiskit_ibm_runtime.fake_provider.FakeBogota.run", - "#qiskit_ibm_runtime.fake_provider.FakeBogota.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeBogota.status", - "#qiskit_ibm_runtime.fake_provider.FakeBogota.version", - "#run", - "#set_options", - "#status", - "#title-fakebogota-description-api-reference-for-qiskit_ibm_runtimefake_providerfakebogota-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakebogota", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBogotaV2.mdx", "anchors": [ @@ -2991,9 +3345,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -3014,15 +3371,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2", "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.description", "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.dirname", @@ -3041,18 +3402,21 @@ "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.run", "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.status", "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.target", "#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakebogotav2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakebogotav2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakebogotav2", "#version" @@ -3065,9 +3429,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -3088,15 +3455,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeBrisbane", "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.configuration", "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.defaults", "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.description", "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.dirname", @@ -3115,63 +3486,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.operations", "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.options", + "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.properties", "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.provider", "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.refresh", "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.run", "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.status", "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.target", "#qiskit_ibm_runtime.fake_provider.FakeBrisbane.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakebrisbane-description-api-reference-for-qiskit_ibm_runtimefake_providerfakebrisbane-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakebrisbane", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrooklyn.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakebrooklyn", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeBrooklyn", - "#qiskit_ibm_runtime.fake_provider.FakeBrooklyn.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeBrooklyn.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeBrooklyn.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeBrooklyn.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeBrooklyn.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeBrooklyn.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeBrooklyn.name", - "#qiskit_ibm_runtime.fake_provider.FakeBrooklyn.options", - "#qiskit_ibm_runtime.fake_provider.FakeBrooklyn.properties", - "#qiskit_ibm_runtime.fake_provider.FakeBrooklyn.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeBrooklyn.provider", - "#qiskit_ibm_runtime.fake_provider.FakeBrooklyn.run", - "#qiskit_ibm_runtime.fake_provider.FakeBrooklyn.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeBrooklyn.status", - "#qiskit_ibm_runtime.fake_provider.FakeBrooklyn.version", - "#run", - "#set_options", - "#status", - "#title-fakebrooklyn-description-api-reference-for-qiskit_ibm_runtimefake_providerfakebrooklyn-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakebrooklyn", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.mdx", "anchors": [ @@ -3179,9 +3513,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -3202,15 +3539,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2", "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.description", "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.dirname", @@ -3229,59 +3570,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.run", "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.status", "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.target", "#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakebrooklynv2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakebrooklynv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakebrooklynv2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBurlington.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#dirname", - "#fakeburlington", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeBurlington", - "#qiskit_ibm_runtime.fake_provider.FakeBurlington.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeBurlington.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeBurlington.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeBurlington.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeBurlington.name", - "#qiskit_ibm_runtime.fake_provider.FakeBurlington.options", - "#qiskit_ibm_runtime.fake_provider.FakeBurlington.properties", - "#qiskit_ibm_runtime.fake_provider.FakeBurlington.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeBurlington.provider", - "#qiskit_ibm_runtime.fake_provider.FakeBurlington.run", - "#qiskit_ibm_runtime.fake_provider.FakeBurlington.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeBurlington.status", - "#qiskit_ibm_runtime.fake_provider.FakeBurlington.version", - "#run", - "#set_options", - "#status", - "#title-fakeburlington-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeburlington-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeburlington", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.mdx", "anchors": [ @@ -3289,9 +3597,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -3312,15 +3623,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2", "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.description", "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.dirname", @@ -3339,63 +3654,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.run", "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.status", "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.target", "#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakeburlingtonv2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeburlingtonv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeburlingtonv2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCairo.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakecairo", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeCairo", - "#qiskit_ibm_runtime.fake_provider.FakeCairo.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeCairo.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeCairo.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeCairo.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeCairo.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeCairo.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeCairo.name", - "#qiskit_ibm_runtime.fake_provider.FakeCairo.options", - "#qiskit_ibm_runtime.fake_provider.FakeCairo.properties", - "#qiskit_ibm_runtime.fake_provider.FakeCairo.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeCairo.provider", - "#qiskit_ibm_runtime.fake_provider.FakeCairo.run", - "#qiskit_ibm_runtime.fake_provider.FakeCairo.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeCairo.status", - "#qiskit_ibm_runtime.fake_provider.FakeCairo.version", - "#run", - "#set_options", - "#status", - "#title-fakecairo-description-api-reference-for-qiskit_ibm_runtimefake_providerfakecairo-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakecairo", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCairoV2.mdx", "anchors": [ @@ -3403,9 +3681,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -3426,15 +3707,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeCairoV2", "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.description", "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.dirname", @@ -3453,59 +3738,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.run", "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.status", "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.target", "#qiskit_ibm_runtime.fake_provider.FakeCairoV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakecairov2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakecairov2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakecairov2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCambridge.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#dirname", - "#fakecambridge", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeCambridge", - "#qiskit_ibm_runtime.fake_provider.FakeCambridge.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeCambridge.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeCambridge.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeCambridge.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeCambridge.name", - "#qiskit_ibm_runtime.fake_provider.FakeCambridge.options", - "#qiskit_ibm_runtime.fake_provider.FakeCambridge.properties", - "#qiskit_ibm_runtime.fake_provider.FakeCambridge.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeCambridge.provider", - "#qiskit_ibm_runtime.fake_provider.FakeCambridge.run", - "#qiskit_ibm_runtime.fake_provider.FakeCambridge.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeCambridge.status", - "#qiskit_ibm_runtime.fake_provider.FakeCambridge.version", - "#run", - "#set_options", - "#status", - "#title-fakecambridge-description-api-reference-for-qiskit_ibm_runtimefake_providerfakecambridge-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakecambridge", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.mdx", "anchors": [ @@ -3513,9 +3765,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -3536,15 +3791,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2", "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.description", "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.dirname", @@ -3563,63 +3822,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.run", "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.status", "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.target", "#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakecambridgev2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakecambridgev2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakecambridgev2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCasablanca.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakecasablanca", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeCasablanca", - "#qiskit_ibm_runtime.fake_provider.FakeCasablanca.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeCasablanca.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeCasablanca.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeCasablanca.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeCasablanca.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeCasablanca.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeCasablanca.name", - "#qiskit_ibm_runtime.fake_provider.FakeCasablanca.options", - "#qiskit_ibm_runtime.fake_provider.FakeCasablanca.properties", - "#qiskit_ibm_runtime.fake_provider.FakeCasablanca.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeCasablanca.provider", - "#qiskit_ibm_runtime.fake_provider.FakeCasablanca.run", - "#qiskit_ibm_runtime.fake_provider.FakeCasablanca.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeCasablanca.status", - "#qiskit_ibm_runtime.fake_provider.FakeCasablanca.version", - "#run", - "#set_options", - "#status", - "#title-fakecasablanca-description-api-reference-for-qiskit_ibm_runtimefake_providerfakecasablanca-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakecasablanca", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.mdx", "anchors": [ @@ -3627,9 +3849,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -3650,15 +3875,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2", "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.description", "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.dirname", @@ -3677,18 +3906,21 @@ "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.run", "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.status", "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.target", "#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakecasablancav2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakecasablancav2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakecasablancav2", "#version" @@ -3701,9 +3933,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -3724,15 +3959,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeCusco", "#qiskit_ibm_runtime.fake_provider.FakeCusco.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeCusco.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeCusco.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeCusco.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeCusco.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeCusco.configuration", "#qiskit_ibm_runtime.fake_provider.FakeCusco.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeCusco.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeCusco.defaults", "#qiskit_ibm_runtime.fake_provider.FakeCusco.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeCusco.description", "#qiskit_ibm_runtime.fake_provider.FakeCusco.dirname", @@ -3751,59 +3990,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeCusco.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeCusco.operations", "#qiskit_ibm_runtime.fake_provider.FakeCusco.options", + "#qiskit_ibm_runtime.fake_provider.FakeCusco.properties", "#qiskit_ibm_runtime.fake_provider.FakeCusco.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeCusco.provider", "#qiskit_ibm_runtime.fake_provider.FakeCusco.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeCusco.refresh", "#qiskit_ibm_runtime.fake_provider.FakeCusco.run", "#qiskit_ibm_runtime.fake_provider.FakeCusco.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeCusco.status", "#qiskit_ibm_runtime.fake_provider.FakeCusco.target", "#qiskit_ibm_runtime.fake_provider.FakeCusco.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakecusco-description-api-reference-for-qiskit_ibm_runtimefake_providerfakecusco-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakecusco", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeEssex.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#dirname", - "#fakeessex", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeEssex", - "#qiskit_ibm_runtime.fake_provider.FakeEssex.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeEssex.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeEssex.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeEssex.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeEssex.name", - "#qiskit_ibm_runtime.fake_provider.FakeEssex.options", - "#qiskit_ibm_runtime.fake_provider.FakeEssex.properties", - "#qiskit_ibm_runtime.fake_provider.FakeEssex.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeEssex.provider", - "#qiskit_ibm_runtime.fake_provider.FakeEssex.run", - "#qiskit_ibm_runtime.fake_provider.FakeEssex.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeEssex.status", - "#qiskit_ibm_runtime.fake_provider.FakeEssex.version", - "#run", - "#set_options", - "#status", - "#title-fakeessex-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeessex-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeessex", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeEssexV2.mdx", "anchors": [ @@ -3811,9 +4017,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -3834,15 +4043,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeEssexV2", "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.description", "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.dirname", @@ -3861,18 +4074,21 @@ "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.run", "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.status", "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.target", "#qiskit_ibm_runtime.fake_provider.FakeEssexV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakeessexv2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeessexv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeessexv2", "#version" @@ -3885,9 +4101,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -3908,15 +4127,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend", "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.configuration", "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.defaults", "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.description", "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.dirname", @@ -3935,18 +4158,21 @@ "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.operations", "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.options", + "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.properties", "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.provider", "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.refresh", "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.run", "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.status", "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.target", "#qiskit_ibm_runtime.fake_provider.FakeFractionalBackend.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakefractionalbackend-description-api-reference-for-qiskit_ibm_runtimefake_providerfakefractionalbackend-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakefractionalbackend", "#version" @@ -3959,9 +4185,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -3982,15 +4211,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeGeneva", "#qiskit_ibm_runtime.fake_provider.FakeGeneva.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeGeneva.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeGeneva.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeGeneva.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeGeneva.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeGeneva.configuration", "#qiskit_ibm_runtime.fake_provider.FakeGeneva.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeGeneva.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeGeneva.defaults", "#qiskit_ibm_runtime.fake_provider.FakeGeneva.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeGeneva.description", "#qiskit_ibm_runtime.fake_provider.FakeGeneva.dirname", @@ -4009,63 +4242,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeGeneva.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeGeneva.operations", "#qiskit_ibm_runtime.fake_provider.FakeGeneva.options", + "#qiskit_ibm_runtime.fake_provider.FakeGeneva.properties", "#qiskit_ibm_runtime.fake_provider.FakeGeneva.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeGeneva.provider", "#qiskit_ibm_runtime.fake_provider.FakeGeneva.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeGeneva.refresh", "#qiskit_ibm_runtime.fake_provider.FakeGeneva.run", "#qiskit_ibm_runtime.fake_provider.FakeGeneva.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeGeneva.status", "#qiskit_ibm_runtime.fake_provider.FakeGeneva.target", "#qiskit_ibm_runtime.fake_provider.FakeGeneva.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakegeneva-description-api-reference-for-qiskit_ibm_runtimefake_providerfakegeneva-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakegeneva", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGuadalupe.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakeguadalupe", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeGuadalupe", - "#qiskit_ibm_runtime.fake_provider.FakeGuadalupe.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeGuadalupe.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeGuadalupe.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeGuadalupe.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeGuadalupe.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeGuadalupe.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeGuadalupe.name", - "#qiskit_ibm_runtime.fake_provider.FakeGuadalupe.options", - "#qiskit_ibm_runtime.fake_provider.FakeGuadalupe.properties", - "#qiskit_ibm_runtime.fake_provider.FakeGuadalupe.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeGuadalupe.provider", - "#qiskit_ibm_runtime.fake_provider.FakeGuadalupe.run", - "#qiskit_ibm_runtime.fake_provider.FakeGuadalupe.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeGuadalupe.status", - "#qiskit_ibm_runtime.fake_provider.FakeGuadalupe.version", - "#run", - "#set_options", - "#status", - "#title-fakeguadalupe-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeguadalupe-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeguadalupe", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.mdx", "anchors": [ @@ -4073,9 +4269,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -4096,15 +4295,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2", "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.description", "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.dirname", @@ -4123,60 +4326,23 @@ "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.run", "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.status", "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.target", - "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.version", - "#qubit_properties", - "#refresh", - "#run", - "#set_options", - "#target", - "#title-fakeguadalupev2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeguadalupev2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeguadalupev2", - "#version" - ] - }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeHanoi.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakehanoi", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeHanoi", - "#qiskit_ibm_runtime.fake_provider.FakeHanoi.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeHanoi.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeHanoi.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeHanoi.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeHanoi.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeHanoi.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeHanoi.name", - "#qiskit_ibm_runtime.fake_provider.FakeHanoi.options", - "#qiskit_ibm_runtime.fake_provider.FakeHanoi.properties", - "#qiskit_ibm_runtime.fake_provider.FakeHanoi.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeHanoi.provider", - "#qiskit_ibm_runtime.fake_provider.FakeHanoi.run", - "#qiskit_ibm_runtime.fake_provider.FakeHanoi.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeHanoi.status", - "#qiskit_ibm_runtime.fake_provider.FakeHanoi.version", + "#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.version", + "#qubit_properties", + "#refresh", "#run", "#set_options", "#status", - "#title-fakehanoi-description-api-reference-for-qiskit_ibm_runtimefake_providerfakehanoi-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakehanoi", + "#target", + "#title-fakeguadalupev2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeguadalupev2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeguadalupev2", "#version" ] }, @@ -4187,9 +4353,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -4210,15 +4379,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2", "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.description", "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.dirname", @@ -4237,63 +4410,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.run", "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.status", "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.target", "#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakehanoiv2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakehanoiv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakehanoiv2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJakarta.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakejakarta", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeJakarta", - "#qiskit_ibm_runtime.fake_provider.FakeJakarta.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeJakarta.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeJakarta.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeJakarta.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeJakarta.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeJakarta.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeJakarta.name", - "#qiskit_ibm_runtime.fake_provider.FakeJakarta.options", - "#qiskit_ibm_runtime.fake_provider.FakeJakarta.properties", - "#qiskit_ibm_runtime.fake_provider.FakeJakarta.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeJakarta.provider", - "#qiskit_ibm_runtime.fake_provider.FakeJakarta.run", - "#qiskit_ibm_runtime.fake_provider.FakeJakarta.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeJakarta.status", - "#qiskit_ibm_runtime.fake_provider.FakeJakarta.version", - "#run", - "#set_options", - "#status", - "#title-fakejakarta-description-api-reference-for-qiskit_ibm_runtimefake_providerfakejakarta-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakejakarta", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJakartaV2.mdx", "anchors": [ @@ -4301,9 +4437,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -4324,15 +4463,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2", "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.description", "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.dirname", @@ -4351,59 +4494,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.run", "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.status", "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.target", "#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakejakartav2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakejakartav2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakejakartav2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJohannesburg.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#dirname", - "#fakejohannesburg", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeJohannesburg", - "#qiskit_ibm_runtime.fake_provider.FakeJohannesburg.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeJohannesburg.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeJohannesburg.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeJohannesburg.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeJohannesburg.name", - "#qiskit_ibm_runtime.fake_provider.FakeJohannesburg.options", - "#qiskit_ibm_runtime.fake_provider.FakeJohannesburg.properties", - "#qiskit_ibm_runtime.fake_provider.FakeJohannesburg.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeJohannesburg.provider", - "#qiskit_ibm_runtime.fake_provider.FakeJohannesburg.run", - "#qiskit_ibm_runtime.fake_provider.FakeJohannesburg.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeJohannesburg.status", - "#qiskit_ibm_runtime.fake_provider.FakeJohannesburg.version", - "#run", - "#set_options", - "#status", - "#title-fakejohannesburg-description-api-reference-for-qiskit_ibm_runtimefake_providerfakejohannesburg-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakejohannesburg", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.mdx", "anchors": [ @@ -4411,9 +4521,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -4434,15 +4547,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2", "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.description", "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.dirname", @@ -4461,18 +4578,21 @@ "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.run", "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.status", "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.target", "#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakejohannesburgv2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakejohannesburgv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakejohannesburgv2", "#version" @@ -4485,9 +4605,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -4508,15 +4631,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeKawasaki", "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.configuration", "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.defaults", "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.description", "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.dirname", @@ -4535,63 +4662,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.operations", "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.options", + "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.properties", "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.provider", "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.refresh", "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.run", "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.status", "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.target", "#qiskit_ibm_runtime.fake_provider.FakeKawasaki.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakekawasaki-description-api-reference-for-qiskit_ibm_runtimefake_providerfakekawasaki-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakekawasaki", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKolkata.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakekolkata", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeKolkata", - "#qiskit_ibm_runtime.fake_provider.FakeKolkata.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeKolkata.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeKolkata.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeKolkata.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeKolkata.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeKolkata.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeKolkata.name", - "#qiskit_ibm_runtime.fake_provider.FakeKolkata.options", - "#qiskit_ibm_runtime.fake_provider.FakeKolkata.properties", - "#qiskit_ibm_runtime.fake_provider.FakeKolkata.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeKolkata.provider", - "#qiskit_ibm_runtime.fake_provider.FakeKolkata.run", - "#qiskit_ibm_runtime.fake_provider.FakeKolkata.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeKolkata.status", - "#qiskit_ibm_runtime.fake_provider.FakeKolkata.version", - "#run", - "#set_options", - "#status", - "#title-fakekolkata-description-api-reference-for-qiskit_ibm_runtimefake_providerfakekolkata-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakekolkata", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKolkataV2.mdx", "anchors": [ @@ -4599,9 +4689,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -4622,15 +4715,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2", "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.description", "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.dirname", @@ -4649,18 +4746,21 @@ "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.run", "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.status", "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.target", "#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakekolkatav2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakekolkatav2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakekolkatav2", "#version" @@ -4673,9 +4773,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -4696,15 +4799,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeKyiv", "#qiskit_ibm_runtime.fake_provider.FakeKyiv.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeKyiv.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeKyiv.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeKyiv.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeKyiv.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeKyiv.configuration", "#qiskit_ibm_runtime.fake_provider.FakeKyiv.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeKyiv.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeKyiv.defaults", "#qiskit_ibm_runtime.fake_provider.FakeKyiv.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeKyiv.description", "#qiskit_ibm_runtime.fake_provider.FakeKyiv.dirname", @@ -4723,18 +4830,21 @@ "#qiskit_ibm_runtime.fake_provider.FakeKyiv.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeKyiv.operations", "#qiskit_ibm_runtime.fake_provider.FakeKyiv.options", + "#qiskit_ibm_runtime.fake_provider.FakeKyiv.properties", "#qiskit_ibm_runtime.fake_provider.FakeKyiv.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeKyiv.provider", "#qiskit_ibm_runtime.fake_provider.FakeKyiv.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeKyiv.refresh", "#qiskit_ibm_runtime.fake_provider.FakeKyiv.run", "#qiskit_ibm_runtime.fake_provider.FakeKyiv.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeKyiv.status", "#qiskit_ibm_runtime.fake_provider.FakeKyiv.target", "#qiskit_ibm_runtime.fake_provider.FakeKyiv.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakekyiv-description-api-reference-for-qiskit_ibm_runtimefake_providerfakekyiv-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakekyiv", "#version" @@ -4747,9 +4857,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -4770,15 +4883,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeKyoto", "#qiskit_ibm_runtime.fake_provider.FakeKyoto.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeKyoto.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeKyoto.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeKyoto.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeKyoto.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeKyoto.configuration", "#qiskit_ibm_runtime.fake_provider.FakeKyoto.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeKyoto.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeKyoto.defaults", "#qiskit_ibm_runtime.fake_provider.FakeKyoto.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeKyoto.description", "#qiskit_ibm_runtime.fake_provider.FakeKyoto.dirname", @@ -4797,63 +4914,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeKyoto.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeKyoto.operations", "#qiskit_ibm_runtime.fake_provider.FakeKyoto.options", + "#qiskit_ibm_runtime.fake_provider.FakeKyoto.properties", "#qiskit_ibm_runtime.fake_provider.FakeKyoto.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeKyoto.provider", "#qiskit_ibm_runtime.fake_provider.FakeKyoto.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeKyoto.refresh", "#qiskit_ibm_runtime.fake_provider.FakeKyoto.run", "#qiskit_ibm_runtime.fake_provider.FakeKyoto.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeKyoto.status", "#qiskit_ibm_runtime.fake_provider.FakeKyoto.target", "#qiskit_ibm_runtime.fake_provider.FakeKyoto.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakekyoto-description-api-reference-for-qiskit_ibm_runtimefake_providerfakekyoto-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakekyoto", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLagos.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakelagos", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeLagos", - "#qiskit_ibm_runtime.fake_provider.FakeLagos.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeLagos.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeLagos.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeLagos.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeLagos.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeLagos.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeLagos.name", - "#qiskit_ibm_runtime.fake_provider.FakeLagos.options", - "#qiskit_ibm_runtime.fake_provider.FakeLagos.properties", - "#qiskit_ibm_runtime.fake_provider.FakeLagos.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeLagos.provider", - "#qiskit_ibm_runtime.fake_provider.FakeLagos.run", - "#qiskit_ibm_runtime.fake_provider.FakeLagos.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeLagos.status", - "#qiskit_ibm_runtime.fake_provider.FakeLagos.version", - "#run", - "#set_options", - "#status", - "#title-fakelagos-description-api-reference-for-qiskit_ibm_runtimefake_providerfakelagos-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakelagos", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLagosV2.mdx", "anchors": [ @@ -4861,9 +4941,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -4884,15 +4967,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeLagosV2", "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.description", "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.dirname", @@ -4911,63 +4998,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.run", "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.status", "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.target", "#qiskit_ibm_runtime.fake_provider.FakeLagosV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakelagosv2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakelagosv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakelagosv2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLima.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakelima", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeLima", - "#qiskit_ibm_runtime.fake_provider.FakeLima.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeLima.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeLima.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeLima.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeLima.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeLima.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeLima.name", - "#qiskit_ibm_runtime.fake_provider.FakeLima.options", - "#qiskit_ibm_runtime.fake_provider.FakeLima.properties", - "#qiskit_ibm_runtime.fake_provider.FakeLima.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeLima.provider", - "#qiskit_ibm_runtime.fake_provider.FakeLima.run", - "#qiskit_ibm_runtime.fake_provider.FakeLima.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeLima.status", - "#qiskit_ibm_runtime.fake_provider.FakeLima.version", - "#run", - "#set_options", - "#status", - "#title-fakelima-description-api-reference-for-qiskit_ibm_runtimefake_providerfakelima-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakelima", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLimaV2.mdx", "anchors": [ @@ -4975,9 +5025,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -4998,15 +5051,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeLimaV2", "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.description", "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.dirname", @@ -5025,59 +5082,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.run", "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.status", "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.target", "#qiskit_ibm_runtime.fake_provider.FakeLimaV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakelimav2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakelimav2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakelimav2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLondon.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#dirname", - "#fakelondon", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeLondon", - "#qiskit_ibm_runtime.fake_provider.FakeLondon.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeLondon.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeLondon.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeLondon.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeLondon.name", - "#qiskit_ibm_runtime.fake_provider.FakeLondon.options", - "#qiskit_ibm_runtime.fake_provider.FakeLondon.properties", - "#qiskit_ibm_runtime.fake_provider.FakeLondon.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeLondon.provider", - "#qiskit_ibm_runtime.fake_provider.FakeLondon.run", - "#qiskit_ibm_runtime.fake_provider.FakeLondon.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeLondon.status", - "#qiskit_ibm_runtime.fake_provider.FakeLondon.version", - "#run", - "#set_options", - "#status", - "#title-fakelondon-description-api-reference-for-qiskit_ibm_runtimefake_providerfakelondon-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakelondon", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLondonV2.mdx", "anchors": [ @@ -5085,9 +5109,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -5108,15 +5135,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeLondonV2", "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.description", "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.dirname", @@ -5135,63 +5166,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.run", "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.status", "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.target", "#qiskit_ibm_runtime.fake_provider.FakeLondonV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakelondonv2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakelondonv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakelondonv2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManhattan.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakemanhattan", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeManhattan", - "#qiskit_ibm_runtime.fake_provider.FakeManhattan.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeManhattan.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeManhattan.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeManhattan.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeManhattan.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeManhattan.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeManhattan.name", - "#qiskit_ibm_runtime.fake_provider.FakeManhattan.options", - "#qiskit_ibm_runtime.fake_provider.FakeManhattan.properties", - "#qiskit_ibm_runtime.fake_provider.FakeManhattan.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeManhattan.provider", - "#qiskit_ibm_runtime.fake_provider.FakeManhattan.run", - "#qiskit_ibm_runtime.fake_provider.FakeManhattan.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeManhattan.status", - "#qiskit_ibm_runtime.fake_provider.FakeManhattan.version", - "#run", - "#set_options", - "#status", - "#title-fakemanhattan-description-api-reference-for-qiskit_ibm_runtimefake_providerfakemanhattan-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakemanhattan", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManhattanV2.mdx", "anchors": [ @@ -5199,9 +5193,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -5222,15 +5219,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2", "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.description", "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.dirname", @@ -5249,63 +5250,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.run", "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.status", "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.target", "#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakemanhattanv2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakemanhattanv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakemanhattanv2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManila.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakemanila", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeManila", - "#qiskit_ibm_runtime.fake_provider.FakeManila.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeManila.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeManila.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeManila.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeManila.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeManila.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeManila.name", - "#qiskit_ibm_runtime.fake_provider.FakeManila.options", - "#qiskit_ibm_runtime.fake_provider.FakeManila.properties", - "#qiskit_ibm_runtime.fake_provider.FakeManila.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeManila.provider", - "#qiskit_ibm_runtime.fake_provider.FakeManila.run", - "#qiskit_ibm_runtime.fake_provider.FakeManila.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeManila.status", - "#qiskit_ibm_runtime.fake_provider.FakeManila.version", - "#run", - "#set_options", - "#status", - "#title-fakemanila-description-api-reference-for-qiskit_ibm_runtimefake_providerfakemanila-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakemanila", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManilaV2.mdx", "anchors": [ @@ -5313,9 +5277,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -5336,15 +5303,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeManilaV2", "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.description", "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.dirname", @@ -5361,50 +5332,25 @@ "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.num_qubits", "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.online_date", "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.operation_names", - "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.operations", - "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.options", - "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.provider", - "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.qubit_properties", - "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.refresh", - "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.run", - "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.target", - "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.version", - "#qubit_properties", - "#refresh", - "#run", - "#set_options", - "#target", - "#title-fakemanilav2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakemanilav2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakemanilav2", - "#version" - ] - }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMelbourne.mdx", - "anchors": [ - "#attributes", - "#configuration", - "#fakemelbourne", - "#methods", - "#name", - "#options", - "#properties", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeMelbourne", - "#qiskit_ibm_runtime.fake_provider.FakeMelbourne.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeMelbourne.name", - "#qiskit_ibm_runtime.fake_provider.FakeMelbourne.options", - "#qiskit_ibm_runtime.fake_provider.FakeMelbourne.properties", - "#qiskit_ibm_runtime.fake_provider.FakeMelbourne.provider", - "#qiskit_ibm_runtime.fake_provider.FakeMelbourne.run", - "#qiskit_ibm_runtime.fake_provider.FakeMelbourne.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeMelbourne.status", - "#qiskit_ibm_runtime.fake_provider.FakeMelbourne.version", + "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.operations", + "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.properties", + "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.props_filename", + "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.provider", + "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.qubit_properties", + "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.refresh", + "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.run", + "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.status", + "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.target", + "#qiskit_ibm_runtime.fake_provider.FakeManilaV2.version", + "#qubit_properties", + "#refresh", "#run", "#set_options", "#status", - "#title-fakemelbourne-description-api-reference-for-qiskit_ibm_runtimefake_providerfakemelbourne-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakemelbourne", + "#target", + "#title-fakemanilav2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakemanilav2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakemanilav2", "#version" ] }, @@ -5415,9 +5361,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -5438,15 +5387,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2", "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.description", "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.dirname", @@ -5465,63 +5418,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.run", "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.status", "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.target", "#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakemelbournev2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakemelbournev2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakemelbournev2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMontreal.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakemontreal", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeMontreal", - "#qiskit_ibm_runtime.fake_provider.FakeMontreal.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeMontreal.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeMontreal.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeMontreal.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeMontreal.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeMontreal.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeMontreal.name", - "#qiskit_ibm_runtime.fake_provider.FakeMontreal.options", - "#qiskit_ibm_runtime.fake_provider.FakeMontreal.properties", - "#qiskit_ibm_runtime.fake_provider.FakeMontreal.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeMontreal.provider", - "#qiskit_ibm_runtime.fake_provider.FakeMontreal.run", - "#qiskit_ibm_runtime.fake_provider.FakeMontreal.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeMontreal.status", - "#qiskit_ibm_runtime.fake_provider.FakeMontreal.version", - "#run", - "#set_options", - "#status", - "#title-fakemontreal-description-api-reference-for-qiskit_ibm_runtimefake_providerfakemontreal-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakemontreal", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMontrealV2.mdx", "anchors": [ @@ -5529,9 +5445,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -5552,15 +5471,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2", "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.description", "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.dirname", @@ -5579,63 +5502,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.run", "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.status", "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.target", "#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakemontrealv2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakemontrealv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakemontrealv2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMumbai.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakemumbai", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeMumbai", - "#qiskit_ibm_runtime.fake_provider.FakeMumbai.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeMumbai.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeMumbai.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeMumbai.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeMumbai.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeMumbai.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeMumbai.name", - "#qiskit_ibm_runtime.fake_provider.FakeMumbai.options", - "#qiskit_ibm_runtime.fake_provider.FakeMumbai.properties", - "#qiskit_ibm_runtime.fake_provider.FakeMumbai.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeMumbai.provider", - "#qiskit_ibm_runtime.fake_provider.FakeMumbai.run", - "#qiskit_ibm_runtime.fake_provider.FakeMumbai.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeMumbai.status", - "#qiskit_ibm_runtime.fake_provider.FakeMumbai.version", - "#run", - "#set_options", - "#status", - "#title-fakemumbai-description-api-reference-for-qiskit_ibm_runtimefake_providerfakemumbai-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakemumbai", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.mdx", "anchors": [ @@ -5643,9 +5529,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -5666,15 +5555,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2", "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.description", "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.dirname", @@ -5693,63 +5586,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.run", "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.status", "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.target", "#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakemumbaiv2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakemumbaiv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakemumbaiv2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeNairobi.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakenairobi", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeNairobi", - "#qiskit_ibm_runtime.fake_provider.FakeNairobi.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeNairobi.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeNairobi.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeNairobi.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeNairobi.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeNairobi.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeNairobi.name", - "#qiskit_ibm_runtime.fake_provider.FakeNairobi.options", - "#qiskit_ibm_runtime.fake_provider.FakeNairobi.properties", - "#qiskit_ibm_runtime.fake_provider.FakeNairobi.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeNairobi.provider", - "#qiskit_ibm_runtime.fake_provider.FakeNairobi.run", - "#qiskit_ibm_runtime.fake_provider.FakeNairobi.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeNairobi.status", - "#qiskit_ibm_runtime.fake_provider.FakeNairobi.version", - "#run", - "#set_options", - "#status", - "#title-fakenairobi-description-api-reference-for-qiskit_ibm_runtimefake_providerfakenairobi-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakenairobi", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeNairobiV2.mdx", "anchors": [ @@ -5757,9 +5613,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -5780,15 +5639,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2", "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.description", "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.dirname", @@ -5807,18 +5670,21 @@ "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.run", "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.status", "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.target", "#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakenairobiv2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakenairobiv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakenairobiv2", "#version" @@ -5831,9 +5697,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -5854,15 +5723,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeOsaka", "#qiskit_ibm_runtime.fake_provider.FakeOsaka.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeOsaka.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeOsaka.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeOsaka.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeOsaka.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeOsaka.configuration", "#qiskit_ibm_runtime.fake_provider.FakeOsaka.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeOsaka.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeOsaka.defaults", "#qiskit_ibm_runtime.fake_provider.FakeOsaka.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeOsaka.description", "#qiskit_ibm_runtime.fake_provider.FakeOsaka.dirname", @@ -5881,18 +5754,21 @@ "#qiskit_ibm_runtime.fake_provider.FakeOsaka.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeOsaka.operations", "#qiskit_ibm_runtime.fake_provider.FakeOsaka.options", + "#qiskit_ibm_runtime.fake_provider.FakeOsaka.properties", "#qiskit_ibm_runtime.fake_provider.FakeOsaka.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeOsaka.provider", "#qiskit_ibm_runtime.fake_provider.FakeOsaka.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeOsaka.refresh", "#qiskit_ibm_runtime.fake_provider.FakeOsaka.run", "#qiskit_ibm_runtime.fake_provider.FakeOsaka.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeOsaka.status", "#qiskit_ibm_runtime.fake_provider.FakeOsaka.target", "#qiskit_ibm_runtime.fake_provider.FakeOsaka.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakeosaka-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeosaka-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeosaka", "#version" @@ -5905,9 +5781,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -5928,15 +5807,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeOslo", "#qiskit_ibm_runtime.fake_provider.FakeOslo.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeOslo.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeOslo.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeOslo.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeOslo.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeOslo.configuration", "#qiskit_ibm_runtime.fake_provider.FakeOslo.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeOslo.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeOslo.defaults", "#qiskit_ibm_runtime.fake_provider.FakeOslo.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeOslo.description", "#qiskit_ibm_runtime.fake_provider.FakeOslo.dirname", @@ -5955,59 +5838,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeOslo.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeOslo.operations", "#qiskit_ibm_runtime.fake_provider.FakeOslo.options", + "#qiskit_ibm_runtime.fake_provider.FakeOslo.properties", "#qiskit_ibm_runtime.fake_provider.FakeOslo.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeOslo.provider", "#qiskit_ibm_runtime.fake_provider.FakeOslo.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeOslo.refresh", "#qiskit_ibm_runtime.fake_provider.FakeOslo.run", "#qiskit_ibm_runtime.fake_provider.FakeOslo.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeOslo.status", "#qiskit_ibm_runtime.fake_provider.FakeOslo.target", "#qiskit_ibm_runtime.fake_provider.FakeOslo.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakeoslo-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeoslo-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeoslo", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOurense.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#dirname", - "#fakeourense", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeOurense", - "#qiskit_ibm_runtime.fake_provider.FakeOurense.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeOurense.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeOurense.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeOurense.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeOurense.name", - "#qiskit_ibm_runtime.fake_provider.FakeOurense.options", - "#qiskit_ibm_runtime.fake_provider.FakeOurense.properties", - "#qiskit_ibm_runtime.fake_provider.FakeOurense.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeOurense.provider", - "#qiskit_ibm_runtime.fake_provider.FakeOurense.run", - "#qiskit_ibm_runtime.fake_provider.FakeOurense.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeOurense.status", - "#qiskit_ibm_runtime.fake_provider.FakeOurense.version", - "#run", - "#set_options", - "#status", - "#title-fakeourense-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeourense-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeourense", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOurenseV2.mdx", "anchors": [ @@ -6015,9 +5865,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -6038,15 +5891,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2", "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.description", "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.dirname", @@ -6065,63 +5922,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.run", "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.status", "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.target", "#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakeourensev2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeourensev2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeourensev2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeParis.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakeparis", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeParis", - "#qiskit_ibm_runtime.fake_provider.FakeParis.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeParis.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeParis.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeParis.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeParis.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeParis.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeParis.name", - "#qiskit_ibm_runtime.fake_provider.FakeParis.options", - "#qiskit_ibm_runtime.fake_provider.FakeParis.properties", - "#qiskit_ibm_runtime.fake_provider.FakeParis.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeParis.provider", - "#qiskit_ibm_runtime.fake_provider.FakeParis.run", - "#qiskit_ibm_runtime.fake_provider.FakeParis.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeParis.status", - "#qiskit_ibm_runtime.fake_provider.FakeParis.version", - "#run", - "#set_options", - "#status", - "#title-fakeparis-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeparis-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeparis", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeParisV2.mdx", "anchors": [ @@ -6129,9 +5949,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -6152,15 +5975,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeParisV2", "#qiskit_ibm_runtime.fake_provider.FakeParisV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeParisV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeParisV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeParisV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeParisV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeParisV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeParisV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeParisV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeParisV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeParisV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeParisV2.description", "#qiskit_ibm_runtime.fake_provider.FakeParisV2.dirname", @@ -6179,18 +6006,21 @@ "#qiskit_ibm_runtime.fake_provider.FakeParisV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeParisV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeParisV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeParisV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeParisV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeParisV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeParisV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeParisV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeParisV2.run", "#qiskit_ibm_runtime.fake_provider.FakeParisV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeParisV2.status", "#qiskit_ibm_runtime.fake_provider.FakeParisV2.target", "#qiskit_ibm_runtime.fake_provider.FakeParisV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakeparisv2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeparisv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeparisv2", "#version" @@ -6203,9 +6033,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -6226,15 +6059,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakePeekskill", "#qiskit_ibm_runtime.fake_provider.FakePeekskill.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakePeekskill.backend_name", "#qiskit_ibm_runtime.fake_provider.FakePeekskill.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakePeekskill.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakePeekskill.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakePeekskill.configuration", "#qiskit_ibm_runtime.fake_provider.FakePeekskill.control_channel", "#qiskit_ibm_runtime.fake_provider.FakePeekskill.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakePeekskill.defaults", "#qiskit_ibm_runtime.fake_provider.FakePeekskill.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakePeekskill.description", "#qiskit_ibm_runtime.fake_provider.FakePeekskill.dirname", @@ -6253,18 +6090,21 @@ "#qiskit_ibm_runtime.fake_provider.FakePeekskill.operation_names", "#qiskit_ibm_runtime.fake_provider.FakePeekskill.operations", "#qiskit_ibm_runtime.fake_provider.FakePeekskill.options", + "#qiskit_ibm_runtime.fake_provider.FakePeekskill.properties", "#qiskit_ibm_runtime.fake_provider.FakePeekskill.props_filename", "#qiskit_ibm_runtime.fake_provider.FakePeekskill.provider", "#qiskit_ibm_runtime.fake_provider.FakePeekskill.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakePeekskill.refresh", "#qiskit_ibm_runtime.fake_provider.FakePeekskill.run", "#qiskit_ibm_runtime.fake_provider.FakePeekskill.set_options", + "#qiskit_ibm_runtime.fake_provider.FakePeekskill.status", "#qiskit_ibm_runtime.fake_provider.FakePeekskill.target", "#qiskit_ibm_runtime.fake_provider.FakePeekskill.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakepeekskill-description-api-reference-for-qiskit_ibm_runtimefake_providerfakepeekskill-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakepeekskill", "#version" @@ -6277,9 +6117,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -6300,15 +6143,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakePerth", "#qiskit_ibm_runtime.fake_provider.FakePerth.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakePerth.backend_name", "#qiskit_ibm_runtime.fake_provider.FakePerth.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakePerth.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakePerth.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakePerth.configuration", "#qiskit_ibm_runtime.fake_provider.FakePerth.control_channel", "#qiskit_ibm_runtime.fake_provider.FakePerth.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakePerth.defaults", "#qiskit_ibm_runtime.fake_provider.FakePerth.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakePerth.description", "#qiskit_ibm_runtime.fake_provider.FakePerth.dirname", @@ -6327,51 +6174,26 @@ "#qiskit_ibm_runtime.fake_provider.FakePerth.operation_names", "#qiskit_ibm_runtime.fake_provider.FakePerth.operations", "#qiskit_ibm_runtime.fake_provider.FakePerth.options", + "#qiskit_ibm_runtime.fake_provider.FakePerth.properties", "#qiskit_ibm_runtime.fake_provider.FakePerth.props_filename", "#qiskit_ibm_runtime.fake_provider.FakePerth.provider", "#qiskit_ibm_runtime.fake_provider.FakePerth.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakePerth.refresh", "#qiskit_ibm_runtime.fake_provider.FakePerth.run", "#qiskit_ibm_runtime.fake_provider.FakePerth.set_options", + "#qiskit_ibm_runtime.fake_provider.FakePerth.status", "#qiskit_ibm_runtime.fake_provider.FakePerth.target", "#qiskit_ibm_runtime.fake_provider.FakePerth.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakeperth-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeperth-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeperth", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.mdx", - "anchors": [ - "#attributes", - "#configuration", - "#fakepoughkeepsie", - "#methods", - "#name", - "#options", - "#properties", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsie", - "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.configuration", - "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.name", - "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.options", - "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.properties", - "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.provider", - "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.run", - "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.set_options", - "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.status", - "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.version", - "#run", - "#set_options", - "#status", - "#title-fakepoughkeepsie-description-api-reference-for-qiskit_ibm_runtimefake_providerfakepoughkeepsie-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakepoughkeepsie", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.mdx", "anchors": [ @@ -6379,9 +6201,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -6402,15 +6227,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2", "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.description", "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.dirname", @@ -6429,18 +6258,21 @@ "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.operations", "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.options", + "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.properties", "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.provider", "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.run", "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.status", "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.target", "#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakepoughkeepsiev2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakepoughkeepsiev2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakepoughkeepsiev2", "#version" @@ -6453,9 +6285,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -6476,15 +6311,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakePrague", "#qiskit_ibm_runtime.fake_provider.FakePrague.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakePrague.backend_name", "#qiskit_ibm_runtime.fake_provider.FakePrague.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakePrague.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakePrague.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakePrague.configuration", "#qiskit_ibm_runtime.fake_provider.FakePrague.control_channel", "#qiskit_ibm_runtime.fake_provider.FakePrague.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakePrague.defaults", "#qiskit_ibm_runtime.fake_provider.FakePrague.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakePrague.description", "#qiskit_ibm_runtime.fake_provider.FakePrague.dirname", @@ -6503,51 +6342,36 @@ "#qiskit_ibm_runtime.fake_provider.FakePrague.operation_names", "#qiskit_ibm_runtime.fake_provider.FakePrague.operations", "#qiskit_ibm_runtime.fake_provider.FakePrague.options", + "#qiskit_ibm_runtime.fake_provider.FakePrague.properties", "#qiskit_ibm_runtime.fake_provider.FakePrague.props_filename", "#qiskit_ibm_runtime.fake_provider.FakePrague.provider", "#qiskit_ibm_runtime.fake_provider.FakePrague.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakePrague.refresh", "#qiskit_ibm_runtime.fake_provider.FakePrague.run", "#qiskit_ibm_runtime.fake_provider.FakePrague.set_options", + "#qiskit_ibm_runtime.fake_provider.FakePrague.status", "#qiskit_ibm_runtime.fake_provider.FakePrague.target", "#qiskit_ibm_runtime.fake_provider.FakePrague.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakeprague-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeprague-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeprague", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeProvider.mdx", - "anchors": [ - "#attributes", - "#backends", - "#fakeprovider", - "#get_backend", - "#methods", - "#qiskit_ibm_runtime.fake_provider.FakeProvider", - "#qiskit_ibm_runtime.fake_provider.FakeProvider.backends", - "#qiskit_ibm_runtime.fake_provider.FakeProvider.get_backend", - "#qiskit_ibm_runtime.fake_provider.FakeProvider.version", - "#title-fakeprovider-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeprovider-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeprovider", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2.mdx", "anchors": [ "#backend", "#backends", "#fakeproviderforbackendv2", - "#get_backend", "#methods", "#qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2", "#qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2.backend", "#qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2.backends", - "#qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2.get_backend", "#title-fakeproviderforbackendv2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeproviderforbackendv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeproviderforbackendv2" ] }, @@ -6558,9 +6382,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -6581,15 +6408,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeQuebec", "#qiskit_ibm_runtime.fake_provider.FakeQuebec.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeQuebec.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeQuebec.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeQuebec.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeQuebec.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeQuebec.configuration", "#qiskit_ibm_runtime.fake_provider.FakeQuebec.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeQuebec.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeQuebec.defaults", "#qiskit_ibm_runtime.fake_provider.FakeQuebec.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeQuebec.description", "#qiskit_ibm_runtime.fake_provider.FakeQuebec.dirname", @@ -6608,63 +6439,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeQuebec.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeQuebec.operations", "#qiskit_ibm_runtime.fake_provider.FakeQuebec.options", + "#qiskit_ibm_runtime.fake_provider.FakeQuebec.properties", "#qiskit_ibm_runtime.fake_provider.FakeQuebec.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeQuebec.provider", "#qiskit_ibm_runtime.fake_provider.FakeQuebec.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeQuebec.refresh", "#qiskit_ibm_runtime.fake_provider.FakeQuebec.run", "#qiskit_ibm_runtime.fake_provider.FakeQuebec.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeQuebec.status", "#qiskit_ibm_runtime.fake_provider.FakeQuebec.target", "#qiskit_ibm_runtime.fake_provider.FakeQuebec.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakequebec-description-api-reference-for-qiskit_ibm_runtimefake_providerfakequebec-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakequebec", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuito.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakequito", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeQuito", - "#qiskit_ibm_runtime.fake_provider.FakeQuito.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeQuito.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeQuito.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeQuito.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeQuito.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeQuito.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeQuito.name", - "#qiskit_ibm_runtime.fake_provider.FakeQuito.options", - "#qiskit_ibm_runtime.fake_provider.FakeQuito.properties", - "#qiskit_ibm_runtime.fake_provider.FakeQuito.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeQuito.provider", - "#qiskit_ibm_runtime.fake_provider.FakeQuito.run", - "#qiskit_ibm_runtime.fake_provider.FakeQuito.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeQuito.status", - "#qiskit_ibm_runtime.fake_provider.FakeQuito.version", - "#run", - "#set_options", - "#status", - "#title-fakequito-description-api-reference-for-qiskit_ibm_runtimefake_providerfakequito-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakequito", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuitoV2.mdx", "anchors": [ @@ -6672,9 +6466,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -6695,15 +6492,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2", "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.description", "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.dirname", @@ -6722,59 +6523,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.run", "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.status", "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.target", "#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakequitov2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakequitov2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakequitov2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRochester.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#dirname", - "#fakerochester", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeRochester", - "#qiskit_ibm_runtime.fake_provider.FakeRochester.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeRochester.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeRochester.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeRochester.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeRochester.name", - "#qiskit_ibm_runtime.fake_provider.FakeRochester.options", - "#qiskit_ibm_runtime.fake_provider.FakeRochester.properties", - "#qiskit_ibm_runtime.fake_provider.FakeRochester.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeRochester.provider", - "#qiskit_ibm_runtime.fake_provider.FakeRochester.run", - "#qiskit_ibm_runtime.fake_provider.FakeRochester.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeRochester.status", - "#qiskit_ibm_runtime.fake_provider.FakeRochester.version", - "#run", - "#set_options", - "#status", - "#title-fakerochester-description-api-reference-for-qiskit_ibm_runtimefake_providerfakerochester-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakerochester", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRochesterV2.mdx", "anchors": [ @@ -6782,9 +6550,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -6805,15 +6576,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2", "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.description", "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.dirname", @@ -6832,63 +6607,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.run", "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.status", "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.target", "#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakerochesterv2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakerochesterv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakerochesterv2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRome.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakerome", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeRome", - "#qiskit_ibm_runtime.fake_provider.FakeRome.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeRome.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeRome.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeRome.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeRome.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeRome.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeRome.name", - "#qiskit_ibm_runtime.fake_provider.FakeRome.options", - "#qiskit_ibm_runtime.fake_provider.FakeRome.properties", - "#qiskit_ibm_runtime.fake_provider.FakeRome.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeRome.provider", - "#qiskit_ibm_runtime.fake_provider.FakeRome.run", - "#qiskit_ibm_runtime.fake_provider.FakeRome.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeRome.status", - "#qiskit_ibm_runtime.fake_provider.FakeRome.version", - "#run", - "#set_options", - "#status", - "#title-fakerome-description-api-reference-for-qiskit_ibm_runtimefake_providerfakerome-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakerome", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRomeV2.mdx", "anchors": [ @@ -6896,9 +6634,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -6919,15 +6660,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeRomeV2", "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.description", "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.dirname", @@ -6946,91 +6691,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.run", "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.status", "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.target", "#qiskit_ibm_runtime.fake_provider.FakeRomeV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakeromev2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeromev2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeromev2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRueschlikon.mdx", - "anchors": [ - "#attributes", - "#configuration", - "#fakerueschlikon", - "#methods", - "#name", - "#options", - "#properties", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeRueschlikon", - "#qiskit_ibm_runtime.fake_provider.FakeRueschlikon.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeRueschlikon.name", - "#qiskit_ibm_runtime.fake_provider.FakeRueschlikon.options", - "#qiskit_ibm_runtime.fake_provider.FakeRueschlikon.properties", - "#qiskit_ibm_runtime.fake_provider.FakeRueschlikon.provider", - "#qiskit_ibm_runtime.fake_provider.FakeRueschlikon.run", - "#qiskit_ibm_runtime.fake_provider.FakeRueschlikon.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeRueschlikon.status", - "#qiskit_ibm_runtime.fake_provider.FakeRueschlikon.version", - "#run", - "#set_options", - "#status", - "#title-fakerueschlikon-description-api-reference-for-qiskit_ibm_runtimefake_providerfakerueschlikon-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakerueschlikon", - "#version" - ] - }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSantiago.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakesantiago", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeSantiago", - "#qiskit_ibm_runtime.fake_provider.FakeSantiago.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeSantiago.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeSantiago.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeSantiago.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeSantiago.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeSantiago.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeSantiago.name", - "#qiskit_ibm_runtime.fake_provider.FakeSantiago.options", - "#qiskit_ibm_runtime.fake_provider.FakeSantiago.properties", - "#qiskit_ibm_runtime.fake_provider.FakeSantiago.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeSantiago.provider", - "#qiskit_ibm_runtime.fake_provider.FakeSantiago.run", - "#qiskit_ibm_runtime.fake_provider.FakeSantiago.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeSantiago.status", - "#qiskit_ibm_runtime.fake_provider.FakeSantiago.version", - "#run", - "#set_options", - "#status", - "#title-fakesantiago-description-api-reference-for-qiskit_ibm_runtimefake_providerfakesantiago-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakesantiago", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.mdx", "anchors": [ @@ -7038,9 +6718,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -7061,15 +6744,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2", "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.description", "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.dirname", @@ -7088,18 +6775,21 @@ "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.run", "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.status", "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.target", "#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakesantiagov2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakesantiagov2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakesantiagov2", "#version" @@ -7112,9 +6802,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -7135,15 +6828,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke", "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.configuration", "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.defaults", "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.description", "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.dirname", @@ -7162,59 +6859,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.operations", "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.options", + "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.properties", "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.provider", "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.refresh", "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.run", "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.status", "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.target", "#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakesherbrooke-description-api-reference-for-qiskit_ibm_runtimefake_providerfakesherbrooke-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakesherbrooke", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSingapore.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#dirname", - "#fakesingapore", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeSingapore", - "#qiskit_ibm_runtime.fake_provider.FakeSingapore.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeSingapore.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeSingapore.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeSingapore.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeSingapore.name", - "#qiskit_ibm_runtime.fake_provider.FakeSingapore.options", - "#qiskit_ibm_runtime.fake_provider.FakeSingapore.properties", - "#qiskit_ibm_runtime.fake_provider.FakeSingapore.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeSingapore.provider", - "#qiskit_ibm_runtime.fake_provider.FakeSingapore.run", - "#qiskit_ibm_runtime.fake_provider.FakeSingapore.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeSingapore.status", - "#qiskit_ibm_runtime.fake_provider.FakeSingapore.version", - "#run", - "#set_options", - "#status", - "#title-fakesingapore-description-api-reference-for-qiskit_ibm_runtimefake_providerfakesingapore-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakesingapore", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.mdx", "anchors": [ @@ -7222,9 +6886,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -7245,15 +6912,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2", "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.description", "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.dirname", @@ -7272,63 +6943,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.run", "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.status", "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.target", "#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakesingaporev2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakesingaporev2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakesingaporev2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSydney.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakesydney", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeSydney", - "#qiskit_ibm_runtime.fake_provider.FakeSydney.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeSydney.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeSydney.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeSydney.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeSydney.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeSydney.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeSydney.name", - "#qiskit_ibm_runtime.fake_provider.FakeSydney.options", - "#qiskit_ibm_runtime.fake_provider.FakeSydney.properties", - "#qiskit_ibm_runtime.fake_provider.FakeSydney.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeSydney.provider", - "#qiskit_ibm_runtime.fake_provider.FakeSydney.run", - "#qiskit_ibm_runtime.fake_provider.FakeSydney.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeSydney.status", - "#qiskit_ibm_runtime.fake_provider.FakeSydney.version", - "#run", - "#set_options", - "#status", - "#title-fakesydney-description-api-reference-for-qiskit_ibm_runtimefake_providerfakesydney-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakesydney", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSydneyV2.mdx", "anchors": [ @@ -7336,9 +6970,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -7359,15 +6996,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2", "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.description", "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.dirname", @@ -7386,79 +7027,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.run", "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.status", "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.target", "#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakesydneyv2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakesydneyv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakesydneyv2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTenerife.mdx", - "anchors": [ - "#attributes", - "#configuration", - "#faketenerife", - "#methods", - "#name", - "#options", - "#properties", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeTenerife", - "#qiskit_ibm_runtime.fake_provider.FakeTenerife.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeTenerife.name", - "#qiskit_ibm_runtime.fake_provider.FakeTenerife.options", - "#qiskit_ibm_runtime.fake_provider.FakeTenerife.properties", - "#qiskit_ibm_runtime.fake_provider.FakeTenerife.provider", - "#qiskit_ibm_runtime.fake_provider.FakeTenerife.run", - "#qiskit_ibm_runtime.fake_provider.FakeTenerife.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeTenerife.status", - "#qiskit_ibm_runtime.fake_provider.FakeTenerife.version", - "#run", - "#set_options", - "#status", - "#title-faketenerife-description-api-reference-for-qiskit_ibm_runtimefake_providerfaketenerife-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfaketenerife", - "#version" - ] - }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTokyo.mdx", - "anchors": [ - "#attributes", - "#configuration", - "#faketokyo", - "#methods", - "#name", - "#options", - "#properties", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeTokyo", - "#qiskit_ibm_runtime.fake_provider.FakeTokyo.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeTokyo.name", - "#qiskit_ibm_runtime.fake_provider.FakeTokyo.options", - "#qiskit_ibm_runtime.fake_provider.FakeTokyo.properties", - "#qiskit_ibm_runtime.fake_provider.FakeTokyo.provider", - "#qiskit_ibm_runtime.fake_provider.FakeTokyo.run", - "#qiskit_ibm_runtime.fake_provider.FakeTokyo.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeTokyo.status", - "#qiskit_ibm_runtime.fake_provider.FakeTokyo.version", - "#run", - "#set_options", - "#status", - "#title-faketokyo-description-api-reference-for-qiskit_ibm_runtimefake_providerfaketokyo-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfaketokyo", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTorino.mdx", "anchors": [ @@ -7466,9 +7054,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -7489,15 +7080,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeTorino", "#qiskit_ibm_runtime.fake_provider.FakeTorino.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeTorino.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeTorino.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeTorino.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeTorino.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeTorino.configuration", "#qiskit_ibm_runtime.fake_provider.FakeTorino.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeTorino.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeTorino.defaults", "#qiskit_ibm_runtime.fake_provider.FakeTorino.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeTorino.description", "#qiskit_ibm_runtime.fake_provider.FakeTorino.dirname", @@ -7516,63 +7111,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeTorino.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeTorino.operations", "#qiskit_ibm_runtime.fake_provider.FakeTorino.options", + "#qiskit_ibm_runtime.fake_provider.FakeTorino.properties", "#qiskit_ibm_runtime.fake_provider.FakeTorino.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeTorino.provider", "#qiskit_ibm_runtime.fake_provider.FakeTorino.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeTorino.refresh", "#qiskit_ibm_runtime.fake_provider.FakeTorino.run", "#qiskit_ibm_runtime.fake_provider.FakeTorino.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeTorino.status", "#qiskit_ibm_runtime.fake_provider.FakeTorino.target", "#qiskit_ibm_runtime.fake_provider.FakeTorino.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-faketorino-description-api-reference-for-qiskit_ibm_runtimefake_providerfaketorino-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfaketorino", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeToronto.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#faketoronto", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeToronto", - "#qiskit_ibm_runtime.fake_provider.FakeToronto.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeToronto.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeToronto.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeToronto.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeToronto.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeToronto.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeToronto.name", - "#qiskit_ibm_runtime.fake_provider.FakeToronto.options", - "#qiskit_ibm_runtime.fake_provider.FakeToronto.properties", - "#qiskit_ibm_runtime.fake_provider.FakeToronto.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeToronto.provider", - "#qiskit_ibm_runtime.fake_provider.FakeToronto.run", - "#qiskit_ibm_runtime.fake_provider.FakeToronto.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeToronto.status", - "#qiskit_ibm_runtime.fake_provider.FakeToronto.version", - "#run", - "#set_options", - "#status", - "#title-faketoronto-description-api-reference-for-qiskit_ibm_runtimefake_providerfaketoronto-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfaketoronto", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTorontoV2.mdx", "anchors": [ @@ -7580,9 +7138,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -7603,15 +7164,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2", "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.description", "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.dirname", @@ -7630,63 +7195,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.run", "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.status", "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.target", "#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-faketorontov2-description-api-reference-for-qiskit_ibm_runtimefake_providerfaketorontov2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfaketorontov2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeValencia.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakevalencia", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeValencia", - "#qiskit_ibm_runtime.fake_provider.FakeValencia.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeValencia.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeValencia.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeValencia.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeValencia.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeValencia.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeValencia.name", - "#qiskit_ibm_runtime.fake_provider.FakeValencia.options", - "#qiskit_ibm_runtime.fake_provider.FakeValencia.properties", - "#qiskit_ibm_runtime.fake_provider.FakeValencia.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeValencia.provider", - "#qiskit_ibm_runtime.fake_provider.FakeValencia.run", - "#qiskit_ibm_runtime.fake_provider.FakeValencia.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeValencia.status", - "#qiskit_ibm_runtime.fake_provider.FakeValencia.version", - "#run", - "#set_options", - "#status", - "#title-fakevalencia-description-api-reference-for-qiskit_ibm_runtimefake_providerfakevalencia-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakevalencia", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeValenciaV2.mdx", "anchors": [ @@ -7694,9 +7222,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -7717,15 +7248,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2", "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.description", "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.dirname", @@ -7744,59 +7279,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.run", "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.status", "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.target", "#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakevalenciav2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakevalenciav2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakevalenciav2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeVigo.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#dirname", - "#fakevigo", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeVigo", - "#qiskit_ibm_runtime.fake_provider.FakeVigo.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeVigo.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeVigo.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeVigo.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeVigo.name", - "#qiskit_ibm_runtime.fake_provider.FakeVigo.options", - "#qiskit_ibm_runtime.fake_provider.FakeVigo.properties", - "#qiskit_ibm_runtime.fake_provider.FakeVigo.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeVigo.provider", - "#qiskit_ibm_runtime.fake_provider.FakeVigo.run", - "#qiskit_ibm_runtime.fake_provider.FakeVigo.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeVigo.status", - "#qiskit_ibm_runtime.fake_provider.FakeVigo.version", - "#run", - "#set_options", - "#status", - "#title-fakevigo-description-api-reference-for-qiskit_ibm_runtimefake_providerfakevigo-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakevigo", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeVigoV2.mdx", "anchors": [ @@ -7804,9 +7306,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -7827,15 +7332,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeVigoV2", "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.description", "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.dirname", @@ -7854,60 +7363,23 @@ "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.run", "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.status", "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.target", "#qiskit_ibm_runtime.fake_provider.FakeVigoV2.version", "#qubit_properties", - "#refresh", - "#run", - "#set_options", - "#target", - "#title-fakevigov2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakevigov2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakevigov2", - "#version" - ] - }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeWashington.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#defaults", - "#defs_filename", - "#dirname", - "#fakewashington", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeWashington", - "#qiskit_ibm_runtime.fake_provider.FakeWashington.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeWashington.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeWashington.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeWashington.defaults", - "#qiskit_ibm_runtime.fake_provider.FakeWashington.defs_filename", - "#qiskit_ibm_runtime.fake_provider.FakeWashington.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeWashington.name", - "#qiskit_ibm_runtime.fake_provider.FakeWashington.options", - "#qiskit_ibm_runtime.fake_provider.FakeWashington.properties", - "#qiskit_ibm_runtime.fake_provider.FakeWashington.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeWashington.provider", - "#qiskit_ibm_runtime.fake_provider.FakeWashington.run", - "#qiskit_ibm_runtime.fake_provider.FakeWashington.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeWashington.status", - "#qiskit_ibm_runtime.fake_provider.FakeWashington.version", + "#refresh", "#run", "#set_options", "#status", - "#title-fakewashington-description-api-reference-for-qiskit_ibm_runtimefake_providerfakewashington-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakewashington", + "#target", + "#title-fakevigov2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakevigov2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakevigov2", "#version" ] }, @@ -7918,9 +7390,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -7941,15 +7416,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2", "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.description", "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.dirname", @@ -7968,59 +7447,26 @@ "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.run", "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.status", "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.target", "#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakewashingtonv2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakewashingtonv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakewashingtonv2", "#version" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeYorktown.mdx", - "anchors": [ - "#attributes", - "#backend_name", - "#conf_filename", - "#configuration", - "#dirname", - "#fakeyorktown", - "#methods", - "#name", - "#options", - "#properties", - "#props_filename", - "#provider", - "#qiskit_ibm_runtime.fake_provider.FakeYorktown", - "#qiskit_ibm_runtime.fake_provider.FakeYorktown.backend_name", - "#qiskit_ibm_runtime.fake_provider.FakeYorktown.conf_filename", - "#qiskit_ibm_runtime.fake_provider.FakeYorktown.configuration", - "#qiskit_ibm_runtime.fake_provider.FakeYorktown.dirname", - "#qiskit_ibm_runtime.fake_provider.FakeYorktown.name", - "#qiskit_ibm_runtime.fake_provider.FakeYorktown.options", - "#qiskit_ibm_runtime.fake_provider.FakeYorktown.properties", - "#qiskit_ibm_runtime.fake_provider.FakeYorktown.props_filename", - "#qiskit_ibm_runtime.fake_provider.FakeYorktown.provider", - "#qiskit_ibm_runtime.fake_provider.FakeYorktown.run", - "#qiskit_ibm_runtime.fake_provider.FakeYorktown.set_options", - "#qiskit_ibm_runtime.fake_provider.FakeYorktown.status", - "#qiskit_ibm_runtime.fake_provider.FakeYorktown.version", - "#run", - "#set_options", - "#status", - "#title-fakeyorktown-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeyorktown-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeyorktown", - "#version" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeYorktownV2.mdx", "anchors": [ @@ -8028,9 +7474,12 @@ "#attributes", "#backend_name", "#backend_version", + "#check_faulty", "#conf_filename", + "#configuration", "#control_channel", "#coupling_map", + "#defaults", "#defs_filename", "#description", "#dirname", @@ -8051,15 +7500,19 @@ "#operation_names", "#operations", "#options", + "#properties", "#props_filename", "#provider", "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2", "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.acquire_channel", "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.backend_name", "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.backend_version", + "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.check_faulty", "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.conf_filename", + "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.configuration", "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.control_channel", "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.coupling_map", + "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.defaults", "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.defs_filename", "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.description", "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.dirname", @@ -8078,23 +7531,40 @@ "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.operation_names", "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.operations", "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.options", + "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.properties", "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.props_filename", "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.provider", "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.qubit_properties", "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.refresh", "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.run", "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.set_options", + "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.status", "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.target", "#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.version", "#qubit_properties", "#refresh", "#run", "#set_options", + "#status", "#target", "#title-fakeyorktownv2-description-api-reference-for-qiskit_ibm_runtimefake_providerfakeyorktownv2-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimefake_providerfakeyorktownv2", "#version" ] }, + { + "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.noise_learner.NoiseLearner.mdx", + "anchors": [ + "#attributes", + "#methods", + "#noiselearner", + "#options", + "#qiskit_ibm_runtime.noise_learner.NoiseLearner", + "#qiskit_ibm_runtime.noise_learner.NoiseLearner.options", + "#qiskit_ibm_runtime.noise_learner.NoiseLearner.run", + "#run", + "#title-noiselearner-description-api-reference-for-qiskit_ibm_runtimenoise_learnernoiselearner-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimenoise_learnernoiselearner" + ] + }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.DynamicalDecouplingOptions.mdx", "anchors": [ @@ -8122,10 +7592,12 @@ "#job_tags", "#log_level", "#methods", + "#private", "#qiskit_ibm_runtime.options.EnvironmentOptions", "#qiskit_ibm_runtime.options.EnvironmentOptions.callback", "#qiskit_ibm_runtime.options.EnvironmentOptions.job_tags", "#qiskit_ibm_runtime.options.EnvironmentOptions.log_level", + "#qiskit_ibm_runtime.options.EnvironmentOptions.private", "#title-environmentoptions-description-api-reference-for-qiskit_ibm_runtimeoptionsenvironmentoptions-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimeoptionsenvironmentoptions" ] }, @@ -8167,20 +7639,6 @@ "#update" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ExecutionOptions.mdx", - "anchors": [ - "#attributes", - "#executionoptions", - "#init_qubits", - "#methods", - "#qiskit_ibm_runtime.options.ExecutionOptions", - "#qiskit_ibm_runtime.options.ExecutionOptions.init_qubits", - "#qiskit_ibm_runtime.options.ExecutionOptions.shots", - "#shots", - "#title-executionoptions-description-api-reference-for-qiskit_ibm_runtimeoptionsexecutionoptions-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimeoptionsexecutionoptions" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ExecutionOptionsV2.mdx", "anchors": [ @@ -8228,31 +7686,33 @@ ] }, { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.Options.mdx", + "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.NoiseLearnerOptions.mdx", "anchors": [ "#attributes", "#environment", - "#execution", + "#experimental", + "#layer_pair_depths", "#max_execution_time", + "#max_layers_to_learn", "#methods", - "#optimization_level", - "#options", - "#qiskit_ibm_runtime.options.Options", - "#qiskit_ibm_runtime.options.Options.environment", - "#qiskit_ibm_runtime.options.Options.execution", - "#qiskit_ibm_runtime.options.Options.max_execution_time", - "#qiskit_ibm_runtime.options.Options.optimization_level", - "#qiskit_ibm_runtime.options.Options.resilience", - "#qiskit_ibm_runtime.options.Options.resilience_level", - "#qiskit_ibm_runtime.options.Options.simulator", - "#qiskit_ibm_runtime.options.Options.transpilation", - "#qiskit_ibm_runtime.options.Options.validate_options", - "#resilience", - "#resilience_level", + "#noiselearneroptions", + "#num_randomizations", + "#qiskit_ibm_runtime.options.NoiseLearnerOptions", + "#qiskit_ibm_runtime.options.NoiseLearnerOptions.environment", + "#qiskit_ibm_runtime.options.NoiseLearnerOptions.experimental", + "#qiskit_ibm_runtime.options.NoiseLearnerOptions.layer_pair_depths", + "#qiskit_ibm_runtime.options.NoiseLearnerOptions.max_execution_time", + "#qiskit_ibm_runtime.options.NoiseLearnerOptions.max_layers_to_learn", + "#qiskit_ibm_runtime.options.NoiseLearnerOptions.num_randomizations", + "#qiskit_ibm_runtime.options.NoiseLearnerOptions.shots_per_randomization", + "#qiskit_ibm_runtime.options.NoiseLearnerOptions.simulator", + "#qiskit_ibm_runtime.options.NoiseLearnerOptions.twirling_strategy", + "#qiskit_ibm_runtime.options.NoiseLearnerOptions.update", + "#shots_per_randomization", "#simulator", - "#title-options-description-api-reference-for-qiskit_ibm_runtimeoptionsoptions-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimeoptionsoptions", - "#transpilation", - "#validate_options" + "#title-noiselearneroptions-description-api-reference-for-qiskit_ibm_runtimeoptionsnoiselearneroptions-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimeoptionsnoiselearneroptions", + "#twirling_strategy", + "#update" ] }, { @@ -8269,27 +7729,12 @@ "#title-pecoptions-description-api-reference-for-qiskit_ibm_runtimeoptionspecoptions-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimeoptionspecoptions" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ResilienceOptions.mdx", - "anchors": [ - "#attributes", - "#extrapolator", - "#methods", - "#noise_amplifier", - "#noise_factors", - "#qiskit_ibm_runtime.options.ResilienceOptions", - "#qiskit_ibm_runtime.options.ResilienceOptions.extrapolator", - "#qiskit_ibm_runtime.options.ResilienceOptions.noise_amplifier", - "#qiskit_ibm_runtime.options.ResilienceOptions.noise_factors", - "#resilienceoptions", - "#title-resilienceoptions-description-api-reference-for-qiskit_ibm_runtimeoptionsresilienceoptions-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimeoptionsresilienceoptions" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ResilienceOptionsV2.mdx", "anchors": [ "#attributes", "#layer_noise_learning", + "#layer_noise_model", "#measure_mitigation", "#measure_noise_learning", "#methods", @@ -8297,6 +7742,7 @@ "#pec_mitigation", "#qiskit_ibm_runtime.options.ResilienceOptionsV2", "#qiskit_ibm_runtime.options.ResilienceOptionsV2.layer_noise_learning", + "#qiskit_ibm_runtime.options.ResilienceOptionsV2.layer_noise_model", "#qiskit_ibm_runtime.options.ResilienceOptionsV2.measure_mitigation", "#qiskit_ibm_runtime.options.ResilienceOptionsV2.measure_noise_learning", "#qiskit_ibm_runtime.options.ResilienceOptionsV2.pec", @@ -8373,26 +7819,6 @@ "#title-simulatoroptions-description-api-reference-for-qiskit_ibm_runtimeoptionssimulatoroptions-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimeoptionssimulatoroptions" ] }, - { - "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.TranspilationOptions.mdx", - "anchors": [ - "#approximation_degree", - "#attributes", - "#initial_layout", - "#layout_method", - "#methods", - "#qiskit_ibm_runtime.options.TranspilationOptions", - "#qiskit_ibm_runtime.options.TranspilationOptions.approximation_degree", - "#qiskit_ibm_runtime.options.TranspilationOptions.initial_layout", - "#qiskit_ibm_runtime.options.TranspilationOptions.layout_method", - "#qiskit_ibm_runtime.options.TranspilationOptions.routing_method", - "#qiskit_ibm_runtime.options.TranspilationOptions.skip_transpilation", - "#routing_method", - "#skip_transpilation", - "#title-transpilationoptions-description-api-reference-for-qiskit_ibm_runtimeoptionstranspilationoptions-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimeoptionstranspilationoptions", - "#transpilationoptions" - ] - }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.TwirlingOptions.mdx", "anchors": [ @@ -8418,17 +7844,43 @@ "anchors": [ "#amplifier", "#attributes", + "#extrapolated_noise_factors", "#extrapolator", "#methods", "#noise_factors", "#qiskit_ibm_runtime.options.ZneOptions", "#qiskit_ibm_runtime.options.ZneOptions.amplifier", + "#qiskit_ibm_runtime.options.ZneOptions.extrapolated_noise_factors", "#qiskit_ibm_runtime.options.ZneOptions.extrapolator", "#qiskit_ibm_runtime.options.ZneOptions.noise_factors", "#title-zneoptions-description-api-reference-for-qiskit_ibm_runtimeoptionszneoptions-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimeoptionszneoptions", "#zneoptions" ] }, + { + "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford.mdx", + "anchors": [ + "#__call__", + "#attributes", + "#convertisatoclifford", + "#execute", + "#is_analysis_pass", + "#is_transformation_pass", + "#methods", + "#name", + "#qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford", + "#qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford.__call__", + "#qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford.execute", + "#qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford.is_analysis_pass", + "#qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford.is_transformation_pass", + "#qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford.name", + "#qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford.run", + "#qiskit_ibm_runtime.transpiler.passes.ConvertISAToClifford.update_status", + "#run", + "#title-convertisatoclifford-description-api-reference-for-qiskit_ibm_runtimetranspilerpassesconvertisatoclifford-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimetranspilerpassesconvertisatoclifford", + "#update_status" + ] + }, { "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.ConvertIdToDelay.mdx", "anchors": [ @@ -8612,6 +8064,57 @@ "#transpiler-scheduling-passes-qiskit-ibm-runtime-transpiler-passes-scheduling" ] }, + { + "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.utils.noise_learner_result.LayerError.mdx", + "anchors": [ + "#attributes", + "#circuit", + "#draw_map", + "#error", + "#generators", + "#layererror", + "#methods", + "#num_qubits", + "#qiskit_ibm_runtime.utils.noise_learner_result.LayerError", + "#qiskit_ibm_runtime.utils.noise_learner_result.LayerError.circuit", + "#qiskit_ibm_runtime.utils.noise_learner_result.LayerError.draw_map", + "#qiskit_ibm_runtime.utils.noise_learner_result.LayerError.error", + "#qiskit_ibm_runtime.utils.noise_learner_result.LayerError.generators", + "#qiskit_ibm_runtime.utils.noise_learner_result.LayerError.num_qubits", + "#qiskit_ibm_runtime.utils.noise_learner_result.LayerError.qubits", + "#qiskit_ibm_runtime.utils.noise_learner_result.LayerError.rates", + "#qubits", + "#rates", + "#title-layererror-description-api-reference-for-qiskit_ibm_runtimeutilsnoise_learner_resultlayererror-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimeutilsnoise_learner_resultlayererror" + ] + }, + { + "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError.mdx", + "anchors": [ + "#attributes", + "#generators", + "#methods", + "#num_qubits", + "#paulilindbladerror", + "#qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError", + "#qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError.generators", + "#qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError.num_qubits", + "#qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError.rates", + "#qiskit_ibm_runtime.utils.noise_learner_result.PauliLindbladError.restrict_num_bodies", + "#rates", + "#restrict_num_bodies", + "#title-paulilindbladerror-description-api-reference-for-qiskit_ibm_runtimeutilsnoise_learner_resultpaulilindbladerror-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskit_ibm_runtimeutilsnoise_learner_resultpaulilindbladerror" + ] + }, + { + "path": "docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.visualization.draw_layer_error_map.mdx", + "anchors": [ + "#draw-layer-error-map", + "#draw_layer_error_map", + "#qiskit_ibm_runtime.visualization.draw_layer_error_map", + "#title-draw_layer_error_map-description-api-reference-for-qiskit_ibm_runtimevisualizationdraw_layer_error_map-in_page_toc_min_heading_level-1-python_api_type-function-python_api_name-qiskit_ibm_runtimevisualizationdraw_layer_error_map" + ] + }, { "path": "docs/api/qiskit-ibm-runtime/release-notes.mdx", "anchors": [ @@ -8645,7 +8148,15 @@ "#0240-2024-06-10", "#0241-2024-06-18", "#0250-2024-07-02", + "#0260-2024-07-31", + "#0270-2024-08-08", + "#0271-2024-08-12", + "#0280-2024-08-15", + "#0290-2024-09-04", + "#0291-2024-09-17", "#030", + "#0300-2024-09-23", + "#0310-2024-10-15", "#040", "#050", "#060", @@ -8683,6 +8194,11 @@ "#bug-fixes-29", "#bug-fixes-3", "#bug-fixes-30", + "#bug-fixes-31", + "#bug-fixes-32", + "#bug-fixes-33", + "#bug-fixes-34", + "#bug-fixes-35", "#bug-fixes-4", "#bug-fixes-5", "#bug-fixes-6", @@ -8700,7 +8216,10 @@ "#deprecation-notes-16", "#deprecation-notes-17", "#deprecation-notes-18", + "#deprecation-notes-19", "#deprecation-notes-2", + "#deprecation-notes-20", + "#deprecation-notes-21", "#deprecation-notes-3", "#deprecation-notes-4", "#deprecation-notes-5", @@ -8761,9 +8280,36 @@ "#id144", "#id145", "#id146", + "#id147", + "#id148", + "#id149", "#id15", + "#id150", + "#id151", + "#id152", + "#id153", + "#id154", + "#id155", + "#id156", + "#id157", + "#id158", + "#id159", "#id16", + "#id160", + "#id161", + "#id162", + "#id163", + "#id164", + "#id165", + "#id166", + "#id167", + "#id168", + "#id169", "#id17", + "#id170", + "#id171", + "#id172", + "#id173", "#id18", "#id19", "#id2", @@ -8875,7 +8421,15 @@ "#new-features-25", "#new-features-26", "#new-features-27", + "#new-features-28", + "#new-features-29", "#new-features-3", + "#new-features-30", + "#new-features-31", + "#new-features-32", + "#new-features-33", + "#new-features-34", + "#new-features-35", "#new-features-4", "#new-features-5", "#new-features-6", @@ -8885,14 +8439,18 @@ "#other-notes", "#other-notes-1", "#other-notes-2", + "#other-notes-3", + "#other-notes-4", + "#other-notes-5", "#prelude", "#prelude-1", "#prelude-2", "#prelude-3", + "#qiskit-runtime-client-release-notes", "#qiskit-runtime-ibm-client-release-notes", "#rc1", "#rc2", - "#title-qiskit-runtime-ibm-client-release-notes-description-changes-made-to-qiskit-runtime-ibm-client-in_page_toc_max_heading_level-2", + "#title-qiskit-runtime-client-release-notes-description-changes-made-to-qiskit-runtime-client-in_page_toc_max_heading_level-2", "#upgrade-notes", "#upgrade-notes-1", "#upgrade-notes-10", @@ -8947,6 +8505,16 @@ "#transpiler-passes-qiskit-ibm-runtime-transpiler-passes" ] }, + { + "path": "docs/api/qiskit-ibm-runtime/visualization.mdx", + "anchors": [ + "#functions", + "#module-qiskit_ibm_runtime.visualization", + "#title-visualization-description-api-reference-for-qiskit_ibm_runtimevisualization-in_page_toc_min_heading_level-2-python_api_type-module-python_api_name-qiskit_ibm_runtimevisualization", + "#visualization", + "#visualization-qiskit-ibm-runtime-visualization" + ] + }, { "path": "docs/api/qiskit/assembler.mdx", "anchors": [ @@ -9023,6 +8591,7 @@ "#qiskit.circuit.AncillaRegister", "#qiskit.circuit.Barrier", "#qiskit.circuit.Bit", + "#qiskit.circuit.CASE_DEFAULT", "#qiskit.circuit.CircuitError", "#qiskit.circuit.ClassicalRegister", "#qiskit.circuit.Clbit", @@ -9039,15 +8608,22 @@ "#qiskit.circuit.Register.name", "#qiskit.circuit.Register.size", "#qiskit.circuit.Reset", + "#qiskit.circuit.SessionEquivalenceLibrary", + "#qiskit.circuit.StandardEquivalenceLibrary", "#qiskit.circuit.Store", "#qiskit.circuit.Store.lvalue", "#qiskit.circuit.Store.rvalue", "#qiskit.circuit.random.random_circuit", + "#qiskit.circuit.random.random_clifford_circuit", + "#qiskitcircuitcase_default", + "#qiskitcircuitsessionequivalencelibrary", + "#qiskitcircuitstandardequivalencelibrary", "#quantum-circuit-model", "#quantum-circuit-model-qiskit-circuit", "#quantumregister", "#qubit", "#random_circuit", + "#random_clifford_circuit", "#real-time-classical-computation", "#register", "#representation-of-circuits-in-qiskit", @@ -9842,6 +9418,9 @@ "#qiskit-qasm2", "#qiskit.qasm2.CustomClassical", "#qiskit.qasm2.CustomInstruction", + "#qiskit.qasm2.LEGACY_CUSTOM_CLASSICAL", + "#qiskit.qasm2.LEGACY_CUSTOM_INSTRUCTIONS", + "#qiskit.qasm2.LEGACY_INCLUDE_PATH", "#qiskit.qasm2.QASM2Error", "#qiskit.qasm2.QASM2ExportError", "#qiskit.qasm2.QASM2ParseError", @@ -9849,6 +9428,9 @@ "#qiskit.qasm2.dumps", "#qiskit.qasm2.load", "#qiskit.qasm2.loads", + "#qiskitqasm2legacy_custom_classical", + "#qiskitqasm2legacy_custom_instructions", + "#qiskitqasm2legacy_include_path", "#specifying-custom-classical-functions", "#specifying-custom-instructions", "#strict-mode", @@ -9887,12 +9469,14 @@ "#qiskit.qasm3.Exporter.dumps", "#qiskit.qasm3.QASM3ExporterError", "#qiskit.qasm3.QASM3ImporterError", + "#qiskit.qasm3.STDGATES_INC_GATES", "#qiskit.qasm3.dump", "#qiskit.qasm3.dumps", "#qiskit.qasm3.load", "#qiskit.qasm3.load_experimental", "#qiskit.qasm3.loads", "#qiskit.qasm3.loads_experimental", + "#qiskitqasm3stdgates_inc_gates", "#switch_case_v1", "#title-qasm3-description-api-reference-for-qiskitqasm3-in_page_toc_min_heading_level-2-python_api_type-module-python_api_name-qiskitqasm3" ] @@ -9932,6 +9516,7 @@ "#name", "#num_clbits", "#num_qubits", + "#params", "#power", "#qiskit.circuit.AnnotatedOperation", "#qiskit.circuit.AnnotatedOperation.base_op", @@ -9942,10 +9527,13 @@ "#qiskit.circuit.AnnotatedOperation.name", "#qiskit.circuit.AnnotatedOperation.num_clbits", "#qiskit.circuit.AnnotatedOperation.num_qubits", + "#qiskit.circuit.AnnotatedOperation.params", "#qiskit.circuit.AnnotatedOperation.power", "#qiskit.circuit.AnnotatedOperation.to_matrix", + "#qiskit.circuit.AnnotatedOperation.validate_parameter", "#title-annotatedoperation-description-api-reference-for-qiskitcircuitannotatedoperation-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskitcircuitannotatedoperation", - "#to_matrix" + "#to_matrix", + "#validate_parameter" ] }, { @@ -10014,18 +9602,44 @@ "#attributes", "#circuitinstruction", "#clbits", + "#condition", "#copy", + "#duration", + "#from_standard", + "#is_control_flow", + "#is_controlled_gate", + "#is_directive", + "#is_parameterized", + "#is_standard_gate", + "#label", + "#matrix", "#methods", + "#name", "#operation", + "#params", "#qiskit.circuit.CircuitInstruction", "#qiskit.circuit.CircuitInstruction.clbits", + "#qiskit.circuit.CircuitInstruction.condition", "#qiskit.circuit.CircuitInstruction.copy", + "#qiskit.circuit.CircuitInstruction.duration", + "#qiskit.circuit.CircuitInstruction.from_standard", + "#qiskit.circuit.CircuitInstruction.is_control_flow", + "#qiskit.circuit.CircuitInstruction.is_controlled_gate", + "#qiskit.circuit.CircuitInstruction.is_directive", + "#qiskit.circuit.CircuitInstruction.is_parameterized", + "#qiskit.circuit.CircuitInstruction.is_standard_gate", + "#qiskit.circuit.CircuitInstruction.label", + "#qiskit.circuit.CircuitInstruction.matrix", + "#qiskit.circuit.CircuitInstruction.name", "#qiskit.circuit.CircuitInstruction.operation", + "#qiskit.circuit.CircuitInstruction.params", "#qiskit.circuit.CircuitInstruction.qubits", "#qiskit.circuit.CircuitInstruction.replace", + "#qiskit.circuit.CircuitInstruction.unit", "#qubits", "#replace", - "#title-circuitinstruction-description-api-reference-for-qiskitcircuitcircuitinstruction-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskitcircuitcircuitinstruction" + "#title-circuitinstruction-description-api-reference-for-qiskitcircuitcircuitinstruction-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskitcircuitcircuitinstruction", + "#unit" ] }, { @@ -15628,6 +15242,41 @@ "#unit" ] }, + { + "path": "docs/api/qiskit/qiskit.circuit.library.QFTGate.mdx", + "anchors": [ + "#attributes", + "#base_class", + "#condition", + "#condition_bits", + "#decompositions", + "#definition", + "#duration", + "#label", + "#mutable", + "#name", + "#num_clbits", + "#num_qubits", + "#params", + "#qftgate", + "#qiskit.circuit.library.QFTGate", + "#qiskit.circuit.library.QFTGate.base_class", + "#qiskit.circuit.library.QFTGate.condition", + "#qiskit.circuit.library.QFTGate.condition_bits", + "#qiskit.circuit.library.QFTGate.decompositions", + "#qiskit.circuit.library.QFTGate.definition", + "#qiskit.circuit.library.QFTGate.duration", + "#qiskit.circuit.library.QFTGate.label", + "#qiskit.circuit.library.QFTGate.mutable", + "#qiskit.circuit.library.QFTGate.name", + "#qiskit.circuit.library.QFTGate.num_clbits", + "#qiskit.circuit.library.QFTGate.num_qubits", + "#qiskit.circuit.library.QFTGate.params", + "#qiskit.circuit.library.QFTGate.unit", + "#title-qftgate-description-api-reference-for-qiskitcircuitlibraryqftgate-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskitcircuitlibraryqftgate", + "#unit" + ] + }, { "path": "docs/api/qiskit/qiskit.circuit.library.QuadraticForm.mdx", "anchors": [ @@ -16011,6 +15660,7 @@ "#base_class", "#condition", "#condition_bits", + "#control", "#decompositions", "#definition", "#duration", @@ -16027,6 +15677,7 @@ "#qiskit.circuit.library.RXXGate.base_class", "#qiskit.circuit.library.RXXGate.condition", "#qiskit.circuit.library.RXXGate.condition_bits", + "#qiskit.circuit.library.RXXGate.control", "#qiskit.circuit.library.RXXGate.decompositions", "#qiskit.circuit.library.RXXGate.definition", "#qiskit.circuit.library.RXXGate.duration", @@ -16093,6 +15744,7 @@ "#base_class", "#condition", "#condition_bits", + "#control", "#decompositions", "#definition", "#duration", @@ -16109,6 +15761,7 @@ "#qiskit.circuit.library.RYYGate.base_class", "#qiskit.circuit.library.RYYGate.condition", "#qiskit.circuit.library.RYYGate.condition_bits", + "#qiskit.circuit.library.RYYGate.control", "#qiskit.circuit.library.RYYGate.decompositions", "#qiskit.circuit.library.RYYGate.definition", "#qiskit.circuit.library.RYYGate.duration", @@ -16175,6 +15828,7 @@ "#base_class", "#condition", "#condition_bits", + "#control", "#decompositions", "#definition", "#duration", @@ -16191,6 +15845,7 @@ "#qiskit.circuit.library.RZXGate.base_class", "#qiskit.circuit.library.RZXGate.condition", "#qiskit.circuit.library.RZXGate.condition_bits", + "#qiskit.circuit.library.RZXGate.control", "#qiskit.circuit.library.RZXGate.decompositions", "#qiskit.circuit.library.RZXGate.definition", "#qiskit.circuit.library.RZXGate.duration", @@ -16215,6 +15870,7 @@ "#base_class", "#condition", "#condition_bits", + "#control", "#decompositions", "#definition", "#duration", @@ -16231,6 +15887,7 @@ "#qiskit.circuit.library.RZZGate.base_class", "#qiskit.circuit.library.RZZGate.condition", "#qiskit.circuit.library.RZZGate.condition_bits", + "#qiskit.circuit.library.RZZGate.control", "#qiskit.circuit.library.RZZGate.decompositions", "#qiskit.circuit.library.RZZGate.definition", "#qiskit.circuit.library.RZZGate.duration", @@ -16338,6 +15995,7 @@ "#base_class", "#condition", "#condition_bits", + "#control", "#decompositions", "#definition", "#duration", @@ -16354,6 +16012,7 @@ "#qiskit.circuit.library.SGate.base_class", "#qiskit.circuit.library.SGate.condition", "#qiskit.circuit.library.SGate.condition_bits", + "#qiskit.circuit.library.SGate.control", "#qiskit.circuit.library.SGate.decompositions", "#qiskit.circuit.library.SGate.definition", "#qiskit.circuit.library.SGate.duration", @@ -16456,6 +16115,7 @@ "#base_class", "#condition", "#condition_bits", + "#control", "#decompositions", "#definition", "#duration", @@ -16472,6 +16132,7 @@ "#qiskit.circuit.library.SdgGate.base_class", "#qiskit.circuit.library.SdgGate.condition", "#qiskit.circuit.library.SdgGate.condition_bits", + "#qiskit.circuit.library.SdgGate.control", "#qiskit.circuit.library.SdgGate.decompositions", "#qiskit.circuit.library.SdgGate.definition", "#qiskit.circuit.library.SdgGate.duration", @@ -17418,6 +17079,7 @@ "#base_class", "#condition", "#condition_bits", + "#control", "#decompositions", "#definition", "#duration", @@ -17434,6 +17096,7 @@ "#qiskit.circuit.library.XXMinusYYGate.base_class", "#qiskit.circuit.library.XXMinusYYGate.condition", "#qiskit.circuit.library.XXMinusYYGate.condition_bits", + "#qiskit.circuit.library.XXMinusYYGate.control", "#qiskit.circuit.library.XXMinusYYGate.decompositions", "#qiskit.circuit.library.XXMinusYYGate.definition", "#qiskit.circuit.library.XXMinusYYGate.duration", @@ -17458,6 +17121,7 @@ "#base_class", "#condition", "#condition_bits", + "#control", "#decompositions", "#definition", "#duration", @@ -17474,6 +17138,7 @@ "#qiskit.circuit.library.XXPlusYYGate.base_class", "#qiskit.circuit.library.XXPlusYYGate.condition", "#qiskit.circuit.library.XXPlusYYGate.condition_bits", + "#qiskit.circuit.library.XXPlusYYGate.control", "#qiskit.circuit.library.XXPlusYYGate.decompositions", "#qiskit.circuit.library.XXPlusYYGate.definition", "#qiskit.circuit.library.XXPlusYYGate.duration", @@ -18107,21 +17772,51 @@ "anchors": [ "#attributes", "#cargs", + "#condition", "#dagopnode", + "#definition", + "#duration", + "#from_instruction", + "#is_control_flow", + "#is_controlled_gate", + "#is_directive", + "#is_parameterized", + "#is_standard_gate", + "#label", + "#matrix", "#methods", "#name", + "#num_clbits", + "#num_qubits", "#op", + "#params", "#qargs", "#qiskit.dagcircuit.DAGOpNode", "#qiskit.dagcircuit.DAGOpNode.cargs", + "#qiskit.dagcircuit.DAGOpNode.condition", + "#qiskit.dagcircuit.DAGOpNode.definition", + "#qiskit.dagcircuit.DAGOpNode.duration", + "#qiskit.dagcircuit.DAGOpNode.from_instruction", + "#qiskit.dagcircuit.DAGOpNode.is_control_flow", + "#qiskit.dagcircuit.DAGOpNode.is_controlled_gate", + "#qiskit.dagcircuit.DAGOpNode.is_directive", + "#qiskit.dagcircuit.DAGOpNode.is_parameterized", + "#qiskit.dagcircuit.DAGOpNode.is_standard_gate", + "#qiskit.dagcircuit.DAGOpNode.label", + "#qiskit.dagcircuit.DAGOpNode.matrix", "#qiskit.dagcircuit.DAGOpNode.name", + "#qiskit.dagcircuit.DAGOpNode.num_clbits", + "#qiskit.dagcircuit.DAGOpNode.num_qubits", "#qiskit.dagcircuit.DAGOpNode.op", + "#qiskit.dagcircuit.DAGOpNode.params", "#qiskit.dagcircuit.DAGOpNode.qargs", "#qiskit.dagcircuit.DAGOpNode.semantic_eq", "#qiskit.dagcircuit.DAGOpNode.sort_key", + "#qiskit.dagcircuit.DAGOpNode.unit", "#semantic_eq", "#sort_key", - "#title-dagopnode-description-api-reference-for-qiskitdagcircuitdagopnode-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskitdagcircuitdagopnode" + "#title-dagopnode-description-api-reference-for-qiskitdagcircuitdagopnode-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskitdagcircuitdagopnode", + "#unit" ] }, { @@ -18383,9 +18078,17 @@ { "path": "docs/api/qiskit/qiskit.primitives.BaseEstimator.mdx", "anchors": [ + "#attributes", "#baseestimator", + "#methods", + "#options", "#qiskit.primitives.BaseEstimator", - "#title-baseestimator-description-api-reference-for-qiskitprimitivesbaseestimator-in_page_toc_min_heading_level-1-python_api_type-attribute-python_api_name-qiskitprimitivesbaseestimator" + "#qiskit.primitives.BaseEstimator.options", + "#qiskit.primitives.BaseEstimator.run", + "#qiskit.primitives.BaseEstimator.set_options", + "#run", + "#set_options", + "#title-baseestimator-description-api-reference-for-qiskitprimitivesbaseestimator-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskitprimitivesbaseestimator" ] }, { @@ -18443,9 +18146,17 @@ { "path": "docs/api/qiskit/qiskit.primitives.BaseSampler.mdx", "anchors": [ + "#attributes", "#basesampler", + "#methods", + "#options", "#qiskit.primitives.BaseSampler", - "#title-basesampler-description-api-reference-for-qiskitprimitivesbasesampler-in_page_toc_min_heading_level-1-python_api_type-attribute-python_api_name-qiskitprimitivesbasesampler" + "#qiskit.primitives.BaseSampler.options", + "#qiskit.primitives.BaseSampler.run", + "#qiskit.primitives.BaseSampler.set_options", + "#run", + "#set_options", + "#title-basesampler-description-api-reference-for-qiskitprimitivesbasesampler-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskitprimitivesbasesampler" ] }, { @@ -18496,6 +18207,7 @@ "#ndim", "#num_bits", "#num_shots", + "#postselect", "#qiskit.primitives.BitArray", "#qiskit.primitives.BitArray.array", "#qiskit.primitives.BitArray.bitcount", @@ -18512,6 +18224,7 @@ "#qiskit.primitives.BitArray.ndim", "#qiskit.primitives.BitArray.num_bits", "#qiskit.primitives.BitArray.num_shots", + "#qiskit.primitives.BitArray.postselect", "#qiskit.primitives.BitArray.reshape", "#qiskit.primitives.BitArray.shape", "#qiskit.primitives.BitArray.size", @@ -18672,21 +18385,6 @@ "#title-samplerresult-description-api-reference-for-qiskitprimitivessamplerresult-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskitprimitivessamplerresult" ] }, - { - "path": "docs/api/qiskit/qiskit.primitives.Shaped.mdx", - "anchors": [ - "#attributes", - "#ndim", - "#qiskit.primitives.Shaped", - "#qiskit.primitives.Shaped.ndim", - "#qiskit.primitives.Shaped.shape", - "#qiskit.primitives.Shaped.size", - "#shape", - "#shaped", - "#size", - "#title-shaped-description-api-reference-for-qiskitprimitivesshaped-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskitprimitivesshaped" - ] - }, { "path": "docs/api/qiskit/qiskit.primitives.StatevectorEstimator.mdx", "anchors": [ @@ -20569,7 +20267,7 @@ ] }, { - "path": "docs/api/qiskit/qiskit.pulse.library.Constant_class.rst.mdx", + "path": "docs/api/qiskit/qiskit.pulse.library.Constant.mdx", "anchors": [ "#alias", "#attributes", @@ -20580,7 +20278,7 @@ ] }, { - "path": "docs/api/qiskit/qiskit.pulse.library.Cos_class.rst.mdx", + "path": "docs/api/qiskit/qiskit.pulse.library.Cos.mdx", "anchors": [ "#qiskit-pulse-library-cos", "#qiskit.pulse.library.Cos", @@ -20589,7 +20287,7 @@ ] }, { - "path": "docs/api/qiskit/qiskit.pulse.library.Drag_class.rst.mdx", + "path": "docs/api/qiskit/qiskit.pulse.library.Drag.mdx", "anchors": [ "#alias", "#attributes", @@ -20599,6 +20297,17 @@ "#title-drag-description-api-reference-for-qiskitpulselibrarydrag-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskitpulselibrarydrag" ] }, + { + "path": "docs/api/qiskit/qiskit.pulse.library.Gaussian.mdx", + "anchors": [ + "#alias", + "#attributes", + "#gaussian", + "#qiskit.pulse.library.Gaussian", + "#qiskit.pulse.library.Gaussian.alias", + "#title-gaussian-description-api-reference-for-qiskitpulselibrarygaussian-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskitpulselibrarygaussian" + ] + }, { "path": "docs/api/qiskit/qiskit.pulse.library.GaussianDeriv.mdx", "anchors": [ @@ -20629,18 +20338,7 @@ ] }, { - "path": "docs/api/qiskit/qiskit.pulse.library.Gaussian_class.rst.mdx", - "anchors": [ - "#alias", - "#attributes", - "#gaussian", - "#qiskit.pulse.library.Gaussian", - "#qiskit.pulse.library.Gaussian.alias", - "#title-gaussian-description-api-reference-for-qiskitpulselibrarygaussian-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskitpulselibrarygaussian" - ] - }, - { - "path": "docs/api/qiskit/qiskit.pulse.library.Sawtooth_class.rst.mdx", + "path": "docs/api/qiskit/qiskit.pulse.library.Sawtooth.mdx", "anchors": [ "#qiskit-pulse-library-sawtooth", "#qiskit.pulse.library.Sawtooth", @@ -20648,6 +20346,15 @@ "#title-sawtooth-description-api-reference-for-qiskitpulselibrarysawtooth-in_page_toc_min_heading_level-1-python_api_type-function-python_api_name-qiskitpulselibrarysawtooth" ] }, + { + "path": "docs/api/qiskit/qiskit.pulse.library.Sech.mdx", + "anchors": [ + "#qiskit-pulse-library-sech", + "#qiskit.pulse.library.Sech", + "#qiskitpulselibrarysech", + "#title-sech-description-api-reference-for-qiskitpulselibrarysech-in_page_toc_min_heading_level-1-python_api_type-function-python_api_name-qiskitpulselibrarysech" + ] + }, { "path": "docs/api/qiskit/qiskit.pulse.library.SechDeriv.mdx", "anchors": [ @@ -20658,16 +20365,7 @@ ] }, { - "path": "docs/api/qiskit/qiskit.pulse.library.Sech_fun.rst.mdx", - "anchors": [ - "#qiskit-pulse-library-sech", - "#qiskit.pulse.library.Sech", - "#qiskitpulselibrarysech", - "#title-sech-description-api-reference-for-qiskitpulselibrarysech-in_page_toc_min_heading_level-1-python_api_type-function-python_api_name-qiskitpulselibrarysech" - ] - }, - { - "path": "docs/api/qiskit/qiskit.pulse.library.Sin_class.rst.mdx", + "path": "docs/api/qiskit/qiskit.pulse.library.Sin.mdx", "anchors": [ "#qiskit-pulse-library-sin", "#qiskit.pulse.library.Sin", @@ -20676,7 +20374,7 @@ ] }, { - "path": "docs/api/qiskit/qiskit.pulse.library.Square_fun.rst.mdx", + "path": "docs/api/qiskit/qiskit.pulse.library.Square.mdx", "anchors": [ "#qiskit-pulse-library-square", "#qiskit.pulse.library.Square", @@ -20716,6 +20414,11 @@ "#qiskit.pulse.library.SymbolicPulse.pulse_type", "#qiskit.pulse.library.SymbolicPulse.valid_amp_conditions", "#qiskit.pulse.library.SymbolicPulse.validate_parameters", + "#symbolic-pulse-constraints", + "#symbolic-pulse-envelope", + "#symbolic-pulse-eval-condition", + "#symbolic-pulse-serialize", + "#symbolic-pulse-validation", "#symbolicpulse", "#title-symbolicpulse-description-api-reference-for-qiskitpulselibrarysymbolicpulse-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskitpulselibrarysymbolicpulse", "#valid_amp_conditions", @@ -20723,7 +20426,7 @@ ] }, { - "path": "docs/api/qiskit/qiskit.pulse.library.Triangle_class.rst.mdx", + "path": "docs/api/qiskit/qiskit.pulse.library.Triangle.mdx", "anchors": [ "#qiskit-pulse-library-triangle", "#qiskit.pulse.library.Triangle", @@ -21933,6 +21636,7 @@ "#num_qubits", "#probabilities", "#probabilities_dict", + "#probabilities_dict_from_bitstring", "#purity", "#qiskit.quantum_info.StabilizerState", "#qiskit.quantum_info.StabilizerState.clifford", @@ -21950,6 +21654,7 @@ "#qiskit.quantum_info.StabilizerState.num_qubits", "#qiskit.quantum_info.StabilizerState.probabilities", "#qiskit.quantum_info.StabilizerState.probabilities_dict", + "#qiskit.quantum_info.StabilizerState.probabilities_dict_from_bitstring", "#qiskit.quantum_info.StabilizerState.purity", "#qiskit.quantum_info.StabilizerState.reset", "#qiskit.quantum_info.StabilizerState.sample_counts", @@ -23536,6 +23241,28 @@ "#update_status" ] }, + { + "path": "docs/api/qiskit/qiskit.transpiler.passes.CollectAndCollapse.mdx", + "anchors": [ + "#attributes", + "#collectandcollapse", + "#execute", + "#is_analysis_pass", + "#is_transformation_pass", + "#methods", + "#name", + "#qiskit.transpiler.passes.CollectAndCollapse", + "#qiskit.transpiler.passes.CollectAndCollapse.execute", + "#qiskit.transpiler.passes.CollectAndCollapse.is_analysis_pass", + "#qiskit.transpiler.passes.CollectAndCollapse.is_transformation_pass", + "#qiskit.transpiler.passes.CollectAndCollapse.name", + "#qiskit.transpiler.passes.CollectAndCollapse.run", + "#qiskit.transpiler.passes.CollectAndCollapse.update_status", + "#run", + "#title-collectandcollapse-description-api-reference-for-qiskittranspilerpassescollectandcollapse-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskittranspilerpassescollectandcollapse", + "#update_status" + ] + }, { "path": "docs/api/qiskit/qiskit.transpiler.passes.CollectCliffords.mdx", "anchors": [ @@ -24948,6 +24675,28 @@ "#update_status" ] }, + { + "path": "docs/api/qiskit/qiskit.transpiler.passes.Split2QUnitaries.mdx", + "anchors": [ + "#attributes", + "#execute", + "#is_analysis_pass", + "#is_transformation_pass", + "#methods", + "#name", + "#qiskit.transpiler.passes.Split2QUnitaries", + "#qiskit.transpiler.passes.Split2QUnitaries.execute", + "#qiskit.transpiler.passes.Split2QUnitaries.is_analysis_pass", + "#qiskit.transpiler.passes.Split2QUnitaries.is_transformation_pass", + "#qiskit.transpiler.passes.Split2QUnitaries.name", + "#qiskit.transpiler.passes.Split2QUnitaries.run", + "#qiskit.transpiler.passes.Split2QUnitaries.update_status", + "#run", + "#split2qunitaries", + "#title-split2qunitaries-description-api-reference-for-qiskittranspilerpassessplit2qunitaries-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskittranspilerpassessplit2qunitaries", + "#update_status" + ] + }, { "path": "docs/api/qiskit/qiskit.transpiler.passes.StarPreRouting.mdx", "anchors": [ @@ -25432,6 +25181,28 @@ "#title-pmhsynthesislinearfunction-description-api-reference-for-qiskittranspilerpassessynthesishigh_level_synthesispmhsynthesislinearfunction-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskittranspilerpassessynthesishigh_level_synthesispmhsynthesislinearfunction" ] }, + { + "path": "docs/api/qiskit/qiskit.transpiler.passes.synthesis.high_level_synthesis.QFTSynthesisFull.mdx", + "anchors": [ + "#methods", + "#qftsynthesisfull", + "#qiskit.transpiler.passes.synthesis.high_level_synthesis.QFTSynthesisFull", + "#qiskit.transpiler.passes.synthesis.high_level_synthesis.QFTSynthesisFull.run", + "#run", + "#title-qftsynthesisfull-description-api-reference-for-qiskittranspilerpassessynthesishigh_level_synthesisqftsynthesisfull-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskittranspilerpassessynthesishigh_level_synthesisqftsynthesisfull" + ] + }, + { + "path": "docs/api/qiskit/qiskit.transpiler.passes.synthesis.high_level_synthesis.QFTSynthesisLine.mdx", + "anchors": [ + "#methods", + "#qftsynthesisline", + "#qiskit.transpiler.passes.synthesis.high_level_synthesis.QFTSynthesisLine", + "#qiskit.transpiler.passes.synthesis.high_level_synthesis.QFTSynthesisLine.run", + "#run", + "#title-qftsynthesisline-description-api-reference-for-qiskittranspilerpassessynthesishigh_level_synthesisqftsynthesisline-in_page_toc_min_heading_level-1-python_api_type-class-python_api_name-qiskittranspilerpassessynthesishigh_level_synthesisqftsynthesisline" + ] + }, { "path": "docs/api/qiskit/qiskit.transpiler.passes.synthesis.high_level_synthesis.TokenSwapperSynthesisPermutation.mdx", "anchors": [ @@ -25773,6 +25544,7 @@ "#qiskit-visualization-timeline-drawer", "#qiskit.visualization.timeline_drawer", "#qiskitvisualizationtimeline_drawer", + "#style-dict-doc", "#title-timeline_drawer-description-api-reference-for-qiskitvisualizationtimeline_drawer-in_page_toc_min_heading_level-1-python_api_type-function-python_api_name-qiskitvisualizationtimeline_drawer" ] }, @@ -25831,11 +25603,18 @@ "#expr_var", "#expr_var_declaration", "#expression", + "#f1", + "#f2", + "#f3", "#header", "#header-1", "#id1", + "#id2", + "#id3", "#id4", + "#id5", "#id6", + "#id7", "#initial-layout-bit", "#initial_layout_bit", "#instruction", @@ -26095,6 +25874,7 @@ "#qiskit.synthesis.synth_permutation_basic", "#qiskit.synthesis.synth_permutation_depth_lnn_kms", "#qiskit.synthesis.synth_permutation_reverse_lnn_kms", + "#qiskit.synthesis.synth_qft_full", "#qiskit.synthesis.synth_qft_line", "#qiskit.synthesis.synth_stabilizer_depth_lnn", "#qiskit.synthesis.synth_stabilizer_layers", @@ -26120,6 +25900,7 @@ "#synth_permutation_basic", "#synth_permutation_depth_lnn_kms", "#synth_permutation_reverse_lnn_kms", + "#synth_qft_full", "#synth_qft_line", "#synth_stabilizer_depth_lnn", "#synth_stabilizer_layers", @@ -26281,6 +26062,7 @@ "#module-qiskit.transpiler.passes.synthesis.solovay_kitaev_synthesis", "#module-qiskit.transpiler.passes.synthesis.unitary_synthesis", "#permutation-synthesis", + "#qft-synthesis", "#qiskit-transpiler-synthesis-plugins", "#solovay-kitaev-synthesis-plugin-in-qiskit-transpiler-passes-synthesis-solovay-kitaev-synthesis", "#solovay-kitaev-synthesis-plugin-in-qiskittranspilerpassessynthesissolovay_kitaev_synthesis", @@ -26347,8 +26129,72 @@ "#qiskit.utils.detach_prefix", "#qiskit.utils.is_main_process", "#qiskit.utils.local_hardware_info", + "#qiskit.utils.optionals.HAS_AER", + "#qiskit.utils.optionals.HAS_CONSTRAINT", + "#qiskit.utils.optionals.HAS_CPLEX", + "#qiskit.utils.optionals.HAS_CVXPY", + "#qiskit.utils.optionals.HAS_DOCPLEX", + "#qiskit.utils.optionals.HAS_FIXTURES", + "#qiskit.utils.optionals.HAS_GRAPHVIZ", + "#qiskit.utils.optionals.HAS_IBMQ", + "#qiskit.utils.optionals.HAS_IGNIS", + "#qiskit.utils.optionals.HAS_IPYTHON", + "#qiskit.utils.optionals.HAS_IPYWIDGETS", + "#qiskit.utils.optionals.HAS_JAX", + "#qiskit.utils.optionals.HAS_JUPYTER", + "#qiskit.utils.optionals.HAS_MATPLOTLIB", + "#qiskit.utils.optionals.HAS_NETWORKX", + "#qiskit.utils.optionals.HAS_NLOPT", + "#qiskit.utils.optionals.HAS_PDFLATEX", + "#qiskit.utils.optionals.HAS_PDFTOCAIRO", + "#qiskit.utils.optionals.HAS_PIL", + "#qiskit.utils.optionals.HAS_PYDOT", + "#qiskit.utils.optionals.HAS_PYGMENTS", + "#qiskit.utils.optionals.HAS_PYLATEX", + "#qiskit.utils.optionals.HAS_QASM3_IMPORT", + "#qiskit.utils.optionals.HAS_SEABORN", + "#qiskit.utils.optionals.HAS_SKLEARN", + "#qiskit.utils.optionals.HAS_SKQUANT", + "#qiskit.utils.optionals.HAS_SQSNOBFIT", + "#qiskit.utils.optionals.HAS_SYMENGINE", + "#qiskit.utils.optionals.HAS_TESTTOOLS", + "#qiskit.utils.optionals.HAS_TOQM", + "#qiskit.utils.optionals.HAS_TWEEDLEDUM", + "#qiskit.utils.optionals.HAS_Z3", "#qiskit.utils.parallel_map", "#qiskit.utils.wrap_method", + "#qiskitutilsoptionalshas_aer", + "#qiskitutilsoptionalshas_constraint", + "#qiskitutilsoptionalshas_cplex", + "#qiskitutilsoptionalshas_cvxpy", + "#qiskitutilsoptionalshas_docplex", + "#qiskitutilsoptionalshas_fixtures", + "#qiskitutilsoptionalshas_graphviz", + "#qiskitutilsoptionalshas_ibmq", + "#qiskitutilsoptionalshas_ignis", + "#qiskitutilsoptionalshas_ipython", + "#qiskitutilsoptionalshas_ipywidgets", + "#qiskitutilsoptionalshas_jax", + "#qiskitutilsoptionalshas_jupyter", + "#qiskitutilsoptionalshas_matplotlib", + "#qiskitutilsoptionalshas_networkx", + "#qiskitutilsoptionalshas_nlopt", + "#qiskitutilsoptionalshas_pdflatex", + "#qiskitutilsoptionalshas_pdftocairo", + "#qiskitutilsoptionalshas_pil", + "#qiskitutilsoptionalshas_pydot", + "#qiskitutilsoptionalshas_pygments", + "#qiskitutilsoptionalshas_pylatex", + "#qiskitutilsoptionalshas_qasm3_import", + "#qiskitutilsoptionalshas_seaborn", + "#qiskitutilsoptionalshas_sklearn", + "#qiskitutilsoptionalshas_skquant", + "#qiskitutilsoptionalshas_sqsnobfit", + "#qiskitutilsoptionalshas_symengine", + "#qiskitutilsoptionalshas_testtools", + "#qiskitutilsoptionalshas_toqm", + "#qiskitutilsoptionalshas_tweedledum", + "#qiskitutilsoptionalshas_z3", "#require_in_call", "#require_in_instance", "#require_now", From f865fd2deb7eef4ae6ee9558a7a5a0924854d2a7 Mon Sep 17 00:00:00 2001 From: abbycross Date: Mon, 21 Oct 2024 14:40:50 -0400 Subject: [PATCH 13/32] Removed `dependencies=qiskit-aer==0.14.1` from serverless (#2158) Closes #2155 --- docs/guides/serverless-first-program.ipynb | 3 +-- docs/guides/serverless-port-code.mdx | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/guides/serverless-first-program.ipynb b/docs/guides/serverless-first-program.ipynb index 50c9a44406c..d2b7ed4dcf8 100644 --- a/docs/guides/serverless-first-program.ipynb +++ b/docs/guides/serverless-first-program.ipynb @@ -200,7 +200,7 @@ "source": [ "## Deploy to IBM Quantum Platform\n", "\n", - "The previous section created a program to be run remotely. The code cells in this section upload that program to Qiskit Serverless.", + "The previous section created a program to be run remotely. The code cells in this section upload that program to Qiskit Serverless.\n", "\n", "Use `qiskit-ibm-catalog` to authenticate to `QiskitServerless` with your API token, which you can find in your [IBM Quantum account](https://quantum.ibm.com/account), and upload the program.\n", "\n", @@ -239,7 +239,6 @@ " title=\"transpile_remote_serverless\",\n", " entrypoint=\"transpile_remote.py\",\n", " working_dir=\"./source_files/\",\n", - " dependencies=[\"qiskit-aer==0.14.1\"],\n", ")" ] }, diff --git a/docs/guides/serverless-port-code.mdx b/docs/guides/serverless-port-code.mdx index 593153d71a1..dff28ca6423 100644 --- a/docs/guides/serverless-port-code.mdx +++ b/docs/guides/serverless-port-code.mdx @@ -113,7 +113,6 @@ transpile_remote_demo = QiskitFunction( title="transpile_remote_serverless", entrypoint="transpile_remote.py", working_dir="./source_files/", - dependencies=["qiskit-aer==0.14.1"], ) serverless.upload(transpile_remote_demo) From 3d70b115f7d07d8f2e5ea3bf13a4f8d1ff112ba0 Mon Sep 17 00:00:00 2001 From: abbycross Date: Mon, 21 Oct 2024 14:41:32 -0400 Subject: [PATCH 14/32] Fix outdated learning link in four docs pages (#2157) Closes #2150. --------- Co-authored-by: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> --- docs/guides/hello-world.ipynb | 2 +- docs/guides/install-qiskit.mdx | 2 +- docs/guides/native-gates.mdx | 2 +- docs/guides/setup-channel.mdx | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/guides/hello-world.ipynb b/docs/guides/hello-world.ipynb index 2840a85de0b..25a3745c048 100644 --- a/docs/guides/hello-world.ipynb +++ b/docs/guides/hello-world.ipynb @@ -652,7 +652,7 @@ "\n", "\n", " - Learn how to [build circuits](./map-problem-to-circuits) in more detail.\n", - " - Try one of the [workflow example tutorials.](https://learning.quantum.ibm.com/catalog/tutorials?category=workflow-example)\n", + " - Try a [tutorial](https://learning.quantum.ibm.com/catalog/tutorials) in IBM Quantum Learning.\n", "" ] } diff --git a/docs/guides/install-qiskit.mdx b/docs/guides/install-qiskit.mdx index b95e5e2fd0c..685f626cdef 100644 --- a/docs/guides/install-qiskit.mdx +++ b/docs/guides/install-qiskit.mdx @@ -250,5 +250,5 @@ Additionally, Qiskit only supports the CPython implementation of the Python lang - [Select and set up an IBM Quantum channel.](setup-channel) - [Configure Qiskit locally.](configure-qiskit-local) - Follow the steps in [Hello world](hello-world) to write and run a quantum program. - - Try one of the [workflow example tutorials.](https://learning.quantum.ibm.com/catalog/tutorials?category=workflow-example) + - Try a [tutorial](https://learning.quantum.ibm.com/catalog/tutorials) in IBM Quantum Learning. diff --git a/docs/guides/native-gates.mdx b/docs/guides/native-gates.mdx index cdf828533c8..e2927ace7f9 100644 --- a/docs/guides/native-gates.mdx +++ b/docs/guides/native-gates.mdx @@ -100,6 +100,6 @@ The `init_qubits` flag, set as a [primitive execution option,](/api/qiskit-ibm-r - Read about basis gates in the [Represent quantum computers](./represent-quantum-computers#basis-gates) topic. - - Apply your knowledge of basis gates to one of these [workflow example tutorials.](https://learning.quantum.ibm.com/catalog/tutorials?category=workflow-example) + - Apply your knowledge of basis gates to a [tutorial](https://learning.quantum.ibm.com/catalog/tutorials) in IBM Quantum Learning. diff --git a/docs/guides/setup-channel.mdx b/docs/guides/setup-channel.mdx index 83d8b6be9ec..bb9b30a608c 100644 --- a/docs/guides/setup-channel.mdx +++ b/docs/guides/setup-channel.mdx @@ -255,5 +255,5 @@ Alternatively, you can also access quantum processors with REST APIs, enabling y - [Configure the Qiskit SDK locally.](configure-qiskit-local) - Follow the steps in [Hello world](hello-world) to write and run a quantum program. - [Get started with IBM Quantum on Cloud.](https://cloud.ibm.com/docs/quantum-computing?topic=quantum-computing-get-started) - - Try one of the [workflow example tutorials.](https://learning.quantum.ibm.com/catalog/tutorials?category=workflow-example) + - Try a [tutorial](https://learning.quantum.ibm.com/catalog/tutorials) in IBM Quantum Learning. \ No newline at end of file From 6cd46d63b130784b249120980b004c9b07c9c0b2 Mon Sep 17 00:00:00 2001 From: Tom Merkh <59370637+ThomasMerkh@users.noreply.github.com> Date: Mon, 21 Oct 2024 14:38:17 -0600 Subject: [PATCH 15/32] chore: Update contact link (#2160) This PR updates the contact link for one of Q-CTRL's docs notebooks. --- docs/guides/q-ctrl-optimization-solver.ipynb | 2 +- docs/guides/q-ctrl-performance-management.ipynb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/guides/q-ctrl-optimization-solver.ipynb b/docs/guides/q-ctrl-optimization-solver.ipynb index 40d6e0ccd8b..fe1b2a777ca 100644 --- a/docs/guides/q-ctrl-optimization-solver.ipynb +++ b/docs/guides/q-ctrl-optimization-solver.ipynb @@ -17,7 +17,7 @@ "\n", "The Solver is flexible and can be used to solve combinatorial optimization problems defined as objective functions or arbitrary graphs. Problems do not have to be mapped to device topology. Both unconstrained and constrained problems are solvable, given that constraints can be formulated as penalty terms. The examples included in this guide demonstrate how to solve an unconstrained and a constrained utility-scale optimization problem using different Solver input types. The first example involves a Max-Cut problem defined on a 156-node, 3-Regular graph, while the second example tackles a 50-node Minimum Vertex Cover problem defined by a cost function.\n", "\n", - "To get access to the Optimization Solver, [fill out this form](https://quantum.ibm.com/functions?id=a8a2b0b6-486a-41b5-8ea4-ada3b108d6b6)." + "To get access to the Optimization Solver, [contact Q-CTRL](https://form.typeform.com/to/uOAVDnGg?typeform-source=q-ctrl.com)." ] }, { diff --git a/docs/guides/q-ctrl-performance-management.ipynb b/docs/guides/q-ctrl-performance-management.ipynb index 45ae7937d6c..26ad67c7061 100644 --- a/docs/guides/q-ctrl-performance-management.ipynb +++ b/docs/guides/q-ctrl-performance-management.ipynb @@ -21,7 +21,7 @@ "\n", "The Performance Management function can be used with any algorithm, and you can easily use it in place of the standard [Qiskit Runtime primitives](./primitives). Behind the scenes, multiple error suppression techniques work together to prevent errors from happening at runtime. All Fire Opal pipeline methods are pre-configured and algorithm-agnostic, meaning you always get the best performance out of the box.\n", "\n", - "To get access to Performance Management, [contact Q-CTRL](https://form.typeform.com/to/JKHcaxlv?typeform-source=q-ctrl.com#product=Fire%20Opal)." + "To get access to Performance Management, [contact Q-CTRL](https://form.typeform.com/to/uOAVDnGg?typeform-source=q-ctrl.com)." ] }, { From a8c8834154c3d64219602477a7571a382bf18885 Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Tue, 22 Oct 2024 05:11:15 -0400 Subject: [PATCH 16/32] Fix dev docs sync detection of changed files (#2143) The dev docs sync PR is correctly running and regenerating the dev docs, but it's skipping the step to open PRs. This is because `@frankharkins` pointed out tj-actions/changed-files compares files across branches, rather than based on the current working directory. --------- Co-authored-by: Frank Harkins --- .github/workflows/dev-docs-sync.yml | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/.github/workflows/dev-docs-sync.yml b/.github/workflows/dev-docs-sync.yml index 3728a6c0bd0..2ca707408ec 100644 --- a/.github/workflows/dev-docs-sync.yml +++ b/.github/workflows/dev-docs-sync.yml @@ -28,21 +28,25 @@ jobs: node-version: 18 - name: Install Node.js dependencies run: npm ci + - name: Sync dev docs run: npx tsx scripts/js/commands/api/syncDevDocs.ts env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Get all changed docs files id: changed-docs-files - uses: tj-actions/changed-files@af2816c65436325c50621100d67f6e853cd1b0f1 - with: - # Note: we specifically check for changed docs files rather than changed - # images in public/images or changes to scripts/config/api-html-artifacts.json - # to avoid noisy PRs. It's common for images to change because some of the - # images are generated non-deterministically. - files: docs/api/**/*.mdx + # Note: we specifically check for changed docs files rather than changed + # images in public/images or changes to scripts/config/api-html-artifacts.json + # to avoid noisy PRs. It's common for images to change because some of the + # images are generated non-deterministically. + run: | + echo "CHANGED_FILES<> $GITHUB_OUTPUT + git diff --name-only docs >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + - name: Make pull request - if: ${{ !cancelled() && steps.changed-docs-files.outputs.any_changed == 'true' }} + if: steps.changed-docs-files.outputs.CHANGED_FILES env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | From 073f1ceb8835fb7a4bdd6209db8bd1b12bc03b2c Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Tue, 22 Oct 2024 10:32:05 -0400 Subject: [PATCH 17/32] Regen runtime docs to add debug_tools module (#2161) --- docs/api/qiskit-ibm-runtime/_toc.json | 21 + docs/api/qiskit-ibm-runtime/debug_tools.mdx | 26 + docs/api/qiskit-ibm-runtime/dev/_toc.json | 21 + .../qiskit-ibm-runtime/dev/debug_tools.mdx | 26 + docs/api/qiskit-ibm-runtime/dev/index.mdx | 1 + .../dev/qiskit_ibm_runtime.Estimator.mdx | 2 +- .../dev/qiskit_ibm_runtime.EstimatorV2.mdx | 8 +- ...iskit_ibm_runtime.QiskitRuntimeService.mdx | 30 +- .../dev/qiskit_ibm_runtime.Sampler.mdx | 2 +- .../dev/qiskit_ibm_runtime.SamplerV2.mdx | 8 +- .../qiskit_ibm_runtime.debug_tools.Neat.mdx | 119 +++ ..._ibm_runtime.debug_tools.NeatPubResult.mdx | 42 + ...kit_ibm_runtime.debug_tools.NeatResult.mdx | 36 + ...ime.options.DynamicalDecouplingOptions.mdx | 12 +- ....utils.noise_learner_result.LayerError.mdx | 30 +- ...ime.visualization.draw_layer_error_map.mdx | 4 +- docs/api/qiskit-ibm-runtime/index.mdx | 1 + .../qiskit_ibm_runtime.debug_tools.Neat.mdx | 119 +++ ..._ibm_runtime.debug_tools.NeatPubResult.mdx | 42 + ...kit_ibm_runtime.debug_tools.NeatResult.mdx | 36 + docs/api/qiskit/dev/circuit_library.mdx | 916 ++++++++++++++++-- .../dev/qiskit.circuit.library.C3SXGate.mdx | 2 +- .../dev/qiskit.circuit.library.C3XGate.mdx | 6 +- .../dev/qiskit.circuit.library.C4XGate.mdx | 6 +- .../dev/qiskit.circuit.library.CCXGate.mdx | 6 +- .../dev/qiskit.circuit.library.CHGate.mdx | 4 +- .../dev/qiskit.circuit.library.CRXGate.mdx | 4 +- .../dev/qiskit.circuit.library.CRYGate.mdx | 4 +- .../dev/qiskit.circuit.library.CRZGate.mdx | 4 +- .../dev/qiskit.circuit.library.CSXGate.mdx | 2 +- .../dev/qiskit.circuit.library.CU3Gate.mdx | 4 +- .../dev/qiskit.circuit.library.CUGate.mdx | 4 +- .../dev/qiskit.circuit.library.CXGate.mdx | 6 +- .../dev/qiskit.circuit.library.CYGate.mdx | 4 +- .../dev/qiskit.circuit.library.DCXGate.mdx | 2 +- .../dev/qiskit.circuit.library.IGate.mdx | 6 +- .../dev/qiskit.circuit.library.MCXGate.mdx | 8 +- .../qiskit.circuit.library.MCXGrayCode.mdx | 4 +- .../qiskit.circuit.library.MCXRecursive.mdx | 6 +- .../dev/qiskit.circuit.library.MCXVChain.mdx | 6 +- .../dev/qiskit.circuit.library.RC3XGate.mdx | 2 +- .../dev/qiskit.circuit.library.RCCXGate.mdx | 2 +- .../qiskit.circuit.library.RealAmplitudes.mdx | 2 +- .../qiskit.circuit.library.ZZFeatureMap.mdx | 2 +- ...ranspiler.passes.MergeAdjacentBarriers.mdx | 4 +- ...kit.transpiler.passes.UnitarySynthesis.mdx | 4 +- ...tary_synthesis.DefaultUnitarySynthesis.mdx | 4 +- docs/api/qiskit/dev/synthesis.mdx | 10 +- public/api/qiskit-ibm-runtime/dev/objects.inv | Bin 58918 -> 59473 bytes public/api/qiskit-ibm-runtime/objects.inv | Bin 58919 -> 59437 bytes .../dev/fake_provider-1_02.png | Bin 11968 -> 11498 bytes .../qiskit-ibm-runtime/fake_provider-1_02.png | Bin 12299 -> 11442 bytes public/images/api/qiskit/dev/circuit-2.png | Bin 8279 -> 7538 bytes .../dev/providers_fake_provider-1_01.png | Bin 22679 -> 22304 bytes .../dev/providers_fake_provider-1_02.png | Bin 11108 -> 10815 bytes public/images/api/qiskit/dev/pulse-2.png | Bin 10889 -> 10558 bytes public/images/api/qiskit/dev/pulse-3.png | Bin 59611 -> 59510 bytes public/images/api/qiskit/dev/pulse-4.png | Bin 19257 -> 18900 bytes public/images/api/qiskit/dev/pulse-5.png | Bin 16555 -> 16226 bytes public/images/api/qiskit/dev/pulse-6.png | Bin 11628 -> 11254 bytes public/images/api/qiskit/dev/pulse-7.png | Bin 14262 -> 13972 bytes .../dev/qiskit-circuit-ControlledGate-2.png | Bin 7234 -> 6891 bytes ...skit-circuit-library-PermutationGate-2.png | Bin 16246 -> 15965 bytes ...skit-circuit-library-PhaseEstimation-1.png | Bin 12227 -> 12161 bytes ...it-visualization-plot_circuit_layout-1.png | Bin 10092 -> 10166 bytes .../qiskit-visualization-plot_error_map-1.png | Bin 49218 -> 49399 bytes ...qiskit-visualization-timeline_drawer-1.png | Bin 15879 -> 16040 bytes ...qiskit-visualization-timeline_drawer-2.png | Bin 8008 -> 8323 bytes ...qiskit-visualization-timeline_drawer-3.png | Bin 26427 -> 26706 bytes .../images/api/qiskit/dev/release_notes-1.png | Bin 7267 -> 6507 bytes .../images/api/qiskit/dev/transpiler-16.png | Bin 23831 -> 24838 bytes .../images/api/qiskit/dev/transpiler-17.png | Bin 19371 -> 18840 bytes public/images/api/qiskit/dev/transpiler-5.png | Bin 19906 -> 19724 bytes scripts/config/api-html-artifacts.json | 4 +- 74 files changed, 1452 insertions(+), 172 deletions(-) create mode 100644 docs/api/qiskit-ibm-runtime/debug_tools.mdx create mode 100644 docs/api/qiskit-ibm-runtime/dev/debug_tools.mdx create mode 100644 docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.debug_tools.Neat.mdx create mode 100644 docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.debug_tools.NeatPubResult.mdx create mode 100644 docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.debug_tools.NeatResult.mdx create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.debug_tools.Neat.mdx create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.debug_tools.NeatPubResult.mdx create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.debug_tools.NeatResult.mdx diff --git a/docs/api/qiskit-ibm-runtime/_toc.json b/docs/api/qiskit-ibm-runtime/_toc.json index 03539a40204..71b17bcb038 100644 --- a/docs/api/qiskit-ibm-runtime/_toc.json +++ b/docs/api/qiskit-ibm-runtime/_toc.json @@ -62,6 +62,27 @@ } ] }, + { + "title": "qiskit_ibm_runtime.debug_tools", + "children": [ + { + "title": "Module overview", + "url": "/api/qiskit-ibm-runtime/debug_tools" + }, + { + "title": "Neat", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.debug_tools.Neat" + }, + { + "title": "NeatPubResult", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.debug_tools.NeatPubResult" + }, + { + "title": "NeatResult", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.debug_tools.NeatResult" + } + ] + }, { "title": "qiskit_ibm_runtime.execution_span", "children": [ diff --git a/docs/api/qiskit-ibm-runtime/debug_tools.mdx b/docs/api/qiskit-ibm-runtime/debug_tools.mdx new file mode 100644 index 00000000000..9bfae74d34d --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/debug_tools.mdx @@ -0,0 +1,26 @@ +--- +title: debug_tools +description: API reference for qiskit_ibm_runtime.debug_tools +in_page_toc_min_heading_level: 2 +python_api_type: module +python_api_name: qiskit_ibm_runtime.debug_tools +--- + + + + + +# Debugging tools + +`qiskit_ibm_runtime.debug_tools` + +The tools for debugging and analyzing qiskit-ibm-runtime jobs. + +## Classes + +| | | +| -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| [`Neat`](qiskit_ibm_runtime.debug_tools.Neat "qiskit_ibm_runtime.debug_tools.Neat")(backend\[, noise\_model]) | A class to help understand the expected performance of estimator jobs. | +| [`NeatResult`](qiskit_ibm_runtime.debug_tools.NeatResult "qiskit_ibm_runtime.debug_tools.NeatResult")(pub\_results) | A container for multiple [`NeatPubResult`](qiskit_ibm_runtime.debug_tools.NeatPubResult "qiskit_ibm_runtime.debug_tools.NeatPubResult") objects. | +| [`NeatPubResult`](qiskit_ibm_runtime.debug_tools.NeatPubResult "qiskit_ibm_runtime.debug_tools.NeatPubResult")(vals) | A class to store the PUB results of `Neat`. | + diff --git a/docs/api/qiskit-ibm-runtime/dev/_toc.json b/docs/api/qiskit-ibm-runtime/dev/_toc.json index ea08ecb1cd7..09b931e25ae 100644 --- a/docs/api/qiskit-ibm-runtime/dev/_toc.json +++ b/docs/api/qiskit-ibm-runtime/dev/_toc.json @@ -62,6 +62,27 @@ } ] }, + { + "title": "qiskit_ibm_runtime.debug_tools", + "children": [ + { + "title": "Module overview", + "url": "/api/qiskit-ibm-runtime/dev/debug_tools" + }, + { + "title": "Neat", + "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.debug_tools.Neat" + }, + { + "title": "NeatPubResult", + "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.debug_tools.NeatPubResult" + }, + { + "title": "NeatResult", + "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.debug_tools.NeatResult" + } + ] + }, { "title": "qiskit_ibm_runtime.execution_span", "children": [ diff --git a/docs/api/qiskit-ibm-runtime/dev/debug_tools.mdx b/docs/api/qiskit-ibm-runtime/dev/debug_tools.mdx new file mode 100644 index 00000000000..9bfae74d34d --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/dev/debug_tools.mdx @@ -0,0 +1,26 @@ +--- +title: debug_tools +description: API reference for qiskit_ibm_runtime.debug_tools +in_page_toc_min_heading_level: 2 +python_api_type: module +python_api_name: qiskit_ibm_runtime.debug_tools +--- + + + + + +# Debugging tools + +`qiskit_ibm_runtime.debug_tools` + +The tools for debugging and analyzing qiskit-ibm-runtime jobs. + +## Classes + +| | | +| -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| [`Neat`](qiskit_ibm_runtime.debug_tools.Neat "qiskit_ibm_runtime.debug_tools.Neat")(backend\[, noise\_model]) | A class to help understand the expected performance of estimator jobs. | +| [`NeatResult`](qiskit_ibm_runtime.debug_tools.NeatResult "qiskit_ibm_runtime.debug_tools.NeatResult")(pub\_results) | A container for multiple [`NeatPubResult`](qiskit_ibm_runtime.debug_tools.NeatPubResult "qiskit_ibm_runtime.debug_tools.NeatPubResult") objects. | +| [`NeatPubResult`](qiskit_ibm_runtime.debug_tools.NeatPubResult "qiskit_ibm_runtime.debug_tools.NeatPubResult")(vals) | A class to store the PUB results of `Neat`. | + diff --git a/docs/api/qiskit-ibm-runtime/dev/index.mdx b/docs/api/qiskit-ibm-runtime/dev/index.mdx index 9b94f073619..1a96e625b79 100644 --- a/docs/api/qiskit-ibm-runtime/dev/index.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/index.mdx @@ -13,5 +13,6 @@ description: API documentation for the qiskit-ibm-runtime client * [Transpiler scheduling passes (`qiskit_ibm_runtime.transpiler.passes.scheduling`)](qiskit_ibm_runtime.transpiler.passes.scheduling) * [Fake Provider (`qiskit_ibm_runtime.fake_provider`)](fake_provider) * [Execution Spans (`qiskit_ibm_runtime.execution_span`)](execution_span) +* [Debugging tools (`qiskit_ibm_runtime.debug_tools`)](debug_tools) * [Visualization (`qiskit_ibm_runtime.visualization`)](visualization) diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Estimator.mdx b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Estimator.mdx index a0ffb699faa..adcff6a2993 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Estimator.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Estimator.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.Estimator # Estimator - + alias of [`EstimatorV2`](qiskit_ibm_runtime.EstimatorV2 "qiskit_ibm_runtime.estimator.EstimatorV2") diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.EstimatorV2.mdx b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.EstimatorV2.mdx index 08c625b853a..aed60da8c32 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.EstimatorV2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.EstimatorV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.EstimatorV2 # EstimatorV2 - + Class for interacting with Qiskit Runtime Estimator primitive service. Qiskit Runtime Estimator primitive service estimates expectation values of quantum circuits and observables. @@ -65,10 +65,6 @@ python_api_name: qiskit_ibm_runtime.EstimatorV2 * **options** (`Union`\[`Dict`, [`EstimatorOptions`](qiskit_ibm_runtime.options.EstimatorOptions "qiskit_ibm_runtime.options.estimator_options.EstimatorOptions"), `None`]) – Estimator options, see `EstimatorOptions` for detailed description. - **Raises** - - **NotImplementedError** – If “q-ctrl” channel strategy is used. - ## Attributes ### mode @@ -103,7 +99,7 @@ python_api_name: qiskit_ibm_runtime.EstimatorV2 ### run - + Submit a request to the estimator primitive. **Parameters** diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.QiskitRuntimeService.mdx b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.QiskitRuntimeService.mdx index 7b0fe772993..e47ca47e92a 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.QiskitRuntimeService.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.QiskitRuntimeService.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService # QiskitRuntimeService - + Class for interacting with the Qiskit Runtime service. QiskitRuntimeService constructor @@ -35,7 +35,6 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService * **instance** (`Optional`\[`str`]) – The service instance to use. For `ibm_cloud` runtime, this is the Cloud Resource Name (CRN) or the service name. For `ibm_quantum` runtime, this is the hub/group/project in that format. * **proxies** (`Optional`\[`dict`]) – Proxy configuration. Supported optional keys are `urls` (a dictionary mapping protocol or protocol and host to the URL of the proxy, documented at [https://docs.python-requests.org/en/latest/api/#requests.Session.proxies](https://docs.python-requests.org/en/latest/api/#requests.Session.proxies)), `username_ntlm`, `password_ntlm` (username and password to enable NTLM user authentication) * **verify** (`Optional`\[`bool`]) – Whether to verify the server’s TLS certificate. - * **channel\_strategy** (`Optional`\[`str`]) – (DEPRECATED) Error mitigation strategy. * **private\_endpoint** (`Optional`\[`bool`]) – Connect to private API URL. * **url\_resolver** (`Optional`\[`Callable`\[\[`str`, `str`, `Optional`\[`bool`]], `str`]]) – Function used to resolve the runtime url. @@ -71,7 +70,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### active\_account - + Return the IBM Quantum account currently in use for the session. **Return type** @@ -85,7 +84,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### backend - + Return a single backend matching the specified filtering. **Parameters** @@ -109,7 +108,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### backends - + Return all backends accessible via this account, subject to optional filtering. **Parameters** @@ -170,7 +169,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### check\_pending\_jobs - + Check the number of pending jobs and wait for the oldest pending job if the maximum number of pending jobs has been reached. **Return type** @@ -180,7 +179,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### delete\_account - + Delete a saved account from disk. **Parameters** @@ -200,7 +199,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### delete\_job - + Delete a runtime job. Note that this operation cannot be reversed. @@ -221,7 +220,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### instances - + Return the IBM Quantum instances list currently in use for the session. **Return type** @@ -235,7 +234,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### job - + Retrieve a runtime job. **Parameters** @@ -258,7 +257,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### jobs - + Retrieve all runtime jobs, subject to optional filtering. **Parameters** @@ -290,7 +289,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### least\_busy - + Return the least busy available backend. **Parameters** @@ -322,7 +321,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### save\_account - + Save the account to disk for future use. **Parameters** @@ -336,7 +335,6 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService * **proxies** (`Optional`\[`dict`]) – Proxy configuration. Supported optional keys are `urls` (a dictionary mapping protocol or protocol and host to the URL of the proxy, documented at [https://docs.python-requests.org/en/latest/api/#requests.Session.proxies](https://docs.python-requests.org/en/latest/api/#requests.Session.proxies)), `username_ntlm`, `password_ntlm` (username and password to enable NTLM user authentication) * **verify** (`Optional`\[`bool`]) – Verify the server’s TLS certificate. * **overwrite** (`Optional`\[`bool`]) – `True` if the existing account is to be overwritten. - * **channel\_strategy** (`Optional`\[`str`]) – (DEPRECATED) Error mitigation strategy. * **set\_as\_default** (`Optional`\[`bool`]) – If `True`, the account is saved in filename, as the default account. * **private\_endpoint** (`Optional`\[`bool`]) – Connect to private API URL. @@ -347,7 +345,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### saved\_accounts - + List the accounts saved on disk. **Parameters** @@ -372,7 +370,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### usage - + Return monthly open plan usage information. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Sampler.mdx b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Sampler.mdx index f4432dfd554..c03c2bd6613 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Sampler.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Sampler.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.Sampler # Sampler - + alias of [`SamplerV2`](qiskit_ibm_runtime.SamplerV2 "qiskit_ibm_runtime.sampler.SamplerV2") diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.SamplerV2.mdx b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.SamplerV2.mdx index 266fb794ce4..ee08e49434a 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.SamplerV2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.SamplerV2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.SamplerV2 # SamplerV2 - + Class for interacting with Qiskit Runtime Sampler primitive service. This class supports version 2 of the Sampler interface, which uses different input and output formats than version 1. @@ -33,10 +33,6 @@ python_api_name: qiskit_ibm_runtime.SamplerV2 * **options** (`Union`\[`Dict`, [`SamplerOptions`](qiskit_ibm_runtime.options.SamplerOptions "qiskit_ibm_runtime.options.sampler_options.SamplerOptions"), `None`]) – Sampler options, see `SamplerOptions` for detailed description. - **Raises** - - **NotImplementedError** – If “q-ctrl” channel strategy is used. - ## Attributes ### mode @@ -71,7 +67,7 @@ python_api_name: qiskit_ibm_runtime.SamplerV2 ### run - + Submit a request to the sampler primitive. **Parameters** diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.debug_tools.Neat.mdx b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.debug_tools.Neat.mdx new file mode 100644 index 00000000000..1d79bc63635 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.debug_tools.Neat.mdx @@ -0,0 +1,119 @@ +--- +title: Neat +description: API reference for qiskit_ibm_runtime.debug_tools.Neat +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.debug_tools.Neat +--- + +# Neat + + + A class to help understand the expected performance of estimator jobs. + + The “Noisy Estimator Analyzer Tool” (or “NEAT”) is a convenience tool that users of the `Estimator` primitive can employ to analyze and predict the performance of their queries. Its simulate method uses `qiskit-aer` to simulate the estimation task classically efficiently, either in ideal conditions or in the presence of noise. The simulations’ results can be compared with other simulation results or with primitive results results to draw custom figures of merit. + + **Parameters** + + * **backend** ([`BackendV2`](/api/qiskit/qiskit.providers.BackendV2 "(in Qiskit v1.2)")) – A backend. + * **noise\_model** (`Optional`\[[`NoiseModel`](https://qiskit.github.io/qiskit-aer/stubs/qiskit_aer.noise.NoiseModel.html#qiskit_aer.noise.NoiseModel "(in Qiskit Aer v0.15.0)")]) – A noise model for the operations of the given backend. If `None`, it defaults to the noise model generated by `NoiseModel.from_backend()`. + + ## Attributes + + ### noise\_model + + + The noise model used by this analyzer tool for the noisy simulations. + + **Return type** + + [`NoiseModel`](https://qiskit.github.io/qiskit-aer/stubs/qiskit_aer.noise.NoiseModel.html#qiskit_aer.noise.NoiseModel "(in Qiskit Aer v0.15.0)") + + + ## Methods + + ### backend + + + The backend used by this analyzer tool. + + **Return type** + + [`BackendV2`](/api/qiskit/qiskit.providers.BackendV2 "(in Qiskit v1.2)") + + + ### ideal\_sim + + + Perform an ideal, noiseless simulation of the estimator task specified by `pubs`. + + This function uses `qiskit-aer`’s `Estimator` class to simulate the estimation task classically. + + + To ensure scalability, every circuit in `pubs` is required to be a Clifford circuit, so that it can be simulated efficiently regardless of its size. For estimation tasks that involve non-Clifford circuits, the recommended workflow consists of mapping the non-Clifford circuits to the nearest Clifford circuits using the `ConvertISAToClifford` transpiler pass, or equivalently, to use the Neat’s [`to_clifford()`](#qiskit_ibm_runtime.debug_tools.Neat.to_clifford "qiskit_ibm_runtime.debug_tools.Neat.to_clifford") convenience method. Alternatively, setting `cliffordize` to `True` ensures that the [`to_clifford()`](#qiskit_ibm_runtime.debug_tools.Neat.to_clifford "qiskit_ibm_runtime.debug_tools.Neat.to_clifford") method is applied automatically to the given `pubs` prior to the simulation. + + + **Parameters** + + * **pubs** (`Sequence`\[`Union`\[`EstimatorPub`, `Tuple`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), `Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)"), [`SparsePauliOp`](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), `Mapping`\[`Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)")], `float`], `_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]]], `Tuple`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), `Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)"), [`SparsePauliOp`](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), `Mapping`\[`Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)")], `float`], `_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]], `Mapping`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`, `Tuple`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`], `...`]], `Union`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `str`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]]]], `Tuple`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), `Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)"), [`SparsePauliOp`](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), `Mapping`\[`Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)")], `float`], `_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]], `Mapping`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`, `Tuple`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`], `...`]], `Union`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `str`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]]], `Real`]]]) – The PUBs specifying the estimation task of interest. + * **cliffordize** (`bool`) – Whether or not to automatically apply the `ConvertISAToClifford` transpiler pass to the given `pubs` before performing the simulations. + * **seed\_simulator** (`Optional`\[`int`]) – A seed for the simulator. + * **precision** (`float`) – The target precision for the estimates of each expectation value in the returned results. + + **Return type** + + [`NeatResult`](qiskit_ibm_runtime.debug_tools.NeatResult "qiskit_ibm_runtime.debug_tools.neat_results.NeatResult") + + **Returns** + + The results of the simulation. + + + ### noisy\_sim + + + Perform a noisy simulation of the estimator task specified by `pubs`. + + This function uses `qiskit-aer`’s `Estimator` class to simulate the estimation task classically. + + + To ensure scalability, every circuit in `pubs` is required to be a Clifford circuit, so that it can be simulated efficiently regardless of its size. For estimation tasks that involve non-Clifford circuits, the recommended workflow consists of mapping the non-Clifford circuits to the nearest Clifford circuits using the `ConvertISAToClifford` transpiler pass, or equivalently, to use the Neat’s [`to_clifford()`](#qiskit_ibm_runtime.debug_tools.Neat.to_clifford "qiskit_ibm_runtime.debug_tools.Neat.to_clifford") convenience method. Alternatively, setting `cliffordize` to `True` ensures that the [`to_clifford()`](#qiskit_ibm_runtime.debug_tools.Neat.to_clifford "qiskit_ibm_runtime.debug_tools.Neat.to_clifford") method is applied automatically to the given `pubs` prior to the simulation. + + + **Parameters** + + * **pubs** (`Sequence`\[`Union`\[`EstimatorPub`, `Tuple`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), `Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)"), [`SparsePauliOp`](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), `Mapping`\[`Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)")], `float`], `_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]]], `Tuple`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), `Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)"), [`SparsePauliOp`](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), `Mapping`\[`Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)")], `float`], `_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]], `Mapping`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`, `Tuple`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`], `...`]], `Union`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `str`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]]]], `Tuple`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), `Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)"), [`SparsePauliOp`](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), `Mapping`\[`Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)")], `float`], `_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]], `Mapping`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`, `Tuple`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`], `...`]], `Union`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `str`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]]], `Real`]]]) – The PUBs specifying the estimation task of interest. + * **cliffordize** (`bool`) – Whether or not to automatically apply the `ConvertISAToClifford` transpiler pass to the given `pubs` before performing the simulations. + * **seed\_simulator** (`Optional`\[`int`]) – A seed for the simulator. + * **precision** (`float`) – The target precision for the estimates of each expectation value in the returned results. + + **Return type** + + [`NeatResult`](qiskit_ibm_runtime.debug_tools.NeatResult "qiskit_ibm_runtime.debug_tools.neat_results.NeatResult") + + **Returns** + + The results of the simulation. + + + ### to\_clifford + + + Return the cliffordized version of the given `pubs`. + + This convenience method runs the `ConvertISAToClifford` transpiler pass on the PUBs’ circuits. + + **Parameters** + + **pubs** (`Sequence`\[`Union`\[`EstimatorPub`, `Tuple`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), `Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)"), [`SparsePauliOp`](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), `Mapping`\[`Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)")], `float`], `_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]]], `Tuple`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), `Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)"), [`SparsePauliOp`](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), `Mapping`\[`Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)")], `float`], `_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]], `Mapping`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`, `Tuple`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`], `...`]], `Union`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `str`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]]]], `Tuple`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), `Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)"), [`SparsePauliOp`](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), `Mapping`\[`Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)")], `float`], `_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]], `Mapping`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`, `Tuple`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`], `...`]], `Union`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `str`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]]], `Real`]]]) – The PUBs to turn into Clifford PUBs. + + **Return type** + + `list`\[`EstimatorPub`] + + **Returns** + + The Clifford PUBs. + + + diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.debug_tools.NeatPubResult.mdx b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.debug_tools.NeatPubResult.mdx new file mode 100644 index 00000000000..963f5013297 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.debug_tools.NeatPubResult.mdx @@ -0,0 +1,42 @@ +--- +title: NeatPubResult +description: API reference for qiskit_ibm_runtime.debug_tools.NeatPubResult +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.debug_tools.NeatPubResult +--- + +# NeatPubResult + + + A class to store the PUB results of `Neat`. + + It allows performing mathematical operations (`+`, `-`, `*`, `/`, `abs`, and `**`) with other objects of type `NeatPubResultLike` and with scalars. + + **Parameters** + + **vals** (`Union`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `str`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]]) – The values in this `NeatPubResult`. + + ## Attributes + + ### vals + + + The values in this result. + + **Return type** + + [`ndarray`](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)") + + + ## Methods + + ### \_\_mul\_\_ + + + **Return type** + + [`NeatPubResult`](#qiskit_ibm_runtime.debug_tools.NeatPubResult "qiskit_ibm_runtime.debug_tools.neat_results.NeatPubResult") + + + diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.debug_tools.NeatResult.mdx b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.debug_tools.NeatResult.mdx new file mode 100644 index 00000000000..217b6649823 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.debug_tools.NeatResult.mdx @@ -0,0 +1,36 @@ +--- +title: NeatResult +description: API reference for qiskit_ibm_runtime.debug_tools.NeatResult +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.debug_tools.NeatResult +--- + +# NeatResult + + + A container for multiple [`NeatPubResult`](qiskit_ibm_runtime.debug_tools.NeatPubResult "qiskit_ibm_runtime.debug_tools.NeatPubResult") objects. + + **Parameters** + + **pub\_results** (`Iterable`\[[`NeatPubResult`](qiskit_ibm_runtime.debug_tools.NeatPubResult "qiskit_ibm_runtime.debug_tools.neat_results.NeatPubResult")]) – An iterable of [`NeatPubResult`](qiskit_ibm_runtime.debug_tools.NeatPubResult "qiskit_ibm_runtime.debug_tools.NeatPubResult") objects. + + ## Methods + + ### \_\_getitem\_\_ + + + **Return type** + + [`NeatPubResult`](qiskit_ibm_runtime.debug_tools.NeatPubResult "qiskit_ibm_runtime.debug_tools.neat_results.NeatPubResult") + + + ### \_\_len\_\_ + + + **Return type** + + `int` + + + diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.DynamicalDecouplingOptions.mdx b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.DynamicalDecouplingOptions.mdx index c18e1ea73d0..4c0efa53d5e 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.DynamicalDecouplingOptions.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.DynamicalDecouplingOptions.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.options.DynamicalDecouplingOptions # DynamicalDecouplingOptions - + Options for dynamical decoupling (DD). ## Attributes @@ -59,6 +59,16 @@ python_api_name: qiskit_ibm_runtime.options.DynamicalDecouplingOptions `tau/2 - (+X) - tau - (+Y) - tau (-X) - tau - (-Y) - tau/2` + ### skip\_reset\_qubits + + + Whether to insert DD on idle periods that immediately follow initialized/reset qubits. + + Since qubits in the ground state are less susceptible to decoherence, it can be beneficial to let them be while they are known to be in this state. + + Default: False. + + ## Methods diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.utils.noise_learner_result.LayerError.mdx b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.utils.noise_learner_result.LayerError.mdx index e0c1a9da907..bf0ac6d50a5 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.utils.noise_learner_result.LayerError.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.utils.noise_learner_result.LayerError.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.utils.noise_learner_result.LayerError # LayerError - + The error channel (in Pauli-Lindblad format) of a single layer of instructions. **Parameters** @@ -87,21 +87,47 @@ python_api_name: qiskit_ibm_runtime.utils.noise_learner_result.LayerError ### draw\_map - + Draw a map view of a this layer error. **Parameters** * **embedding** (`Union`\[`Embedding`, [`BackendV2`](/api/qiskit/qiskit.providers.BackendV2 "(in Qiskit v1.2)")]) – An `Embedding` object containing the coordinates and coupling map to draw the layer error on, or a backend to generate an `Embedding` for. + * **colorscale** (`str`) – The colorscale used to show the rates of this layer error. + * **color\_no\_data** (`str`) – The color used for qubits and edges for which no data is available. + + * **color\_out\_of\_scale** (`str`) – The color used for rates with value greater than `highest_rate`. + * **num\_edge\_segments** (`int`) – The number of equal-sized segments that edges are made of. + * **edge\_width** (`float`) – The line width of the edges in pixels. + * **height** (`int`) – The height of the returned figure. + + * **highest\_rate** (`Optional`\[`float`]) – The highest rate, used to normalize all other rates before choosing their colors. If `None`, it defaults to the highest value found in the `layer_error`. + * **background\_color** (`str`) – The background color. + * **radius** (`float`) – The radius of the pie charts representing the qubits. + * **width** (`int`) – The width of the returned figure. + * **code:** (*..*) – + + python: from qiskit import QuantumCircuit from qiskit.quantum\_info import PauliList from qiskit\_ibm\_runtime.utils.embeddings import Embedding from qiskit\_ibm\_runtime.utils.noise\_learner\_result import LayerError, PauliLindbladError + + \# A five-qubit 1-D embedding with nearest neighbouring connectivity coordinates1 = \[(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (0, 5)] coupling\_map1 = \[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5)] embedding1 = Embedding(coordinates1, coupling\_map1) + + \# A six-qubit horseshoe-shaped embedding with nearest neighbouring connectivity coordinates2 = \[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)] coupling\_map2 = \[(0, 1), (1, 2), (0, 3), (3, 4), (4, 5)] embedding2 = Embedding(coordinates2, coupling\_map2) + + \# A LayerError object circuit = QuantumCircuit(4) qubits = \[1, 2, 3, 4] generators = PauliList(\[“IIIX”, “IIXI”, “IXII”, “YIII”, “ZIII”, “XXII”, “ZZII”]) rates = \[0.01, 0.01, 0.01, 0.005, 0.02, 0.01, 0.01] error = PauliLindbladError(generators, rates) layer\_error = LayerError(circuit, qubits, error) + + \# Draw the layer error on embedding1 layer\_error.draw\_map(embedding1) + + \# Draw the layer error on embedding2 layer\_error.draw\_map(embedding2) + **Return type** `Figure` diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.visualization.draw_layer_error_map.mdx b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.visualization.draw_layer_error_map.mdx index c8ae23f7bdb..1ed7b7ddc88 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.visualization.draw_layer_error_map.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.visualization.draw_layer_error_map.mdx @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.visualization.draw_layer_error_map # draw\_layer\_error\_map - + Draw a map view of a [`LayerError`](qiskit_ibm_runtime.utils.noise_learner_result.LayerError "qiskit_ibm_runtime.utils.noise_learner_result.LayerError"). **Parameters** @@ -19,9 +19,11 @@ python_api_name: qiskit_ibm_runtime.visualization.draw_layer_error_map * **embedding** (`Union`\[`Embedding`, [`BackendV2`](/api/qiskit/qiskit.providers.BackendV2 "(in Qiskit v1.2)")]) – An `Embedding` object containing the coordinates and coupling map to draw the layer error on, or a backend to generate an `Embedding` for. * **colorscale** (`str`) – The colorscale used to show the rates of `layer_error`. * **color\_no\_data** (`str`) – The color used for qubits and edges for which no data is available. + * **color\_out\_of\_scale** (`str`) – The color used for rates with value greater than `highest_rate`. * **num\_edge\_segments** (`int`) – The number of equal-sized segments that edges are made of. * **edge\_width** (`float`) – The line width of the edges in pixels. * **height** (`int`) – The height of the returned figure. + * **highest\_rate** (`Optional`\[`float`]) – The highest rate, used to normalize all other rates before choosing their colors. If `None`, it defaults to the highest value found in the `layer_error`. * **background\_color** (`str`) – The background color. * **radius** (`float`) – The radius of the pie charts representing the qubits. * **width** (`int`) – The width of the returned figure. diff --git a/docs/api/qiskit-ibm-runtime/index.mdx b/docs/api/qiskit-ibm-runtime/index.mdx index 9b94f073619..1a96e625b79 100644 --- a/docs/api/qiskit-ibm-runtime/index.mdx +++ b/docs/api/qiskit-ibm-runtime/index.mdx @@ -13,5 +13,6 @@ description: API documentation for the qiskit-ibm-runtime client * [Transpiler scheduling passes (`qiskit_ibm_runtime.transpiler.passes.scheduling`)](qiskit_ibm_runtime.transpiler.passes.scheduling) * [Fake Provider (`qiskit_ibm_runtime.fake_provider`)](fake_provider) * [Execution Spans (`qiskit_ibm_runtime.execution_span`)](execution_span) +* [Debugging tools (`qiskit_ibm_runtime.debug_tools`)](debug_tools) * [Visualization (`qiskit_ibm_runtime.visualization`)](visualization) diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.debug_tools.Neat.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.debug_tools.Neat.mdx new file mode 100644 index 00000000000..42088766f7a --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.debug_tools.Neat.mdx @@ -0,0 +1,119 @@ +--- +title: Neat +description: API reference for qiskit_ibm_runtime.debug_tools.Neat +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.debug_tools.Neat +--- + +# Neat + + + A class to help understand the expected performance of estimator jobs. + + The “Noisy Estimator Analyzer Tool” (or “NEAT”) is a convenience tool that users of the `Estimator` primitive can employ to analyze and predict the performance of their queries. Its simulate method uses `qiskit-aer` to simulate the estimation task classically efficiently, either in ideal conditions or in the presence of noise. The simulations’ results can be compared with other simulation results or with primitive results results to draw custom figures of merit. + + **Parameters** + + * **backend** ([`BackendV2`](/api/qiskit/qiskit.providers.BackendV2 "(in Qiskit v1.2)")) – A backend. + * **noise\_model** (`Optional`\[[`NoiseModel`](https://qiskit.github.io/qiskit-aer/stubs/qiskit_aer.noise.NoiseModel.html#qiskit_aer.noise.NoiseModel "(in Qiskit Aer v0.15.0)")]) – A noise model for the operations of the given backend. If `None`, it defaults to the noise model generated by `NoiseModel.from_backend()`. + + ## Attributes + + ### noise\_model + + + The noise model used by this analyzer tool for the noisy simulations. + + **Return type** + + [`NoiseModel`](https://qiskit.github.io/qiskit-aer/stubs/qiskit_aer.noise.NoiseModel.html#qiskit_aer.noise.NoiseModel "(in Qiskit Aer v0.15.0)") + + + ## Methods + + ### backend + + + The backend used by this analyzer tool. + + **Return type** + + [`BackendV2`](/api/qiskit/qiskit.providers.BackendV2 "(in Qiskit v1.2)") + + + ### ideal\_sim + + + Perform an ideal, noiseless simulation of the estimator task specified by `pubs`. + + This function uses `qiskit-aer`’s `Estimator` class to simulate the estimation task classically. + + + To ensure scalability, every circuit in `pubs` is required to be a Clifford circuit, so that it can be simulated efficiently regardless of its size. For estimation tasks that involve non-Clifford circuits, the recommended workflow consists of mapping the non-Clifford circuits to the nearest Clifford circuits using the `ConvertISAToClifford` transpiler pass, or equivalently, to use the Neat’s [`to_clifford()`](#qiskit_ibm_runtime.debug_tools.Neat.to_clifford "qiskit_ibm_runtime.debug_tools.Neat.to_clifford") convenience method. Alternatively, setting `cliffordize` to `True` ensures that the [`to_clifford()`](#qiskit_ibm_runtime.debug_tools.Neat.to_clifford "qiskit_ibm_runtime.debug_tools.Neat.to_clifford") method is applied automatically to the given `pubs` prior to the simulation. + + + **Parameters** + + * **pubs** (`Sequence`\[`Union`\[`EstimatorPub`, `Tuple`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), `Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)"), [`SparsePauliOp`](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), `Mapping`\[`Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)")], `float`], `_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]]], `Tuple`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), `Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)"), [`SparsePauliOp`](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), `Mapping`\[`Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)")], `float`], `_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]], `Mapping`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`, `Tuple`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`], `...`]], `Union`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `str`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]]]], `Tuple`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), `Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)"), [`SparsePauliOp`](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), `Mapping`\[`Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)")], `float`], `_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]], `Mapping`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`, `Tuple`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`], `...`]], `Union`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `str`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]]], `Real`]]]) – The PUBs specifying the estimation task of interest. + * **cliffordize** (`bool`) – Whether or not to automatically apply the `ConvertISAToClifford` transpiler pass to the given `pubs` before performing the simulations. + * **seed\_simulator** (`Optional`\[`int`]) – A seed for the simulator. + * **precision** (`float`) – The target precision for the estimates of each expectation value in the returned results. + + **Return type** + + [`NeatResult`](qiskit_ibm_runtime.debug_tools.NeatResult "qiskit_ibm_runtime.debug_tools.neat_results.NeatResult") + + **Returns** + + The results of the simulation. + + + ### noisy\_sim + + + Perform a noisy simulation of the estimator task specified by `pubs`. + + This function uses `qiskit-aer`’s `Estimator` class to simulate the estimation task classically. + + + To ensure scalability, every circuit in `pubs` is required to be a Clifford circuit, so that it can be simulated efficiently regardless of its size. For estimation tasks that involve non-Clifford circuits, the recommended workflow consists of mapping the non-Clifford circuits to the nearest Clifford circuits using the `ConvertISAToClifford` transpiler pass, or equivalently, to use the Neat’s [`to_clifford()`](#qiskit_ibm_runtime.debug_tools.Neat.to_clifford "qiskit_ibm_runtime.debug_tools.Neat.to_clifford") convenience method. Alternatively, setting `cliffordize` to `True` ensures that the [`to_clifford()`](#qiskit_ibm_runtime.debug_tools.Neat.to_clifford "qiskit_ibm_runtime.debug_tools.Neat.to_clifford") method is applied automatically to the given `pubs` prior to the simulation. + + + **Parameters** + + * **pubs** (`Sequence`\[`Union`\[`EstimatorPub`, `Tuple`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), `Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)"), [`SparsePauliOp`](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), `Mapping`\[`Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)")], `float`], `_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]]], `Tuple`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), `Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)"), [`SparsePauliOp`](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), `Mapping`\[`Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)")], `float`], `_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]], `Mapping`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`, `Tuple`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`], `...`]], `Union`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `str`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]]]], `Tuple`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), `Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)"), [`SparsePauliOp`](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), `Mapping`\[`Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)")], `float`], `_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]], `Mapping`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`, `Tuple`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`], `...`]], `Union`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `str`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]]], `Real`]]]) – The PUBs specifying the estimation task of interest. + * **cliffordize** (`bool`) – Whether or not to automatically apply the `ConvertISAToClifford` transpiler pass to the given `pubs` before performing the simulations. + * **seed\_simulator** (`Optional`\[`int`]) – A seed for the simulator. + * **precision** (`float`) – The target precision for the estimates of each expectation value in the returned results. + + **Return type** + + [`NeatResult`](qiskit_ibm_runtime.debug_tools.NeatResult "qiskit_ibm_runtime.debug_tools.neat_results.NeatResult") + + **Returns** + + The results of the simulation. + + + ### to\_clifford + + + Return the cliffordized version of the given `pubs`. + + This convenience method runs the `ConvertISAToClifford` transpiler pass on the PUBs’ circuits. + + **Parameters** + + **pubs** (`Sequence`\[`Union`\[`EstimatorPub`, `Tuple`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), `Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)"), [`SparsePauliOp`](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), `Mapping`\[`Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)")], `float`], `_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]]], `Tuple`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), `Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)"), [`SparsePauliOp`](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), `Mapping`\[`Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)")], `float`], `_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]], `Mapping`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`, `Tuple`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`], `...`]], `Union`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `str`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]]]], `Tuple`\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), `Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)"), [`SparsePauliOp`](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), `Mapping`\[`Union`\[`str`, [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)")], `float`], `_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]], `Mapping`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`, `Tuple`\[`Union`\[[`Parameter`](/api/qiskit/qiskit.circuit.Parameter "(in Qiskit v1.2)"), `str`], `...`]], `Union`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `str`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]]], `Real`]]]) – The PUBs to turn into Clifford PUBs. + + **Return type** + + `list`\[`EstimatorPub`] + + **Returns** + + The Clifford PUBs. + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.debug_tools.NeatPubResult.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.debug_tools.NeatPubResult.mdx new file mode 100644 index 00000000000..544ead60137 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.debug_tools.NeatPubResult.mdx @@ -0,0 +1,42 @@ +--- +title: NeatPubResult +description: API reference for qiskit_ibm_runtime.debug_tools.NeatPubResult +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.debug_tools.NeatPubResult +--- + +# NeatPubResult + + + A class to store the PUB results of `Neat`. + + It allows performing mathematical operations (`+`, `-`, `*`, `/`, `abs`, and `**`) with other objects of type `NeatPubResultLike` and with scalars. + + **Parameters** + + **vals** (`Union`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]], `_NestedSequence`\[`_SupportsArray`\[[`dtype`](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.1)")\[`Any`]]], `bool`, `int`, `float`, `complex`, `str`, `bytes`, `_NestedSequence`\[`Union`\[`bool`, `int`, `float`, `complex`, `str`, `bytes`]]]) – The values in this `NeatPubResult`. + + ## Attributes + + ### vals + + + The values in this result. + + **Return type** + + [`ndarray`](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)") + + + ## Methods + + ### \_\_mul\_\_ + + + **Return type** + + [`NeatPubResult`](#qiskit_ibm_runtime.debug_tools.NeatPubResult "qiskit_ibm_runtime.debug_tools.neat_results.NeatPubResult") + + + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.debug_tools.NeatResult.mdx b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.debug_tools.NeatResult.mdx new file mode 100644 index 00000000000..c5f6bd9daec --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.debug_tools.NeatResult.mdx @@ -0,0 +1,36 @@ +--- +title: NeatResult +description: API reference for qiskit_ibm_runtime.debug_tools.NeatResult +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.debug_tools.NeatResult +--- + +# NeatResult + + + A container for multiple [`NeatPubResult`](qiskit_ibm_runtime.debug_tools.NeatPubResult "qiskit_ibm_runtime.debug_tools.NeatPubResult") objects. + + **Parameters** + + **pub\_results** (`Iterable`\[[`NeatPubResult`](qiskit_ibm_runtime.debug_tools.NeatPubResult "qiskit_ibm_runtime.debug_tools.neat_results.NeatPubResult")]) – An iterable of [`NeatPubResult`](qiskit_ibm_runtime.debug_tools.NeatPubResult "qiskit_ibm_runtime.debug_tools.NeatPubResult") objects. + + ## Methods + + ### \_\_getitem\_\_ + + + **Return type** + + [`NeatPubResult`](qiskit_ibm_runtime.debug_tools.NeatPubResult "qiskit_ibm_runtime.debug_tools.neat_results.NeatPubResult") + + + ### \_\_len\_\_ + + + **Return type** + + `int` + + + diff --git a/docs/api/qiskit/dev/circuit_library.mdx b/docs/api/qiskit/dev/circuit_library.mdx index 68dca3de60d..9525b9f9554 100644 --- a/docs/api/qiskit/dev/circuit_library.mdx +++ b/docs/api/qiskit/dev/circuit_library.mdx @@ -323,7 +323,15 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_2a\_1 - + + Template 2a\_1: + + ```python + ┌───┐┌───┐ + q_0: ┤ X ├┤ X ├ + └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -335,7 +343,16 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_2a\_2 - + + Template 2a\_2: + + ```python + q_0: ──■────■── + ┌─┴─┐┌─┴─┐ + q_1: ┤ X ├┤ X ├ + └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -347,7 +364,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_2a\_3 - + + Template 2a\_3: + + ```python + q_0: ──■────■── + │ │ + q_1: ──■────■── + ┌─┴─┐┌─┴─┐ + q_2: ┤ X ├┤ X ├ + └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -359,7 +387,22 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_4a\_1 - + + Template 4a\_1: + + ```python + q_0: ───────■─────────■── + │ │ + q_1: ──■────┼────■────┼── + │ │ │ │ + q_2: ──■────■────■────■── + │ ┌─┴─┐ │ ┌─┴─┐ + q_3: ──┼──┤ X ├──┼──┤ X ├ + ┌─┴─┐└───┘┌─┴─┐└───┘ + q_4: ┤ X ├─────┤ X ├───── + └───┘ └───┘ + ``` + **Returns** template as a quantum circuit. @@ -371,7 +414,20 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_4a\_2 - + + Template 4a\_2: + + ```python + q_0: ──■─────────■─────── + │ │ + q_1: ──■────■────■────■── + │ ┌─┴─┐ │ ┌─┴─┐ + q_2: ──┼──┤ X ├──┼──┤ X ├ + ┌─┴─┐└───┘┌─┴─┐└───┘ + q_3: ┤ X ├─────┤ X ├───── + └───┘ └───┘ + ``` + **Returns** template as a quantum circuit. @@ -383,7 +439,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_4a\_3 - + + Template 4a\_3: + + ```python + q_0: ──■────■────■────■── + │ ┌─┴─┐ │ ┌─┴─┐ + q_1: ──┼──┤ X ├──┼──┤ X ├ + ┌─┴─┐└───┘┌─┴─┐└───┘ + q_2: ┤ X ├─────┤ X ├───── + └───┘ └───┘ + ``` + **Returns** template as a quantum circuit. @@ -395,7 +462,20 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_4b\_1 - + + Template 4b\_1: + + ```python + q_0: ───────■─────────■── + │ │ + q_1: ──■────┼────■────┼── + │ │ │ │ + q_2: ──■────■────■────■── + ┌─┴─┐┌─┴─┐┌─┴─┐┌─┴─┐ + q_3: ┤ X ├┤ X ├┤ X ├┤ X ├ + └───┘└───┘└───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -407,7 +487,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_4b\_2 - + + Template 4b\_2: + + ```python + q_0: ──■─────────■─────── + │ │ + q_1: ──■────■────■────■── + ┌─┴─┐┌─┴─┐┌─┴─┐┌─┴─┐ + q_2: ┤ X ├┤ X ├┤ X ├┤ X ├ + └───┘└───┘└───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -419,7 +510,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_5a\_1 - + + Template 5a\_1: + + ```python + q_0: ──■────■────■────■────■── + │ ┌─┴─┐ │ ┌─┴─┐ │ + q_1: ──■──┤ X ├──■──┤ X ├──┼── + ┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐ + q_2: ┤ X ├─────┤ X ├─────┤ X ├ + └───┘ └───┘ └───┘ + ``` + **Returns** template as a quantum circuit. @@ -431,7 +533,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_5a\_2 - + + Template 5a\_2: + + ```python + q_0: ──■─────────■─────────■── + │ ┌───┐ │ ┌───┐ │ + q_1: ──■──┤ X ├──■──┤ X ├──┼── + ┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐ + q_2: ┤ X ├─────┤ X ├─────┤ X ├ + └───┘ └───┘ └───┘ + ``` + **Returns** template as a quantum circuit. @@ -443,7 +556,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_5a\_3 - + + Template 5a\_3: + + ```python + q_0: ───────■─────────■────■── + ┌─┴─┐ ┌─┴─┐ │ + q_1: ──■──┤ X ├──■──┤ X ├──┼── + ┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐ + q_2: ┤ X ├─────┤ X ├─────┤ X ├ + └───┘ └───┘ └───┘ + ``` + **Returns** template as a quantum circuit. @@ -455,7 +579,17 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_5a\_4 - + + Template 5a\_4: + + ```python + ┌───┐ ┌───┐ + q_0: ──■──┤ X ├──■──┤ X ├ + ┌─┴─┐└───┘┌─┴─┐├───┤ + q_1: ┤ X ├─────┤ X ├┤ X ├ + └───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -467,7 +601,17 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_6a\_1 - + + Template 6a\_1: + + ```python + ┌───┐ ┌───┐ ┌───┐ + q_0: ──■──┤ X ├──■──┤ X ├──■──┤ X ├ + ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘ + q_1: ┤ X ├──■──┤ X ├──■──┤ X ├──■── + └───┘ └───┘ └───┘ + ``` + **Returns** template as a quantum circuit. @@ -479,7 +623,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_6a\_2 - + + Template 6a\_2: + + ```python + q_0: ──■────■────■────■────■────■── + │ ┌─┴─┐ │ ┌─┴─┐ │ ┌─┴─┐ + q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├ + ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘ + q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■── + └───┘ └───┘ └───┘ + ``` + **Returns** template as a quantum circuit. @@ -491,7 +646,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_6a\_3 - + + Template 6a\_3: + + ```python + q_0: ───────■─────────■────■────■── + ┌─┴─┐ ┌─┴─┐ │ ┌─┴─┐ + q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├ + ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘ + q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■── + └───┘ └───┘ └───┘ + ``` + **Returns** template as a quantum circuit. @@ -503,7 +669,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_6a\_4 - + + Template 6a\_4: + + ```python + q_0: ───────■──────────────■─────── + ┌─┴─┐ ┌───┐ │ ┌───┐ + q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├ + ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘ + q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■── + └───┘ └───┘ └───┘ + ``` + **Returns** template as a quantum circuit. @@ -515,7 +692,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_6b\_1 - + + Template 6b\_1: + + ```python + q_0: ──■─────────■────■─────────■── + │ ┌─┴─┐ │ ┌─┴─┐ + q_1: ──■────■──┤ X ├──■────■──┤ X ├ + ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘ + q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■── + └───┘└───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -527,7 +715,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_6b\_2 - + + Template 6b\_2: + + ```python + q_0: ───────■────■─────────■────■── + │ ┌─┴─┐ │ ┌─┴─┐ + q_1: ──■────■──┤ X ├──■────■──┤ X ├ + ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘ + q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■── + └───┘└───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -539,7 +738,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_6c\_1 - + + Template 6c\_1: + + ```python + q_0: ──■─────────■─────────■────■── + │ ┌───┐ │ ┌───┐ │ ┌─┴─┐ + q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├ + ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘ + q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■── + └───┘ └───┘ └───┘ + ``` + **Returns** template as a quantum circuit. @@ -551,7 +761,19 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_7a\_1 - + + Template 7a\_1: + + ```python + ┌───┐ ┌───┐ + q_0: ┤ X ├──■─────────■────■──┤ X ├──■── + └─┬─┘┌─┴─┐ │ ┌─┴─┐└─┬─┘ │ + q_1: ──■──┤ X ├──■────■──┤ X ├──■────■── + └───┘┌─┴─┐┌─┴─┐└───┘ ┌─┴─┐ + q_2: ──────────┤ X ├┤ X ├──────────┤ X ├ + └───┘└───┘ └───┘ + ``` + **Returns** template as a quantum circuit. @@ -563,7 +785,19 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_7b\_1 - + + Template 7b\_1: + + ```python + ┌───┐ ┌───┐ + q_0: ┤ X ├──■─────────■────■──┤ X ├──■── + └───┘┌─┴─┐ │ ┌─┴─┐└───┘ │ + q_1: ─────┤ X ├──■────■──┤ X ├───────■── + └───┘┌─┴─┐┌─┴─┐└───┘ ┌─┴─┐ + q_2: ──────────┤ X ├┤ X ├──────────┤ X ├ + └───┘└───┘ └───┘ + ``` + **Returns** template as a quantum circuit. @@ -575,7 +809,19 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_7c\_1 - + + Template 7c\_1: + + ```python + ┌───┐ ┌───┐ + q_0: ┤ X ├──■─────────■────■──┤ X ├──■── + └───┘┌─┴─┐ │ ┌─┴─┐└───┘ │ + q_1: ─────┤ X ├──■────■──┤ X ├───────■── + └─┬─┘┌─┴─┐┌─┴─┐└─┬─┘ ┌─┴─┐ + q_2: ───────■──┤ X ├┤ X ├──■───────┤ X ├ + └───┘└───┘ └───┘ + ``` + **Returns** template as a quantum circuit. @@ -587,7 +833,19 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_7d\_1 - + + Template 7d\_1: + + ```python + ┌───┐ ┌───┐ + q_0: ┤ X ├──■─────────■────■──┤ X ├──■── + └─┬─┘┌─┴─┐ │ ┌─┴─┐└─┬─┘ │ + q_1: ──■──┤ X ├──■────■──┤ X ├──■────■── + └─┬─┘┌─┴─┐┌─┴─┐└─┬─┘ ┌─┴─┐ + q_2: ───────■──┤ X ├┤ X ├──■───────┤ X ├ + └───┘└───┘ └───┘ + ``` + **Returns** template as a quantum circuit. @@ -599,7 +857,19 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_7e\_1 - + + Template 7e\_1: + + ```python + ┌───┐ ┌───┐ + q_0: ┤ X ├──■─────────■────■──┤ X ├──■── + └───┘┌─┴─┐ │ ┌─┴─┐└───┘ │ + q_1: ─────┤ X ├───────┼──┤ X ├───────┼── + └─┬─┘┌───┐┌─┴─┐└─┬─┘ ┌─┴─┐ + q_2: ───────■──┤ X ├┤ X ├──■───────┤ X ├ + └───┘└───┘ └───┘ + ``` + **Returns** template as a quantum circuit. @@ -611,7 +881,19 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_9a\_1 - + + Template 9a\_1: + + ```python + ┌───┐ ┌───┐ ┌───┐ + q_0: ┤ X ├──■──┤ X ├──■────■──┤ X ├──■── + └─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐ + q_1: ──■──┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├ + └─┬─┘ │ ├───┤└─┬─┘┌───┐└─┬─┘ + q_2: ───────■────■──┤ X ├──■──┤ X ├──■── + └───┘ └───┘ + ``` + **Returns** template as a quantum circuit. @@ -623,7 +905,17 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_9c\_1 - + + Template 9c\_1: + + ```python + ┌───┐ ┌───┐┌───┐ ┌───┐ ┌───┐ + q_0: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├ + └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘ + q_1: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■── + └───┘ └───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -635,7 +927,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_9c\_2 - + + Template 9c\_2: + + ```python + q_0: ───────■────■──────────────■────■─────────■── + ┌───┐ │ ┌─┴─┐┌───┐ ┌─┴─┐ │ ┌─┴─┐ + q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├ + └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘ + q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■── + └───┘ └───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -647,7 +950,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_9c\_3 - + + Template 9c\_3: + + ```python + q_0: ───────■────────────────────────■──────────── + ┌───┐ │ ┌───┐┌───┐ ┌───┐ │ ┌───┐ + q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├ + └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘ + q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■── + └───┘ └───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -659,7 +973,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_9c\_4 - + + Template 9c\_4: + + ```python + q_0: ──■────■─────────■──────────────■──────────── + ┌─┴─┐ │ ┌───┐┌─┴─┐ ┌───┐ │ ┌───┐ + q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├ + └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘ + q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■── + └───┘ └───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -671,7 +996,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_9c\_5 - + + Template 9c\_5: + + ```python + q_0: ────────────■─────────■──────────────■─────── + ┌───┐ ┌─┴─┐┌───┐ │ ┌───┐ │ ┌───┐ + q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├ + └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘ + q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■── + └───┘ └───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -683,7 +1019,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_9c\_6 - + + Template 9c\_6: + + ```python + q_0: ───────■────■─────────■─────────■────■─────── + ┌───┐ │ ┌─┴─┐┌───┐ │ ┌───┐ │ │ ┌───┐ + q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├ + └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘ + q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■── + └───┘ └───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -695,7 +1042,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_9c\_7 - + + Template 9c\_7: + + ```python + q_0: ──■────■────■────■────■─────────■────■─────── + ┌─┴─┐ │ ┌─┴─┐┌─┴─┐ │ ┌───┐ │ │ ┌───┐ + q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├ + └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘ + q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■── + └───┘ └───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -707,7 +1065,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_9c\_8 - + + Template 9c\_8: + + ```python + q_0: ──■─────────■────■─────────■──────────────■── + ┌─┴─┐ ┌─┴─┐┌─┴─┐ ┌─┴─┐ ┌─┴─┐ + q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├ + └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘ + q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■── + └───┘ └───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -719,7 +1088,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_9c\_9 - + + Template 9c\_9: + + ```python + q_0: ──■────■────■────■─────────■────■─────────■── + ┌─┴─┐ │ ┌─┴─┐┌─┴─┐ ┌─┴─┐ │ ┌─┴─┐ + q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├ + └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘ + q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■── + └───┘ └───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -731,7 +1111,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_9c\_10 - + + Template 9c\_10: + + ```python + q_0: ──■─────────■────■────■────■─────────■────■── + ┌─┴─┐ ┌─┴─┐┌─┴─┐ │ ┌─┴─┐ │ ┌─┴─┐ + q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├ + └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘ + q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■── + └───┘ └───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -743,7 +1134,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_9c\_11 - + + Template 9c\_11: + + ```python + q_0: ───────■────■─────────■────■────■────■────■── + ┌───┐ │ ┌─┴─┐┌───┐ │ ┌─┴─┐ │ │ ┌─┴─┐ + q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├ + └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘ + q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■── + └───┘ └───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -755,7 +1157,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_9c\_12 - + + Template 9c\_12: + + ```python + q_0: ──■────■────■────■────■────■────■────■────■── + ┌─┴─┐ │ ┌─┴─┐┌─┴─┐ │ ┌─┴─┐ │ │ ┌─┴─┐ + q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├ + └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘ + q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■── + └───┘ └───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -767,7 +1180,17 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_9d\_1 - + + Template 9d\_1: + + ```python + ┌───┐ ┌───┐ ┌───┐ + q_0: ──■───────┤ X ├───────■──┤ X ├───────■──┤ X ├ + ┌─┴─┐┌───┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘ + q_1: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■── + └───┘└───┘ └───┘└───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -779,7 +1202,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_9d\_2 - + + Template 9d\_2: + + ```python + q_0: ──■────■────■──────────────■──────────────■── + │ │ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ + q_1: ──■────┼──┤ X ├───────■──┤ X ├───────■──┤ X ├ + ┌─┴─┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘ + q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■── + └───┘└───┘ └───┘└───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -791,7 +1225,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_9d\_3 - + + Template 9d\_3: + + ```python + q_0: ──■────■───────────────────■───────────────── + │ │ ┌───┐ ┌─┴─┐ ┌───┐ + q_1: ──■────┼──┤ X ├───────■──┤ X ├───────■──┤ X ├ + ┌─┴─┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘ + q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■── + └───┘└───┘ └───┘└───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -803,7 +1248,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_9d\_4 - + + Template 9d\_4: + + ```python + q_0: ───────■─────────■──────────────■──────────── + │ ┌───┐ │ ┌───┐ │ ┌───┐ + q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├ + ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘ + q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■── + └───┘└───┘ └───┘└───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -815,7 +1271,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_9d\_5 - + + Template 9d\_5: + + ```python + q_0: ──■────■─────────■─────────■────■──────────── + │ │ ┌───┐ │ ┌─┴─┐ │ ┌───┐ + q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├ + ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘ + q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■── + └───┘└───┘ └───┘└───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -827,7 +1294,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_9d\_6 - + + Template 9d\_6: + + ```python + q_0: ──■────■──────────────■────■─────────■─────── + │ │ ┌───┐ │ ┌─┴─┐ │ ┌───┐ + q_1: ──■────┼──┤ X ├───────■──┤ X ├───────■──┤ X ├ + ┌─┴─┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘ + q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■── + └───┘└───┘ └───┘└───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -839,7 +1317,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_9d\_7 - + + Template 9d\_7: + + ```python + q_0: ──■────■─────────■────■────■────■────■─────── + │ │ ┌───┐ │ │ ┌─┴─┐ │ │ ┌───┐ + q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├ + ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘ + q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■── + └───┘└───┘ └───┘└───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -851,7 +1340,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_9d\_8 - + + Template 9d\_8: + + ```python + q_0: ──■────■────■────■─────────■────■─────────■── + │ │ ┌─┴─┐ │ ┌─┴─┐ │ ┌─┴─┐ + q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├ + ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘ + q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■── + └───┘└───┘ └───┘└───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -863,7 +1363,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_9d\_9 - + + Template 9d\_9: + + ```python + q_0: ──■────■────■─────────■────■─────────■────■── + │ │ ┌─┴─┐ │ ┌─┴─┐ │ ┌─┴─┐ + q_1: ──■────┼──┤ X ├───────■──┤ X ├───────■──┤ X ├ + ┌─┴─┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘ + q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■── + └───┘└───┘ └───┘└───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -875,7 +1386,18 @@ Template circuits for [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.lib #### template\_nct\_9d\_10 - + + Template 9d\_10: + + ```python + q_0: ──■────■────■────■────■────■────■────■────■── + │ │ ┌─┴─┐ │ │ ┌─┴─┐ │ │ ┌─┴─┐ + q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├ + ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘ + q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■── + └───┘└───┘ └───┘└───┘ └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -891,7 +1413,15 @@ Template circuits over Clifford gates. #### clifford\_2\_1 - + + Clifford template 2\_1: + + ```python + q_0: ─■──■─ + │ │ + q_1: ─■──■─ + ``` + **Returns** template as a quantum circuit. @@ -903,7 +1433,16 @@ Template circuits over Clifford gates. #### clifford\_2\_2 - + + Clifford template 2\_2: + + ```python + q_0: ──■────■── + ┌─┴─┐┌─┴─┐ + q_1: ┤ X ├┤ X ├ + └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -915,7 +1454,15 @@ Template circuits over Clifford gates. #### clifford\_2\_3 - + + Clifford template 2\_3: + + ```python + ┌───┐┌───┐ + q_0: ┤ H ├┤ H ├ + └───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -927,7 +1474,15 @@ Template circuits over Clifford gates. #### clifford\_2\_4 - + + Clifford template 2\_4: + + ```python + q_0: ─X──X─ + │ │ + q_1: ─X──X─ + ``` + **Returns** template as a quantum circuit. @@ -939,7 +1494,15 @@ Template circuits over Clifford gates. #### clifford\_3\_1 - + + Clifford template 3\_1: + + ```python + ┌───┐┌───┐┌───┐ + q_0: ┤ S ├┤ S ├┤ Z ├ + └───┘└───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -951,7 +1514,17 @@ Template circuits over Clifford gates. #### clifford\_4\_1 - + + Clifford template 4\_1: + + ```python + ┌───┐ + q_0: ──■──┤ X ├──■───X─ + ┌─┴─┐└─┬─┘┌─┴─┐ │ + q_1: ┤ X ├──■──┤ X ├─X─ + └───┘ └───┘ + ``` + **Returns** template as a quantum circuit. @@ -963,7 +1536,16 @@ Template circuits over Clifford gates. #### clifford\_4\_2 - + + Clifford template 4\_2: + + ```python + q_0: ───────■────────■─ + ┌───┐┌─┴─┐┌───┐ │ + q_1: ┤ H ├┤ X ├┤ H ├─■─ + └───┘└───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -975,7 +1557,17 @@ Template circuits over Clifford gates. #### clifford\_4\_3 - + + Clifford template 4\_3: + + ```python + ┌───┐ ┌─────┐ + q_0: ┤ S ├──■──┤ SDG ├──■── + └───┘┌─┴─┐└─────┘┌─┴─┐ + q_1: ─────┤ X ├───────┤ X ├ + └───┘ └───┘ + ``` + **Returns** template as a quantum circuit. @@ -987,7 +1579,16 @@ Template circuits over Clifford gates. #### clifford\_4\_4 - + + Clifford template 4\_4: + + ```python + ┌───┐ ┌─────┐ + q_0: ┤ S ├─■─┤ SDG ├─■─ + └───┘ │ └─────┘ │ + q_1: ──────■─────────■─ + ``` + **Returns** template as a quantum circuit. @@ -999,7 +1600,18 @@ Template circuits over Clifford gates. #### clifford\_5\_1 - + + Clifford template 5\_1: + + > ```python + > q_0: ──■─────────■─────────■── + > ┌─┴─┐ ┌─┴─┐ │ + > q_1: ┤ X ├──■──┤ X ├──■────┼── + > └───┘┌─┴─┐└───┘┌─┴─┐┌─┴─┐ + > q_2: ─────┤ X ├─────┤ X ├┤ X ├ + > └───┘ └───┘└───┘ + > ``` + **Returns** template as a quantum circuit. @@ -1011,7 +1623,17 @@ Template circuits over Clifford gates. #### clifford\_6\_1 - + + Clifford template 6\_1: + + > ```python + > ┌───┐ ┌───┐┌───┐ + > q_0: ┤ H ├──■──┤ H ├┤ X ├ + > ├───┤┌─┴─┐├───┤└─┬─┘ + > q_1: ┤ H ├┤ X ├┤ H ├──■── + > └───┘└───┘└───┘ + > ``` + **Returns** template as a quantum circuit. @@ -1023,7 +1645,17 @@ Template circuits over Clifford gates. #### clifford\_6\_2 - + + Clifford template 6\_2: + + > ```python + > ┌───┐ + > q_0: ┤ S ├──■───────────■───■─ + > ├───┤┌─┴─┐┌─────┐┌─┴─┐ │ + > q_1: ┤ S ├┤ X ├┤ SDG ├┤ X ├─■─ + > └───┘└───┘└─────┘└───┘ + > ``` + **Returns** template as a quantum circuit. @@ -1035,7 +1667,17 @@ Template circuits over Clifford gates. #### clifford\_6\_3 - + + Clifford template 6\_3: + + ```python + ┌───┐ ┌───┐ + q_0: ─X──■─┤ H ├──■──┤ X ├───── + │ │ └───┘┌─┴─┐└─┬─┘┌───┐ + q_1: ─X──■──────┤ X ├──■──┤ H ├ + └───┘ └───┘ + ``` + **Returns** template as a quantum circuit. @@ -1047,7 +1689,15 @@ Template circuits over Clifford gates. #### clifford\_6\_4 - + + Clifford template 6\_4: + + ```python + ┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐ + q_0: ┤ S ├┤ H ├┤ S ├┤ H ├┤ S ├┤ H ├ + └───┘└───┘└───┘└───┘└───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -1059,7 +1709,17 @@ Template circuits over Clifford gates. #### clifford\_6\_5 - + + Clifford template 6\_5: + + ```python + ┌───┐ + q_0: ─■───■───┤ S ├───■─────── + │ ┌─┴─┐┌┴───┴┐┌─┴─┐┌───┐ + q_1: ─■─┤ X ├┤ SDG ├┤ X ├┤ S ├ + └───┘└─────┘└───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -1071,7 +1731,17 @@ Template circuits over Clifford gates. #### clifford\_8\_1 - + + Clifford template 8\_1: + + ```python + ┌───┐ ┌───┐ ┌───┐┌─────┐ + q_0: ──■───────┤ X ├─┤ S ├─┤ X ├┤ SDG ├ + ┌─┴─┐┌───┐└─┬─┘┌┴───┴┐└─┬─┘└┬───┬┘ + q_1: ┤ X ├┤ H ├──■──┤ SDG ├──■───┤ H ├─ + └───┘└───┘ └─────┘ └───┘ + ``` + **Returns** template as a quantum circuit. @@ -1083,7 +1753,17 @@ Template circuits over Clifford gates. #### clifford\_8\_2 - + + Clifford template 8\_2: + + ```python + ┌───┐ + q_0: ──■─────────■───┤ S ├───■──────────── + ┌─┴─┐┌───┐┌─┴─┐┌┴───┴┐┌─┴─┐┌───┐┌───┐ + q_1: ┤ X ├┤ H ├┤ X ├┤ SDG ├┤ X ├┤ S ├┤ H ├ + └───┘└───┘└───┘└─────┘└───┘└───┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -1095,7 +1775,16 @@ Template circuits over Clifford gates. #### clifford\_8\_3 - + + Clifford template 8\_3: + + ```python + q_0: ─────────────────■───────────────────────■── + ┌───┐┌───┐┌───┐┌─┴─┐┌─────┐┌───┐┌─────┐┌─┴─┐ + q_1: ┤ S ├┤ H ├┤ S ├┤ X ├┤ SDG ├┤ H ├┤ SDG ├┤ X ├ + └───┘└───┘└───┘└───┘└─────┘└───┘└─────┘└───┘ + ``` + **Returns** template as a quantum circuit. @@ -1111,37 +1800,110 @@ Template circuits with [`RZXGate`](qiskit.circuit.library.RZXGate "qiskit.circui #### rzx\_yz - - Template for CX - RYGate - CX. + + RZX-based template for CX - RYGate - CX. + + ```python + ┌────────┐ ┌─────────┐┌─────────┐┌──────────┐ + q_0: ──■──┤ RY(-ϴ) ├──■──┤ RX(π/2) ├┤0 ├┤ RX(-π/2) ├ + ┌─┴─┐└────────┘┌─┴─┐└─────────┘│ RZX(ϴ) │└──────────┘ + q_1: ┤ X ├──────────┤ X ├───────────┤1 ├──────────── + └───┘ └───┘ └─────────┘ + ``` #### rzx\_xz - - Template for CX - RXGate - CX. + + RZX-based template for CX - RXGate - CX. + + ```python + ┌───┐ ┌───┐┌─────────┐┌─────────┐┌─────────┐┌──────────┐» + q_0: ┤ X ├─────────┤ X ├┤ RZ(π/2) ├┤ RX(π/2) ├┤ RZ(π/2) ├┤0 ├» + └─┬─┘┌───────┐└─┬─┘└─────────┘└─────────┘└─────────┘│ RZX(-ϴ) │» + q_1: ──■──┤ RX(ϴ) ├──■───────────────────────────────────┤1 ├» + └───────┘ └──────────┘» + « ┌─────────┐┌─────────┐┌─────────┐ + «q_0: ┤ RZ(π/2) ├┤ RX(π/2) ├┤ RZ(π/2) ├ + « └─────────┘└─────────┘└─────────┘ + «q_1: ───────────────────────────────── + « + ``` #### rzx\_cy - - Template for CX - RYGate - CX. + + RZX-based template for CX - RYGate - CX. + + ```python + ┌──────────┐ + q_0: ──■─────────────■─────────────────────────────────┤0 ├─────────── + ┌─┴─┐┌───────┐┌─┴─┐┌────────┐┌──────────┐┌───────┐│ RZX(-ϴ) │┌─────────┐ + q_1: ┤ X ├┤ RY(ϴ) ├┤ X ├┤ RY(-ϴ) ├┤ RZ(-π/2) ├┤ RX(ϴ) ├┤1 ├┤ RZ(π/2) ├ + └───┘└───────┘└───┘└────────┘└──────────┘└───────┘└──────────┘└─────────┘ + ``` #### rzx\_zz1 - - Template for CX - RZGate - CX. + + RZX-based template for CX - RZGate - CX. + + ```python + » + q_0: ──■────────────────────────────────────────────■───────────────────────» + ┌─┴─┐┌───────┐┌────┐┌───────┐┌────┐┌────────┐┌─┴─┐┌────────┐┌─────────┐» + q_1: ┤ X ├┤ RZ(ϴ) ├┤ √X ├┤ RZ(π) ├┤ √X ├┤ RZ(3π) ├┤ X ├┤ RZ(-ϴ) ├┤ RZ(π/2) ├» + └───┘└───────┘└────┘└───────┘└────┘└────────┘└───┘└────────┘└─────────┘» + « ┌──────────┐ » + «q_0: ───────────────────────────────┤0 ├──────────────────────» + « ┌─────────┐┌─────────┐┌───────┐│ RZX(-ϴ) │┌─────────┐┌─────────┐» + «q_1: ┤ RX(π/2) ├┤ RZ(π/2) ├┤ RX(ϴ) ├┤1 ├┤ RZ(π/2) ├┤ RX(π/2) ├» + « └─────────┘└─────────┘└───────┘└──────────┘└─────────┘└─────────┘» + « + «q_0: ─────────── + « ┌─────────┐ + «q_1: ┤ RZ(π/2) ├ + « └─────────┘ + ``` #### rzx\_zz2 - - Template for CX - RZGate - CX. + + RZX-based template for CX - PhaseGate - CX. + + ```python + » + q_0: ──■────────────■─────────────────────────────────────────────────────» + ┌─┴─┐┌──────┐┌─┴─┐┌───────┐┌─────────┐┌─────────┐┌─────────┐┌───────┐» + q_1: ┤ X ├┤ P(ϴ) ├┤ X ├┤ P(-ϴ) ├┤ RZ(π/2) ├┤ RX(π/2) ├┤ RZ(π/2) ├┤ RX(ϴ) ├» + └───┘└──────┘└───┘└───────┘└─────────┘└─────────┘└─────────┘└───────┘» + « ┌──────────┐ + «q_0: ┤0 ├───────────────────────────────── + « │ RZX(-ϴ) │┌─────────┐┌─────────┐┌─────────┐ + «q_1: ┤1 ├┤ RZ(π/2) ├┤ RX(π/2) ├┤ RZ(π/2) ├ + « └──────────┘└─────────┘└─────────┘└─────────┘ + ``` #### rzx\_zz3 - - Template for CX - RZGate - CX. + + RZX-based template for CX - RZGate - CX. + + ```python + » + q_0: ──■─────────────■──────────────────────────────────────────────────────» + ┌─┴─┐┌───────┐┌─┴─┐┌────────┐┌─────────┐┌─────────┐┌─────────┐┌───────┐» + q_1: ┤ X ├┤ RZ(ϴ) ├┤ X ├┤ RZ(-ϴ) ├┤ RZ(π/2) ├┤ RX(π/2) ├┤ RZ(π/2) ├┤ RX(ϴ) ├» + └───┘└───────┘└───┘└────────┘└─────────┘└─────────┘└─────────┘└───────┘» + « ┌──────────┐ + «q_0: ┤0 ├───────────────────────────────── + « │ RZX(-ϴ) │┌─────────┐┌─────────┐┌─────────┐ + «q_1: ┤1 ├┤ RZ(π/2) ├┤ RX(π/2) ├┤ RZ(π/2) ├ + « └──────────┘└─────────┘└─────────┘└─────────┘ + ``` diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.C3SXGate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.C3SXGate.mdx index 152b8013282..373fcc458df 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.C3SXGate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.C3SXGate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.C3SXGate # C3SXGate - + Bases: [`SingletonControlledGate`](circuit_singleton#qiskit.circuit.singleton.SingletonControlledGate "qiskit.circuit.singleton.SingletonControlledGate") The 3-qubit controlled sqrt-X gate. diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.C3XGate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.C3XGate.mdx index 360cc9d69c2..77f0eed4f05 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.C3XGate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.C3XGate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.C3XGate # C3XGate - + Bases: [`SingletonControlledGate`](circuit_singleton#qiskit.circuit.singleton.SingletonControlledGate "qiskit.circuit.singleton.SingletonControlledGate") The X gate controlled on 3 qubits. @@ -162,7 +162,7 @@ python_api_name: qiskit.circuit.library.C3XGate ### control - + Controlled version of this gate. **Parameters** @@ -183,7 +183,7 @@ python_api_name: qiskit.circuit.library.C3XGate ### inverse - + Invert this gate. The C3X is its own inverse. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.C4XGate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.C4XGate.mdx index 843a5ee8832..0ab0e60e957 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.C4XGate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.C4XGate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.C4XGate # C4XGate - + Bases: [`SingletonControlledGate`](circuit_singleton#qiskit.circuit.singleton.SingletonControlledGate "qiskit.circuit.singleton.SingletonControlledGate") The 4-qubit controlled X gate. @@ -167,7 +167,7 @@ python_api_name: qiskit.circuit.library.C4XGate ### control - + Controlled version of this gate. **Parameters** @@ -188,7 +188,7 @@ python_api_name: qiskit.circuit.library.C4XGate ### inverse - + Invert this gate. The C4X is its own inverse. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.CCXGate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.CCXGate.mdx index d040330c0b6..347f6783e91 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.CCXGate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.CCXGate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.CCXGate # CCXGate - + Bases: [`SingletonControlledGate`](circuit_singleton#qiskit.circuit.singleton.SingletonControlledGate "qiskit.circuit.singleton.SingletonControlledGate") CCX gate, also known as Toffoli gate. @@ -218,7 +218,7 @@ $$ ### control - + Controlled version of this gate. **Parameters** @@ -239,7 +239,7 @@ $$ ### inverse - + Return an inverted CCX gate (also a CCX). **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.CHGate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.CHGate.mdx index 08e3f3ed467..4deca7e59ec 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.CHGate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.CHGate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.CHGate # CHGate - + Bases: [`SingletonControlledGate`](circuit_singleton#qiskit.circuit.singleton.SingletonControlledGate "qiskit.circuit.singleton.SingletonControlledGate") Controlled-Hadamard gate. @@ -208,7 +208,7 @@ $$ ### inverse - + Return inverted CH gate (itself). diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.CRXGate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.CRXGate.mdx index 8be7c891279..8ab64ff6280 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.CRXGate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.CRXGate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.CRXGate # CRXGate - + Bases: [`ControlledGate`](qiskit.circuit.ControlledGate "qiskit.circuit.controlledgate.ControlledGate") Controlled-RX gate. @@ -210,7 +210,7 @@ $$ ### inverse - + Return inverse CRX gate (i.e. with the negative rotation angle). **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.CRYGate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.CRYGate.mdx index 36be5661722..f600012e350 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.CRYGate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.CRYGate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.CRYGate # CRYGate - + Bases: [`ControlledGate`](qiskit.circuit.ControlledGate "qiskit.circuit.controlledgate.ControlledGate") Controlled-RY gate. @@ -210,7 +210,7 @@ $$ ### inverse - + Return inverse CRY gate (i.e. with the negative rotation angle) **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.CRZGate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.CRZGate.mdx index dc5e801e738..dc9793a8835 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.CRZGate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.CRZGate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.CRZGate # CRZGate - + Bases: [`ControlledGate`](qiskit.circuit.ControlledGate "qiskit.circuit.controlledgate.ControlledGate") Controlled-RZ gate. @@ -212,7 +212,7 @@ $$ ### inverse - + Return inverse CRZ gate (i.e. with the negative rotation angle). **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.CSXGate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.CSXGate.mdx index d0e33d774ae..5e32be34e56 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.CSXGate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.CSXGate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.CSXGate # CSXGate - + Bases: [`SingletonControlledGate`](circuit_singleton#qiskit.circuit.singleton.SingletonControlledGate "qiskit.circuit.singleton.SingletonControlledGate") Controlled-√X gate. diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.CU3Gate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.CU3Gate.mdx index bd2813de66a..b563d98dabb 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.CU3Gate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.CU3Gate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.CU3Gate # CU3Gate - + Bases: [`ControlledGate`](qiskit.circuit.ControlledGate "qiskit.circuit.controlledgate.ControlledGate") Controlled-U3 gate (3-parameter two-qubit gate). @@ -226,7 +226,7 @@ $$ ### inverse - + Return inverted CU3 gate. $CU3(\theta,\phi,\lambda)^{\dagger} =CU3(-\theta,-\phi,-\lambda))$ diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.CUGate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.CUGate.mdx index d8cc6e002de..cdd6f779256 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.CUGate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.CUGate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.CUGate # CUGate - + Bases: [`ControlledGate`](qiskit.circuit.ControlledGate "qiskit.circuit.controlledgate.ControlledGate") Controlled-U gate (4-parameter two-qubit gate). @@ -202,7 +202,7 @@ $$ ### inverse - + Return inverted CU gate. $CU(\theta,\phi,\lambda,\gamma)^{\dagger} = CU(-\theta,-\phi,-\lambda,-\gamma))$ diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.CXGate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.CXGate.mdx index 60f60d90ed4..d67e68f5794 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.CXGate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.CXGate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.CXGate # CXGate - + Bases: [`SingletonControlledGate`](circuit_singleton#qiskit.circuit.singleton.SingletonControlledGate "qiskit.circuit.singleton.SingletonControlledGate") Controlled-X gate. @@ -214,7 +214,7 @@ $$ ### control - + Return a controlled-X gate with more control lines. **Parameters** @@ -235,7 +235,7 @@ $$ ### inverse - + Return inverted CX gate (itself). **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.CYGate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.CYGate.mdx index 637ac364078..bf53437c129 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.CYGate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.CYGate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.CYGate # CYGate - + Bases: [`SingletonControlledGate`](circuit_singleton#qiskit.circuit.singleton.SingletonControlledGate "qiskit.circuit.singleton.SingletonControlledGate") Controlled-Y gate. @@ -206,7 +206,7 @@ $$ ### inverse - + Return inverted CY gate (itself). **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.DCXGate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.DCXGate.mdx index 63f41dd8076..dda61f5ef67 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.DCXGate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.DCXGate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.DCXGate # DCXGate - + Bases: [`SingletonGate`](circuit_singleton#qiskit.circuit.singleton.SingletonGate "qiskit.circuit.singleton.SingletonGate") Double-CNOT gate. diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.IGate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.IGate.mdx index 016b5d4f9ad..d11d457a1ef 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.IGate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.IGate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.IGate # IGate - + Bases: [`SingletonGate`](circuit_singleton#qiskit.circuit.singleton.SingletonGate "qiskit.circuit.singleton.SingletonGate") Identity gate. @@ -145,7 +145,7 @@ $$ ### inverse - + Returne the inverse gate (itself). **Parameters** @@ -165,7 +165,7 @@ $$ ### power - + Raise this gate to the power of `exponent`. Implemented either as a unitary gate (ref. [`UnitaryGate`](qiskit.circuit.library.UnitaryGate "qiskit.circuit.library.UnitaryGate")) or as an annotated operation (ref. [`AnnotatedOperation`](qiskit.circuit.AnnotatedOperation "qiskit.circuit.AnnotatedOperation")). In the case of several standard gates, such as [`RXGate`](qiskit.circuit.library.RXGate "qiskit.circuit.library.RXGate"), when the power of a gate can be expressed in terms of another standard gate that is returned directly. diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.MCXGate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.MCXGate.mdx index a937c599e2e..2a1c9dbe27c 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.MCXGate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.MCXGate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.MCXGate # MCXGate - + Bases: [`ControlledGate`](qiskit.circuit.ControlledGate "qiskit.circuit.controlledgate.ControlledGate") The general, multi-controlled X gate. @@ -168,7 +168,7 @@ python_api_name: qiskit.circuit.library.MCXGate ### control - + Return a multi-controlled-X gate with more control lines. **Parameters** @@ -189,7 +189,7 @@ python_api_name: qiskit.circuit.library.MCXGate ### get\_num\_ancilla\_qubits - + Get the number of required ancilla qubits without instantiating the class. This staticmethod might be necessary to check the number of ancillas before creating the gate, or to use the number of ancillas in the initialization. @@ -205,7 +205,7 @@ python_api_name: qiskit.circuit.library.MCXGate ### inverse - + Invert this gate. The MCX is its own inverse. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.MCXGrayCode.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.MCXGrayCode.mdx index 0c0ef5d6f4d..04302a0681a 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.MCXGrayCode.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.MCXGrayCode.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.MCXGrayCode # MCXGrayCode - + Bases: [`MCXGate`](qiskit.circuit.library.MCXGate "qiskit.circuit.library.standard_gates.x.MCXGate") Implement the multi-controlled X gate using the Gray code. @@ -170,7 +170,7 @@ python_api_name: qiskit.circuit.library.MCXGrayCode ### inverse - + Invert this gate. The MCX is its own inverse. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.MCXRecursive.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.MCXRecursive.mdx index 9db773d4aed..e95deaa18f2 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.MCXRecursive.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.MCXRecursive.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.MCXRecursive # MCXRecursive - + Bases: [`MCXGate`](qiskit.circuit.library.MCXGate "qiskit.circuit.library.standard_gates.x.MCXGate") Implement the multi-controlled X gate using recursion. @@ -177,13 +177,13 @@ python_api_name: qiskit.circuit.library.MCXRecursive ### get\_num\_ancilla\_qubits - + Get the number of required ancilla qubits. ### inverse - + Invert this gate. The MCX is its own inverse. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.MCXVChain.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.MCXVChain.mdx index 71c63c306de..940c10001f5 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.MCXVChain.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.MCXVChain.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.MCXVChain # MCXVChain - + Bases: [`MCXGate`](qiskit.circuit.library.MCXGate "qiskit.circuit.library.standard_gates.x.MCXGate") Implement the multi-controlled X gate using a V-chain of CX gates. @@ -174,13 +174,13 @@ python_api_name: qiskit.circuit.library.MCXVChain ### get\_num\_ancilla\_qubits - + Get the number of required ancilla qubits. ### inverse - + Invert this gate. The MCX is its own inverse. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.RC3XGate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.RC3XGate.mdx index 8611a2bb4e6..8981c2e1825 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.RC3XGate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.RC3XGate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.RC3XGate # RC3XGate - + Bases: [`SingletonGate`](circuit_singleton#qiskit.circuit.singleton.SingletonGate "qiskit.circuit.singleton.SingletonGate") The simplified 3-controlled Toffoli gate. diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.RCCXGate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.RCCXGate.mdx index dfab3a96b88..78aa0a29ec9 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.RCCXGate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.RCCXGate.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.RCCXGate # RCCXGate - + Bases: [`SingletonGate`](circuit_singleton#qiskit.circuit.singleton.SingletonGate "qiskit.circuit.singleton.SingletonGate") The simplified Toffoli gate, also referred to as Margolus gate. diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.RealAmplitudes.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.RealAmplitudes.mdx index a2a13780883..b82c5013a6f 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.RealAmplitudes.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.RealAmplitudes.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.RealAmplitudes # RealAmplitudes - + Bases: [`TwoLocal`](qiskit.circuit.library.TwoLocal "qiskit.circuit.library.n_local.two_local.TwoLocal") The real-amplitudes 2-local circuit. diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.ZZFeatureMap.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.ZZFeatureMap.mdx index ac3942a23f6..b2a5cef52fc 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.ZZFeatureMap.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.ZZFeatureMap.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.library.ZZFeatureMap # ZZFeatureMap - + Bases: [`PauliFeatureMap`](qiskit.circuit.library.PauliFeatureMap "qiskit.circuit.library.data_preparation.pauli_feature_map.PauliFeatureMap") Second-order Pauli-Z evolution circuit. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.MergeAdjacentBarriers.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.MergeAdjacentBarriers.mdx index 96f588ffbe0..42f52246ed8 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.MergeAdjacentBarriers.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.MergeAdjacentBarriers.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.MergeAdjacentBarriers # MergeAdjacentBarriers - + Bases: [`TransformationPass`](qiskit.transpiler.TransformationPass "qiskit.transpiler.basepasses.TransformationPass") Return a circuit with any adjacent barriers merged together. @@ -102,7 +102,7 @@ python_api_name: qiskit.transpiler.passes.MergeAdjacentBarriers ### run - + Run the MergeAdjacentBarriers pass on dag. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.UnitarySynthesis.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.UnitarySynthesis.mdx index d3bc54ee87c..afbe3a46cd1 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.UnitarySynthesis.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.UnitarySynthesis.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.UnitarySynthesis # UnitarySynthesis - + Bases: [`TransformationPass`](qiskit.transpiler.TransformationPass "qiskit.transpiler.basepasses.TransformationPass") Synthesize gates according to their basis gates. @@ -87,7 +87,7 @@ python_api_name: qiskit.transpiler.passes.UnitarySynthesis ### run - + Run the UnitarySynthesis pass on `dag`. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.unitary_synthesis.DefaultUnitarySynthesis.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.unitary_synthesis.DefaultUnitarySynthesis.mdx index 094e4a4c7aa..c465476c512 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.unitary_synthesis.DefaultUnitarySynthesis.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.unitary_synthesis.DefaultUnitarySynthesis.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.unitary_synthesis.DefaultUni # DefaultUnitarySynthesis - + Bases: [`UnitarySynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.UnitarySynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.UnitarySynthesisPlugin") The default unitary synthesis plugin. @@ -67,7 +67,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.unitary_synthesis.DefaultUni ### run - + Run synthesis for the given unitary matrix **Parameters** diff --git a/docs/api/qiskit/dev/synthesis.mdx b/docs/api/qiskit/dev/synthesis.mdx index 537085a0f16..d8e2c7ca3b4 100644 --- a/docs/api/qiskit/dev/synthesis.mdx +++ b/docs/api/qiskit/dev/synthesis.mdx @@ -395,7 +395,7 @@ python_api_name: qiskit.synthesis ### synth\_clifford\_layers - + Synthesis of a [`Clifford`](qiskit.quantum_info.Clifford "qiskit.quantum_info.Clifford") into layers, it provides a similar decomposition to the synthesis described in Lemma 8 of Bravyi and Maslov \[1]. For example, a 5-qubit Clifford circuit is decomposed into the following layers: @@ -440,7 +440,7 @@ python_api_name: qiskit.synthesis ### synth\_clifford\_depth\_lnn - + Synthesis of a [`Clifford`](qiskit.quantum_info.Clifford "qiskit.quantum_info.Clifford") into layers for linear-nearest neighbor connectivity. The depth of the synthesized n-qubit circuit is bounded by $7n+2$, which is not optimal. It should be replaced by a better algorithm that provides depth bounded by $7n-4$ \[3]. @@ -549,7 +549,7 @@ python_api_name: qiskit.synthesis ### synth\_stabilizer\_layers - + Synthesis of a stabilizer state into layers. It provides a similar decomposition to the synthesis described in Lemma 8 of reference \[1], without the initial Hadamard-free sub-circuit which do not affect the stabilizer state. @@ -596,7 +596,7 @@ python_api_name: qiskit.synthesis ### synth\_stabilizer\_depth\_lnn - + Synthesis of an n-qubit stabilizer state for linear-nearest neighbor connectivity, in 2-qubit depth $2n+2$ and two distinct CX layers, using [`CXGate`](qiskit.circuit.library.CXGate "qiskit.circuit.library.CXGate")s and phase gates ([`SGate`](qiskit.circuit.library.SGate "qiskit.circuit.library.SGate"), [`SdgGate`](qiskit.circuit.library.SdgGate "qiskit.circuit.library.SdgGate") or [`ZGate`](qiskit.circuit.library.ZGate "qiskit.circuit.library.ZGate")). **Parameters** @@ -742,7 +742,7 @@ Decomposition of general $2^n \times 2^n$ unitary matrices for any number of qub ### qs\_decomposition - + Decomposes a unitary matrix into one and two qubit gates using Quantum Shannon Decomposition, This decomposition is described in Shende et al. \[1]. diff --git a/public/api/qiskit-ibm-runtime/dev/objects.inv b/public/api/qiskit-ibm-runtime/dev/objects.inv index fc29e62acd4093239b3d39218f6a3aa6d1bd7c9b..e802273f965cc10d643e88e5b53cef47f65f0cc5 100644 GIT binary patch delta 51248 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 delta 50404 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�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 GSpI(`nkMl8 diff --git a/public/images/api/qiskit-ibm-runtime/dev/fake_provider-1_02.png b/public/images/api/qiskit-ibm-runtime/dev/fake_provider-1_02.png index f0eac6fbaf8605253ec99f43939c3fece721b95d..49b830f073651bb4d30bb5ec17d31f8368b56459 100644 GIT binary patch literal 11498 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 literal 11968 zcmdsdXIN9|x9XNbk98J9Flo`<&;tb3gsh2g*Y>$=>g~*7~*gv8K8r(_YrS2!b$Sm9AENv0JS|+T5H$-o=Q}vJJ9f8Ddsw-++Tomp`6c;< z&Y!k*b8~i;5)g3w=K_A5i;ch;b-EsSlReH#hOP+0sE&To1bBvUAPD~j?A6Pj1O7+8c33vk;inI{LPa-aQ^=gHNmxa;-JtSyPcrgg&VN81t=rK4g*4U;6l zVlx(8PI3w8ND4kzOv2209X(9+){LUr#ey?G^V?hh0Iyz>1Xt=EL*Ify;`ju%Yq=oq z&Pshzm4k&aW6c2sdCekTK!+fK8;UdtQhlEr?(xO}dicIC6~38YW`XbL|Af^Dq}PI9 zU!O+T=*ZRoJ{PlD@4lFjk&)3`XlLochy?EA=H=D)_Ac!aJo#aPK3Oe6tg)#{SegN; zreE9KOgQ!4qGZ>9SdD6#XgvOGLd&ZdJ_BVu1LLve}&^a^f>gm~ic(^BC9QWdqjEqB3Sc^6J zds7@IcF1oviB;SwS3l2ape7nY_|lMmx`u{^$-ZJ@YHF%eytri@+uGWi6c$6OuW%##Jw`treEI6t z?(FRB_uF3`%u%*?FFX~5{h&3BaT)gfZ&32|k7D?yGpQ0|%I(4B8x$%x3))tey8=@k{m z3PFrou;cyx{i7ozX?i*OSbYD$K+&y_d$*@ZJ2||3e0o}1DMwAcF8ggP2}+70$tm9s z$_B-=Zf^5KO8x^ghFyrWR8LQjQK4-lticTVddRVqYfq0f)YK^C z7!bQMwbG)Kk}hC3zC9HvytnQ$(_5r6I5@})^__M-R8@J7RRTKSnO9FwFaDy%{jrvW za~c{Nn@jcV0mf`>;yVMZCr;!D+q7oBeG7LMEVp%;ShbN|QCZ1}b?hySEHC%n4)#0) z10qldtFEp;RONU0@L~5Rt3ls6878(%Urc`sJ0<-pB!qE!rq7_#XSt)l)OCt4zv_4PTH^622+bK&}`=~CD6r6|JI z)iY<#O!gKzgbrOokn!jjFY>3S?>u_=ko)3A&2o>Kj&y9)($`>iWxVY6l1@v!sEV22 za?CwHznLlMg&z|cgxK=(@_YC0iFnPM!|FBV#(h1M_zv0nf*ioc3)_SV2@A(Of1Y*J z>|VR9UtP#?XyeYuzn_DNkV>F#jb~?OX3l*<0;Qe_Sv}dicQ5Ql9^3#-1N*NZ9>v2S z^>c5e#F_aUPIVIv1Y2~$l1q-cyurH@{MI8Glbp~Y(te+|#R>O6)(%I%L& z4sUc4{W-Bu!ou`7S7wT=nqqyA|Bh&e!wsapeJixRlp$9{*i+^F^*+W9rka%RN-j)} z&Kv^)nUyb=tfKbO4Udx&bi!yd?T}9)$A!_}e-s=%l~+8d4Q=cG^#i@0uI{I{wzeu` zbMs^u7nfhN;Jp}b@D9~g&Bnd5qGG9Ck-bwPHK=A{ue=(ad@R37_Wn~+pDr?1Qg=4d zSp{3~q1dMZb>ZUjc6$nsKa_W~SRFq)Gn4n_%MG*?KYsj(PY-7EQKF%tf!mDoOM3R~ zSWIl}V(X zzOg*zzP;g&)xLc@9iC5jhKBX=gye-JKNA7c#Qjx&zHY`{i>{@5@m4=pUx)Z^Qomp4VJqA z$H&8itq*4}juT^NXTNss8jp;O$;+27@#&vGYp$=Y+4jA2Tv=xGU$aP(3owNX<1nIj z9aqs|S>?CswzK7p70+i13JT)AaG|BjR981TJ3HHLxS9rwZ?T3+j7OWMzuy=u?!+c#Pu^w`}cRj zV$4ikQ&h}JO}zpOg~xb$dUA4cO~L{Kl0{+GH#SgkLTd|#9wtjAj^BQ;qSRxy-)>0% z-o1*2#YOjTwR^DI1=cMrM~`N}$eddE-h@vFV1uD+H&Pe6vh1@un+LUq!T^5s>(`Xa z4;Ut3-x}N6;xOy$>sh|5v%MvE)3$dzU%mP;Uc@dH-leZt)OlF``{?KoN|p|Oa>ZX+ zN$Ks3J$ts$qK0A9(QKg1Jt{6PZe_a1a!CKmmHX-h**tQFh6)~L zT?&-R%$GL`2KmO37-;5xx1fksGE)V?DRW|*67eNuj`TFK_Wz7C_5)=_vm~lNjN3;4 zBgvj~gDCPH`u%r@egcU^+D=I0FWHA6tg?!J))I6XC+M7WXioorPQ6h4E>>AhErv)W z8WlTTz@iN`)UwL{Y)oI_IpLFSx)75u9clQ4Fo2I&Y7@$2)Qb0oDOJO&Z zPk~D>?d#hOhp-)r?0)GJTL9#K(IF^P$HsAcKtSEsu2qA=dRzIvK)%rq)54*6sY7ob7Qs}?!V?y#b!J}Y*J(SgMZm@F25gl&uT)+lnF-7*B z%I)p#y;XkYRog2!vDz8xNu%TA82~=L-A|uBCBIaOTUzcmQ^8kMRIsqK6Sp^4b22lP z@RSsV-2j4o7cQs;St#LsmVTTO7Z;!DD{iaGgDpEH=Wi@2DT&AYS7$!@_*WDZ0N$ZF89R2-Aw@X$77h8nVDEcl!BSr_5J;;Fb!>O8Zha*>q1We zWj=#_^5>tLQCw<;zN=1~?-=%<%uGx?3G-H2dtgvw&z?O}Uh~Nyia4>b&ISM!Vt2kI zH#RC`wTqnwM!$c5DdW5Hr8p)cA{l1?)Y1eQ@06$(^7wH(K&0FE#=}@`C8a-mi*aq6 z4cH-#)y6XSsgn!-_DXl^R)?;sPgiZu>VQ1Ba^;HK&u`bfy}W>)6ghOO13>G*Qy)Hg zaw~1o$&;aaXlQ7s<{dw+O>Wkrm_7b)QhG5eXN%FDViP3nTqcOXGQ6WUDd6?-2deNU~H$IVetKR_2%V z9{o%k5fNcd@*AZ#Ha2PlIC6NxhtA>^_EiIg*VEQsNLy4^R?Z$+gzK9}=2Z}}gc(Ip zxEbh8hYg+r7}@7uwQsmZe29{OtKylc3l0F@gX5)vvH>#EAxB-5>vs19KY(V^7(uBF zOc|3PiyzQ9-Cy2VexI8&b9@ea%y<60YE2MR&eSXn2RceAQd?ioCo5~(5h{#89q9sJ znmWmdApO$&{SJK2Ay!R(YN0^_eQUpJ&>EBcD|a@!Nxb6X-8&};RW=1ZDEKSR0nYWG z2_B@MCs5Z3@E{#fjJl?#{2Cf<_Eb@){x6Z`uv(rCDK^MhYf=t2ifiHlvus4d3FhOw zkZME8C7lfr8a@jR=ho+UBh?L(OHoqL1DmUJo}*keNVUxHd^u7Vc8U+kBqt|l7Vu~B z3pHef2DwO3*e4H!3^TDlP9S~f_=9Lhn*C%#iv*Srf2N(!klUV!W#58j@s=n=LfGX7 zBNO0GR)4EmrU7Fl_yx^xd-s;ja0cS4*6SkCJ@b5@LO%>lxiSke1{pswF=5|d@`iz# zZTiyytV22M<;8%VE%qc+Bcp7KnxHIb)UbYZgH)D<7?R=9e7-(9y3}xho4`4-%)KxTDd9M68tN8iZVmZrpGCLWeFheFXk9&{$5#hOY5^;rl|@z;j^ zwHC!RJF}i7a<*R1(ro!$c5<>j%n@F0ZcUH~Rcqh&wIoWC|9x|1ch)SocUDQ=`vfY? z31d@JIpc%?)9!o|GHma1tMr_N3+V1)eu*W<>h;C(&Pv}^_N1c#45_JS6=(ND6>$b1 z34~EGx!5L0ZTIFg$fqbU%Z&cp(yJf>RconS8ZUC;A7s`?qk#C5dkSn&-4A|;{rmg$ zfA7Wq3%{z_(D3=7*9a55);mXQ3muJ?-=5#OBwV0XhWRD8BoWej3vOx3jB11m1i9U( zMMQL+oR(L7gMV$_x{f#KtA+Xb&y$@wRO@hN-ZGnv)LFAn3zvFGi}e6&6G zYmU=u>guNNX7d_;*92Q@Iu1AcPoH}E`sO4j!z+hbSU&ajmH+cU2Y&xO4P2xlk5Xt0 z9xkp||GYAvFtl|YsB4FcKxH~io`f+2eSLe-oJN&CMK643OaJYb2y_wA(dhU2PL`GX<(KGcuTBUK>r>owHq8(_wk6`G?g2ZIg{j!@SPF49fho{ zEKoPVBfPz{%t-zlGq`}JU^xU)ueH#iRaI8j2Az~|M#_h3R>Gq!95jyN4Aic~pEd0C z)3dYrP_0rv1+eUYc*(;*{_8lFC<@G$jXTS%~{3n1Nhoo0NM%aYtal&4T^rK6kFZITN--l(~S8 zf_gZI4;)B-@?>x2)yE$4syEpgJ@^J}PR)EG|0Q7IYsTgTvuaiv&8Im!Cft zBeV2b0odqg;5^e)wY9aGg@wAnH)1h>ubKP;dHPU{g}|6LyTP5)!eSr$RXhN&L#9$SEi1#M;l1m2YEUEoNqNzXTYD2f(wivho6#1VnDB8mwWK%Uv9An}Q4R z=|Jo=q2__t5Wuk%z@kjt);6=Fqhops?1rrDY~|hiPe!<VDx=<4fpVS!fZG{s&hvaH{~`EFx%j`-oj71(nu9z;Yoj2wHQ&ShRdQ`1ja-T>lK z1k8HV2beQ>R^22d#USgQLiM(K;qBP6c1)HjxUW$pL1{ ziX*skd~$MT=hPD;Frp4!s(0_+?XC1J<~OT4j|J09TT?Sa%&Fhjj0g%Fnwp%V5RAdH zv9Ym=*hcJUm(AVUx`)LR2!t}vxqMK<*FRA4WoU7Vw-60;sZmf-jcS4z9wV_cv3v4vNs8+>CgK-@YKsEAPqeIN~)IIl@ zFN`)A64Q>glL2`yY$pa@Zz&0rGd@X@1v<8=A=0dk6+Cn-Fr z?gSc!ns4q9z)Tc%o05|+KfqwYEhEF^!eAkF5EbTiu0ICoTns8MD`0DceJ?Y!!S(Aw zD3O2>J~iD_fKTUCiRBg-Hy}~B=S2NB+@i>|ox<4(J2IC^iSzrAXVoStfO;3!z=`~vd>ODY2{QrGNy=}d5aeVufq*k}`ra6Wx?e^` z_E!43!(oC@5cWVs?`z^0}jKJ0?f|hkZ z;38|q2YV#w0;RQ0P4j{4@Pb)-@ZdpKX^-5V$n)pGc!&6F@18wc5K{n|c!_F3z)}%u z*2I3eoKoiQ0J+gMJcVc`2fni{s9dgd500bnCX*RMZME5!<1HL^go z_;F`BkcMvQ!#)AqwfV1OkM67dwr5ZKqkTsU0Zf5(*}+bgxqN>Dm5YwLX$@Jd?|@o3K(xer{yZfuTsGUfC4K@Zn00-26bvc=F+guMcpVir zC?XVC8s0B1E|%S#7Oq_CP}x}N!*xOe0@hSh&4X}SzHhiwMIQg_fzuq;Wq#qtYhdt~{92~}!?1G&}2isTX08KEMf|%L!VX*!9V>jDH=_AIJ zf;QP4Ncbl}Pg^U}oDUX8N;n{5DI}E9&r(1K>47d^ndwvc$M%76nCqOYpT6|dhh=F9 zk|_@LfCd2hrj=l1h@&hF^ttuv)8_XX^bqw#i4+@xpZ<6oAr3ZmXKP%pkKpwv{wHxa zC3rXcJxz3U!qEcJ*MdmYIgKvJBLSLT0%LIii^y7$7OCbDeI|?m&(Z;y01Ak~awvvT zz$tcL7{$)srJogSJx!CJ@jj6T@+m#=Tc^Vd3;%I%8ydg^kYyTUly~GjcaBd|vS-KL z!XgDY{*+8Tgkd>=OkFVKR`xB0TA)&3)jBdT%oS&x9u}>c*q;IXn?M)%t zg%3?ys9{Ht0?|wrl#_f0wkztpaz_+5Xw1XI^Y_zc(ta*=wVCNJB~KqK5_0SnDd3>& zS#P=KzgW8Aa9WPF`53SkOx!c^G1&NyPYlGj#&GhtQ zdJdis9bsmmi9Zbt6{-xy+owk^pfUgEY`I2|#r%6+W{Dl-bF~wl8$F81D98OiK8`xA z78VxZ;*sUH$#PjBZLI6d^MEmkI`%GwvAv&AmDm}B^^S+gIvXax``n-jkhnrBTR4Qd zO#=f1(|_qk`mLIv0XEQE)QNz6*k)#kWCjYB^4g-NIqXInta1|= zv>LMO>1=*WTJ#JIjRONF;2!qAu?$9;F6h7l%fUnSL-)evc1qAF4Eh;W6L3BR&C-be z%Y3D!l2kpIIU3mt!TW!qWTVN~wVGD>%7)ffF`%@ePmc-=ip)i6$O?k@aVI)9Ha;TP z19AxSOKZaq>MFb!LqHy|LKldD!)|rntg0Vk?2Eu1LfT|Eo2Q=@*ZveA0_7C?LdLh3 zBpa|(@di#`q`}dP>kz+2CL}oAD(mYja)`4i=m`PTWo7qUij0hkvINI(Kvs^E^J5k% zSYl`GOe;buK)W9-`i`5p%9nwG$mSB{;~<%M`1qP?-9$GRngmdD8ja@hXlH<1ipI!C z`HeMUcfm7PQ#UM_3#azsNO>T_zGS#=P1WD0-v_=HmmfHQzz1ag%4lh6QB$V(;q4+} zs3`C}GC_+Ny}kVy+V+VOU6Nt>wgWt-c#_A(ZRvN=z$UR_yI5{YsKss7%e}*r0p2mSrLzu*#W~B z=q$hMRw%Wy=@#TVV8q6Pq66vr%dGTX9E+E9eTAOZfKrG*RdgM|TN~QTsmv0LU`3F_ z>VyFBfPKEl7y$7k&d)nDoe)!n-E@6EVy3N~3Sd||{nL|+CD7+BL`m(n6Dp2+;t+ea-QK8lCAzmu=dowWu05@Q>Z%71C3JeV; z^emE_TOn9899YoeCEur9804DgCMN6zeu6cK9!LSdLl;yj#PJ1bgNJS8c0|Dw=m44; z9T$g=>4K4x*bR11TN&tdF+e<1Mef^f=%LrADY0>VaYgZ+5@0zt;N%W8qNI_MkJ zVl9j|INGgEaRNlKUP(d0c5WUXK|zZa`zTUL$(P!P#l`0DX*pzN2iKr0LnU3uj@1M+ zi~B53T3y;+BCAukEsu$hvx7f*@bF=)kW=plK)ZnxoE%8K}%-saPmFHdgCOKfSYe3UNS)qQm=b(2zH0{XbI>CGF_^;C| zz+6yM6pV%+aInW``b|9=6crYVSlzz;?9^hcu?z`=CQ@xOtBL*_WI}HSnl}+ESK^^U z3f(5OGi2zv24tytPL;$BAyY6`K+~bd6il=!8@bKr@IaiviNNKB0~%_8Qx~PjE)4Kf zAzUhiIagp=c5>XWUi38N9^{Wtj{<{x1wV4o*m4ef)nkLKpPxtqlg6?xL<>e6CErB4 z<%P`6-OOy1t@TB#f}SPdbPjL|#k#(N)1XaYphUe7A~oQrx(Pd<6`1WnoB%281bkIh z_Vg`kAb}ed)iGeIr4o!qh|+KHk%1v-}Yd|{RL{O|Dc0|P!km5`7kz>=16&^c4GTycz}rXpkt|z|3sa9J7kTUfg}Ljs{!jxW`*{hyirk| zVL9WTQe#YVwrl9|6StY(PHt}Qix5PG!0h6zQc`}0gZR5WzY+2+}LXkyq*I$6$MM>aTj%buLOv@2!?ug7cKEaD=Q;jm&&X>h`6bwUIjD3TjGv zzD%N2c>WNW?8o4IllU3E8F;dqiy`QVG_TP}#b5UYR;750oalRjQ2hh}{orP-(4OEDGcp-z+ zd8PVB?)>=6IMWV5XjSza!Uk<~OU+KFnR;M+g#hn8k!MsS1OeF{uyKw7uwB>Jk8Lk< zFyP?esG0s#^em~=ScVGpCe-GIciql1_+KF)`i_JAxDNK-SE$(Of%5L!hoT(ll_Wm% z1LiWH;8-ePE5uIv6R7Z1Qqlx(d4|;4(i1sk49yDo+f6j6@^A#f4b4V@oySN&aK z3vA$kwB{V}V$@m!#z>jw_I$K8<^qe1T1J8NcaH*n{jY=)JM3pfjR}V|gFN635bQPe KtNB;V@Ba@Ej1GJN diff --git a/public/images/api/qiskit-ibm-runtime/fake_provider-1_02.png b/public/images/api/qiskit-ibm-runtime/fake_provider-1_02.png index fb0ee501f4db5454f3ffb1058e9a757ded95af2e..8257ae55c6569b0d8f4451a18eccac18818eaf87 100644 GIT binary patch literal 11442 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 literal 12299 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 T8{<0<*FmsSiq~_l-n##9)LzYI diff --git a/public/images/api/qiskit/dev/circuit-2.png b/public/images/api/qiskit/dev/circuit-2.png index a1c924ae285f8b457847000acbc7d64d8d8c7906..fa7b138f2c8d0c951e3702622739c010de08a51f 100644 GIT binary patch literal 7538 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 YSH&K%-mM}8&p#n0c{RBr8MC1O05v=Ba{vGU literal 8279 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 N@x7cxskom1zW`4)UpoK* diff --git a/public/images/api/qiskit/dev/providers_fake_provider-1_01.png b/public/images/api/qiskit/dev/providers_fake_provider-1_01.png index 012f4882ab3cb63e68802a9542078581829b079b..26865a55ad59bb0b19466028caff1ca8e074eb18 100644 GIT binary patch literal 22304 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 diff --git a/public/images/api/qiskit/dev/providers_fake_provider-1_02.png b/public/images/api/qiskit/dev/providers_fake_provider-1_02.png index 90c433804edc0bcac7b7a133810ea390b934befd..f2b8d36e76d110361d36b2359020fbf4051b5718 100644 GIT binary patch literal 10815 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 literal 11108 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 z z-oJUW^EMdEr=Z!O_ELa14Ul3aeYO}Uqwx2il6qnte*O0ksYT8&Ieu(ZE8f3H5%&|6 MV`@hkhtFO69~kgH2mk;8 diff --git a/public/images/api/qiskit/dev/pulse-2.png b/public/images/api/qiskit/dev/pulse-2.png index dd32aba71e2c3f1652493890bd8be137bacd19f8..f4122c6c55e7651dc9bcbdd05f5f18f049c943b2 100644 GIT binary patch literal 10558 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 EFBk-uVgLXD literal 10889 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 b9i8~&>Tcz1?QSqq9ME!V_ww#Mc>KQr{^=IP diff --git a/public/images/api/qiskit/dev/pulse-3.png b/public/images/api/qiskit/dev/pulse-3.png index 0153f96ffa8b6e44c06878944e5aeccb36c47e32..1a7b2cdc195584adb381c734c8b1191114b87d29 100644 GIT binary patch literal 59510 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 A#sB~S diff --git a/public/images/api/qiskit/dev/pulse-4.png b/public/images/api/qiskit/dev/pulse-4.png index 8ad95e43771587c4fd68092ab9369783eaa56326..bac0d6f54d914b94b13a68fdfa0f717d71eceef5 100644 GIT binary patch literal 18900 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 diff --git a/public/images/api/qiskit/dev/pulse-5.png b/public/images/api/qiskit/dev/pulse-5.png index 04b736eb15f927ecfd2817ccf53ca924d630d0c5..cc4e641eee8c9e87ecece482cbbedc714bb10415 100644 GIT binary patch literal 16226 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 R1?YT6)RZ(8i{)?M`#((*wlV+! diff --git a/public/images/api/qiskit/dev/pulse-7.png b/public/images/api/qiskit/dev/pulse-7.png index 9ee4185f1e627035b34795a6c815cba5716a3787..78f0887b1a60bff8ab86dec92bdbe2e122cc6c57 100644 GIT binary patch literal 13972 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

bYOHB9m~ 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 TK_t9G43U+(Bl$@}_u2meW+JfW literal 14262 zcmaKT1z1&S+wKCSkx)vcQA#O6xN>sWL6cCW^7NitOixdG#k(BOGQl%xOq`L&p zvzT$dZ_YXYzprZ;iM{r_-gut7))Q4_g_8s{1PFqhynani9YIcz!oLIXaNsM)kN#r# zpNPX%O@~`H_Z*y!9+@FGjT~&PY#gla8#6kYJ+i-V^N^ogg!|G(MhgcATYFI+9_xSp zfZOJgIS-RE)&N`t-}ai8J%SJ^qyJ%eJBP6#h!D$lIT;O?*NZ>Qbu|=@1XnDbwKPMh z$>gNd*i(#gKTz>@^^KG!dXt+1f;TQc$+#{T#_D9^YQ;zSEh8hC zqR}s=pr$~qldx{LockvBRz~0U`Z)GS`|02JrfU-3ym^sIDvL*op;`2R0*8niLGTC( z>zzkE%{SaaDY>4-#|M8j?|jKpAseSRYSJ80J31=WS;3`Uh#(6?C3)A3)!50YB|U^G zxpm{sB}qs~&YeHc#K?%0J1@&ySg_y8(KdVDX~>&&|LZ$p±rurpW+3JMqXE2xER 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 IRC^flZ_!zc=Kufz literal 7234 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 literal 16246 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 J`LaeY{}YFMt1AEi diff --git a/public/images/api/qiskit/dev/qiskit-circuit-library-PhaseEstimation-1.png b/public/images/api/qiskit/dev/qiskit-circuit-library-PhaseEstimation-1.png index da3ce89c2d7a5d47625b77995aba825805d51689..d0e3f88f9d62e095344b7259ef2629db8fbedf4c 100644 GIT binary patch literal 12161 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 S%xLf$f>l&k$iH^y_x}Z;&}bh3 literal 12227 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 CE8;o; diff --git a/public/images/api/qiskit/dev/qiskit-visualization-plot_circuit_layout-1.png b/public/images/api/qiskit/dev/qiskit-visualization-plot_circuit_layout-1.png index dd84cf8e063df7721630dbe3eae3536200a697a7..73e6aaebd41bbc05b34823847bd83bd610a1d359 100644 GIT binary patch literal 10166 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

$Id%i|2&yk55exzD*&g#A(h#esl2Gu?&~R9N?DL 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

3}PE$QKJqz~Z^ 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

VfJ|QNz7igNujPO(!0WQG&K<0$Jfn))8 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 literal 19906 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 Bp#T5? diff --git a/scripts/config/api-html-artifacts.json b/scripts/config/api-html-artifacts.json index bbfad6560cd..9542c5345aa 100644 --- a/scripts/config/api-html-artifacts.json +++ b/scripts/config/api-html-artifacts.json @@ -1,6 +1,6 @@ { "qiskit": { - "dev": "https://api.github.com/repos/Qiskit/qiskit/actions/artifacts/2062254897/zip", + "dev": "https://api.github.com/repos/Qiskit/qiskit/actions/artifacts/2083943397/zip", "1.2": "https://ibm.box.com/shared/static/nnao3s3gy1y5hyea506htupby9khrve1.zip", "1.1": "https://ibm.box.com/shared/static/bplxij6mapevjapr8ij7rluiayls982k.zip", "1.0": "https://ibm.box.com/shared/static/9mgo99x54z3rpo8irs23olqsov3uo1ly.zip", @@ -29,7 +29,7 @@ "0.19": "https://ibm.box.com/shared/static/wjoea4x5tnxd0l4lgo2v3kxnx6btxvvl.zip" }, "qiskit-ibm-runtime": { - "dev": "https://api.github.com/repos/Qiskit/qiskit-ibm-runtime/actions/artifacts/2063774491/zip", + "dev": "https://api.github.com/repos/Qiskit/qiskit-ibm-runtime/actions/artifacts/2082018988/zip", "0.31": "https://ibm.box.com/shared/static/z19dt14je6cz69oi4knraitjglzo29w7.zip", "0.30": "https://ibm.box.com/shared/static/f950vkx3uq13o8g017bazpm4o9bcei2i.zip", "0.29": "https://ibm.box.com/shared/static/9n6xf8gkh24xpft2e7zrwgme7jzkh6nu.zip", From bd93f3a6971960d48b5719a213cb39bb3da72ba3 Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Tue, 22 Oct 2024 10:50:56 -0400 Subject: [PATCH 18/32] Fix suggestion for image link checker (#2163) Closes https://github.com/Qiskit/documentation/issues/2159. This change also results in more suggestions happening than we had before, as shown in the tests. --- scripts/js/lib/links/InternalLink.test.ts | 28 +++++++++++++++++++++-- scripts/js/lib/links/InternalLink.ts | 18 ++++++--------- 2 files changed, 33 insertions(+), 13 deletions(-) diff --git a/scripts/js/lib/links/InternalLink.test.ts b/scripts/js/lib/links/InternalLink.test.ts index fb61bb01bf5..1133ee6ce94 100644 --- a/scripts/js/lib/links/InternalLink.test.ts +++ b/scripts/js/lib/links/InternalLink.test.ts @@ -71,7 +71,8 @@ test.describe("Validate links", () => { let testFile = new File("docs/testpath.mdx", new Set()); const results = testLink.check([testFile]); expect(results).toEqual( - "❌ Could not find link '../testpath'. Appears in:\n docs/test1/test2/testorigin.mdx", + "❌ Could not find link '../testpath'. Appears in:\n" + + " docs/test1/test2/testorigin.mdx ❓ Did you mean '/testpath'?", ); }); @@ -107,6 +108,27 @@ test.describe("Validate links", () => { ); }); + test("existing image", () => { + let testLink = new InternalLink("/images/my-img.png", [ + "docs/test/testorigin.mdx", + ]); + let imgFile = new File("public/images/my-img.png", new Set()); + const results = testLink.check([imgFile]); + expect(results).toBeUndefined(); + }); + + test("non-existing image", () => { + let testLink = new InternalLink("/images/my-img.png", [ + "docs/test/testorigin.mdx", + ]); + let imgFile = new File("public/images/another-img.png", new Set()); + const results = testLink.check([imgFile]); + expect(results).toEqual( + "❌ Could not find link '/images/my-img.png'. Appears in:\n" + + " docs/test/testorigin.mdx ❓ Did you mean '/images/another-img.png'?", + ); + }); + test("relative path and multiple origin files", () => { let testLink = new InternalLink("../testpath", [ "docs/test/testorigin.mdx", @@ -120,7 +142,9 @@ test.describe("Validate links", () => { let testFile2 = new File("docs/test/test2/testpath.mdx", new Set()); const results = testLink.check([testFile1, testFile2]); expect(results).toEqual( - "❌ Could not find link '../testpath'. Appears in:\n docs/test/test2/testorigin.mdx\n docs/test/test3/testorigin.mdx", + "❌ Could not find link '../testpath'. Appears in:\n" + + " docs/test/test2/testorigin.mdx ❓ Did you mean '/testpath'?\n" + + " docs/test/test3/testorigin.mdx ❓ Did you mean '/testpath'?", ); }); diff --git a/scripts/js/lib/links/InternalLink.ts b/scripts/js/lib/links/InternalLink.ts index f5401a21bd1..dd8302a4286 100644 --- a/scripts/js/lib/links/InternalLink.ts +++ b/scripts/js/lib/links/InternalLink.ts @@ -114,14 +114,14 @@ export class InternalLink { let suggestionPath: String = ""; let suggestionPathAnchors: string[] = []; - const possiblePaths = this.possibleFilePaths(originFile); - const pathNoExtension = possiblePaths[0].replace(/\.[^\/.]+$/, ""); - existingFiles.forEach((file) => { - let score = levenshtein.get(pathNoExtension, file.path); + const candidatePath = file.path.startsWith("public/") + ? file.path.replace(/^public/, "") + : file.path.replace(/\.[^\/.]+$/, "").replace(/^docs/, ""); + let score = levenshtein.get(this.value, candidatePath); if (score < minScoreLink) { minScoreLink = score; - suggestionPath = file.path; + suggestionPath = candidatePath; suggestionPathAnchors = Array.from(file.anchors); } }); @@ -137,9 +137,7 @@ export class InternalLink { } if (this.anchor == "") { - return `❓ Did you mean '${suggestionPath - .replace(/\.[^\/.]+$/, "") - .replace(/^docs/, "")}'?`; + return `❓ Did you mean '${suggestionPath}'?`; } // Find a new valid anchor @@ -164,9 +162,7 @@ export class InternalLink { return null; } - return `❓ Did you mean '${suggestionPath - .replace(/\.[^\/.]+$/, "") - .replace(/^docs/, "")}${suggestionAnchor}'?`; + return `❓ Did you mean '${suggestionPath}${suggestionAnchor}'?`; } /** From e1d7a05c9fb9e2b7451d6f065e13ab7dbfa726f2 Mon Sep 17 00:00:00 2001 From: abbycross Date: Tue, 22 Oct 2024 15:03:51 -0400 Subject: [PATCH 19/32] What's new in the docs updates since early Sept (#2165) Both content and infra changes are reflected here. --------- Co-authored-by: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> --- docs/guides/_toc.json | 2 +- docs/guides/latest-updates.mdx | 61 +++++++++++++++++++++------------- 2 files changed, 39 insertions(+), 24 deletions(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index e999ae03968..5247565ea67 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -98,7 +98,7 @@ "url": "/guides/q-ctrl-performance-management" }, { - "title": "QEDMA QESEM", + "title": "Qedma QESEM", "url": "/guides/qedma-qesem" } ] diff --git a/docs/guides/latest-updates.mdx b/docs/guides/latest-updates.mdx index 889f102f1a1..0505938682a 100644 --- a/docs/guides/latest-updates.mdx +++ b/docs/guides/latest-updates.mdx @@ -5,7 +5,7 @@ description: The latest updates from Qiskit and IBM Quantum, including the lates # Latest updates -*Last updated 9 October 2024* +*Last updated 22 October 2024* {/* remember to update the date in the previous line each time this page is updated!!! */} Keep up with the latest and greatest from Qiskit and IBM Quantum™! Gathered here are the the most recent Qiskit package release summaries, documentation updates, blogs, community events, and more. @@ -144,41 +144,56 @@ From there, the blog goes on to deliver popular summaries of two recent arXiv pa IBM Quantum documentation recently added a number of user-facing improvements, including content updates and new features. Many of these changes are a result of specific user requests! Check out the highlights below. - -### New and updated content +### Updated content **New pages** -- [Primitive inputs and outputs](./primitive-input-output) -- [Noise learning helper](./noise-learning) -- Expanded and improved [Qiskit Serverless](./serverless) docs, including four new pages that walk you through how to use Qiskit Serverless: [Write your first Qiskit Serverless program](./serverless-first-program), [Run your first Qiskit Serverless workload remotely](./serverless-run-first-workload), [Manage Qiskit Serverless compute and data resources](./serverless-manage-resources), and [Port code to Qiskit Serverless](./serverless-port-code) +New pages include documentation for [Qiskit Functions](/guides/functions), [Qiskit addons](/guides/addons), and [Qiskit Code Assistant](/guides/qiskit-code-assistant), as well as a guide on [job limits](/guides/job-limits). + + +- Qiskit Functions [Introduction](/guides/functions) +- [IBM Circuit function](/guides/ibm-circuit-function) +- [Algorithmiq TEM function](/guides/algorithmiq-tem) +- [Q-CTRL Performance Management](/guides/q-ctrl-performance-management) +- [Qedma QESEM](/guides/qedma-qesem) +- [Q-CTRL Optimization Solver](/guides/q-ctrl-optimization-solver) +- [QunaSys QURI Chemistry](/guides/qunasys-quri-chemistry) +- Qiskit Code Assistant [Overview](/guides/qiskit-code-assistant) +- [Use Qiskit Code Assistant in JupyterLab](/guides/qiskit-code-assistant-jupyterlab) +- [Use Qiskit Code Assistant in Visual Studio Code](/guides/qiskit-code-assistant-vscode) **Content additions and improvements** -- Clarity around the [maximum execution time for batches](./max-execution-time#batch-maximum-execution-time), how usage is reported for [failed and canceled jobs](./execution-modes#failed-and-canceled-jobs), and how [usage affects job priority within an instance](./instances#how-usage-affects-job-priority-within-an-instance). -- [Probabilistic error amplification (PEA)](./error-mitigation-and-suppression-techniques#probabilistic-error-amplification-pea) has been added to the Error techniques topic. -- New [options compatibility table](./runtime-options-overview#options-compatibility) for Qiskit Runtime error mitigation tools. -- Updated docs to reflect that [V1 primitives are no longer supported](../migration-guides/v2-primitives). -- Copyediting and typo fixes across the docs, including bugs reported by community contributors. +- Added content to the [Execution modes](/guides/execution-modes) documentation guides and improved explanatory content in the Introduction to primitives](/guides/primitives) page + +- Clarity around how the [Estimator primitive calculates error](/guides/primitive-input-output#how-the-estimator-calculates-error) + +- A new [FAQ](../faq) page +- Improvements to the [Support](../support) page + +- Some error codes now link out to relevant documentation ([example](../errors#8055)) + +- Information on [benchmarking and the Benchpress package](/guides#benchmarking-and-the-benchpress-package) + +- Copyediting and typo fixes across the docs, including bugs reported by open-source contributors - thank you! **New API reference docs** -- [Qiskit SDK v1.2](../api/qiskit/release-notes/1.2) -- [Qiskit Runtime v0.28](../api/qiskit-ibm-runtime/release-notes#0280-2024-08-15) -- [qiskit-ibm-transpiler v0.5](../api/qiskit-ibm-transpiler/transpiler_service) +- [qiskit-ibm-runtime 0.29-0.31](/api/qiskit-ibm-runtime/release-notes) +- [qiskit-ibm-transpiler 0.7](/api/qiskit-ibm-transpiler/release-notes) + ### User experience improvements -- The table of contents for the IBM Quantum Platform docs is now organized into Get started, Workflow, and Tools sections. Whether you are looking for documentation specific to a Qiskit pattern step, or simply want to jump straight to the tool you need, you can quickly browse for the content you need. -- The [landing page](https://docs.quantum.ibm.com/) has a fresh new design with an improved focus on API references. -- We've launched an *Additional resources* tab that directs you to the [migration guides](../migration-guides/), [open-source resources](../open-source/), [responsible quantum computing guidelines](../responsible-quantum-computing), and the [Qiskit ecosystem](https://www.ibm.com/quantum/ecosystem). -- Tables in the docs now have borders to improve readability. -- Alt-text has been added to all images to make them more accessible. -- Heading size has been adjusted so that it does not change when the screen size changes. -- Code styling has been improved, including bigger fonts and better contrast for code block comments. -- In Search, you can now filter out terms by prefixing it with `-`, such as `-qiskit` -- When on outdated versions of docs, the link in the top banner to take you to the latest version now preserves the page you were on. +Updates to the infrastructure and design of the docs include the following: + +- We fixed GitHub source code links for functions using decorators - thanks to the open-source contributor who opened an issue for this! +- When you change the version in the left sidebar of the API reference docs, you arrive at the equivalent page in the new version. If the page does not exist in the new version, you land on the index page. +- We improved the design and color of the warning banner for when you access outdated API pages to make it easier to realize that newer docs are available. The banner persists as you scroll down the page. +- Source code links and release notes have been added to the [Qiskit Transpiler Service Client API docs](/api/qiskit-ibm-transpiler). +- Code blocks that write to a file now display the file path; see examples in this [Qiskit Serverless guide](/guides/serverless-first-program). +- Tips on how to use the Qiskit Code Assistant now appear throughout the guides. *A huge thank you goes out to everyone in the open-source community who contributed and gave feedback!* Please [open an issue](https://github.com/Qiskit/documentation/issues/new/choose) if you find a bug, have a suggestion, or want to share your experience. From 081e4ae6771a7581aaa6d412d23cc80ee733a687 Mon Sep 17 00:00:00 2001 From: Ludmila Botelho <39570941+ludmilaasb@users.noreply.github.com> Date: Wed, 23 Oct 2024 15:54:26 +0200 Subject: [PATCH 20/32] Algorithmiq TEM documentation: change parameter in example (#2169) Updating the Algorithmiq TEM documentation in the Example section. The parameter `max_execution_time` was removed. --------- Co-authored-by: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> --- docs/guides/algorithmiq-tem.ipynb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/guides/algorithmiq-tem.ipynb b/docs/guides/algorithmiq-tem.ipynb index ee30fa776bb..05ec8cadb4e 100644 --- a/docs/guides/algorithmiq-tem.ipynb +++ b/docs/guides/algorithmiq-tem.ipynb @@ -175,9 +175,8 @@ "instance = \"\"\n", "\n", "pub = (qc, [observable])\n", - "options = {\n", - " \"max_execution_time\": 60,\n", - "}\n", + "options = {\"default_precision\": 0.02}\n", + "\n", "job = tem.run(pubs=[pub], instance=instance, backend_name=backend_name, options=options)" ] }, From 64410c238e8bdca298ce086fa475f1722453e396 Mon Sep 17 00:00:00 2001 From: abbycross Date: Wed, 23 Oct 2024 10:04:00 -0400 Subject: [PATCH 21/32] make paths safer (tweak to latest updates pg) (#2171) --- docs/guides/latest-updates.mdx | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/docs/guides/latest-updates.mdx b/docs/guides/latest-updates.mdx index 0505938682a..45d83412a8a 100644 --- a/docs/guides/latest-updates.mdx +++ b/docs/guides/latest-updates.mdx @@ -65,7 +65,7 @@ On the IBM Quantum blog, we take a deep dive into the new beta release with a sp ### Qiskit Functions Catalog Service Client v0.1.0 -Introducing the Qiskit Functions preview, for IBM Quantum Premium Plan users. To get started, `pip install qiskit-ibm-catalog`, and explore the [Qiskit Functions documentation](./functions). With the Qiskit Functions Catalog client, you can submit workloads to abstracted services designed to accelerate your research - sign in with your existing IBM Quantum Platform credentials. +Introducing the Qiskit Functions preview, for IBM Quantum Premium Plan users. To get started, `pip install qiskit-ibm-catalog`, and explore the [Qiskit Functions documentation](/guides/functions). With the Qiskit Functions Catalog client, you can submit workloads to abstracted services designed to accelerate your research - sign in with your existing IBM Quantum Platform credentials. Premium Plan users can get started right away with the IBM® Circuit function, or request access to circuit or application functions from our partners. @@ -123,7 +123,7 @@ Users can purchase licenses for the following functions contributed by our partn - QunaSys is releasing a chemistry application function comprising three algorithms meant to solve the ground state energy estimation (GSEE) problem. - Q-CTRL is also releasing an optimization solver with which users can pass a graph or an objective, and receive solution costs. -To get started, explore the [Qiskit Functions documentation](./functions). +To get started, explore the [Qiskit Functions documentation](/guides/functions). ## IBM Quantum blog: A closer look at Qiskit Code Assistant @@ -148,11 +148,10 @@ IBM Quantum documentation recently added a number of user-facing improvements, i **New pages** -New pages include documentation for [Qiskit Functions](/guides/functions), [Qiskit addons](/guides/addons), and [Qiskit Code Assistant](/guides/qiskit-code-assistant), as well as a guide on [job limits](/guides/job-limits). - +New pages include documentation for [Qiskit Functions](/guides/functions), [Qiskit addons](/guides/addons), and [Qiskit Code Assistant](/guides/qiskit-code-assistant), as well as a guide about [job limits](/guides/job-limits). - Qiskit Functions [Introduction](/guides/functions) -- [IBM Circuit function](/guides/ibm-circuit-function) +- [IBM® Circuit function](/guides/ibm-circuit-function) - [Algorithmiq TEM function](/guides/algorithmiq-tem) - [Q-CTRL Performance Management](/guides/q-ctrl-performance-management) - [Qedma QESEM](/guides/qedma-qesem) @@ -164,36 +163,35 @@ New pages include documentation for [Qiskit Functions](/guides/functions), [Qisk **Content additions and improvements** -- Added content to the [Execution modes](/guides/execution-modes) documentation guides and improved explanatory content in the Introduction to primitives](/guides/primitives) page +- Added content to the [Execution modes](/guides/execution-modes) guides and improved explanatory content in the [Introduction to primitives](/guides/primitives) page -- Clarity around how the [Estimator primitive calculates error](/guides/primitive-input-output#how-the-estimator-calculates-error) +- Clarified how the [Estimator primitive calculates error](/guides/primitive-input-output#how-the-estimator-calculates-error) -- A new [FAQ](../faq) page +- A new [FAQ](/faq) page -- Improvements to the [Support](../support) page +- Improvements to the [Support](/support) page -- Some error codes now link out to relevant documentation ([example](../errors#8055)) +- Some error codes now link out to relevant documentation ([example](/errors#8055)) -- Information on [benchmarking and the Benchpress package](/guides#benchmarking-and-the-benchpress-package) +- Information about [benchmarking and the Benchpress package](/guides#benchmarking-and-the-benchpress-package) -- Copyediting and typo fixes across the docs, including bugs reported by open-source contributors - thank you! +- Copyediting and typo fixes across the documentation, including bugs reported by open-source contributors - thank you! -**New API reference docs** +**New API reference documentation** - [qiskit-ibm-runtime 0.29-0.31](/api/qiskit-ibm-runtime/release-notes) - [qiskit-ibm-transpiler 0.7](/api/qiskit-ibm-transpiler/release-notes) - ### User experience improvements -Updates to the infrastructure and design of the docs include the following: +Updates to the infrastructure and design of the documentation include the following: - We fixed GitHub source code links for functions using decorators - thanks to the open-source contributor who opened an issue for this! - When you change the version in the left sidebar of the API reference docs, you arrive at the equivalent page in the new version. If the page does not exist in the new version, you land on the index page. -- We improved the design and color of the warning banner for when you access outdated API pages to make it easier to realize that newer docs are available. The banner persists as you scroll down the page. -- Source code links and release notes have been added to the [Qiskit Transpiler Service Client API docs](/api/qiskit-ibm-transpiler). +- We improved the design and color of the warning banner for when you access outdated API pages to make it more obvious that newer docs are available. The banner persists as you scroll down the page. +- Source code links and release notes have been added to the [Qiskit Transpiler Service Client API documentation](/api/qiskit-ibm-transpiler). - Code blocks that write to a file now display the file path; see examples in this [Qiskit Serverless guide](/guides/serverless-first-program). -- Tips on how to use the Qiskit Code Assistant now appear throughout the guides. +- Tips to use the Qiskit Code Assistant now appear throughout the guides. *A huge thank you goes out to everyone in the open-source community who contributed and gave feedback!* Please [open an issue](https://github.com/Qiskit/documentation/issues/new/choose) if you find a bug, have a suggestion, or want to share your experience. From 9dbb50f42e5a5b7e6e7d4bb1ec140bd066fdd171 Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:13:33 -0400 Subject: [PATCH 22/32] Add Qiskit addon API docs as a baseline (#2167) We're in the process of adding six Qiskit addon API docs. This PR sets up the initial projects so that it's easier for us to iterate on them, such as running `npm run gen-api -- -a ` to see locally how changes to Sphinx config impact the MDX pipeline. The docs are _not_ ready to go live and they will not yet be synced by closed source or deployed. The quality issues will fixed in the project repositories, such as https://github.com/Qiskit/qiskit-addon-obp/pull/24. ## API naming scheme We call the API by their full name, without their abbrevation. For example, "Operator Backpropagation" rather than "OBP" or "Operator Backpropagation (OBP)". We do not explicitly mention "Qiskit addon" in the API name. It's already evident these are addons by looking at the left ToC which shows the full module path like `qiskit_addon_obp`. ![image_720](https://github.com/user-attachments/assets/fe664a69-a0a1-4058-92f2-34d03618db8f) ## URL scheme Each package's URL matches their PyPI name, like `qiskit-addon-obp`. Note that we may want to normalize the URLs for individual pages to follow SEO best practices, e.g. `/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify` would be `/api/qiskit-addon-obp/qiskit-addon-obp-utils-simplify`. We would make this change in a follow up PR. --- docs/api/qiskit-addon-cutting/_package.json | 4 + docs/api/qiskit-addon-cutting/_toc.json | 155 ++++ docs/api/qiskit-addon-cutting/index.mdx | 150 ++++ ...qiskit_addon_cutting.DeviceConstraints.mdx | 31 + ...t_addon_cutting.OptimizationParameters.mdx | 36 + ...ddon_cutting.PartitionedCuttingProblem.mdx | 33 + .../qiskit_addon_cutting.cut_gates.mdx | 34 + .../qiskit_addon_cutting.cut_wires.mdx | 32 + ...iskit_addon_cutting.expand_observables.mdx | 43 ++ .../qiskit_addon_cutting.find_cuts.mdx | 40 + ...n_cutting.generate_cutting_experiments.mdx | 47 ++ ...kit_addon_cutting.instructions.CutWire.mdx | 31 + ...qiskit_addon_cutting.instructions.Move.mdx | 70 ++ ...addon_cutting.partition_circuit_qubits.mdx | 37 + ...qiskit_addon_cutting.partition_problem.mdx | 46 ++ .../qiskit_addon_cutting.qpd.BaseQPDGate.mdx | 41 + .../qiskit_addon_cutting.qpd.QPDBasis.mdx | 49 ++ ...t_addon_cutting.qpd.SingleQubitQPDGate.mdx | 42 ++ ...skit_addon_cutting.qpd.TwoQubitQPDGate.mdx | 36 + .../qiskit_addon_cutting.qpd.WeightType.mdx | 25 + ...cutting.qpd.decompose_qpd_instructions.mdx | 40 + ...addon_cutting.qpd.generate_qpd_weights.mdx | 33 + ..._cutting.qpd.qpdbasis_from_instruction.mdx | 34 + ...cutting.reconstruct_expectation_values.mdx | 43 ++ ..._addon_cutting.utils.bitwise.bit_count.mdx | 16 + ...n_cutting.utils.iteration.unique_by_eq.mdx | 32 + ...n_cutting.utils.iteration.unique_by_id.mdx | 28 + ...able_grouping.CommutingObservableGroup.mdx | 35 + ...servable_grouping.ObservableCollection.mdx | 48 ++ ...ng.observables_restricted_to_subsystem.mdx | 38 + ..._cutting.utils.simulation.ExactSampler.mdx | 56 ++ ...mulation.simulate_statevector_outcomes.mdx | 24 + ...ing.utils.transforms.SeparatedCircuits.mdx | 34 + ...ting.utils.transforms.separate_circuit.mdx | 58 ++ ...ls.transpiler_passes.ConsolidateResets.mdx | 37 + ...ils.transpiler_passes.RemoveFinalReset.mdx | 37 + .../qiskit-addon-cutting/release-notes.mdx | 426 +++++++++++ docs/api/qiskit-addon-mpf/_package.json | 4 + docs/api/qiskit-addon-mpf/_toc.json | 14 + .../api/qiskit-addon-mpf/qiskit_addon_mpf.mdx | 16 + .../qiskit_addon_mpf.static.LSE.mdx | 76 ++ .../qiskit_addon_mpf.static.mdx | 26 + ...don_mpf.static.setup_approximate_model.mdx | 70 ++ ...kit_addon_mpf.static.setup_exact_model.mdx | 69 ++ .../qiskit_addon_mpf.static.setup_lse.mdx | 60 ++ docs/api/qiskit-addon-mpf/release-notes.mdx | 12 + docs/api/qiskit-addon-obp/_package.json | 4 + docs/api/qiskit-addon-obp/_toc.json | 14 + .../qiskit_addon_obp.backpropagate.mdx | 49 ++ .../api/qiskit-addon-obp/qiskit_addon_obp.mdx | 17 + .../qiskit_addon_obp.utils.mdx | 15 + ...t_addon_obp.utils.metadata.OBPMetadata.mdx | 141 ++++ ...addon_obp.utils.metadata.SliceMetadata.mdx | 102 +++ .../qiskit_addon_obp.utils.metadata.mdx | 12 + ...addon_obp.utils.operations.apply_op_to.mdx | 48 ++ .../qiskit_addon_obp.utils.operations.mdx | 13 + ...t_addon_obp.utils.operations.reduce_op.mdx | 47 ++ ...ddon_obp.utils.operations.to_global_op.mdx | 34 + ...ddon_obp.utils.simplify.OperatorBudget.mdx | 53 ++ ...on_obp.utils.simplify.SimplifyMetadata.mdx | 42 ++ .../qiskit_addon_obp.utils.simplify.mdx | 13 + ...skit_addon_obp.utils.simplify.simplify.mdx | 30 + ...utils.truncating.TruncationErrorBudget.mdx | 52 ++ .../qiskit_addon_obp.utils.truncating.mdx | 13 + ...ddon_obp.utils.truncating.setup_budget.mdx | 50 ++ ...tils.truncating.truncate_binary_search.mdx | 36 + .../qiskit_addon_obp.utils.visualization.mdx | 17 + ...s.visualization.plot_accumulated_error.mdx | 36 + ...ualization.plot_left_over_error_budget.mdx | 36 + ...bp.utils.visualization.plot_num_paulis.mdx | 40 + ...tils.visualization.plot_num_qwc_groups.mdx | 40 + ...isualization.plot_num_truncated_paulis.mdx | 44 ++ ....utils.visualization.plot_slice_errors.mdx | 46 ++ ...bp.utils.visualization.plot_sum_paulis.mdx | 48 ++ docs/api/qiskit-addon-obp/release-notes.mdx | 109 +++ docs/api/qiskit-addon-sqd/_package.json | 4 + docs/api/qiskit-addon-sqd/_toc.json | 14 + ...iskit_addon_sqd.configuration_recovery.mdx | 12 + ...recovery.post_select_by_hamming_weight.mdx | 30 + ...ration_recovery.recover_configurations.mdx | 49 ++ ...skit_addon_sqd.counts.counts_to_arrays.mdx | 29 + ...unts.generate_counts_bipartite_hamming.mdx | 38 + ...don_sqd.counts.generate_counts_uniform.mdx | 34 + .../qiskit_addon_sqd.counts.mdx | 14 + ...addon_sqd.counts.normalize_counts_dict.mdx | 20 + ...qd.fermion.bitstring_matrix_to_ci_strs.mdx | 31 + ...n.bitstring_matrix_to_sorted_addresses.mdx | 35 + ...fermion.enlarge_batch_from_transitions.mdx | 29 + ...n_sqd.fermion.flip_orbital_occupancies.mdx | 30 + .../qiskit_addon_sqd.fermion.mdx | 17 + ...it_addon_sqd.fermion.optimize_orbitals.mdx | 62 ++ ...kit_addon_sqd.fermion.rotate_integrals.mdx | 43 ++ ...qiskit_addon_sqd.fermion.solve_fermion.mdx | 47 ++ .../api/qiskit-addon-sqd/qiskit_addon_sqd.mdx | 20 + ...n_sqd.qubit.matrix_elements_from_pauli.mdx | 47 ++ .../qiskit_addon_sqd.qubit.mdx | 15 + ...sqd.qubit.project_operator_to_subspace.mdx | 44 ++ .../qiskit_addon_sqd.qubit.solve_qubit.mdx | 45 ++ ...n_sqd.qubit.sort_and_remove_duplicates.mdx | 30 + .../qiskit_addon_sqd.subsampling.mdx | 12 + ...d.subsampling.postselect_and_subsample.mdx | 44 ++ ...qiskit_addon_sqd.subsampling.subsample.mdx | 39 + docs/api/qiskit-addon-sqd/release-notes.mdx | 250 ++++++ docs/api/qiskit-addon-utils/_package.json | 4 + docs/api/qiskit-addon-utils/_toc.json | 14 + ..._addon_utils.coloring.auto_color_edges.mdx | 28 + ..._utils.coloring.is_valid_edge_coloring.mdx | 30 + .../qiskit_addon_utils.coloring.mdx | 12 + .../qiskit-addon-utils/qiskit_addon_utils.mdx | 17 + ....problem_generators.PauliOrderStrategy.mdx | 38 + ...rators.generate_time_evolution_circuit.mdx | 60 ++ ...em_generators.generate_xyz_hamiltonian.mdx | 75 ++ .../qiskit_addon_utils.problem_generators.mdx | 15 + ...kit_addon_utils.slicing.combine_slices.mdx | 33 + .../qiskit_addon_utils.slicing.mdx | 23 + ..._addon_utils.slicing.slice_by_barriers.mdx | 30 + ..._addon_utils.slicing.slice_by_coloring.mdx | 84 +++ ...kit_addon_utils.slicing.slice_by_depth.mdx | 31 + ...ddon_utils.slicing.slice_by_gate_types.mdx | 32 + .../qiskit_addon_utils.slicing.transpiler.mdx | 13 + ...icing.transpiler.passes.CollectOpColor.mdx | 113 +++ ...licing.transpiler.passes.CollectOpSize.mdx | 110 +++ ...licing.transpiler.passes.CollectOpType.mdx | 110 +++ ..._addon_utils.slicing.transpiler.passes.mdx | 13 + docs/api/qiskit-addon-utils/release-notes.mdx | 24 + public/api/qiskit-addon-cutting/objects.inv | Bin 0 -> 3841 bytes public/api/qiskit-addon-mpf/objects.inv | Bin 0 -> 1706 bytes public/api/qiskit-addon-obp/objects.inv | Bin 0 -> 3195 bytes public/api/qiskit-addon-sqd/objects.inv | Bin 0 -> 3659 bytes public/api/qiskit-addon-utils/objects.inv | Bin 0 -> 2347 bytes ...skit_addon_cutting-instructions-Move-1.svg | 714 ++++++++++++++++++ ...visualization-plot_accumulated_error-2.png | Bin 0 -> 22833 bytes ...ation-plot_left_over_error_budget-2_00.png | Bin 0 -> 22833 bytes ...ation-plot_left_over_error_budget-2_01.png | Bin 0 -> 29161 bytes ...ils-visualization-plot_num_paulis-2_00.png | Bin 0 -> 22833 bytes ...ils-visualization-plot_num_paulis-2_01.png | Bin 0 -> 29161 bytes ...ils-visualization-plot_num_paulis-2_02.png | Bin 0 -> 21541 bytes ...visualization-plot_num_qwc_groups-2_00.png | Bin 0 -> 22833 bytes ...visualization-plot_num_qwc_groups-2_01.png | Bin 0 -> 29161 bytes ...visualization-plot_num_qwc_groups-2_02.png | Bin 0 -> 21541 bytes ...visualization-plot_num_qwc_groups-2_03.png | Bin 0 -> 18098 bytes ...ization-plot_num_truncated_paulis-2_00.png | Bin 0 -> 22833 bytes ...ization-plot_num_truncated_paulis-2_01.png | Bin 0 -> 29161 bytes ...ization-plot_num_truncated_paulis-2_02.png | Bin 0 -> 21541 bytes ...ization-plot_num_truncated_paulis-2_03.png | Bin 0 -> 18098 bytes ...ization-plot_num_truncated_paulis-2_04.png | Bin 0 -> 13809 bytes ...s-visualization-plot_slice_errors-2_00.png | Bin 0 -> 22833 bytes ...s-visualization-plot_slice_errors-2_01.png | Bin 0 -> 29161 bytes ...s-visualization-plot_slice_errors-2_02.png | Bin 0 -> 21541 bytes ...s-visualization-plot_slice_errors-2_03.png | Bin 0 -> 18098 bytes ...s-visualization-plot_slice_errors-2_04.png | Bin 0 -> 13809 bytes ...s-visualization-plot_slice_errors-2_05.png | Bin 0 -> 15360 bytes ...ils-visualization-plot_sum_paulis-2_00.png | Bin 0 -> 22833 bytes ...ils-visualization-plot_sum_paulis-2_01.png | Bin 0 -> 29161 bytes ...ils-visualization-plot_sum_paulis-2_02.png | Bin 0 -> 21541 bytes ...ils-visualization-plot_sum_paulis-2_03.png | Bin 0 -> 18098 bytes ...ils-visualization-plot_sum_paulis-2_04.png | Bin 0 -> 13809 bytes ...ils-visualization-plot_sum_paulis-2_05.png | Bin 0 -> 15360 bytes ...ils-visualization-plot_sum_paulis-2_06.png | Bin 0 -> 16643 bytes ...tors-generate_time_evolution_circuit-1.png | Bin 0 -> 27044 bytes scripts/config/api-html-artifacts.json | 15 + .../config/historical-pages-to-latest.json | 7 +- scripts/js/commands/checkMetadata.ts | 1 + scripts/js/commands/checkOrphanPages.ts | 5 +- scripts/js/lib/api/Pkg.ts | 44 +- scripts/js/lib/links/ignores.ts | 31 +- 166 files changed, 6353 insertions(+), 6 deletions(-) create mode 100644 docs/api/qiskit-addon-cutting/_package.json create mode 100644 docs/api/qiskit-addon-cutting/_toc.json create mode 100644 docs/api/qiskit-addon-cutting/index.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.DeviceConstraints.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.OptimizationParameters.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.PartitionedCuttingProblem.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.cut_gates.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.cut_wires.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.expand_observables.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.find_cuts.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.generate_cutting_experiments.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.instructions.CutWire.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.instructions.Move.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_circuit_qubits.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_problem.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.BaseQPDGate.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.QPDBasis.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.SingleQubitQPDGate.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.TwoQubitQPDGate.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.WeightType.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.decompose_qpd_instructions.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.generate_qpd_weights.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.qpdbasis_from_instruction.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.reconstruct_expectation_values.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.bitwise.bit_count.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.iteration.unique_by_eq.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.iteration.unique_by_id.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.ObservableCollection.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.observables_restricted_to_subsystem.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.simulation.ExactSampler.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.simulation.simulate_statevector_outcomes.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.SeparatedCircuits.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.separate_circuit.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transpiler_passes.ConsolidateResets.mdx create mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transpiler_passes.RemoveFinalReset.mdx create mode 100644 docs/api/qiskit-addon-cutting/release-notes.mdx create mode 100644 docs/api/qiskit-addon-mpf/_package.json create mode 100644 docs/api/qiskit-addon-mpf/_toc.json create mode 100644 docs/api/qiskit-addon-mpf/qiskit_addon_mpf.mdx create mode 100644 docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.LSE.mdx create mode 100644 docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.mdx create mode 100644 docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.setup_approximate_model.mdx create mode 100644 docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.setup_exact_model.mdx create mode 100644 docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.setup_lse.mdx create mode 100644 docs/api/qiskit-addon-mpf/release-notes.mdx create mode 100644 docs/api/qiskit-addon-obp/_package.json create mode 100644 docs/api/qiskit-addon-obp/_toc.json create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.backpropagate.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.metadata.OBPMetadata.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.metadata.SliceMetadata.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.metadata.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.apply_op_to.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.reduce_op.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.to_global_op.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.OperatorBudget.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.SimplifyMetadata.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.simplify.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.TruncationErrorBudget.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.setup_budget.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.truncate_binary_search.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_accumulated_error.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_left_over_error_budget.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_num_paulis.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_num_qwc_groups.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_num_truncated_paulis.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_slice_errors.mdx create mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_sum_paulis.mdx create mode 100644 docs/api/qiskit-addon-obp/release-notes.mdx create mode 100644 docs/api/qiskit-addon-sqd/_package.json create mode 100644 docs/api/qiskit-addon-sqd/_toc.json create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.configuration_recovery.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.configuration_recovery.recover_configurations.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.counts_to_arrays.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.generate_counts_bipartite_hamming.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.generate_counts_uniform.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.normalize_counts_dict.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.enlarge_batch_from_transitions.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.flip_orbital_occupancies.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.optimize_orbitals.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.rotate_integrals.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.solve_fermion.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.matrix_elements_from_pauli.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.project_operator_to_subspace.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.solve_qubit.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.sort_and_remove_duplicates.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.subsampling.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.subsampling.postselect_and_subsample.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.subsampling.subsample.mdx create mode 100644 docs/api/qiskit-addon-sqd/release-notes.mdx create mode 100644 docs/api/qiskit-addon-utils/_package.json create mode 100644 docs/api/qiskit-addon-utils/_toc.json create mode 100644 docs/api/qiskit-addon-utils/qiskit_addon_utils.coloring.auto_color_edges.mdx create mode 100644 docs/api/qiskit-addon-utils/qiskit_addon_utils.coloring.is_valid_edge_coloring.mdx create mode 100644 docs/api/qiskit-addon-utils/qiskit_addon_utils.coloring.mdx create mode 100644 docs/api/qiskit-addon-utils/qiskit_addon_utils.mdx create mode 100644 docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.PauliOrderStrategy.mdx create mode 100644 docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.generate_time_evolution_circuit.mdx create mode 100644 docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.generate_xyz_hamiltonian.mdx create mode 100644 docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.mdx create mode 100644 docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.combine_slices.mdx create mode 100644 docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.mdx create mode 100644 docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_barriers.mdx create mode 100644 docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_coloring.mdx create mode 100644 docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_depth.mdx create mode 100644 docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_gate_types.mdx create mode 100644 docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.mdx create mode 100644 docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.CollectOpColor.mdx create mode 100644 docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.CollectOpSize.mdx create mode 100644 docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.CollectOpType.mdx create mode 100644 docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.mdx create mode 100644 docs/api/qiskit-addon-utils/release-notes.mdx create mode 100644 public/api/qiskit-addon-cutting/objects.inv create mode 100644 public/api/qiskit-addon-mpf/objects.inv create mode 100644 public/api/qiskit-addon-obp/objects.inv create mode 100644 public/api/qiskit-addon-sqd/objects.inv create mode 100644 public/api/qiskit-addon-utils/objects.inv create mode 100644 public/images/api/qiskit-addon-cutting/qiskit_addon_cutting-instructions-Move-1.svg create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_accumulated_error-2.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_left_over_error_budget-2_00.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_left_over_error_budget-2_01.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_paulis-2_00.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_paulis-2_01.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_paulis-2_02.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_qwc_groups-2_00.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_qwc_groups-2_01.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_qwc_groups-2_02.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_qwc_groups-2_03.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_truncated_paulis-2_00.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_truncated_paulis-2_01.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_truncated_paulis-2_02.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_truncated_paulis-2_03.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_truncated_paulis-2_04.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_slice_errors-2_00.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_slice_errors-2_01.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_slice_errors-2_02.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_slice_errors-2_03.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_slice_errors-2_04.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_slice_errors-2_05.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_sum_paulis-2_00.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_sum_paulis-2_01.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_sum_paulis-2_02.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_sum_paulis-2_03.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_sum_paulis-2_04.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_sum_paulis-2_05.png create mode 100644 public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_sum_paulis-2_06.png create mode 100644 public/images/api/qiskit-addon-utils/qiskit_addon_utils-problem_generators-generate_time_evolution_circuit-1.png diff --git a/docs/api/qiskit-addon-cutting/_package.json b/docs/api/qiskit-addon-cutting/_package.json new file mode 100644 index 00000000000..dbc269e5772 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/_package.json @@ -0,0 +1,4 @@ +{ + "name": "qiskit-addon-cutting", + "version": "0.9.0" +} diff --git a/docs/api/qiskit-addon-cutting/_toc.json b/docs/api/qiskit-addon-cutting/_toc.json new file mode 100644 index 00000000000..aa71d8b44f0 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/_toc.json @@ -0,0 +1,155 @@ +{ + "title": "Circuit Cutting", + "children": [ + { + "title": "API index", + "url": "/api/qiskit-addon-cutting" + }, + { + "title": "qiskit_addon_cutting", + "children": [ + { + "title": "Module overview", + "url": "/api/qiskit-addon-cutting" + }, + { + "title": "BaseQPDGate", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.BaseQPDGate" + }, + { + "title": "bit_count", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.bitwise.bit_count" + }, + { + "title": "CommutingObservableGroup", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup" + }, + { + "title": "ConsolidateResets", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transpiler_passes.ConsolidateResets" + }, + { + "title": "cut_gates", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.cut_gates" + }, + { + "title": "cut_wires", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.cut_wires" + }, + { + "title": "CutWire", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.instructions.CutWire" + }, + { + "title": "decompose_qpd_instructions", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.decompose_qpd_instructions" + }, + { + "title": "DeviceConstraints", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.DeviceConstraints" + }, + { + "title": "ExactSampler", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.simulation.ExactSampler" + }, + { + "title": "expand_observables", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.expand_observables" + }, + { + "title": "find_cuts", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.find_cuts" + }, + { + "title": "generate_cutting_experiments", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.generate_cutting_experiments" + }, + { + "title": "generate_qpd_weights", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.generate_qpd_weights" + }, + { + "title": "Move", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.instructions.Move" + }, + { + "title": "ObservableCollection", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.ObservableCollection" + }, + { + "title": "observables_restricted_to_subsystem", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.observables_restricted_to_subsystem" + }, + { + "title": "OptimizationParameters", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.OptimizationParameters" + }, + { + "title": "partition_circuit_qubits", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_circuit_qubits" + }, + { + "title": "partition_problem", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_problem" + }, + { + "title": "PartitionedCuttingProblem", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.PartitionedCuttingProblem" + }, + { + "title": "QPDBasis", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.QPDBasis" + }, + { + "title": "qpdbasis_from_instruction", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.qpdbasis_from_instruction" + }, + { + "title": "reconstruct_expectation_values", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.reconstruct_expectation_values" + }, + { + "title": "RemoveFinalReset", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transpiler_passes.RemoveFinalReset" + }, + { + "title": "separate_circuit", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.separate_circuit" + }, + { + "title": "SeparatedCircuits", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.SeparatedCircuits" + }, + { + "title": "simulate_statevector_outcomes", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.simulation.simulate_statevector_outcomes" + }, + { + "title": "SingleQubitQPDGate", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.SingleQubitQPDGate" + }, + { + "title": "TwoQubitQPDGate", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.TwoQubitQPDGate" + }, + { + "title": "unique_by_eq", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.iteration.unique_by_eq" + }, + { + "title": "unique_by_id", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.iteration.unique_by_id" + }, + { + "title": "WeightType", + "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.WeightType" + } + ] + }, + { + "title": "Release notes", + "url": "/api/qiskit-addon-cutting/release-notes" + } + ], + "collapsed": true +} diff --git a/docs/api/qiskit-addon-cutting/index.mdx b/docs/api/qiskit-addon-cutting/index.mdx new file mode 100644 index 00000000000..f1ce6f0ad24 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/index.mdx @@ -0,0 +1,150 @@ +--- +title: qiskit_addon_cutting +description: API reference for qiskit_addon_cutting +in_page_toc_min_heading_level: 2 +python_api_type: module +python_api_name: qiskit_addon_cutting +--- + + + +# API References + +## Circuit Cutting + +Circuit Cutting ([`qiskit_addon_cutting`](#module-qiskit_addon_cutting "qiskit_addon_cutting")). + + + +### Circuit Cutting + +| | | +| --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| [`cut_wires`](qiskit_addon_cutting.cut_wires "qiskit_addon_cutting.cut_wires") | Transform all [`CutWire`](qiskit_addon_cutting.instructions.CutWire "qiskit_addon_cutting.instructions.CutWire") instructions in a circuit to [`Move`](qiskit_addon_cutting.instructions.Move "qiskit_addon_cutting.instructions.Move") instructions marked for cutting. | +| [`expand_observables`](qiskit_addon_cutting.expand_observables "qiskit_addon_cutting.expand_observables") | Expand observable(s) according to the qubit mapping between `original_circuit` and `final_circuit`. | +| [`partition_circuit_qubits`](qiskit_addon_cutting.partition_circuit_qubits "qiskit_addon_cutting.partition_circuit_qubits") | Replace all nonlocal gates belonging to more than one partition with instances of [`TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate"). | +| [`partition_problem`](qiskit_addon_cutting.partition_problem "qiskit_addon_cutting.partition_problem") | Separate an input circuit and observable(s). | +| [`cut_gates`](qiskit_addon_cutting.cut_gates "qiskit_addon_cutting.cut_gates") | Transform specified gates into [`TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate")s. | +| [`generate_cutting_experiments`](qiskit_addon_cutting.generate_cutting_experiments "qiskit_addon_cutting.generate_cutting_experiments") | Generate cutting subexperiments and their associated coefficients. | +| [`reconstruct_expectation_values`](qiskit_addon_cutting.reconstruct_expectation_values "qiskit_addon_cutting.reconstruct_expectation_values") | Reconstruct an expectation value from the results of the sub-experiments. | + +| | | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| [`PartitionedCuttingProblem`](qiskit_addon_cutting.PartitionedCuttingProblem "qiskit_addon_cutting.PartitionedCuttingProblem") | The result of decomposing and separating a circuit and observable(s). | +| [`instructions.CutWire`](qiskit_addon_cutting.instructions.CutWire "qiskit_addon_cutting.instructions.CutWire") | An instruction for denoting a wire cut location. | +| [`instructions.Move`](qiskit_addon_cutting.instructions.Move "qiskit_addon_cutting.instructions.Move") | A two-qubit instruction representing a reset of the second qubit followed by a swap. | + +#### Automatic Cut Finding + +| | | +| ------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------- | +| [`find_cuts`](qiskit_addon_cutting.find_cuts "qiskit_addon_cutting.find_cuts") | Find cut locations in a circuit, given optimization parameters and cutting constraints. | + +| | | +| --------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| [`OptimizationParameters`](qiskit_addon_cutting.OptimizationParameters "qiskit_addon_cutting.OptimizationParameters") | Specify parameters that control the optimization. | +| [`DeviceConstraints`](qiskit_addon_cutting.DeviceConstraints "qiskit_addon_cutting.DeviceConstraints") | Specify the constraints (qubits per subcircuit) that must be respected. | + +### Quasi-Probability Decomposition (QPD) + +| | | +| --------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| [`qpd.QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.QPDBasis") | Basis in which to decompose an operation. | +| [`qpd.BaseQPDGate`](qiskit_addon_cutting.qpd.BaseQPDGate "qiskit_addon_cutting.qpd.BaseQPDGate") | Base class for a gate to be decomposed using quasiprobability decomposition. | +| [`qpd.SingleQubitQPDGate`](qiskit_addon_cutting.qpd.SingleQubitQPDGate "qiskit_addon_cutting.qpd.SingleQubitQPDGate") | Single qubit gate to be decomposed using quasiprobability decomposition. | +| [`qpd.TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate") | Two qubit gate to be decomposed using quasiprobability decomposition. | +| [`qpd.WeightType`](qiskit_addon_cutting.qpd.WeightType "qiskit_addon_cutting.qpd.WeightType") | Type of weight associated with a QPD sample. | + +| | | +| --------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | +| [`qpd.generate_qpd_weights`](qiskit_addon_cutting.qpd.generate_qpd_weights "qiskit_addon_cutting.qpd.generate_qpd_weights") | Generate weights from the joint quasiprobability distribution. | +| [`qpd.decompose_qpd_instructions`](qiskit_addon_cutting.qpd.decompose_qpd_instructions "qiskit_addon_cutting.qpd.decompose_qpd_instructions") | Replace all QPD instructions in the circuit with local Qiskit operations and measurements. | +| [`qpd.qpdbasis_from_instruction`](qiskit_addon_cutting.qpd.qpdbasis_from_instruction "qiskit_addon_cutting.qpd.qpdbasis_from_instruction") | Generate a [`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.QPDBasis") object, given a supported operation. | + + + +## Utilities + +Utility functions. + + + + + +### Bitwise utilities ([`qiskit_addon_cutting.utils.bitwise`](#module-qiskit_addon_cutting.utils.bitwise "qiskit_addon_cutting.utils.bitwise")) + +Bitwise utilities. + +| | | +| ---------------------------------------------------------------------------------------------------------------- | ------------------------- | +| [`bit_count`](qiskit_addon_cutting.utils.bitwise.bit_count "qiskit_addon_cutting.utils.bitwise.bit_count")(x, /) | Count number of set bits. | + + + + + +### Iteration utilities ([`qiskit_addon_cutting.utils.iteration`](#module-qiskit_addon_cutting.utils.iteration "qiskit_addon_cutting.utils.iteration")) + +Iteration utilities. + +| | | +| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------- | +| [`unique_by_id`](qiskit_addon_cutting.utils.iteration.unique_by_id "qiskit_addon_cutting.utils.iteration.unique_by_id")(iterable, /) | Return unique objects in `iterable`, by identity. | +| [`unique_by_eq`](qiskit_addon_cutting.utils.iteration.unique_by_eq "qiskit_addon_cutting.utils.iteration.unique_by_eq")(iterable, /) | Return unique objects in `iterable`, by equality. | + + + + + +### Observable grouping ([`qiskit_addon_cutting.utils.observable_grouping`](#module-qiskit_addon_cutting.utils.observable_grouping "qiskit_addon_cutting.utils.observable_grouping")) + +Module for conducting Pauli observable grouping. + +| | | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| [`observables_restricted_to_subsystem`](qiskit_addon_cutting.utils.observable_grouping.observables_restricted_to_subsystem "qiskit_addon_cutting.utils.observable_grouping.observables_restricted_to_subsystem")(qubits, ...) | Restrict each observable to its support on a given subsystem. | +| [`CommutingObservableGroup`](qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup "qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup")(general\_observable, ...) | Set of mutually qubit-wise commuting observables. | +| [`ObservableCollection`](qiskit_addon_cutting.utils.observable_grouping.ObservableCollection "qiskit_addon_cutting.utils.observable_grouping.ObservableCollection")(observables, /) | Collection of observables organized for efficient taking of measurements. | + + + + + +### Simulation ([`qiskit_addon_cutting.utils.simulation`](#module-qiskit_addon_cutting.utils.simulation "qiskit_addon_cutting.utils.simulation")) + +Simulation of precise measurement outcome probabilities. + +| | | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | +| [`simulate_statevector_outcomes`](qiskit_addon_cutting.utils.simulation.simulate_statevector_outcomes "qiskit_addon_cutting.utils.simulation.simulate_statevector_outcomes")(qc, /) | Return each classical outcome along with its precise probability. | +| [`ExactSampler`](qiskit_addon_cutting.utils.simulation.ExactSampler "qiskit_addon_cutting.utils.simulation.ExactSampler")(\*\[, options]) | Sampler which returns exact probabilities for each possible outcome. | + + + + + +### Transforms ([`qiskit_addon_cutting.utils.transforms`](#module-qiskit_addon_cutting.utils.transforms "qiskit_addon_cutting.utils.transforms")) + +Functions for manipulating quantum circuits. + +| | | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ | +| [`separate_circuit`](qiskit_addon_cutting.utils.transforms.separate_circuit "qiskit_addon_cutting.utils.transforms.separate_circuit")(circuit\[, partition\_labels]) | Separate the circuit into its disconnected components. | + +| | | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| [`SeparatedCircuits`](qiskit_addon_cutting.utils.transforms.SeparatedCircuits "qiskit_addon_cutting.utils.transforms.SeparatedCircuits")(subcircuits, qubit\_map) | Named tuple for result of [`separate_circuit()`](qiskit_addon_cutting.utils.transforms.separate_circuit "qiskit_addon_cutting.utils.transforms.separate_circuit"). | + + + + + +### Transpiler passes ([`qiskit_addon_cutting.utils.transpiler_passes`](#module-qiskit_addon_cutting.utils.transpiler_passes "qiskit_addon_cutting.utils.transpiler_passes")) + +Transpiler passes useful for circuit knitting. + +| | | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | +| [`RemoveFinalReset`](qiskit_addon_cutting.utils.transpiler_passes.RemoveFinalReset "qiskit_addon_cutting.utils.transpiler_passes.RemoveFinalReset")(\*args, \*\*kwargs) | Remove reset when it is the final instruction on a qubit wire. | +| [`ConsolidateResets`](qiskit_addon_cutting.utils.transpiler_passes.ConsolidateResets "qiskit_addon_cutting.utils.transpiler_passes.ConsolidateResets")(\*args, \*\*kwargs) | Consolidate a run duplicate resets in to a single reset. | + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.DeviceConstraints.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.DeviceConstraints.mdx new file mode 100644 index 00000000000..6a8b8c59d50 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.DeviceConstraints.mdx @@ -0,0 +1,31 @@ +--- +title: DeviceConstraints +description: API reference for qiskit_addon_cutting.DeviceConstraints +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_cutting.DeviceConstraints +--- + + + +# qiskit\_addon\_cutting.DeviceConstraints + + + Bases: [`object`](https://docs.python.org/3/library/functions.html#object "(in Python v3.12)") + + Specify the constraints (qubits per subcircuit) that must be respected. + + ## Methods + + | | | + | ----------------------------------- | ------------------------------------------- | + | `__init__`(qubits\_per\_subcircuit) | | + | `get_qpu_width`() | Return the number of qubits per subcircuit. | + + ## Attributes + + | | | + | ----------------------- | - | + | `qubits_per_subcircuit` | | + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.OptimizationParameters.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.OptimizationParameters.mdx new file mode 100644 index 00000000000..938685312f0 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.OptimizationParameters.mdx @@ -0,0 +1,36 @@ +--- +title: OptimizationParameters +description: API reference for qiskit_addon_cutting.OptimizationParameters +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_cutting.OptimizationParameters +--- + + + +# qiskit\_addon\_cutting.OptimizationParameters + + + Bases: [`object`](https://docs.python.org/3/library/functions.html#object "(in Python v3.12)") + + Specify parameters that control the optimization. + + If either of the constraints specified by `max_backjumps` or `max_gamma` are exceeded, the search terminates but nevertheless returns the result of a greedy best first search, which gives an *upper-bound* on gamma. + + ## Methods + + | | | + | ---------------------------------------------------- | - | + | `__init__`(\[seed, max\_gamma, max\_backjumps, ...]) | | + + ## Attributes + + | | | + | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | + | `gate_lo` | Bool indicating whether or not to allow LO gate cuts while finding cuts. | + | `max_backjumps` | Maximum number of backjumps that can be performed before the search is forced to terminate; setting it to `None` implies that no such restriction is placed. | + | `max_gamma` | Maximum allowed value of gamma which, if exceeded, forces the search to terminate. | + | `seed` | The seed to use when initializing Numpy random number generators in the best first search priority queue. | + | `wire_lo` | Bool indicating whether or not to allow LO wire cuts while finding cuts. | + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.PartitionedCuttingProblem.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.PartitionedCuttingProblem.mdx new file mode 100644 index 00000000000..0affc8a2270 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.PartitionedCuttingProblem.mdx @@ -0,0 +1,33 @@ +--- +title: PartitionedCuttingProblem +description: API reference for qiskit_addon_cutting.PartitionedCuttingProblem +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_cutting.PartitionedCuttingProblem +--- + + + +# qiskit\_addon\_cutting.PartitionedCuttingProblem + + + Bases: [`NamedTuple`](https://docs.python.org/3/library/typing.html#typing.NamedTuple "(in Python v3.12)") + + The result of decomposing and separating a circuit and observable(s). + + Create new instance of PartitionedCuttingProblem(subcircuits, bases, subobservables) + + ## Methods + + | | + | - | + + ## Attributes + + | | | + | ---------------- | ------------------------ | + | `bases` | Alias for field number 1 | + | `subcircuits` | Alias for field number 0 | + | `subobservables` | Alias for field number 2 | + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.cut_gates.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.cut_gates.mdx new file mode 100644 index 00000000000..810e5369828 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.cut_gates.mdx @@ -0,0 +1,34 @@ +--- +title: cut_gates +description: API reference for qiskit_addon_cutting.cut_gates +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_cutting.cut_gates +--- + + + +# qiskit\_addon\_cutting.cut\_gates + + + Transform specified gates into [`TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate")s. + + **Parameters** + + * **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – The circuit containing gates to be decomposed + * **gate\_ids** ([`Sequence`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.12)")\[[`int`](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)")]) – The indices of the gates to decompose + * **inplace** ([`bool`](https://docs.python.org/3/library/functions.html#bool "(in Python v3.12)")) – Flag denoting whether to copy the input circuit before acting on it + + **Return type** + + [`tuple`](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.12)")\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`list`](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.12)")\[[`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.qpd_basis.QPDBasis")]] + + **Returns** + + A copy of the input circuit with the specified gates replaced with [`TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate")s and a list of [`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.QPDBasis") instances – one for each decomposed gate. + + **Raises** + + [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – The input circuit should contain no classical bits or registers. + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.cut_wires.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.cut_wires.mdx new file mode 100644 index 00000000000..9c8a50059ee --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.cut_wires.mdx @@ -0,0 +1,32 @@ +--- +title: cut_wires +description: API reference for qiskit_addon_cutting.cut_wires +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_cutting.cut_wires +--- + + + +# qiskit\_addon\_cutting.cut\_wires + + + Transform all [`CutWire`](qiskit_addon_cutting.instructions.CutWire "qiskit_addon_cutting.instructions.CutWire") instructions in a circuit to [`Move`](qiskit_addon_cutting.instructions.Move "qiskit_addon_cutting.instructions.Move") instructions marked for cutting. + + The returned circuit will have one newly allocated qubit for every [`CutWire`](qiskit_addon_cutting.instructions.CutWire "qiskit_addon_cutting.instructions.CutWire") instruction. + + See Sec. 3 and Appendix A of [2302.03366v1](https://arxiv.org/abs/2302.03366v1) for more information about the two different representations of wire cuts: single-qubit ([`CutWire`](qiskit_addon_cutting.instructions.CutWire "qiskit_addon_cutting.instructions.CutWire")) vs. two-qubit ([`Move`](qiskit_addon_cutting.instructions.Move "qiskit_addon_cutting.instructions.Move")). + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Original circuit with [`CutWire`](qiskit_addon_cutting.instructions.CutWire "qiskit_addon_cutting.instructions.CutWire") instructions + + **Returns** + + New circuit with [`CutWire`](qiskit_addon_cutting.instructions.CutWire "qiskit_addon_cutting.instructions.CutWire") instructions replaced by [`Move`](qiskit_addon_cutting.instructions.Move "qiskit_addon_cutting.instructions.Move") instructions wrapped in `TwoQubitQPDGate`s + + **Return type** + + circuit + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.expand_observables.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.expand_observables.mdx new file mode 100644 index 00000000000..27b565371a4 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.expand_observables.mdx @@ -0,0 +1,43 @@ +--- +title: expand_observables +description: API reference for qiskit_addon_cutting.expand_observables +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_cutting.expand_observables +--- + + + +# qiskit\_addon\_cutting.expand\_observables + + + Expand observable(s) according to the qubit mapping between `original_circuit` and `final_circuit`. + + The `Qubit`s on `final_circuit` must be a superset of those on `original_circuit`. + + Given a `PauliList` of observables, this function returns new observables with identity operators placed on the qubits that did not exist in `original_circuit`. This way, observables on `original_circuit` can be mapped to appropriate observables on `final_circuit`. + + This function is designed to be used after calling `final_circuit = transform_cuts_to_moves(original_circuit)` (see `transform_cuts_to_moves()`). + + This function requires `observables.num_qubits == original_circuit.num_qubits` and returns new observables such that `retval.num_qubits == final_circuit.num_qubits`. + + **Parameters** + + * **observables** ([`PauliList`](/api/qiskit/qiskit.quantum_info.PauliList "(in Qiskit v1.2)")) – Observables corresponding to `original_circuit` + * **original\_circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Original circuit + * **final\_circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Final circuit, whose qubits the original `observables` should be expanded to + + **Return type** + + [`PauliList`](/api/qiskit/qiskit.quantum_info.PauliList "(in Qiskit v1.2)") + + **Returns** + + New $N$-qubit observables which are compatible with the $N$-qubit `final_circuit` + + **Raises** + + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – `observables` and `original_circuit` have different number of qubits. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – Qubit from `original_circuit` cannot be found in `final_circuit`. + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.find_cuts.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.find_cuts.mdx new file mode 100644 index 00000000000..3cdbd9b706a --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.find_cuts.mdx @@ -0,0 +1,40 @@ +--- +title: find_cuts +description: API reference for qiskit_addon_cutting.find_cuts +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_cutting.find_cuts +--- + + + +# qiskit\_addon\_cutting.find\_cuts + + + Find cut locations in a circuit, given optimization parameters and cutting constraints. + + **Parameters** + + * **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – The circuit to cut. The input circuit may not contain gates acting on more than two qubits. + * **optimization** ([`OptimizationParameters`](qiskit_addon_cutting.OptimizationParameters "qiskit_addon_cutting.automated_cut_finding.OptimizationParameters")) – Options for controlling optimizer behavior. Currently, the optimal cuts are chosen using Dijkstra’s best-first search algorithm. + * **constraints** ([`DeviceConstraints`](qiskit_addon_cutting.DeviceConstraints "qiskit_addon_cutting.automated_cut_finding.DeviceConstraints")) – Constraints on how the circuit may be partitioned + + **Return type** + + [`tuple`](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.12)")\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`dict`](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.12)")\[[`str`](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.12)"), [`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.12)")]] + + **Returns** + + A circuit containing [`BaseQPDGate`](qiskit_addon_cutting.qpd.BaseQPDGate "qiskit_addon_cutting.qpd.BaseQPDGate") instances. The subcircuits resulting from cutting these gates will be runnable on the devices meeting the `constraints`. + + **A metadata dictionary:** + + * cuts: A list of length-2 tuples describing each cut in the output circuit. The tuples are formatted as `(cut_type: str, cut_id: int)`. The cut ID is the index of the cut gate or wire in the output circuit’s `data` field. + * sampling\_overhead: The sampling overhead incurred from cutting the specified gates and wires. + * minimum\_reached: A bool indicating whether or not the search conclusively found the minimum of cost function. `minimum_reached = False` could also mean that the cost returned was actually the lowest possible cost but that the search was not allowed to run long enough to prove that this was the case. + + **Raises** + + [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – The input circuit contains a gate acting on more than 2 qubits. + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.generate_cutting_experiments.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.generate_cutting_experiments.mdx new file mode 100644 index 00000000000..4d6f2f2f0bf --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.generate_cutting_experiments.mdx @@ -0,0 +1,47 @@ +--- +title: generate_cutting_experiments +description: API reference for qiskit_addon_cutting.generate_cutting_experiments +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_cutting.generate_cutting_experiments +--- + + + +# qiskit\_addon\_cutting.generate\_cutting\_experiments + + + Generate cutting subexperiments and their associated coefficients. + + If the input, `circuits`, is a `QuantumCircuit` instance, the output subexperiments will be contained within a 1D array, and `observables` is expected to be a `PauliList` instance. + + If the input circuit and observables are specified by dictionaries with partition labels as keys, the output subexperiments will be returned as a dictionary which maps each partition label to a 1D array containing the subexperiments associated with that partition. + + In both cases, the subexperiment lists are ordered as follows: + + > $[sample_{0}observable_{0}, \ldots, sample_{0}observable_{N-1}, sample_{1}observable_{0}, \ldots, sample_{M-1}observable_{N-1}]$ + + The coefficients will always be returned as a 1D array – one coefficient for each unique sample. + + **Parameters** + + * **circuits** (QuantumCircuit | dict\[Hashable, QuantumCircuit]) – The circuit(s) to partition and separate + * **observables** (PauliList | dict\[Hashable, PauliList]) – The observable(s) to evaluate for each unique sample + * **num\_samples** (int | float) – The number of samples to draw from the quasi-probability distribution. If set to infinity, the weights will be generated rigorously rather than by sampling from the distribution. + + **Return type** + + tuple\[list\[QuantumCircuit] | dict\[Hashable, list\[QuantumCircuit]], list\[tuple\[float, WeightType]]] + + **Returns** + + A tuple containing the cutting experiments and their associated coefficients. If the input circuits is a `QuantumCircuit` instance, the output subexperiments will be a sequence of circuits – one for every unique sample and observable. If the input circuits are represented as a dictionary keyed by partition labels, the output subexperiments will also be a dictionary keyed by partition labels and containing the subexperiments for each partition. The coefficients are always a sequence of length-2 tuples, where each tuple contains the coefficient and the `WeightType`. Each coefficient corresponds to one unique sample. + + **Raises** + + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – `num_samples` must be at least one. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – `circuits` and `observables` are incompatible types + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – `SingleQubitQPDGate` instances must have their cut ID appended to the gate label so they may be associated with other gates belonging to the same cut. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – `SingleQubitQPDGate` instances are not allowed in unseparated circuits. + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.instructions.CutWire.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.instructions.CutWire.mdx new file mode 100644 index 00000000000..328efa08218 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.instructions.CutWire.mdx @@ -0,0 +1,31 @@ +--- +title: CutWire +description: API reference for qiskit_addon_cutting.instructions.CutWire +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_cutting.instructions.CutWire +--- + + + +# qiskit\_addon\_cutting.instructions.CutWire + + + Bases: [`Gate`](/api/qiskit/qiskit.circuit.Gate "(in Qiskit v1.2)") + + An instruction for denoting a wire cut location. + + Create CutWire instruction. + + ## Methods + + | | | + | -------------------- | --------------------------- | + | `__init__`(\[label]) | Create CutWire instruction. | + + ## Attributes + + | | + | - | + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.instructions.Move.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.instructions.Move.mdx new file mode 100644 index 00000000000..2b4a18e1753 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.instructions.Move.mdx @@ -0,0 +1,70 @@ +--- +title: Move +description: API reference for qiskit_addon_cutting.instructions.Move +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_cutting.instructions.Move +--- + + + +# qiskit\_addon\_cutting.instructions.Move + + + Bases: [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") + + A two-qubit instruction representing a reset of the second qubit followed by a swap. + + **Circuit Symbol:** + + ```python + ┌───────┐ + q_0: ┤0 ├ q_0: ──────X─ + │ Move │ = │ + q_1: ┤1 ├ q_1: ─|0>──X─ + └───────┘ + ``` + + The desired effect of this instruction, typically, is to move the state of the first qubit to the second qubit. For this to work as expected, the second incoming qubit must share no entanglement with the remainder of the system. If this qubit *is* entangled, then performing the reset operation will in turn implement a quantum channel on the other qubit(s) with which it is entangled, resulting in the partial collapse of those qubits. + + The simplest way to ensure that the second (i.e., destination) qubit shares no entanglement with the remainder of the system is to use a fresh qubit which has not been used since initialization. + + Another valid way is to use, as a desination qubit, a qubit whose immediate prior use was as the source (i.e., first) qubit of a preceding [`Move`](#qiskit_addon_cutting.instructions.Move "qiskit_addon_cutting.instructions.Move") operation. + + The following circuit contains two [`Move`](#qiskit_addon_cutting.instructions.Move "qiskit_addon_cutting.instructions.Move") operations, corresponding to each of the aforementioned cases: + + ```python + import numpy as np + from qiskit import QuantumCircuit + from qiskit_addon_cutting.instructions import Move + + qc = QuantumCircuit(4) + qc.ryy(np.pi / 4, 0, 1) + qc.rx(np.pi / 4, 3) + qc.append(Move(), [1, 2]) + qc.rz(np.pi / 4, 0) + qc.ryy(np.pi / 4, 2, 3) + qc.append(Move(), [2, 1]) + qc.ryy(np.pi / 4, 0, 1) + qc.rx(np.pi / 4, 3) + qc.draw("mpl") + ``` + + ![../\_images/qiskit\_addon\_cutting-instructions-Move-1.svg](/images/api/qiskit-addon-cutting/qiskit_addon_cutting-instructions-Move-1.svg) + + A full demonstration of the [`Move`](#qiskit_addon_cutting.instructions.Move "qiskit_addon_cutting.instructions.Move") instruction is available in [the introductory tutorial on wire cutting](tutorials/03_wire_cutting_via_move_instruction). + + Create a [`Move`](#qiskit_addon_cutting.instructions.Move "qiskit_addon_cutting.instructions.Move") instruction. + + ## Methods + + | | | + | -------------------- | ---------------------------------------------------------------------------------------------------------------- | + | `__init__`(\[label]) | Create a [`Move`](#qiskit_addon_cutting.instructions.Move "qiskit_addon_cutting.instructions.Move") instruction. | + + ## Attributes + + | | + | - | + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_circuit_qubits.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_circuit_qubits.mdx new file mode 100644 index 00000000000..c0f5a360520 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_circuit_qubits.mdx @@ -0,0 +1,37 @@ +--- +title: partition_circuit_qubits +description: API reference for qiskit_addon_cutting.partition_circuit_qubits +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_cutting.partition_circuit_qubits +--- + + + +# qiskit\_addon\_cutting.partition\_circuit\_qubits + + + Replace all nonlocal gates belonging to more than one partition with instances of [`TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate"). + + [`TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate")s belonging to a single partition will not be affected. + + **Parameters** + + * **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – The circuit to partition + * **partition\_labels** ([`Sequence`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.12)")\[[`Hashable`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Hashable "(in Python v3.12)")]) – A sequence containing a partition label for each qubit in the input circuit. Nonlocal gates belonging to more than one partition will be replaced with [`TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate")s. + * **inplace** ([`bool`](https://docs.python.org/3/library/functions.html#bool "(in Python v3.12)")) – Flag denoting whether to copy the input circuit before acting on it + + **Return type** + + [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)") + + **Returns** + + The output circuit with each nonlocal gate spanning two partitions replaced by a [`TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate") + + **Raises** + + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – The length of partition\_labels does not equal the number of qubits in the circuit. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – Input circuit contains unsupported gate. + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_problem.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_problem.mdx new file mode 100644 index 00000000000..57e7434a7c7 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_problem.mdx @@ -0,0 +1,46 @@ +--- +title: partition_problem +description: API reference for qiskit_addon_cutting.partition_problem +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_cutting.partition_problem +--- + + + +# qiskit\_addon\_cutting.partition\_problem + + + Separate an input circuit and observable(s). + + If `partition_labels` is provided, then qubits with matching partition labels will be grouped together, and non-local gates spanning more than one partition will be cut apart. The label `None` is treated specially: any qubit with that partition label must be unused in the circuit. + + If `partition_labels` is not provided, then it will be determined automatically from the connectivity of the circuit. This automatic determination ignores any [`TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate")s in the `circuit`, as these denote instructions that are explicitly destined for cutting. The resulting partition labels, in the automatic case, will be consecutive integers starting with 0. Qubits which are idle throughout the circuit will be assigned a partition label of `None`. + + All cut instructions will be replaced with [`SingleQubitQPDGate`](qiskit_addon_cutting.qpd.SingleQubitQPDGate "qiskit_addon_cutting.qpd.SingleQubitQPDGate")s. + + If provided, `observables` will be separated along the boundaries specified by the partition labels. + + **Parameters** + + * **circuit** (QuantumCircuit) – The circuit to partition and separate + * **partition\_labels** (Sequence\[Hashable] | None) – A sequence of labels, such that each label corresponds to the circuit qubit with the same index + * **observables** (PauliList | None) – The observables to separate + + **Return type** + + PartitionedCuttingProblem + + **Returns** + + A tuple containing a dictionary mapping a partition label to a subcircuit, a list of QPD bases (one for each circuit gate or wire which was decomposed), and, optionally, a dictionary mapping a partition label to a list of Pauli observables. + + **Raises** + + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – The number of partition labels does not equal the number of qubits in the circuit. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – An input observable acts on a different number of qubits than the input circuit. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – An input observable has a phase not equal to 1. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – A qubit with a label of `None` is not idle + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – The input circuit should contain no classical bits or registers. + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.BaseQPDGate.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.BaseQPDGate.mdx new file mode 100644 index 00000000000..1a1b84efd6f --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.BaseQPDGate.mdx @@ -0,0 +1,41 @@ +--- +title: BaseQPDGate +description: API reference for qiskit_addon_cutting.qpd.BaseQPDGate +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_cutting.qpd.BaseQPDGate +--- + + + +# qiskit\_addon\_cutting.qpd.BaseQPDGate + + + Bases: [`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)") + + Base class for a gate to be decomposed using quasiprobability decomposition. + + Initialize the instruction, and assign member variables. + + **Parameters** + + * **name** (str) – Name of the QPD gate. + * **basis** (QPDBasis) – A probabilistic basis to which the gate should be decomposed + * **num\_qubits** (int) – The number of qubits on which the QPD gate acts + * **basis\_id** (int | None) – An index to the basis to which the gate should be decomposed. This index is to basis.maps. + * **label** (str | None) – An optional label for the gate + + ## Methods + + | | | + | ------------------------------------------------ | -------------------------------------------------------- | + | `__init__`(name, basis, num\_qubits, \*\[, ...]) | Initialize the instruction, and assign member variables. | + + ## Attributes + + | | | + | ---------- | ------------------------------------------- | + | `basis` | Quasiprobability decomposition basis. | + | `basis_id` | Index to basis used to decompose this gate. | + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.QPDBasis.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.QPDBasis.mdx new file mode 100644 index 00000000000..7550bc43e40 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.QPDBasis.mdx @@ -0,0 +1,49 @@ +--- +title: QPDBasis +description: API reference for qiskit_addon_cutting.qpd.QPDBasis +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_cutting.qpd.QPDBasis +--- + + + +# qiskit\_addon\_cutting.qpd.QPDBasis + + + Bases: [`object`](https://docs.python.org/3/library/functions.html#object "(in Python v3.12)") + + Basis in which to decompose an operation. + + This class defines a basis in which a quantum operation will be decomposed. The ideal (noise-free) quantum operation will be decomposed into a quasiprobabilistic mixture of noisy circuits. + + Assign member variables. + + **Parameters** + + * **maps** ([`Sequence`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.12)")\[[`tuple`](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.12)")\[[`Sequence`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.12)")\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")], [`...`](https://docs.python.org/3/library/constants.html#Ellipsis "(in Python v3.12)")]]) – A sequence of tuples describing the noisy operations probabilistically used to simulate an ideal quantum operation. + * **coeffs** ([`Sequence`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.12)")\[[`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.12)")]) – Coefficients for quasiprobability representation. Each coefficient can be any real number. + + **Returns** + + None + + ## Methods + + | | | + | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | + | `__init__`(maps, coeffs) | Assign member variables. | + | `from_instruction`(gate, /) | Generate a [`QPDBasis`](#qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.QPDBasis") object, given a supported operation. | + + ## Attributes + + | | | + | --------------- | -------------------------------------------------------- | + | `coeffs` | Quasiprobability decomposition coefficients. | + | `kappa` | Get the square root of the sampling overhead. | + | `maps` | Get mappings for each qubit in the decomposition. | + | `num_qubits` | Get number of qubits that this decomposition acts on. | + | `overhead` | Get the sampling overhead. | + | `probabilities` | Get the probabilities on which the maps will be sampled. | + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.SingleQubitQPDGate.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.SingleQubitQPDGate.mdx new file mode 100644 index 00000000000..c72ece79e17 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.SingleQubitQPDGate.mdx @@ -0,0 +1,42 @@ +--- +title: SingleQubitQPDGate +description: API reference for qiskit_addon_cutting.qpd.SingleQubitQPDGate +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_cutting.qpd.SingleQubitQPDGate +--- + + + +# qiskit\_addon\_cutting.qpd.SingleQubitQPDGate + + + Bases: [`BaseQPDGate`](qiskit_addon_cutting.qpd.BaseQPDGate "qiskit_addon_cutting.qpd.instructions.qpd_gate.BaseQPDGate") + + Single qubit gate to be decomposed using quasiprobability decomposition. + + This gate could be part of a larger decomposition on many qubits, or it could be a standalone single gate decomposition. + + Initialize the single qubit QPD gate, and assign member variables. + + **Parameters** + + **qubit\_id** (int) – This gate’s relative index to the decomposition which it belongs. Single qubit QPDGates should have qubit\_id 0 if they describe a local decomposition, such as a wire cut. + + **Raises** + + [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – qubit\_id is out of range + + ## Methods + + | | | + | ----------------------------------------------------- | ------------------------------------------------------------------ | + | `__init__`(basis, qubit\_id, \*\[, basis\_id, label]) | Initialize the single qubit QPD gate, and assign member variables. | + + ## Attributes + + | | | + | ---------- | --------------------------------------------------------------- | + | `qubit_id` | Relative qubit index of this gate in the overall decomposition. | + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.TwoQubitQPDGate.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.TwoQubitQPDGate.mdx new file mode 100644 index 00000000000..6358050dba8 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.TwoQubitQPDGate.mdx @@ -0,0 +1,36 @@ +--- +title: TwoQubitQPDGate +description: API reference for qiskit_addon_cutting.qpd.TwoQubitQPDGate +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_cutting.qpd.TwoQubitQPDGate +--- + + + +# qiskit\_addon\_cutting.qpd.TwoQubitQPDGate + + + Bases: [`BaseQPDGate`](qiskit_addon_cutting.qpd.BaseQPDGate "qiskit_addon_cutting.qpd.instructions.qpd_gate.BaseQPDGate") + + Two qubit gate to be decomposed using quasiprobability decomposition. + + Initialize the two qubit QPD gate. + + **Raises** + + [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – The [`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.QPDBasis") acts on a number of qubits not equal to 2. + + ## Methods + + | | | + | ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | `__init__`(basis, \*\[, basis\_id, label]) | Initialize the two qubit QPD gate. | + | `from_instruction`(instruction, /) | Create a [`TwoQubitQPDGate`](#qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate") which represents a cut version of the given `instruction`. | + + ## Attributes + + | | + | - | + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.WeightType.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.WeightType.mdx new file mode 100644 index 00000000000..70327fdae17 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.WeightType.mdx @@ -0,0 +1,25 @@ +--- +title: WeightType +description: API reference for qiskit_addon_cutting.qpd.WeightType +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_cutting.qpd.WeightType +--- + + + +# qiskit\_addon\_cutting.qpd.WeightType + + + Bases: [`Enum`](https://docs.python.org/3/library/enum.html#enum.Enum "(in Python v3.12)") + + Type of weight associated with a QPD sample. + + ## Attributes + + | | | + | --------- | ------------------------------------------------------------ | + | `EXACT` | A weight given in proportion to its exact weight | + | `SAMPLED` | A weight that was determined through some sampling procedure | + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.decompose_qpd_instructions.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.decompose_qpd_instructions.mdx new file mode 100644 index 00000000000..816ce29ae83 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.decompose_qpd_instructions.mdx @@ -0,0 +1,40 @@ +--- +title: decompose_qpd_instructions +description: API reference for qiskit_addon_cutting.qpd.decompose_qpd_instructions +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_cutting.qpd.decompose_qpd_instructions +--- + + + +# qiskit\_addon\_cutting.qpd.decompose\_qpd\_instructions + + + Replace all QPD instructions in the circuit with local Qiskit operations and measurements. + + **Parameters** + + * **circuit** (QuantumCircuit) – The circuit containing QPD instructions + * **instruction\_ids** (Sequence\[Sequence\[int]]) – A 2D sequence, such that each inner sequence corresponds to indices of instructions comprising one decomposition in the circuit. The elements within a common sequence belong to a common decomposition and should be sampled together. + * **map\_ids** (Sequence\[int] | None) – Indices to a specific linear mapping to be applied to the decompositions in the circuit. If no map IDs are provided, the circuit will be decomposed randomly according to the decompositions’ joint probability distribution. + + **Return type** + + QuantumCircuit + + **Returns** + + Circuit which has had all its [`BaseQPDGate`](qiskit_addon_cutting.qpd.BaseQPDGate "qiskit_addon_cutting.qpd.BaseQPDGate") instances decomposed into local operations. + + The circuit will contain a new, final classical register to contain the QPD measurement outcomes (accessible at `retval.cregs[-1]`). + + **Raises** + + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – An index in `instruction_ids` corresponds to a gate which is not a [`BaseQPDGate`](qiskit_addon_cutting.qpd.BaseQPDGate "qiskit_addon_cutting.qpd.BaseQPDGate") instance. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – A list within instruction\_ids is not length 1 or 2. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – The total number of indices in `instruction_ids` does not equal the number of [`BaseQPDGate`](qiskit_addon_cutting.qpd.BaseQPDGate "qiskit_addon_cutting.qpd.BaseQPDGate") instances in the circuit. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – Gates within the same decomposition hold different QPD bases. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – Length of `map_ids` does not equal the number of decompositions in the circuit. + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.generate_qpd_weights.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.generate_qpd_weights.mdx new file mode 100644 index 00000000000..eea8de0653e --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.generate_qpd_weights.mdx @@ -0,0 +1,33 @@ +--- +title: generate_qpd_weights +description: API reference for qiskit_addon_cutting.qpd.generate_qpd_weights +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_cutting.qpd.generate_qpd_weights +--- + + + +# qiskit\_addon\_cutting.qpd.generate\_qpd\_weights + + + Generate weights from the joint quasiprobability distribution. + + Each weight whose absolute value is above a threshold of `1 / num_samples` will be evaluated exactly. The remaining weights – those in the tail of the distribution – will then be sampled from, resulting in at most `num_samples` unique weights. + + **Parameters** + + * **qpd\_bases** ([`Sequence`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.12)")\[[`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.qpd_basis.QPDBasis")]) – The [`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.QPDBasis") objects from which to generate weights + * **num\_samples** ([`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.12)")) – Controls the number of weights to generate + + **Return type** + + [`dict`](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.12)")\[[`tuple`](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.12)")\[[`int`](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)"), [`...`](https://docs.python.org/3/library/constants.html#Ellipsis "(in Python v3.12)")], [`tuple`](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.12)")\[[`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.12)"), [`WeightType`](qiskit_addon_cutting.qpd.WeightType "qiskit_addon_cutting.qpd.weights.WeightType")]] + + **Returns** + + A mapping from a given decomposition to its weight. Keys are tuples of indices – one index per input [`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.QPDBasis"). The indices correspond to a specific decomposition mapping in the basis. + + Values are tuples. The first element is a number corresponding to the weight of the contribution. The second element is the [`WeightType`](qiskit_addon_cutting.qpd.WeightType "qiskit_addon_cutting.qpd.WeightType"), either `EXACT` or `SAMPLED`. + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.qpdbasis_from_instruction.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.qpdbasis_from_instruction.mdx new file mode 100644 index 00000000000..9e2ab2a3c9e --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.qpdbasis_from_instruction.mdx @@ -0,0 +1,34 @@ +--- +title: qpdbasis_from_instruction +description: API reference for qiskit_addon_cutting.qpd.qpdbasis_from_instruction +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_cutting.qpd.qpdbasis_from_instruction +--- + + + +# qiskit\_addon\_cutting.qpd.qpdbasis\_from\_instruction + + + Generate a [`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.QPDBasis") object, given a supported operation. + + All two-qubit gates which implement the [`to_matrix()`](/api/qiskit/qiskit.circuit.Gate#to_matrix "(in Qiskit v1.2)") method are supported. This should include the vast majority of gates with no unbound parameters, but there are some special cases (see, e.g., [qiskit issue #10396](https://github.com/Qiskit/qiskit-terra/issues/10396)). + + The [`Move`](qiskit_addon_cutting.instructions.Move "qiskit_addon_cutting.instructions.Move") operation, which can be used to specify a wire cut, is also supported. + + **Return type** + + [`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.qpd_basis.QPDBasis") + + **Returns** + + The newly-instantiated [`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.QPDBasis") object + + **Raises** + + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – Instruction not supported. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – Cannot decompose instruction with unbound parameters. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – `to_matrix` conversion of two-qubit gate failed. + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.reconstruct_expectation_values.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.reconstruct_expectation_values.mdx new file mode 100644 index 00000000000..c7e201dd024 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.reconstruct_expectation_values.mdx @@ -0,0 +1,43 @@ +--- +title: reconstruct_expectation_values +description: API reference for qiskit_addon_cutting.reconstruct_expectation_values +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_cutting.reconstruct_expectation_values +--- + + + +# qiskit\_addon\_cutting.reconstruct\_expectation\_values + + + Reconstruct an expectation value from the results of the sub-experiments. + + **Parameters** + + * **results** (SamplerResult | PrimitiveResult | dict\[Hashable, SamplerResult | PrimitiveResult]) – + + The results from running the cutting subexperiments. If the cut circuit was not partitioned between qubits and run separately, this argument should be a [`SamplerResult`](/api/qiskit/qiskit.primitives.SamplerResult "(in Qiskit v1.2)") instance or a dictionary mapping a single partition to the results. If the circuit was partitioned and its pieces were run separately, this argument should be a dictionary mapping partition labels to the results from each partition’s subexperiments. + + The subexperiment results are expected to be ordered in the same way the subexperiments are ordered in the output of [`generate_cutting_experiments()`](qiskit_addon_cutting.generate_cutting_experiments "qiskit_addon_cutting.generate_cutting_experiments") – one result for every sample and observable, as shown below. The Qiskit Sampler primitive will return the results in the same order the experiments are submitted, so users who do not use [`generate_cutting_experiments()`](qiskit_addon_cutting.generate_cutting_experiments "qiskit_addon_cutting.generate_cutting_experiments") to generate their experiments should take care to order their subexperiments as follows before submitting them to the sampler primitive: + + $[sample_{0}observable_{0}, \ldots, sample_{0}observable_{N-1}, sample_{1}observable_{0}, \ldots, sample_{M-1}observable_{N-1}]$ + + * **coefficients** (Sequence\[tuple\[float, WeightType]]) – A sequence containing the coefficient associated with each unique subexperiment. Each element is a tuple containing the coefficient (a `float`) together with its [`WeightType`](qiskit_addon_cutting.qpd.WeightType "qiskit_addon_cutting.qpd.WeightType"), which denotes how the value was generated. The contribution from each subexperiment will be multiplied by its corresponding coefficient, and the resulting terms will be summed to obtain the reconstructed expectation value. + + * **observables** (PauliList | dict\[Hashable, PauliList]) – The observable(s) for which the expectation values will be calculated. This should be a [`PauliList`](/api/qiskit/qiskit.quantum_info.PauliList "(in Qiskit v1.2)") if `results` is a [`SamplerResult`](/api/qiskit/qiskit.primitives.SamplerResult "(in Qiskit v1.2)") instance. Otherwise, it should be a dictionary mapping partition labels to the observables associated with that partition. + + **Return type** + + list\[float] + + **Returns** + + A `list` of `float`s, such that each float is an expectation value corresponding to the input observable in the same position + + **Raises** + + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – `observables` and `results` are of incompatible types. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – An input observable has a phase not equal to 1. + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.bitwise.bit_count.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.bitwise.bit_count.mdx new file mode 100644 index 00000000000..84318ac1034 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.bitwise.bit_count.mdx @@ -0,0 +1,16 @@ +--- +title: bit_count +description: API reference for qiskit_addon_cutting.utils.bitwise.bit_count +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_cutting.utils.bitwise.bit_count +--- + + + +# qiskit\_addon\_cutting.utils.bitwise.bit\_count + + + Count number of set bits. + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.iteration.unique_by_eq.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.iteration.unique_by_eq.mdx new file mode 100644 index 00000000000..75898ce70ee --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.iteration.unique_by_eq.mdx @@ -0,0 +1,32 @@ +--- +title: unique_by_eq +description: API reference for qiskit_addon_cutting.utils.iteration.unique_by_eq +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_cutting.utils.iteration.unique_by_eq +--- + + + +# qiskit\_addon\_cutting.utils.iteration.unique\_by\_eq + + + Return unique objects in `iterable`, by equality. + + This function is only appropriate if (i) there are a small number of objects, and (ii) the objects are not guaranteed to be hashable. Otherwise, a `dict` or `set` is a better choice. + + This function may potentially make a comparison between all pairs of elements, so it executes in $O(n^2)$ time in the worst case, in contrast to a `dict` or `set`, both of which can be constructed in $O(n)$ time. + + ```python + >>> a = {0} + >>> list(unique_by_eq([a, a])) + [{0}] + :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`list\`` + ``` + + ```python + >>> list(unique_by_eq([a, a.copy()])) + [{0}] + ``` + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.iteration.unique_by_id.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.iteration.unique_by_id.mdx new file mode 100644 index 00000000000..40cf0a7bb54 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.iteration.unique_by_id.mdx @@ -0,0 +1,28 @@ +--- +title: unique_by_id +description: API reference for qiskit_addon_cutting.utils.iteration.unique_by_id +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_cutting.utils.iteration.unique_by_id +--- + + + +# qiskit\_addon\_cutting.utils.iteration.unique\_by\_id + + + Return unique objects in `iterable`, by identity. + + ```python + >>> a = {0} + >>> list(unique_by_id([a, a])) + [{0}] + :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~collections.abc.ValuesView\`` + ``` + + ```python + >>> list(unique_by_id([a, a.copy()])) + [{0}, {0}] + ``` + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup.mdx new file mode 100644 index 00000000000..07ca34b8d64 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup.mdx @@ -0,0 +1,35 @@ +--- +title: CommutingObservableGroup +description: API reference for qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup +--- + + + +# qiskit\_addon\_cutting.utils.observable\_grouping.CommutingObservableGroup + + + Set of mutually qubit-wise commuting observables. + + ### \_\_init\_\_ + + + + ## Methods + + | | | + | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | - | + | [`__init__`](#qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup.__init__ "qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup.__init__")(general\_observable, ...) | | + + ## Attributes + + | | | + | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | `general_observable` | A single Pauli string that contains all qubit-wise measurements needed to measure everything in `commuting_observables`. | + | `commuting_observables` | Observables that can be measured simultaneously. | + | `pauli_indices` | The indices of non-identity [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)")s in `general_observable`. | + | `pauli_bitmasks` | A bitmask for each observable in `commuting_observables`; given an element, each bit corresponds to whether the corresponding entry in `pauli_indices` is relevant to that observable. | + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.ObservableCollection.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.ObservableCollection.mdx new file mode 100644 index 00000000000..1f786132793 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.ObservableCollection.mdx @@ -0,0 +1,48 @@ +--- +title: ObservableCollection +description: API reference for qiskit_addon_cutting.utils.observable_grouping.ObservableCollection +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_cutting.utils.observable_grouping.ObservableCollection +--- + + + +# qiskit\_addon\_cutting.utils.observable\_grouping.ObservableCollection + + + Collection of observables organized for efficient taking of measurements. + + The observables are automatically organized into sets of mutually qubit-wise commuting observables, each represented by a [`CommutingObservableGroup`](qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup "qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup"). + + Assign member variables. + + **Parameters** + + **observables** (PauliList | Iterable\[Pauli]) – Observables of interest + + ### \_\_init\_\_ + + + Assign member variables. + + **Parameters** + + **observables** (PauliList | Iterable\[Pauli]) – Observables of interest + + + ## Methods + + | | | + | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- | + | [`__init__`](#qiskit_addon_cutting.utils.observable_grouping.ObservableCollection.__init__ "qiskit_addon_cutting.utils.observable_grouping.ObservableCollection.__init__")(observables, /) | Assign member variables. | + | `construct_general_observables`(...) | Construct the most general observable from each set of mutually commuting observables. | + + ## Attributes + + | | | + | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | + | `groups` | List of [`CommutingObservableGroup`](qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup "qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup")s which, together, contain all desired observables. | + | `lookup` | Get dict which maps each [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)") observable to a list of indices, `(i, j)`, to commuting observables in `groups`. | + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.observables_restricted_to_subsystem.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.observables_restricted_to_subsystem.mdx new file mode 100644 index 00000000000..4b43d445fd5 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.observables_restricted_to_subsystem.mdx @@ -0,0 +1,38 @@ +--- +title: observables_restricted_to_subsystem +description: API reference for qiskit_addon_cutting.utils.observable_grouping.observables_restricted_to_subsystem +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_cutting.utils.observable_grouping.observables_restricted_to_subsystem +--- + + + +# qiskit\_addon\_cutting.utils.observable\_grouping.observables\_restricted\_to\_subsystem + + + Restrict each observable to its support on a given subsystem. + + A [`PauliList`](/api/qiskit/qiskit.quantum_info.PauliList "(in Qiskit v1.2)") will be returned if a [`PauliList`](/api/qiskit/qiskit.quantum_info.PauliList "(in Qiskit v1.2)") is provided; otherwise, a `list[Pauli]` will be returned. + + Any phase information will be discarded, consistent with the standard behavior when slicing a Pauli. + + **Parameters** + + * **qubits** (Sequence\[int]) – The qubits in a subsystem + * **global\_observables** (Sequence\[Pauli] | PauliList) – The list of observables + + **Return type** + + list\[Pauli] | PauliList + + **Returns** + + Each [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)") restricted to the subsystem. + + ```python + >>> observables_restricted_to_subsystem([1, 3], PauliList(["IXYZ", "iZZXX"])) + PauliList(['IY', 'ZX']) + ``` + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.simulation.ExactSampler.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.simulation.ExactSampler.mdx new file mode 100644 index 00000000000..82e4bff93e3 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.simulation.ExactSampler.mdx @@ -0,0 +1,56 @@ +--- +title: ExactSampler +description: API reference for qiskit_addon_cutting.utils.simulation.ExactSampler +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_cutting.utils.simulation.ExactSampler +--- + + + +# qiskit\_addon\_cutting.utils.simulation.ExactSampler + + + Sampler which returns exact probabilities for each possible outcome. + + This sampler supports: + + * all unitary gates + * projective measurements, anywhere in the circuit + * reset operations, anywhere in the circuit + * some (or all) classical bits can remain unused + * classical bits can be written more than once + + The samplers provided by [`qiskit.primitives`](/api/qiskit/primitives#module-qiskit.primitives "(in Qiskit v1.2)") and [`qiskit_aer.primitives`](https://qiskit.github.io/qiskit-aer/apidocs/aer_primitives.html#module-qiskit_aer.primitives "(in Qiskit Aer v0.15.0)") do not currently support all of the above functionality. Related upstream issues: + + * [https://github.com/Qiskit/qiskit-terra/issues/9657](https://github.com/Qiskit/qiskit-terra/issues/9657) + * [https://github.com/Qiskit/qiskit-aer/issues/1810](https://github.com/Qiskit/qiskit-aer/issues/1810) + * [https://github.com/Qiskit/qiskit-aer/issues/1811](https://github.com/Qiskit/qiskit-aer/issues/1811) + + **Parameters** + + **options** (dict | None) – Default options. + + ### \_\_init\_\_ + + + **Parameters** + + **options** (dict | None) – Default options. + + + ## Methods + + | | | + | -------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | + | [`__init__`](#qiskit_addon_cutting.utils.simulation.ExactSampler.__init__ "qiskit_addon_cutting.utils.simulation.ExactSampler.__init__")(\*\[, options]) | | + | `run`(circuits\[, parameter\_values]) | Run the job of the sampling of bitstrings. | + | `set_options`(\*\*fields) | Set options values for the estimator. | + + ## Attributes + + | | | + | --------- | ---------------------------------------- | + | `options` | Return options values for the estimator. | + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.simulation.simulate_statevector_outcomes.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.simulation.simulate_statevector_outcomes.mdx new file mode 100644 index 00000000000..2378e185c94 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.simulation.simulate_statevector_outcomes.mdx @@ -0,0 +1,24 @@ +--- +title: simulate_statevector_outcomes +description: API reference for qiskit_addon_cutting.utils.simulation.simulate_statevector_outcomes +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_cutting.utils.simulation.simulate_statevector_outcomes +--- + + + +# qiskit\_addon\_cutting.utils.simulation.simulate\_statevector\_outcomes + + + Return each classical outcome along with its precise probability. + + Circuit can contain mid-circuit, projective measurements. + + All gates are supported, along with measurements and reset operations. + + **Return type** + + [`dict`](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.12)")\[[`int`](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)"), [`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.12)")] + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.SeparatedCircuits.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.SeparatedCircuits.mdx new file mode 100644 index 00000000000..dcb8fb1c14f --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.SeparatedCircuits.mdx @@ -0,0 +1,34 @@ +--- +title: SeparatedCircuits +description: API reference for qiskit_addon_cutting.utils.transforms.SeparatedCircuits +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_cutting.utils.transforms.SeparatedCircuits +--- + + + +# qiskit\_addon\_cutting.utils.transforms.SeparatedCircuits + + + Bases: [`NamedTuple`](https://docs.python.org/3/library/typing.html#typing.NamedTuple "(in Python v3.12)") + + Named tuple for result of [`separate_circuit()`](qiskit_addon_cutting.utils.transforms.separate_circuit "qiskit_addon_cutting.utils.transforms.separate_circuit"). + + `subcircuits` is a dict of circuits, keyed by each partition label. `qubit_map` is a list with length equal to the number of qubits in the original circuit. Each element of that list is a 2-tuple which includes the partition label of that qubit, together with the index of that qubit in the corresponding subcircuit. If the original qubit is unused and has been removed from the separated circuits, then that tuple will be equal to `(None, None)`. + + Create new instance of SeparatedCircuits(subcircuits, qubit\_map) + + ## Methods + + | | + | - | + + ## Attributes + + | | | + | ------------- | ------------------------ | + | `qubit_map` | Alias for field number 1 | + | `subcircuits` | Alias for field number 0 | + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.separate_circuit.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.separate_circuit.mdx new file mode 100644 index 00000000000..3b3ee7f75f3 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.separate_circuit.mdx @@ -0,0 +1,58 @@ +--- +title: separate_circuit +description: API reference for qiskit_addon_cutting.utils.transforms.separate_circuit +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_cutting.utils.transforms.separate_circuit +--- + + + +# qiskit\_addon\_cutting.utils.transforms.separate\_circuit + + + Separate the circuit into its disconnected components. + + If `partition_labels` is provided, then the circuit will be separated according to those labels. A partition label of `None` is treated specially: it must be applied to an unused (idle) qubit, and that qubit will be removed when separating the circuit. + + If `partition_labels` is `None`, then the circuit will be fully separated into its disconnected components, each of which will be labeled with consecutive integers starting with 0. Each idle wire will be eliminated in the resulting circuits. + + ```python + >>> qc = QuantumCircuit(4) + >>> _ = qc.x(0) + >>> _ = qc.cx(1, 2) + >>> separate_circuit(qc, "ABBA").subcircuits.keys() + dict_keys(['A', 'B']) + >>> separate_circuit(qc, "ABBA").qubit_map + [('A', 0), ('B', 0), ('B', 1), ('A', 1)] + >>> separate_circuit(qc, ["A", "B", "B", None]).qubit_map + [('A', 0), ('B', 0), ('B', 1), (None, None)] + >>> separate_circuit(qc).subcircuits.keys() + dict_keys([0, 1]) + >>> separate_circuit(qc).qubit_map + [(0, 0), (1, 0), (1, 1), (None, None)] + >>> separate_circuit(qc, "BAAC").subcircuits.keys() + dict_keys(['B', 'A', 'C']) + >>> separate_circuit(qc, "BAAC").qubit_map + [('B', 0), ('A', 0), ('A', 1), ('C', 0)] + ``` + + **Parameters** + + * **circuit** (QuantumCircuit) – The circuit to separate into disconnected subcircuits + * **partition\_labels** (Sequence\[Hashable] | None) – A sequence of length `num_qubits`. Qubits with the same label will end up in the same subcircuit. + + **Return type** + + SeparatedCircuits + + **Returns** + + A [`SeparatedCircuits`](qiskit_addon_cutting.utils.transforms.SeparatedCircuits "qiskit_addon_cutting.utils.transforms.SeparatedCircuits") named tuple containing the `subcircuits` and `qubit_map`. + + **Raises** + + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – The number of partition labels does not equal the number of qubits in the input circuit. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – Operation spans more than one partition. + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transpiler_passes.ConsolidateResets.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transpiler_passes.ConsolidateResets.mdx new file mode 100644 index 00000000000..952e2fbe971 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transpiler_passes.ConsolidateResets.mdx @@ -0,0 +1,37 @@ +--- +title: ConsolidateResets +description: API reference for qiskit_addon_cutting.utils.transpiler_passes.ConsolidateResets +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_cutting.utils.transpiler_passes.ConsolidateResets +--- + + + +# qiskit\_addon\_cutting.utils.transpiler\_passes.ConsolidateResets + + + Consolidate a run duplicate resets in to a single reset. + + ### \_\_init\_\_ + + + + ## Methods + + | | | + | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------- | + | [`__init__`](#qiskit_addon_cutting.utils.transpiler_passes.ConsolidateResets.__init__ "qiskit_addon_cutting.utils.transpiler_passes.ConsolidateResets.__init__")() | | + | `execute`(passmanager\_ir, state\[, callback]) | Execute optimization task for input Qiskit IR. | + | `name`() | Name of the pass. | + | `run`(dag) | Run the ConsolidateResets pass on `dag`. | + | `update_status`(state, run\_state) | Update workflow status. | + + ## Attributes + + | | | + | ------------------------ | ------------------------------------------- | + | `is_analysis_pass` | Check if the pass is an analysis pass. | + | `is_transformation_pass` | Check if the pass is a transformation pass. | + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transpiler_passes.RemoveFinalReset.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transpiler_passes.RemoveFinalReset.mdx new file mode 100644 index 00000000000..981aab481c3 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transpiler_passes.RemoveFinalReset.mdx @@ -0,0 +1,37 @@ +--- +title: RemoveFinalReset +description: API reference for qiskit_addon_cutting.utils.transpiler_passes.RemoveFinalReset +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_cutting.utils.transpiler_passes.RemoveFinalReset +--- + + + +# qiskit\_addon\_cutting.utils.transpiler\_passes.RemoveFinalReset + + + Remove reset when it is the final instruction on a qubit wire. + + ### \_\_init\_\_ + + + + ## Methods + + | | | + | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- | + | [`__init__`](#qiskit_addon_cutting.utils.transpiler_passes.RemoveFinalReset.__init__ "qiskit_addon_cutting.utils.transpiler_passes.RemoveFinalReset.__init__")() | | + | `execute`(passmanager\_ir, state\[, callback]) | Execute optimization task for input Qiskit IR. | + | `name`() | Name of the pass. | + | `run`(dag) | Run the RemoveFinalReset pass on `dag`. | + | `update_status`(state, run\_state) | Update workflow status. | + + ## Attributes + + | | | + | ------------------------ | ------------------------------------------- | + | `is_analysis_pass` | Check if the pass is an analysis pass. | + | `is_transformation_pass` | Check if the pass is a transformation pass. | + + diff --git a/docs/api/qiskit-addon-cutting/release-notes.mdx b/docs/api/qiskit-addon-cutting/release-notes.mdx new file mode 100644 index 00000000000..4250c321ab1 --- /dev/null +++ b/docs/api/qiskit-addon-cutting/release-notes.mdx @@ -0,0 +1,426 @@ +--- +title: Circuit Cutting release notes +description: Changes made to Circuit Cutting +in_page_toc_max_heading_level: 2 +--- + + + + + +# Circuit Cutting release notes + + + + + +## 0.9.0 + + + +### Prelude + +The most notable change in this release is that the package has been renamed to `qiskit-cutting-addon`. It also marks the removal of this package’s original implementation of wire cutting, CutQC. + + + +### New Features + +* A new `minimum_reached` field has been added to the metadata outputted by `circuit_knitting.cutting.find_cuts()` to check if the cut-finder found a cut scheme that minimized the sampling overhead. Note that the search algorithm employed by the cut-finder is *guaranteed* to find the optimal solution, that is, the solution with the minimum sampling overhead, provided it is allowed to run long enough. The user is free to time-restrict the search by passing in suitable values for `max_backjumps` and/or `max_gamma` to [`OptimizationParameters`](qiskit_addon_cutting.OptimizationParameters "qiskit_addon_cutting.OptimizationParameters"). If the search is terminated prematurely in this way, the metadata may indicate that the minimum was not reached, even though the returned solution was actually the optimal solution. This would mean that the search that was performed was not exhaustive enough to prove that the returned solution was optimal. + +* When specifying instances of [`OptimizationParameters`](qiskit_addon_cutting.OptimizationParameters "qiskit_addon_cutting.OptimizationParameters") that are inputted to `circuit_knitting.cutting.find_cuts()`, the user can now control whether the cut-finder looks only for gate cuts, only for wire cuts, or both, by setting the bools `gate_lo` and `wire_lo` appropriately. The default value of both of these is set to `True` and so the default search considers the possibility of both gate and wire cuts. + + + +### Upgrade Notes + +* This package now requires updated versions of some dependencies: `qiskit` 1.1 or later, and `qiskit-ibm-runtime` 0.24.0 or later. + +* The search engine inside the automated cut-finder has been primed to avoid extraneous searches and is therefore expected to run faster. + +* The `CutQC` subpackage has been removed, along with its two associated utility modules, `circuit_knitting.utils.metrics` and `circuit_knitting.utils.conversion`. Users are now encouraged to use the automatic cut-finding and gate/wire cutting from the `circuit_knitting.cutting` package. + +* The behavior of [`separate_circuit()`](qiskit_addon_cutting.utils.transforms.separate_circuit "qiskit_addon_cutting.utils.transforms.separate_circuit") and [`partition_problem()`](qiskit_addon_cutting.partition_problem "qiskit_addon_cutting.partition_problem") have changed so that idle qubits are discarded by default. Previously, each idle qubit was placed in its own subcircuit if `partition_labels` was not provided. + + + + + +## 0.7.1 + + + + + +### Prelude + +The 0.7.1 release provides a workaround to ensure that the experiments generated by the circuit cutting workflow will execute on IBM Quantum’s hardware backends. + + + +### Bug Fixes + +* Added a workaround so that the classical registers in the generated circuits will always contain at least one bit. This is currently necessary for the experiments to be able to reach IBM Quantum’s hardware backends due to an [openqasm parser issue](https://github.com/openqasm/qe-qasm/issues/37). + + + +### Other Notes + +* The [`generate_cutting_experiments()`](qiskit_addon_cutting.generate_cutting_experiments "qiskit_addon_cutting.generate_cutting_experiments") function has been optimized for faster execution. + + + + + +## 0.7.0 + + + + + +### Prelude + +The 0.7 release introduces an automated cut finding code for the new circuit cutting workflow. With this milestone, the older cutting workflow (CutQC) is now deprecated. Additionally, this is the first CKT release to support version 2 of the Qiskit Runtime primitives. User are encouraged to [migrate to v2 primitives](/api/migration-guides/v2-primitives) as soon as possible. + + + + + +### New Features + +* Added a cut-finder function, `circuit_knitting.cutting.find_cuts()`, for automatically identifying locations to place LO gate and wire cuts such that the circuit is separable and runnable, given the maximum number of qubits per subcircuit as a parameter. The cut-finder will search for cut schemes which minimize the sampling overhead. Note, however, that for larger circuits, the number of cuts needed to separate the circuit will naturally grow larger, leading to an exponentially increasing sampling overhead. For instances of wire cuts, the cut-finder assumes no qubit reuse. Therefore, for each wire cut, a new wire is added to the circuit. In addition, the cut-finder requires that every gate in an input circuit be at most a two qubit gate. The search algorithm used by the cut-finder to identify cut locations is Dijkstra’s best first search algorithm which is guaranteed to find solutions with the lowest sampling overhead, provided any user-specified value for the maximum number of allowed backjumps or for the maximum sampling overhead does not prematurely stop the search. If the user wishes to time-restrict the search when running the cut-finder on large circuits, they can specify a maximum sampling overhead and/or a maximum number of allowed backjumps, in which case the cut-finder will return a valid albeit suboptimal cut scheme. + +* Circuit cutting reconstruction can now interpret the [`PrimitiveResult`](/api/qiskit/qiskit.primitives.PrimitiveResult "(in Qiskit v1.2)") object, which is returned by version 2 of the sampler primitive ([`BaseSamplerV2`](/api/qiskit/qiskit.primitives.BaseSamplerV2 "(in Qiskit v1.2)")). See the [migration guide](/api/migration-guides/qiskit-1.0-features#qiskitprimitives) for details on upgrading to version 2 of the Qiskit primitives. + + + + + +### Upgrade Notes + +* CKT now requires updated versions of some dependencies: `qiskit` 1.0 or later, `qiskit-aer` 0.14.0 or later, and `qiskit-ibm-runtime` 0.23.0 or later. + +* The code in the `circuit_knitting.cutting.qpd.qpd` submodule has been split into three separate files. If you were importing directly from this submodule, you will now need to import from `circuit_knitting.cutting.qpd` instead. + + + +### Deprecation Notes + +* The `circuit_knitting.cutting.cutqc` package is deprecated and will be removed no sooner than Circuit Knitting Toolbox 0.8.0. The wire cutting functionality in the `circuit_knitting.cutting` package is what will be maintained going forward. Additionally, there is a new automated gate and wire cut-finding functionality in the `circuit_knitting.cutting.automated_cut_finding` module. A [tutorial](https://github.com/Qiskit-Extensions/circuit-knitting-toolbox/blob/main/docs/circuit_cutting/tutorials/04_automatic_cut_finding.ipynb) has been added to demonstrate automated cut-finding. + + + + + +### Other Notes + +* The cutting tutorials have been rephrased with the goal of reconstructing the expectation value of a single [`SparsePauliOp`](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)") with many terms, rather than multiple independent [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)") observables. + +* The [circuit cutting explanation](explanation/index) document has been expanded significantly. + + + + + +## 0.6.0 + + + + + +### Upgrade Notes + +* The minimum supported version of `qiskit` is now 0.45.0, and the minimum supported version of `qiskit-ibm-runtime` is now 0.12.2. CKT also now explicitly requires a version of `qiskit` less than 1.0, as there is no guarantee that the current version of CKT will work with Qiskit 1.0. + +* Removed the `circuit_knitting.cutting.qpd.QPDBasis.from_gate` method, which has been deprecated since the 0.3 release. `QPDBasis.from_instruction()` should be used instead. + +* Removed the `circuit_knitting_toolbox` import path. Users should now import from `circuit_knitting` instead. + +* Removed the `circuit_knitting.cutting.decompose_gates` function, which has been deprecated since the 0.3 release. [`cut_gates()`](qiskit_addon_cutting.cut_gates "qiskit_addon_cutting.cut_gates") should be used instead. + +* Removed the `circuit_knitting.cutting.cutting_evaluation` module, which has been deprecated since the 0.4 release. Users should first call `circuit_knitting.cutting.generate_cutting_experiments()` to generate the subexperiment circuits and then submit these circuits directly to the desired Sampler(s). + +* Removed the `circuit_knitting.cutting.qpd.generate_qpd_samples` function, which has been deprecated since the 0.3 release. [`generate_qpd_weights()`](qiskit_addon_cutting.qpd.generate_qpd_weights "qiskit_addon_cutting.qpd.generate_qpd_weights") should be used instead. + +* Removed the `circuit_knitting.cutting.qpd.qpdbasis_from_gate` function, which has been deprecated since the 0.3 release. [`qpdbasis_from_instruction()`](qiskit_addon_cutting.qpd.qpdbasis_from_instruction "qiskit_addon_cutting.qpd.qpdbasis_from_instruction") should be used instead. + +* The [`generate_cutting_experiments()`](qiskit_addon_cutting.generate_cutting_experiments "qiskit_addon_cutting.generate_cutting_experiments") function now performs some optimizations on the generated circuits before returning them to the user. In particular, it performs the [`RemoveResetInZeroState`](/api/qiskit/qiskit.transpiler.passes.RemoveResetInZeroState "(in Qiskit v1.2)"), [`RemoveFinalReset`](qiskit_addon_cutting.utils.transpiler_passes.RemoveFinalReset "qiskit_addon_cutting.utils.transpiler_passes.RemoveFinalReset"), and [`ConsolidateResets`](qiskit_addon_cutting.utils.transpiler_passes.ConsolidateResets "qiskit_addon_cutting.utils.transpiler_passes.ConsolidateResets") passes, so that circuits with cut wires and no re-used qubits are transformed into subexperiments that contain no `Reset`s. This allows such circuits to work on a greater variety of hardware backends. + + + + + +### Bug Fixes + +* It is now possible to serialize [`SingleQubitQPDGate`](qiskit_addon_cutting.qpd.SingleQubitQPDGate "qiskit_addon_cutting.qpd.SingleQubitQPDGate")s using [`qpy`](/api/qiskit/qpy#module-qiskit.qpy "(in Qiskit v1.2)"), but some other issues with serialization and deserialization still remain. See issue [#455](https://github.com/Qiskit-Extensions/circuit-knitting-toolbox/issues/445) for details. + + + + + +### Other Notes + +* Removed the entanglement forging tool, as the Qiskit application modules are no longer supported, and packages in `Qiskit-Extensions` may not have dependency on those modules. With this change, CKT no longer depends on `qiskit-algorithms` or Qiskit Nature. + + + + + +## 0.5.0 + + + + + +### Prelude + +The primary purpose of this release is to swap the order of the classical registers in the circuits generated the `circuit_knitting.cutting` module. With this change, `"observable_measurements"` now comes before `"qpd_measurements"`, and there is no longer a need to insert `num_qpd_bits` into the result metadata by hand. + + + + + +### Upgrade Notes + +* CKT now depends on the [qiskit-algorithms](https://github.com/qiskit-community/qiskit-algorithms) package. This new package replaces the `qiskit.algorithms` module, which was deprecated in Qiskit 0.44. + +* The order of the classical registers in the generated experiments has been swapped. The `"observable_measurements"` register now comes first, and the `"qpd_measurements"` register now comes second. As a result of this change, it is no longer necessary to manually insert `num_qpd_bits` into the `metadata` for each experiment’s result. + +* Removed the `circuit_knitting.cutting.wire_cutting` module. Users are now expected to import from the `circuit_knitting.cutting.cutqc` module instead. + + + + + +### Other Notes + +* `qiskit-nature` is now pinned to version 0.6.X, as the entanglement forging code has not yet been updated to work with Qiskit Nature 0.7.0. Compatibility with Qiskit Nature 0.7.0 is tracked by [issue #406](https://github.com/Qiskit-Extensions/circuit-knitting-toolbox/issues/406). + + + + + +## 0.4.0 + + + + + +### Prelude + +The primary goal of this release is to modify the circuit cutting workflow to enable direct use of the Sampler primitive. Previously, the Sampler was called in `execute_experiments()`, a function which is now deprecated in favor of [`generate_cutting_experiments()`](qiskit_addon_cutting.generate_cutting_experiments "qiskit_addon_cutting.generate_cutting_experiments"). + + + + + +### New Features + +* Added a module, `circuit_knitting.cutting.cutting_experiments`, which is intended to hold functions used for generating the quantum experiments needed for circuit cutting. This module will initially hold one function, [`generate_cutting_experiments()`](qiskit_addon_cutting.generate_cutting_experiments "qiskit_addon_cutting.generate_cutting_experiments"), which can be used to generate quantum experiments, given an input circuit containing [`BaseQPDGate`](qiskit_addon_cutting.qpd.BaseQPDGate "qiskit_addon_cutting.qpd.BaseQPDGate") instances, some observables, and a number of times the joint quasi-probability distribution for the cuts should be sampled. + + + + + +### Upgrade Notes + +* The `circuit-knitting-toolbox` Python package now depends on `qiskit` rather than `qiskit-terra`. This should have no user-visible effects, but it is something to keep in mind if one sees dependency errors when upgrading CKT. + +* The `execute_experiments()` function now returns a [`SamplerResult`](/api/qiskit/qiskit.primitives.SamplerResult "(in Qiskit v1.2)") instance for each circuit partition, rather than the 3D list of quasi-distributions returned previously. The quasi-distribution for each subexperiment can be accessed via the `quasi_dists` field of [`SamplerResult`](/api/qiskit/qiskit.primitives.SamplerResult "(in Qiskit v1.2)"). The number of QPD bits contained in each subexperiment will be included in the `num_qpd_bits` field of the `metadata` dictionary for each experiment result. The output of this function is still valid as input to [`reconstruct_expectation_values()`](qiskit_addon_cutting.reconstruct_expectation_values "qiskit_addon_cutting.reconstruct_expectation_values"). + +* [`reconstruct_expectation_values()`](qiskit_addon_cutting.reconstruct_expectation_values "qiskit_addon_cutting.reconstruct_expectation_values") now takes, as its first argument, a [`SamplerResult`](/api/qiskit/qiskit.primitives.SamplerResult "(in Qiskit v1.2)") instance or a dictionary mapping partition labels to [`SamplerResult`](/api/qiskit/qiskit.primitives.SamplerResult "(in Qiskit v1.2)") instances. This new `results` argument replaces the old `quasi_dists` argument. The [`SamplerResult`](/api/qiskit/qiskit.primitives.SamplerResult "(in Qiskit v1.2)") instances are expected to contain the number of QPD bits used in each circuit input to the Sampler. This should be specified in the `num_qpd_bits` field of the experiment result metadata. + + + + + +### Deprecation Notes + +* The `execute_experiments()` function has been deprecated. Going forward, users should first call [`generate_cutting_experiments()`](qiskit_addon_cutting.generate_cutting_experiments "qiskit_addon_cutting.generate_cutting_experiments") to generate the subexperiment circuits and then submit these circuits directly to the desired Sampler(s). The [tutorials](tutorials/index#circuit-cutting-tutorials) have been updated with this new workflow. + + + + + +## 0.3.0 + + + + + +### Prelude + +The 0.3.0 release introduces significant new features while maintaining backwards compatibility with the 0.2.0 release. The most striking change in this release is the shortened module names: `circuit_knitting_toolbox` has been renamed to `circuit_knitting`, `entanglement_forging` has been renamed to `forging`, and `circuit_cutting` has been renamed to `cutting`. The new circuit cutting module contains significant enhancements, including support for wire cutting and for the cutting of arbitrary two-qubit gates. + + + + + +### New Features + +* The circuit cutting module now supports the cutting of arbitrary two-qubit gates. This is supported via a KAK decomposition, using Qiskit’s `TwoQubitWeylDecomposition`, following the method in [arXiv:2006.11174](https://arxiv.org/abs/2006.11174). + + Additionally, this release adds *explicit* support (i.e., without relying on a KAK decomposition) for the following gates: + + * [`CHGate`](/api/qiskit/qiskit.circuit.library.CHGate "(in Qiskit v1.2)") + * [`CYGate`](/api/qiskit/qiskit.circuit.library.CYGate "(in Qiskit v1.2)") + * [`CSGate`](/api/qiskit/qiskit.circuit.library.CSGate "(in Qiskit v1.2)") + * [`CSXGate`](/api/qiskit/qiskit.circuit.library.CSXGate "(in Qiskit v1.2)") + * [`CSdgGate`](/api/qiskit/qiskit.circuit.library.CSdgGate "(in Qiskit v1.2)") + * [`CPhaseGate`](/api/qiskit/qiskit.circuit.library.CPhaseGate "(in Qiskit v1.2)") + * [`ECRGate`](/api/qiskit/qiskit.circuit.library.ECRGate "(in Qiskit v1.2)") + * [`SwapGate`](/api/qiskit/qiskit.circuit.library.SwapGate "(in Qiskit v1.2)") + * [`iSwapGate`](/api/qiskit/qiskit.circuit.library.iSwapGate "(in Qiskit v1.2)") + * [`DCXGate`](/api/qiskit/qiskit.circuit.library.DCXGate "(in Qiskit v1.2)") + +* [`partition_problem()`](qiskit_addon_cutting.partition_problem "qiskit_addon_cutting.partition_problem") now works even if `partition_labels` is not explicitly provided. In this case, the labels are determined automatically from the connectivity of the input circuit. For the sake of determining connectivity, [`TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate")s are ignored, as these instructions are already marked for cutting. To support this workflow, this release also introduces a new method, `TwoQubitQPDGate.from_instruction()`, which allows one to create a [`TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate") that wraps a given instruction. + +* Dynamic Definition code has been added to the `cutqc` module. See pull request [#285](https://github.com/Qiskit-Extensions/circuit-knitting-toolbox/pull/285) for details. + +* Users may now bypass experiments associated with the Hartree-Fock bitstring and replace their results with a specified Hartree-Fock value using the `hf_energy` class field in `circuit_knitting.forging.EntanglementForgingGroundStateSolver`. Refer to the `explanatory material ` for more information. + +* `generate_qpd_weights()` now returns a mixture of exact and sampled weights when appropriate. Specifically, it exactly evaluates all weights greater than or equal to `1 / num_samples` and samples from the remaining weights (ones which are below this threshold). Previously, this function would only return exact weights if *all* weights were greater than or equal to `1 / num_samples`; otherwise, all weights were sampled. The new behavior is expected to improve performance on non-uniform quasi-probability decompositions, e.g. for cut instantiations of [`RXXGate`](/api/qiskit/qiskit.circuit.library.RXXGate "(in Qiskit v1.2)"), [`RYYGate`](/api/qiskit/qiskit.circuit.library.RYYGate "(in Qiskit v1.2)"), [`RZZGate`](/api/qiskit/qiskit.circuit.library.RZZGate "(in Qiskit v1.2)"), [`CRXGate`](/api/qiskit/qiskit.circuit.library.CRXGate "(in Qiskit v1.2)"), [`CRYGate`](/api/qiskit/qiskit.circuit.library.CRYGate "(in Qiskit v1.2)"), and [`CRZGate`](/api/qiskit/qiskit.circuit.library.CRZGate "(in Qiskit v1.2)") away from $\theta=\pi/2$. + +* The `circuit_knitting.cutting` module now supports wire cutting. There is a [new tutorial](tutorials/index#circuit-cutting-tutorials) that explains how to use it. + + + + + +### Upgrade Notes + +* `execute_experiments()` no longer creates separate jobs for each subcircuit by default. Now, separate jobs are only created if separate [`BaseSampler`](/api/qiskit/qiskit.primitives.BaseSampler "(in Qiskit v1.2)") instances are provided for each circuit partition. + +* Numpy 1.23.0 or later is now required. The [`kron()`](https://numpy.org/doc/stable/reference/generated/numpy.kron.html#numpy.kron "(in NumPy v2.1)") method in earlier versions [has known performance issues](https://github.com/Qiskit-Extensions/circuit-knitting-toolbox/pull/70#issuecomment-1500514513), and this method is used heavily by the CutQC wire cutting module. + +* The dependency on the `qiskit.opflow` module has been removed from entanglement forging. With this change, Qiskit Nature 0.6.0 is now required. However, Qiskit Nature 0.6.0 is incompatible with Quantum Serverless, so users that wish to use entanglement forging with Quantum Serverless must remain on version 0.2 of the Circuit Knitting Toolbox until [issue #108](https://github.com/Qiskit-Extensions/circuit-knitting-toolbox/issues/108) is resolved. + +* [`BaseQPDGate`](qiskit_addon_cutting.qpd.BaseQPDGate "qiskit_addon_cutting.qpd.BaseQPDGate") instances in subcircuits returned from [`partition_circuit_qubits()`](qiskit_addon_cutting.partition_circuit_qubits "qiskit_addon_cutting.partition_circuit_qubits") and [`partition_problem()`](qiskit_addon_cutting.partition_problem "qiskit_addon_cutting.partition_problem") will now have labels prefixed with “cut”, rather than “qpd”. + + + + + +### Deprecation Notes + +* `decompose_gates()` is deprecated and will be removed no sooner than v0.4.0. Users should migrate to the identical [`cut_gates()`](qiskit_addon_cutting.cut_gates "qiskit_addon_cutting.cut_gates") function. + +* `generate_qpd_samples()` has been renamed to `generate_qpd_weights()`. The original name will be removed no sooner than version 0.4 of the Circuit Knitting Toolbox. + +* `QPDBasis.from_gate()` has been renamed to `QPDBasis.from_instruction()`. The original name is deprecated and will be removed no sooner than CKT v0.4.0. + +* The top-level name for imports has been renamed from `circuit_knitting_toolbox` to `circuit_knitting`. Furthermore, the following renames have occurred one level deeper: + + * `circuit_knitting_toolbox.entanglement_forging` has been moved to `circuit_knitting.forging`. + * `circuit_knitting_toolbox.circuit_cutting` has been moved to `circuit_knitting.cutting`. + + The old import locations are now deprecated and will be removed in a future release of the Circuit Knitting Toolbox. + + + + + +### Bug Fixes + +* Fixed a bug in `decompose_qpd_instructions()` which would cause index errors if `TwoQubitQPDGate` indices were not specified in ascending order. + +* Fixed a bug in `circuit_knitting.forging.EntanglementForgingGroundStateSolver` which was causing `AttributeError`s when instantiating the :class:`circuit_knitting.forging.EntanglementForgingResult` in certain conditions, such as when reducing the orbitals over which to solve. + + + + + +## 0.2.0 + + + + + +### Prelude + +0.2.0 is centered around the addition of functions which allow for the easy implementation of a circuit cutting technique called gate cutting. For more details on circuit cutting, check out our [explanation guide](explanation/index#circuit-cutting-explanation). + +The foundation of the `circuit_cutting` package is the `circuit_knitting_toolbox.circuit_cutting.qpd` sub-package. The `qpd` package allows for easy transformation of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)") gates and wires into elements which may be decomposed to a probabilistic set of basis gates. See `QPDBasis` and `BaseQPDGate` classes for more information. + +Additionally, 0.2.0 includes a set of functions which allow for easy implementation of gate cutting workflows. These functions are built on top of the `circuit_knitting_toolbox.circuit_cutting.qpd` package. Like all circuit knitting techniques, gate cutting can be described as three consecutive stages: *decomposition* of a problem, *execution* of many subexperiments, and *reconstruction* of a simulated output of the original problem. These steps may be implemented with the `circuit_cutting` package using only a few primary functions, namely, the [`partition_problem()`](qiskit_addon_cutting.partition_problem "qiskit_addon_cutting.partition_problem"), `decompose_gates()`, `execute_experiments()`, and [`reconstruct_expectation_values()`](qiskit_addon_cutting.reconstruct_expectation_values "qiskit_addon_cutting.reconstruct_expectation_values") functions. Check out the [tutorials](tutorials/index#circuit-cutting-tutorials) for a look at a couple of example circuit cutting workflows. + + + + + +### New Features + +* Addition of a `qpd` package which allows for easy transformation of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)") gates and wires into elements which may be decomposed to a probabilistic set of basis gates. See `QPDBasis` and `BaseQPDGate` classes for more information. + +* Addition of `cutting_decomposition`, `cutting_execution`, and `cutting_reconstruction` modules. These modules provide several functions which allow for easy implementation of gate cutting workflows, namely, the [`partition_problem()`](qiskit_addon_cutting.partition_problem "qiskit_addon_cutting.partition_problem"), `decompose_gates()`, `execute_experiments()`, and [`reconstruct_expectation_values()`](qiskit_addon_cutting.reconstruct_expectation_values "qiskit_addon_cutting.reconstruct_expectation_values") functions. + + + +### Known Issues + +* The `circuit_cutting` package only supports [`PauliList`](/api/qiskit/qiskit.quantum_info.PauliList "(in Qiskit v1.2)") observables for calculating expectation values. Support for calculating expectation values for more observable types, including [`SparsePauliOp`](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), is expected no sooner than 0.3.0. + +* The `Sampler`s from Qiskit and Qiskit Aer do not support mid-circuit measurements in statevector mode. For more on generating exact quasi-distributions using the [`BaseSampler`](/api/qiskit/qiskit.primitives.BaseSampler "(in Qiskit v1.2)") interface, check out our [how-to guide](https://github.com/Qiskit-Extensions/circuit-knitting-toolbox/tree/main/docs/circuit_cutting/how-tos/how_to_generate_exact_quasi_dists_from_sampler.ipynb). + +* The `circuit_cutting` package generally does not yet support input circuits with user-added classical bits, so by extension, it does not yet support dynamic circuits. + + + + + +### Upgrade Notes + +* Support for running with Python 3.7 has been removed. To run the Circuit Knitting Toolbox, you now need Python version 3.8 or higher. + + + + + +### Deprecation Notes + +* The `circuit_knitting_toolbox.circuit_cutting.wire_cutting` namespace is now deprecated. It has been renamed to `circuit_knitting_toolbox.circuit_cutting.cutqc`. Both gate and wire cutting for simulating expectation values will be implemented directly into the `circuit_cutting` package, and the `circuit_cutting.cutqc` package will remain available for users of the automatic cut finding and/or the full probability distribution reconstruction. + + + + + +## 0.1.0 + + + + + +### New Features + +* Support for Python 3.11. + +* Support for Qiskit Nature 0.5. + + + + + +### Upgrade Notes + +* The minimum supported version of each Qiskit dependency has been updated. This release depends on `qiskit-terra>=0.23.3`, `qiskit-aer>=0.12.0`, `qiskit-nature>=0.5.2`, and `qiskit-ibm-runtime>=0.9.2`. `qiskit-ibmq-provider` is now deprecated and is no longer required by the Circuit Knitting Toolbox. + +* Support for Qiskit Nature \< 0.5 has been removed upon this release. + + Users are now be required to use the `qiskit_nature.second_q.problems.ElectronicStructureProblem`, as input to the `EntanglementForgingGroundStateSolver`, rather than the deprecated `qiskit_nature.problems.second_quantization.ElectronicStructureProblem`. + + For more information on migrating to Qiskit Nature 0.5, check out the [Qiskit Nature migration guide](https://qiskit-community.github.io/qiskit-nature/migration/0.5_a_intro.html). + + For more information on adapting your entanglement forging workflows, check out the `tutorials ` and `how-to guides `. + +* The `~circuit_knitting_toolbox.utils.IntegralDriver` class has been removed. The new Qiskit Nature API allows for a more flexible build-up of the `qiskit_nature.second_q.problems.ElectronicStructureProblem`, and this driver is no longer needed. + +* DOcplex and cplex are now optional dependencies. They must be installed for automatic wire cut finding to work. + + + + + +### Deprecation Notes + +* Support for running with Python 3.7 has been deprecated. Future versions of the Circuit Knitting Toolbox will require Python 3.8 or higher. + diff --git a/docs/api/qiskit-addon-mpf/_package.json b/docs/api/qiskit-addon-mpf/_package.json new file mode 100644 index 00000000000..cd8d23ff544 --- /dev/null +++ b/docs/api/qiskit-addon-mpf/_package.json @@ -0,0 +1,4 @@ +{ + "name": "qiskit-addon-mpf", + "version": "0.1.0" +} diff --git a/docs/api/qiskit-addon-mpf/_toc.json b/docs/api/qiskit-addon-mpf/_toc.json new file mode 100644 index 00000000000..37d3a86eaf4 --- /dev/null +++ b/docs/api/qiskit-addon-mpf/_toc.json @@ -0,0 +1,14 @@ +{ + "title": "Multi-Product Formulas", + "children": [ + { + "title": "API index", + "url": "/api/qiskit-addon-mpf" + }, + { + "title": "Release notes", + "url": "/api/qiskit-addon-mpf/release-notes" + } + ], + "collapsed": true +} diff --git a/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.mdx b/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.mdx new file mode 100644 index 00000000000..1c6ebb31203 --- /dev/null +++ b/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.mdx @@ -0,0 +1,16 @@ +# Qiskit addon: multi-product formulas (MPF) + + + + + +Multi-product formulas. + +| | +| - | + +## Submodules + +| | | +| -------------------------------------------------------------------------------------------- | ------------ | +| [`static`](qiskit_addon_mpf.static#module-qiskit_addon_mpf.static "qiskit_addon_mpf.static") | Static MPFs. | diff --git a/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.LSE.mdx b/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.LSE.mdx new file mode 100644 index 00000000000..2dca8caacaf --- /dev/null +++ b/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.LSE.mdx @@ -0,0 +1,76 @@ +--- +title: LSE +description: API reference for qiskit_addon_mpf.static.LSE +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_mpf.static.LSE +--- + +# LSE + + + Bases: [`NamedTuple`](https://docs.python.org/3/library/typing.html#typing.NamedTuple "(in Python v3.13)") + + A `namedtuple` representing a linear system of equations. + +$$ +A x = b +$$ + + Create new instance of LSE(A, b) + + ## Attributes + + ### A + + + The left hand side of the LSE. + + + ### b + + + The right hand side of the LSE. + + + ### x + + + Returns the \$x\$ [`Variable`](https://www.cvxpy.org/api_reference/cvxpy.expressions.html#cvxpy.expressions.variable.Variable "(in CVXPY v1.5)"). + + + ## Methods + + ### count + + + Return number of occurrences of value. + + + ### index + + + Return first index of value. + + Raises ValueError if the value is not present. + + + ### solve + + + Return the solution to this LSE: $x=A^{-1}b$. + + **Returns** + + The solution to this LSE. + + **Raises** + + [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – if this LSE is parameterized with unassigned values. + + **Return type** + + [*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)") + + + diff --git a/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.mdx b/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.mdx new file mode 100644 index 00000000000..86a55cd30ab --- /dev/null +++ b/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.mdx @@ -0,0 +1,26 @@ +# Static MPFs + + + + + +Static MPFs. + +## Linear system of equations utilities + +| | | +| ------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------- | +| [`LSE`](qiskit_addon_mpf.static.LSE "qiskit_addon_mpf.static.LSE") | A `namedtuple` representing a linear system of equations. | +| [`setup_lse`](qiskit_addon_mpf.static.setup_lse "qiskit_addon_mpf.static.setup_lse") | Return the linear system of equations for computing the static MPF coefficients. | + +## Exact static MPF coefficients + +| | | +| ------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [`setup_exact_model`](qiskit_addon_mpf.static.setup_exact_model "qiskit_addon_mpf.static.setup_exact_model") | Construct a [`cvxpy.Problem`](https://www.cvxpy.org/api_reference/cvxpy.problems.html#cvxpy.Problem "(in CVXPY v1.5)") for finding exact static MPF coefficients. | + +## Approximate static MPF coefficients + +| | | +| ------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [`setup_approximate_model`](qiskit_addon_mpf.static.setup_approximate_model "qiskit_addon_mpf.static.setup_approximate_model") | Construct a [`cvxpy.Problem`](https://www.cvxpy.org/api_reference/cvxpy.problems.html#cvxpy.Problem "(in CVXPY v1.5)") for finding approximate static MPF coefficients. | diff --git a/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.setup_approximate_model.mdx b/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.setup_approximate_model.mdx new file mode 100644 index 00000000000..24a94dd16d7 --- /dev/null +++ b/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.setup_approximate_model.mdx @@ -0,0 +1,70 @@ +--- +title: setup_approximate_model +description: API reference for qiskit_addon_mpf.static.setup_approximate_model +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_mpf.static.setup_approximate_model +--- + + + +# setup\_approximate\_model + + + Construct a [`cvxpy.Problem`](https://www.cvxpy.org/api_reference/cvxpy.problems.html#cvxpy.Problem "(in CVXPY v1.5)") for finding approximate static MPF coefficients. + + The optimization problem constructed by this class is defined as follows: + + * the cost function minimizes the sum of squares ([`sum_squares()`](https://www.cvxpy.org/api_reference/cvxpy.atoms.other_atoms.html#cvxpy.atoms.sum_squares.sum_squares "(in CVXPY v1.5)")) of the distances to an exact solution for all equations of the [`LSE`](qiskit_addon_mpf.static.LSE "qiskit_addon_mpf.static.LSE"): + +$$ +\sum_i \left( \sum_j A_{ij} x_j - b_i \right)^2 +$$ + + * two constraints are set: + + 1. the variables must sum to 1: $\sum_i x_i == 1$ + 2. the L1-norm ([`norm1`](https://www.cvxpy.org/api_reference/cvxpy.atoms.other_atoms.html#cvxpy.atoms.norm1.norm1 "(in CVXPY v1.5)")) of the variables is bounded by `max_l1_norm` + + Here is an example: + + ```python + >>> from qiskit_addon_mpf.static import setup_lse, setup_approximate_model + >>> lse = setup_lse([1,2,3], order=2, symmetric=True) + >>> problem, coeffs = setup_approximate_model(lse, max_l1_norm=3.0) + >>> print(problem) + minimize quad_over_lin(Vstack([1. 1. 1.] @ x + -1.0, + [1. 0.25 0.11111111] @ x + -0.0, + [1. 0.0625 0.01234568] @ x + -0.0), 1.0) + subject to Sum(x, None, False) == 1.0 + norm1(x) <= 3.0 + ``` + + You can then solve the problem and extract the expansion coefficients like so: + + ```python + >>> final_cost = problem.solve() + >>> print(coeffs.value) + [ 0.03513467 -1. 1.96486533] + ``` + + **Parameters** + + * **lse** ([*LSE*](qiskit_addon_mpf.static.LSE "qiskit_addon_mpf.static.lse.LSE")) – the linear system of equations from which to build the model. + * **max\_l1\_norm** ([*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – the upper limit to use for the constrain of the L1-norm of the variables. + + **Returns** + + The optimization problem and coefficients variable. + + **Return type** + + [tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[*Problem*](https://www.cvxpy.org/api_reference/cvxpy.problems.html#cvxpy.Problem "(in CVXPY v1.5)"), [*Variable*](https://www.cvxpy.org/api_reference/cvxpy.expressions.html#cvxpy.expressions.variable.Variable "(in CVXPY v1.5)")] + + **References** + + ## \[1]: S. Zhuk et al., arXiv:2306.12569 (2023). + + [https://arxiv.org/abs/2306.12569](https://arxiv.org/abs/2306.12569) + + diff --git a/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.setup_exact_model.mdx b/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.setup_exact_model.mdx new file mode 100644 index 00000000000..a2bdeb2efd8 --- /dev/null +++ b/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.setup_exact_model.mdx @@ -0,0 +1,69 @@ +--- +title: setup_exact_model +description: API reference for qiskit_addon_mpf.static.setup_exact_model +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_mpf.static.setup_exact_model +--- + + + +# setup\_exact\_model + + + Construct a [`cvxpy.Problem`](https://www.cvxpy.org/api_reference/cvxpy.problems.html#cvxpy.Problem "(in CVXPY v1.5)") for finding exact static MPF coefficients. + + + The coefficients found via this optimization problem will be identical to the analytical ones obtained from the [`LSE.solve()`](qiskit_addon_mpf.static.LSE#solve "qiskit_addon_mpf.static.LSE.solve") method. This additional interface exists to highlight the parallel to the [`setup_approximate_model()`](qiskit_addon_mpf.static.setup_approximate_model "qiskit_addon_mpf.static.setup_approximate_model") interface. It also serves educational purposes for how-to approach optimization problems targeting MPF coefficients. + + + The optimization problem constructed by this class is defined as follows: + + * the cost function minimizes the L1-norm ([`norm1`](https://www.cvxpy.org/api_reference/cvxpy.atoms.other_atoms.html#cvxpy.atoms.norm1.norm1 "(in CVXPY v1.5)")) of the variables ([`LSE.x`](qiskit_addon_mpf.static.LSE#x "qiskit_addon_mpf.static.LSE.x")) + + * the constraints correspond to each equation of the [`LSE`](qiskit_addon_mpf.static.LSE "qiskit_addon_mpf.static.LSE"): + +$$ +\sum_j A_{ij} x_j = b_i +$$ + + Here is an example: + + ```python + >>> from qiskit_addon_mpf.static import setup_lse, setup_exact_model + >>> lse = setup_lse([1,2,3], order=2, symmetric=True) + >>> problem, coeffs = setup_exact_model(lse) + >>> print(problem) + minimize norm1(x) + subject to Sum([1. 1. 1.] @ x, None, False) == 1.0 + Sum([1. 0.25 0.11111111] @ x, None, False) == 0.0 + Sum([1. 0.0625 0.01234568] @ x, None, False) == 0.0 + ``` + + You can then solve the problem and extract the expansion coefficients like so: + + ```python + >>> final_cost = problem.solve() + >>> print(coeffs.value) + [ 0.04166667 -1.06666667 2.025 ] + ``` + + **Parameters** + + **lse** ([*LSE*](qiskit_addon_mpf.static.LSE "qiskit_addon_mpf.static.lse.LSE")) – the linear system of equations from which to build the model. + + **Returns** + + The optimization problem and coefficients variable. + + **Return type** + + [tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[*Problem*](https://www.cvxpy.org/api_reference/cvxpy.problems.html#cvxpy.Problem "(in CVXPY v1.5)"), [*Variable*](https://www.cvxpy.org/api_reference/cvxpy.expressions.html#cvxpy.expressions.variable.Variable "(in CVXPY v1.5)")] + + **References** + + ## \[1]: A. Carrera Vazquez et al., Quantum 7, 1067 (2023). + + [https://quantum-journal.org/papers/q-2023-07-25-1067/](https://quantum-journal.org/papers/q-2023-07-25-1067/) + + diff --git a/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.setup_lse.mdx b/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.setup_lse.mdx new file mode 100644 index 00000000000..19b15386655 --- /dev/null +++ b/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.setup_lse.mdx @@ -0,0 +1,60 @@ +--- +title: setup_lse +description: API reference for qiskit_addon_mpf.static.setup_lse +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_mpf.static.setup_lse +--- + + + +# setup\_lse + + + Return the linear system of equations for computing the static MPF coefficients. + + This function constructs the following linear system of equations: + +$$ +A x = b, +$$ + + with + +$$ +\begin{split}A_{0,j} &= 1 \\ +A_{i>0,j} &= k_{j}^{-(\chi + s(i-1))} \\ +b_0 &= 1 \\ +b_{i>0} &= 0\end{split} +$$ + + where \$\chi\$ is the `order`, \$s\$ is \$2\$ if `symmetric` is `True` and \$1\$ oterhwise, \$k\_\{j}\$ are the `trotter_steps`, and \$x\$ are the variables to solve for. The indices \$i\$ and \$j\$ start at \$0\$. + + Here is an example: + + ```python + >>> from qiskit_addon_mpf.static import setup_lse + >>> lse = setup_lse([1,2,3], order=2, symmetric=True) + >>> print(lse.A) + [[1. 1. 1. ] + [1. 0.25 0.11111111] + [1. 0.0625 0.01234568]] + >>> print(lse.b) + [1. 0. 0.] + ``` + + **Parameters** + + * **trotter\_steps** ([*list*](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")*\[*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*] |* [*Parameter*](https://www.cvxpy.org/api_reference/cvxpy.expressions.html#cvxpy.expressions.constants.parameter.Parameter "(in CVXPY v1.5)")) – the sequence of trotter steps from which to build \$A\$. Rather than a list of integers, this may also be a [`Parameter`](https://www.cvxpy.org/api_reference/cvxpy.expressions.html#cvxpy.expressions.constants.parameter.Parameter "(in CVXPY v1.5)") instance of the desired size. In this case, the constructed [`LSE`](qiskit_addon_mpf.static.LSE "qiskit_addon_mpf.static.LSE") is parameterized whose values must be assigned before it can be solved. + * **order** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – the order of the individual product formulas making up the MPF. + * **symmetric** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – whether the individual product formulas making up the MPF are symmetric. For example, the Lie-Trotter formula is not symmetric, while Suzuki-Trotter is. + + **Returns** + + An [`LSE`](qiskit_addon_mpf.static.LSE "qiskit_addon_mpf.static.LSE"). + + **Return type** + + [*LSE*](qiskit_addon_mpf.static.LSE "qiskit_addon_mpf.static.lse.LSE") + + diff --git a/docs/api/qiskit-addon-mpf/release-notes.mdx b/docs/api/qiskit-addon-mpf/release-notes.mdx new file mode 100644 index 00000000000..87aa4dfb65d --- /dev/null +++ b/docs/api/qiskit-addon-mpf/release-notes.mdx @@ -0,0 +1,12 @@ +--- +title: Multi-Product Formulas release notes +description: Changes made to Multi-Product Formulas +in_page_toc_max_heading_level: 2 +--- + + + + + +# Multi-Product Formulas release notes + diff --git a/docs/api/qiskit-addon-obp/_package.json b/docs/api/qiskit-addon-obp/_package.json new file mode 100644 index 00000000000..a7b1eefce75 --- /dev/null +++ b/docs/api/qiskit-addon-obp/_package.json @@ -0,0 +1,4 @@ +{ + "name": "qiskit-addon-obp", + "version": "0.1.0" +} diff --git a/docs/api/qiskit-addon-obp/_toc.json b/docs/api/qiskit-addon-obp/_toc.json new file mode 100644 index 00000000000..5019433655a --- /dev/null +++ b/docs/api/qiskit-addon-obp/_toc.json @@ -0,0 +1,14 @@ +{ + "title": "Operator Backpropagation", + "children": [ + { + "title": "API index", + "url": "/api/qiskit-addon-obp" + }, + { + "title": "Release notes", + "url": "/api/qiskit-addon-obp/release-notes" + } + ], + "collapsed": true +} diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.backpropagate.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.backpropagate.mdx new file mode 100644 index 00000000000..978a4556386 --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.backpropagate.mdx @@ -0,0 +1,49 @@ +--- +title: backpropagate +description: API reference for qiskit_addon_obp.backpropagate +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_obp.backpropagate +--- + +# backpropagate + + + Backpropagate slices of quantum circuit operations onto the provided observables. + + This function takes a (list of) observable(s) and backpropagates the provided quantum circuit slices **in reverse order** onto the observable(s) until one of the stopping criteria is reached. + + The stopping criteria are values which constrain how large the observable may grow during backpropagation. These may be specified via the `operator_budget` optional argument. Refer to the [`OperatorBudget`](qiskit_addon_obp.utils.simplify.OperatorBudget "qiskit_addon_obp.utils.simplify.OperatorBudget") class for more details. + + During backpropagation, users may truncate low-weight terms from the output observables, potentially reducing the number of experiments needed to run on the QPU. Truncating observable terms results in expectation value error proportional to the weights of the truncated terms. Users may specify how aggressively to truncate by providing a [`TruncationErrorBudget`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") to the `truncation_error_budget` argument. Refer to the [`setup_budget()`](qiskit_addon_obp.utils.truncating.setup_budget "qiskit_addon_obp.utils.truncating.setup_budget") documentation for more details. + + + The `max_seconds` argument is not available on Windows! + + + **Parameters** + + * **observables** ([*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)") *|*[*list*](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")*\[*[*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)")*]*) – The observable(s) onto which the circuit is backpropagated. + * **slices** ([*Sequence*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")*\[*[*QuantumCircuit*](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")*]*) – A sequence of `QuantumCircuit` objects representing a single circuit which has been separated into partitions spanning all qubits. **These “slices” will be backpropagated in reverse order.** Each slice must span all qubits. One may use the tools provided in [`qiskit_addon_utils.slicing`](https://qiskit.github.io/qiskit-addon-utils/apidocs/qiskit_addon_utils.slicing.html#module-qiskit_addon_utils.slicing "(in Qiskit addon utilities)") to slice a single [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"). + * **truncation\_error\_budget** ([*TruncationErrorBudget*](qiskit_addon_obp.utils.truncating.TruncationErrorBudget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") *| None*) – The error budget used for truncating Pauli terms. Refer to the [how-to guide](how_tos/truncate_operator_terms) for a detailed discussion on truncating terms from the output operator and bounding the incurred error. + * **operator\_budget** ([*OperatorBudget*](qiskit_addon_obp.utils.simplify.OperatorBudget "qiskit_addon_obp.utils.simplify.OperatorBudget") *| None*) – Constraints on how large the operator may grow during backpropagation. If `None`, a default instance of [`OperatorBudget`](qiskit_addon_obp.utils.simplify.OperatorBudget "qiskit_addon_obp.utils.simplify.OperatorBudget") will be used, and no constraints will be placed on the output operator size. + * **max\_seconds** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *| None*) – The maximum number of seconds to run the backpropagation. If this timeout is triggered before the function returns, the metadata of that moment will be returned. Note, that this metadata may contain only partial information for the last slice being backpropagated. + + **Returns** + + * The backpropagated observables. + * The slices which were not absorbed into the observable during backpropagation. + * A metadata container. + + **Raises** + + * [**RuntimeError**](https://docs.python.org/3/library/exceptions.html#RuntimeError "(in Python v3.13)") – If the `max_seconds` argument is attempted to be used on Windows. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – All observables and slices must act on equivalent numbers of qubits. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – An input observable is larger than the constraints specified by `operator_budget`. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – `operator_budget.max_paulis` or `operator_budget.max_qwc_groups` is less than 1. + + **Return type** + + [tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[list](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")\[[*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)")], [*Sequence*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")\[[*QuantumCircuit*](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")], [*OBPMetadata*](qiskit_addon_obp.utils.metadata.OBPMetadata "qiskit_addon_obp.utils.metadata.OBPMetadata")] + + diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.mdx new file mode 100644 index 00000000000..5ce6964c34c --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.mdx @@ -0,0 +1,17 @@ +# Qiskit addon: operator backpropagation (OBP) + + + + + +Main operator backpropagation functionality. + +| | | +| ---------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| [`backpropagate`](qiskit_addon_obp.backpropagate "qiskit_addon_obp.backpropagate") | Backpropagate slices of quantum circuit operations onto the provided observables. | + +## Submodules + +| | | +| ---------------------------------------------------------------------------------------- | -------------------------------------------------------------- | +| [`utils`](qiskit_addon_obp.utils#module-qiskit_addon_obp.utils "qiskit_addon_obp.utils") | Utility functionality for conducting operator backpropagation. | diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.mdx new file mode 100644 index 00000000000..437f3781e23 --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.mdx @@ -0,0 +1,15 @@ +# utils + + + + + +Utility functionality for conducting operator backpropagation. + +| | | +| ------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------- | +| [`metadata`](qiskit_addon_obp.utils.metadata#module-qiskit_addon_obp.utils.metadata "qiskit_addon_obp.utils.metadata") | Container classes for holding backpropagation metadata. | +| [`operations`](qiskit_addon_obp.utils.operations#module-qiskit_addon_obp.utils.operations "qiskit_addon_obp.utils.operations") | Utility functions for operator backpropagation. | +| [`simplify`](qiskit_addon_obp.utils.simplify#module-qiskit_addon_obp.utils.simplify "qiskit_addon_obp.utils.simplify") | Functions for simplifying Pauli operators. | +| [`truncating`](qiskit_addon_obp.utils.truncating#module-qiskit_addon_obp.utils.truncating "qiskit_addon_obp.utils.truncating") | Functions for truncating Pauli operators within given error budgets. | +| [`visualization`](qiskit_addon_obp.utils.visualization#module-qiskit_addon_obp.utils.visualization "qiskit_addon_obp.utils.visualization") | Various visualization utilities. | diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.metadata.OBPMetadata.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.metadata.OBPMetadata.mdx new file mode 100644 index 00000000000..5761d51df4d --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.metadata.OBPMetadata.mdx @@ -0,0 +1,141 @@ +--- +title: OBPMetadata +description: API reference for qiskit_addon_obp.utils.metadata.OBPMetadata +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_obp.utils.metadata.OBPMetadata +--- + +# OBPMetadata + + + Bases: [`object`](https://docs.python.org/3/library/functions.html#object "(in Python v3.13)") + + A container for metadata generated during the `backpropagate()` method. + + ## Attributes + + ### truncation\_error\_budget + + + Values specifying the observable truncation strategy. + + + ### num\_slices + + + The total number of slices to attempt to backpropagate. + + + ### operator\_budget + + + Values specifying how large the operator may grow. + + + ### backpropagation\_history + + + A sequence of metadata objects to track the progression of the backpropagation. + + + ### num\_backpropagated\_slices + + + The number of backpropagated slices. + + + This value can differ from `len(backpropagation_history)` in cases where a stopping criterion such as `operator_budget.max_paulis` or `operator_budget.max_qwc_groups` caused the backpropagation to terminate. Then, this value should be equal to `len(backpropagation_history) - 1` because the last slice caused the thresholds to be exceeded. However, for convenience these values are still recorded for the end-user to inspect them. + + + + ## Methods + + ### accumulated\_error + + + Compute the accumulated error for a given observable at a given “time”. + + This method computes the accumulated error for a given observable index at a given “time” during the course of the backpropagation. In this context, “time” is to be understood as the discrete steps of already backpropagated slices. + + The accumulated error is computed as the sum of the individual [`SliceMetadata.slice_errors`](qiskit_addon_obp.utils.metadata.SliceMetadata#slice_errors "qiskit_addon_obp.utils.metadata.SliceMetadata.slice_errors"). These in turn may be computed within a specified [`TruncationErrorBudget.p_norm`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget#p_norm "qiskit_addon_obp.utils.truncating.TruncationErrorBudget.p_norm"). Thus, the computed accumulated error is an upper bound to the real accumulated error as given by the [Minkowski inequality](https://en.wikipedia.org/wiki/Minkowski_inequality) (the generalization of the triangle inequality for Lp-norms other than `p=2`). + + + Since a general Lp-norm (other than `p=2`) is *not* an inner product norm, it does *not* satisfy the [parallelogram law](https://en.wikipedia.org/wiki/Parallelogram_law). Hence, we must use the Minkowski inequality as the upper bound of the accumulated error. + + + **Parameters** + + * **observable\_idx** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – the index of the observable whose accumulated error to compute. + * **slice\_idx** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *| None*) – the index of the slice (the discrete “time” step) up to which to compute the accumulated error. If this is `None`, it will default to `self.num_backpropagated_slices` which is equivalent to computing the accumulated error of an observable at the latest point in time which has not surpassed any stopping criteria in the algorithm + + **Returns** + + The accumulated error computed per the explanations above. + + **Return type** + + [float](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") + + + ### from\_json + + + Load a metadata from a json file. + + **Parameters** + + **json\_file** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")) – the path to the file to be loaded. + + **Returns** + + The loaded metadata. + + **Return type** + + [*OBPMetadata*](#qiskit_addon_obp.utils.metadata.OBPMetadata "qiskit_addon_obp.utils.metadata.OBPMetadata") + + + ### left\_over\_error\_budget + + + Compute the left-over error budget for a given observable at a given “time”. + + This method computes the left-over error budget for a given observable index at a given “time” during the course of the backpropagation. In this context, “time” is to be understood as the discrete steps of already backpropagated slices. + + The left-over error budget is computed as the remainder of the total budget minus the sum of the individual [`SliceMetadata.slice_errors`](qiskit_addon_obp.utils.metadata.SliceMetadata#slice_errors "qiskit_addon_obp.utils.metadata.SliceMetadata.slice_errors"). These in turn may be computed within a specified [`TruncationErrorBudget.p_norm`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget#p_norm "qiskit_addon_obp.utils.truncating.TruncationErrorBudget.p_norm"). + + + See also the explanations in [`accumulated_error()`](#qiskit_addon_obp.utils.metadata.OBPMetadata.accumulated_error "qiskit_addon_obp.utils.metadata.OBPMetadata.accumulated_error") for more details on how the individual slice errors are summed up to form an upper bound to the real error via the Minkowski inequality. + + + + The left-over error budget is relative to the value of `self.truncation_error_budget.max_error_total` which may be `numpy.inf` in which case the returned value of this method will be `numpy.inf`, too. + + + **Parameters** + + * **observable\_idx** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – the index of the observable whose left-over error budget to compute. + * **slice\_idx** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *| None*) – the index of the slice (the discrete “time” step) up to which to compute the left-over error budget. If this is `None`, it will default to `self.num_backpropagated_slices` which is equivalent to computing the left-over error budget of an observable at the latest point in time which has not surpassed any stopping criteria in the algorithm + + **Returns** + + The left-over error budget computed per the explanations above. + + **Return type** + + [float](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") + + + ### to\_json + + + Dump this metadata to a json file. + + **Parameters** + + * **json\_file** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")) – the path to the file into which to dump the metadata. + * **kwargs** – keyword arguments to be passed on towards `json.dump()`. + + + diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.metadata.SliceMetadata.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.metadata.SliceMetadata.mdx new file mode 100644 index 00000000000..5e74acdcc7c --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.metadata.SliceMetadata.mdx @@ -0,0 +1,102 @@ +--- +title: SliceMetadata +description: API reference for qiskit_addon_obp.utils.metadata.SliceMetadata +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_obp.utils.metadata.SliceMetadata +--- + +# SliceMetadata + + + Bases: [`object`](https://docs.python.org/3/library/functions.html#object "(in Python v3.13)") + + A container for metadata generated during the backpropagation of a single slice. + + ## Attributes + + ### slice\_errors + + + The truncation error incurred for each observable that is being backpropagated. + + + ### raw\_num\_paulis + + + The “raw” number of Pauli terms for each observable that is being backpropagated. This indicates the number of Pauli terms before any simplification or truncation operations. + + + ### num\_unique\_paulis + + + The number of unique Pauli terms for each observable. This attribute only tracks those Pauli terms whose coefficients were not already below the trimming threshold at the beginning of the operator simplification procedure. + + + This value will be `None` if `simplify=False` during the backpropagation. + + + + ### num\_duplicate\_paulis + + + The number of duplicate Pauli terms for each observable whose coefficients have been summed up to trim excess memory usage during the operator simplification. + + + This value will be `None` if `simplify=False` during the backpropagation. + + + + ### num\_trimmed\_paulis + + + The number of Pauli terms for each observable that were trimmed during operator simplification because their total coefficient was below the trimming threshold. + + + This value will be `None` if `simplify=False` during the backpropagation. + + + + ### sum\_trimmed\_coeffs + + + The sum of the coefficients for each observable that were trimmed during operator simplification because each individual coefficient was below the trimming threshold. + + + This sum is *not* affected by the value of [`p_norm`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget#p_norm "qiskit_addon_obp.utils.truncating.TruncationErrorBudget.p_norm")! + + + + This value will be `None` if `simplify=False` during the backpropagation. + + + + ### num\_truncated\_paulis + + + The number of Pauli terms which were truncated from each observable that is being backpropagated. + + + ### num\_paulis + + + The number of Pauli terms for each observable that is being backpropagated. + + + ### sum\_paulis + + + The number of Pauli terms across all observables. This value is `None` if it is not bounded during the backpropagation. + + + This value can differ from `sum(num_paulis)` because identical Pauli terms will not be counted multiple times. + + + + ### num\_qwc\_groups + + + The number of qubit-wise commuting groups of Pauli terms across all observables. This value is `None` if it is not bounded during the backpropagation. + + + diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.metadata.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.metadata.mdx new file mode 100644 index 00000000000..bc27644e4ba --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.metadata.mdx @@ -0,0 +1,12 @@ +# metadata + + + + + +Container classes for holding backpropagation metadata. + +| | | +| ---------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| [`OBPMetadata`](qiskit_addon_obp.utils.metadata.OBPMetadata "qiskit_addon_obp.utils.metadata.OBPMetadata") | A container for metadata generated during the `backpropagate()` method. | +| [`SliceMetadata`](qiskit_addon_obp.utils.metadata.SliceMetadata "qiskit_addon_obp.utils.metadata.SliceMetadata") | A container for metadata generated during the backpropagation of a single slice. | diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.apply_op_to.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.apply_op_to.mdx new file mode 100644 index 00000000000..0d18de11372 --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.apply_op_to.mdx @@ -0,0 +1,48 @@ +--- +title: apply_op_to +description: API reference for qiskit_addon_obp.utils.operations.apply_op_to +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_obp.utils.operations.apply_op_to +--- + + + +# apply\_op\_to + + + Apply the operator `op2` to the operator `op1`. + + These operators do not necessarily need to act on the same number of qubits, as they are assumed to act on a larger system. The position in the system of each operator is defined by the corresponding `qargs`. The output operator will be defined on `union(op1_qargs, op2_qargs)`. + + By default, this function applies `op1` to `op2` in the following way: + + > `op2 @ op1` + + By setting `apply_as_transform=True`, this function will apply `op1` to `op2` in the following way: + + > `op2.adjoint() @ op1 @ op2` + + **Parameters** + + * **op1** ([*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)")) – The operator on which `op2` will be applied. + * **op1\_qargs** ([*list*](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")*\[*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]*) – The qubit indices for `op1`. + * **op2** ([*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)")) – The operator to apply to `op1`. + * **op2\_qargs** ([*list*](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")*\[*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]*) – The qubit indices for `op2`. + * **apply\_as\_transform** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – Whether to apply `op2` to `op1` as a transformation. + + **Returns** + + The tuple `(op, qargs)` where `op` is the input `op1` with `op2` left-applied and `qargs` is a list of qubit indices for the new operator `op`. The qubit IDs in the output `op` correspond to the global qubit ID in the same index in `qargs`. + + For example, if the output `op` is a `SparsePauliOp("YX")` and `qargs` is \[3, 4], the X term on qubit 0 of the operator corresponds to global qubit ID 3. + + **Raises** + + [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – The number of unique operator qargs must match the number of qubits in the corresponding operator. + + **Return type** + + [tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), [list](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")\[[int](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")]] + + diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.mdx new file mode 100644 index 00000000000..b46ed5d658c --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.mdx @@ -0,0 +1,13 @@ +# operations + + + + + +Utility functions for operator backpropagation. + +| | | +| ----------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| [`apply_op_to`](qiskit_addon_obp.utils.operations.apply_op_to "qiskit_addon_obp.utils.operations.apply_op_to") | Apply the operator `op2` to the operator `op1`. | +| [`to_global_op`](qiskit_addon_obp.utils.operations.to_global_op "qiskit_addon_obp.utils.operations.to_global_op") | Convert a local operator to a global operator by inserting identities on qubits which aren't used. | +| [`reduce_op`](qiskit_addon_obp.utils.operations.reduce_op "qiskit_addon_obp.utils.operations.reduce_op") | Create a lean representation of a global Pauli operator. | diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.reduce_op.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.reduce_op.mdx new file mode 100644 index 00000000000..5964aac6caf --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.reduce_op.mdx @@ -0,0 +1,47 @@ +--- +title: reduce_op +description: API reference for qiskit_addon_obp.utils.operations.reduce_op +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_obp.utils.operations.reduce_op +--- + + + +# reduce\_op + + + Create a lean representation of a global Pauli operator. + + This function returns a lean representation of the input operator such that all of the qubits associated solely with Pauli-I terms have been removed. A list of indices is also returned indicating on which qubits the lean operator acts. + + ## For example: + + ```python + >>> global_op = SparsePauliOp(["IXI", "IIZ"]) + >>> reduced_op, qargs = reduce_op(global_op) + >>> reduced_op + SparsePauliOp(['XI', 'IZ'], + coeffs=[1.+0.j, 1.+0.j]) + >>> qargs + [0, 1] + ``` + + **Parameters** + + **global\_op** ([*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)")) – The global operator for which to generate a lean representation + + **Returns** + + * A lean representation of the input operator with qubits associated solely with identity terms removed. + * A list of indices specifying the qubits on which the lean operator acts. + + **Raises** + + [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – Input operator may not be the identity operator. + + **Return type** + + [tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), [list](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")\[[int](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")]] + + diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.to_global_op.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.to_global_op.mdx new file mode 100644 index 00000000000..e8af6f5a9e3 --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.to_global_op.mdx @@ -0,0 +1,34 @@ +--- +title: to_global_op +description: API reference for qiskit_addon_obp.utils.operations.to_global_op +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_obp.utils.operations.to_global_op +--- + + + +# to\_global\_op + + + Convert a local operator to a global operator by inserting identities on qubits which aren’t used. + + **Parameters** + + * **op** ([*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)")) – Local operator to expand. + * **qargs** ([*list*](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")*\[*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]*) – Qubit indices for local operator. + * **n\_qubits** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – Number of qubits in the global system. + + **Returns** + + An operator on `n_qubits` qubits + + **Raises** + + [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – Qubit ID out of range + + **Return type** + + [*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)") + + diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.OperatorBudget.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.OperatorBudget.mdx new file mode 100644 index 00000000000..a7ab658eb1d --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.OperatorBudget.mdx @@ -0,0 +1,53 @@ +--- +title: OperatorBudget +description: API reference for qiskit_addon_obp.utils.simplify.OperatorBudget +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_obp.utils.simplify.OperatorBudget +--- + +# OperatorBudget + + + Bases: [`object`](https://docs.python.org/3/library/functions.html#object "(in Python v3.13)") + + A class for storing the constants that determine how large an operator may grow. + + Backpropagation will stop if either of the following conditions is met: + + * The number of Pauli terms across all of the observables exceeds `max_paulis`. When `max_paulis = None`, the number of Pauli terms in the observables is not constrained. + * The number of qubit-wise commuting Pauli groups across all of the observables exceed `max_qwc_groups`. When `max_qwc_groups = None`, the number of qubit-wise commuting Pauli groups in the observables is not constrained. + + ## Attributes + + ### max\_paulis + + + The maximum number of Pauli terms the backpropagated operator may contain. + + + ### max\_qwc\_groups + + + The maximum number of qubit-wise commuting Pauli groups the backpropagated operator may contain. + + + ### simplify + + + A flag denoting whether to call [`simplify()`](qiskit_addon_obp.utils.simplify.simplify "qiskit_addon_obp.utils.simplify.simplify") at every iteration. + + + ## Methods + + ### is\_active + + + Return whether `self` places any bounds on operator size. + + **Return type** + + [bool](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)") + + + diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.SimplifyMetadata.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.SimplifyMetadata.mdx new file mode 100644 index 00000000000..55199ec2367 --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.SimplifyMetadata.mdx @@ -0,0 +1,42 @@ +--- +title: SimplifyMetadata +description: API reference for qiskit_addon_obp.utils.simplify.SimplifyMetadata +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_obp.utils.simplify.SimplifyMetadata +--- + +# SimplifyMetadata + + + Bases: [`object`](https://docs.python.org/3/library/functions.html#object "(in Python v3.13)") + + A simple dataclass for returning the tracked attributes during operator simplification. + + ## Attributes + + ### num\_unique\_paulis + + + The number of unique Pauli terms. See also `num_unique_paulis`. + + + ### num\_duplicate\_paulis + + + The number of duplicate Pauli terms. See also `num_duplicate_paulis`. + + + ### num\_trimmed\_paulis + + + The number of trimmed Pauli terms. See also `num_trimmed_paulis`. + + + ### sum\_trimmed\_coeffs + + + The sum of the trimmed coefficients. See also `sum_trimmed_coeffs`. + + + diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.mdx new file mode 100644 index 00000000000..a10fe0c16f8 --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.mdx @@ -0,0 +1,13 @@ +# simplify + + + + + +Functions for simplifying Pauli operators. + +| | | +| ------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| [`OperatorBudget`](qiskit_addon_obp.utils.simplify.OperatorBudget "qiskit_addon_obp.utils.simplify.OperatorBudget") | A class for storing the constants that determine how large an operator may grow. | +| [`SimplifyMetadata`](qiskit_addon_obp.utils.simplify.SimplifyMetadata "qiskit_addon_obp.utils.simplify.SimplifyMetadata") | A simple dataclass for returning the tracked attributes during operator simplification. | +| [`simplify`](qiskit_addon_obp.utils.simplify.simplify "qiskit_addon_obp.utils.simplify.simplify") | Simplifies the provided Pauli operator. | diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.simplify.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.simplify.mdx new file mode 100644 index 00000000000..b109336c136 --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.simplify.mdx @@ -0,0 +1,30 @@ +--- +title: simplify +description: API reference for qiskit_addon_obp.utils.simplify.simplify +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_obp.utils.simplify.simplify +--- + +# simplify + + + Simplifies the provided Pauli operator. + + This is an adaption of `SparsePauliOp.simplify()` which tracks metadata of the simplified terms. + + **Parameters** + + * **operator** ([*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)")) – the `SparsePauliOp` to simplify. + * **atol** ([*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") *| None*) – the absolute tolerance for checking if coefficients are zero. If `None`, this will fallback to using `SparsePauliOp.atol`. + * **rtol** ([*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") *| None*) – the relative tolerance for checking if coefficients are zero. If `None`, this will fallback to using `SparsePauliOp.rtol`. + + **Returns** + + The simplified Pauli operator. + + **Return type** + + [tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), [*SimplifyMetadata*](qiskit_addon_obp.utils.simplify.SimplifyMetadata "qiskit_addon_obp.utils.simplify.SimplifyMetadata")] + + diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.TruncationErrorBudget.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.TruncationErrorBudget.mdx new file mode 100644 index 00000000000..765ec1da757 --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.TruncationErrorBudget.mdx @@ -0,0 +1,52 @@ +--- +title: TruncationErrorBudget +description: API reference for qiskit_addon_obp.utils.truncating.TruncationErrorBudget +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_obp.utils.truncating.TruncationErrorBudget +--- + +# TruncationErrorBudget + + + Bases: [`object`](https://docs.python.org/3/library/functions.html#object "(in Python v3.13)") + + A class for storing the constants that determine the truncation error budget. + + Refer to the [how-to guide](how_tos/truncate_operator_terms) for a detailed discussion on truncating operator terms during backpropagation and bounding the incurred error. + + ## Attributes + + ### max\_error\_total + + + The maximum total truncation error to allow for each observable during the entire backpropagation. This value may be [`numpy.inf`](https://numpy.org/doc/stable/reference/constants.html#numpy.inf "(in NumPy v2.1)"), for example when the maximum error was left unspecified during `setup_budget()`. + + + ### p\_norm + + + Indicates which Lp-norm is used for calculating truncation errors. + + Refer to the [how-to guide](how_tos/bound_error_using_p_norm) for a detailed conversation on bounding truncation error using higher Lp-norms. + + + ### per\_slice\_budget + + + The maximum amount of truncation error to allow per backpropagated slice. This list will be looped over during the backpropagation of the circuit slices. + + + ## Methods + + ### is\_active + + + Return whether the truncation is active, i.e. whether the budget is non-zero. + + **Return type** + + [bool](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)") + + + diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.mdx new file mode 100644 index 00000000000..ebb43861491 --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.mdx @@ -0,0 +1,13 @@ +# truncating + + + + + +Functions for truncating Pauli operators within given error budgets. + +| | | +| ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| [`TruncationErrorBudget`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") | A class for storing the constants that determine the truncation error budget. | +| [`setup_budget`](qiskit_addon_obp.utils.truncating.setup_budget "qiskit_addon_obp.utils.truncating.setup_budget") | Calculate the budget available to each slice for observable term truncation. | +| [`truncate_binary_search`](qiskit_addon_obp.utils.truncating.truncate_binary_search "qiskit_addon_obp.utils.truncating.truncate_binary_search") | Perform binary search to find an optimal observable truncation threshold. | diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.setup_budget.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.setup_budget.mdx new file mode 100644 index 00000000000..2f09529c352 --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.setup_budget.mdx @@ -0,0 +1,50 @@ +--- +title: setup_budget +description: API reference for qiskit_addon_obp.utils.truncating.setup_budget +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_obp.utils.truncating.setup_budget +--- + + + +# setup\_budget + + + Calculate the budget available to each slice for observable term truncation. + + This method makes the construction of a [`TruncationErrorBudget`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") easier for an end-user. This error budget can be provided to the [`backpropagate()`](qiskit_addon_obp.backpropagate "qiskit_addon_obp.backpropagate") method to enable the truncation of low-weight Pauli terms. Refer to the [how-to guide](how_tos/truncate_operator_terms) for a detailed discussion on truncating terms from the output operator and bounding the incurred error. + + ## The construction logic is as follows: + + * if `max_error_per_slice` is provided its value is converted to a list and used immediately for [`TruncationErrorBudget.per_slice_budget`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget#per_slice_budget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget.per_slice_budget") + * if the above is not the case, `max_error_total` has to be set + * if `num_slices` is **not** set,:attr:.TruncationErrorBudget.per\_slice\_budget gets set to `[max_error_total]` resulting in the entire budget being consumed **greedily** + * however, if `num_slices` is provided, then [`TruncationErrorBudget.per_slice_budget`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget#per_slice_budget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget.per_slice_budget") assumes an even distribution of the maximum total error across the specified number of slices: `[max_error_total / num_slices]` + + Finally, if `max_error_total` is set, this puts a hard limit on the total maximum error to be accumulated throughout the entire backpropagation. Thus, setting `max_error_per_slice` and `max_error_total` can be of value. + + + Budget not spent during a previous iteration will carry over into subsequent iterations, meaning that the maximum budget for any slice during backpropagation may in fact exceed [`TruncationErrorBudget.per_slice_budget`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget#per_slice_budget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget.per_slice_budget"). + + + **Parameters** + + * **max\_error\_per\_slice** ([*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") *|*[*Sequence*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")*\[*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")*] | None*) – Specifies the maximum error per backpropagated slice. See above for more details. + * **max\_error\_total** ([*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") *| None*) – Specifies the total maximum error for the entire backpropagation. See above for more details. + * **num\_slices** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *| None*) – The number of slices over which to distribute the budget. See above for more details. + * **p\_norm** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The Lp norm of the error. This affects the gradual distribution of `max_error_total` in the case of `num_slices` also being set (see above). Refer to the [how-to guide](how_tos/bound_error_using_p_norm) for a detailed conversation on bounding truncation error using higher Lp-norms. + + **Returns** + + The resulting [`TruncationErrorBudget`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget"). + + **Raises** + + [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – if `max_error_per_slice` and `max_error_total` are both `None`. + + **Return type** + + [*TruncationErrorBudget*](qiskit_addon_obp.utils.truncating.TruncationErrorBudget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") + + diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.truncate_binary_search.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.truncate_binary_search.mdx new file mode 100644 index 00000000000..73f840816d3 --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.truncate_binary_search.mdx @@ -0,0 +1,36 @@ +--- +title: truncate_binary_search +description: API reference for qiskit_addon_obp.utils.truncating.truncate_binary_search +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_obp.utils.truncating.truncate_binary_search +--- + + + +# truncate\_binary\_search + + + Perform binary search to find an optimal observable truncation threshold. + + Removes the Pauli terms from a `SparsePauliOp` whose sum of their absolute coefficients values does not exceed the provided error `budget`. + + **Parameters** + + * **observable** ([*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)")) – the `SparsePauliOp` to truncate terms from. + * **budget** ([*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – the maximum permissable truncation error. + * **p\_norm** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – an integer specifying what p-norm to use. + + **Returns** + + The truncated observable and a bound on the incurred truncation error. + + + The incurred truncation error bound, $E$, is calculated as the `p-norm` of the truncated terms’ coefficient magnitudes, $c$, such that $E = \|c\|_p$. + + + **Return type** + + [tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), [float](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")] + + diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.mdx new file mode 100644 index 00000000000..c988457409d --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.mdx @@ -0,0 +1,17 @@ +# visualization + + + + + +Various visualization utilities. + +| | | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | +| [`plot_accumulated_error`](qiskit_addon_obp.utils.visualization.plot_accumulated_error "qiskit_addon_obp.utils.visualization.plot_accumulated_error") | Plot the accumulated error. | +| [`plot_left_over_error_budget`](qiskit_addon_obp.utils.visualization.plot_left_over_error_budget "qiskit_addon_obp.utils.visualization.plot_left_over_error_budget") | Plot the left-over error budget. | +| [`plot_slice_errors`](qiskit_addon_obp.utils.visualization.plot_slice_errors "qiskit_addon_obp.utils.visualization.plot_slice_errors") | Plot the slice errors. | +| [`plot_num_paulis`](qiskit_addon_obp.utils.visualization.plot_num_paulis "qiskit_addon_obp.utils.visualization.plot_num_paulis") | Plot the number of Pauli terms. | +| [`plot_num_truncated_paulis`](qiskit_addon_obp.utils.visualization.plot_num_truncated_paulis "qiskit_addon_obp.utils.visualization.plot_num_truncated_paulis") | Plot the number of truncated Pauli terms. | +| [`plot_sum_paulis`](qiskit_addon_obp.utils.visualization.plot_sum_paulis "qiskit_addon_obp.utils.visualization.plot_sum_paulis") | Plot the total number of all Pauli terms. | +| [`plot_num_qwc_groups`](qiskit_addon_obp.utils.visualization.plot_num_qwc_groups "qiskit_addon_obp.utils.visualization.plot_num_qwc_groups") | Plot the number of qubit-wise commuting Pauli groups. | diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_accumulated_error.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_accumulated_error.mdx new file mode 100644 index 00000000000..c2ac84f14d2 --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_accumulated_error.mdx @@ -0,0 +1,36 @@ +--- +title: plot_accumulated_error +description: API reference for qiskit_addon_obp.utils.visualization.plot_accumulated_error +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_obp.utils.visualization.plot_accumulated_error +--- + + + +# plot\_accumulated\_error + + + Plot the accumulated error. + + This method populates the provided figure axes with a line-plot of the [`OBPMetadata.accumulated_error()`](qiskit_addon_obp.utils.metadata.OBPMetadata#accumulated_error "qiskit_addon_obp.utils.metadata.OBPMetadata.accumulated_error"). Below is an example where we plot some `metadata` which exists within our context. + + ```python + >>> from matplotlib import pyplot as plt + >>> from qiskit_addon_obp.utils.visualization import plot_accumulated_error + >>> fig, axes = plt.subplots(1, 1) + >>> plot_accumulated_error(metadata, axes) + ``` + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_accumulated\_error-2.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_accumulated_error-2.png) + + As you can see in the figure above, the number of backpropagated slices is displayed along the x-axis. You can think of this as the “time” of the backpropagation algorithm. The accumulated error due to truncated Pauli terms is displayed along the y-axis. If `OBPMetadata.truncation_error_budget.max_error_total` is not [`numpy.inf`](https://numpy.org/doc/stable/reference/constants.html#numpy.inf "(in NumPy v2.1)"), it is displayed as a red horizontal line. Each observable that was backpropagated, gets its own line. + + This data is related to the one visualized by [`plot_slice_errors()`](qiskit_addon_obp.utils.visualization.plot_slice_errors "qiskit_addon_obp.utils.visualization.plot_slice_errors"). This method plots the cumulative sum of the slice errors along the x-axis. + + **Parameters** + + * **metadata** ([*OBPMetadata*](qiskit_addon_obp.utils.metadata.OBPMetadata "qiskit_addon_obp.utils.metadata.OBPMetadata")) – the metadata to be visualized. + * **axes** (*Axes*) – the matplotlib axes in which to plot. + + diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_left_over_error_budget.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_left_over_error_budget.mdx new file mode 100644 index 00000000000..ba0f4424eb5 --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_left_over_error_budget.mdx @@ -0,0 +1,36 @@ +--- +title: plot_left_over_error_budget +description: API reference for qiskit_addon_obp.utils.visualization.plot_left_over_error_budget +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_obp.utils.visualization.plot_left_over_error_budget +--- + + + +# plot\_left\_over\_error\_budget + + + Plot the left-over error budget. + + This method populates the provided figure axes with a line-plot of the [`OBPMetadata.left_over_error_budget()`](qiskit_addon_obp.utils.metadata.OBPMetadata#left_over_error_budget "qiskit_addon_obp.utils.metadata.OBPMetadata.left_over_error_budget"). Below is an example where we plot some `metadata` which exists within our context. + + ```python + >>> from matplotlib import pyplot as plt + >>> from qiskit_addon_obp.utils.visualization import plot_left_over_error_budget + >>> fig, axes = plt.subplots(1, 1) + >>> plot_left_over_error_budget(metadata, axes) + ``` + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_left\_over\_error\_budget-2\_00.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_left_over_error_budget-2_00.png) + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_left\_over\_error\_budget-2\_01.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_left_over_error_budget-2_01.png) + + As you can see in the figure above, the number of backpropagated slices is displayed along the x-axis. You can think of this as the “time” of the backpropagation algorithm. The left-over error budget available at each backpropagation step is displayed along the y-axis. Since each observable that was backpropagated has its own budget, they are plotted as separate lines. + + **Parameters** + + * **metadata** ([*OBPMetadata*](qiskit_addon_obp.utils.metadata.OBPMetadata "qiskit_addon_obp.utils.metadata.OBPMetadata")) – the metadata to be visualized. + * **axes** (*Axes*) – the matplotlib axes in which to plot. + + diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_num_paulis.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_num_paulis.mdx new file mode 100644 index 00000000000..0290e995bd3 --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_num_paulis.mdx @@ -0,0 +1,40 @@ +--- +title: plot_num_paulis +description: API reference for qiskit_addon_obp.utils.visualization.plot_num_paulis +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_obp.utils.visualization.plot_num_paulis +--- + + + +# plot\_num\_paulis + + + Plot the number of Pauli terms. + + This method populates the provided figure axes with a line-plot of the number of Pauli terms at each backpropagated slice. Below is an example where we plot some `metadata` which exists within our context. + + ```python + >>> from matplotlib import pyplot as plt + >>> from qiskit_addon_obp.utils.visualization import plot_num_paulis + >>> fig, axes = plt.subplots(1, 1) + >>> plot_num_paulis(metadata, axes) + ``` + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_num\_paulis-2\_00.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_paulis-2_00.png) + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_num\_paulis-2\_01.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_paulis-2_01.png) + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_num\_paulis-2\_02.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_paulis-2_02.png) + + As you can see in the figure above, the number of backpropagated slices is displayed along the x-axis. You can think of this as the “time” of the backpropagation algorithm. The number of Pauli terms at each backpropagation step is displayed along the y-axis. Since each observable is treated individually, they are plotted separately. + + You can also find out the number of unique Pauli terms across all observables by using [`plot_sum_paulis()`](qiskit_addon_obp.utils.visualization.plot_sum_paulis "qiskit_addon_obp.utils.visualization.plot_sum_paulis"). + + **Parameters** + + * **metadata** ([*OBPMetadata*](qiskit_addon_obp.utils.metadata.OBPMetadata "qiskit_addon_obp.utils.metadata.OBPMetadata")) – the metadata to be visualized. + * **axes** (*Axes*) – the matplotlib axes in which to plot. + + diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_num_qwc_groups.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_num_qwc_groups.mdx new file mode 100644 index 00000000000..e050ab1d450 --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_num_qwc_groups.mdx @@ -0,0 +1,40 @@ +--- +title: plot_num_qwc_groups +description: API reference for qiskit_addon_obp.utils.visualization.plot_num_qwc_groups +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_obp.utils.visualization.plot_num_qwc_groups +--- + + + +# plot\_num\_qwc\_groups + + + Plot the number of qubit-wise commuting Pauli groups. + + This method populates the provided figure axes with a line-plot of the number of qubit-wise commuting Pauli groups at each backpropagated slice. Below is an example where we plot some `metadata` which exists within our context. + + ```python + >>> from matplotlib import pyplot as plt + >>> from qiskit_addon_obp.utils.visualization import plot_num_qwc_groups + >>> fig, axes = plt.subplots(1, 1) + >>> plot_num_qwc_groups(metadata, axes) + ``` + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_num\_qwc\_groups-2\_00.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_qwc_groups-2_00.png) + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_num\_qwc\_groups-2\_01.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_qwc_groups-2_01.png) + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_num\_qwc\_groups-2\_02.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_qwc_groups-2_02.png) + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_num\_qwc\_groups-2\_03.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_qwc_groups-2_03.png) + + As you can see in the figure above, the number of backpropagated slices is displayed along the x-axis. You can think of this as the “time” of the backpropagation algorithm. The number of qubit-wise commuting Pauli groups at each backpropagation step is displayed along the y-axis. If `OBPMetadata.operator_budget.max_qwc_groups` is not None, it is displayed as a red horizontal line. + + **Parameters** + + * **metadata** ([*OBPMetadata*](qiskit_addon_obp.utils.metadata.OBPMetadata "qiskit_addon_obp.utils.metadata.OBPMetadata")) – the metadata to be visualized. + * **axes** (*Axes*) – the matplotlib axes in which to plot. + + diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_num_truncated_paulis.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_num_truncated_paulis.mdx new file mode 100644 index 00000000000..492a2b21ed8 --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_num_truncated_paulis.mdx @@ -0,0 +1,44 @@ +--- +title: plot_num_truncated_paulis +description: API reference for qiskit_addon_obp.utils.visualization.plot_num_truncated_paulis +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_obp.utils.visualization.plot_num_truncated_paulis +--- + + + +# plot\_num\_truncated\_paulis + + + Plot the number of truncated Pauli terms. + + This method populates the provided figure axes with a bar-plot of the number of the truncated Pauli terms at each backpropagated slice. Below is an example where we plot some `metadata` which exists within our context. + + ```python + >>> from matplotlib import pyplot as plt + >>> from qiskit_addon_obp.utils.visualization import plot_num_truncated_paulis + >>> fig, axes = plt.subplots(1, 1) + >>> plot_num_truncated_paulis(metadata, axes) + ``` + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_num\_truncated\_paulis-2\_00.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_truncated_paulis-2_00.png) + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_num\_truncated\_paulis-2\_01.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_truncated_paulis-2_01.png) + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_num\_truncated\_paulis-2\_02.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_truncated_paulis-2_02.png) + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_num\_truncated\_paulis-2\_03.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_truncated_paulis-2_03.png) + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_num\_truncated\_paulis-2\_04.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_truncated_paulis-2_04.png) + + As you can see in the figure above, the number of backpropagated slices is displayed along the x-axis. You can think of this as the “time” of the backpropagation algorithm. The number of truncated Pauli terms at each backpropagation step is displayed along the y-axis. Since each observable is treated individually, they are plotted separately. + + This data can give you additional insight as to how the accumulated error is split across multiple Pauli terms (see also the output of [`plot_accumulated_error()`](qiskit_addon_obp.utils.visualization.plot_accumulated_error "qiskit_addon_obp.utils.visualization.plot_accumulated_error")). + + **Parameters** + + * **metadata** ([*OBPMetadata*](qiskit_addon_obp.utils.metadata.OBPMetadata "qiskit_addon_obp.utils.metadata.OBPMetadata")) – the metadata to be visualized. + * **axes** (*Axes*) – the matplotlib axes in which to plot. + + diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_slice_errors.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_slice_errors.mdx new file mode 100644 index 00000000000..7c1444d9518 --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_slice_errors.mdx @@ -0,0 +1,46 @@ +--- +title: plot_slice_errors +description: API reference for qiskit_addon_obp.utils.visualization.plot_slice_errors +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_obp.utils.visualization.plot_slice_errors +--- + + + +# plot\_slice\_errors + + + Plot the slice errors. + + This method populates the provided figure axes with a bar-plot of the truncation error incurred at each backpropagated slice. Below is an example where we plot some `metadata` which exists within our context. + + ```python + >>> from matplotlib import pyplot as plt + >>> from qiskit_addon_obp.utils.visualization import plot_slice_errors + >>> fig, axes = plt.subplots(1, 1) + >>> plot_slice_errors(metadata, axes) + ``` + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_slice\_errors-2\_00.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_slice_errors-2_00.png) + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_slice\_errors-2\_01.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_slice_errors-2_01.png) + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_slice\_errors-2\_02.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_slice_errors-2_02.png) + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_slice\_errors-2\_03.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_slice_errors-2_03.png) + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_slice\_errors-2\_04.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_slice_errors-2_04.png) + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_slice\_errors-2\_05.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_slice_errors-2_05.png) + + As you can see in the figure above, the number of backpropagated slices is displayed along the x-axis. You can think of this as the “time” of the backpropagation algorithm. The truncation error incurred at each backpropagation step is displayed along the y-axis. Since each observable is treated individually, they are plotted separately. + + This data is related to the one visualized by [`plot_accumulated_error()`](qiskit_addon_obp.utils.visualization.plot_accumulated_error "qiskit_addon_obp.utils.visualization.plot_accumulated_error"). That method will plot the cumulative sum of the slice errors along the x-axis. + + **Parameters** + + * **metadata** ([*OBPMetadata*](qiskit_addon_obp.utils.metadata.OBPMetadata "qiskit_addon_obp.utils.metadata.OBPMetadata")) – the metadata to be visualized. + * **axes** (*Axes*) – the matplotlib axes in which to plot. + + diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_sum_paulis.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_sum_paulis.mdx new file mode 100644 index 00000000000..c3cf4da6c2f --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_sum_paulis.mdx @@ -0,0 +1,48 @@ +--- +title: plot_sum_paulis +description: API reference for qiskit_addon_obp.utils.visualization.plot_sum_paulis +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_obp.utils.visualization.plot_sum_paulis +--- + + + +# plot\_sum\_paulis + + + Plot the total number of all Pauli terms. + + This method populates the provided figure axes with a line-plot of the total number of all Pauli terms at each backpropagated slice. Below is an example where we plot some `metadata` which exists within our context. + + ```python + >>> from matplotlib import pyplot as plt + >>> from qiskit_addon_obp.utils.visualization import plot_sum_paulis + >>> fig, axes = plt.subplots(1, 1) + >>> plot_sum_paulis(metadata, axes) + ``` + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_sum\_paulis-2\_00.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_sum_paulis-2_00.png) + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_sum\_paulis-2\_01.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_sum_paulis-2_01.png) + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_sum\_paulis-2\_02.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_sum_paulis-2_02.png) + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_sum\_paulis-2\_03.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_sum_paulis-2_03.png) + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_sum\_paulis-2\_04.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_sum_paulis-2_04.png) + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_sum\_paulis-2\_05.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_sum_paulis-2_05.png) + + ![../\_images/qiskit\_addon\_obp-utils-visualization-plot\_sum\_paulis-2\_06.png](/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_sum_paulis-2_06.png) + + As you can see in the figure above, the number of backpropagated slices is displayed along the x-axis. You can think of this as the “time” of the backpropagation algorithm. The total number of all Pauli terms at each backpropagation step is displayed along the y-axis. If `OBPMetadata.operator_budget.max_paulis` is not None, it is displayed as a red horizontal line. + + This data can give you additional insight into how many unique Pauli terms are spread across all of the backpropagated observables. See also the output of [`plot_num_paulis()`](qiskit_addon_obp.utils.visualization.plot_num_paulis "qiskit_addon_obp.utils.visualization.plot_num_paulis") for the number of Pauli terms in each observable individually. + + **Parameters** + + * **metadata** ([*OBPMetadata*](qiskit_addon_obp.utils.metadata.OBPMetadata "qiskit_addon_obp.utils.metadata.OBPMetadata")) – the metadata to be visualized. + * **axes** (*Axes*) – the matplotlib axes in which to plot. + + diff --git a/docs/api/qiskit-addon-obp/release-notes.mdx b/docs/api/qiskit-addon-obp/release-notes.mdx new file mode 100644 index 00000000000..b3ec22f0d8c --- /dev/null +++ b/docs/api/qiskit-addon-obp/release-notes.mdx @@ -0,0 +1,109 @@ +--- +title: Operator Backpropagation release notes +description: Changes made to Operator Backpropagation +in_page_toc_max_heading_level: 2 +--- + + + + + +# Operator Backpropagation release notes + + + + + +## 0.1.0 + + + +### New Features + +* Added a [`OperatorBudget`](qiskit_addon_obp.utils.simplify.OperatorBudget "qiskit_addon_obp.utils.simplify.OperatorBudget") class for specifying how large an operator may grow during back-propagation. + +* Adds the `max_seconds` keyword-argument to the [`backpropagate()`](qiskit_addon_obp.backpropagate "qiskit_addon_obp.backpropagate") function, allowing the end-user to specify a maximum wall clock time for the algorithm. This can (for example) be useful for exploring different truncation error budget strategies while limiting the CPU time. + +* Introduced a new `dataclass`, [`TruncationErrorBudget`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget"), for holding information about the observable truncation strategy. + +* Introduced a new function, [`setup_budget()`](qiskit_addon_obp.utils.truncating.setup_budget "qiskit_addon_obp.utils.truncating.setup_budget"), which generates a [`TruncationErrorBudget`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") class, given an observable truncation strategy (e.g. `max_error_total`, `max_error_per_slice`, `p_norm`). + + + +### Upgrade Notes + +* The [`backpropagate()`](qiskit_addon_obp.backpropagate "qiskit_addon_obp.backpropagate") function no longer accepts `max_paulis` and `max_qwc_groups` kwargs for constraining the size of the operator during back-propagation. Users should instead use the new `operator_budget` kwarg, which takes an [`OperatorBudget`](qiskit_addon_obp.utils.simplify.OperatorBudget "qiskit_addon_obp.utils.simplify.OperatorBudget") instance. + + To migrate, change this code + + ```python + from qiskit_addon_obp import backpropagate + + bp_obs, remaining_slices, metadata = backpropagate( + obs, + slices, + max_paulis=100, + max_qwc_groups=10, + simplify=True + ) + ``` + + to this + + ```python + from qiskit_addon_obp import backpropagate + from qiskit_addon_obp.utils.simplify import OperatorBudget + + op_budget = OperatorBudget(max_paulis=100, max_qwc_groups=10, simplify=True) + bp_obs, remaining_slices, metadata = backpropagate(obs, slices, operator_budget=op_budget) + ``` + +* The `max_slices` kwarg has been removed from [`backpropagate()`](qiskit_addon_obp.backpropagate "qiskit_addon_obp.backpropagate"). Users should now only pass in slices which they intend to back-propagate. If a user wants to attempt to only back-propagate the last `20` slices of an `N`-slice circuit, they would simply pass in the last `20` slices to [`backpropagate()`](qiskit_addon_obp.backpropagate "qiskit_addon_obp.backpropagate") and, recombine any slices remaining after back-propagation with the original `N-20` slices. + + For example + + ```python + from qiskit_addon_obp import backpropagate + from qiskit_addon_obp.utils.truncating import setup_budget + from qiskit_addon_utils.slicing import combine_slices + + num_slices = 20 + truncation_error_budget = setup_budget(max_error_total=0.02, num_slices=num_slices, p_norm=1) + bp_obs, remaining_slices, metadata = backpropagate( + obs, slices[-num_slices:], truncation_error_budget=truncation_error_budget + ) + reduced_circuit = combine_slices(slices[:-num_slices] + remaining_slices) + ``` + +* The `max_slices` kwarg in [`setup_budget()`](qiskit_addon_obp.utils.truncating.setup_budget "qiskit_addon_obp.utils.truncating.setup_budget") has been renamed to `num_slices`. + +* The `max_slices` attribute in [`OBPMetadata`](qiskit_addon_obp.utils.metadata.OBPMetadata "qiskit_addon_obp.utils.metadata.OBPMetadata") has been renamed to `num_slices`. + +* The project’s root Python namespace has been changed from `obp` to `qiskit_addon_obp`. All package imports must be updated. + + For example: + + ```python + from obp import backpropagate + ``` + + should be changed to: + + ```python + from qiskit_addon_obp import backpropagate + ``` + +* Removed the `max_error_total`, `max_error_per_slice`, and `p_norm` kwargs from the [`backpropagate()`](qiskit_addon_obp.backpropagate "qiskit_addon_obp.backpropagate") signature. Instead, users must specify their observable truncation strategy with the new `truncation_error_budget` kwarg which accepts a [`TruncationErrorBudget`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") instance. + +* Removed the `per_slice_budget`, `max_error_total`, and `p_norm` fields from the [`OBPMetadata`](qiskit_addon_obp.utils.metadata.OBPMetadata "qiskit_addon_obp.utils.metadata.OBPMetadata") class. These fields will now be accessed through the new `truncation_error_budget` field, which holds a [`TruncationErrorBudget`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") instance. + + + +### Bug Fixes + +* The [`setup_budget()`](qiskit_addon_obp.utils.truncating.setup_budget "qiskit_addon_obp.utils.truncating.setup_budget") erroneously distributed the `max_error_total` when `num_slices` was also set. This has been fixed now, such that the budget always gets distributed evenly, regardless of the value of `p_norm`. + +* When the `max_seconds` argument to the [`backpropagate()`](qiskit_addon_obp.backpropagate "qiskit_addon_obp.backpropagate") method is used, but the timeout is not reached during the actual OBP execution, the signal will now be reset properly, thereby avoiding cancellations at a (seemingly) random later point in time (of course, it is not random but actually after the specified amount of time has passed, but the rest of the code being executed after OBP could be doing anything at this point). + +* The computation of the [`accumulated_error()`](qiskit_addon_obp.utils.metadata.OBPMetadata#accumulated_error "qiskit_addon_obp.utils.metadata.OBPMetadata.accumulated_error") and [`left_over_error_budget()`](qiskit_addon_obp.utils.metadata.OBPMetadata#left_over_error_budget "qiskit_addon_obp.utils.metadata.OBPMetadata.left_over_error_budget") were fixed to respect the [Minkowski inequality](https://en.wikipedia.org/wiki/Minkowski_inequality). This is necessary, because a general Lp-norm (other than `p=2`) does not satisfy the [parallelogram law](https://en.wikipedia.org/wiki/Parallelogram_law) which resulted in a non-rigorous upper bound of the actual accumulated errors (and left-over error budgets by extension). + diff --git a/docs/api/qiskit-addon-sqd/_package.json b/docs/api/qiskit-addon-sqd/_package.json new file mode 100644 index 00000000000..f05ca16f1d2 --- /dev/null +++ b/docs/api/qiskit-addon-sqd/_package.json @@ -0,0 +1,4 @@ +{ + "name": "qiskit-addon-sqd", + "version": "0.7.0" +} diff --git a/docs/api/qiskit-addon-sqd/_toc.json b/docs/api/qiskit-addon-sqd/_toc.json new file mode 100644 index 00000000000..deb81009cc7 --- /dev/null +++ b/docs/api/qiskit-addon-sqd/_toc.json @@ -0,0 +1,14 @@ +{ + "title": "Sample-Based Quantum Diagonalization", + "children": [ + { + "title": "API index", + "url": "/api/qiskit-addon-sqd" + }, + { + "title": "Release notes", + "url": "/api/qiskit-addon-sqd/release-notes" + } + ], + "collapsed": true +} diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.configuration_recovery.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.configuration_recovery.mdx new file mode 100644 index 00000000000..32acfb1c92a --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.configuration_recovery.mdx @@ -0,0 +1,12 @@ +# Configuration Recovery + + + + + +Functions for performing self-consistent configuration recovery. + +| | | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| [`post_select_by_hamming_weight`](qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight "qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight") | Post-select bitstrings based on the hamming weight of each half. | +| [`recover_configurations`](qiskit_addon_sqd.configuration_recovery.recover_configurations "qiskit_addon_sqd.configuration_recovery.recover_configurations") | Refine bitstrings based on average orbital occupancy and a target hamming weight. | diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight.mdx new file mode 100644 index 00000000000..1b10b9c8bb6 --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight.mdx @@ -0,0 +1,30 @@ +--- +title: post_select_by_hamming_weight +description: API reference for qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight +--- + + + +# qiskit\_addon\_sqd.configuration\_recovery.post\_select\_by\_hamming\_weight + + + Post-select bitstrings based on the hamming weight of each half. + + **Parameters** + + * **bitstring\_matrix** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – A 2D array of `bool` representations of bit values such that each row represents a single bitstring + * **hamming\_right** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The target hamming weight of the right half of bitstrings + * **hamming\_left** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The target hamming weight of the left half of bitstrings + + **Returns** + + A mask signifying which samples (rows) were selected from the input matrix. + + **Return type** + + [*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)") + + diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.configuration_recovery.recover_configurations.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.configuration_recovery.recover_configurations.mdx new file mode 100644 index 00000000000..9b8ed6916bc --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.configuration_recovery.recover_configurations.mdx @@ -0,0 +1,49 @@ +--- +title: recover_configurations +description: API reference for qiskit_addon_sqd.configuration_recovery.recover_configurations +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_sqd.configuration_recovery.recover_configurations +--- + + + +# qiskit\_addon\_sqd.configuration\_recovery.recover\_configurations + + + Refine bitstrings based on average orbital occupancy and a target hamming weight. + + This function refines each bit in isolation in an attempt to transform the Hilbert space represented by the input `bitstring_matrix` into a space closer to that which supports the ground state. + + + This function makes the assumption that bit `i` represents the spin-down orbital corresponding to the spin-up orbital in bit `i + N` where `N` is the number of spatial orbitals and `i < N`. + + + + The output configurations may not necessarily have correct hamming weight, as each bit is flipped in isolation from the other bits in the bitstring. + + + **Parameters** + + * **bitstring\_matrix** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – A 2D array of `bool` representations of bit values such that each row represents a single bitstring + * **probabilities** ([*Sequence*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")*\[*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")*]*) – A 1D array specifying a probability distribution over the bitstrings + * **avg\_occupancies** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – A 1D array containing the mean occupancy of each orbital. It is assumed that `avg_occupancies[i]` corresponds to the orbital represented by column `i` in `bitstring_matrix`. + * **num\_elec\_a** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The number of spin-up electrons in the system. + * **num\_elec\_b** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The number of spin-down electrons in the system. + * **rand\_seed** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *| None*) – A seed to control random behavior + + **Returns** + + A refined bitstring matrix and an updated probability array. + + **Return type** + + [tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)"), [*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")] + + **References** + + ## \[1]: J. Robledo-Moreno, et al., [Chemistry Beyond Exact Solutions on a Quantum-Centric Supercomputer](https://arxiv.org/abs/2405.05068), + + arXiv:2405.05068 \[quant-ph]. + + diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.counts_to_arrays.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.counts_to_arrays.mdx new file mode 100644 index 00000000000..9778e4e21f0 --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.counts_to_arrays.mdx @@ -0,0 +1,29 @@ +--- +title: counts_to_arrays +description: API reference for qiskit_addon_sqd.counts.counts_to_arrays +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_sqd.counts.counts_to_arrays +--- + + + +# qiskit\_addon\_sqd.counts.counts\_to\_arrays + + + Convert a counts dictionary into a bitstring matrix and a probability array. + + **Parameters** + + **counts** ([*dict*](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.13)")*\[*[*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")*,* [*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]*) – The counts dictionary to convert + + **Returns** + + * A 2D array representing the sampled bitstrings. Each row represents a bitstring, and each element is a `bool` representation of the bit’s value + * A 1D array containing the probability with which each bitstring was sampled + + **Return type** + + A tuple containing + + diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.generate_counts_bipartite_hamming.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.generate_counts_bipartite_hamming.mdx new file mode 100644 index 00000000000..a649f184431 --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.generate_counts_bipartite_hamming.mdx @@ -0,0 +1,38 @@ +--- +title: generate_counts_bipartite_hamming +description: API reference for qiskit_addon_sqd.counts.generate_counts_bipartite_hamming +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_sqd.counts.generate_counts_bipartite_hamming +--- + + + +# qiskit\_addon\_sqd.counts.generate\_counts\_bipartite\_hamming + + + Generate a bitstring counts dictionary with specified bipartite hamming weight. + + **Parameters** + + * **num\_samples** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The number of samples to draw + * **num\_bits** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The number of bits in the bitstrings + * **hamming\_right** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The hamming weight on the right half of each bitstring + * **hamming\_left** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The hamming weight on the left half of each bitstring + * **rand\_seed** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *| None*) – A seed for controlling randomness + + **Returns** + + A dictionary mapping bitstrings to the number of times they were sampled. Each half of each bitstring in the output dictionary will have a hamming weight as specified by the inputs. + + **Raises** + + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – `num_bits` and `num_samples` must be positive integers. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – Hamming weights must be specified as non-negative integers. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – `num_bits` must be even. + + **Return type** + + [dict](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.13)")\[[str](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)"), [int](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")] + + diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.generate_counts_uniform.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.generate_counts_uniform.mdx new file mode 100644 index 00000000000..deae2e97bea --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.generate_counts_uniform.mdx @@ -0,0 +1,34 @@ +--- +title: generate_counts_uniform +description: API reference for qiskit_addon_sqd.counts.generate_counts_uniform +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_sqd.counts.generate_counts_uniform +--- + + + +# qiskit\_addon\_sqd.counts.generate\_counts\_uniform + + + Generate a bitstring counts dictionary of samples drawn from the uniform distribution. + + **Parameters** + + * **num\_samples** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The number of samples to draw + * **num\_bits** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The number of bits in the bitstrings + * **rand\_seed** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *| None*) – A seed for controlling randomness + + **Returns** + + A dictionary mapping bitstrings of length `num_bits` to the number of times they were sampled. + + **Raises** + + [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – `num_samples` and `num_bits` must be positive integers. + + **Return type** + + [dict](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.13)")\[[str](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)"), [int](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")] + + diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.mdx new file mode 100644 index 00000000000..2f3a9b0f3e7 --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.mdx @@ -0,0 +1,14 @@ +# Counts + + + + + +Functions for transforming counts dictionaries. + +| | | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- | +| [`counts_to_arrays`](qiskit_addon_sqd.counts.counts_to_arrays "qiskit_addon_sqd.counts.counts_to_arrays") | Convert a counts dictionary into a bitstring matrix and a probability array. | +| [`generate_counts_uniform`](qiskit_addon_sqd.counts.generate_counts_uniform "qiskit_addon_sqd.counts.generate_counts_uniform") | Generate a bitstring counts dictionary of samples drawn from the uniform distribution. | +| [`generate_counts_bipartite_hamming`](qiskit_addon_sqd.counts.generate_counts_bipartite_hamming "qiskit_addon_sqd.counts.generate_counts_bipartite_hamming") | Generate a bitstring counts dictionary with specified bipartite hamming weight. | +| [`normalize_counts_dict`](qiskit_addon_sqd.counts.normalize_counts_dict "qiskit_addon_sqd.counts.normalize_counts_dict") | Convert a counts dictionary into a probability dictionary. | diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.normalize_counts_dict.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.normalize_counts_dict.mdx new file mode 100644 index 00000000000..a91f814a99e --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.normalize_counts_dict.mdx @@ -0,0 +1,20 @@ +--- +title: normalize_counts_dict +description: API reference for qiskit_addon_sqd.counts.normalize_counts_dict +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_sqd.counts.normalize_counts_dict +--- + + + +# qiskit\_addon\_sqd.counts.normalize\_counts\_dict + + + Convert a counts dictionary into a probability dictionary. + + **Return type** + + [dict](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.13)")\[[str](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)"), [float](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")] + + diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs.mdx new file mode 100644 index 00000000000..e5f2c0d9e8f --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs.mdx @@ -0,0 +1,31 @@ +--- +title: bitstring_matrix_to_ci_strs +description: API reference for qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs +--- + + + +# qiskit\_addon\_sqd.fermion.bitstring\_matrix\_to\_ci\_strs + + + Convert bitstrings (rows) in a `bitstring_matrix` into integer representations of determinants. + + This function separates each bitstring in `bitstring_matrix` in half, flips the bits and translates them into integer representations, and finally appends them to their respective (spin-up or spin-down) lists. Those lists are sorted and output from this function. + + **Parameters** + + * **bitstring\_matrix** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – A 2D array of `bool` representations of bit values such that each row represents a single bitstring + * **open\_shell** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – A flag specifying whether unique configurations from the left and right halves of the bitstrings should be kept separate. If `False`, configurations from the left and right halves of the bitstrings are combined into a single set of unique configurations. That combined set will be returned for both the left and right bitstrings. + + **Returns** + + A length-2 tuple of determinant lists representing the right (spin-up) and left (spin-down) halves of the bitstrings, respectively. + + **Return type** + + [tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)"), [*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")] + + diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses.mdx new file mode 100644 index 00000000000..66044827adc --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses.mdx @@ -0,0 +1,35 @@ +--- +title: bitstring_matrix_to_sorted_addresses +description: API reference for qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses +--- + + + +# qiskit\_addon\_sqd.fermion.bitstring\_matrix\_to\_sorted\_addresses + + + Convert a bitstring matrix into a sorted array of unique, unsigned integers. + + This function separates each bitstring in `bitstring_matrix` in half, flips the bits and translates them into integer representations, and finally appends them to their respective (spin-up or spin-down) lists. Those lists are sorted and output from this function. + + + The function `qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses()` is deprecated as of qiskit-addon-sqd 0.6.0. It will be removed no sooner than qiskit-addon-sqd 0.8.0. Use the bitstring\_matrix\_to\_ci\_strs function. + + + **Parameters** + + * **bitstring\_matrix** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – A 2D array of `bool` representations of bit values such that each row represents a single bitstring + * **open\_shell** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – A flag specifying whether unique addresses from the left and right halves of the bitstrings should be kept separate. If `False`, addresses from the left and right halves of the bitstrings are combined into a single set of unique addresses. That combined set will be returned for both the left and right bitstrings. + + **Returns** + + A length-2 tuple of sorted, unique determinants representing the left (spin-down) and right (spin-up) halves of the bitstrings, respectively. + + **Return type** + + [tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)"), [*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")] + + diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.enlarge_batch_from_transitions.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.enlarge_batch_from_transitions.mdx new file mode 100644 index 00000000000..be0cb193f35 --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.enlarge_batch_from_transitions.mdx @@ -0,0 +1,29 @@ +--- +title: enlarge_batch_from_transitions +description: API reference for qiskit_addon_sqd.fermion.enlarge_batch_from_transitions +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_sqd.fermion.enlarge_batch_from_transitions +--- + + + +# qiskit\_addon\_sqd.fermion.enlarge\_batch\_from\_transitions + + + Apply the set of transition operators to the configurations represented in `bitstring_matrix`. + + **Parameters** + + * **bitstring\_matrix** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – A 2D array of `bool` representations of bit values such that each row represents a single bitstring. + * **transition\_operators** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – A 1D or 2D array `I`, `+`, `-`, and `n` strings representing the action of the identity, creation, annihilation, or number operators. Each row represents a transition operator. + + **Returns** + + Bitstring matrix representing the augmented set of electronic configurations after applying the excitation operators. + + **Return type** + + [*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)") + + diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.flip_orbital_occupancies.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.flip_orbital_occupancies.mdx new file mode 100644 index 00000000000..e4f73565ea0 --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.flip_orbital_occupancies.mdx @@ -0,0 +1,30 @@ +--- +title: flip_orbital_occupancies +description: API reference for qiskit_addon_sqd.fermion.flip_orbital_occupancies +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_sqd.fermion.flip_orbital_occupancies +--- + + + +# qiskit\_addon\_sqd.fermion.flip\_orbital\_occupancies + + + Flip an orbital occupancy array to match the indexing of a bitstring. + + This function reformats a 1D array of spin-orbital occupancies formatted like: + + > `[occ_a_1, occ_a_2, ..., occ_a_N, occ_b_1, ..., occ_b_N]` + + To an array formatted like: + + > `[occ_a_N, ..., occ_a_1, occ_b_N, ..., occ_b_1]` + + where `N` is the number of spatial orbitals. + + **Return type** + + [*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)") + + diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.mdx new file mode 100644 index 00000000000..2454587b335 --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.mdx @@ -0,0 +1,17 @@ +# Fermion + + + + + +Functions for the study of fermionic systems. + +| | | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | +| [`bitstring_matrix_to_ci_strs`](qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs "qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs") | Convert bitstrings (rows) in a `bitstring_matrix` into integer representations of determinants. | +| [`enlarge_batch_from_transitions`](qiskit_addon_sqd.fermion.enlarge_batch_from_transitions "qiskit_addon_sqd.fermion.enlarge_batch_from_transitions") | Apply the set of transition operators to the configurations represented in `bitstring_matrix`. | +| [`flip_orbital_occupancies`](qiskit_addon_sqd.fermion.flip_orbital_occupancies "qiskit_addon_sqd.fermion.flip_orbital_occupancies") | Flip an orbital occupancy array to match the indexing of a bitstring. | +| [`solve_fermion`](qiskit_addon_sqd.fermion.solve_fermion "qiskit_addon_sqd.fermion.solve_fermion") | Approximate the ground state given molecular integrals and a set of electronic configurations. | +| [`optimize_orbitals`](qiskit_addon_sqd.fermion.optimize_orbitals "qiskit_addon_sqd.fermion.optimize_orbitals") | Optimize orbitals to produce a minimal ground state. | +| [`rotate_integrals`](qiskit_addon_sqd.fermion.rotate_integrals "qiskit_addon_sqd.fermion.rotate_integrals") | Perform a similarity transform on the integrals. | +| [`bitstring_matrix_to_sorted_addresses`](qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses "qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses") | Convert a bitstring matrix into a sorted array of unique, unsigned integers. | diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.optimize_orbitals.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.optimize_orbitals.mdx new file mode 100644 index 00000000000..4805a573b54 --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.optimize_orbitals.mdx @@ -0,0 +1,62 @@ +--- +title: optimize_orbitals +description: API reference for qiskit_addon_sqd.fermion.optimize_orbitals +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_sqd.fermion.optimize_orbitals +--- + + + +# qiskit\_addon\_sqd.fermion.optimize\_orbitals + + + Optimize orbitals to produce a minimal ground state. + + The process involves iterating over 3 steps: + + ## For `num_iters` iterations: + + * Rotate the integrals with respect to the parameters, `k_flat` + * Diagonalize and approximate the groundstate energy and wavefunction amplitudes + * Optimize `k_flat` using gradient descent and the wavefunction amplitudes found in Step 2 + + Refer to [Sec. II A 4](https://arxiv.org/pdf/2405.05068) for more detailed discussion on this orbital optimization technique. + + **Parameters** + + * **bitstring\_matrix** ([*tuple*](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")*\[*[*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")*,* [*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")*] |* [*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – + + A set of configurations defining the subspace onto which the Hamiltonian will be projected and diagonalized. This is a 2D array of `bool` representations of bit values such that each row represents a single bitstring. The spin-up configurations should be specified by column indices in range `(N, N/2]`, and the spin-down configurations should be specified by column indices in range `(N/2, 0]`, where `N` is the number of qubits. + + (DEPRECATED) The configurations may also be specified by a length-2 tuple of sorted 1D arrays containing unsigned integer representations of the determinants. The two lists should represent the spin-up and spin-down orbitals, respectively. + + * **hcore** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – Core Hamiltonian matrix representing single-electron integrals + + * **eri** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – Electronic repulsion integrals representing two-electron integrals + + * **k\_flat** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – 1D array defining the orbital transform. This array will be reshaped to be of shape (# orbitals, # orbitals) before being used as a similarity transform operator on the orbitals. Thus `len(k_flat)=# orbitals**2`. + + * **open\_shell** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – A flag specifying whether configurations from the left and right halves of the bitstrings should be kept separate. If `False`, CI strings from the left and right halves of the bitstrings are combined into a single set of unique configurations and used for both the alpha and beta subspaces. + + * **spin\_sq** ([*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – Target value for the total spin squared for the ground state + + * **num\_iters** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The number of iterations of orbital optimization to perform + + * **max\_davidson** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The maximum number of cycles of Davidson’s algorithm to perform during diagonalization. + + * **num\_steps\_grad** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The number of steps of gradient descent to perform during each optimization iteration + + * **learning\_rate** ([*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The learning rate to use during gradient descent + + **Returns** + + * The groundstate energy found during the last optimization iteration + * An optimized 1D array defining the orbital transform + * Average orbital occupancy + + **Return type** + + A tuple containing + + diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.rotate_integrals.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.rotate_integrals.mdx new file mode 100644 index 00000000000..6efead9b19d --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.rotate_integrals.mdx @@ -0,0 +1,43 @@ +--- +title: rotate_integrals +description: API reference for qiskit_addon_sqd.fermion.rotate_integrals +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_sqd.fermion.rotate_integrals +--- + + + +# qiskit\_addon\_sqd.fermion.rotate\_integrals + + + Perform a similarity transform on the integrals. + + The transformation is described as: + +$$ +\hat{\widetilde{H}} = \hat{U^{\dagger}}(k)\hat{H}\hat{U}(k) +$$ + + For more information on how $\hat{U}$ and $\hat{U^{\dagger}}$ are generated from `k_flat` and applied to the one- and two-body integrals, refer to [Sec. II A 4](https://arxiv.org/pdf/2405.05068). + + **Parameters** + + * **hcore** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – Core Hamiltonian matrix representing single-electron integrals + + * **eri** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – Electronic repulsion integrals representing two-electron integrals + + * **k\_flat** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – + + 1D array defining the orbital transform. Refer to [Sec. II A 4](https://arxiv.org/pdf/2405.05068) for more information on how these values are used to generate the transform operator. + + **Returns** + + * The rotated core Hamiltonian matrix + * The rotated ERI matrix + + **Return type** + + [tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)"), [*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")] + + diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.solve_fermion.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.solve_fermion.mdx new file mode 100644 index 00000000000..860cc432b26 --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.solve_fermion.mdx @@ -0,0 +1,47 @@ +--- +title: solve_fermion +description: API reference for qiskit_addon_sqd.fermion.solve_fermion +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_sqd.fermion.solve_fermion +--- + + + +# qiskit\_addon\_sqd.fermion.solve\_fermion + + + Approximate the ground state given molecular integrals and a set of electronic configurations. + + **Parameters** + + * **bitstring\_matrix** ([*tuple*](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")*\[*[*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")*,* [*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")*] |* [*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – + + A set of configurations defining the subspace onto which the Hamiltonian will be projected and diagonalized. This is a 2D array of `bool` representations of bit values such that each row represents a single bitstring. The spin-up configurations should be specified by column indices in range `(N, N/2]`, and the spin-down configurations should be specified by column indices in range `(N/2, 0]`, where `N` is the number of qubits. + + (DEPRECATED) The configurations may also be specified by a length-2 tuple of sorted 1D arrays containing unsigned integer representations of the determinants. The two lists should represent the spin-up and spin-down orbitals, respectively. + + * **hcore** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – Core Hamiltonian matrix representing single-electron integrals + + * **eri** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – Electronic repulsion integrals representing two-electron integrals + + * **open\_shell** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – A flag specifying whether configurations from the left and right halves of the bitstrings should be kept separate. If `False`, CI strings from the left and right halves of the bitstrings are combined into a single set of unique configurations and used for both the alpha and beta subspaces. + + * **spin\_sq** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *| None*) – Target value for the total spin squared for the ground state. If `None`, no spin will be imposed. + + * **max\_davidson** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The maximum number of cycles of Davidson’s algorithm + + * **verbose** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *| None*) – A verbosity level between 0 and 10 + + **Returns** + + * Minimum energy from SCI calculation + * SCI coefficients + * Average orbital occupancy + * Expectation value of spin-squared + + **Return type** + + A tuple containing + + diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.mdx new file mode 100644 index 00000000000..9e4b97bb6b8 --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.mdx @@ -0,0 +1,20 @@ +# Sample-based Quantum Diagonalization + + + + + +Primary SQD functionality. + +| | +| - | + +## Modules + +| | | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------ | +| [`configuration_recovery`](qiskit_addon_sqd.configuration_recovery#module-qiskit_addon_sqd.configuration_recovery "qiskit_addon_sqd.configuration_recovery") | Functions for performing self-consistent configuration recovery. | +| [`subsampling`](qiskit_addon_sqd.subsampling#module-qiskit_addon_sqd.subsampling "qiskit_addon_sqd.subsampling") | Functions for creating batches of samples from a bitstring matrix. | +| [`counts`](qiskit_addon_sqd.counts#module-qiskit_addon_sqd.counts "qiskit_addon_sqd.counts") | Functions for transforming counts dictionaries. | +| [`fermion`](qiskit_addon_sqd.fermion#module-qiskit_addon_sqd.fermion "qiskit_addon_sqd.fermion") | Functions for the study of fermionic systems. | +| [`qubit`](qiskit_addon_sqd.qubit#module-qiskit_addon_sqd.qubit "qiskit_addon_sqd.qubit") | Functions for handling quantum samples. | diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.matrix_elements_from_pauli.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.matrix_elements_from_pauli.mdx new file mode 100644 index 00000000000..6a1a5f59553 --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.matrix_elements_from_pauli.mdx @@ -0,0 +1,47 @@ +--- +title: matrix_elements_from_pauli +description: API reference for qiskit_addon_sqd.qubit.matrix_elements_from_pauli +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_sqd.qubit.matrix_elements_from_pauli +--- + + + +# qiskit\_addon\_sqd.qubit.matrix\_elements\_from\_pauli + + + Find the sparse matrix elements of a Pauli operator in the subspace defined by the bitstrings. + + The sparse matrix, `A`, defined by the outputs represents an `NxN` matrix s.t. `N` is the number of rows in `bitstring_matrix`. The rows of `A` represent the input configurations, and the columns represent the connected component associated with the configuration in the corresponding row. The output arrays define the sparse matrix, `A`, as follows: + + `A[rows[k], cols[k]] = amplutides[k]`. + + + The bitstrings in the `bitstring_matrix` must be unique and sorted in ascending order according to their unsigned integer representation. Otherwise the projection will return wrong results. This function does not explicitly check for uniqueness and order because this can be rather time consuming. See [`qiskit_addon_sqd.qubit.sort_and_remove_duplicates()`](qiskit_addon_sqd.qubit.sort_and_remove_duplicates "qiskit_addon_sqd.qubit.sort_and_remove_duplicates") for a simple way to ensure your bitstring matrix is well-formatted. + + + + This function relies on `jax` to efficiently perform some calculations. `jax` converts the bit arrays to `int64_t`, which means the bit arrays in `bitstring_matrix` may not have length greater than `63`. + + + **Parameters** + + * **bitstring\_matrix** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – A 2D array of `bool` representations of bit values such that each row represents a single bitstring. The bitstrings in the matrix must be sorted according to their unsigned integer representations. Otherwise the projection will return wrong results. + * **pauli** ([*Pauli*](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)")) – A Pauli operator for which to find connected elements + + **Returns** + + * The complex amplitudes corresponding to the nonzero matrix elements + * The row indices corresponding to non-zero matrix elements + * The column indices corresponding to non-zero matrix elements + + **Raises** + + [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – Bitstrings (rows) in `bitstring_matrix` must have length \< `64`. + + **Return type** + + [tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)"), [*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)"), [*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")] + + diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.mdx new file mode 100644 index 00000000000..636ece71c80 --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.mdx @@ -0,0 +1,15 @@ +# Qubit + + + + + +Functions for handling quantum samples. + +| | | +| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | +| [`solve_qubit`](qiskit_addon_sqd.qubit.solve_qubit "qiskit_addon_sqd.qubit.solve_qubit") | Find the energies and eigenstates of a Hamiltonian projected into a subspace. | +| [`project_operator_to_subspace`](qiskit_addon_sqd.qubit.project_operator_to_subspace "qiskit_addon_sqd.qubit.project_operator_to_subspace") | Project a Pauli operator onto a Hilbert subspace defined by the computational basis states (rows) in `bitstring_matrix`. | +| [`sort_and_remove_duplicates`](qiskit_addon_sqd.qubit.sort_and_remove_duplicates "qiskit_addon_sqd.qubit.sort_and_remove_duplicates") | Sort a bitstring matrix and remove duplicate entries. | +| [`matrix_elements_from_pauli`](qiskit_addon_sqd.qubit.matrix_elements_from_pauli "qiskit_addon_sqd.qubit.matrix_elements_from_pauli") | Find the sparse matrix elements of a Pauli operator in the subspace defined by the bitstrings. | +| [`sort_and_remove_duplicates`](qiskit_addon_sqd.qubit.sort_and_remove_duplicates "qiskit_addon_sqd.qubit.sort_and_remove_duplicates") | Sort a bitstring matrix and remove duplicate entries. | diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.project_operator_to_subspace.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.project_operator_to_subspace.mdx new file mode 100644 index 00000000000..f02dfba95c0 --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.project_operator_to_subspace.mdx @@ -0,0 +1,44 @@ +--- +title: project_operator_to_subspace +description: API reference for qiskit_addon_sqd.qubit.project_operator_to_subspace +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_sqd.qubit.project_operator_to_subspace +--- + + + +# qiskit\_addon\_sqd.qubit.project\_operator\_to\_subspace + + + Project a Pauli operator onto a Hilbert subspace defined by the computational basis states (rows) in `bitstring_matrix`. + + The output sparse matrix, `A`, represents an `NxN` matrix s.t. `N` is the number of rows in `bitstring_matrix`. The rows of `A` represent the input configurations, and the columns represent the connected component associated with the configuration in the corresponding row. The non-zero elements of the matrix represent the complex amplitudes associated with the connected components. + + + The bitstrings in the `bitstring_matrix` must be unique and sorted in ascending order according to their unsigned integer representation. Otherwise the projection will return wrong results. This function does not explicitly check for uniqueness and order because this can be rather time consuming. See [`qiskit_addon_sqd.qubit.sort_and_remove_duplicates()`](qiskit_addon_sqd.qubit.sort_and_remove_duplicates "qiskit_addon_sqd.qubit.sort_and_remove_duplicates") for a simple way to ensure your bitstring matrix is well-formatted. + + + + This function relies on `jax` to efficiently perform some calculations. `jax` converts the bit arrays to `int64_t`, which means the bit arrays in `bitstring_matrix` may not have length greater than `63`. + + + **Parameters** + + * **bitstring\_matrix** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – A 2D array of `bool` representations of bit values such that each row represents a single bitstring. This set of bitstrings specifies the subspace into which the `hamiltonian` will be projected and diagonalized. + * **hamiltonian** ([*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)")) – A Pauli operator to project onto a Hilbert subspace defined by `bitstring_matrix`. + * **verbose** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – Whether to print the stage of the subroutine. + + **Returns** + + A [scipy.sparse.coo\_matrix](https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.coo_matrix.html#coo-matrix) representing the operator projected in the subspace. The rows represent the input configurations, and the columns represent the connected component associated with the configuration in the corresponding row. The non-zero elements of the matrix represent the complex amplitudes associated with the pairs of connected components. + + **Raises** + + [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – Bitstrings (rows) in `bitstring_matrix` must have length \< `64`. + + **Return type** + + *spmatrix* + + diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.solve_qubit.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.solve_qubit.mdx new file mode 100644 index 00000000000..49ee43597dc --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.solve_qubit.mdx @@ -0,0 +1,45 @@ +--- +title: solve_qubit +description: API reference for qiskit_addon_sqd.qubit.solve_qubit +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_sqd.qubit.solve_qubit +--- + + + +# qiskit\_addon\_sqd.qubit.solve\_qubit + + + Find the energies and eigenstates of a Hamiltonian projected into a subspace. + + The subspace is defined by a collection of computational basis states which are specified by the bitstrings (rows) in the `bitstring_matrix`. + + This function calls [scipy.sparse.linalg.eigsh](https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.linalg.eigsh.html#eigsh) for the diagonalization. + + **Parameters** + + * **bitstring\_matrix** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – A 2D array of `bool` representations of bit values such that each row represents a single bitstring. This set of bitstrings specifies the subspace into which the `hamiltonian` will be projected and diagonalized. + + * **hamiltonian** ([*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)")) – A Hamiltonian specified as a Pauli operator. + + * **verbose** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – Whether to print the stage of the subroutine. + + * **\*\*scipy\_kwargs** – + + Keyword arguments to be passed to [scipy.sparse.linalg.eigsh](https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.linalg.eigsh.html#eigsh). + + **Returns** + + * 1D array with the eigenvalues + * 2D array with the eigenvectors. Each column represents an eigenvector. + + **Raises** + + [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – Bitstrings (rows) in `bitstring_matrix` must have length \< `64`. + + **Return type** + + [tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)"), [*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")] + + diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.sort_and_remove_duplicates.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.sort_and_remove_duplicates.mdx new file mode 100644 index 00000000000..c17ce6907d1 --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.sort_and_remove_duplicates.mdx @@ -0,0 +1,30 @@ +--- +title: sort_and_remove_duplicates +description: API reference for qiskit_addon_sqd.qubit.sort_and_remove_duplicates +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_sqd.qubit.sort_and_remove_duplicates +--- + + + +# qiskit\_addon\_sqd.qubit.sort\_and\_remove\_duplicates + + + Sort a bitstring matrix and remove duplicate entries. + + The lowest bitstring values will be placed in the lowest-indexed rows. + + **Parameters** + + **bitstring\_matrix** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – A 2D array of `bool` representations of bit values such that each row represents a single bitstring. + + **Returns** + + Sorted version of `bitstring_matrix` without repeated rows. + + **Return type** + + [*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)") + + diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.subsampling.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.subsampling.mdx new file mode 100644 index 00000000000..8bb6c732dde --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.subsampling.mdx @@ -0,0 +1,12 @@ +# Subsampling + + + + + +Functions for creating batches of samples from a bitstring matrix. + +| | | +| ------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| [`subsample`](qiskit_addon_sqd.subsampling.subsample "qiskit_addon_sqd.subsampling.subsample") | Subsample batches of bit arrays from an input `bitstring_matrix`. | +| [`postselect_and_subsample`](qiskit_addon_sqd.subsampling.postselect_and_subsample "qiskit_addon_sqd.subsampling.postselect_and_subsample") | Subsample batches of bit arrays with correct hamming weight from an input `bitstring_matrix`. | diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.subsampling.postselect_and_subsample.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.subsampling.postselect_and_subsample.mdx new file mode 100644 index 00000000000..8f8e8514df0 --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.subsampling.postselect_and_subsample.mdx @@ -0,0 +1,44 @@ +--- +title: postselect_and_subsample +description: API reference for qiskit_addon_sqd.subsampling.postselect_and_subsample +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_sqd.subsampling.postselect_and_subsample +--- + + + +# qiskit\_addon\_sqd.subsampling.postselect\_and\_subsample + + + Subsample batches of bit arrays with correct hamming weight from an input `bitstring_matrix`. + + Bitstring samples with incorrect hamming weight on either their left or right half will not be sampled. + + Each individual batch will be sampled without replacement from the input `bitstring_matrix`. Samples will be replaced after creation of each batch, so different batches may contain identical samples. + + **Parameters** + + * **bitstring\_matrix** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – A 2D array of `bool` representations of bit values such that each row represents a single bitstring. + * **probabilities** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – A 1D array specifying a probability distribution over the bitstrings + * **hamming\_right** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The target hamming weight for the right half of sampled bitstrings + * **hamming\_left** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The target hamming weight for the left half of sampled bitstrings + * **samples\_per\_batch** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The number of samples to draw for each batch + * **num\_batches** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The number of batches to generate + * **rand\_seed** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *| None*) – A seed to control random behavior + + **Returns** + + A list of bitstring matrices with correct hamming weight subsampled from the input bitstring matrix + + **Raises** + + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – The number of elements in `probabilities` must equal the number of rows in `bitstring_matrix`. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – Hamming weights must be non-negative integers. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – Samples per batch and number of batches must be positive integers. + + **Return type** + + [list](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")\[[*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")] + + diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.subsampling.subsample.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.subsampling.subsample.mdx new file mode 100644 index 00000000000..16ff2a9166c --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.subsampling.subsample.mdx @@ -0,0 +1,39 @@ +--- +title: subsample +description: API reference for qiskit_addon_sqd.subsampling.subsample +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_sqd.subsampling.subsample +--- + + + +# qiskit\_addon\_sqd.subsampling.subsample + + + Subsample batches of bit arrays from an input `bitstring_matrix`. + + Each individual batch will be sampled without replacement from the input `bitstring_matrix`. Samples will be replaced after creation of each batch, so different batches may contain identical samples. + + **Parameters** + + * **bitstring\_matrix** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – A 2D array of `bool` representations of bit values such that each row represents a single bitstring. + * **probabilities** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – A 1D array specifying a probability distribution over the bitstrings + * **samples\_per\_batch** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The number of samples to draw for each batch + * **num\_batches** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The number of batches to generate + * **rand\_seed** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *| None*) – A seed to control random behavior + + **Returns** + + A list of bitstring matrices subsampled from the input bitstring matrix. + + **Raises** + + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – The number of elements in `probabilities` must equal the number of rows in `bitstring_matrix`. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – Samples per batch and number of batches must be positive integers. + + **Return type** + + [list](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")\[[*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")] + + diff --git a/docs/api/qiskit-addon-sqd/release-notes.mdx b/docs/api/qiskit-addon-sqd/release-notes.mdx new file mode 100644 index 00000000000..987f23b9faa --- /dev/null +++ b/docs/api/qiskit-addon-sqd/release-notes.mdx @@ -0,0 +1,250 @@ +--- +title: Sample-Based Quantum Diagonalization release notes +description: Changes made to Sample-Based Quantum Diagonalization +in_page_toc_max_heading_level: 2 +--- + + + + + +# Sample-Based Quantum Diagonalization release notes + + + + + +## 0.7.0 + + + +### Bug Fixes + +* Fixed a bug in [`qiskit_addon_sqd.fermion.solve_fermion()`](qiskit_addon_sqd.fermion.solve_fermion "qiskit_addon_sqd.fermion.solve_fermion") and [`qiskit_addon_sqd.fermion.optimize_orbitals()`](qiskit_addon_sqd.fermion.optimize_orbitals "qiskit_addon_sqd.fermion.optimize_orbitals") which causes the determinants for spin-up and spin-down to be incorrectly flipped before solving. + +* Fixed a bug in open-shell workflows which would cause [`qiskit_addon_sqd.fermion.optimize_orbitals()`](qiskit_addon_sqd.fermion.optimize_orbitals "qiskit_addon_sqd.fermion.optimize_orbitals") to crash with a `malloc` error. + + + + + +## 0.6.0 + + + +### Upgrade Notes + +* Specifying `addresses` as a keyword argument to [`qiskit_addon_sqd.fermion.solve_fermion()`](qiskit_addon_sqd.fermion.solve_fermion "qiskit_addon_sqd.fermion.solve_fermion") and [`qiskit_addon_sqd.fermion.optimize_orbitals()`](qiskit_addon_sqd.fermion.optimize_orbitals "qiskit_addon_sqd.fermion.optimize_orbitals") is no longer supported. Users may still pass `addresses` as the first positional argument; however, this usage is deprecated. Users are encouraged to pass the bitstring matrix defining the subspace as the first positional arguments to these functions, as shown below. + + To upgrade, change this code + + ```python + # DEPRECATED CODE + from qiskit_addon_sqd.fermion import ( + bitstring_matrix_to_sorted_addresses, + solve_fermion, + optimize_orbitals, + ) + + bitstring_matrix = ... + addresses = bitstring_matrix_to_sorted_addresses(bitstring_matrix, open_shell=open_shell) + energy, coeffs, occs, spin = solve_fermion( + addresses=addresses, + hcore=hcore, + eri=eri, + ) + ... + e_oo, rotation, occs_oo = optimize_orbitals( + addresses=addresses, + hcore=hcore, + eri=eri, + ) + + ### SHOULD BECOME ### + + # NEW CODE + from qiskit_addon_sqd.fermion import solve_fermion, optimize_orbitals + + bitstring_matrix = ... + energy, coeffs, occs, spin = solve_fermion( + bitstring_matrix, + hcore=hcore, + eri=eri, + ) + ... + e_oo, rotation, occs_oo = optimize_orbitals( + bitstring_matrix, + hcore=hcore, + eri=eri, + ) + ``` + + + +### Deprecation Notes + +* The [`qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses()`](qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses "qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses") function has been deprecated in favor of [`qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs()`](qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs "qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs"). These two functions behave the same with one key exception – [`qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses()`](qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses "qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses") returns the configurations as `tuple(spin_dn, spin_up)`; whereas, [`qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs()`](qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs "qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs") returns the configurations as `tuple(spin_up, spin_dn)`. + + To migrate + + ```python + from qiskit_addon_sqd.fermion import ( + bitstring_matrix_to_sorted_addresses, + bitstring_matrix_to_ci_strs, + ) + + # DEPRECATED CODE + bs_matrix = ... + addr_dn, addr_up = bitstring_matrix_to_sorted_addresses(bs_matrix, open_shell=True) + + ### SHOULD BECOME ### + + # NEW CODE + bs_matrix = ... + ci_strs_up, ci_strs_dn = bitstring_matrix_to_ci_strs(bs_matrix, open_shell=True) + ``` + +* The `addresses` argument to [`qiskit_addon_sqd.fermion.solve_fermion()`](qiskit_addon_sqd.fermion.solve_fermion "qiskit_addon_sqd.fermion.solve_fermion") and [`qiskit_addon_sqd.fermion.optimize_orbitals()`](qiskit_addon_sqd.fermion.optimize_orbitals "qiskit_addon_sqd.fermion.optimize_orbitals") has been deprecated in favor of `bitstring_matrix`. Users are no longer required to convert their configurations to integers; instead, they should now pass in the bitstring matrix specifying the subspace onto which to project and diagonalize the Hamiltonian. The conversion to the integer representation of determinants will be done internally. + + + + + +### Bug Fixes + +* Fixed a bug in [`qiskit_addon_sqd.configuration_recovery.recover_configurations()`](qiskit_addon_sqd.configuration_recovery.recover_configurations "qiskit_addon_sqd.configuration_recovery.recover_configurations") which would sometimes cause a divide-by-zero error when calculating individual bit-flip probability. + +* Fixes a bug that caused configuration recovery to fail on bitstrings of length greater than 72. + + + + + +## 0.5.0 + + + + + +### Upgrade Notes + +* The [`qiskit_addon_sqd.counts.generate_counts_bipartite_hamming()`](qiskit_addon_sqd.counts.generate_counts_bipartite_hamming "qiskit_addon_sqd.counts.generate_counts_bipartite_hamming"), [`qiskit_addon_sqd.subsampling.postselect_and_subsample()`](qiskit_addon_sqd.subsampling.postselect_and_subsample "qiskit_addon_sqd.subsampling.postselect_and_subsample"), and [`qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight()`](qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight "qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight") now require the `hamming_right` and `hamming_left` arguments to be specified as keyword arguments. Additionally, the `samples_per_batch` and `n_batches` arguments to [`qiskit_addon_sqd.subsampling.postselect_and_subsample()`](qiskit_addon_sqd.subsampling.postselect_and_subsample "qiskit_addon_sqd.subsampling.postselect_and_subsample") should now be passed as keyword arguments. + + To upgrade + + ```python + from qiskit_addon_sqd.configuration_recovery import post_select_by_hamming_weight + from qiskit_addon_sqd.subsampling import postselect_and_subsample + from qiskit_addon_sqd.counts import generate_counts_bipartite_hamming + + counts = generate_counts_bipartite_hamming(num_samples, num_bits, num_elec_a, num_elec_b) + + ... + + bs_mat = post_select_by_hamming_weight(bs_mat_full, num_elec_a, num_elec_b) + + ... + + batches = postselect_and_subsample( + bs_mat, + probs_arr, + num_elec_a, + num_elec_b, + samples_per_batch, + num_batches, + ) + ``` + + should be changed to + + ```python + from qiskit_addon_sqd.configuration_recovery import post_select_by_hamming_weight + from qiskit_addon_sqd.subsampling import postselect_and_subsample + from qiskit_addon_sqd.counts import generate_counts_bipartite_hamming + + counts = generate_counts_bipartite_hamming(num_samples, num_bits, hamming_right=num_elec_a, hamming_left=num_elec_b) + + ... + + bs_mat = post_select_by_hamming_weight(bs_mat_full, hamming_right=num_elec_a, hamming_left=num_elec_b) + + ... + + batches = postselect_and_subsample( + bs_mat, + probs_arr, + hamming_right=num_elec_a, + hamming_left=num_elec_b, + samples_per_batch=samples_per_batch, + num_batches=num_batches, + ) + ``` + + + + + +## 0.4.0 + + + +### Prelude + +This is a minor release which introduces a couple of small, but important, breaking changes to to the API. These changes allow for a more consistent pattern in specifying the number of alpha and beta electrons throughout both the chemistry and non-chemistry functions in the API. + + + + + +### Upgrade Notes + +* The [`qiskit_addon_sqd.counts.generate_counts_bipartite_hamming()`](qiskit_addon_sqd.counts.generate_counts_bipartite_hamming "qiskit_addon_sqd.counts.generate_counts_bipartite_hamming"), [`qiskit_addon_sqd.subsampling.postselect_and_subsample()`](qiskit_addon_sqd.subsampling.postselect_and_subsample "qiskit_addon_sqd.subsampling.postselect_and_subsample"), and [`qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight()`](qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight "qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight") now take the `hamming_right` positional argument before the `hamming_left` argument to better match the rest of the workflow. + + To upgrade + + ```python + from qiskit_addon_sqd.configuration_recovery import post_select_by_hamming_weight + from qiskit_addon_sqd.subsampling import postselect_and_subsample + from qiskit_addon_sqd.counts import generate_counts_bipartite_hamming + + counts = generate_counts_bipartite_hamming(num_samples, num_bits, num_elec_b, num_elec_a) + + ... + + bs_mat = post_select_by_hamming_weight(bs_mat_full, num_elec_b, num_elec_a) + + ... + + batches = postselect_and_subsample( + bs_mat, + probs_arr, + num_elec_b, + num_elec_a, + samples_per_batch, + n_batches, + ) + ``` + + should be changed to + + ```python + from qiskit_addon_sqd.configuration_recovery import post_select_by_hamming_weight + from qiskit_addon_sqd.subsampling import postselect_and_subsample + from qiskit_addon_sqd.counts import generate_counts_bipartite_hamming + + counts = generate_counts_bipartite_hamming(num_samples, num_bits, num_elec_a, num_elec_b) + + bs_mat = post_select_by_hamming_weight(bs_mat_full, num_elec_a, num_elec_b) + + ... + + batches = postselect_and_subsample( + bs_mat, + probs_arr, + num_elec_a, + num_elec_b, + samples_per_batch, + n_batches, + ) + ``` + diff --git a/docs/api/qiskit-addon-utils/_package.json b/docs/api/qiskit-addon-utils/_package.json new file mode 100644 index 00000000000..0f19c8d1abc --- /dev/null +++ b/docs/api/qiskit-addon-utils/_package.json @@ -0,0 +1,4 @@ +{ + "name": "qiskit-addon-utils", + "version": "0.1.0" +} diff --git a/docs/api/qiskit-addon-utils/_toc.json b/docs/api/qiskit-addon-utils/_toc.json new file mode 100644 index 00000000000..38c4e3fa34f --- /dev/null +++ b/docs/api/qiskit-addon-utils/_toc.json @@ -0,0 +1,14 @@ +{ + "title": "Qiskit Addon Utilities", + "children": [ + { + "title": "API index", + "url": "/api/qiskit-addon-utils" + }, + { + "title": "Release notes", + "url": "/api/qiskit-addon-utils/release-notes" + } + ], + "collapsed": true +} diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.coloring.auto_color_edges.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.coloring.auto_color_edges.mdx new file mode 100644 index 00000000000..6fca5ba39b5 --- /dev/null +++ b/docs/api/qiskit-addon-utils/qiskit_addon_utils.coloring.auto_color_edges.mdx @@ -0,0 +1,28 @@ +--- +title: auto_color_edges +description: API reference for qiskit_addon_utils.coloring.auto_color_edges +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_utils.coloring.auto_color_edges +--- + + + +# auto\_color\_edges + + + Color the input edges of an undirected graph such that no two incident edges share a color. + + **Parameters** + + **edges** ([*Sequence*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")*\[*[*tuple*](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")*\[*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*,* [*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]]*) – The edges describing an undirected graph. + + **Returns** + + A dictionary mapping each edge to an integer representation of a color. + + **Return type** + + [dict](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.13)")\[[tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[int](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)"), [int](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")], [int](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")] + + diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.coloring.is_valid_edge_coloring.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.coloring.is_valid_edge_coloring.mdx new file mode 100644 index 00000000000..63e6d2c44de --- /dev/null +++ b/docs/api/qiskit-addon-utils/qiskit_addon_utils.coloring.is_valid_edge_coloring.mdx @@ -0,0 +1,30 @@ +--- +title: is_valid_edge_coloring +description: API reference for qiskit_addon_utils.coloring.is_valid_edge_coloring +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_utils.coloring.is_valid_edge_coloring +--- + + + +# is\_valid\_edge\_coloring + + + Check whether an edge coloring scheme is valid. + + An edge coloring is valid if no two edges of the same color share a node. + + **Parameters** + + **coloring** ([*dict*](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.13)")*\[*[*tuple*](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")*\[*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*,* [*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*],* [*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]*) – A mapping from edges to integer representations of colors. + + **Returns** + + A boolean indicating whether the input coloring is valid. + + **Return type** + + [bool](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)") + + diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.coloring.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.coloring.mdx new file mode 100644 index 00000000000..9608fa59695 --- /dev/null +++ b/docs/api/qiskit-addon-utils/qiskit_addon_utils.coloring.mdx @@ -0,0 +1,12 @@ +# coloring + + + + + +Utility methods for coloring. + +| | | +| ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | +| [`auto_color_edges`](qiskit_addon_utils.coloring.auto_color_edges "qiskit_addon_utils.coloring.auto_color_edges") | Color the input edges of an undirected graph such that no two incident edges share a color. | +| [`is_valid_edge_coloring`](qiskit_addon_utils.coloring.is_valid_edge_coloring "qiskit_addon_utils.coloring.is_valid_edge_coloring") | Check whether an edge coloring scheme is valid. | diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.mdx new file mode 100644 index 00000000000..5fcb3215c25 --- /dev/null +++ b/docs/api/qiskit-addon-utils/qiskit_addon_utils.mdx @@ -0,0 +1,17 @@ +# Qiskit addon utilities + + + + + +Utilities for Qiskit addons. + +This package contains functionality which is meant to supplement workflows involving one or more Qiskit addons. For example, this package contains functions for creating Hamiltonians, generating Trotter time evolution circuits, and slicing and combining quantum circuits in time-wise partitions. + +## Submodules + +| | | +| -------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------- | +| [`coloring`](qiskit_addon_utils.coloring#module-qiskit_addon_utils.coloring "qiskit_addon_utils.coloring") | Utility methods for coloring. | +| [`problem_generators`](qiskit_addon_utils.problem_generators#module-qiskit_addon_utils.problem_generators "qiskit_addon_utils.problem_generators") | Utility methods for problem generation. | +| [`slicing`](qiskit_addon_utils.slicing#module-qiskit_addon_utils.slicing "qiskit_addon_utils.slicing") | Utility methods for circuit slicing. | diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.PauliOrderStrategy.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.PauliOrderStrategy.mdx new file mode 100644 index 00000000000..39917c0ed85 --- /dev/null +++ b/docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.PauliOrderStrategy.mdx @@ -0,0 +1,38 @@ +--- +title: PauliOrderStrategy +description: API reference for qiskit_addon_utils.problem_generators.PauliOrderStrategy +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_utils.problem_generators.PauliOrderStrategy +--- + +# PauliOrderStrategy + + + Bases: [`Enum`](https://docs.python.org/3/library/enum.html#enum.Enum "(in Python v3.13)") + + Enumeration of different Pauli-orderings. + + When constructing a Hamiltonian on a colored set of edges, the generated Pauli terms can be ordered in different ways. This order of terms in the Hamiltonian is preserved during its time evolution and, thus, directly impacts the resulting quantum circuit. + + ## Attributes + + ### ColorThenInteraction + + + This strategy first iterates all edges (sorted by their color value) and then the interactions (sorted as `X`, `Y`, `Z`). + + + ### InteractionThenColor + + + This strategy is the inverse to `ColorThenInteraction`. It first iterates the interactions (sorted as `X`, `Y`, `Z`) and then all edges (sorted by their color value). + + + ### InteractionThenColorZigZag + + + This strategy is similar to the `InteractionThenColor` one. However, it alternates between iterating the edges by incrementing and decrementing color values as it jumps from one interaction to the next. For example, if only `X` and `Y` interactions are included and three color values are used (`{1, 2, 3}`), this will result in the following order: `["X on 1", "X on 2", "X on 3", "Y on 3", "Y on 2", "Y on 1"]`. + + + diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.generate_time_evolution_circuit.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.generate_time_evolution_circuit.mdx new file mode 100644 index 00000000000..74a01ce0bce --- /dev/null +++ b/docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.generate_time_evolution_circuit.mdx @@ -0,0 +1,60 @@ +--- +title: generate_time_evolution_circuit +description: API reference for qiskit_addon_utils.problem_generators.generate_time_evolution_circuit +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_utils.problem_generators.generate_time_evolution_circuit +--- + + + +# generate\_time\_evolution\_circuit + + + Model the time evolution of an operator. + + ```python + >>> from qiskit.quantum_info import SparsePauliOp + >>> from qiskit.synthesis import SuzukiTrotter + >>> from qiskit.transpiler import CouplingMap + >>> from qiskit_addon_utils.problem_generators import ( + ... PauliOrderStrategy, + ... generate_xyz_hamiltonian, + ... generate_time_evolution_circuit, + ... ) + ``` + + ```python + >>> coupling_map = CouplingMap.from_line(6) + >>> hamiltonian = generate_xyz_hamiltonian( + ... coupling_map, + ... coupling_constants=(0.4, 0.4, 0.0), + ... ext_magnetic_field=(0.0, 0.0, 0.6), + ... pauli_order_strategy=PauliOrderStrategy.InteractionThenColorZigZag, + ... ) + ``` + + ```python + >>> circ = generate_time_evolution_circuit( + ... hamiltonian, synthesis=SuzukiTrotter(order=2, reps=2), time=2.0 + ... ) + >>> _ = circ.draw("mpl", fold=-1) + ``` + + ![../\_images/qiskit\_addon\_utils-problem\_generators-generate\_time\_evolution\_circuit-1.png](/images/api/qiskit-addon-utils/qiskit_addon_utils-problem_generators-generate_time_evolution_circuit-1.png) + + **Parameters** + + * **operator** ([*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)")) – The operator for which to model the time evolution. + * **synthesis** ([*EvolutionSynthesis*](/api/qiskit/qiskit.synthesis.EvolutionSynthesis "(in Qiskit v1.2)") *| None*) – A synthesis strategy. If `None`, the default synthesis is the Lie-Trotter product formula with a single repetition. + * **time** ([*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The evolution time. + + **Returns** + + A [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)") implementing a time-evolved operator. + + **Return type** + + [*QuantumCircuit*](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)") + + diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.generate_xyz_hamiltonian.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.generate_xyz_hamiltonian.mdx new file mode 100644 index 00000000000..2fac02b7675 --- /dev/null +++ b/docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.generate_xyz_hamiltonian.mdx @@ -0,0 +1,75 @@ +--- +title: generate_xyz_hamiltonian +description: API reference for qiskit_addon_utils.problem_generators.generate_xyz_hamiltonian +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_utils.problem_generators.generate_xyz_hamiltonian +--- + + + +# generate\_xyz\_hamiltonian + + + Generate a connectivity-aware qubit operator representing a quantum XYZ-type model. + + This function implements the following Hamiltonian: + +$$ +\hat{H} = \sum_{(j,k)\in E} (J_{x} \sigma_j^{x} \sigma_{k}^{x} + +J_{y} \sigma_j^{y} \sigma_{k}^{y} + J_{z} \sigma_j^{z} \sigma_{k}^{z}) + +\sum_{j\in V} (h_{x} \sigma_j^{x} + h_{y} \sigma_j^{y} + h_{z} \sigma_j^{z}) +$$ + + Where G(V,E) is the graph of the provided `coupling` map. + + + There is often a $-\frac{1}{2}$ factor included outside the summation of this equation. This factor is not applied internally, so it should be accounted for in the `coupling_constants` and `ext_magnetic_field` inputs. + + + ```python + >>> from qiskit.transpiler import CouplingMap + >>> from qiskit_addon_utils.problem_generators import generate_xyz_hamiltonian + + >>> coupling_map = CouplingMap.from_line(10) + >>> hamiltonian = generate_xyz_hamiltonian( + ... coupling_map, + ... coupling_constants=(0.4, 0.4, 0.0), + ... ext_magnetic_field=(0.0, 0.0, 0.6), + ... ) + >>> print(hamiltonian) + SparsePauliOp(['IIIIIIIXXI', 'IIIIIIIYYI', 'IIIIIXXIII', 'IIIIIYYIII', + 'IIIXXIIIII', 'IIIYYIIIII', 'IXXIIIIIII', 'IYYIIIIIII', + 'IIIIIIIIXX', 'IIIIIIIIYY', 'IIIIIIXXII', 'IIIIIIYYII', + 'IIIIXXIIII', 'IIIIYYIIII', 'IIXXIIIIII', 'IIYYIIIIII', + 'XXIIIIIIII', 'YYIIIIIIII', 'IIIIIIIIIZ', 'IIIIIIIIZI', + 'IIIIIIIZII', 'IIIIIIZIII', 'IIIIIZIIII', 'IIIIZIIIII', + 'IIIZIIIIII', 'IIZIIIIIII', 'IZIIIIIIII', 'ZIIIIIIIII'], + coeffs=[0.4+0.j, 0.4+0.j, 0.4+0.j, 0.4+0.j, 0.4+0.j, 0.4+0.j, 0.4+0.j, 0.4+0.j, + 0.4+0.j, 0.4+0.j, 0.4+0.j, 0.4+0.j, 0.4+0.j, 0.4+0.j, 0.4+0.j, 0.4+0.j, + 0.4+0.j, 0.4+0.j, 0.6+0.j, 0.6+0.j, 0.6+0.j, 0.6+0.j, 0.6+0.j, 0.6+0.j, + 0.6+0.j, 0.6+0.j, 0.6+0.j, 0.6+0.j]) + ``` + + **Parameters** + + * **coupling** ([*CouplingMap*](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") *|*[*PyGraph*](https://www.rustworkx.org/apiref/rustworkx.PyGraph.html#rustworkx.PyGraph "(in rustworkx v0.15)") *|*[*PyDiGraph*](https://www.rustworkx.org/apiref/rustworkx.PyDiGraph.html#rustworkx.PyDiGraph "(in rustworkx v0.15)")) – The qubit subgraph on which to map the Hamiltonian. Directionality of graph edges will be ignored, and parallel edges will be treated as a single edge during generation of the operator. + * **coupling\_constants** ([*Sequence*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")*\[*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")*]*) – The real-valued coupling constants, $J_i$, in each Cartesian axis. + * **ext\_magnetic\_field** ([*Sequence*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")*\[*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")*]*) – The coefficients, $h_i$, representing a magnetic field along each Cartesian axis. + * **pauli\_order\_strategy** ([*PauliOrderStrategy*](qiskit_addon_utils.problem_generators.PauliOrderStrategy "qiskit_addon_utils.problem_generators.generate_xyz_hamiltonian.PauliOrderStrategy")) – Indicates the iteration strategy in which the Pauli terms will be generated. See [`PauliOrderStrategy`](qiskit_addon_utils.problem_generators.PauliOrderStrategy "qiskit_addon_utils.problem_generators.PauliOrderStrategy") for more details. + * **coloring** ([*dict*](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.13)")*\[*[*tuple*](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")*\[*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*,* [*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*],* [*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*] | None*) – An optional dictionary encoding the graph coloring that is used to sort the Hamiltonian terms. This dictionary maps edge labels (in the form of integer pairs) to color values (simple integers). Hamiltonian interaction terms will be added by increasing color value. Within each color, edges are sorted which does not change anything physically but results in easier to read results. + + **Returns** + + A qubit operator describing a quantum XYZ-type model. The `i`-th qubit in the operator corresponds to the node in index `i` on the coupling map. + + **Raises** + + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – The coupling constants must be specified by a length-3 sequence of floating point values. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – The external magnetic field must be specified by a length-3 sequence of floating point values. + + **Return type** + + [*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)") + + diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.mdx new file mode 100644 index 00000000000..d12a01d523a --- /dev/null +++ b/docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.mdx @@ -0,0 +1,15 @@ + + +# problem\_generators + + + + + +Utility methods for problem generation. + +| | | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | +| [`generate_xyz_hamiltonian`](qiskit_addon_utils.problem_generators.generate_xyz_hamiltonian "qiskit_addon_utils.problem_generators.generate_xyz_hamiltonian") | Generate a connectivity-aware qubit operator representing a quantum XYZ-type model. | +| [`PauliOrderStrategy`](qiskit_addon_utils.problem_generators.PauliOrderStrategy "qiskit_addon_utils.problem_generators.PauliOrderStrategy") | Enumeration of different Pauli-orderings. | +| [`generate_time_evolution_circuit`](qiskit_addon_utils.problem_generators.generate_time_evolution_circuit "qiskit_addon_utils.problem_generators.generate_time_evolution_circuit") | Model the time evolution of an operator. | diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.combine_slices.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.combine_slices.mdx new file mode 100644 index 00000000000..e72b6c9af46 --- /dev/null +++ b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.combine_slices.mdx @@ -0,0 +1,33 @@ +--- +title: combine_slices +description: API reference for qiskit_addon_utils.slicing.combine_slices +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_utils.slicing.combine_slices +--- + + + +# combine\_slices + + + Combine N-qubit slices of a circuit into a single circuit. + + **Parameters** + + * **slices** ([*Sequence*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")*\[*[*QuantumCircuit*](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")*]*) – The N-qubit circuit slices. + * **include\_barriers** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – If `True`, place barriers between each slice. + + **Returns** + + A [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)") with the slices appended in sequential order. + + **Raises** + + [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – Two input slices were defined on different numbers of qubits. + + **Return type** + + [*QuantumCircuit*](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)") | None + + diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.mdx new file mode 100644 index 00000000000..a44916cce46 --- /dev/null +++ b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.mdx @@ -0,0 +1,23 @@ +# slicing + + + + + +Utility methods for circuit slicing. + +For more information, check out the [how-to guide](how_tos/create_circuit_slices) which discusses this submodule. + +| | | +| ------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------- | +| [`combine_slices`](qiskit_addon_utils.slicing.combine_slices "qiskit_addon_utils.slicing.combine_slices") | Combine N-qubit slices of a circuit into a single circuit. | +| [`slice_by_barriers`](qiskit_addon_utils.slicing.slice_by_barriers "qiskit_addon_utils.slicing.slice_by_barriers") | Split a `QuantumCircuit` into slices around full-circuit barriers. | +| [`slice_by_coloring`](qiskit_addon_utils.slicing.slice_by_coloring "qiskit_addon_utils.slicing.slice_by_coloring") | Split a `QuantumCircuit` into slices using the provided edge coloring. | +| [`slice_by_depth`](qiskit_addon_utils.slicing.slice_by_depth "qiskit_addon_utils.slicing.slice_by_depth") | Split a `QuantumCircuit` into slices based on depth. | +| [`slice_by_gate_types`](qiskit_addon_utils.slicing.slice_by_gate_types "qiskit_addon_utils.slicing.slice_by_gate_types") | Split a `QuantumCircuit` into depth-1 slices of operations of the same type. | + +## Submodules + +| | | +| ------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------- | +| [`transpiler`](qiskit_addon_utils.slicing.transpiler#module-qiskit_addon_utils.slicing.transpiler "qiskit_addon_utils.slicing.transpiler") | A submodule with transpiler utilities for slicing. | diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_barriers.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_barriers.mdx new file mode 100644 index 00000000000..69288f076bb --- /dev/null +++ b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_barriers.mdx @@ -0,0 +1,30 @@ +--- +title: slice_by_barriers +description: API reference for qiskit_addon_utils.slicing.slice_by_barriers +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_utils.slicing.slice_by_barriers +--- + + + +# slice\_by\_barriers + + + Split a `QuantumCircuit` into slices around full-circuit barriers. + + Barriers which do not act on all circuit qubits will be treated as normal operations and included in the slices. Barriers which act on all qubits will be interpreted as slice locations and will not be included in the output slices. + + **Parameters** + + **circuit** ([*QuantumCircuit*](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – The circuit to be split. + + **Returns** + + A sequence of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)") objects, one for each slice. + + **Return type** + + [list](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")\[[*QuantumCircuit*](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")] + + diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_coloring.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_coloring.mdx new file mode 100644 index 00000000000..98b527b5429 --- /dev/null +++ b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_coloring.mdx @@ -0,0 +1,84 @@ +--- +title: slice_by_coloring +description: API reference for qiskit_addon_utils.slicing.slice_by_coloring +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_utils.slicing.slice_by_coloring +--- + + + +# slice\_by\_coloring + + + Split a `QuantumCircuit` into slices using the provided edge coloring. + + Two-qubit gates acting on identically colored qubit connections (edges) will be grouped greedily into slices using [`CollectOpColor`](qiskit_addon_utils.slicing.transpiler.passes.CollectOpColor "qiskit_addon_utils.slicing.transpiler.passes.CollectOpColor"). This will be done in order of increasing color value (the integer values which each edge is mapped to). + + + Note, that this does *not* mean that low valued color slices are guaranteed to be left-most in your circuit. Below is an example to emphasize this. + + + ```python + >>> from qiskit import QuantumCircuit + + >>> circuit = QuantumCircuit(5) + >>> _ = circuit.cx(0, 1) + >>> _ = circuit.cx(3, 4) + >>> _ = circuit.cx(2, 3) + + >>> circuit.draw() + q_0: ──■─────── + ┌─┴─┐ + q_1: ┤ X ├───── + └───┘ + q_2: ───────■── + ┌─┴─┐ + q_3: ──■──┤ X ├ + ┌─┴─┐└───┘ + q_4: ┤ X ├───── + └───┘ + + >>> coloring = {(0, 1): 0, (2, 3): 0, (3, 4): 1} + + >>> from qiskit_addon_utils.slicing import combine_slices, slice_by_coloring + + >>> slices = slice_by_coloring(circuit, coloring) + + # for illustration purposes, we are recombining the slices with barriers + >>> recombined = combine_slices(slices, include_barriers=True) + >>> recombined.draw() + ░ + q_0: ──────░───■── + ░ ┌─┴─┐ + q_1: ──────░─┤ X ├ + ░ └───┘ + q_2: ──────░───■── + ░ ┌─┴─┐ + q_3: ──■───░─┤ X ├ + ┌─┴─┐ ░ └───┘ + q_4: ┤ X ├─░────── + └───┘ ░ + ``` + + Single-qubit gates will be collected into a single slice using [`CollectOpSize`](qiskit_addon_utils.slicing.transpiler.passes.CollectOpSize "qiskit_addon_utils.slicing.transpiler.passes.CollectOpSize"). + + **Parameters** + + * **circuit** ([*QuantumCircuit*](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – The circuit to be split. + * **coloring** ([*dict*](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.13)")*\[*[*tuple*](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")*\[*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*,* [*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*],* [*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]*) – A dictionary mapping edges (pairs of integers) to color values. + + **Returns** + + A sequence of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)") objects, one for each slice. + + **Raises** + + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – The input edge coloring is invalid. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – Could not assign a color to circuit instruction. + + **Return type** + + [list](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")\[[*QuantumCircuit*](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")] + + diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_depth.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_depth.mdx new file mode 100644 index 00000000000..09cebc0d366 --- /dev/null +++ b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_depth.mdx @@ -0,0 +1,31 @@ +--- +title: slice_by_depth +description: API reference for qiskit_addon_utils.slicing.slice_by_depth +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_utils.slicing.slice_by_depth +--- + + + +# slice\_by\_depth + + + Split a `QuantumCircuit` into slices based on depth. + + This function transforms the input circuit into a [`DAGCircuit`](/api/qiskit/qiskit.dagcircuit.DAGCircuit "(in Qiskit v1.2)") and batches the sequence of depth-1 layers output from [`layers()`](/api/qiskit/qiskit.dagcircuit.DAGCircuit#layers "(in Qiskit v1.2)") into slices of depth not exceeding `max_slice_depth`. This is achieved by composing layers into slices until the max slice depth is reached and then starting a new slice with the next layer. The final slice may be composed of fewer than `max_slice_depth` layers. + + **Parameters** + + * **circuit** ([*QuantumCircuit*](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – The circuit to be split. + * **max\_slice\_depth** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The maximum depth of a given slice. + + **Returns** + + A sequence of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)") objects, one for each slice. + + **Return type** + + [list](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")\[[*QuantumCircuit*](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")] + + diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_gate_types.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_gate_types.mdx new file mode 100644 index 00000000000..04e33d9bcff --- /dev/null +++ b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_gate_types.mdx @@ -0,0 +1,32 @@ +--- +title: slice_by_gate_types +description: API reference for qiskit_addon_utils.slicing.slice_by_gate_types +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_utils.slicing.slice_by_gate_types +--- + + + +# slice\_by\_gate\_types + + + Split a `QuantumCircuit` into depth-1 slices of operations of the same type. + + + Note: Adjacent slices sharing no qubits in common may be ordered arbitrarily. + + + **Parameters** + + **circuit** ([*QuantumCircuit*](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – The circuit to be split. + + **Returns** + + A sequence of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)") objects, one for each slice. + + **Return type** + + [list](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")\[[*QuantumCircuit*](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")] + + diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.mdx new file mode 100644 index 00000000000..7a60df35b4c --- /dev/null +++ b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.mdx @@ -0,0 +1,13 @@ +# transpiler + + + + + +A submodule with transpiler utilities for slicing. + +## Submodules + +| | | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- | +| [`passes`](qiskit_addon_utils.slicing.transpiler.passes#module-qiskit_addon_utils.slicing.transpiler.passes "qiskit_addon_utils.slicing.transpiler.passes") | A submodule with transpilation passes for slicing. | diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.CollectOpColor.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.CollectOpColor.mdx new file mode 100644 index 00000000000..12b10071727 --- /dev/null +++ b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.CollectOpColor.mdx @@ -0,0 +1,113 @@ +--- +title: CollectOpColor +description: API reference for qiskit_addon_utils.slicing.transpiler.passes.CollectOpColor +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_utils.slicing.transpiler.passes.CollectOpColor +--- + +# CollectOpColor + + + Bases: [`CollectAndCollapse`](/api/qiskit/qiskit.transpiler.passes.CollectAndCollapse "(in Qiskit v1.2)") + + Collects blocks of operations which act on the provided edges. + + The collected operations are replaced by a single block instruction. + + Initialize a `CollectOpColor` object. + + + The `do_commutative_analysis` keyword currently does not work as intended due to an open issue. Thus, setting it to `True` will not work. + + + **Parameters** + + * **color\_name** – The name of the color to consolidate into blocks. This is used to prefix the labels on the produced block instructions such that each block is labeled `"{color_name}_slice"`. + * **edges** – The set of edges belonging to this color. + * **do\_commutative\_analysis** – If `True`, exploits commutativity relations between nodes. Note also the warning above. + + **Inherited Attributes** + + ### is\_analysis\_pass + + + Check if the pass is an analysis pass. + + If the pass is an AnalysisPass, that means that the pass can analyze the DAG and write the results of that analysis in the property set. Modifications on the DAG are not allowed by this kind of pass. + + + ### is\_transformation\_pass + + + Check if the pass is a transformation pass. + + If the pass is a TransformationPass, that means that the pass can manipulate the DAG, but cannot modify the property set (but it can be read). + + + **Inherited Methods** + + ### execute + + + Execute optimization task for input Qiskit IR. + + **Parameters** + + * **passmanager\_ir** ([*Any*](https://docs.python.org/3/library/typing.html#typing.Any "(in Python v3.13)")) – Qiskit IR to optimize. + * **state** ([*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")) – State associated with workflow execution by the pass manager itself. + * **callback** ([*Callable*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Callable "(in Python v3.13)") *| None*) – A callback function which is caller per execution of optimization task. + + **Returns** + + Optimized Qiskit IR and state of the workflow. + + **Return type** + + [tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[*Any*](https://docs.python.org/3/library/typing.html#typing.Any "(in Python v3.13)"), [*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")] + + + ### name + + + Name of the pass. + + **Return type** + + [str](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)") + + + ### run + + + Run the CollectLinearFunctions pass on dag. :param dag: the DAG to be optimized. :type dag: DAGCircuit + + **Returns** + + the optimized DAG. + + **Return type** + + DAGCircuit + + + ### update\_status + + + Update workflow status. + + **Parameters** + + * **state** ([*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")) – Pass manager state to update. + * **run\_state** (*RunState*) – Completion status of current task. + + **Returns** + + Updated pass manager state. + + **Return type** + + [*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)") + + + diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.CollectOpSize.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.CollectOpSize.mdx new file mode 100644 index 00000000000..2c3ca424bed --- /dev/null +++ b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.CollectOpSize.mdx @@ -0,0 +1,110 @@ +--- +title: CollectOpSize +description: API reference for qiskit_addon_utils.slicing.transpiler.passes.CollectOpSize +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_utils.slicing.transpiler.passes.CollectOpSize +--- + +# CollectOpSize + + + Bases: [`CollectAndCollapse`](/api/qiskit/qiskit.transpiler.passes.CollectAndCollapse "(in Qiskit v1.2)") + + Collects blocks of the specified size and replaces them by a single block instruction. + + Initialize a `CollectOpSize` object. + + + The `do_commutative_analysis` keyword currently does not work as intended due to an open issue. Thus, setting it to `True` will not work. + + + **Parameters** + + * **size** – The size of operations to collect. + * **do\_commutative\_analysis** – If `True`, exploits commutativity relations between nodes. Note also the warning above. + + **Inherited Attributes** + + ### is\_analysis\_pass + + + Check if the pass is an analysis pass. + + If the pass is an AnalysisPass, that means that the pass can analyze the DAG and write the results of that analysis in the property set. Modifications on the DAG are not allowed by this kind of pass. + + + ### is\_transformation\_pass + + + Check if the pass is a transformation pass. + + If the pass is a TransformationPass, that means that the pass can manipulate the DAG, but cannot modify the property set (but it can be read). + + + **Inherited Methods** + + ### execute + + + Execute optimization task for input Qiskit IR. + + **Parameters** + + * **passmanager\_ir** ([*Any*](https://docs.python.org/3/library/typing.html#typing.Any "(in Python v3.13)")) – Qiskit IR to optimize. + * **state** ([*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")) – State associated with workflow execution by the pass manager itself. + * **callback** ([*Callable*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Callable "(in Python v3.13)") *| None*) – A callback function which is caller per execution of optimization task. + + **Returns** + + Optimized Qiskit IR and state of the workflow. + + **Return type** + + [tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[*Any*](https://docs.python.org/3/library/typing.html#typing.Any "(in Python v3.13)"), [*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")] + + + ### name + + + Name of the pass. + + **Return type** + + [str](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)") + + + ### run + + + Run the CollectLinearFunctions pass on dag. :param dag: the DAG to be optimized. :type dag: DAGCircuit + + **Returns** + + the optimized DAG. + + **Return type** + + DAGCircuit + + + ### update\_status + + + Update workflow status. + + **Parameters** + + * **state** ([*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")) – Pass manager state to update. + * **run\_state** (*RunState*) – Completion status of current task. + + **Returns** + + Updated pass manager state. + + **Return type** + + [*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)") + + + diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.CollectOpType.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.CollectOpType.mdx new file mode 100644 index 00000000000..7a3b7bc1c73 --- /dev/null +++ b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.CollectOpType.mdx @@ -0,0 +1,110 @@ +--- +title: CollectOpType +description: API reference for qiskit_addon_utils.slicing.transpiler.passes.CollectOpType +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_addon_utils.slicing.transpiler.passes.CollectOpType +--- + +# CollectOpType + + + Bases: [`CollectAndCollapse`](/api/qiskit/qiskit.transpiler.passes.CollectAndCollapse "(in Qiskit v1.2)") + + Collects blocks of the specified operation and replaces them by a single block instruction. + + Initialize a `CollectOpType` object. + + + The `do_commutative_analysis` keyword currently does not work as intended due to an open issue. Thus, setting it to `True` will not work. + + + **Parameters** + + * **op\_name** – The name of the operation to consolidate into blocks. + * **do\_commutative\_analysis** – If `True`, exploits commutativity relations between nodes. Note also the warning above. + + **Inherited Attributes** + + ### is\_analysis\_pass + + + Check if the pass is an analysis pass. + + If the pass is an AnalysisPass, that means that the pass can analyze the DAG and write the results of that analysis in the property set. Modifications on the DAG are not allowed by this kind of pass. + + + ### is\_transformation\_pass + + + Check if the pass is a transformation pass. + + If the pass is a TransformationPass, that means that the pass can manipulate the DAG, but cannot modify the property set (but it can be read). + + + **Inherited Methods** + + ### execute + + + Execute optimization task for input Qiskit IR. + + **Parameters** + + * **passmanager\_ir** ([*Any*](https://docs.python.org/3/library/typing.html#typing.Any "(in Python v3.13)")) – Qiskit IR to optimize. + * **state** ([*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")) – State associated with workflow execution by the pass manager itself. + * **callback** ([*Callable*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Callable "(in Python v3.13)") *| None*) – A callback function which is caller per execution of optimization task. + + **Returns** + + Optimized Qiskit IR and state of the workflow. + + **Return type** + + [tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[*Any*](https://docs.python.org/3/library/typing.html#typing.Any "(in Python v3.13)"), [*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")] + + + ### name + + + Name of the pass. + + **Return type** + + [str](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)") + + + ### run + + + Run the CollectLinearFunctions pass on dag. :param dag: the DAG to be optimized. :type dag: DAGCircuit + + **Returns** + + the optimized DAG. + + **Return type** + + DAGCircuit + + + ### update\_status + + + Update workflow status. + + **Parameters** + + * **state** ([*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)")) – Pass manager state to update. + * **run\_state** (*RunState*) – Completion status of current task. + + **Returns** + + Updated pass manager state. + + **Return type** + + [*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.2)") + + + diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.mdx new file mode 100644 index 00000000000..c69812c4bbe --- /dev/null +++ b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.mdx @@ -0,0 +1,13 @@ +# passes + + + + + +A submodule with transpilation passes for slicing. + +| | | +| --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | +| [`CollectOpColor`](qiskit_addon_utils.slicing.transpiler.passes.CollectOpColor "qiskit_addon_utils.slicing.transpiler.passes.CollectOpColor") | Collects blocks of operations which act on the provided edges. | +| [`CollectOpSize`](qiskit_addon_utils.slicing.transpiler.passes.CollectOpSize "qiskit_addon_utils.slicing.transpiler.passes.CollectOpSize") | Collects blocks of the specified size and replaces them by a single block instruction. | +| [`CollectOpType`](qiskit_addon_utils.slicing.transpiler.passes.CollectOpType "qiskit_addon_utils.slicing.transpiler.passes.CollectOpType") | Collects blocks of the specified operation and replaces them by a single block instruction. | diff --git a/docs/api/qiskit-addon-utils/release-notes.mdx b/docs/api/qiskit-addon-utils/release-notes.mdx new file mode 100644 index 00000000000..55e39dceb10 --- /dev/null +++ b/docs/api/qiskit-addon-utils/release-notes.mdx @@ -0,0 +1,24 @@ +--- +title: Qiskit Addon Utilities release notes +description: Changes made to Qiskit Addon Utilities +in_page_toc_max_heading_level: 2 +--- + + + + + +# Qiskit Addon Utilities release notes + + + + + +## 0.1.0 + + + +### Upgrade Notes + +* The keyword argument `include_slice_barriers` of [`combine_slices()`](qiskit_addon_utils.slicing.combine_slices "qiskit_addon_utils.slicing.combine_slices") has been renamed to `include_barriers`. + diff --git a/public/api/qiskit-addon-cutting/objects.inv b/public/api/qiskit-addon-cutting/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..062666b2f42fee10dbc3d4e3f39b32bd7c61e418 GIT binary patch literal 3841 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 Dy%%() literal 0 HcmV?d00001 diff --git a/public/api/qiskit-addon-mpf/objects.inv b/public/api/qiskit-addon-mpf/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..f2613c2d64eea6495aee8fe04382751255e802c8 GIT binary patch literal 1706 zcmV;b237eZAX9K?X>NERX>N99Zgg*Qc_4OWa&u{KZXhxWBOp+6Z)#;@bUGkWX>)67 zbRc15WN&UdAZ>MQbZISca&KgHV{{;9Z*pyQY+-XCC{0jCDGDPXR%LQ?X>V>iAPOTO zRA^-&a%F8{X>Md?av*PJAarPHb0B7EY-J#6b0A}HZE$jBb8}^6Aa!$TZf78RY-wUH z3V7PJTFY|VHWc0aD=?!j+6C+;OYc06(`Lq*s#UVqKphl$mFhLBD#6!HTZ49g--yaE0)7WSPmBw1fxiHFb85R)8fl87^*c-k z&F%B*$x>m4lmZ_>3>GE1eXul0Ye_dolQ`7^CCD}I?kvBdn4J59vx@gm4q-Rk0~DgT^pT zVJk&tum-h|jbTWEU%xIt{}y+%@P*J7!T}HLd7yO|m6OeKHQCB+{OqO@$^zi(@Hax< zwNtVM`gwTef4(k1=dmt=9t?f4jSR$s)HTJFaILaDXAwOdF+d%Zf)JCZ+Kqud1A0t`Y7_Pw*KP-d9qZ#^7*U z@ZeAJ4zvK?<~;Uc^7dLtfVlOXT%s=Ujl@Y;Cc0wrD52o zm1xdv@;J|MR9Nd|)6Xno1G8-e_)UO646Vpi-M&Fz93aAU0-WJBit?B7Q6x4@XR7qw z$8>!s0Qku`)9C_l5r65YAT0PBkuQW}+j%8XTfr(-BrJ>YvBNm&0R|i~`TB*h0QkE8 zQ7Sa3`Pe;x*Y%HV*P;oA&Ey6ksbP}hu`hL_@30HVS7qF4xPxw!p(#d;?aPHtvOM+% zumhnXS6(+xOgBA-XA$4Ai)1F*t~E>wH&`j%SJ`D1E5Aa(lWc+R%K|RgTR)5V$h=d% zg%zohVH$Qi3Wr-R>B{5W8~E3K>yG*xR7_koRkHJGoQjt~?>^AbS z6^!Ej6x9Uk)3FFFUD1G6VABw;y?u&t0QeL>g*=oijToDy8Q8xB4#S=)&-#Dd{T+o#;`$ao-L`q(f%TumUt8V9W~v7|!ytI>K^oj$PXu)b0f#hz zO|nMdnf^rUs(yf7A*`inV7qVWw8IGguh!p0-}kNp$AVVRM<%neq$tEQ%#uqQ4M-$$L3lYL8z?JWqOw{vb_V z+C#z&_o(D7?~4M5=jqHwo~Pe8kL$v&vU6+$6X10>4z7I)Njnq)YkpQRi67v#rsjRN&@X$*W-&V8X#v zdLVTrKS6W$?fpnt@fApaVjXa#4zZ#;{KZd=(KBL4@iBe`OdR(nM^^4vL~T9s-4zVR zPVzH}Q@*}3yot{__TZEroQJdGS=)>p2c;Xi!WA!HLVTx?If3W98%)#x0r8GbIHAHe AS^xk5 literal 0 HcmV?d00001 diff --git a/public/api/qiskit-addon-obp/objects.inv b/public/api/qiskit-addon-obp/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..7241eb5543d580d66556c073154d87b057109920 GIT binary patch literal 3195 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 literal 0 HcmV?d00001 diff --git a/public/api/qiskit-addon-sqd/objects.inv b/public/api/qiskit-addon-sqd/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..cca9c80c6c9ab5938a52f0a3b7f2b056cfc962c0 GIT binary patch literal 3659 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 literal 0 HcmV?d00001 diff --git a/public/api/qiskit-addon-utils/objects.inv b/public/api/qiskit-addon-utils/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..2692c9a3afeec2a946d7b612bd8ccb22923019d7 GIT binary patch literal 2347 zcmV+`3Dou@AX9K?X>NERX>N99Zgg*Qc_4OWa&u{KZXhxWBOp+6Z)#;@bUGkWX>)67 zbRc15WN&UDb#!TLX>@62a|$CMR%LQ?X>V>iAPOTORA^-&a%F8{X>Md?av*PJAarPH zb0B7EY-J#6b0A}HZE$jBb8}^6Aa!$TZf78RY-wUH3V7PhTuqOhI1s((S0J%hcQ!fB zHIa5Bt&~~y>?IdOgQwdHjR`iB>G}05n~&zhfbA-#`!tPlz4u&Z3IneC#l%l0qc}}@ z9#xWMA}B5oXP#CW4gL&%O-_gPIr2w9K1|Q<5}xsr<;NA2uAe2`F0Lex^if39Bh@OO zt2~j6=fS7I$#j{CiRdNHSgJcm{qb1x%>Wo#i;^EQdXA1Xr)4a8x#oU@#fl532D`_& z%GmcZrR83hv82a~VokDG2=mzNF#PFvUzC@gPBj0POIpUYn~TdsEM>_Km81Y&p`HSH zqB-k<1H|?;D#=QYc2&-IKK z*<=~#qF@;ZX^`M1C*2JIKN<*ct{TVn<(TqHYJu z8C0Hl3R4rdcraB=L~$Nx7r{iNdRW}LtQAhM!BTafXI`FTeZSd2u!#XCJCDzJldi#F zddezClcTU;YN{etkxR%}Rsv1e5Y<=Vp1o0c?9eC>35bzH!GQyZ*0fFB(E8BAMk{o) zsL{&B3>sQAQq0i$Kp{h`!HF1J3?yJ^E!gowtHKEvPnQBATxb-C1jKNm;K1QRYuYAU zXnknmq7}MXxM<~Kh6^nkDO_lMpm3qp;Die;1`;l`7VL1LRe{1qQbR?&sGmV+pH;}a zKCJX)2^D8&7D41aS3x~Z>dAI4(h^{({TLT4<%#&X^y;}3G7vI-$l?RdW+=ON3hfVT z=&&=j+88M&5wa0&+F&g$wW2A{qtXX2Yrx~ z79~wIHYs? z7u00mp8BW$+qbe=4b~uz3&2LR>59=O2IJ5NWu-qX4s8cxC#=`ah`P|-l8+bK^b=_s z$#coiq_`B!Ot{ehdr^NVeQ3D@buM_kJbp8BejZ{7UX=-5WHnnfyq`zBdwq7uT$Ge7 zU41p%q}O9f$?!T9vN|k3PL4NaIX${gw{(pgd?kdcvA&Cv8rfUZ6benGlWY8)>eAU} zEar`IZZki#xz5}S6BRN+^r_*}3aWJuc9S7^xDq-Q?j{Rkbl=wH`Nn8%}`QiRt*W^lU=fH+wgB+3tXPS5CJAFnOZR{T&dQpc> z6KNp*l#Ed@gxR~n(|guEE%Z-PA)Kalnn*Ee@zoHz(RvGZ>Fhlg-AWD@0vBw;g6MR5 zc{88ZGHLPE5W3NN3wG)3J(g~+;DSw95S{gRPOnL?za$P1y{JP6Hb0TpJ^l1|a{>`L zLGc!LP0I3{*j`eXq0L`O=t>R{?$#YJrf$}b`aK&|xEaq&@$Ak>7*8Y9oVEDLaZmmn>rx_SVx$^^If2l_I~P?G?wVgk%tItv$R5v7xF2S+&C z!a)m`(h=$wy8X@3ro-R#=03n&L=DPbzzcEQ-Zxt;qRh275KDyIh1)h-L@iYUK`&l% zdq-j|qOJu>fW=a7?-Ha%R97VhR(F#|pY#8Ibkl_Z6CP?FOf8dOPfy`T;(L6PyW0)f!x~?0Z!2lbpYtP;QcglzBeP zxi%1)lCdY97qg|?#MnXqwOm==DO;xYAf^(!ON1taV&stlR9k2CIc`+9Tudx)+jrj#ZAojh zt=xS_t}FS%K3m7VqOQ!weV{%Y6 + + + + + + + 2024-09-16T18:09:51.165292 + image/svg+xml + + + Matplotlib v3.9.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_accumulated_error-2.png b/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_accumulated_error-2.png new file mode 100644 index 0000000000000000000000000000000000000000..b0dc2d9ec56469ff3926698a704506acaf848283 GIT binary patch literal 22833 zcmeFZby!tj*DkyP0YyS2B^8tqB$Y-`=@w8>K)R&6Ly;B`L6HV25$SFakPbn*J2u_T z8Qb6UKHnSXT-Q1Oe}8Z(o3+=PYpyxRxW|3pV+ATHNaEp8;2;nPJZUL0Wds5p{)^^) z84Layy*W|~|M1(3tJ|ws8QDAO+8QF{b?vRqt?bQB^=>*E+S-{~S#q=SvvINBG_kk0 zwi94yxA^w~Y*x0$?6(v!hT$YvtfgMqArQCfJ%4w{iD^li`Nta&-$*#-ZaqaJD`!mLYd@hpBlzXpa$mpeMT6%f#L-ff7$zAO$3JP;<%YHE-o-z;a~6Z!z;TU`kg#$_ z2Z^Agqfx^6&IOKWR)x5xpP zkgyytPQW4P#}8JGW+q}sZG^L{tLnTY@6pGY*&uF=ve8W`NJudlyv+WSt}ZC^8g{QV8?%Q!f6H*b0; zKk@$<5rHA9r$=WoQk1OM6!gy5cYM8as+$Z9es3_aUkxm5 zPB&B?&IJF^s{H)!-6e$tq1GbPK7_TC)8gKsw(RT4yTBopRK1ia?Y9!tv$` z5revRY`>bQSn6h3g5L^deZ4vI_R(q?v4Xl^wn`*xlQQD)@X-47(5AzPTR}mA-0u-w zxu&M(XyoYl*miU35fa(h*w{XzDg9`GlHc|=y<})n&Hnzr--|+=!$2{yIWA-TpS$=U zkXRu!XxPnF7jhS;wGH>G6HWbymieg!6Ptb)QH3USFSL}ihNc>ZhhvoU>D0f`q_VcR zp9yW7H|eMQkQXX%dB*+u>o6iX4e{-HHpTSxbVn?27(A2$=PkXe>gpY>bN{Luw0jyQ zbDz{+CA;pe$VGGc)_9z}aysFyOb7@d{wSNtQA=Qu;DcT3J=IlORIV9ZpKlk%=e&aM zub?&8vwU%O@kd-CuKN1Xy&&LSp92_T~3ADo)#+KprVp1jZ7=L zTcUwb$xtwys(bUEk{92}$;qfI?n>QqUrgaLK+udka-az*Hp`(-~F`dC`ZD;Y|a z4?8P-G(xwoR8e$H$bkIE-VqRjqUE8eXcJb=o{`37MDX+04r3d-RSJVcz>`J(^*{A;PIjyUg1U`OMo(W@c z$$b1RLH;kB*~*`JiiNYIkY~a>U8`B2?edR?tEyE{Q4`b2fW@5%Z$7KxiMDO4>gVP~ zOZ~kK=Az8C)-P_zr&+IG#8E$(my=FIT?2<Yvpv zS!&<#PfO8IQQ3But54?~!+Pt!5JwcfA+pD-4GTZMqD9{V-8sk3LTjW}{u_jnaLNcX zKi{yQnI1h`&pdP8c`+Uii^{l?vO8rpr`%gFa(K*)_uDHRo@4lX zklBd`{||CJn&PA03%pnAdBJz*HKX@Th#tRwUgRK9E{%$Mb1R`u^)vP4hFM%G1EW z=>878{Kr+7u#+@eW7pz~&HaR+BAo512v5Su!A8Nfx1K?CbRQG%kdYF+Ard_LdP-jv zu9~>6>$GXP;aA3I>Ydp87?s=R4rYU`r`(q^hzQ zDpg*N8w);aKiAAF;~WdnJ@qar%GBx{$V|PAy2X5_WyW&8EXFSWXrbA|>sG=e5q=Lp zna9fneL-afK_dh0xw#^*X@_M#tFrUh3tY;!c$#^0YT2MSfB*g|HnzPcjF#cH2Z45( za9vMxvr_ik*lc}i&fggEkhz(-8Ka&>&@#@AQSek0FHB@GEKgY(qlPsUy%Wvf5qC-v zuR>-$l+8A+crWSk4ZJloEBmXWVvV73LW!+zDj7S!dOsFJ|+XQiUiyxfl* z7Wh1bN_OGOmYwIs2{EOC(fAum?UCpQ3h(OnQQu96@1_!KRIOd^zBf^SJBnE>k2XdG zEd(3B8i_zH9GP1U9AA!+wpx~LYgtB^@7npm0)*L zfJ~M146|JHV$ufsx8HRGTd9{&h{-lqR>&j#Jkf$-*&HinWW1HAIibOxfu^Dgv$%3d zAR$r-bvaA@Sb{{u#>G)SH_lia;m6KPbAlhrNMmq)EB!{{Af3MlJ@M1!&>z>GI6ZgL zq@q4d)xHEzPjpr2^6CeteJieEf%JbJ$W2zz(a1W|TA02C zHlnA#c}>iZ>{3D$p$rs>?%H%2g``2J^`y!sHe9Ha7<!PqK@TjbpILJMeJbBVu)8-mFh}`4ZpGH$J9VyiB2XyAesawD zjRsw760MfBB$T<785J1ryw@d{JK4Lo@na|~HUh(Lomm$7&RAy@i%I3ix(C5e?C%-1 zW7p62VZ1k&qxpp@tr&*vbD9%sqE0p=dhiVTItV{^ufY287;YY<;s<&?Q#hI4W%}c%Ui!) ztCUOgn`WOKr@MQ%mb320poOsw)@$Qv<&z*F_2N?UyvM-CzeYsVQ1=Fd-OTQAQ}>no zmiR!9mh9ul=!}X91|vnLgIXo_%gO_}+TEelf zeW8=xbH*cs;KkJG-Dm7~9%nt>Y$UzBmVL`3O^R3+?Zd~9KL@fkmIrfb5!J4Hbo~5B z1%4o&Fjc-Ndq z?$AUZU!CXis_QmPNG{B$d0Y8&Ha6)@cIxHC0AU(2%jbuP*4EZP-=1PHW>k$w%Q3in zcu330&~b3|jIc2?2fi$R{X+ZX=qNlg(tg}hq z7n@5r4-jekiJ7<^>cUVQr^0a;`|)7u&2K5$DS`1!0CL1lkptPQ6V#cFd(iigZFshs`Lx zXRK-ncXxL_&r?35!W)c?jJORqnVGL>Yfrkb!N~cYH2dv1Mrr@pp{Vt~?+U;X3R;`LiB1Q!rax9f}xn!%!nnA6Fjg4+t zTdiGPSW}f7HT1V{r}90F3251S!Af=Fg0*l!`I~=@CA1Rr!|(<6T_L_F*k1Y3dX(5Y zD}OR^srWwF%>J5QU+?OO=0+puGPn%jUQAqk8csTtuW$OB&dQ{n$719fH8q}fr(u}L zIp4|tT8eIiAD^J$?EHLFB(q8oG9@rTbNshOoYwArr_}Yi_tRa+$LvJIC(LsAp(P3o zj$H=ie!9qOC39Fb+W6MfHpe4QY}n;?$mcgS?mfKkzq>Xn{u48E<`41J?_ch^{Q)_d zfcZd@+jIFvmtpFb*r@1vu0BU7e#IPnDJ?2ws_Bt$jxy%07~(eQc+^QH2#mewc2iW& ze#_E#!khl2dZk2x*|raL?bAMAmCd!w0TZ@kAAv(@W)yl}9hmMT8_qMp8IPDut6IJu+&-o_@1|`e;bDchK%bU?I*lNNL*O69Ue|zQ9#{)})k2|+dsTHkr7RFUw zt+76}xs3=UNadq)d)mZ)swzXSf==fKBl+ARMub*vOJ(Wgmi*oE2UJvl>J?YR;CjrT zU_Se%3*}x?cLSPm{?dDx)5f}DZ2tBxTF(i08GXk9r?|NU%tGW{Kiy5UQ&WcAP-9uW zyP^0D2?PSaKJ;15M%v)~r18ty@HTVNkR-`RWjN)#g@&e`r% zp_V=|ggs_hs^xtHHsUh4aC%z}uEm$?6|>~D+0s)}nZc1Zjs_-Kf;UFm5?=>i_#Rzg z4=?x3n40inQN>$Ozep8(3KLTL$-K}vx0H5zHj&_?J&(_Jj)Kqxk9YmOv&@-Dy!HzM z#}5DP{^>X6*Lns9!o_7$DcKOX4O5MQL=gB>n08=QKQ&Td)3%g0YGcRdPxvgIR?zi+ zmAu1y!BdqLiQBBF`&)<4?b=&`M`4OdasJu*!IA2i73e+r`jUZqQ;n~uG3(kz9%z*6F>RRDC~{IE>U?p3_^~9Xkua_ z?x6<-0l~9=I%T2sbJqYTwbkbK@sOy>{uC=B?Y1($g?m*W&}C_S-aS)#z>%Ahn6O4x zehV(IRO9aQ^XJd9#RNAd?ekn?6Gpi&N=x-(VqJy?-1AXBhtHYY!!8CXc#WHDNoh3k zv?Uvwh%Y0twI&A&&*(6flF)D7zaQDt)AO|r>Xq(DZT#>A(}m*oTVB+sox^zx4(b<= zCJN80jYLhXMzKiB@kqWQoR8+Cg75kVNIhg;ZMwU1b!3oL z6X*9X2(Yqy>b2)ciN7JpIrT0X6-MXQ90&PcCHn{kM*tyx(B0U8q0Ch78>~ZdVr5o$ z1TKB{xAJQkd{UprDzuGf?<|gS5-|1^eHlyXTwZ~@^q8^uM?i|*z}`y zkop)4V(K3=Q0$+nb?*lg7ocmQwRCoNI<;Q>^u0Q_ut4g{M3}FAqL^BEdz~r!t&mB= z{RbOU+85fJQ&9qk!NgzT3*;O+2mk`JZ?I_)Q(3t+GruKi?|syv(@XqyQAXR~&5OQY z-@WmZIwT1;g;LTE31N9CItilt;R)-lTenVk`xFuHX+;v)v?_?DISBJbMkAD8lpov< z!%Uy4+~@zMgmKK)QhC5m=ey!})q8AA^YN1>!E&M|C6#b@ui6uiFdDlau2H1dEj2QZpf2WtSrAunz)*6cnpgL?_XN^T`;AAs zdxvDqY?!Wj`w4FA(;>VQQ-A;f*-acL2DEgx2*iptIMC;Pk^4duN3iZRB=9j{oa2U{ z?wEW%C*Oz!B zh!zwu#ubdYGh^~S{i5r>|3jf({V&->fkW}=VcF#tqdW^;@mK50?G^!f9pYt^{a+BG zc2C*?eTm2NSbWncWph9d%p-Ga*_I@U!e_R3V)@oC*eBXrwRXYm$Ya_*ez-bMe^C&ATTQaG^nzi~C4WZ^geI7Y$r$Cg>GiH+9>*@OtjI)j8E#iE&e@+?Uit@-H;fDza7`nT zvM}@-M`>y4Ki{9VACGi*caJQ*Y~NoW56;SBIT&}M)z#JA-I%=a!yzJMmN1o^4#wv6 zmgK$&3+nd>e68L$kSVtM9Eb}=MMZonJ{{^atAQUcfB`0z&U?!d+xg>VaZsj8#&t?c zS(qJ{)qIu%rUVXMbO_7?7i^kkN*$)+t4jOghcl1LtUu;fNftg>R7hA>rIf_RJEYfR z!F0u$Iy;zLtjDIEJDBupZf?egX{$L|uSDi7&dxS$%{Ft!cJlG_>yl%^O+=9p0O?C5 zhz`(V=^^p1s}lum+*o2Us-CZhDd@C5*Cn`7weH&g{TaQG zP@K!o0$Scb1n(7G+>XHznZf8Ts4?8TY~ru`IONdb^VGmt9@dXn-_Fp7pUJoDr0?)#)VT;=O zVCPzI@ZOb-7m3z>ucjw1J~jnFWEWZV=fTrCq$lo3$5bR_jns zeU)XTD-9bD&K5pj-nzoaw>g_Yv?}$m*?XaQGgEm03WGT-oIlu8e==1Dd_=q}D=YoR zNC^2V@IJry-hQKC(o71Fo8gvGjYA(=G;Dn6X6z4v^XoDZ#4L<9eKG+0UItv}q z6xNcB6Y(NgSI<|r!cM3W?vzfEhmltSP$9Z;DxNVZ_YyDR)a@?!L7JIc&PZH|TQFTz zK%{+b6`os^X!W{F*y)*~L`gJ(mrPyZTNVuZGjmc!v7BsCOi_FL`yMCz^WDFFo;-eh zAIm#Hc%+(dBfOSEw?`j`?{rVG^#@*HT+N53+EGm9fwa25kN_!8W+fEy@VM6V%=&Or z+Y##PxVT+1&Bh$f2PN zb9!el6q%Q!-AmZQr&i{dX`c5<+!CLYAXz#-gCMV-r-KG+$0@)WDBnN&)3|>7RuCv9 zZ4*Ls;dN}{fF5OQd!s*-Clp^TQ4k1AKR_EIr<)iA4-ap`k50`&1#mI|4pT3c%Y{?(f%o4t{dmKGi!{?uSvtnpWeY0nE6to z@Hxw?a{b9e+5>&gso^e%AkMgevG0_3Q8Y%KHyXwlPJKTIx|@W|P3IG{wS({5T~9Ae zCAayXukuST9`|3_$yBYnAwKt+_#4sGRJ{+RlW7nf4UCLlPFnROJxazVBBbQRJ#-X% z6?QSu{m5h^i^s#M$x{xteWv5qJW=@Lr%C823PXRXCpk4eT{%aSUs**Z^H~7-|h z<#;JV@XFh23$s#^F=ga=`b z7rx%&qZb5ATURbQRpdYGBpp#aj4palHSlmSG{`VMnD2*Ft8z@}4Tz>w8z~oB(yFSe z$?pim=^R<{NeTS8uUzY4%T3YtrKGLAXul_YJF&X4Fy0I~#cms0nT(G5%2`CK0Tj&2 zy)RfdM{?nD*X9a%e|L!stUTSp zBF})2N)zvyPtw8rsz47MlL0?56!XsW{h^^2&L0mcF_|RvvwP>DSmz#k0y4UK=Y0Ti z0S1ds>*W?cybzi*!nYs&a4p8Nq$^ISqhe@ZXE4U)29Q9|Q*{f7ye$j!|? zTlZSoo)fMoV(wiy^u?a+4n9fMYMV|wS(%N`)BuDUaN_YAD|L*hruq1oYeh&Q)(EaCcMXvLUp@*xiem-d!}&D|H}90 z2{a)&Li9-iW1g0okyax`%#^&AtUp-kY*}zIN;*o zm%m>@K^>J_z9fViD5w!H==Aa;4hph#`Pi1$R_0wLI%Uxt#=tR6A8aIjWZ#X$uW=gR zHVR8M+B`}ZFP)eoUeAR1%dxs0b9`D;3%$a7Qz6o(pOG*>vbEFczs5>| z+g#E>9kR`^l}VxWt@2CWHi8r*VNJ7Asg#B8&J$Shfkceky|V1n%gcc&DfAzBuTOzO z9&|e{K(juSU1#`P73Z0TQ2gLN&96v{JcU>H0V7IHyN+or}w4LCAh!Ht?rjyOH!` z>74wG-8#WH4+1fHKig+l9mp2B?S|}^Sk3k`@_5eg3sd%|mZGWEC9f))~W2csI58nGTJi$pz(FUReRc$6($Lw7(9&(wZ z`g|de@0lUVFX4z&Gw%@~)%q+6U1#=J2=K7}f6Eq(Jiw21R~YpMdqd}hCk~ojzddJ% zoww)8Ta8lx6ZB1gDDpKNzw0xX7LxrujP6|-OGJ%)mLZ;m9gaqG$@z1iz877ZCQK}Z zzYkx&NTtbq3StTkK;$`@PSiaF?P{50>F_RJ6mt&)0HU7dU~?(H&Wd+^r;bakrcv8i z>$VQIN%`7_FE6?F(AD{Th#`5aypNDe_IcWp&0@G~k4O+9kXZY$##B<;_*7CtHp;{w&B2f(lE!Fqfy zfvBn~lsh3|VaAYbfSid5B4Ob&8(>`-%=LOvd4t<%b3nsNH(%XkFo&Af>y)#rt7}jT z%f(m-rE>r&9Vh6N1Hid)KXju5D3N2)R~zRvDs|Pr9;iuIMmAXacd2)86C_laXpyRC z3t_Abeuas0I#Ns1yRm3yE-khi(#nB5D?wRmF}lBv_eJiNfX1f148X2V20I}N>Jpp1d>=uiLj<<&%h$Y2NT zKjmu{<=d>JL%UagxMJd7E%Le&b3sYPmYBr?s;!0BY3}SqJ@@LdMsqa<$#?+nW|E=O zGdc{RZ|m!h!^d>CW-@)8DWaHloiftWw>UUH6dHHW%+0;iB?l_a2bK#VIk}0&0RUE% zr6pZ18oh3NzWoNTB^3n7$^|ZOa1U(`>4$OJEy#g4M-?H}>a>4t_3*kQYl~Y|t_)%~ z2LHhY#S891y*#7|1(HaiaC*wLccVz(NCqfq{VoJcBRy+u3VjMjGc@BcMD*$z~!VB2fIj z&B!pW@jzir&_`ZsySced4*8QYe~WP2#y_qk{plOwvT-D#XWA1L|7j%eSc$>RldmZ! zrB+?-O3tfc~zY1Z~(VJ6<%~c+}awLlyviz+u8$I@VpXl;$g^IKX$9~kDOS&8;cQ| z_TL-1GAui4hT?>yi>+;JQ(Z)#eT9?BTPVJMcF%aWhmLOWd6EVK*q6qprWe|jevib& z-gVMqRFR}D+lCU;$+A(MlQ^>06*w{DFUZbKbtp>kY0nqUsL5h{SNkps{(_=xt&kQ3 zL0j1pt9EJ;i+uBYsP_&TBU;5QEiH8o3G=H}PFh3a!}!-_HMv7Et{Go3u(33&;f*0$ zU3@Y+((hcO@ZjzDPlGLPbhe`ahm=5+h5Hc&uOb3Dn49s~7f1ZMT0y zVU{~%d5tG)Jj})A6R>r{;#+dFSt6XxL7QeD4Nqx>0A07EkKN zTI&5Xj(OV`FQU!0xdOdCXjMWA<2YPwi>6iHjq_4TGLCnXg}-G+J&tkoJayKi^ic;} z+n?qfs>_IT{>E(G=i z1Qnk(!q_-oT)I_Poz?tendPp9dvGPIzjOv}>;}~%liWp9<(jYAvw;DT+H|%+$YuA)+*9Xa(RwU}@dWLDqE)e8i`&|5qsv(>@VZ5wxQT_YGv@z0zPPr`- zMgB^nu$&ya#SEDKq?SI{LMRe ze515Iqp1ZQKSW2HdR#arTottxX+95NT#k)0jXM^0ieX)49ep2kP%YzJT?taU*j&le zB>zNg0-E=UiL@DtiAJkK`6yf%b44krGc!VRX!AG6ch7-1qs7nRQ_m9*Pe^}Hm6QDG zt=ASy6}5cLQ`gg@gd&q29eJE4JxU!6>PDZ!?Ww#>OG_|3_{w`(kSokKT@GIW^F#l! z$RD$QqWd?(0*F&UzGm9g_eQ{WLKUBFpIGdGcYxyWW4O(mwcuYW7d`ebKPVLF%U_Rq zDC?te#>sE8qD2_40rl@qFp~g_*ORL)vR;8?8yg=F3BEAeVl} zn9uZkTM1U~^#O}Z4=Jh@#Zr}s4>{{ZvbAdyAi4nQ@HRr_4J`u`r%c~`+^E*Xl1HMA zvTJ_#O79SwObptQxiO`JOCg1iXl8= zy0jP^M1J6z4YGW8c({b1wfd@Xz5?oSFt zNo8q@#DSVA)wS2N26S}$;+WpV!TQqJN3+N%(~lLnA`!k?h8sW6Ce*IvPIe4{sb%#e z4uaV>w&p0n&xYO3pV|K`=N6y6dvp&&Jh8gnucALtyme!9GMtdg$C6!IUbk*yx6 ze&Cu2?jEJ2a)cPp>&0Gz%*O)$NMVWU$_?<`K!vA-c2k^z1$o_x=1c31yS-C2%@)*> zVq)hY+7d^XZKO{(nO;9VnSEYTl|35}&@%ZAt`cs>qoRMH+ROapY@Pm}!$IjL4jlTl zv-u#jpmYHvGFQE6zy{oqw1B>nxmii?TE>f|Ps=I&DJ%)42R$ByTb%JO?Wk*!v2|Uq zpQ>iATOj$swFTQVwTIu*IgzS?aMH4SR3He1Q(w4q)svEQF{yogN7WVYD671`gLwvn zdHm_9&l&N3Jf+Z!F#Mw&3?t@=TWQZyFV;+3ab2ln+211{ppLXV_IE-sO+NhfOBzPz ziW(W8tFy?oY1Yszg@n%G_}`%og4Yg5eA~%t+Mqy`CFGcq&Q=g6sdV*E;O(CZ7g5d` zH&?_R3mvGy5s!8kG55KNojNR***{o5p>Zxrn;96#H|NElH9k77<0ebi(zVvdVo}qS z{5}2=>iAWyZ5k4}C@E78Dr`wfjb=iyvZ|V6ib600cIy&0c3-MA5tOZVO^)0~9XFYn z0=&HufFWfR6uKOuvR_rlKvk@q`$`yUg>JiUVgDvQ=Fi=R-E3M_qSiA)3R907-26ra zLcuK}`u}FBdR}g8SaUdY6?Bhwp!q@4#IRfFV9p6MDs?<{y8cX>KC|m)oYt5*YK7n= zspEJ@MiQ4;j>`aSlYwe<=jqV-*F zE;|StMFYzLZIS$TVPRBA>e$2{y!B8C(GOg-MX_r$ zCH_umJS#$o$Z}P#m(d=`B>cTm-ej1=*ZtoKX=u8tTy_xZRnDBC30=a%S}+^TQe*$j zrqu>K0SB%Rvr2kTsnsNs4IEtPS{3%mvQcbMQ>61f{5a0VO4?>|{(-e2x^BID81>-C zQuQh^IUH70(-q=ntgSh$s`p6$LoESKh8XexIo>bh;x+=azO=N2WILJiAsDK1;nwy# zdjOCNS}eAHQCblXN*1!X@vx?pxQGY}tv5Ba9~`p;K%z3>!fnWNxU8`av>)7QNvO@} z(4LXTis3I?+bN0lvceqH-XqRJWr%0-h%^)G04-UQ0mqrUC8*dl$CH6BYN>wwy%g=+ z$en*S<#PyPl-tec>J(b)&7oYKn^}W@{>Bkf)E{iOPn@hdZj=?f4GcUL6HC3uH!R>C z>CX6Z#x%0xZFNraAG6+iI6UZ6lU{w-iOeVotQ;R7k2uOK#0R9z>BgvYv~6pM`v`nH zD5Obm8Z?lb+}wQwPgB2?mzTrB%2w9C457kIAl5e0k9qRr6tSoj67{T<%|Riwwzh`t zco`T!B%iVzun0@PQ&Lk?r{?Ejxrl>hO0)0Ws=040vh(PdqR!p<{=Ak%IBKli?(pd7 z1tTZX$3O@gp}R$1#o>%?YDXFwh*aP_*N^2o(>6s5|D7lA6Gg~aexg;Y=SaNJiM zybWqg)bdqsL4DqIc0eS=*PNUrX=B5p51;Eb&&?1wb?H9fwB)XO&-B5v$Rbt8IpQUSGtCW^dOX z;itSfl0i)p*Xg2&^{&Zp^GYN6vNy~f@(e_|wdVq`R_CDxtO66j>S$?LQ!p8d($7fr zlmX=$fb{2+yG$PA)Accbk>QHWTG<@m@A$n`|QAJeT?4^ zkMb94`oP}$qTKdQibTlF(nU~mQPF)=(%4@cbva(nK;yHXLe!ogvjE|51fE*+;R0Wa z(Go&X!Rmdmqxo#UI-GzhK!3QvP)+C%LpAGph?=&?C&&!f;SiWmDQW5HWPchI$GSRJ z9sxed-<3{QUG?Z z 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 z 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 literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_paulis-2_00.png b/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_paulis-2_00.png new file mode 100644 index 0000000000000000000000000000000000000000..b0dc2d9ec56469ff3926698a704506acaf848283 GIT binary patch literal 22833 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 z z0;A8s*SSPkT&=0n5mJhZ&3gIPaP#PExkaD>JonR`Dp|%Tz>`G(dVfAwN*atlSab37 z7dv~22fsm(LpfK$+oX-^L2DooG1yz_AFzM`@*yTB2%-_h31??#O$RSOU8P!252!M& zhYK1T#o9jKa~u9pKHnZyyRv`&!dx@ULKn!T8Q?NdD;wO`d3K8mFH0@8QctS1mPozT z*Ur|kR~A<9Y|k;?maUX5ILB{O+zjENDY5Bc52))aF+2QxGx8B`GF8 z1dFqlg9e}ws)z1ho@G6MF&P{jOfM*S;#Xk5)bj?#tj5QO44WIFltpmViY7M0`CwHc zk#NR*vq3gkpLlg-+U}1)YR`O8xL|0}*V}9D=$I}MLII{ehyquOHhKZ3sYiRcglRT3 zQXdFeA(`lGuO1(4C`w3R6`KvFn+@g^z3y+TSUp-y%z&B%mz=}IZaXP1{-VQVNrcrfirLQ8btzH*g}tRg4}fF` zg702WjVyP>(-D7x3VbUot57O_JtR3#RGuBi8*L{;jUyg0p`C14z(cB*mTag-L_WSD z*G#R|=3>wDwB;|LxTA}Xgjr!IW%k+eC;&;*^e7(Tn|c`kF74uH7neMEa(q$w5)YU5 zVH_A^)(Q@IEytvyxx_^%Ok`x*NKUX&VlJvSYdNqAQ$<{6{9GH7+gf+D{F^q<8b@kwMT{EnrvtsBkCL|(3IIj2fI$3khf9zjnF8if( z6H-ORH$Xf8UiN{~;6cmnw5G>gkJzz3xn~_T){6e*x1!9+>u`vLj zCptPefsVZc4!_|-V~wZ_cnkmlFhFpGpea@4#V~q*-ozn}MOX z*h~%j8o@)r*6R`5X%rVHGjU6QzU>ogX@Y-EPhWqBL=^Y{_x)jGR?V^x@K}e~46da0 zJrpc9TlQC-L6=;?YiJ!tRVH%+(9VEL55U`{!1)o7p|>C(a5}E4n+X;U%fa%1#)VsS zbU#N5A3l7T00mP_xFRxE}yPm+1QS zpOjWr^+bw7y5oc3F8rpPh6Cn!J>VQry`!6()({Jt!L60R?gdB}JX9$_2H7JALI9^} zZrO!`a}Qwtbs8FlC^junfIV((< zYWB+qlPAC?G4k_A1AmDI-5oTjmn1_=4$Kr#)NTG2)@DlUNOXx5kP6(X-I0L8$g zWNRL)3EVof-0EMTnIA5tgn3sjyAEb+Nc!TCfU$ysj_xhU?gVOTYNTwMQjk!<)X~`4 z8ItIEd<8xP&@2XI8nu9Z(u+bP1gc#ZfXEEE?ZJ)dJnc*N1sppy-CS_T`x}$p;Qg_& zw>MZHD}PVU`4)Ixt$hzMNl7AVYI#_V`T6tGrYuwO#deY_(JxnF;4rb+ab z2nG}z$o=z&TDf6i1W?52E%&C4d0m`!#5@Q#PV^x4hNRD_*LWFl6$&E4DIxQjp;>QK zAHaQJ&UF&>fP~Rr!2Y7(9Z+u228}j{*Xni;`ahFFcL(2AKG^@D#B(jwj@42|(=oQ~ zGA>%h0C^ssIr4$IYKAwXGe1SgoHVmC_;h!7mna;V;A zNQkHe1(DVT1oRg*?)>1jH0@2z>gqY@UUtRCqi6)x4S1HDw{E>*)7t(;0I=ac4Gm4> zuV0|Dh;=6jw{~)A45?V7#5ZRVI3TIiB1zP%>t`dVKl;DP=F-%#*G`R!-b3A z`CWIH>LHRi?{xA)2T$VOxhw2ID4tNW3Bm}>L9|shaO(fMMnMr29DFr2G*swhwGg&^%Sbu^3)FI8OmqiuLH zu#yHlEKPp-LS9f%P=?H@{9!!L$;tUASNkI92K3m2v55dB^MR69SR-Q8K~Cc`M`+ZY zATKJ4fY{Jp`U=2`^HQ=upX)9Y>{z%IvcLk&Hw`G<42TTfg_;5$tr#G^oG$<|Jg0$h z*N0uA#>(V*yv&GlwE%?V#Pxw$-r8!WB_bhl2(cRWG!d9mzF$1Mx2jnffK`jTz}tOd zx_@X7v;=ehed;`qKKnZ56+R1h6d_Y<$%)D|bkNOMr*K;1a%Zo=iBPSa=vB=l6pa1n zbAy~4VND!Q&k`0bsKtRngC<&{eKd-_N^~LWV z=7R+pNqiR}Q=a0#|C?!z(Xo<;F7K(?UwQ;QbfU~o2E!VBF}NlVdjHmbm!6_21;sxM z7aLkOq_W0I_nh-UjiHoDP%svz8J1)wSYnftlRFZGM=MTIV3?QMQhKY6C0EnoV}jYe zNK8uu~xROU4e6ep46Kh*Gv z-}l5Uoj_!|&B7841g#Q8Kq%>!M~Yd1{s!Powp`O`WEU9s-08pPrak1KG59Z4f2fDU z8wMyIycUCtT)BKXPiyLW>QE@o*47pn6|X}i2gs2lFtGdIUw~lO-oE;3)KXp4YXDi?<@vO;Vz?Mr`}qdCEv;OXg!vO2w|791GqGUw^5_3{Ft5Z-iglZ~yb z!V}!ICPR6*U~=FBSS^%R7bu_w--hJ<8zgFgif^jk>Vu7`$Z|Xerewl-77ui@E65r! ztBQWQ`wZN=#FdU~C|wQMe-$93z__#LeiRWAVG4>h2yMymJ_T5t3qgr?r-xgpJPA1u zsM?>f%x#(+AZI*Au^Kb&deXFT7Ua>T!S6 z%ckdD;*yfw=0h9+4O+g62czmXs4H3r|Kn8;|4E^S-1!ToQ1`X3_D`T{a{E9JJjtny zWI1um@za_Qu4N`AT1N`bOTlJ5fgvGxn3$L*<-Adf%Ku9aR4Ci|Kjc8fP>BU4)Nm=F z4?)-@A|$MbBG(_>#DGdtp~`}{XUr@t{8AJ-dj}svj;Dh}j!!M1o`LZS9Qa_bZESB3 zM%7C{ud;K1L)$&k5Z+m_I$4_-LdiR`wA2FS!VTzP060~-dJ+&C${-*R10G#~K}V2; zLEZmeO7uMYr8rEie9VyJ^X8AK>NyA~H}as4Jl;cMi{`$nMkQ$Q1!-48Soj}pj~XwH z!q~LrG8ASOshT75a>U(UD2d6CqOzgz765YVnZ_&dbWF!99zZf@zBuakI)u=YshW8m zA^VwCccRJ#RumyA>94n#SNYrzb006BpKPEcGtr3`_7JMnE9{vO;Lt<0HegPH#}D@g z*E`T5z|{Q<)`@QQG2%axC@KZ1!%H*_hoe|u`~;kfTFp?JLw@jwd&=@00K!cPfJ|Im z9BS^NFjg}!g^Gm6WA|yz>9#DgpNKh~#3!tG;pz8yL&25)Q!JLYF5v)lprg@K}L&;BwhEnDDyr_{^>y3f;Rg_X7d$Y1y2CabeL-*rewsypjS~ z=}Uk)?U#Eoy#eFRPES7qd>ZMqRf1VHS+|riXHrSb@+xE+6eNYhp3`Yv6Y5ZK7SN%{1aKS{mB>O8 zhcd6oV)XNWN!^U_!WO8w`-)6e=;-OufSkbwk~S4$MdUq=&+p&k;?q8K?_c(IgA5J; zxgIQo(!e19V06sP%>0wBK?a^!6x0I_$aMTTH(wGat*bSH5m+;Uz6{0MncZq2I;J4O zr8sR&sAekrg2@63Pmf{yI)Lh+6r;cx;DbkiI-p!If;#(X1dKCbZtLa#5axb^RU-Ce zMmArM`Cpx`WyNHfy5zU-+<{(z*xY#FaX?5bs!@=WD=H};HoUn1*DQaEjCO{`UyXD3 zd75ZN<^42`2?gEns-4)S1@pP638MtMT({#3Clrr>1>b_N3)PJSeb5CZncB4vQ7gTb zF%bsni+Pn)hbvkg-Y)|wprNS=Gq~v|Fe-?Ez`$FOS1Q*l+FhU15E0q+qu2HKe}c`n z2|KIMYVslSME}?O>2OIJU0@!d_V3Bjs&q%f&Ikg-ZUA)tUMD7Q1U$tyx(^%!Ks{qr z6ZVI}WE+U*Q6vbjV}J+F08PI@j3K!i1c>D$RPcIwdI5p0v6y>nrIYEX27!~Hwcw|6 zC_t;0OjcEc+iHb*k) zVGJH0MS&8UFN_7bzl%Q&Y%GGO9_W{00g2?i6ZE8_yYdasNHIM`2Gchdk9VoHVrvpV zDwe|g6#mm|m69SU_-#|O=_5_xJo1y>d&`0qJRab?K88kCc*m6%+JAZDlDG10Zte&g zVb_1vipxX!^bl`KLZ8uf#_U-`nMX;0kSyu{O=l;e&q*SaX@v^5JFI>+;Mg25yYe$Tm}Kz z^q=?u`MU!V2}Nzkz*Cu20BJNZ3h+S=6`PUGHiwluq+V~}z=aVs!-@_F4xRj4HC zz?uc+_jm9FQQ1a1f?;}P1t^C*T|hNP!wU_ps*2u%Ej5WwfK$df5flX)vmw-qfm;2c)>dqD)rd>Uxl1|Jk@y`$4{9_qMN1}F=b~B zy`)AWjFM(5ib8f9HRz^U6VXd@ZN-e;bRp4o6*a}`LPUyOMkCa^&I@NEIvPrK6goJi zuwyVNSA=XYx^ z{&ACFuKZd~P@Q}0oot${zS@VO?B$C}<0nlyGdaovSAkn~h&4Amqt*XjEM-~)QU7jz zK(_z9R|{sksUA9O;@4uyx~jf7rA(OrxeNuwLbH|qzHiJ=3YF@-Yvv3g0nr@`3W@PJ zXZkF+ik#1LnyPqd%`Y1wRsmKZdex!6x|(ym5LcTfmbz4OG~4GkU5*n#z`nO zRgix40+(YCAJvGMahLC?E@qJg2|fjG(cJN?Y{6`UP8n`fEqS+qz<}Kh<##%|%``U} ziX~_4L+DW|-yxTs6{r^3{@Do^V22kD_0{7qDkXf6EQy|A64JBL@${nDs3;ZVqCQRP ze|BKHrYCMSv3W{WRdx1Xit2Xl1X)LAqjCDcw~mhq}N zbrW`#1g@#A?JduHVIlT}aQyv7y*=H+gZ^JP*tuMM6MkwSAfRi0F}x{4{3gY z7j27JL_tAH{UU0NG+fs@?1M-eho3KdEa1mQWD`u+YTELMFfr5<5@JcYZ)afs`lA(2 zPMx@C&j7XHllPM# z2fpy<-m;HehiVw9apZZ9Rae(DGwa(Q<&=xbOyA*{xQ1?ariaqaoV^ zgG0QXnD@;%xWE+VqTwbz20qUmczu;ItL9uEJ0_>MHk_XfcB?u*2N{gu6{gI_?p3$` zt`YC@-rVw-X`Yxn-xg~3{A_=AsE|kX^!3Y{pI2MR%-EMVzI1NP&}*ema&mGxyVuy0 z7}M3Yt(~qy`Yg%P|EG|)?^I*xKeTw@SVDy-kdqrjF^=JhqmGGl<${eTr2QrL5f^?JUQ8qPbzGmdt+ng z^GOBbX$O*;@NXK;Z$+xHWw@yrC2o7+rozFem!!{%`MVr`^0Rv~vdj1qfLuJ6(u=al zR=%6khmrA#iQeHJx!!B!-Cr;f9D~}~JQ&*A(h~E_`d!srD?)n?tMTHuFK`_Uw_mkt zJ{O*T`V}x>Ph4D_KS{^u8m#(;-U3ZS!<`=X_DT4-ByHW@PGss=#CNYk;YmkG$9%l1 zYUMmr(~O+!8SeQB5UOIR4@*wcg|%1C2JV6hFy`oY0@|ytpQa7{h^|^ft+a*f%cy*w z-#J6x73w2R7efUN>FcIMinjCVrA#dG>I^!j1f~y(764jmM?gUS&L^6BwlOdXBA-#3 z_8mBIjuR;i=POTHPG+(a;#WjZdO*eopQ4CClF#zx%d;H)R6?&Ck=kG4=6ej`g&}M4 z{X>~tPQkCi_nBfAq?c%BpySjgOelU-`&js+$m~)#J;GEXI1ZrdhsNtQ76%0lta&{> zFF$|Xk09ui0X=OueV!}2-|B|oGittQ4kV(?!oBW56P3GbbEjYQ^t9Feuw>`6=J~Q9 zWw$I2+a$OT$8q-_#ooK$GiuaN=f;O>7ZM#OO;m?ehvUMm(ONeM8z(e}h5Zd!ARjai zDAK@1GUo!H|Hz^~H&@S2-lQd}E;Ppmi`v{B#_J1D(Es-;YHb+aQT8xWUN0s){1o<~ zSOk`e6*~8%jg5_ocYwcNJ9|9ox3T&0Y}ue7Bq@>DX;mpds70mY<3ss9`3*z zEcva|WHEtCByFacp{n-vSRqz$>i#4U4A4luFxJN7iPDg^93Od(cjGLd0@!-y4Y!Bc z{Jw0Jt0bl2PIYxEHO;*+Bpyz15`2eP!^D8jd5;2fP++RKJqJVJ4e-k!hWU*@d^n0` zPuvmOOQ|oCfBg|7*Ms1Tb!q?bZM-;@f^+(SKBXS~x*r%(r-X)gvA71tPAcl=A|TN4g!#u567MDHfUlsm7lH z-1_?Zu)4xTVNQw|QAUVHwyR6fkuN#kAijS!r$M^te~_7(`9(&)BXqS}=zGN=2O*Zb zSU#dq3@MaqFRTtOQdF6W5d~@@z%?W3<7IxTiQ}C+41`38jpZP)a^%=GQ_L^NX0LN; zQ?YY&oWL{=N87*m*JUC$ggsea7v4f+ztqn6BCmj>bdow2|J4Y^hdh7r320B{@ zQ+g6vm|5^8h<4)Yju6OO*_Q{DuWJ}71Y)luA^cg{E$wj8)eUp=s{Qmh|61~Ol&Cng zdDQDH*UxAhAs?uyK72br9f&}!-8*oS@ATRGD{fOuXp7i}cLV+ieu&9s!`4n0VtN{2FgW&)F;s15PjPhL| z7S%O1U4w%%hYVm1ogj^kjmj!2MTDZE40o{YgM;B=VQ*_Y!FrBDxw*R+5(?1qDjl+NCa(+3%85Q`gtm zzXt>a%w^S3y=>qbQ(i%Vp{;FXaWOSsxagssFtt2pKyx$C*!Vai0)jkunhM#=25Z5k z%ZfQWvzC>WB_;QXnVN3x?fnaQgFUkAlz!(Ru-YrqR83B3dNFvm<(qOmZ(>Yi;L?m zHM>h^^0h1_#l>M}cwecz94$yFDx%NM&eEt?<<1&=-(ML&KRps~I{2^mM#jd*b_Npr z%p7=t%Tkxg!vS;`VCZ*8Or)RlUwiz4*8(KRR3l8}%z->ii?uT5Ljh7oYaEVXzt>vzDOot@!%rQ5dN zl0V*El2TEH*su3QCnQX*G<1hzV_;+Vj?3{6?oAd42L-+7=g<5K1AjJanhAx9i7C9? z>YevvJsZmtyGDanyUB&Mxe_lNj+i*pBR+0-clYM*4v*;m_BJ{rW9fj&Z(>5(=Jzgn zOl&MJzYmY&)<9#)rSN{}^P{JrZ)-a5=SVcy-fD|LQsLs%MhAX#cjMA3Yh6|Rge8pm zjik;%6bu}kpyFc7^lkXJIDRU{WbEwNem6I6OYYl*e2*7Otq*5X`LgLR8}9!6c-?r~ zgYUjqSO96TTZM+$HlM=P)zux$*Q5A7KWy_4Wb$XC@ZCWCzQdzbSx(a(93GBZ)Pkiy zpVG9|H#hH7)%ETULL;?vbnN{1FQinn-oV^k!rh${gp1L|&S+P6H&lh=wrm6;_m6@C z3UD*4g#{T!u3Ijbdy{E=-YJVst{_JKnPz(Tq;WdV)R-%^TpL~;%noGmruz9okcs&Q z;EBEbvMC*k+7Jng5JrZFBXh(eW8&jQjE%{3eIGC1*&6=&_6j5zTpvkENevRkb)~vv zB?!&Xp(-ajNmu6W?JaIuupBrCB_%Xq{e=RNH`gQiw~|dWR<|>Kd;0ni{gCk4Dl8_c zga#*5SS`gRBp9uZ!TohFEfGO%ZEZi0lFl~RlR~IfN>-LUk6-<4ZcYO+icUl%tEEL? zZf^dg8U+Gkt9N`H!%w~1q|&%Q!K2a^9AR3`I#fbJ8DU}A^0p_BSluHgCMG*q*WQ7F zFtDKLgoNIgwrOZ)mCTT(r6nU16GbJZ@5#xyA=yzG84;0@a_RPbe0(1%DDa62^7HX} zSZWW34-O8JxSXk;ACG;Lxt#Zm%i$SZkF>Ui(k&b#)3yKmoWgscedG``MB+w&$jK6 zZQ1vkHzfN6+^zkh^E7KiYkInNdM~rdfZpxdCfNSixVWwc`*n!h-EP6|Sl*jJ6yhFm zQ>nJC$sr*<^k{5Ot^wJUJeLzn11YSNWjF5n&8!x{jXSdkk`Ey{QuQ zxcFUqk=*?Jvti$-SkuhMW#a}AY<0HF$UFOaJUl!nXJ;Q68PQNsP>x#fZFGDeoxw?j zY0s62Rco-z(oZ!uHV$7JbvA!^dc1evj8{!!vrbuMvh(rb)6vmMN=~-FyD$goQp>aj ztYgN(ffXcyPWvB7p7;w_*&?BD6DdG);`F+)Yq1CW{gRRQ%iA)(6suJFJbJ9Ht#SA~ zG!Q(bj%3H9hGNs3++FN8Kb-Y*aBx(3-8w)_hSK`Ff-#ag>_0p`J@Gt0oWI3mLGWAc z3}p7avhpKOw4SdE2gwmzNlD4V!UB|#xYfw!La;8(&+Aeam>3aGng9G8GqZUs@q7PZ zOd?AK$sU8GW&HGT3zDayzW&$3!cUR>PaI&M8Nv{ekc_)S-tnCMB~?>Xt1ubF14-O+ zy381C4|w6{_^w)w85-n#YcQv(Dh8|werx=2DtqL}$OxQaMNN&-zqn6cH>-hZJnmyB z4-dEJjr(OyYK;zLyq;G^8-Jsnr|_AK5L_4R;Z27#$QT%+-chSe%wMIuE=lO<5Rr<8 zK`vf}gDZK@#8mZ1&F6L#d&y&;mhb+c8V=(n(KrnAUdt;h`)5;@Xg4LG@IOQaV}zfd zOXfIT$-)o5Y$YkF&>;g?$+@~l8sDB!v&>r)p{Fc**tc$R4d%n_ZB?j*;?~x*h=_== zuU_d}SQNQ%WWQs*v|UV&zy+B`zJ_07Ud14PRDqD~Ri?bRbGiE!V|)%esG9_hxQbdB z(;Js@lvDoU4TRMA+%+jS4T<6;KT!p1Tpi#9v}$XV0uf4N*8I;AN~|v8|IE6yoT>~d zXt{mf+yP*TMFbsUKRI+baZOMk+|qfX74FFanZxk>5-fp0(zO{4E1>mG+nSbl$mRpS zs^FRp1CQ-ADV$$6^BAf)0?8b+1f=T=XX7;mPv55W^l8#Vq2v^|5d>nQh(PI&dYJMN zvQ`v#G|ld{$90jxHO&3H!CrR#Ybqx6YZBomazwudgLlScu(~s%G3Ig)-wgL?hpP?) zT&>}Z$pWZ^Df~}=fw%&=0u~k)m4HCn&5eUvwTy*kxzbQ9eb;V2bUVYdY*fM{MZ<-2 zD2>xF>3#)d%gvE2p&!P_t@m`GID_*vULZ#-w5?%CRu2_Ijn%eJoz1%0b-yeu0Mk#s z*unVeHvR&`b9b?P)n`pG$dcXr&WVben$zQg64W0MqYjUk)8HU?dS5S27u~nA97}mt zyPungMiR+@O#}I+EEW>*My%Xexi0^Q46^|Ev>(UgPS*}>u-s8l79W76ciM6JMG5a?<$|Pz~yxK z*y4F@(&3M|vAM~5!?o;nE^~LeF9x8F6Q~GJR4ei&Zhu&_08t z18VF>^)Mfd-o!5j4lXX}yIU9@US3e2Rqv);@eb*|F%IVf(yILvj!2idQur3V@Cn9w zIgsnVn_rExMaTxR)p$^C6tM6gS#VtYar4EZVMID_X zP>XPRJy`7R?;^6eU5_?qDh=H{JeW*}2r@kOJ|)noD{j}8=(MDO6IShcZ6hrsb9+!d zoWyL3oXTchbnWwk9cHUdF;G$4!42K6d`FST%p2`T)U2~20my7d&DqphITpl7$VZ#| zxTh42B0(E#r?5~@_NpDh#1EffF$JxCe0+Xbt|{e9>w~&sR;%#?neZP#4YB|*cK$$O zmd>cw?}P*8OugQQ@Mk&m$@w|+|G*3*zM&CeVMbu{7CiP#OVldA^%DCM_??|OYz-uL zMw5y$Ffx8Fo^$}{RS25F=fMr^8dMUiB^LX#mt)HeyVXoPNTjF^qF#%u$zbY^iHfdg=cF6Y$6n2A zDx{=lbV9_;Rx;nh_pl5N3;PI;a&vPtmnoFX@ltqwJ-dyK4N_UbsM&}ai*yE0G61br zAjp<{pS_oS?yXy&pFA-|R$H!@)_?Egl`U6R7vDdhhv71-wR&-ajr>SP#%Qy^0m<;W zGymVTCbmrfGU*C)x#%L9#4 zR8-W<9)TY17c<#OFa|{ffTOn{ws3gd>|*B+4{|{+WwTyW@R&>^UoyvGbBU0ND7Aaj zE1g67n9Bl-p3Mpi2loOkOa@a#)YWkzg@uI==b6te((yjKjfeB~FcmI`8vpNVdslBS zJ6GOugCLcm@(nDwzti+5exNm3(P7h!oB-v$d z^RbTrnHV+jC}?XBg8SJIKfk)#`WsEE1psP^Ms3LD{`53DfY$nbYtMRcD#L1H5e~i05-^L&! ziUOaRTFN{O0+?Y!%fI|YD~VK`aOZ^4@D_k`gJi;A-0fCTZ-p=sOF z4IurLp5Q6CEO|Axzs>IFN$j>nkn)x*Jj31y>jT=O36_v-N(=a`{2`WlM@vN~E~e*k zeC9m7>D%BWHphE88x<~_(2m(-o{X8ca+@5=05e{hK{R@<#QdjH?r}yTI;fz22ajj0 z-=AjFPMce2zw`U07NBr8tk4Abfg()@7#=#QRX*=tn)=VKx>sD=C7!EFv699j>Xrdy zfHR;1Z%Fx~t{{5cOq-i@Gs?_!R5eX~jQ%4aKjA_NUXzgv5Jjp&=#bG8j5ea)q^rqs-ua@G#?!V>G@IU^(8w z-oZqAB0X-&p8O5p`-e`RDUb9gqXe(+znOa9%`HlLokmWrLpzPI;9x}16#uwC;=cd$ zN9|LHAOJz&g`^~>qvO9IzRBNh8DnVt4sM$svo*W)r! zNqK5#CO)p%g_3rtw>R+O!l~1HH`|ekoxQiWSL~2MBmE;JTcV(DPxDy?cG;nO-$GiN z!}6WD-K~C6F%@Hdg;fB8h-Vf3CNzJKDb&vvd07?xR~Zp1RAQ43G&D2_2nYfN<9&I4 zvXVKYPItCXiQ-`WHj-{w0p9*YdfZ%e*{{`E${(>g2F*W0hD-Hepq%d%mC?#SRFjnlp?DCXagGxtx_^Z@X~p9@f| zd!_n5_IcBoY+;|qEp+x^~bj1qt?hL zI}U9+7=%$GaPIJw8^o6H>igf-JXuQ@I#N!hP%)wB5et~s*hxX>eW~Sf_h!H{dA=79 zK6QlBYny=jZ|8Zhu&Cty&Vz}fO!F=--$_cn=_=tX0h^8`%cTS}UG%EZTQ6O%#|JGO z{5=Izbu)JOk^vbGN@s{*jTAUS9 zzwbNuFtf9gbj$~L?!Ho<-ct^dM;OJCfC%&c&as5-FdBG-T9v2j+J;ngGxE2J)KSa@ z>Y_W`l942~iMSL*CMtb5GMf7Rz+n=RFh;U{OcTK7mLkGgs_v`2QrWt=a?i7UQH)zqOKt7U_Guf>OeEaq-C_J2uuXQ!M9MA!1I5^_N8N7|pPxpmoWi~Feb=LDc zfT03hlRp5lT^MqppP~*0fR~Y#74*j)C$VX13o-PAl(~m$$bP%5;GBdd`r?pyYMhnR8(}k znl+tmbfl1wkT5betv2e5F-hd)=03mO&U9SsLPRFw`3qXsA%HI}X3APxc*P-IhM!T_5WvfP~FJrBWQ0SYU=8MzWWRsS*ZZq z3qTKch`A;R*Y7icJQeSa$r)%+{%Kn)WZ=yR8eu=>%6_LQF5X5@#ryhxo$}%w*2VOa zS$aVE9!iFiK{QGe%CwsdO!C{ve~p@*oSu^K^0o{$fDGy7{X9*-Fg!fWkY8x*n-Cx0 zJy&b_LWv;_$0sD9BKc2lr$0G>qHb96NX5*iYc#Gnr?$8!qH$jAtBI-HBIHXW|= zefFudn(Y`$=XT#Ot;f^y{hw&8Ii?4f!rw(PKNm7bEPkWmFy>BPtxriUqg7~l{+hfZ z(dZqfsG3c5_&RUky|ZcV+r2NQTLQz8ME(-%*t7`{H&4&lIWrMu%kKryX^T&CdV?Vw)s)QNsC@Bb`#Fy|0)mHxC(tuAOMzkl{a$lmcpquY- z@xQ1Ysz(|Jfb={2`$PTw{J7Tt_w0^}qGAW2mvGo^2ml}{uO3WGBj{X&j*pM`0&O9{ z8Fdp<`xh3-zQ}&ZLAa&AiItd{$7ns)w3Gd^W0y_{yNh_ubGPCdO@$#gSE{PS=o>bX zE%C`OX*8l{XSxM2w$*N@1|Ue?Uij`-Enm&qfn?_Yuzdd~w-N*hNYI>skaDT+f1yvW z4(EHPb$zWHCXe$Hb)fa8%e29@jDf}wz}=IJiw(djn)fA6nZLuJ{^ zK9BhF`F~gONoJTV-nN$2-YKb?Q6@)`sv_B#&~=9QigYKP#Oh&4mp^q;60v6U;~PJ% zE)sG^B}B@aPN)(Em|=f}Vo(f`6`P(w!qgMnsYpn_tLMCpAmLCF9#T&(&*B~1#nhQ| zf_79wlGE|sl<`eL-`^Ir7ePYg>;@^Eq$@rawq2ZzcsV?iE`7W#r?R5PV%$5`DHO7@ zAhC-uLuAe45s`x%u<&kMERwE{_P2F1j(E@&K!K#rPX_zCy$wxsUdwb}?+U+CkE7Jx zwu+2X6JzGc|d5kxUV1b@kb4?C^Z+wKZNX&fV#&fV2B zVkM~LCf}}p$$<1M{>awuqb=L$Je0U;oU>C+vpuKQ%2VUV9>R)qEc@9EQiQ)*#z%cPT0wKFRzw>1CK@==&gVh9B$zlulv%4j=q}nAhp|A@W)NJi2*!I71 zSlFnF4Y5ilf81XA7h(sQ>OzJx7D{#AcDyHPN*cb-8y_AHsLaYJ{Z0R$wfPLL)X`wy zw{lcj5yz>z$e!cX&Ks!yaU+YBs}%tLMn5q;_vo>tSlZr=V-jQIFC5Tr%0ft#0S^^j z$<>%Z)g7lpI-h@OYv}bor%*+@lFL_Xk^}Z3C90nuu~9l?N0gYpKxH{oG>2qrIC)%M z1oMk>{oRv4DiYYrpp6VEvfMR>(>i+&XYuFRFX5dtlY1}60bPn2 zgNS&#Y48gFaQ~a^R{(FU>*Pp;wPPSS(HqwNjFXg<-ub@>Uqi4DJlBU_(HU7zB6pj4 zy9@O19vGM)?|ycr*k_wB2MHvL4;I z>oqrtMnj3pOs>-O2Q-6oPRl0w@lE*`{SYZ9 z&JS2!8pk};ic$awO#8}B5zZhsT3A|~4Bvfq z#B=rN4pZSKfWg=FtjS+;lO)kg^*k>a2knEKi5G%N{+`#{E^$IX)S?*Jc7(JWZ;T_Y z_oesYNl7V1gtCN_ONVA*_ApI%oF)%e36=#P>&fUuS zn+6C}P6-HCA;Q!rn?#8VK1Z5I0ype9?ogac>r|_J!!>JZn2i zdZq)K$EXyC5{n2!P({Vi{bcEU<}IvP-)+GEng@ZyNAfuG36I7hqL5IsK=n(`di=4R zfu;Vx1;)=7fiOF!aIi)mdL+v45d|nr(VpK;hJ5-;RSy7HdJD#G{^BVmZ=MTf`qF=^ zDW@wZ84a_VMTE#F1%mA?g&=B5C7?%w(}yJ~Y91h`Y?TcSuBzN=qMLJ9`Aso03ZKj7 zvYa$t8GmW6W{tLqP#GXtD|g|5BSKbjYf|gS1%V(>5A`255XoYPbM%SKS~Iv%G>fg- z+v&+tIy|tI?el#gNRA2Dbz}-^I)m%$9{R>htw*rIm(HsLx8Sao|8v`UI?yMV)4J36 z6C;kclf&oY-5;L8;4W*tKVjdjM$+{B@EBQM{&HxCH!(hl zOo8u+oZAQ1YA$B=ZF_}&Ck~qxPAs_$(0#95+Zr0Ye$Q!mq}^xGEFeVS7r1aFlFiq# zGm_0y(*E`<{T@2E>hzi`y+bNhR?j4RwQqmY8e}3245U%Mp@*0#Dfch5Q&@+^qMw6? zigb|tLPOuMFS(Hd^a**9Xn;MS&RJ^>FKywRG$V~7ZyxEe4CJb!#ZD-3ei9{^`Z(Lj z^mQ{)5?7Ry95HOo+D>!Du*^5CTmhtW(6vHn9cB|!|IzD#ZiQ6J+1b%?1Nf~u9tQhM z$?J0HpYu_k$`Ko9vsWW>NLo%NZU3U3kYD=OtIq%QuSUv#bE_=WD&%nJ*@Kf(5C;bb zAUolali!H|N-!z8_E2keZSPB5JZf57`p5B%8#u9I!Xe{x#9)|q7ELbbI)CFPMGjT9 zKb@p7c2$+Y3Sko9$!VZ((&6)Rb_c=54GawINe@J4(qlL~eLUrEZP!s6y3O!a;*O(U z+t?dY4~MtuRzz?sbqJ-tH4|gu>hv65S7Q zKk>&8q1TyWj1-sY&xV&%4YvgI?`7n+(5AX@2*9lLwA*x$EtSfXLpHc5Fci5 z>OabZ{24oa-P2LB&T=1i>X_9~^?&CujhIFWQ zJ<)sfuNlDPJUIHJWuN=Q1@N#Y3~dla)Ko<;D9q!!P^lGaq+;_Kjd~r>cTeIH2F?!$ zI6rNzw=jO&}7#ei8{zu+4b;D4Cn` z9#F2`x9DSopAYTIl48SOeI{~opzuSr&IM={sP%x~-2sjjC@3fbE~lV3*mNgHO~+>! z<8thcm0-`9EvIPE(a~RsI>4=$vy+pN1ppc^A)VVbCN56c#f42Ofd&{js;ikZeV;ff zWYb=_{RcpXdI2365*HU|2QIl1FyrVL7`s!Y_|Lb)zGas!yYgcg5vaj3Dd(a@t1{A1{;BT03|x9V4$VDp6wROz8O+|NF? zJwI^|^PIm0R47Z6%i$UT><{45fmI}H6lrr~!)~P=Dqm*2J|msSoe8vjxw*Mq>r-Xg z{XjH5y|@t089ix-K>b(+LqKC}p+_<&(2~;)l7;)z?Y8^Hs2CIu(8R#$?3$Q}Blfug z+w1P>iQnq1Ye63Oe`AdJpIh0<V|L#^ zz3~%+w|JaSIwFD5qcCI2Lp^b@;>zedVs@7fzsxVMAKxthMJfN~tl;}~Ch`Wje3UI; z4Hc!)n>y)%KSSEj>qO8lHc^hR*QSLgct_69FgU|Sg+S6@CLYeMDETdPi8OLx7kE#EjEasb*keA~qD1^L-SM1d{)Jhd*C%99~^r z{R7Mbz~o_3-47fsFHJCzk_>@L?_9?T0B4f89KkU)oh;MK z#2J?{9JF+#dQ*l#LYGJa<+d7tokDO^?)z9g8&0d!oCFLR=V$%&>nkhmXPf;{Nt}-4 z7!6?sO%5tW>uQMmxWaasPf|+i_HMr%%6q!QG{YSZ zNQN&C3Lwe+Dl8-cvMM;UI=h~uBHt+5ikCCJ$ zg#DR<80SoG<_Y~k^DPW<>%kYphYM#2{1_eJxrM36D6#P$`GM#HF)}i$aNbuTmrV;2 z&Cv&26Nbkc0#w;zJTuGF|86@dn_HbOFOb`{p&Q`)rpe9^f&{H8@hKJxS4tw~f)EN# zXac!Fn=4kc1Ly!`Ba0cf#6)4cd6v)n#C|!J?_J2QZWwpcqq@G=2vGBM)}ANu4E5ja%l9mi*w}sHPSKf_Fg|#vaTL-1 ztje!@2ZPzsFnKS`;d(@{_}dxiDs#2ez~o^){PSqG*UHo1|rs%h1U^R}?UyzFWIDHmm5H&#_@gaZKwrnl9vW|`iz7DpGG%F^k< ze(HwHw`$yBuMeMtzkM)mNf;nIJbzzj=+&m$UXfLsQ zm?L}?-Y-ssyhypR6msZ*mjsrs0@-u}V348mCr^oqzJPDBly&H^N2t4!wFn%~W+5j} zt9{*7&lQkTBndWO73$R->3jTBpRR6Tm^Z@;2?9=@jUSTzVPPcgJqN+f zMwLqNiG9a}aOYQ+UBIAP7A8V~_nKDF6L?f{ z$bXmJZZe~mgf=z!6{ZloL9Kws-%S7V4x*K!w_Oe_P)8~#qFO{E1)bdMnnUZte}5u^ zTce_B$yqsYI77c4CzYo91EsUz^z9!W;jrA>?u7~1f9ID4PlF{Z33BZvrz(p@)fEBz zI{vlS9aGqPYfXb?=!g3qqhW$Ej#7wr^_DKpsB8Z~(QJLZ((F8b_wF6=34}H@a7aMr zqQ~LuM>YElB6|u10MB{Ud6hzniGJbU%m`7f0 zD;(V1#b~K!!mAm>5Ig({_t>hkC8!O<$Q(>)MbItYhM%gXrk-8g=sm`YJr`5+o zbNyZZDhk8i426er^JG7=n?gY3U5RSfHt^=XaIx7{&k7N*2P!e~GFD|!zx)^V&*ea5 zOu1Ph#sck0si>jBw<#us%p&HADdl3qh$6mQ+5qNlDR(m?2w<*Py<%Fkm$JB}-3lHT z&RjVczGppKad^sScCoNdEWPGe#YfKXO9v44heslW&1S*urlqbf0U$*-PNWJm&C|9L zvKVyPyTSJIQv9ZxO7uke5@wW`3^&-!6}8$<1rea@9oxus4Nv|^7V_9Bn9+76R!;nr zuKO)KbdE%)aaFG4v|O*>5tRq3Bpr_sZ+*LC?mO-Vrs|4~?W76GYyGz%SN8kKvz3WfU zuqRC?u_;q30yX6O1c43h72K(n3NzhD+=v%mW^@gYC-4EtAk2xt-JCE=3vF-|P_w)e>5POtYR1xa(}?O@7BnWgeus~mT?_g~a7_LJ6Y9U^ z=O@>vr|Y(A!(L=ItC^pIW^2Pkd1)USxH8-VNoKfR+B?dNl@AEMh3CgOnucxD2-w(@ zz44L#*%Zr)f{fw^)4y_Yjmr1xZYkfzjn;CbTJP{J|8U^HHMqd8J5HryB~S#+=4bqO zHozf~m6dfadKw%Y%tI02j;b@{gqTFv7ZXU#GhK&3zvtF3{})}8KJCLJVsDHDRx-@_ zGxWp7TaMd~8}>=$(#_e19Zei;(>+Z*_LZ@)z%dkopaf$|=w_#TU0}QgHUd_sC(T-m zcQA0`)GDl>xCnK2@f-bMvV_PB31w3qfO3Z{SUSbA1*=i^H^>>vRY(-XiIMRVOjt9!wD{e z&{Ls{S?O>A|3wQ-MA;9e)b}?%T%kaZdJ&40)Vuwik8@20{ml$xBk5N;afrzvyCsl@7PbmQ}<_jLY=5xe8=V0UaEL$lGze*R(gR+Jw; z0r_NINnTsWbTp3(DDn=tU|&8U3UFh$Ir7qBM(;Xeq{srrmN9>k6zVVEqWc@D<%e6A zSH_b(-rn?9ZN4~?j`|(*D;uRQX4bt+FhBTT1?*PrA996ed!>z<>G`GrqvEJy*m=;{ z*9jsW7{B2YK#>UZ+I)V5`n8uE;OCo0YjoM_ba!c|Z_q6&J_j8={{FzER>;!x@d&AQNE*B@mrG~8_F_0Htk^U#k7>hW9z46{hNNsKHg7dVtMfZoN>|gIAE7q1d^wDJ5 z+jJ}fbMTJ+>?GewS*kfhfW^)j3}I!w2#r zq)PpAMbzsGLIZBjL5SnWd9lgfA(uA*Aq5PS8A$|*X`~~g*y%F^lD2OP>-j}pE=ct zv=DiJ{P7E%L@xHWyZDwB`3F?{;XsBPVkg(C{M4NI1;qElZvc`3EjbH|Y)xg{VgD(t z^c|k+{&G(P+|~CS`D7oQq%s$d=>sPfMrzjrrXo!w7&#u4DY}#T?mP7}|0Tb`l@qF) zO{7O2gos7piqKylb;OMOvT9_gB~$5dW{%`D2c{Mx6Lo!(Umn04S>r4%DmS{jlTa7! zb%2O#;UB+(bb|O_N>#&LmKL+fsOy7J;U-~!yQXtgqy`m>8rHHcKBBA%KinUO6IIBpI=OPSae!{0dM1Wz34g_G-#Ioe5eFTTg$yU9;V~? zu_BGOJ?y;T5jXY^59k~*pH&LO2G!wgS}tGNX4@O;!YN7JtRi|eY8u*_18sP)uxwrIoHH|yjV*o_B&mGSVOzgEG0l$re&h1eZ!5IMs% z!X4YnWj9b}Mq2R+<}e2I^|vo*99GP+ClWF297j1qkHho_ojGr*iIM>B(n4(NiSl*Y z9TDFF%DfJ&NI{#wg9_bd$Q>vNU%!6kIUisK<6N;B8AHInDy65VC$t};g4(u^|65+* z$2Dw@HIS7PU*yO!lp=z@NlwrujisBq&Fixw8*4Ni@vq?KyQmR%uK4=puv_^CXDvD@ zPww5UTV>5D)Y3O1R#-53`EbW&1TxaM*Eru9&w20lkk93Lh$V@HVnwH=y$t#MH}~S{ zs2Fh}TB<@3-vcLvuk-i|XUtV^z3YDzy6tCqK!D~`z8?1W{I(yzjH6Wh4!ZoiPxSzjeR<=2m|vBeC`UyxPR?w#Jgo+SWQJeu&~A=UO3D&_@L@+M<0t>*Z2{-{eA6IB z6=$s5x526YKXZgOcNIe2%XF}EkY}_8igL1^8WecN#jhC_VtGXA$PwPisn1AxoFlBz zHf}J@_m8$=$z)EE-@+b$7PDp~lXV*xPQP{o&RmObg9}-kdwSqE3W467YU|nHgk6_} za#w$$WM^NL%-#9*X46xWso#n>^J01wwXCYrIit&1W(GaQQ<)BwmpokQ(XwxyuHMt& z!{8H5=x%4;5G}N|9Q}DlKYo%|hviIn<+8SS-qVI|Sp9+Twwssu(guo%i2NWPy(^LP z5s5btJyvi92=RWhmL6g%_f+QaKGAlRzVD&bh&4K8{BDa4DrXY8aNXg}w+2qwiI0qB z9?X4>qAH6zF)+&y#9ln;Lxew`Q1;}m#TFOcFg|5+Jo?sx8Z`0cn0_k&TW1A~U3K^O zzcDp6O-oC&b8%@c2`BqsT{*M!3ACD`U^E0wBW!?ZEBO8U_pC86GQK6|BM=i41HSG( zE8E@(LN!fIV7J!4`9y!L#{6S5O@<_Qjq=pRp5wR2FGAU-P0XLqKa?`281vz#bSMp% zBV>52>Y%zw2}B>I4x_kQ_2uOCH+$AibnRG3z8sp(iCVKBJVBO1r(DGj7~c{-AeH&P zD@jk$nbzb_XWRAEpw};Y!7dJXReGqs`Q?$1L?Ei z2Wghql9`17WR~5&>Xk1|GKimNI69a%UFeo856U`x1Cj`V=SmO;!2 zTvFyvnM!O%;=_aG=Pl)*k-L3+^aQs+UoHE$=hbgmAkHYrrNg#&b@>A#S$FaW&?z|V zRv^Ga3!`_o(FcsbF)=ZFVVX@Yw15ff0;5vlqMa}(Jng`+3a%I!P5_l$SzFsubTh{t z8D~q`l`x{;!+UA#SW;pw!F-u#seYgN&aSu6swd6;75$*Qw5^+r@0~^s!hO;_rwLw% z-$QtmyD|`roU&>{COyYzooHf(c5jWazi6os3i?oa`A~RWu~UkFUzO{8KKvdPtg0ih zw@CbYEQ|8|-xNl=MoXU`nCJwPiyz*$nNKd|D2qprXG-Dv7op;I_GrcAF{5DYQO@4HuYvvZmW#8h zh>1R@t50(x=nnUJY)!KNjE{!cV4JcXY#Dicuc`jh&}?gc<}`gnCH|MrME9TWJT7$@`)t40`SaM9*ubfUNMi48 z#aZL`+OaY_TXABp6o59Stz>EHn7?fX#+3ZycwpNDBm$s)h`{4tTj_t9pTMjrkjN-Q z1U)>s`1qWwRfvg+!BizuBmikhhAA3TnDFrMoyUMYdXaz*78}T^msGpBykYw!Fh|ApAmNM^Hl@j*K|Ab&+?{9a= zu-4lZPx4v$`l#@mN5u=BQ`cq3o#!o_o)T4sP`Pbx+1VUV-)yU@e|foc4pn(s^E-u( zh?X$d(a(~sF3pB~p(4hel>Av=F)ry{8)r4A_(M+$mcb+t1LLjI*zO#L)o;*9{>u3S z3;9`9g)Y_KPp|gBW0h4~q!0m9Wpc9ehv$01(ap`R!ff;d82g+%sLBU}hHI;HI_)&lp_1^M7z3CJ#R_An0I+>e2Ta$Hb@Q(2J@z3?dzF?>s*7lV}e9o z?0QK+5z_!VpxR7h#l)G-lg=I8!x>(fw?wTQFrhX&?&_RLQmHfK(ffv4-Sr2A2jD`v ze1Ro!BfO%YWUmj&h&cRfdfQ};O{9Q%CRzNK=GThV=f>5y9gW{!4{1LOjgWI|o{(l;w!+(vEs-dEyA_|l`U^BzS!dlzh?ACT&?4~Yn?)dGzf3uSl$-vB< zlb`?NMd9>3KEx??qDJ03wm89K(_R$dLe=E1#Xmeb4! z;@ZyL2{1m#*h<&znN5sxD`N256-{{Q)lthlPXhlCmcup0JtbB7)+2Xz14*;xIQ5Rj z>WJjb9WiCwPks*FXD+8uhPR-vcdD$;4NWIo)rml|$uANWbBTVU5j4r-Q)swo;`>Z# zG@SfKI^;kWCG*M7BepeIJ~E5;W=}*cPa*F2?K&9Wb_Y{O?m+1RLx>C^*{E1pQ#-tm zgy}$r0MTD`&{UF(x`ZHXc_dbT%cR~LKU1&w`Z2^Odnaq0!|7C+n*b7Ft0rFF`JDCo zO~~=Ar0TPLtIeN;Mv7|#T*mfMIxc~KQw9-rilhl)a zyqDCP{o#beh!CDz&ikwGO=&6mc>>1lz{3UPyceE%oE@955m|H~P(QN%rZp@er8g`= ze+L6gVB0dr^v$D%R$a+9R4}mvBHL& zh8Ui+;DVWe&kJ%VZC>kdEH8i!sDK#{CNW=^KNEt$V*9xTwjGSQ?(JEyU_ZaF)u7GK zXZk8^S;2AoVjB5Ox`|auZ47ipyoQe=i|#|A=R+|MTjC$8rX44m=}k}`1kE-Cz8Er* zXDt#`FtM-d&Aq~TBv9krGwms+vUXXttYv0Q^i0?vUhwA1;r|ZP#KKdNkM2U}cWtn8 zql(Ic{A63srz3T*5B2|OzIV-Eb-bQvGVFR)?Rv5AiXPaQsAkgf(mTo#8?hB%17K{tM%o~ESQfE5EpoHie?^pJC0dp1e6Ucc&4t93rleyePWP6y<88@ef z53c+Ha5t^*hy>N9zm#zu`?D8JjF}5uBVwUv~ef9n`Qshf*{7PF?}B`AR+m z<=ra+3321=C5(sh>@-b5D|_AwWEZRnd@<{IAABqqhCBBlPx*M2ksJ@tlefMVmqu(D zAJ#68W$uVhqWYD40BZ+f0G@6*=PV-Vp1IL*pUE`W1*aN}--hGQlHX$?H7Uba@Uv#}>B!o3;#WL)+?;-DIG6fW zSmbL*N8ixAZ9%nnNDm#v0E4-rXkAm7*DBW*kI``ReC!%%Gh&Oy@yj(~7?l1I8)Pf~ zbg4n4$~zSAL!F>QoO;R7sc}8%_Zq7If*&tRcsu#F@pnyWuh(@-@gn);n*+jbcwtde zM)vNhsRzicPnAFXLq@g53tQ*S9G~tjpS-3{!P;H-4~9d|)mZ^{)OOeR{&HW}bvvZA zvwk0(u^AaWwZYWKqNrVuKKq5eLs?o( z`J2VVeAfuKGYmnHKI)xGrNLKhu?fK>by>`rU6>{Te{{aHU5)-d~Tm`TEwb z?Or(5*4~)fe0am|aoq%*Ok6CPQBW1Q1J#z{=$`VMai3_gj9Vu05IJwT0M5R3?k)IAnGWQ`GU{;D|Cav9)KO?)ofLC__Z-fNp z2?C76qL(fdob_@4M`dRo&*j>#{T~WtNFg#+t5uOirGyNrsLUBMWF}+CEGaUCM9Gj@ zq(SB>WUNqxkjOkF^H2#H_i^*=_kH%W_w(8B`_KBUW!=;7y07~h&ht3FXU^;b7n|8! z3VW!MPDuxeU!LlqmdsbrVT}Mp=Jf8 zl@TT>%e?XY9p~Ru@Y*_<6|lTE+gT){)!g+VYMJjoY1m=&YBy_xsauoZtmBnGC0Qpl zB40^{j*l;CqA`uKUcHoWqG1e%Td4ZX2WK(yWcCP=3`jpg_t z@a79YWxZr$B*iE4O_EJhV?X9y>FX~DcewAoGAzcgZ*d?;&}l=~&3da7c0n}BY6We& zI*UKGV&ACf?Hs73*g-q(Y%(HtxJ}C`NXwj^<|yTF2NTnN*8}NyD-ZNhop7dJdeU$= z%OY#UKcWZ~5 zD!p=CJ|)kOYDcSI3bkG8(jIZMAT!^mYuqzSLGi7(r|+Ha!41VxA|5GhoLkbw-@#v1 zaOj=aUT5c0FNt9rstxn|I+pw2NnWHj`-pH2eDwl%xAVQJlkd^wgLXka`goqJeyn`c ztm5J3;pg-ZDP(19*UjV1$!9MWTUQhs*Ov;1PA}Ds=WzJFeOt!B)bxruktvPuQx`oI zZw_xd#q;OsCbOng^E~3wo7`XjsEAe8h;qc;C584|N)?G@3TH7STY8I=-S_tl440$o zl)n71RV7h_QRGGnv^OGQ)_stV=kCuK?~ohyj8_V$tb7AMUiOP;wXZ5>3Sc*$;eEm>QT|V4M?>V>k zuQYr1G_zG>k>2C?offD)kNL+qa0TUE9aC5}4}{)@?7d>?#}}T=J_BPt35%~@8KtXc z@h)7IKAB0f})H~E<89{VC)jYxnvSs@1N%->Nx^}!WV^4hV7i~1H#f80(6ZvN6L zv!v^o#iVIXC8%|T)0X|j+?X9yMw3dyA@wiZ&T){QM#@BSYHO=iWNn$+w={g$*u3-H zVuv)P;{7<+3bEm(YEbmfc4Qjr5&iW1bMb}4-lVlF#pci`nC8EMLCEW@Q+x*Fe|dHcTG`i5&lh=t;#J%yLv8tG=${NGHS_!~Z82q0v#qXnI|nn(kF1jUvaMtX&ZeX* zS8&~M-Q}ekEkNFI)jNbE)Bcj^!Nw}Yn;r?8Z-dB=U`{YGF+FFvICL@FhM5$1dQu%N zn^r7);tCt*j%TB-WHIwAdrp2?p%c|PEGngEIDdNQhl(;rsLq}iB>H;C^oul@ev3G4 z^1~Ww>OZabc1uI=z{>GyBaI58aTlOgBjDv}eg3vPKMJoMJw&EU> z`RP7FkdT`zh%gsaLYK9xTX^2ttZt*KdH*~92_(z9uX@QyW=DRjP(&~rKb-#JI3ur0w@VNzLeR9_x@l2@0o zT1VIcdl_L0{U>b2Q#||k-)RtE3>>VDNaEfMJFgaT+eb@3_T~lndTd=A3hk#x<>?O< zFvaZ}o4GmPPk(*HZocK(UyV5|MwWXR<5+1}v}wpYC)(np8vO0gcIH{}`wX@eJG(Ir zEIO!(7CRZ8v2hNykvo@5yIb%VNj1W&Ft6Rf|G4TDZMpX*MrscC z8$W!^aO~4h`=gt9yJU+UnRJT&K&So;uJ#j_oZgD^2ZAiC1};Wd=a-wZ{v3X0H!UQE z@jr%-dnmv1HBb6;gT`Dl;rUgch#a~Sv5Bwh?Gz3zwzK!!cl#e#M{s<3w&T2_;t=3m ziF#!>E#7_R`P)j{zwl{z%6)CZBoO-A*8q@^6pd>RpASfP|M9*&C3G=jl$7Eq5-uNX zFry|%Z%ivq<(8S#Z@4=_{SXCfG_v-S1q1Yiod{7#5=`Km$oswg=l|7Zq`rG)4 z;Ho)q>A*^TKHcC*S`7enIzE_=Zpsj21OMBb2kMr53I`jTmUjw6|=T0Z2lU_$`*|T%uJ{KD0 zdeHIjH*94>0ifC1H|QOk#<^*qn2F)8Jw&quJJ0}q8eI+<5K_&A;0XYvd{(^Q*s|8&5(_vVTC^ z?%F=%-VJ$gw@Uf#yGQRdf>Zto!M|=ALA~3%voIWEvF|gZJ``qClNv19_ z?R}uJnC##jukif5>&7qVns<`YPb%0vWOaf6$qz_U@mn?F3Qq@uiBFR$QwM=i7tE zjuUgU0|*Rsy{_?W@Q|R&3qm*$`u9t@b@{#bGlT3ZZ}&cM&L6qy!;rZ5jEm^CHwRf^ z)UW4+i=>efs{}yIepAK@+kekKejF?!g2f;uMUKJH2n?g&RY?0ygV2!;5E$Od`}+DT z$feaCvbVMEtz^+N1`3S0lkM!s^S56rGE50<5TzP|+Xhw;CKX0HwsLE#J(T~gJ@aRv=fd_f|(Q- z7Y8>tmrE}hh#t-3M_5=`0DKEfOS@X)E|jOMeXb{qgY@fpM~78B=mAaFrD-2)9Zu#p zh-iQ8cU*s%LcnEO|N8IIN+3<%zwx1=qu}7+7$y)T>`fMV@N_cg-0hk|j0eOnB)0$` z(Pxc-ST!Rfqc1ByKE5yYv`TH1UEWw8@?mdf7x{*+{pBz%e>GbXPAxjG+aqUQJWRz*I~IYZ3O`ff-_OuWrsI)5AdGpIl`YFh{Xb}lL}2^IjnTkgu*V7uf1N&Y>{tuoij^-6`3<~SE%f$u!6n7TQC&Ax zpl;hR!?}UB=;;JCOs@KU5)46U`~UQ+zu8MR{F(L`DWi1Z0GL5Qm)(JX;>#ab1nHu? z?t^23Hpo-`U?503OHAUD&qjI4dLI2+AE;erkIp%pDOzhAQ+qr!TrJ`>kSUb^})l zyQNt#@43xpH#hES0#ORGI$~u)sIP%fqW6Fl6LUaNevm8xqZh_0s3`8=aEY#Y;P*w9 zpG+g$c$3@gctu48nFl`4km%@+@1C1>dn?_!)U%bO`fOZXcw1u>K0Nq!k)UdIoop&u z2Dem1LM51?Mt*!)d4+0db4?4qOm4{aO&-zF?4Vqk9Xjrzk!4tE(iO1Zn<4R`z~RSj zd?B`VJMyb7TY{uBHAzZE(h9|MY^t6})1*Pj5|7c$So(zdcsLbiQy#gMI}l*Bb}j zXy2)+$o(AIGwksDdX+zYdbbXNAKgF_UnV13sJdZ$3P+%s`5N5S?2$7E>2TDB{J0ur zVb;c`H4tp0z@2n%1@W1qvif5mtn!k!^2x2?WA8P&R5yCr$B0Ipy7Jgzh63{NA#?v6n>uYLr^Pu;A2*j}B_y<`>(pUznsEKDhqZ+`B#=t-?>T ze;X^rhW|($2q9p#XPS$uJ*q;t9_N8z?`QSb#P6+JC*TCd50AQHP8DY`AF)ctZS~-( zWbEzrzYcNUaXrh`r|#OcCE?-ywQKx3^o30B_sQBHIX=jrJ?FSzpuXNn-IczQUVIP9 zp71E`-$f8r{k{u3QOVd8UkEa=NHmD=z&Lh@Q+8)Nu{8E zA?)cD7Wt9B&GR3BbglHL+Rz+WLOV8CpA{%&_k>sf&Kd>Suh!Ij3ztDcSM6}OHR*_u zB-I)_){l39kt(?`(3Zaf>fG%wD2DH^-_it)b>bV>U+t}tJ;X&m|33g@C0bfqT63-b zOMaQ(=0gO&v;L5~n@A&WteoQtu8w@KAO8A$@BHPg{}1Ntx2SM3e2I7W$ON(8gziB5 zXEKJ4f_ER-If}fTb|&2xBYm^>pnqPu%>%Z2dX5w2x#rEJNB^5?#!?Fpmw3;0?oQ{! z`407gA&WhDAqm@MN$XJ4%8wsuN%y3^f`hkUIpA0YBJaT1n5E13(2yyseIDW%4JXwS^!G$0gm40+5-KWR78sxnb6Y^KC>;uOQE35V7 zpSWYypZWRw;o(cQX$n~c&=Gb%U z>e~Yn|B-ULE?;}(=+VXz2NDwt%dalyo~=7}e7(pokENwvWYoxO@;EU+;XGOzyMgEV z9x;X^o7-`5_;oc{j(dnHlY-QL44A^C4oq7BAt zzs(iK53>jz6=_3gsQNjl=F1Ve>OckM4d4q(ZPd+5IP5ticA`UzVPNddAw06d+7Q-1 zsv+#*#%(rtJ5k_B8-gxcvoR0SJvcqrKIil}#arATe3w+E!K!FG@QT8TdTmrGxZb_s zD`_^@1g9rJw)wFk|8z>j>ORUQGr_>|iF&Y>6ik?3vPTeD8H{J?aY;gL&dsf4q$GZM zdWVbqs4S+|Kgr*MY|EM+F%Ok=B~#;RX2Y*og{6D^V-!rk=gg5HS#|T^M>$pyL$+Qe z8-bAk7P~mIc&7bSbvs@;>EH3lrk0!R!h?Uc0}^^`nVQu@QBrHCke?^IIgSq zzrLv9CO{FZaA;%h{`Jv)$1QA#;0(2VxR{{A#I-oe%_z}U8F$q6044Xz`pn1o_5;iK zNjf@DQq|l@O;ELrfaP>?(Lk zA?uthuv9mZx+E4hs-@FWZSifbT^sFa9Z7ENoJ|>bXxP8g8dijsf*|yB>fVn)_r*)d z1cb+tU0sL0^Ht|;dDOwmMt-acVXHc2U8`GGC%`9pps7^h&b!67HQPPr<3Wog{d>`C z{Yoq7g|I`gZ=jcwcJsKcC5;LQ4ex`h@7P=BvXmjTw)9%m)voKXT>x+UF8zV^$sv5O zYiEk=?!|eNjQ&3TO7>T?gB^D$oAGe*Q>{n(?{VJ96!Q3e`P#u!UN#{&+3xuf!KCg5ADf_nn1X!tb^Ct<7tRCYqw2ZkYy#2`^3XCf&Wl!Y4cYZtJ=A69zG&_uDHyFZnJn+@Uqy`A+HPLbZ}K)$3nSE=u#w`>g4+ zeFV1^X|4AX*H$H}PmkiPoeq}l4_~bx55C2sE#Cg%qo0s-=5-s9V@>CV1OD^UdREj9 zVU8sE9Za8mx=_&#ghi8g%Q7Wt^7e{uBV`s@4|vt0hAI z@!rHU`yGq33M;?sc3$RAv&dU^qFjG+&hBdo!)!6E&yyXUv%gQgcmS)xeQKNi@WWSS z3gzc~Yc)P#`Q(Ap>GeB^9AYN7&>lJ>c^cj(&Bbz3ciEn8GM4tbD=SP!+m~vBZyD!l z(sKGlwv%BEKm6q6qDLh2(kwm4GRHxy-;5hI+dK* z4w;c*S5`DHaAl;CdJxM3G4jc${LcYwYb7#@Bfz|2ccN0%l< z7>A1yQh+sBI*8)~DDHlRg|098h{ZPfQ5x12roWe{)smHTCoc?D(1BLpL|`>dXii&1VU&9Y^mq-L4CRJ?sM}q&jS-H6hF*;Czd7ttGP$Lqgsp zobo#1FwDTk#ntK1EFZ`z8os(%wrUw>Qnzk$OG@r0$9Ng>GG8m6_3{OJ+Eu3ow*V6p#$x_2B<@abZguf{`epJ#r=j4=cXk(M1dg&4`a#h1 zhp>#ZbJ?`#p5Gy8ru34}QUM#ajBh4b?+;U3q%bEJD=7yYVII5@lE@Ti`Jm3}sgd+u z9daN_iLLk1qs#k_{kyIAPAo^#^5yV~wjMb~p+c2urz9HUR69ILt^tcHW^UhjFk16Y zgY3Jz{W5S--T%qrrT}*wdwCQaP%(|cx`se~S3@J{dpIp?JOi6zS!rqCzUun=NiE%c zqRzqYJghz@Cl#=Id8wX8u8#>BVDc8>bb=iI0!(n!Ww&?-MX^pSyJGn>)#M%b^Ezr@FmlMVc2O zc9sSB`WJ;LDM^u}b-}bqXh!S(;;yNRy+6g@yV?2|Z<%;_nH)dlpUY+>_&`NAd0Pkg4ku$PC2r^bVfA{1^l6ClW89|(}y>8?s3321L^iHwXqAoF?F zK_s?+d_0vy?7FHl({hgw0uUEfRiD@yr;S0RuAHlt);~7(5{i?y>Eas-`HFUwy=>5z z6HfNGLNV*Gw0n~s8DU|}LY=l0aE^Q6esHU|&|TPw%r=6sKf!?oi2sGti4<-=J`-Y$ zm}!#rEu%u!g|MWH_??dv5=b72iGN+z(GgwlsYFN#A8^XA7~D`VgmjrAO()WVwD^hmu_b~dL7K)f{~}uU|ZJlX=Hi;feaop3UH*HS5T;`tn?vd_KzO1`qJ)r z11mGM|8?eqY^C%4G}fhmuH0~U-*M7K0FD0c%^RtSPwi{ByJA7LOC*9g@yV0FlNLX% z0;x+ZpCLwk+5Y%>3dB`NXApE`V7Um567jyp#koLa&wFcm6f1h7G6TT?qvaF{MPC2t zwf-|iVl?8A&S!c>YRP)iWkwMDvEIgKN+zkygb?zNA3v0Zk2n&6Q{v2}>9x$-u9IF5bk8yq|onzj-FFQNi*3l7_6XNh_c%El# zQz=G<|29JWyTUpmVG?tCHo+Y#9Vi+>@MtnDy5PH}K#Z3c*t>=X0p3o6)rPE_+JrV= z>_m^ApTtA;a;ef; zH&}7+Zmmy1YMcjb5C<;Jm8~8-c?%sL^U>*ead%b}-q6(4^fducn%J=7UNHSCXZSxz z?Y3w|A9Dd;_kTqenacm6UVR5P1Zrb1pwV~yiOat5^U*-P2~!_ z&Ul^*8vbHZIdB;7Ae{y-`YG~Lj-|;G5PYIbqq;;L>RWUVyOlbOT*No!hr%Q$PZn3~ zQ$mptQ&6l)P&ppKB=hFY8)9q)YoC-*R1}4XXvodw1q_=Np*$+@8yYfRr6DbVB;!2V zNgfa%@I#2P)pzjL^7rm!S(dkpqxgP+_}>9_F=o$$TDg9h!H(*ela`j2Moa3eR^n!- zdKxg`qPEL!fZ7osPEoKzf`BNb0+4uFD@ zl?ZdVI#7PJ_FWS5yDhIur{y8SMEl zC@Vie$(g4BJBZb#&rRK0)&7Hrv34Pp$YB`FlQT1waL#!-IaOf5!vX>}55Ar%Rl)lT z#lU&?Su+nv%g-=Pbo4Gx_Vy;kh&tC#uQ0Q)U={T_lI3Pwra=wRG0bO`LjhgjMX{EI zi`v@SLp|StD7>ia(zo%glOFzQ0#g6)*@%#kL{behBE<1PYnYiM$z`E@qvupYf|pGI+eNuWaIxM2ryWFdv@ck&w_sl^cQL@6Z@lc64YH zA(MCcc7rvPJ-oZyX@vRrio~Mz$$O`!8qmrAK#%+5*DoXFd2S$`r>d%|q^xZ4DC{cU ze;~V15DM&2=v!MO>6B#P21W1C(`f5{*c#Gu;sMNN|6UZo&PLBM_zG;c{-b4UI9Z4j z5woWd02ZG3l@^wkWDvI}JifGo!bp!KZi&O{7a9?Pv5X^#L-;n-&S1je17ZM&8}pTB zf$eV0ryxuaU)tNHQTepFOBiSNAhP6p-cs^b;a_56v8Xd~#H5A^u_BUtbSqK1XFe_% z+0WOLMRzwb?z6>w!pOw*`CC~dB-GXTA#@Sa=w~Fn6$*Rlyif z<8Lnb1A0QXF!l)z>pMtLfWXT?ief;=FAq`8Gj*5#NfZ$21$O@%B6=iZ zJW@`QMvafnFnbtPrQLM zZ^}%4@f%%Wv^YP@s5;xEb~_s6ii-6{U z%c|xY2-mhgY?X8viKA~YfC)04N9Ku~Skl7Sca9*|V{uJ@p$gM{5kh1gWhh-)umlGs z!-YLUaAr;r!czcz+p3*2+BE%8oy^C zbP4rwVzO{Xq1=&~Kpf_=ZkGYN(}N|*2kpGIlx6S-^%)|8h{A_bP*n62)Hreh6yBOF z8at$(e)&8w$CwbG7{uOM9@8V71skZSnlVW%%uZOIFzNby{nlbf&phTu%tyV@{(je6 zU0`{6DdP%an4w`|%4%w7F)QN_-+kGw_0h&y!uR#|Dor`e#rI5sCq_6~kg`PB^C*WP zdyZ|N)XI_}0MFo1*<*uUMMt>tw7*8+qyt6N_bn*_!3<)G{$>HJxRGwD+LxBmkvyn{pl literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_paulis-2_02.png b/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_paulis-2_02.png new file mode 100644 index 0000000000000000000000000000000000000000..41504523cc86e0996f01a547ab0d016d4efb8b7c GIT binary patch literal 21541 zcmd?RbyStn*DksN36T(xE@=^^Q%VH{>F!24Hr*v4ASvCAgmi;+H>iMgcX!7=Yy11| z8Q(eQj&a8w9A%=J}XRvZ(Z1RVl_V1ASkRfIqg!G95a(NMsj z+2=E@;18dpn7X49)Wp%nz}^@lW8i3O1$DGCH+=4FZ0}$Wwc%jqV`hK#+|1F@*5M5c zi}n9}fEj9U%0eZJGz}VgY%8JR0D)l0!v7)oxP;L_AWG36Mc*mArtZ(Xcs_G_=sljy zQ+hA;Ugka8V~NMP5JW^oYDH1rWJyBS7pDB@!~B zW6`$~}#eS7p?V*dKR;%CU8kL)S)m#4>lNY194{2BAHZlgmkEqb8_L@3nM)GLZ} zL(FeQMMVeF5q*P$gP$lup5oxxy+en9FPS9}z*k+!j1cfm{c~gp4h{}sF623Q&F>im zyrli@|6eb;CF=N2H#IjuMnhw5#K6H}M3qe!_~`B3GHo1-mVgaGKtRaN&ri__3=WP( z`uzE`NrJqgA)|jIUmC zHa=q%OHWUKgo?VlzHaQyNKI`liLitVzCAua?;ah+4(&E{=2Jw+=zLB?<3B#G+|ki7 z#4IkFE6oVe4w$g`US9rGSXfv<;0%Y41N=ueLnwU0VqzVFW5;+C>Vng%dpa4_dU|{A zQS41Yy<#z-1KC<==6|hO{hXaWI)a=Zmyi(kt%L+xI4KW3_@u8-f`CQW%KkfDQD&y^ zS3Cw>0)h`Q^fF*~=pW2AT&(Z@Eump&|I>uXvV6Unv02ee(YRr(wz|~rKj%Da4Z$Gc z3?}Dyo=PauZir4yBmy%DH6x{_9{Dkswy0bA>G8x56{MvxIbq}R0)@S~20Y*HP(uDS z*>c)260VTDJ5T3>xsTr^<0L+Q%rYHKe}<3GW-^qhIPa{W5GA6EuF>qyHUHBor@lV1 zzP|oR%jNR&vgc7ds^{Ht@7mg0qFQcnu>VUJQ;7HcHPRX<|#S3%vhd`+i^D`OM&p~*Wsl)jrLI-uyRKjy&&zoiNU>(kj^8F`XQoUF_uZ}@>}ADA@1BwQfvm7O zT=U(?om-VpfBXI>c*$sMlYu$By1v#q@@#b8mynWLUF(m5>@75>OzQchxt(rQeCo$N zXxOBfv#E+)Fw3U5XIcx})P`gZ-Hr@S(%Qof{aQT%FB4eB2OH zZY%xCQl0Tqos{F%UJmm=vi;k-36eIrPQi)+|QFXVcpZ)jxn zQA#RDDPLCLdMyU*JKNoox<4gaJP@$aWSyP4!E7K|-DA9e|9)>DlY|pZPfrix=jRt3 z60&kSDs1{I^W9JqM-W4XC$8`5<|up&E32z^4h}S6hg@B`dO)`38+mFhCsCerbH_j2 z-@*zn)&~=+oOV?W4Xs);ySuv+yvnw>x5tY$@UXG5YoUuH_m_)4&6Fv@ycNWY^aeyn zZ#M%?5>{*nj3HMOeNi-SOP^8u`ud*p@)DI}?ww2-Mg9gmHMEq&pyLs}bfUhGCl?35 z&NfbiDODCrQwQ8>~Am9o_F7acoGs_l^18{r%U_(9X_I ze=w++ganuVONWX@VkK9>WssHmvD#nz1adR}1nuFl5f zSQ=Y`>mzdU_&h6i(dxL-pR*SvPp|W)+E1W9XJQJa5s#RnWYKFO1E$c^)3a}2pi;Qi z>^F6GcD8guxnn?3&=_bO{8ImLjZO$KGRt5)ZYG(gSF|$I(RF*9f7<@@ef)CH!Of0Q;?45y_ zReE}(LqoKztWUwZT5kMc?o4a*f=ADw{G(=Oy1_~WsMG8v?vHBS9sPQzC1$|=E_Iwlz z*6YvM7>jEuK!*F<%dr9l8Zcg&AJPMUEtAwE+x?L)C&w3#@nM$YDJWc$#q**290Nu6 zPH^O2ll&vQdGc}2U?%YIi{ELjRSIwiDgWf}Puh@@z|woY&u|xrH~ef!JKjbv-$}x0 z=F5$a8!}-Y+)t7<+PFl0@v4^mzOh51g6BQlpGxicy?6R*I$2iPmg`Nxb&5_zr_#SR zk47$08DG?%NT`wD>tVvZEyhdP)PAGocxCDxmG2I#(MhO1(~OW9qU7&W_E_&W`X= zrpa*faVzXT@`p-MbbR~=W#wnUfae&9$e>ZLSjnajZ*~p`nJMO@&nJ&_Hm2H(m_i0V z|L^!a7@II6HouMG6g)gU5l_!1uX`<7?|zxLcHM=p3UzGx+_^h6qQgW28JLKE(_a}wU4;C zxLd!nkbeLE&1pRoOQ`30>~}Nv=g-zm4HM72Bc9jI85Ir9YWAVS&Uj(9`B>oAmYMt6 zR(qC65cADXmj$<=TI<;pU~j5ym)`^2?;je<1$J*JLzvQc)}}EWj32S~8p&d^R7O*C zrpEh>S`lk##`as&d#1<*g1j7<<&tZVQ-s;F;I}00H`Z!Uh=|b7Jt+W8XxP}T`t)yo zo%d&=;^TYzV;B&onmu^RS|8p3L^A4+rkisZ72KO|OaKPf7B~Xzz%)W`1NdRrqdo=7 zg}7R^RtQTOusa5DvNwi#79Z)~UhG@V)#Ct=`Sa&b@Yk=)6KZ#g^ie zU;+yRKYxnxU_3&tHwqOM)x`x0CP_e98H+xDNW}k31fBI}Gcq#TUTlSBSm?EQ@@duC z(9zSQl!yQJ;rl=F^YaW0tBO)>{tWFqK=vSx{0b9I3TW5N{GclCN<_~+g zYy~bEdMB&vYB&$@z;DGS%d{I#kRyT9H@r7p1$RFg8NX5pxFnj?T{Qv3%@` zii)+34a9HJ(H*Oi!Xq4`0!BVMl9K3PKFA>e8osNRXg)$g0badCiDnHEo8cq)sICEk zB5X~TQI<7dBsUMw&1pLyE_n67xjEnM{ad2tcDZ1q?8*?7t|=%N67HLVFbuX zM@6;lmj+vC_Sl{%B0OxlWv*NFzQq?Zz+sFOno1mM@H3=1APH;)>y(7=r%L}KENyWatQdKSe1#xbmWo# zO4rx5%}od3RL({YFvzA#RGADjYx>vK@%W=+Zijl@jwjXj^)mv$Jp2a*7$rZJb-Qb^y$+t;0L$;&9Xb&`VB&So$C0*R#-Yb zI025W9;ZAUoIwo30brM2HWjUnsjR7k+-1(LFj8G~AZqXQ%g}=!de%c+eU+F_)gWWS zt3U%H6GDT$(Bb`Jz7?Gy0DS9XyOy|a*2CVqDau(IV=&DnExS!5&Zi%EF2yoFD>bV7V_@6;Z<=-SIybE%R&4TulZb;Ju4KP@*ufGF56A%W1qz(Bo3RR`Txkswq|{DFF1 zRM&tF4tXUn7ceaFKRNTszC&0-ul9e6!?q}{rO4;Tow0et+1;xo4x@YL!2|LkW^P}) zo9^!s?wC9rprksLOpNdZ$;vOGh4hhQj%xv1%YujpsejoJ-eNy$Ca6zBfF2!7;9PMI zEc#!@1j}+d!ZG60rkzi|{7d)3SQ?K+htUPPzhjoIcY!l7_RqlxIy0X$ z_`@;EQET)fuF2_4?+-lT(zX2T-u_IlyVoCQ-|v4d@^vn zQ?v_%gSE>>T_~32KQJ4;30T=(H3y?EoJ01dlZr35oMZ+bW)iCbV$O$fM12q|b@lXA z`oO%w&NB1S1<9cV!=m;uXw1?1h5qV;YYeCJ&g1-73-@s3YyjkNP|-`vPeLx?{<<$EL` z`COit3hu13P5iuPn2t*y{>I%tUc92j9&U5H&R#AH(~E|?$ca6y7`l2f!3m9|t2VE* za$u=3<(E&;w$UDTFueaAC&T3MkNLrJgNC-dZ+DbSBH~XFg8~k@Dl`@(5FZ!oR(v9nd7xmAp|W`4 z8r!ChC@T$jzopr{tf>!d2zp$Y+jq}qeYWoi1uNHP92MawT5*G$a%id7KmS@vS zs-HMaKjmU_1?4x5WUUTiCOqKzZUH;4^1L2nvuP}(AKq1Y-4IwcMs;k7)=2&XIS#b( zF9edD0LFwB!?iv)^1)>YweyF$Pg%^rxk>(CqIb=HE^X~c{2TA$+-o@?_QU__Wz%`u z{#I*O**$|dl4;~r>3z}Zq7!_BL@7qu?~o0yVvkV`WhCBANYx(iw>mzAlIT|M|9tu{ zpu&fGCj``RMm$t0QrXq)x4?d!OV(NwX2bhV$Gq>zoY6&|XKjW#!&#tE8Ge|ENFyU*993hgyrn2tvPqB3-;dP@kjHOoQ3P9;AWJlSTulIAZ)& zE#<(c-Yn_bd=p%J?QkrE2fD_rv3}bnEwewUo|Xw#v;RrUmugl_=!41LlNhc(JW^t} z-yig97BpM@71`gM5`Xs_7ST}aGjUxe3jggsy0m^K+K0)U+i~d?#j3u3mP!`rlHON@ z-=9S%%RWfo?*vSqb%NNK>`iFMMn)@h_sT=9}3$M zbe6xqys*tN*5}IJRb$BWcFOiIT2`BGvvkCZYPf{>8V+0Mk^Lp|_IrPJO_bcKL+Itx=h zZ(qCeV;NU638vgpGeHQRaF(u1P119HeE=;5>vcyTe%B)jIiY$GDZoLeN*gNeDU2YbWeOin5Y1v2&RKOF;TKK1EOL%fo_jo z>`J!nXAo-!tKb{q;-!r(;FKUY$oM!0p1~{@dlH@CwBEHqvf1dEuumbD}_RUih370(dRiCs-8j!ok zOIJE`(|PRVQuKeQzQ`B6f_BwTFCAb;i42u?nZvDD;tOW37|_M*ll&ZYOf$`V^h+0u zw}-($H!vG5Yw?6dcCeqa5xx8i@8fr13>ABdRsFd;<&w_r~AlHMmh8kN_^VR9*gQd(S7}>IDIi_cuf&o@I;esqq?S9%Xx$ z9+VdPe2E^-#?qNfRt5k`Zfx2>zv)As$Pn!KY5piaa19xJ_Wyi~+J9f5(cQauLN<6H zN5w+=M!00e=Q|v_b7RSPlRAqr`(MpQ$%4a}NrLZsR%-%WcnL9<`|IWc>#FunRLuoz zXF6Fq;m^RJ_pxHs(q?QlW1?zQT|R;+v`+-@6G>j0)TEgPFZ{9fz-A;9j*&BlV)rdJbSpb z=X)Y91vZ$YHCB53gYYZ1LKsavXICpBVYvHn&`-;R3Fk{ z1IdgCOThY*0x~HNq;EvU#T}N~5PqmlW@1wtMqE|DTF~;5=Qv3+n6)}8euU!>j>Eb- zMknhKbB9HZqOx*8g4*=r8$2Q+33qq*B&eF`(D`ndXB9VX72P^#Ch_&aTokWs9fxRS zKx1Bt&ajGIo>!oG9fCJVT+q_fg9bkN*noLAiKC%re$R2j_cZ*@^raGF+pjDUU^%fB z6cp+kXAe?TW(cDG&Pc;Se@^!LKrFtf7w5CL{uosY2 zq`hwt0plEH)t@ChI{C7J1Te!m2^XU4b*=(W(r%8V9UouskIz<(3R!;Oqh6t9=Av1= zCl~ozsHc-aLf*Z+Z!3VH8IEu`V4}8K3HkJVrhYg2H@YQYh5t~@^_HFWW(dac)Sw4Q2Hu<|1iIonbTp<4$BwK&F9D2W_^acD{ zl0pPv(gO|3g^r(rG(cZZ?xM+BBftY463Y)Q_U)`zcraJBFDCb33$26UCUaX$0-ze6 zst%6jP%Ua_unTg7-oLvbuN&^0%s19KIGpk&_&hPhELSQvL%>^sI@9HsaDd36m4xcM zvSJ8eFj3gYTLY>oI*?VkxVKv3gj%q+K9Y!qS$_z($CjH4%+vYz6Wc!G@*4}VH z|59CVZ;|d;82vqFA32zY{xnIT;d$wVmpX&WBaD`gKUDg`d)ee~V8Uyyo>)dD2(SGb z+T+KM)wCH{SR%deZvY`kqgiX!zhAc~tEh+z0coyGke!5cW`N}WTc)S?<2+Pidn(>O z*}Uj-tUjJ)^!#^?VSZ*5j4T=)(rMESV}Si&8=#h_Jy7!4%&C-+l9CR#c->AlI4}UG z#&~b40wQoeu2gM38{gF>YBCBUNh%S}p>henm^iIAn$VRa$2wLciCC0#JCufegHh9` za}HoJK&t1LjrRP7rt*?&mwk8NYG>+~(%yLdt=$q;OqA zfN0j)$N(Sj8W2oUo0!182l-P5p@r_KJptYNBI4y5&tc|5PgaaRzQ=zJtC$+YxKk>6veHU{Qo>cdG9^2BQJm5qE6U%)(8 zQh)7;GivLtvDlMwE5vu!R$0%>F|W7+D(|e6xZi%jt@c0@@G8A?2S5DC7i5At?AIg! ze*z~PbbdM-018R1`C+_J32@zV>QyF~_)My~hTS0`lWV&-#dfRV8you!Q0K7f0{~Bn ztOkDfcKZ5D;jL6S4K{q&Vgl8+s3<64$M;P3emT5kVfMpo^r`Dy#L#HvkJ(nje9u4Y zyz$ODQy0Tk?P31ri|woBj<#~Ii2Wy-*^AI!lz9xN97z|61#6P)(I}0uUA{}*_x27B zY#5yjgi99EDcs@M!gt@eEdR~U@PE^!WdPIwYMuv?fS-Jfj!wpj|hTy!dkSA|{e?OpI*^GKH zemZX3cWb6@r!Xom01B~ZF=0PjD@L=4hq|Xh?p~|pTh!HTl-mr!Z1ZvJNwFD!Hdt`V zDfE|rUtGUIAMK2)*V~!0xaGMVhYot}J`kYz+0-IG!Y;F19O;2|ByZ|3q5krG`!x>A zZ8~F`X#Y5~pkT|d_sf?rse&FCA-l*ZD7uwZ`XIr7wUGjq%oW06^!nO6da}1EtdRc$ z8%8|UaqawY&1dU+dl=DD_g42Wbg&3nq$^X;`J%*n@??H+Nv_fqxnObO0=YKAJs+D5oSN>k9_)sY zkB@J>;8?3t(C0w_@b51M6-B#5L4H=Cnl+-s(0}{#gF^EkCo+RKxShVmAYxU>w+>tt z{%lb5+U3&kO;qci=k?6fEei&WkCNUHz+~9ZcpX zEBUI&_4fxOrE7=QX}D0gvzrkLiKG`}QV@{y{A6PC&)sp@kiI=t`JvpfE(-Eh8TKsw=VN(r}?7{8)dg!q2O&fHu z*^`QOqfWm3+-s^1onpb@34v@^(gkszGos_8k+b1vjM%DsZ#qPttk%;FMY`ocd*(}0 z({5nq#GV&N(6n>-S)PXS-)3^lmv~Pv*q8=7ry;U(YB|1(rUymbz zFY6!Fx1!og79W^n;^~(3rb8zWB3}9M!zfKV)bQHtupF;uS?X5A{Og`XXsY*9l3Z4M zAw0uxJAO24{LSd`FO%Yi^L~5~Qh=FwQF-z!n>=-xWo0MVbD%q$i5j)qN8rQ{bhWkuY}%d{m};O(BhkqsY@lIe4q&19a)oW( zd>-_QF>Ur#bU-}`#TQO^0DeDiR2X)bJ$U$2%1A7fHwWq?G*TSiFN&&W)Uh8v#JstK zzt+*4^Bm-uT9HtOQOb%a>!rJ*;>;oHfE21*aAyMK(@aJ@08S7&F*tJG3PiF@f5fN6 z&RZn?lHbS}^G&yLZmit4yd+0!O@8b2O?~4LYxjzyBcU(e`PMT#PO)y)z@eF;__eVn z4uL@a_0$c)IqvP zUqN@xNi#daBFqn4Z8T_y%)asz)cstGov0HfQTSpE@~aNID8*c*{)$Y%wH%`eC+bi2 z_FELFXNttw8fTFm4pO;t&q7jCqe-^89)QBY;N`f z^&i}Ck^EI0j;c|2NDES~AZPk`__dxU22u-*r#QthWy$106=KK*b@po z0Gt4bpHKWfSmJSr)bQG(-aZXyCN9g|#L%8S^Qb09QF=M~{iL}$|4Etl82sHZk-2ZP ztv)_L%4P0MOl^-;IZAkPl+8Og_o|7HHd%53OW>E80fnc)pW0LGeT*Dci%k~h-q^)o zfSsFy>1k^Z0SN(%tE}h%VJBie*8S{*Y4*8WL41h6VUhc%o->J~ z2ZD{8a?b5nDTk#{N9vU=`zIl;X3JQ>tK&Hc&$d8DC1(=$BK71&JE_cCln!p1+zSzv zHXUdv1KyGQ#okBYy%Z|s1l~&le#TUIcKCD5rt3*Wk0>&bzNCiE!Z3&Sk;L3sKUFwC zP`3i_dd>%S4;NAbKk^hP!Z>V~-ln^*Jm!!D9L<@z_8Sntk2TmqE?pddd2Fr{c4T|B zb)tUoMp&*((TNJ~1TCcUIRpX?04X3MfIQe02oTg;JR87L_BrvovIoI#&loIj+)sBh zWgC0r4Lokgu<=Q{OlZgei)y zk*wnroc`+I9U&w*UG$(nF50tp{zzDp5t?)CD9u5&I`JAWo$P@&d435}X*R?ZaDcwuu~g$g^eqNd*3I!S`pZ z4*>zTzyEILN6IbXCjwqWrIK9+aocph-=z|8pFI-=T=ZisEE6D|c!Z2>zR9A9m20|j za`~OV5D3`>nyvX^syPO~wD<4CN;9Q>{NWmoN+2|hpcEbf>8Bwe z2GomBA&lCEQ-o1sc5v2pqWyKD&ctWu(tPZW+xg`!*{wUyvvd@j1Nf{Q4RAsL6=!H@ z2-*5uLJB09%!9+BeNM@>?!qAPN;I2=pacD3?9A87hYOv(HYNAthdoJSuy7QPDpJn# zf?#wm0TziU5Me6t(Zl`fOBFI#L?HOC@rHd|&~@>R|EzND5t#xkE)Qx;mCh*(b3prP zR)3m_8m(e!tT{wNLLyVM#^QopNZ-e*Lj46ZGxMOm=o-3g>abBqw5w;cpzG>_S(5h`vdada|EmvXGiv_fiK=-yrr^gQjr-(>M`+C3& zGFC4PHX3AkN$>pN44CEP$i`$m-NDH@zi6Je*?mB|1e2j(dZOvZ4V8TC`Us*(p}V6_ zTx%BIDQEIuV`DMB6dqwfiJ*N_gGVn7lAiMqDh>AQxFuq_O_iFM^slD-0p!iONTK;_ zA}6a!zhm~~!`WDPyea#xtnk;RjO`_789fez5^&8X({F*)C-1%i0SRSJJ_RHjXqcD= zA6$QDivjJzynG6EsoB7f=HfZ0SY4bNw>%f6S0fEhavXe92mxu1$={w&nnB8@GfNV4bJA1O1RL!?8IL+imo^^H>-p7UTd3ey${O+ia<)JcWZa^IBVJ)YsX(Dw z4bMz#+`Q%gp>p=}mO7$q8s&oTnqxdXuyrWFx5rp7s1KiaOejZs6f)<1yYIOB7c;cG zqZ3;=3}{GzhX7P9p%X=F3C4`nh*lqkh8N?z@Z_gc_%3UhZ$T0p!734bH{Y)t^QRC} zodC+g`VN+HlzpMJ&ma&x>i~hwFp!Lx&(*Vm&}I$D-N<-teQ{_$#DeCSS&pwXfSfxd zKjq8xWet6~J8|Thi)Y<_0c?u703X4}jnqOs)*6$VxmcPXf!pkt@6?n!koiov`Uq2c zo#B884q&uU7SQe*YlH+#@q5!pDpb`)Ysn7{EwgbJY1Qm;>uNtD&1>hcn|c2>pJDj{ zT60RsXq1;~3c%qOGFuZ1ByhU6YQDj-rB!ZU!jhZgK#tVSNnYwrAZqMLu_lm;A{01ls3b|hZ7H7a@mfHSf9x4Qfkra0AP6;Rdv|^H*Y}Km%P;T{tBpT|`Fo(P= z)=by?x=pUwvS5FC$WuFnQy+mYtzE3A#LD3SqI)`QcNm+fR)#qS%z^Y3tJ#cl49dx8t_;M(9_{jLp^| zeQ^HL&X8Y`!)+~x*FyQk@L-GkO67vNIXq1eOHTm(wl!d&#-Q!?SAoa2wVbF;Fre0A z-T=&HbEq|J@3^JWQd%r~R@Mxw#!wZ)+T@@zWIgjl2612W{?|TCpf9z1&oH{dVShm| zvW9=W5KN?rqQaDhnKtMfho?VkU$BMk!s1KsC26Wft(Xn({7}Okb`4VM>hcMHss6L_Cwb^ z34qCP_Ie~VVKsS^g6;dKr9@s-G8W!T#FQ$^}CN~Kh{}{4?#;3#_XnV0?Qm1Qg+~W zfnF{de4L0=Z3q8KU)l1dTf(n0r+1~+C+Wi+?N!ug$>=3LzFJ8m)Xdc1MG@ZSl1WL7 zZj@0Tv`zNCut_=I)knQiTZl&Ux& zp8-qsn>F(!oJTVebvLgK8|s_F;OO&sMhMO3JFjPXa3WyFbIIO#mHI|eT2ZZP3qi5N zsq(xZhy8S+#S-#@$UcBn$1)2CRpxPc9TPPc2&QsV`2e>%)u6@ax*A z7eg*Lcv+l*PQbHugE4nPRKGjwAIvcZt(V|awBm9-%i(p-H92l8!6g38yw*b^&@$^h z?qfwb9^%{Dgjqu)nX8IpX9e$lfB{j{QMXOYv_qQ|r(6Ibp|$w^xuImO zI*y$y{OPun`p%}4iP1Ub*@UD{qob4h2#@0u)mg!NOFiFgPcs;+V-iL>o#Sq1a4Zve z0qel$W4^2Xw(O4bxxt8+b-~K2+kSYeY~bhvde8&v1nJw>x-9R;Xckq`0l0h`wf1t0 zm?E*2oKntZBf>^x|Hq_jwGC1EKGM|&@e2V|Ys0MB($e+}=xVGW72dS%S({`>}zeC}~Hvpr|}-_Cb@ z+tYUHmDquaru0aG6Eq-*1r8w4a_x^Y(9{0`QeL2V76nYvbhAgDn^?%4FJsX~CBQGh zy>BEf$W*A8uIR!Xh|53Gz9PpYaH;n|z;Ko0_rYl>22vpuEV90yaMD7()(7O#NFeM5 zIB{{fINJ3U59F_7`H(?-fP>_)G-9`YZ^3G9yEcJ&R^@`+BhEIKQ0;)K*u;2&9LGO$ z6F+ZJFynDXn18oOR{byM5}zZ1f;ByEXhUL}R9$LOoa3?-jODFUm+pEvQJC1I)T#L84quW$}{ zLF!cjZ(syye1rQaV~eC9gm}-Mb%AOY#+NSc(vO>u3WO!zhbvVZjDCHislR8t?+>2QNb$q(y=!wL?Ii2ie;dX-;6d)--G1 zf64g^KayzfINz91=lUCjkVGn`I$t)2x{7;w`um)n4L*L4Rtamz-%g z>4W)z3UU#UXj*LqW~$fuT?yLN;H>=Z&P_R>Q(55cSKj|J|1dh;1Ca5-!-W<|5_GQo zR;aI*ovsdyS&M&df808AIjZk?`xX$%Kr5B|ta!m8HHhG#ZGN}|HAi!-P@(M$3vZkm z|Bi4I<{jy5#LaGZqEc~iJuPS+x7OA2WsK0rOm{IB_cxS1$8>+;H`aeNt+)IOmg$bPb;&&rHPrh{;i7q)fe=e;ZeW$Au*98bB(4iXWC5{ORqM03MH9#K0V&-8?d&x6S$ zGTq=)V%r)kCOqr%PpIl%15@6VnKiXv1 zUw<@JMfUQhbLslm8FLlTnl``}!SV=b?*!`g`BgiY=9k&#{^ka5zP>Y({1c-MVBr|%xpRV;b7Od^JgXP6j!n^uJws(W(`Qsf-<0;$ISMf|-bkv4# zK)Xdp3pf5v)fOyHKWK}S(d^#tEcLr*Gl3!5j-Y*i% zzXqykG11acMBhHK)IpY&&&adW-&{jX}>%h|}iW7yK1)2+;7q2Ad@?feN-8XK4S^XgAgZ!5lQ!%~% zH8}PK0J^0hr2MPhrs1#(W}~J{`#Jmh%-v7*>(HfAJy2yKbTdfL3|%kHX==W55IS>B z$vfzmuWHyYXmt*l{tlWTL5A3wpTZKlezU-a^V0{9%87m*|2v9D?2Vj26bSSz%s^Kz zbY;c$o1dO-j^=B}j)6K#%ae1%A!Zp+Ee$4f5LoS%L5)$ivn_tt27J4g34i7KRlcKQ zeP?q}N&5let@ek7Yll6}bBY@0(dgnsG$2GyF`E^{NK(aM->e`tp{XT*y=cq+>LDu1yrhiqoR;gUVc&MX$Pkm5=5F z!~OII-CB*_Qaw9kUVD2LOn4zi@rb49qz4Cg+W&w+%0a0MC~z8P7LlAT%qgTT zP5dy{DOI23@M&c*^0N_I<0-Vdko=Rg8#Oi7=r-teU2O9#@9}w&sEM}-zZA}P{F}SE zH8#yN?{Bqn<2ibwYZiPu5O{S+pusOtH2rX1=7aO}slM|^dw-0gxOw5?OxIOM%?)e1 zM^n2Ku}yz{zKczIpq<(Nq%;BxX$ojP*2duI=;UNcTU%DZOG&2-Bn1RK0vd9scFR1O zlpav7wHN7NZx4z)U#?27TRbCJt2!;3R$jcu!VJY$v{Ikio{b7gqg>5XtxE#qtk3)p z?>EexBg(4+xoQTLAAbPXJp#ml)02E-JYyQE{R8@=A={i1$#SpR`?#7u7EA}VrOU~) zRD-nq*Wf1(Koc^S$}b2iQbCWDi&Qav#X<>i@bQgp6zpXpzSBono~R^KYRPI1y2&bp zQ;IxD#t22)SLwZmFSgxFSv&|l<>!ll1hNo7B>i4QB#8%_K5g8uA~DktRm?ROEO1I* z^IBDL&VL%uPWZJ)#Pq@5a_Nd`U`zBr(iT3NwR_uCK0}bVQkOWf8k+87tKJiep3z;{AYh`VMu*t%hoC=^ zn68Qo%ivk^c4cxJrI(-NjexNXj><=6Fp1igs$#Sl>_0Z2{@SDRBSo_cKry(JqV&b> z*+)g^Qku&)?5p&-cV-K^9j~qf?kfc*N+`5`T=->jk6X<|Eqzd^wsqmDF##0-0?3dC z-fA@Ndk+*e)*LmJE((ju9|rZ}H%S&~J$N>x-*V!=pH*n>E_sAHPBk_D11Oj@ z86oxc4yIKS3pJmszQS@=j`ssn7iGLg6krMK;*a%H4y~U}Sbx!ri3s4d7U9t8Bm^~^ z&mh{t1~vAaTv0TScV7rq6Soezz7L5ux2Zss*RPM+BOcLhm1ufDgFBVY;k3h*8PQ-I z8Z5ym53x18&^o?=VVBX&qPP^!&G;EAu`b9Grw)h`cO5 zK7p;-A-C-QyzlMuYc(e(-OiU2zY{$`4KO-ny@wLoZTanz1M{`p1^LY(w7Y1c8t+{= zwG$Jt2iicyk94zI;>uO!f@A+x>-Z(NmH0hD+T)9|60KuUC;NjD!s{!%5TXXVqu7Z# z&DS~(*{yllR~3+BQL-e!i8_%%$PCkQWm<^5GCpY9DsdIQ6K ziVwZbu<7O(MWLK;=pHg6aQ9SD=8aRsyHR68k}cC8)=)8hl{~ zA`InH?dd&svUs74!LdyT3qa#}|7ofN&ahi@V79<97 zz||F>KGA{#TT^gLf=R-sAD~Ds;M=#Spiuny`1oQIRP35Bwg`ek;%ukgzu>}%*(U0B zkXTBEmv+L7M?sGGY=1TZWL%SVqB}o=V*BRH1-M8DTuksS-F=44QDl>2NDtOFGl6VQ9Fhx077&Cbq(3m`^7$)qdn z{?cvxd%~WuIMDQPH@xfx(r^GOh)Y1i1TMsAI2%<2w{w8Hpr)k;PzYacJ`+3MJRjJ@c$r=XxFv+u$Aj^V+RV*qf2nJQ2zpKra{sAr_VK0zzjer{pz!e7Z z)9Xp4-~mtt9R(^M1Aua>0$e3=@N<_L$b612FL@dTz+vEk$eMv_XisoQfF}??Di^E& z1~b(Yh)D|WNuUB0DOh{&yJK;nZF2*=X_$G~0Df)F#zqg2LLz{>EwbPFqku~b619_z z0GYE1Zk+(ty^noC6)0SNsjZ#bAIBG;nfW||LQoP&xb=7WqyC|MIedV?v?Kw26Z|Fu zkouMZ0`ei|-YkKuC4VwO_gJ7X0xBN(io&Zsv4yTOr@!-I0FAay<34xG!;K{*Iwt0$ ztZW`AkEK`JAo8BC*q?7C^ab)MEHd7=V7tha4po5bGGc)Ckl>X%q^;6;5MJ^1>ebNN zz}h7zZYJJGIXNJV4+fHOPcJWoS;yWK9w>JMd+&IIgDHi_9vi4=H3d_>4z9WZ*PsM~ z+dr1U*nuW(5a9X{^PmAxrw4--TH4qMoUkzdllu{an7wPSQkuhNju#Ny{oo)Rot}11 zP9}hE!S99uH*kPEIWi^VUJj)TrT_}5YA|l`Um4W@=;Z99nyjNZJ`=N0C=&%y#6-i8 zm`5}f#!Qb=dMbKR2dEWG13k2m(3?n8VZ|sZ1o<++ZLR zfd+d6Hgse3{Z)U|IsVmuj5Efb=ef_l_qq4`{iLj^b^7o9{5)_|;cte-4D5!pZ@pPo4wwnyK7 z9PpKi#AvOoh>6$KuL6DNb9i>2&j#Y}TD)-Km%ASPWP-J28mI>0;T~`(R8q&a1$9!X zbS%x~<(H#jN4}igS%kZR)m+$w6c?{3^TKS8pCJ-HI?)})WR!(a;M&nkZ^rRry6hj0Vnwt98OHAKvI%f9MSOUd?D_Dm4j{t=! z2L1-T3|+Hkf5FkCvB?G;kgS8#nI!ODty$#fw-n8H5l_F$XWqPql^Meq@X;m+zCFQ~ zk!D4l3fdz;8l8ntKyZaZBPPJm3rSmxh0ZdB5Z)e*NLCxo=A|eyF?d;T{%x@gsfdlA zAuW*Ix_vtk{{$hC2hbnjj<$R&AL|9Xz-6wsVi5Sb?aZ^6u zL)(}?-fBULacKyzP5+Uc7HHu;QTi&WlLcTi*ONGeoX%52;nCkxJefp21pu*47b72Nn7F+C>T0T-Hgso_y1(N; z3?a1;EP~r~o(4AyWW6C580B**IIv#t@zKf9;ZqQg8hTqciZ@!6bKs~v4^5;JC*1}u zf;)Ic0i+qGi>aVZse2=(?HT-Ga3>1TV~E;cOcXALeLDhvBlzRbA;IM&-BLg#&KwSu z4vN(tP&@*`K?q;yPx>l5i?NZs#2sSUN(vCB|HdetK7G3DyD?Y5d2TOSlOQPZNkg@{*JakuQn^RMhW5twG(%fr|Z$Lx;Ni`srKE>2w+%IVw6|2f-##fW|TAQ zN4s;0*^QAnv}2^+B%7UX(2N}^AF)`(ipP3A`;|@ZJbRsSBKoemkbi_-CGvhvb?0j(cMsY|OAmpIp?^9LPlZKir~HFr$Qkt92MSj}WSB5u z`{*A(mlKsZh2&AOnti>a!z%|sv4_Ntk0 ziCf*L&z#9J95y!jigu%IO<-#o?l$f&^r=wTmPS;`9JK&!IXgR-@q*{aeh^2w(T`hx z`ivPj(Geb_X9Xb#|Nb*0f6|nh_i9pN>~=dO0w*OtOk{ER-EiO5|MK9 zBzK9%0ukPFC4phv^b09Lx4wOS4n6Z2T56ag(poaW<7q}N@aD;FNcb9_A;e}z{U@y} z>qeC~g1HXVXF&D*(Q0M?@bEMbWtRgF<1go;1EdyJ`$;nB{ zIUzLTESjpNV|nO6Xdxl-9kt6166@T5v!Bve= sRIWQar)AdPPe>o;{O_l@zVQifa;;Xk7t(@&?4)d1|KYl_wVxgM6IQ|=FaQ7m literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_qwc_groups-2_00.png b/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_qwc_groups-2_00.png new file mode 100644 index 0000000000000000000000000000000000000000..b0dc2d9ec56469ff3926698a704506acaf848283 GIT binary patch literal 22833 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 z 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 literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_qwc_groups-2_02.png b/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_qwc_groups-2_02.png new file mode 100644 index 0000000000000000000000000000000000000000..41504523cc86e0996f01a547ab0d016d4efb8b7c GIT binary patch literal 21541 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 literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_qwc_groups-2_03.png b/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_qwc_groups-2_03.png new file mode 100644 index 0000000000000000000000000000000000000000..aa2f4ae08e3646cf3888bd35a1e9a8168996310f GIT binary patch literal 18098 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%0Da5w>*s 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 pIf3CUgnYK)R&6Ly;B`L6HV25$SFakPbn*J2u_T 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 z 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 literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_truncated_paulis-2_02.png b/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_truncated_paulis-2_02.png new file mode 100644 index 0000000000000000000000000000000000000000..41504523cc86e0996f01a547ab0d016d4efb8b7c GIT binary patch literal 21541 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 literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_truncated_paulis-2_03.png b/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_num_truncated_paulis-2_03.png new file mode 100644 index 0000000000000000000000000000000000000000..aa2f4ae08e3646cf3888bd35a1e9a8168996310f GIT binary patch literal 18098 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%0Da5w>*s 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 WcgEIY*EK)R&6Ly;B`L6HV25$SFakPbn*J2u_T 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 z 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 literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_slice_errors-2_02.png b/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_slice_errors-2_02.png new file mode 100644 index 0000000000000000000000000000000000000000..41504523cc86e0996f01a547ab0d016d4efb8b7c GIT binary patch literal 21541 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 literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_slice_errors-2_03.png b/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_slice_errors-2_03.png new file mode 100644 index 0000000000000000000000000000000000000000..aa2f4ae08e3646cf3888bd35a1e9a8168996310f GIT binary patch literal 18098 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%0Da5w>*s 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 WcgEIY*E!WQ7#U-m9`# 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 U7v+D%)40T`V~TP~M=sy`Uuv3#ga7~l literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_sum_paulis-2_00.png b/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_sum_paulis-2_00.png new file mode 100644 index 0000000000000000000000000000000000000000..b0dc2d9ec56469ff3926698a704506acaf848283 GIT binary patch literal 22833 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 z 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 literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_sum_paulis-2_02.png b/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_sum_paulis-2_02.png new file mode 100644 index 0000000000000000000000000000000000000000..41504523cc86e0996f01a547ab0d016d4efb8b7c GIT binary patch literal 21541 zcmd?RbyStn*DksN36T(xE@=^^Q%VH{>F!24Hr*v4ASvCAgmi;+H>iMgcX!7=Yy11| z8Q(eQj&a8w9A%=J}XRvZ(Z1RVl_V1ASkRfIqg!G95a(NMsj z+2=E@;18dpn7X49)Wp%nz}^@lW8i3O1$DGCH+=4FZ0}$Wwc%jqV`hK#+|1F@*5M5c zi}n9}fEj9U%0eZJGz}VgY%8JR0D)l0!v7)oxP;L_AWG36Mc*mArtZ(Xcs_G_=sljy zQ+hA;Ugka8V~NMP5JW^oYDH1rWJyBS7pDB@!~B zW6`$~}#eS7p?V*dKR;%CU8kL)S)m#4>lNY194{2BAHZlgmkEqb8_L@3nM)GLZ} zL(FeQMMVeF5q*P$gP$lup5oxxy+en9FPS9}z*k+!j1cfm{c~gp4h{}sF623Q&F>im zyrli@|6eb;CF=N2H#IjuMnhw5#K6H}M3qe!_~`B3GHo1-mVgaGKtRaN&ri__3=WP( z`uzE`NrJqgA)|jIUmC zHa=q%OHWUKgo?VlzHaQyNKI`liLitVzCAua?;ah+4(&E{=2Jw+=zLB?<3B#G+|ki7 z#4IkFE6oVe4w$g`US9rGSXfv<;0%Y41N=ueLnwU0VqzVFW5;+C>Vng%dpa4_dU|{A zQS41Yy<#z-1KC<==6|hO{hXaWI)a=Zmyi(kt%L+xI4KW3_@u8-f`CQW%KkfDQD&y^ zS3Cw>0)h`Q^fF*~=pW2AT&(Z@Eump&|I>uXvV6Unv02ee(YRr(wz|~rKj%Da4Z$Gc z3?}Dyo=PauZir4yBmy%DH6x{_9{Dkswy0bA>G8x56{MvxIbq}R0)@S~20Y*HP(uDS z*>c)260VTDJ5T3>xsTr^<0L+Q%rYHKe}<3GW-^qhIPa{W5GA6EuF>qyHUHBor@lV1 zzP|oR%jNR&vgc7ds^{Ht@7mg0qFQcnu>VUJQ;7HcHPRX<|#S3%vhd`+i^D`OM&p~*Wsl)jrLI-uyRKjy&&zoiNU>(kj^8F`XQoUF_uZ}@>}ADA@1BwQfvm7O zT=U(?om-VpfBXI>c*$sMlYu$By1v#q@@#b8mynWLUF(m5>@75>OzQchxt(rQeCo$N zXxOBfv#E+)Fw3U5XIcx})P`gZ-Hr@S(%Qof{aQT%FB4eB2OH zZY%xCQl0Tqos{F%UJmm=vi;k-36eIrPQi)+|QFXVcpZ)jxn zQA#RDDPLCLdMyU*JKNoox<4gaJP@$aWSyP4!E7K|-DA9e|9)>DlY|pZPfrix=jRt3 z60&kSDs1{I^W9JqM-W4XC$8`5<|up&E32z^4h}S6hg@B`dO)`38+mFhCsCerbH_j2 z-@*zn)&~=+oOV?W4Xs);ySuv+yvnw>x5tY$@UXG5YoUuH_m_)4&6Fv@ycNWY^aeyn zZ#M%?5>{*nj3HMOeNi-SOP^8u`ud*p@)DI}?ww2-Mg9gmHMEq&pyLs}bfUhGCl?35 z&NfbiDODCrQwQ8>~Am9o_F7acoGs_l^18{r%U_(9X_I ze=w++ganuVONWX@VkK9>WssHmvD#nz1adR}1nuFl5f zSQ=Y`>mzdU_&h6i(dxL-pR*SvPp|W)+E1W9XJQJa5s#RnWYKFO1E$c^)3a}2pi;Qi z>^F6GcD8guxnn?3&=_bO{8ImLjZO$KGRt5)ZYG(gSF|$I(RF*9f7<@@ef)CH!Of0Q;?45y_ zReE}(LqoKztWUwZT5kMc?o4a*f=ADw{G(=Oy1_~WsMG8v?vHBS9sPQzC1$|=E_Iwlz z*6YvM7>jEuK!*F<%dr9l8Zcg&AJPMUEtAwE+x?L)C&w3#@nM$YDJWc$#q**290Nu6 zPH^O2ll&vQdGc}2U?%YIi{ELjRSIwiDgWf}Puh@@z|woY&u|xrH~ef!JKjbv-$}x0 z=F5$a8!}-Y+)t7<+PFl0@v4^mzOh51g6BQlpGxicy?6R*I$2iPmg`Nxb&5_zr_#SR zk47$08DG?%NT`wD>tVvZEyhdP)PAGocxCDxmG2I#(MhO1(~OW9qU7&W_E_&W`X= zrpa*faVzXT@`p-MbbR~=W#wnUfae&9$e>ZLSjnajZ*~p`nJMO@&nJ&_Hm2H(m_i0V z|L^!a7@II6HouMG6g)gU5l_!1uX`<7?|zxLcHM=p3UzGx+_^h6qQgW28JLKE(_a}wU4;C zxLd!nkbeLE&1pRoOQ`30>~}Nv=g-zm4HM72Bc9jI85Ir9YWAVS&Uj(9`B>oAmYMt6 zR(qC65cADXmj$<=TI<;pU~j5ym)`^2?;je<1$J*JLzvQc)}}EWj32S~8p&d^R7O*C zrpEh>S`lk##`as&d#1<*g1j7<<&tZVQ-s;F;I}00H`Z!Uh=|b7Jt+W8XxP}T`t)yo zo%d&=;^TYzV;B&onmu^RS|8p3L^A4+rkisZ72KO|OaKPf7B~Xzz%)W`1NdRrqdo=7 zg}7R^RtQTOusa5DvNwi#79Z)~UhG@V)#Ct=`Sa&b@Yk=)6KZ#g^ie zU;+yRKYxnxU_3&tHwqOM)x`x0CP_e98H+xDNW}k31fBI}Gcq#TUTlSBSm?EQ@@duC z(9zSQl!yQJ;rl=F^YaW0tBO)>{tWFqK=vSx{0b9I3TW5N{GclCN<_~+g zYy~bEdMB&vYB&$@z;DGS%d{I#kRyT9H@r7p1$RFg8NX5pxFnj?T{Qv3%@` zii)+34a9HJ(H*Oi!Xq4`0!BVMl9K3PKFA>e8osNRXg)$g0badCiDnHEo8cq)sICEk zB5X~TQI<7dBsUMw&1pLyE_n67xjEnM{ad2tcDZ1q?8*?7t|=%N67HLVFbuX zM@6;lmj+vC_Sl{%B0OxlWv*NFzQq?Zz+sFOno1mM@H3=1APH;)>y(7=r%L}KENyWatQdKSe1#xbmWo# zO4rx5%}od3RL({YFvzA#RGADjYx>vK@%W=+Zijl@jwjXj^)mv$Jp2a*7$rZJb-Qb^y$+t;0L$;&9Xb&`VB&So$C0*R#-Yb zI025W9;ZAUoIwo30brM2HWjUnsjR7k+-1(LFj8G~AZqXQ%g}=!de%c+eU+F_)gWWS zt3U%H6GDT$(Bb`Jz7?Gy0DS9XyOy|a*2CVqDau(IV=&DnExS!5&Zi%EF2yoFD>bV7V_@6;Z<=-SIybE%R&4TulZb;Ju4KP@*ufGF56A%W1qz(Bo3RR`Txkswq|{DFF1 zRM&tF4tXUn7ceaFKRNTszC&0-ul9e6!?q}{rO4;Tow0et+1;xo4x@YL!2|LkW^P}) zo9^!s?wC9rprksLOpNdZ$;vOGh4hhQj%xv1%YujpsejoJ-eNy$Ca6zBfF2!7;9PMI zEc#!@1j}+d!ZG60rkzi|{7d)3SQ?K+htUPPzhjoIcY!l7_RqlxIy0X$ z_`@;EQET)fuF2_4?+-lT(zX2T-u_IlyVoCQ-|v4d@^vn zQ?v_%gSE>>T_~32KQJ4;30T=(H3y?EoJ01dlZr35oMZ+bW)iCbV$O$fM12q|b@lXA z`oO%w&NB1S1<9cV!=m;uXw1?1h5qV;YYeCJ&g1-73-@s3YyjkNP|-`vPeLx?{<<$EL` z`COit3hu13P5iuPn2t*y{>I%tUc92j9&U5H&R#AH(~E|?$ca6y7`l2f!3m9|t2VE* za$u=3<(E&;w$UDTFueaAC&T3MkNLrJgNC-dZ+DbSBH~XFg8~k@Dl`@(5FZ!oR(v9nd7xmAp|W`4 z8r!ChC@T$jzopr{tf>!d2zp$Y+jq}qeYWoi1uNHP92MawT5*G$a%id7KmS@vS zs-HMaKjmU_1?4x5WUUTiCOqKzZUH;4^1L2nvuP}(AKq1Y-4IwcMs;k7)=2&XIS#b( zF9edD0LFwB!?iv)^1)>YweyF$Pg%^rxk>(CqIb=HE^X~c{2TA$+-o@?_QU__Wz%`u z{#I*O**$|dl4;~r>3z}Zq7!_BL@7qu?~o0yVvkV`WhCBANYx(iw>mzAlIT|M|9tu{ zpu&fGCj``RMm$t0QrXq)x4?d!OV(NwX2bhV$Gq>zoY6&|XKjW#!&#tE8Ge|ENFyU*993hgyrn2tvPqB3-;dP@kjHOoQ3P9;AWJlSTulIAZ)& zE#<(c-Yn_bd=p%J?QkrE2fD_rv3}bnEwewUo|Xw#v;RrUmugl_=!41LlNhc(JW^t} z-yig97BpM@71`gM5`Xs_7ST}aGjUxe3jggsy0m^K+K0)U+i~d?#j3u3mP!`rlHON@ z-=9S%%RWfo?*vSqb%NNK>`iFMMn)@h_sT=9}3$M zbe6xqys*tN*5}IJRb$BWcFOiIT2`BGvvkCZYPf{>8V+0Mk^Lp|_IrPJO_bcKL+Itx=h zZ(qCeV;NU638vgpGeHQRaF(u1P119HeE=;5>vcyTe%B)jIiY$GDZoLeN*gNeDU2YbWeOin5Y1v2&RKOF;TKK1EOL%fo_jo z>`J!nXAo-!tKb{q;-!r(;FKUY$oM!0p1~{@dlH@CwBEHqvf1dEuumbD}_RUih370(dRiCs-8j!ok zOIJE`(|PRVQuKeQzQ`B6f_BwTFCAb;i42u?nZvDD;tOW37|_M*ll&ZYOf$`V^h+0u zw}-($H!vG5Yw?6dcCeqa5xx8i@8fr13>ABdRsFd;<&w_r~AlHMmh8kN_^VR9*gQd(S7}>IDIi_cuf&o@I;esqq?S9%Xx$ z9+VdPe2E^-#?qNfRt5k`Zfx2>zv)As$Pn!KY5piaa19xJ_Wyi~+J9f5(cQauLN<6H zN5w+=M!00e=Q|v_b7RSPlRAqr`(MpQ$%4a}NrLZsR%-%WcnL9<`|IWc>#FunRLuoz zXF6Fq;m^RJ_pxHs(q?QlW1?zQT|R;+v`+-@6G>j0)TEgPFZ{9fz-A;9j*&BlV)rdJbSpb z=X)Y91vZ$YHCB53gYYZ1LKsavXICpBVYvHn&`-;R3Fk{ z1IdgCOThY*0x~HNq;EvU#T}N~5PqmlW@1wtMqE|DTF~;5=Qv3+n6)}8euU!>j>Eb- zMknhKbB9HZqOx*8g4*=r8$2Q+33qq*B&eF`(D`ndXB9VX72P^#Ch_&aTokWs9fxRS zKx1Bt&ajGIo>!oG9fCJVT+q_fg9bkN*noLAiKC%re$R2j_cZ*@^raGF+pjDUU^%fB z6cp+kXAe?TW(cDG&Pc;Se@^!LKrFtf7w5CL{uosY2 zq`hwt0plEH)t@ChI{C7J1Te!m2^XU4b*=(W(r%8V9UouskIz<(3R!;Oqh6t9=Av1= zCl~ozsHc-aLf*Z+Z!3VH8IEu`V4}8K3HkJVrhYg2H@YQYh5t~@^_HFWW(dac)Sw4Q2Hu<|1iIonbTp<4$BwK&F9D2W_^acD{ zl0pPv(gO|3g^r(rG(cZZ?xM+BBftY463Y)Q_U)`zcraJBFDCb33$26UCUaX$0-ze6 zst%6jP%Ua_unTg7-oLvbuN&^0%s19KIGpk&_&hPhELSQvL%>^sI@9HsaDd36m4xcM zvSJ8eFj3gYTLY>oI*?VkxVKv3gj%q+K9Y!qS$_z($CjH4%+vYz6Wc!G@*4}VH z|59CVZ;|d;82vqFA32zY{xnIT;d$wVmpX&WBaD`gKUDg`d)ee~V8Uyyo>)dD2(SGb z+T+KM)wCH{SR%deZvY`kqgiX!zhAc~tEh+z0coyGke!5cW`N}WTc)S?<2+Pidn(>O z*}Uj-tUjJ)^!#^?VSZ*5j4T=)(rMESV}Si&8=#h_Jy7!4%&C-+l9CR#c->AlI4}UG z#&~b40wQoeu2gM38{gF>YBCBUNh%S}p>henm^iIAn$VRa$2wLciCC0#JCufegHh9` za}HoJK&t1LjrRP7rt*?&mwk8NYG>+~(%yLdt=$q;OqA zfN0j)$N(Sj8W2oUo0!182l-P5p@r_KJptYNBI4y5&tc|5PgaaRzQ=zJtC$+YxKk>6veHU{Qo>cdG9^2BQJm5qE6U%)(8 zQh)7;GivLtvDlMwE5vu!R$0%>F|W7+D(|e6xZi%jt@c0@@G8A?2S5DC7i5At?AIg! ze*z~PbbdM-018R1`C+_J32@zV>QyF~_)My~hTS0`lWV&-#dfRV8you!Q0K7f0{~Bn ztOkDfcKZ5D;jL6S4K{q&Vgl8+s3<64$M;P3emT5kVfMpo^r`Dy#L#HvkJ(nje9u4Y zyz$ODQy0Tk?P31ri|woBj<#~Ii2Wy-*^AI!lz9xN97z|61#6P)(I}0uUA{}*_x27B zY#5yjgi99EDcs@M!gt@eEdR~U@PE^!WdPIwYMuv?fS-Jfj!wpj|hTy!dkSA|{e?OpI*^GKH zemZX3cWb6@r!Xom01B~ZF=0PjD@L=4hq|Xh?p~|pTh!HTl-mr!Z1ZvJNwFD!Hdt`V zDfE|rUtGUIAMK2)*V~!0xaGMVhYot}J`kYz+0-IG!Y;F19O;2|ByZ|3q5krG`!x>A zZ8~F`X#Y5~pkT|d_sf?rse&FCA-l*ZD7uwZ`XIr7wUGjq%oW06^!nO6da}1EtdRc$ z8%8|UaqawY&1dU+dl=DD_g42Wbg&3nq$^X;`J%*n@??H+Nv_fqxnObO0=YKAJs+D5oSN>k9_)sY zkB@J>;8?3t(C0w_@b51M6-B#5L4H=Cnl+-s(0}{#gF^EkCo+RKxShVmAYxU>w+>tt z{%lb5+U3&kO;qci=k?6fEei&WkCNUHz+~9ZcpX zEBUI&_4fxOrE7=QX}D0gvzrkLiKG`}QV@{y{A6PC&)sp@kiI=t`JvpfE(-Eh8TKsw=VN(r}?7{8)dg!q2O&fHu z*^`QOqfWm3+-s^1onpb@34v@^(gkszGos_8k+b1vjM%DsZ#qPttk%;FMY`ocd*(}0 z({5nq#GV&N(6n>-S)PXS-)3^lmv~Pv*q8=7ry;U(YB|1(rUymbz zFY6!Fx1!og79W^n;^~(3rb8zWB3}9M!zfKV)bQHtupF;uS?X5A{Og`XXsY*9l3Z4M zAw0uxJAO24{LSd`FO%Yi^L~5~Qh=FwQF-z!n>=-xWo0MVbD%q$i5j)qN8rQ{bhWkuY}%d{m};O(BhkqsY@lIe4q&19a)oW( zd>-_QF>Ur#bU-}`#TQO^0DeDiR2X)bJ$U$2%1A7fHwWq?G*TSiFN&&W)Uh8v#JstK zzt+*4^Bm-uT9HtOQOb%a>!rJ*;>;oHfE21*aAyMK(@aJ@08S7&F*tJG3PiF@f5fN6 z&RZn?lHbS}^G&yLZmit4yd+0!O@8b2O?~4LYxjzyBcU(e`PMT#PO)y)z@eF;__eVn z4uL@a_0$c)IqvP zUqN@xNi#daBFqn4Z8T_y%)asz)cstGov0HfQTSpE@~aNID8*c*{)$Y%wH%`eC+bi2 z_FELFXNttw8fTFm4pO;t&q7jCqe-^89)QBY;N`f z^&i}Ck^EI0j;c|2NDES~AZPk`__dxU22u-*r#QthWy$106=KK*b@po z0Gt4bpHKWfSmJSr)bQG(-aZXyCN9g|#L%8S^Qb09QF=M~{iL}$|4Etl82sHZk-2ZP ztv)_L%4P0MOl^-;IZAkPl+8Og_o|7HHd%53OW>E80fnc)pW0LGeT*Dci%k~h-q^)o zfSsFy>1k^Z0SN(%tE}h%VJBie*8S{*Y4*8WL41h6VUhc%o->J~ z2ZD{8a?b5nDTk#{N9vU=`zIl;X3JQ>tK&Hc&$d8DC1(=$BK71&JE_cCln!p1+zSzv zHXUdv1KyGQ#okBYy%Z|s1l~&le#TUIcKCD5rt3*Wk0>&bzNCiE!Z3&Sk;L3sKUFwC zP`3i_dd>%S4;NAbKk^hP!Z>V~-ln^*Jm!!D9L<@z_8Sntk2TmqE?pddd2Fr{c4T|B zb)tUoMp&*((TNJ~1TCcUIRpX?04X3MfIQe02oTg;JR87L_BrvovIoI#&loIj+)sBh zWgC0r4Lokgu<=Q{OlZgei)y zk*wnroc`+I9U&w*UG$(nF50tp{zzDp5t?)CD9u5&I`JAWo$P@&d435}X*R?ZaDcwuu~g$g^eqNd*3I!S`pZ z4*>zTzyEILN6IbXCjwqWrIK9+aocph-=z|8pFI-=T=ZisEE6D|c!Z2>zR9A9m20|j za`~OV5D3`>nyvX^syPO~wD<4CN;9Q>{NWmoN+2|hpcEbf>8Bwe z2GomBA&lCEQ-o1sc5v2pqWyKD&ctWu(tPZW+xg`!*{wUyvvd@j1Nf{Q4RAsL6=!H@ z2-*5uLJB09%!9+BeNM@>?!qAPN;I2=pacD3?9A87hYOv(HYNAthdoJSuy7QPDpJn# zf?#wm0TziU5Me6t(Zl`fOBFI#L?HOC@rHd|&~@>R|EzND5t#xkE)Qx;mCh*(b3prP zR)3m_8m(e!tT{wNLLyVM#^QopNZ-e*Lj46ZGxMOm=o-3g>abBqw5w;cpzG>_S(5h`vdada|EmvXGiv_fiK=-yrr^gQjr-(>M`+C3& zGFC4PHX3AkN$>pN44CEP$i`$m-NDH@zi6Je*?mB|1e2j(dZOvZ4V8TC`Us*(p}V6_ zTx%BIDQEIuV`DMB6dqwfiJ*N_gGVn7lAiMqDh>AQxFuq_O_iFM^slD-0p!iONTK;_ zA}6a!zhm~~!`WDPyea#xtnk;RjO`_789fez5^&8X({F*)C-1%i0SRSJJ_RHjXqcD= zA6$QDivjJzynG6EsoB7f=HfZ0SY4bNw>%f6S0fEhavXe92mxu1$={w&nnB8@GfNV4bJA1O1RL!?8IL+imo^^H>-p7UTd3ey${O+ia<)JcWZa^IBVJ)YsX(Dw z4bMz#+`Q%gp>p=}mO7$q8s&oTnqxdXuyrWFx5rp7s1KiaOejZs6f)<1yYIOB7c;cG zqZ3;=3}{GzhX7P9p%X=F3C4`nh*lqkh8N?z@Z_gc_%3UhZ$T0p!734bH{Y)t^QRC} zodC+g`VN+HlzpMJ&ma&x>i~hwFp!Lx&(*Vm&}I$D-N<-teQ{_$#DeCSS&pwXfSfxd zKjq8xWet6~J8|Thi)Y<_0c?u703X4}jnqOs)*6$VxmcPXf!pkt@6?n!koiov`Uq2c zo#B884q&uU7SQe*YlH+#@q5!pDpb`)Ysn7{EwgbJY1Qm;>uNtD&1>hcn|c2>pJDj{ zT60RsXq1;~3c%qOGFuZ1ByhU6YQDj-rB!ZU!jhZgK#tVSNnYwrAZqMLu_lm;A{01ls3b|hZ7H7a@mfHSf9x4Qfkra0AP6;Rdv|^H*Y}Km%P;T{tBpT|`Fo(P= z)=by?x=pUwvS5FC$WuFnQy+mYtzE3A#LD3SqI)`QcNm+fR)#qS%z^Y3tJ#cl49dx8t_;M(9_{jLp^| zeQ^HL&X8Y`!)+~x*FyQk@L-GkO67vNIXq1eOHTm(wl!d&#-Q!?SAoa2wVbF;Fre0A z-T=&HbEq|J@3^JWQd%r~R@Mxw#!wZ)+T@@zWIgjl2612W{?|TCpf9z1&oH{dVShm| zvW9=W5KN?rqQaDhnKtMfho?VkU$BMk!s1KsC26Wft(Xn({7}Okb`4VM>hcMHss6L_Cwb^ z34qCP_Ie~VVKsS^g6;dKr9@s-G8W!T#FQ$^}CN~Kh{}{4?#;3#_XnV0?Qm1Qg+~W zfnF{de4L0=Z3q8KU)l1dTf(n0r+1~+C+Wi+?N!ug$>=3LzFJ8m)Xdc1MG@ZSl1WL7 zZj@0Tv`zNCut_=I)knQiTZl&Ux& zp8-qsn>F(!oJTVebvLgK8|s_F;OO&sMhMO3JFjPXa3WyFbIIO#mHI|eT2ZZP3qi5N zsq(xZhy8S+#S-#@$UcBn$1)2CRpxPc9TPPc2&QsV`2e>%)u6@ax*A z7eg*Lcv+l*PQbHugE4nPRKGjwAIvcZt(V|awBm9-%i(p-H92l8!6g38yw*b^&@$^h z?qfwb9^%{Dgjqu)nX8IpX9e$lfB{j{QMXOYv_qQ|r(6Ibp|$w^xuImO zI*y$y{OPun`p%}4iP1Ub*@UD{qob4h2#@0u)mg!NOFiFgPcs;+V-iL>o#Sq1a4Zve z0qel$W4^2Xw(O4bxxt8+b-~K2+kSYeY~bhvde8&v1nJw>x-9R;Xckq`0l0h`wf1t0 zm?E*2oKntZBf>^x|Hq_jwGC1EKGM|&@e2V|Ys0MB($e+}=xVGW72dS%S({`>}zeC}~Hvpr|}-_Cb@ z+tYUHmDquaru0aG6Eq-*1r8w4a_x^Y(9{0`QeL2V76nYvbhAgDn^?%4FJsX~CBQGh zy>BEf$W*A8uIR!Xh|53Gz9PpYaH;n|z;Ko0_rYl>22vpuEV90yaMD7()(7O#NFeM5 zIB{{fINJ3U59F_7`H(?-fP>_)G-9`YZ^3G9yEcJ&R^@`+BhEIKQ0;)K*u;2&9LGO$ z6F+ZJFynDXn18oOR{byM5}zZ1f;ByEXhUL}R9$LOoa3?-jODFUm+pEvQJC1I)T#L84quW$}{ zLF!cjZ(syye1rQaV~eC9gm}-Mb%AOY#+NSc(vO>u3WO!zhbvVZjDCHislR8t?+>2QNb$q(y=!wL?Ii2ie;dX-;6d)--G1 zf64g^KayzfINz91=lUCjkVGn`I$t)2x{7;w`um)n4L*L4Rtamz-%g z>4W)z3UU#UXj*LqW~$fuT?yLN;H>=Z&P_R>Q(55cSKj|J|1dh;1Ca5-!-W<|5_GQo zR;aI*ovsdyS&M&df808AIjZk?`xX$%Kr5B|ta!m8HHhG#ZGN}|HAi!-P@(M$3vZkm z|Bi4I<{jy5#LaGZqEc~iJuPS+x7OA2WsK0rOm{IB_cxS1$8>+;H`aeNt+)IOmg$bPb;&&rHPrh{;i7q)fe=e;ZeW$Au*98bB(4iXWC5{ORqM03MH9#K0V&-8?d&x6S$ zGTq=)V%r)kCOqr%PpIl%15@6VnKiXv1 zUw<@JMfUQhbLslm8FLlTnl``}!SV=b?*!`g`BgiY=9k&#{^ka5zP>Y({1c-MVBr|%xpRV;b7Od^JgXP6j!n^uJws(W(`Qsf-<0;$ISMf|-bkv4# zK)Xdp3pf5v)fOyHKWK}S(d^#tEcLr*Gl3!5j-Y*i% zzXqykG11acMBhHK)IpY&&&adW-&{jX}>%h|}iW7yK1)2+;7q2Ad@?feN-8XK4S^XgAgZ!5lQ!%~% zH8}PK0J^0hr2MPhrs1#(W}~J{`#Jmh%-v7*>(HfAJy2yKbTdfL3|%kHX==W55IS>B z$vfzmuWHyYXmt*l{tlWTL5A3wpTZKlezU-a^V0{9%87m*|2v9D?2Vj26bSSz%s^Kz zbY;c$o1dO-j^=B}j)6K#%ae1%A!Zp+Ee$4f5LoS%L5)$ivn_tt27J4g34i7KRlcKQ zeP?q}N&5let@ek7Yll6}bBY@0(dgnsG$2GyF`E^{NK(aM->e`tp{XT*y=cq+>LDu1yrhiqoR;gUVc&MX$Pkm5=5F z!~OII-CB*_Qaw9kUVD2LOn4zi@rb49qz4Cg+W&w+%0a0MC~z8P7LlAT%qgTT zP5dy{DOI23@M&c*^0N_I<0-Vdko=Rg8#Oi7=r-teU2O9#@9}w&sEM}-zZA}P{F}SE zH8#yN?{Bqn<2ibwYZiPu5O{S+pusOtH2rX1=7aO}slM|^dw-0gxOw5?OxIOM%?)e1 zM^n2Ku}yz{zKczIpq<(Nq%;BxX$ojP*2duI=;UNcTU%DZOG&2-Bn1RK0vd9scFR1O zlpav7wHN7NZx4z)U#?27TRbCJt2!;3R$jcu!VJY$v{Ikio{b7gqg>5XtxE#qtk3)p z?>EexBg(4+xoQTLAAbPXJp#ml)02E-JYyQE{R8@=A={i1$#SpR`?#7u7EA}VrOU~) zRD-nq*Wf1(Koc^S$}b2iQbCWDi&Qav#X<>i@bQgp6zpXpzSBono~R^KYRPI1y2&bp zQ;IxD#t22)SLwZmFSgxFSv&|l<>!ll1hNo7B>i4QB#8%_K5g8uA~DktRm?ROEO1I* z^IBDL&VL%uPWZJ)#Pq@5a_Nd`U`zBr(iT3NwR_uCK0}bVQkOWf8k+87tKJiep3z;{AYh`VMu*t%hoC=^ zn68Qo%ivk^c4cxJrI(-NjexNXj><=6Fp1igs$#Sl>_0Z2{@SDRBSo_cKry(JqV&b> z*+)g^Qku&)?5p&-cV-K^9j~qf?kfc*N+`5`T=->jk6X<|Eqzd^wsqmDF##0-0?3dC z-fA@Ndk+*e)*LmJE((ju9|rZ}H%S&~J$N>x-*V!=pH*n>E_sAHPBk_D11Oj@ z86oxc4yIKS3pJmszQS@=j`ssn7iGLg6krMK;*a%H4y~U}Sbx!ri3s4d7U9t8Bm^~^ z&mh{t1~vAaTv0TScV7rq6Soezz7L5ux2Zss*RPM+BOcLhm1ufDgFBVY;k3h*8PQ-I z8Z5ym53x18&^o?=VVBX&qPP^!&G;EAu`b9Grw)h`cO5 zK7p;-A-C-QyzlMuYc(e(-OiU2zY{$`4KO-ny@wLoZTanz1M{`p1^LY(w7Y1c8t+{= zwG$Jt2iicyk94zI;>uO!f@A+x>-Z(NmH0hD+T)9|60KuUC;NjD!s{!%5TXXVqu7Z# z&DS~(*{yllR~3+BQL-e!i8_%%$PCkQWm<^5GCpY9DsdIQ6K ziVwZbu<7O(MWLK;=pHg6aQ9SD=8aRsyHR68k}cC8)=)8hl{~ zA`InH?dd&svUs74!LdyT3qa#}|7ofN&ahi@V79<97 zz||F>KGA{#TT^gLf=R-sAD~Ds;M=#Spiuny`1oQIRP35Bwg`ek;%ukgzu>}%*(U0B zkXTBEmv+L7M?sGGY=1TZWL%SVqB}o=V*BRH1-M8DTuksS-F=44QDl>2NDtOFGl6VQ9Fhx077&Cbq(3m`^7$)qdn z{?cvxd%~WuIMDQPH@xfx(r^GOh)Y1i1TMsAI2%<2w{w8Hpr)k;PzYacJ`+3MJRjJ@c$r=XxFv+u$Aj^V+RV*qf2nJQ2zpKra{sAr_VK0zzjer{pz!e7Z z)9Xp4-~mtt9R(^M1Aua>0$e3=@N<_L$b612FL@dTz+vEk$eMv_XisoQfF}??Di^E& z1~b(Yh)D|WNuUB0DOh{&yJK;nZF2*=X_$G~0Df)F#zqg2LLz{>EwbPFqku~b619_z z0GYE1Zk+(ty^noC6)0SNsjZ#bAIBG;nfW||LQoP&xb=7WqyC|MIedV?v?Kw26Z|Fu zkouMZ0`ei|-YkKuC4VwO_gJ7X0xBN(io&Zsv4yTOr@!-I0FAay<34xG!;K{*Iwt0$ ztZW`AkEK`JAo8BC*q?7C^ab)MEHd7=V7tha4po5bGGc)Ckl>X%q^;6;5MJ^1>ebNN zz}h7zZYJJGIXNJV4+fHOPcJWoS;yWK9w>JMd+&IIgDHi_9vi4=H3d_>4z9WZ*PsM~ z+dr1U*nuW(5a9X{^PmAxrw4--TH4qMoUkzdllu{an7wPSQkuhNju#Ny{oo)Rot}11 zP9}hE!S99uH*kPEIWi^VUJj)TrT_}5YA|l`Um4W@=;Z99nyjNZJ`=N0C=&%y#6-i8 zm`5}f#!Qb=dMbKR2dEWG13k2m(3?n8VZ|sZ1o<++ZLR zfd+d6Hgse3{Z)U|IsVmuj5Efb=ef_l_qq4`{iLj^b^7o9{5)_|;cte-4D5!pZ@pPo4wwnyK7 z9PpKi#AvOoh>6$KuL6DNb9i>2&j#Y}TD)-Km%ASPWP-J28mI>0;T~`(R8q&a1$9!X zbS%x~<(H#jN4}igS%kZR)m+$w6c?{3^TKS8pCJ-HI?)})WR!(a;M&nkZ^rRry6hj0Vnwt98OHAKvI%f9MSOUd?D_Dm4j{t=! z2L1-T3|+Hkf5FkCvB?G;kgS8#nI!ODty$#fw-n8H5l_F$XWqPql^Meq@X;m+zCFQ~ zk!D4l3fdz;8l8ntKyZaZBPPJm3rSmxh0ZdB5Z)e*NLCxo=A|eyF?d;T{%x@gsfdlA zAuW*Ix_vtk{{$hC2hbnjj<$R&AL|9Xz-6wsVi5Sb?aZ^6u zL)(}?-fBULacKyzP5+Uc7HHu;QTi&WlLcTi*ONGeoX%52;nCkxJefp21pu*47b72Nn7F+C>T0T-Hgso_y1(N; z3?a1;EP~r~o(4AyWW6C580B**IIv#t@zKf9;ZqQg8hTqciZ@!6bKs~v4^5;JC*1}u zf;)Ic0i+qGi>aVZse2=(?HT-Ga3>1TV~E;cOcXALeLDhvBlzRbA;IM&-BLg#&KwSu z4vN(tP&@*`K?q;yPx>l5i?NZs#2sSUN(vCB|HdetK7G3DyD?Y5d2TOSlOQPZNkg@{*JakuQn^RMhW5twG(%fr|Z$Lx;Ni`srKE>2w+%IVw6|2f-##fW|TAQ zN4s;0*^QAnv}2^+B%7UX(2N}^AF)`(ipP3A`;|@ZJbRsSBKoemkbi_-CGvhvb?0j(cMsY|OAmpIp?^9LPlZKir~HFr$Qkt92MSj}WSB5u z`{*A(mlKsZh2&AOnti>a!z%|sv4_Ntk0 ziCf*L&z#9J95y!jigu%IO<-#o?l$f&^r=wTmPS;`9JK&!IXgR-@q*{aeh^2w(T`hx z`ivPj(Geb_X9Xb#|Nb*0f6|nh_i9pN>~=dO0w*OtOk{ER-EiO5|MK9 zBzK9%0ukPFC4phv^b09Lx4wOS4n6Z2T56ag(poaW<7q}N@aD;FNcb9_A;e}z{U@y} z>qeC~g1HXVXF&D*(Q0M?@bEMbWtRgF<1go;1EdyJ`$;nB{ zIUzLTESjpNV|nO6Xdxl-9kt6166@T5v!Bve= sRIWQar)AdPPe>o;{O_l@zVQifa;;Xk7t(@&?4)d1|KYl_wVxgM6IQ|=FaQ7m literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_sum_paulis-2_03.png b/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_sum_paulis-2_03.png new file mode 100644 index 0000000000000000000000000000000000000000..aa2f4ae08e3646cf3888bd35a1e9a8168996310f GIT binary patch literal 18098 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%0Da5w>*s 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 WcgEIY*E!WQ7#U-m9`# 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 U7v+D%)40T`V~TP~M=sy`Uuv3#ga7~l literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_sum_paulis-2_06.png b/public/images/api/qiskit-addon-obp/qiskit_addon_obp-utils-visualization-plot_sum_paulis-2_06.png new file mode 100644 index 0000000000000000000000000000000000000000..2ffc794475165035bbc5eea537df61301b669b2e GIT binary patch literal 16643 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 F2>_R@pfUge literal 0 HcmV?d00001 diff --git a/scripts/config/api-html-artifacts.json b/scripts/config/api-html-artifacts.json index 9542c5345aa..1d1c508b001 100644 --- a/scripts/config/api-html-artifacts.json +++ b/scripts/config/api-html-artifacts.json @@ -55,5 +55,20 @@ "0.5": "https://ibm.box.com/shared/static/kg4rp8mkkw7ydruz8fvemvfu7aqomy83.zip", "0.4": "https://ibm.box.com/shared/static/9y66qk3nim6oejzq8phpctxkt0j6o19z.zip", "0.3": "https://ibm.box.com/shared/static/qiskfdazhq1dpxcl9b627x9yi60gncb4.zip" + }, + "qiskit-addon-obp": { + "0.1": "https://ibm.box.com/shared/static/lcbk1jo5diwm1czkbfa08rhddcvhigdw.zip" + }, + "qiskit-addon-mpf": { + "0.1": "https://ibm.box.com/shared/static/avbot44xlamcvccs8ylj7md7kjfjgfw8.zip" + }, + "qiskit-addon-sqd": { + "0.7": "https://ibm.box.com/shared/static/b7fprlhmpz3y76irstpvxydlpqhsxc6u.zip" + }, + "qiskit-addon-cutting": { + "0.9": "https://ibm.box.com/shared/static/bvan14mfp1g7ddnaqsyxegj90beqr5do.zip" + }, + "qiskit-addon-utils": { + "0.1": "https://ibm.box.com/shared/static/6kzfxqaigskwfd8uf9dldrwqtd5yr5fd.zip" } } diff --git a/scripts/config/historical-pages-to-latest.json b/scripts/config/historical-pages-to-latest.json index 183ca6062b7..519c8265483 100644 --- a/scripts/config/historical-pages-to-latest.json +++ b/scripts/config/historical-pages-to-latest.json @@ -19245,5 +19245,10 @@ }, "0.5": {}, "0.6": {} - } + }, + "qiskit-addon-obp": {}, + "qiskit-addon-mpf": {}, + "qiskit-addon-sqd": {}, + "qiskit-addon-cutting": {}, + "qiskit-addon-utils": {} } diff --git a/scripts/js/commands/checkMetadata.ts b/scripts/js/commands/checkMetadata.ts index 9d92c0a8dce..5a4f8ca5597 100644 --- a/scripts/js/commands/checkMetadata.ts +++ b/scripts/js/commands/checkMetadata.ts @@ -72,6 +72,7 @@ const main = async (): Promise => { const mdErrors = []; for (const file of mdFiles) { if (ALLOWED_VIOLATIONS.has(file)) continue; + if (file.includes("api/qiskit-addon-")) continue; const metadata = await readMetadata(file); if (!isValidMetadata(metadata, file)) { diff --git a/scripts/js/commands/checkOrphanPages.ts b/scripts/js/commands/checkOrphanPages.ts index 672cf4652eb..52175f5c327 100644 --- a/scripts/js/commands/checkOrphanPages.ts +++ b/scripts/js/commands/checkOrphanPages.ts @@ -51,7 +51,10 @@ async function main() { const existingUrls = await collectExistingUrls(dir); orphanPages.push( ...existingUrls.filter( - (file) => !tocUrls.has(file) && !ALLOWED_ORPHAN_URLS.has(file), + (file) => + !tocUrls.has(file) && + !ALLOWED_ORPHAN_URLS.has(file) && + !file.includes("api/qiskit-addon-"), ), ); } diff --git a/scripts/js/lib/api/Pkg.ts b/scripts/js/lib/api/Pkg.ts index f813cb442c4..f33bec4d4db 100644 --- a/scripts/js/lib/api/Pkg.ts +++ b/scripts/js/lib/api/Pkg.ts @@ -45,6 +45,11 @@ export class Pkg { "qiskit", "qiskit-ibm-runtime", "qiskit-ibm-transpiler", + "qiskit-addon-obp", + "qiskit-addon-mpf", + "qiskit-addon-sqd", + "qiskit-addon-cutting", + "qiskit-addon-utils", ]; constructor(kwargs: { @@ -86,7 +91,6 @@ export class Pkg { return new Pkg({ ...args, title: "Qiskit SDK", - name: "qiskit", githubSlug: "qiskit/qiskit", releaseNotesConfig: new ReleaseNotesConfig({ separatePagesVersions: releaseNoteEntries, @@ -99,7 +103,6 @@ export class Pkg { return new Pkg({ ...args, title: "Qiskit Runtime Client", - name: "qiskit-ibm-runtime", githubSlug: "qiskit/qiskit-ibm-runtime", }); } @@ -108,11 +111,46 @@ export class Pkg { return new Pkg({ ...args, title: "Qiskit Transpiler Service Client", - name: "qiskit-ibm-transpiler", githubSlug: "qiskit/qiskit-ibm-transpiler", }); } + if (name === "qiskit-addon-obp") { + return new Pkg({ + ...args, + title: "Operator Backpropagation", + githubSlug: "Qiskit/qiskit-addon-obp", + }); + } + if (name === "qiskit-addon-mpf") { + return new Pkg({ + ...args, + title: "Multi-Product Formulas", + githubSlug: "Qiskit/qiskit-addon-mpf", + }); + } + if (name === "qiskit-addon-sqd") { + return new Pkg({ + ...args, + title: "Sample-Based Quantum Diagonalization", + githubSlug: "Qiskit/qiskit-addon-sqd", + }); + } + if (name === "qiskit-addon-cutting") { + return new Pkg({ + ...args, + title: "Circuit Cutting", + githubSlug: "Qiskit/qiskit-addon-cutting", + }); + } + if (name === "qiskit-addon-utils") { + return new Pkg({ + ...args, + title: "Qiskit Addon Utilities", + githubSlug: "Qiskit/qiskit-addon-utils", + }); + } + throw new Error(`Unrecognized package: ${name}`); } diff --git a/scripts/js/lib/links/ignores.ts b/scripts/js/lib/links/ignores.ts index fba75b396bc..6472014e4b5 100644 --- a/scripts/js/lib/links/ignores.ts +++ b/scripts/js/lib/links/ignores.ts @@ -18,6 +18,11 @@ export const IGNORED_FILES = new Set([ "public/api/qiskit-ibm-runtime/0.14/objects.inv", "public/api/qiskit-ibm-runtime/0.15/objects.inv", "public/api/qiskit-ibm-runtime/0.16/objects.inv", + "public/api/qiskit-addon-cutting/objects.inv", + "public/api/qiskit-addon-mpf/objects.inv", + "public/api/qiskit-addon-obp/objects.inv", + "public/api/qiskit-addon-sqd/objects.inv", + "public/api/qiskit-addon-utils/objects.inv", ]); // ----------------------------------------------------------------------------------- @@ -316,6 +321,29 @@ function _legacyQiskitSDKIssues(): FilesToIgnores { }; } +function _addonsApiDocs(): FilesToIgnores { + return { + "docs/api/qiskit-addon-cutting/qiskit_addon_cutting.instructions.Move.mdx": + ["tutorials/03_wire_cutting_via_move_instruction"], + "docs/api/qiskit-addon-cutting/release-notes.mdx": [ + "/api/migration-guides/v2-primitives", + "/api/migration-guides/qiskit-1.0-features#qiskitprimitives", + "explanation/index", + "tutorials/index#circuit-cutting-tutorials", + "explanation/index#circuit-cutting-explanation", + ], + "docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.setup_budget.mdx": + ["how_tos/truncate_operator_terms", "how_tos/bound_error_using_p_norm"], + "docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.TruncationErrorBudget.mdx": + ["how_tos/truncate_operator_terms", "how_tos/bound_error_using_p_norm"], + "docs/api/qiskit-addon-obp/qiskit_addon_obp.backpropagate.mdx": [ + "how_tos/truncate_operator_terms", + ], + "docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.mdx": [ + "how_tos/create_circuit_slices", + ], + }; +} const FILES_TO_IGNORES__EXPECTED: FilesToIgnores = mergeFilesToIgnores( _qiskitUtilsData(), _patternsReorg(), @@ -323,7 +351,8 @@ const FILES_TO_IGNORES__EXPECTED: FilesToIgnores = mergeFilesToIgnores( _legacyQiskitSDKIssues(), ); -const FILES_TO_IGNORES__SHOULD_FIX: FilesToIgnores = {}; +const FILES_TO_IGNORES__SHOULD_FIX: FilesToIgnores = + mergeFilesToIgnores(_addonsApiDocs()); export const FILES_TO_IGNORES: FilesToIgnores = mergeFilesToIgnores( FILES_TO_IGNORES__EXPECTED, From 2f521be8484f3e40bda3b1b5924c97fc98c267f7 Mon Sep 17 00:00:00 2001 From: Frank Harkins Date: Fri, 25 Oct 2024 14:34:03 +0100 Subject: [PATCH 23/32] Switch `CodeAssistantPrompt` format (#2137) We're changing how the prompt works. We'll have to merge with the broken preview as we need to merge the MDX changes and the component changes to inner-source at the same time. I've copied the files over to inner-source to test it out with the new component and make sure the syntax is correct. --- docs/guides/circuit-library.ipynb | 15 ++++++++------- docs/guides/configure-error-suppression.mdx | 11 ++++++----- docs/guides/construct-circuits.ipynb | 11 ++++++----- docs/guides/install-qiskit.mdx | 15 ++++++++------- docs/guides/plot-quantum-states.ipynb | 13 +++++++------ docs/guides/save-jobs.ipynb | 11 ++++++----- docs/guides/setup-channel.mdx | 11 ++++++----- docs/guides/transpile-with-pass-managers.ipynb | 13 +++++++------ 8 files changed, 54 insertions(+), 46 deletions(-) diff --git a/docs/guides/circuit-library.ipynb b/docs/guides/circuit-library.ipynb index 2412ac5cf51..c6f897dfbd5 100644 --- a/docs/guides/circuit-library.ipynb +++ b/docs/guides/circuit-library.ipynb @@ -68,13 +68,14 @@ "source": [ "See [Standard gates](/api/qiskit/circuit_library#standard-gates) in the circuit library API documentation.\n", "\n", - "\n", - " Not sure what your gate's called? Try asking Qiskit Code Assistant.\n", - "\n", - " * `# Import a Hadamard gate from the circuit library`\n", - " * `# Import a multi-controlled-X gate`\n", - " * `# Add a controlled-phase gate to the circuit 'qc'`\n", - "" + "" ] }, { diff --git a/docs/guides/configure-error-suppression.mdx b/docs/guides/configure-error-suppression.mdx index 68762921423..7d39f59840d 100644 --- a/docs/guides/configure-error-suppression.mdx +++ b/docs/guides/configure-error-suppression.mdx @@ -38,11 +38,12 @@ sampler.options.dynamical_decoupling.sequence_type = "XpXm" print(f">>> dynamical decoupling sequence to use: {sampler.options.dynamical_decoupling.sequence_type}") ``` - - Can't remember the right attributes? Try asking Qiskit Code Assistant. - - * `# Enable dynamic decoupling for sampler with the "XpXm" sequence type` - + ## Turn off all error suppression diff --git a/docs/guides/construct-circuits.ipynb b/docs/guides/construct-circuits.ipynb index 76405beebd1..4dc16cdde8c 100644 --- a/docs/guides/construct-circuits.ipynb +++ b/docs/guides/construct-circuits.ipynb @@ -465,11 +465,12 @@ "id": "ae19e48d", "metadata": {}, "source": [ - "\n", - " Forgotten the method name? Try asking Qiskit Code Assistant.\n", - "\n", - " * `# Assign all parameters in qc to 0`\n", - "" + "" ] }, { diff --git a/docs/guides/install-qiskit.mdx b/docs/guides/install-qiskit.mdx index 685f626cdef..6299c81c295 100644 --- a/docs/guides/install-qiskit.mdx +++ b/docs/guides/install-qiskit.mdx @@ -139,13 +139,14 @@ If you are planning to work locally and use simulators built into Qiskit, then y Periodically check the [Qiskit release notes](../api/qiskit/release-notes) and the [Qiskit Runtime release notes](../api/qiskit-ibm-runtime/release-notes) to see new releases. We recommend frequently updating your requirements for `qiskit` and `qiskit-ibm-runtime` by, for example, changing the versions in `requirements.txt` to the latest versions, then running `pip install -r requirements.txt` or the appropriate command for your dependency management workflow. - - Need help? Try asking Qiskit Code Assistant. - - * `# Print the version of Qiskit we're using` - * `# Return True if the version of Qiskit is 1.0 or greater` - * `# Install Qiskit 1.0.2` - + ## Troubleshooting diff --git a/docs/guides/plot-quantum-states.ipynb b/docs/guides/plot-quantum-states.ipynb index 1515102cbe9..1b86f74fbd8 100644 --- a/docs/guides/plot-quantum-states.ipynb +++ b/docs/guides/plot-quantum-states.ipynb @@ -448,12 +448,13 @@ "\n", "The `plot_state_city` and `plot_state_paulivec` functions also accept a **color** argument (list of strings) specifying the colors of the bars. See the [API documentation](/api/qiskit/visualization) for more information.\n", "\n", - "\n", - " Can't remember the name of the plotting function you need? Try asking Qiskit Code Assistant.\n", - "\n", - " * `# Plot psi on a Bloch sphere`\n", - " * `# Plot a qsphere of psi with title \"Psi\"`\n", - "" + "" ] }, { diff --git a/docs/guides/save-jobs.ipynb b/docs/guides/save-jobs.ipynb index a3c21a24ecc..71e8cef4983 100644 --- a/docs/guides/save-jobs.ipynb +++ b/docs/guides/save-jobs.ipynb @@ -115,11 +115,12 @@ "id": "1f50a889-63b1-4458-a5e5-bd2ef47dd3eb", "metadata": {}, "source": [ - "\n", - " Always forgetting how to retrieve a job? Try this prompt with Qiskit Code Assistant:\n", - "\n", - " * `# Retrieve job JOB_ID from IBM Runtime and print the result`\n", - "" + "" ] }, { diff --git a/docs/guides/setup-channel.mdx b/docs/guides/setup-channel.mdx index bb9b30a608c..76f773dc88f 100644 --- a/docs/guides/setup-channel.mdx +++ b/docs/guides/setup-channel.mdx @@ -92,11 +92,12 @@ Available plans: IBM Cloud is the default account used if you don't specify a different channel or account name. - - If you forget the setup code, try asking Qiskit Code Assistant. - - * `# Set up my IBM Runtime account using TOKEN for my token` - + 1. Test your setup. Run a simple circuit using Sampler to ensure that your environment is set up properly: diff --git a/docs/guides/transpile-with-pass-managers.ipynb b/docs/guides/transpile-with-pass-managers.ipynb index 8df2106fbd8..51cb649e426 100644 --- a/docs/guides/transpile-with-pass-managers.ipynb +++ b/docs/guides/transpile-with-pass-managers.ipynb @@ -102,12 +102,13 @@ "source": [ "See [Transpilation defaults and configuration options](defaults-and-configuration-options) for a description of the possible arguments to the `generate_preset_pass_manager` function. The arguments to `generate_preset_pass_manager` match the arguments to the [`transpile`](/api/qiskit/compiler#qiskit.compiler.transpile) function.\n", "\n", - "\n", - " Having trouble remembering pass manager details? Try asking Qiskit Code Assistant.\n", - "\n", - " * `# Create a pass manager with the highest optimization level`\n", - " * `# Transpile 'circuit' with the highest optimization level`\n", - "\n", + "\n", "\n", "\n", "If the preset pass managers don't fulfill your needs, customize transpilation by creating (staged) pass managers or even transpilation passes. The rest of this page describes how to create pass managers. For instructions on how to create transpilation passes, see [Write your own transpiler pass](custom-transpiler-pass)." From e6881a52d9271649c25a6d5489021988c3593978 Mon Sep 17 00:00:00 2001 From: Frank Harkins Date: Fri, 25 Oct 2024 15:32:54 +0100 Subject: [PATCH 24/32] Fix syntax in CodeAssistantAdmonition (#2180) Expressions must be JSON serializable --- docs/guides/plot-quantum-states.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/plot-quantum-states.ipynb b/docs/guides/plot-quantum-states.ipynb index 1b86f74fbd8..edfd75fc09b 100644 --- a/docs/guides/plot-quantum-states.ipynb +++ b/docs/guides/plot-quantum-states.ipynb @@ -452,7 +452,7 @@ " tagLine=\"Can't remember the name of the plotting function you need? Try asking Qiskit Code Assistant.\"\n", " prompts={[\n", " \"# Plot psi on a Bloch sphere\",\n", - " \"# Plot a qsphere of psi with title 'Psi'\",\n", + " \"# Plot a qsphere of psi with title 'Psi'\"\n", " ]}\n", "/>" ] From 75c5c4576584f9ba3a0944501cefc839135c37bc Mon Sep 17 00:00:00 2001 From: Rebecca Dimock <66339736+beckykd@users.noreply.github.com> Date: Fri, 25 Oct 2024 12:33:10 -0500 Subject: [PATCH 25/32] IGNORED_URLs is now two sections (#2184) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 993017ed1e0..0c68aa36571 100644 --- a/README.md +++ b/README.md @@ -446,7 +446,7 @@ If your file will have non-trivial code in it, please create a Jupyter notebook Add the file to these places: - The folder's `_toc.json`, such as `guides/_toc.json`. The `title` will show up in the left side bar. Note that the `url` leaves off the file extension. -- The appropriate "index" page in the Development workflow section, such as `guides/map-problem-to-circuits` AND the Tools section in the `_toc.json` file. Or, in the rare case that it doesn't belong on any of these pages, list it in `scripts/js/commands/checkPatternsIndex.ts` in the IGNORED_URLS section. For example, `"/guides/qiskit-code-assistant"`. +- The appropriate "index" page in the Development workflow section, such as `guides/map-problem-to-circuits` AND the Tools section in the `_toc.json` file. Or, in the rare case that it doesn't belong on any of these pages, list it in `scripts/js/commands/checkPatternsIndex.ts` in the ALLOWLIST_MISSING_FROM_INDEX or the ALLOWLIST_MISSING_FROM_TOC section. For example, `"/guides/qiskit-code-assistant"`. - qiskit_bot.yaml. Everyone listed under the file name is notified any time the file is updated. If someone wants to be listed as an owner but does not want to receive notifications, put their ID in single quotes. For example, - "`@NoNotifications`" ## Page metadata From 305e99a9f87d66bd1e5702a02efb68d21a414330 Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Fri, 25 Oct 2024 15:23:22 -0400 Subject: [PATCH 26/32] Regenerate Addons to remove broken links (#2181) These links were all fixed in the Addon repositories directly. --- ...qiskit_addon_cutting.DeviceConstraints.mdx | 2 +- ...t_addon_cutting.OptimizationParameters.mdx | 2 +- ...ddon_cutting.PartitionedCuttingProblem.mdx | 2 +- .../qiskit_addon_cutting.cut_gates.mdx | 8 +- ...iskit_addon_cutting.expand_observables.mdx | 4 +- .../qiskit_addon_cutting.find_cuts.mdx | 4 +- ...n_cutting.generate_cutting_experiments.mdx | 8 +- ...qiskit_addon_cutting.instructions.Move.mdx | 2 +- ...addon_cutting.partition_circuit_qubits.mdx | 8 +- ...qiskit_addon_cutting.partition_problem.mdx | 10 +-- .../qiskit_addon_cutting.qpd.QPDBasis.mdx | 6 +- ...t_addon_cutting.qpd.SingleQubitQPDGate.mdx | 2 +- ...skit_addon_cutting.qpd.TwoQubitQPDGate.mdx | 2 +- .../qiskit_addon_cutting.qpd.WeightType.mdx | 2 +- ...cutting.qpd.decompose_qpd_instructions.mdx | 10 +-- ...addon_cutting.qpd.generate_qpd_weights.mdx | 6 +- ..._cutting.qpd.qpdbasis_from_instruction.mdx | 6 +- ...cutting.reconstruct_expectation_values.mdx | 4 +- ...mulation.simulate_statevector_outcomes.mdx | 2 +- ...ing.utils.transforms.SeparatedCircuits.mdx | 2 +- ...ting.utils.transforms.separate_circuit.mdx | 4 +- .../qiskit-addon-cutting/release-notes.mdx | 14 +-- .../qiskit_addon_obp.backpropagate.mdx | 2 +- ...utils.truncating.TruncationErrorBudget.mdx | 4 +- ...ddon_obp.utils.truncating.setup_budget.mdx | 4 +- .../qiskit_addon_utils.slicing.mdx | 2 +- ...skit_addon_cutting-instructions-Move-1.svg | 86 +++++++++---------- scripts/js/lib/links/ignores.ts | 26 +----- 28 files changed, 105 insertions(+), 129 deletions(-) diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.DeviceConstraints.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.DeviceConstraints.mdx index 6a8b8c59d50..6b5431b7867 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.DeviceConstraints.mdx +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.DeviceConstraints.mdx @@ -11,7 +11,7 @@ python_api_name: qiskit_addon_cutting.DeviceConstraints # qiskit\_addon\_cutting.DeviceConstraints - Bases: [`object`](https://docs.python.org/3/library/functions.html#object "(in Python v3.12)") + Bases: [`object`](https://docs.python.org/3/library/functions.html#object "(in Python v3.13)") Specify the constraints (qubits per subcircuit) that must be respected. diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.OptimizationParameters.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.OptimizationParameters.mdx index 938685312f0..9094f8873a1 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.OptimizationParameters.mdx +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.OptimizationParameters.mdx @@ -11,7 +11,7 @@ python_api_name: qiskit_addon_cutting.OptimizationParameters # qiskit\_addon\_cutting.OptimizationParameters - Bases: [`object`](https://docs.python.org/3/library/functions.html#object "(in Python v3.12)") + Bases: [`object`](https://docs.python.org/3/library/functions.html#object "(in Python v3.13)") Specify parameters that control the optimization. diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.PartitionedCuttingProblem.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.PartitionedCuttingProblem.mdx index 0affc8a2270..9d8741f8e45 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.PartitionedCuttingProblem.mdx +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.PartitionedCuttingProblem.mdx @@ -11,7 +11,7 @@ python_api_name: qiskit_addon_cutting.PartitionedCuttingProblem # qiskit\_addon\_cutting.PartitionedCuttingProblem - Bases: [`NamedTuple`](https://docs.python.org/3/library/typing.html#typing.NamedTuple "(in Python v3.12)") + Bases: [`NamedTuple`](https://docs.python.org/3/library/typing.html#typing.NamedTuple "(in Python v3.13)") The result of decomposing and separating a circuit and observable(s). diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.cut_gates.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.cut_gates.mdx index 810e5369828..20fb84628d7 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.cut_gates.mdx +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.cut_gates.mdx @@ -16,12 +16,12 @@ python_api_name: qiskit_addon_cutting.cut_gates **Parameters** * **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – The circuit containing gates to be decomposed - * **gate\_ids** ([`Sequence`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.12)")\[[`int`](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)")]) – The indices of the gates to decompose - * **inplace** ([`bool`](https://docs.python.org/3/library/functions.html#bool "(in Python v3.12)")) – Flag denoting whether to copy the input circuit before acting on it + * **gate\_ids** ([`Sequence`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")\[[`int`](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")]) – The indices of the gates to decompose + * **inplace** ([`bool`](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – Flag denoting whether to copy the input circuit before acting on it **Return type** - [`tuple`](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.12)")\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`list`](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.12)")\[[`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.qpd_basis.QPDBasis")]] + [`tuple`](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`list`](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")\[[`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.qpd_basis.QPDBasis")]] **Returns** @@ -29,6 +29,6 @@ python_api_name: qiskit_addon_cutting.cut_gates **Raises** - [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – The input circuit should contain no classical bits or registers. + [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – The input circuit should contain no classical bits or registers. diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.expand_observables.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.expand_observables.mdx index 27b565371a4..766ffa07455 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.expand_observables.mdx +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.expand_observables.mdx @@ -37,7 +37,7 @@ python_api_name: qiskit_addon_cutting.expand_observables **Raises** - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – `observables` and `original_circuit` have different number of qubits. - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – Qubit from `original_circuit` cannot be found in `final_circuit`. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – `observables` and `original_circuit` have different number of qubits. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – Qubit from `original_circuit` cannot be found in `final_circuit`. diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.find_cuts.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.find_cuts.mdx index 3cdbd9b706a..d97a17d3403 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.find_cuts.mdx +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.find_cuts.mdx @@ -21,7 +21,7 @@ python_api_name: qiskit_addon_cutting.find_cuts **Return type** - [`tuple`](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.12)")\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`dict`](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.12)")\[[`str`](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.12)"), [`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.12)")]] + [`tuple`](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`dict`](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.13)")\[[`str`](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)"), [`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")]] **Returns** @@ -35,6 +35,6 @@ python_api_name: qiskit_addon_cutting.find_cuts **Raises** - [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – The input circuit contains a gate acting on more than 2 qubits. + [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – The input circuit contains a gate acting on more than 2 qubits. diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.generate_cutting_experiments.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.generate_cutting_experiments.mdx index 4d6f2f2f0bf..49d2b8db851 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.generate_cutting_experiments.mdx +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.generate_cutting_experiments.mdx @@ -39,9 +39,9 @@ python_api_name: qiskit_addon_cutting.generate_cutting_experiments **Raises** - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – `num_samples` must be at least one. - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – `circuits` and `observables` are incompatible types - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – `SingleQubitQPDGate` instances must have their cut ID appended to the gate label so they may be associated with other gates belonging to the same cut. - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – `SingleQubitQPDGate` instances are not allowed in unseparated circuits. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – `num_samples` must be at least one. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – `circuits` and `observables` are incompatible types + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – `SingleQubitQPDGate` instances must have their cut ID appended to the gate label so they may be associated with other gates belonging to the same cut. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – `SingleQubitQPDGate` instances are not allowed in unseparated circuits. diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.instructions.Move.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.instructions.Move.mdx index 2b4a18e1753..a1adefdae20 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.instructions.Move.mdx +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.instructions.Move.mdx @@ -52,7 +52,7 @@ python_api_name: qiskit_addon_cutting.instructions.Move ![../\_images/qiskit\_addon\_cutting-instructions-Move-1.svg](/images/api/qiskit-addon-cutting/qiskit_addon_cutting-instructions-Move-1.svg) - A full demonstration of the [`Move`](#qiskit_addon_cutting.instructions.Move "qiskit_addon_cutting.instructions.Move") instruction is available in [the introductory tutorial on wire cutting](tutorials/03_wire_cutting_via_move_instruction). + A full demonstration of the [`Move`](#qiskit_addon_cutting.instructions.Move "qiskit_addon_cutting.instructions.Move") instruction is available in [the introductory tutorial on wire cutting](https://qiskit.github.io/qiskit-addon-cutting/tutorials/03_wire_cutting_via_move_instruction.html). Create a [`Move`](#qiskit_addon_cutting.instructions.Move "qiskit_addon_cutting.instructions.Move") instruction. diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_circuit_qubits.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_circuit_qubits.mdx index c0f5a360520..a8c38c75998 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_circuit_qubits.mdx +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_circuit_qubits.mdx @@ -18,8 +18,8 @@ python_api_name: qiskit_addon_cutting.partition_circuit_qubits **Parameters** * **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – The circuit to partition - * **partition\_labels** ([`Sequence`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.12)")\[[`Hashable`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Hashable "(in Python v3.12)")]) – A sequence containing a partition label for each qubit in the input circuit. Nonlocal gates belonging to more than one partition will be replaced with [`TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate")s. - * **inplace** ([`bool`](https://docs.python.org/3/library/functions.html#bool "(in Python v3.12)")) – Flag denoting whether to copy the input circuit before acting on it + * **partition\_labels** ([`Sequence`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")\[[`Hashable`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Hashable "(in Python v3.13)")]) – A sequence containing a partition label for each qubit in the input circuit. Nonlocal gates belonging to more than one partition will be replaced with [`TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate")s. + * **inplace** ([`bool`](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – Flag denoting whether to copy the input circuit before acting on it **Return type** @@ -31,7 +31,7 @@ python_api_name: qiskit_addon_cutting.partition_circuit_qubits **Raises** - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – The length of partition\_labels does not equal the number of qubits in the circuit. - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – Input circuit contains unsupported gate. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – The length of partition\_labels does not equal the number of qubits in the circuit. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – Input circuit contains unsupported gate. diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_problem.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_problem.mdx index 57e7434a7c7..04b651ad63a 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_problem.mdx +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_problem.mdx @@ -37,10 +37,10 @@ python_api_name: qiskit_addon_cutting.partition_problem **Raises** - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – The number of partition labels does not equal the number of qubits in the circuit. - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – An input observable acts on a different number of qubits than the input circuit. - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – An input observable has a phase not equal to 1. - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – A qubit with a label of `None` is not idle - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – The input circuit should contain no classical bits or registers. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – The number of partition labels does not equal the number of qubits in the circuit. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – An input observable acts on a different number of qubits than the input circuit. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – An input observable has a phase not equal to 1. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – A qubit with a label of `None` is not idle + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – The input circuit should contain no classical bits or registers. diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.QPDBasis.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.QPDBasis.mdx index 7550bc43e40..790c6bdfc77 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.QPDBasis.mdx +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.QPDBasis.mdx @@ -11,7 +11,7 @@ python_api_name: qiskit_addon_cutting.qpd.QPDBasis # qiskit\_addon\_cutting.qpd.QPDBasis - Bases: [`object`](https://docs.python.org/3/library/functions.html#object "(in Python v3.12)") + Bases: [`object`](https://docs.python.org/3/library/functions.html#object "(in Python v3.13)") Basis in which to decompose an operation. @@ -21,8 +21,8 @@ python_api_name: qiskit_addon_cutting.qpd.QPDBasis **Parameters** - * **maps** ([`Sequence`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.12)")\[[`tuple`](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.12)")\[[`Sequence`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.12)")\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")], [`...`](https://docs.python.org/3/library/constants.html#Ellipsis "(in Python v3.12)")]]) – A sequence of tuples describing the noisy operations probabilistically used to simulate an ideal quantum operation. - * **coeffs** ([`Sequence`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.12)")\[[`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.12)")]) – Coefficients for quasiprobability representation. Each coefficient can be any real number. + * **maps** ([`Sequence`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")\[[`tuple`](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[`Sequence`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")\[[`Instruction`](/api/qiskit/qiskit.circuit.Instruction "(in Qiskit v1.2)")], [`...`](https://docs.python.org/3/library/constants.html#Ellipsis "(in Python v3.13)")]]) – A sequence of tuples describing the noisy operations probabilistically used to simulate an ideal quantum operation. + * **coeffs** ([`Sequence`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")\[[`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")]) – Coefficients for quasiprobability representation. Each coefficient can be any real number. **Returns** diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.SingleQubitQPDGate.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.SingleQubitQPDGate.mdx index c72ece79e17..5dd390a2e27 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.SingleQubitQPDGate.mdx +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.SingleQubitQPDGate.mdx @@ -25,7 +25,7 @@ python_api_name: qiskit_addon_cutting.qpd.SingleQubitQPDGate **Raises** - [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – qubit\_id is out of range + [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – qubit\_id is out of range ## Methods diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.TwoQubitQPDGate.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.TwoQubitQPDGate.mdx index 6358050dba8..eadbc949479 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.TwoQubitQPDGate.mdx +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.TwoQubitQPDGate.mdx @@ -19,7 +19,7 @@ python_api_name: qiskit_addon_cutting.qpd.TwoQubitQPDGate **Raises** - [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – The [`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.QPDBasis") acts on a number of qubits not equal to 2. + [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – The [`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.QPDBasis") acts on a number of qubits not equal to 2. ## Methods diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.WeightType.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.WeightType.mdx index 70327fdae17..d7e1b8ce1a3 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.WeightType.mdx +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.WeightType.mdx @@ -11,7 +11,7 @@ python_api_name: qiskit_addon_cutting.qpd.WeightType # qiskit\_addon\_cutting.qpd.WeightType - Bases: [`Enum`](https://docs.python.org/3/library/enum.html#enum.Enum "(in Python v3.12)") + Bases: [`Enum`](https://docs.python.org/3/library/enum.html#enum.Enum "(in Python v3.13)") Type of weight associated with a QPD sample. diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.decompose_qpd_instructions.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.decompose_qpd_instructions.mdx index 816ce29ae83..259f7e8b22f 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.decompose_qpd_instructions.mdx +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.decompose_qpd_instructions.mdx @@ -31,10 +31,10 @@ python_api_name: qiskit_addon_cutting.qpd.decompose_qpd_instructions **Raises** - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – An index in `instruction_ids` corresponds to a gate which is not a [`BaseQPDGate`](qiskit_addon_cutting.qpd.BaseQPDGate "qiskit_addon_cutting.qpd.BaseQPDGate") instance. - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – A list within instruction\_ids is not length 1 or 2. - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – The total number of indices in `instruction_ids` does not equal the number of [`BaseQPDGate`](qiskit_addon_cutting.qpd.BaseQPDGate "qiskit_addon_cutting.qpd.BaseQPDGate") instances in the circuit. - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – Gates within the same decomposition hold different QPD bases. - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – Length of `map_ids` does not equal the number of decompositions in the circuit. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – An index in `instruction_ids` corresponds to a gate which is not a [`BaseQPDGate`](qiskit_addon_cutting.qpd.BaseQPDGate "qiskit_addon_cutting.qpd.BaseQPDGate") instance. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – A list within instruction\_ids is not length 1 or 2. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – The total number of indices in `instruction_ids` does not equal the number of [`BaseQPDGate`](qiskit_addon_cutting.qpd.BaseQPDGate "qiskit_addon_cutting.qpd.BaseQPDGate") instances in the circuit. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – Gates within the same decomposition hold different QPD bases. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – Length of `map_ids` does not equal the number of decompositions in the circuit. diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.generate_qpd_weights.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.generate_qpd_weights.mdx index eea8de0653e..2a12ee50f27 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.generate_qpd_weights.mdx +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.generate_qpd_weights.mdx @@ -17,12 +17,12 @@ python_api_name: qiskit_addon_cutting.qpd.generate_qpd_weights **Parameters** - * **qpd\_bases** ([`Sequence`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.12)")\[[`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.qpd_basis.QPDBasis")]) – The [`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.QPDBasis") objects from which to generate weights - * **num\_samples** ([`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.12)")) – Controls the number of weights to generate + * **qpd\_bases** ([`Sequence`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")\[[`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.qpd_basis.QPDBasis")]) – The [`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.QPDBasis") objects from which to generate weights + * **num\_samples** ([`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – Controls the number of weights to generate **Return type** - [`dict`](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.12)")\[[`tuple`](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.12)")\[[`int`](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)"), [`...`](https://docs.python.org/3/library/constants.html#Ellipsis "(in Python v3.12)")], [`tuple`](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.12)")\[[`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.12)"), [`WeightType`](qiskit_addon_cutting.qpd.WeightType "qiskit_addon_cutting.qpd.weights.WeightType")]] + [`dict`](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.13)")\[[`tuple`](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[`int`](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)"), [`...`](https://docs.python.org/3/library/constants.html#Ellipsis "(in Python v3.13)")], [`tuple`](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)"), [`WeightType`](qiskit_addon_cutting.qpd.WeightType "qiskit_addon_cutting.qpd.weights.WeightType")]] **Returns** diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.qpdbasis_from_instruction.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.qpdbasis_from_instruction.mdx index 9e2ab2a3c9e..825b20aa1ab 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.qpdbasis_from_instruction.mdx +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.qpdbasis_from_instruction.mdx @@ -27,8 +27,8 @@ python_api_name: qiskit_addon_cutting.qpd.qpdbasis_from_instruction **Raises** - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – Instruction not supported. - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – Cannot decompose instruction with unbound parameters. - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – `to_matrix` conversion of two-qubit gate failed. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – Instruction not supported. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – Cannot decompose instruction with unbound parameters. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – `to_matrix` conversion of two-qubit gate failed. diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.reconstruct_expectation_values.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.reconstruct_expectation_values.mdx index c7e201dd024..e4bfd6f29e0 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.reconstruct_expectation_values.mdx +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.reconstruct_expectation_values.mdx @@ -37,7 +37,7 @@ python_api_name: qiskit_addon_cutting.reconstruct_expectation_values **Raises** - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – `observables` and `results` are of incompatible types. - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – An input observable has a phase not equal to 1. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – `observables` and `results` are of incompatible types. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – An input observable has a phase not equal to 1. diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.simulation.simulate_statevector_outcomes.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.simulation.simulate_statevector_outcomes.mdx index 2378e185c94..ebbff5a7856 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.simulation.simulate_statevector_outcomes.mdx +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.simulation.simulate_statevector_outcomes.mdx @@ -19,6 +19,6 @@ python_api_name: qiskit_addon_cutting.utils.simulation.simulate_statevector_outc **Return type** - [`dict`](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.12)")\[[`int`](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)"), [`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.12)")] + [`dict`](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.13)")\[[`int`](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)"), [`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")] diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.SeparatedCircuits.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.SeparatedCircuits.mdx index dcb8fb1c14f..59e8b37f4b3 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.SeparatedCircuits.mdx +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.SeparatedCircuits.mdx @@ -11,7 +11,7 @@ python_api_name: qiskit_addon_cutting.utils.transforms.SeparatedCircuits # qiskit\_addon\_cutting.utils.transforms.SeparatedCircuits - Bases: [`NamedTuple`](https://docs.python.org/3/library/typing.html#typing.NamedTuple "(in Python v3.12)") + Bases: [`NamedTuple`](https://docs.python.org/3/library/typing.html#typing.NamedTuple "(in Python v3.13)") Named tuple for result of [`separate_circuit()`](qiskit_addon_cutting.utils.transforms.separate_circuit "qiskit_addon_cutting.utils.transforms.separate_circuit"). diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.separate_circuit.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.separate_circuit.mdx index 3b3ee7f75f3..1a5c931ab0e 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.separate_circuit.mdx +++ b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.separate_circuit.mdx @@ -52,7 +52,7 @@ python_api_name: qiskit_addon_cutting.utils.transforms.separate_circuit **Raises** - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – The number of partition labels does not equal the number of qubits in the input circuit. - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – Operation spans more than one partition. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – The number of partition labels does not equal the number of qubits in the input circuit. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – Operation spans more than one partition. diff --git a/docs/api/qiskit-addon-cutting/release-notes.mdx b/docs/api/qiskit-addon-cutting/release-notes.mdx index 4250c321ab1..927adbe7aa2 100644 --- a/docs/api/qiskit-addon-cutting/release-notes.mdx +++ b/docs/api/qiskit-addon-cutting/release-notes.mdx @@ -80,7 +80,7 @@ The 0.7.1 release provides a workaround to ensure that the experiments generated ### Prelude -The 0.7 release introduces an automated cut finding code for the new circuit cutting workflow. With this milestone, the older cutting workflow (CutQC) is now deprecated. Additionally, this is the first CKT release to support version 2 of the Qiskit Runtime primitives. User are encouraged to [migrate to v2 primitives](/api/migration-guides/v2-primitives) as soon as possible. +The 0.7 release introduces an automated cut finding code for the new circuit cutting workflow. With this milestone, the older cutting workflow (CutQC) is now deprecated. Additionally, this is the first CKT release to support version 2 of the Qiskit Runtime primitives. User are encouraged to [migrate to v2 primitives](/migration-guides/v2-primitives) as soon as possible. @@ -90,7 +90,7 @@ The 0.7 release introduces an automated cut finding code for the new circuit cut * Added a cut-finder function, `circuit_knitting.cutting.find_cuts()`, for automatically identifying locations to place LO gate and wire cuts such that the circuit is separable and runnable, given the maximum number of qubits per subcircuit as a parameter. The cut-finder will search for cut schemes which minimize the sampling overhead. Note, however, that for larger circuits, the number of cuts needed to separate the circuit will naturally grow larger, leading to an exponentially increasing sampling overhead. For instances of wire cuts, the cut-finder assumes no qubit reuse. Therefore, for each wire cut, a new wire is added to the circuit. In addition, the cut-finder requires that every gate in an input circuit be at most a two qubit gate. The search algorithm used by the cut-finder to identify cut locations is Dijkstra’s best first search algorithm which is guaranteed to find solutions with the lowest sampling overhead, provided any user-specified value for the maximum number of allowed backjumps or for the maximum sampling overhead does not prematurely stop the search. If the user wishes to time-restrict the search when running the cut-finder on large circuits, they can specify a maximum sampling overhead and/or a maximum number of allowed backjumps, in which case the cut-finder will return a valid albeit suboptimal cut scheme. -* Circuit cutting reconstruction can now interpret the [`PrimitiveResult`](/api/qiskit/qiskit.primitives.PrimitiveResult "(in Qiskit v1.2)") object, which is returned by version 2 of the sampler primitive ([`BaseSamplerV2`](/api/qiskit/qiskit.primitives.BaseSamplerV2 "(in Qiskit v1.2)")). See the [migration guide](/api/migration-guides/qiskit-1.0-features#qiskitprimitives) for details on upgrading to version 2 of the Qiskit primitives. +* Circuit cutting reconstruction can now interpret the [`PrimitiveResult`](/api/qiskit/qiskit.primitives.PrimitiveResult "(in Qiskit v1.2)") object, which is returned by version 2 of the sampler primitive ([`BaseSamplerV2`](/api/qiskit/qiskit.primitives.BaseSamplerV2 "(in Qiskit v1.2)")). See the [migration guide](/migration-guides/qiskit-1.0-features#qiskitprimitives) for details on upgrading to version 2 of the Qiskit primitives. @@ -116,7 +116,7 @@ The 0.7 release introduces an automated cut finding code for the new circuit cut * The cutting tutorials have been rephrased with the goal of reconstructing the expectation value of a single [`SparsePauliOp`](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)") with many terms, rather than multiple independent [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)") observables. -* The [circuit cutting explanation](explanation/index) document has been expanded significantly. +* The [circuit cutting explanation](https://qiskit.github.io/qiskit-addon-cutting/explanation/index.html) document has been expanded significantly. @@ -236,7 +236,7 @@ The primary goal of this release is to modify the circuit cutting workflow to en ### Deprecation Notes -* The `execute_experiments()` function has been deprecated. Going forward, users should first call [`generate_cutting_experiments()`](qiskit_addon_cutting.generate_cutting_experiments "qiskit_addon_cutting.generate_cutting_experiments") to generate the subexperiment circuits and then submit these circuits directly to the desired Sampler(s). The [tutorials](tutorials/index#circuit-cutting-tutorials) have been updated with this new workflow. +* The `execute_experiments()` function has been deprecated. Going forward, users should first call [`generate_cutting_experiments()`](qiskit_addon_cutting.generate_cutting_experiments "qiskit_addon_cutting.generate_cutting_experiments") to generate the subexperiment circuits and then submit these circuits directly to the desired Sampler(s). The [tutorials](https://qiskit.github.io/qiskit-addon-cutting/tutorials/index.html) have been updated with this new workflow. @@ -281,7 +281,7 @@ The 0.3.0 release introduces significant new features while maintaining backward * `generate_qpd_weights()` now returns a mixture of exact and sampled weights when appropriate. Specifically, it exactly evaluates all weights greater than or equal to `1 / num_samples` and samples from the remaining weights (ones which are below this threshold). Previously, this function would only return exact weights if *all* weights were greater than or equal to `1 / num_samples`; otherwise, all weights were sampled. The new behavior is expected to improve performance on non-uniform quasi-probability decompositions, e.g. for cut instantiations of [`RXXGate`](/api/qiskit/qiskit.circuit.library.RXXGate "(in Qiskit v1.2)"), [`RYYGate`](/api/qiskit/qiskit.circuit.library.RYYGate "(in Qiskit v1.2)"), [`RZZGate`](/api/qiskit/qiskit.circuit.library.RZZGate "(in Qiskit v1.2)"), [`CRXGate`](/api/qiskit/qiskit.circuit.library.CRXGate "(in Qiskit v1.2)"), [`CRYGate`](/api/qiskit/qiskit.circuit.library.CRYGate "(in Qiskit v1.2)"), and [`CRZGate`](/api/qiskit/qiskit.circuit.library.CRZGate "(in Qiskit v1.2)") away from $\theta=\pi/2$. -* The `circuit_knitting.cutting` module now supports wire cutting. There is a [new tutorial](tutorials/index#circuit-cutting-tutorials) that explains how to use it. +* The `circuit_knitting.cutting` module now supports wire cutting. There is a [new tutorial](https://qiskit.github.io/qiskit-addon-cutting/tutorials/index.html) that explains how to use it. @@ -338,11 +338,11 @@ The 0.3.0 release introduces significant new features while maintaining backward ### Prelude -0.2.0 is centered around the addition of functions which allow for the easy implementation of a circuit cutting technique called gate cutting. For more details on circuit cutting, check out our [explanation guide](explanation/index#circuit-cutting-explanation). +0.2.0 is centered around the addition of functions which allow for the easy implementation of a circuit cutting technique called gate cutting. For more details on circuit cutting, check out our [explanation guide](https://qiskit.github.io/qiskit-addon-cutting/explanation/index.html). The foundation of the `circuit_cutting` package is the `circuit_knitting_toolbox.circuit_cutting.qpd` sub-package. The `qpd` package allows for easy transformation of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)") gates and wires into elements which may be decomposed to a probabilistic set of basis gates. See `QPDBasis` and `BaseQPDGate` classes for more information. -Additionally, 0.2.0 includes a set of functions which allow for easy implementation of gate cutting workflows. These functions are built on top of the `circuit_knitting_toolbox.circuit_cutting.qpd` package. Like all circuit knitting techniques, gate cutting can be described as three consecutive stages: *decomposition* of a problem, *execution* of many subexperiments, and *reconstruction* of a simulated output of the original problem. These steps may be implemented with the `circuit_cutting` package using only a few primary functions, namely, the [`partition_problem()`](qiskit_addon_cutting.partition_problem "qiskit_addon_cutting.partition_problem"), `decompose_gates()`, `execute_experiments()`, and [`reconstruct_expectation_values()`](qiskit_addon_cutting.reconstruct_expectation_values "qiskit_addon_cutting.reconstruct_expectation_values") functions. Check out the [tutorials](tutorials/index#circuit-cutting-tutorials) for a look at a couple of example circuit cutting workflows. +Additionally, 0.2.0 includes a set of functions which allow for easy implementation of gate cutting workflows. These functions are built on top of the `circuit_knitting_toolbox.circuit_cutting.qpd` package. Like all circuit knitting techniques, gate cutting can be described as three consecutive stages: *decomposition* of a problem, *execution* of many subexperiments, and *reconstruction* of a simulated output of the original problem. These steps may be implemented with the `circuit_cutting` package using only a few primary functions, namely, the [`partition_problem()`](qiskit_addon_cutting.partition_problem "qiskit_addon_cutting.partition_problem"), `decompose_gates()`, `execute_experiments()`, and [`reconstruct_expectation_values()`](qiskit_addon_cutting.reconstruct_expectation_values "qiskit_addon_cutting.reconstruct_expectation_values") functions. Check out the [tutorials](https://qiskit.github.io/qiskit-addon-cutting/tutorials/index.html) for a look at a couple of example circuit cutting workflows. diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.backpropagate.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.backpropagate.mdx index 978a4556386..21c692144de 100644 --- a/docs/api/qiskit-addon-obp/qiskit_addon_obp.backpropagate.mdx +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.backpropagate.mdx @@ -25,7 +25,7 @@ python_api_name: qiskit_addon_obp.backpropagate * **observables** ([*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)") *|*[*list*](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")*\[*[*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)")*]*) – The observable(s) onto which the circuit is backpropagated. * **slices** ([*Sequence*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")*\[*[*QuantumCircuit*](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")*]*) – A sequence of `QuantumCircuit` objects representing a single circuit which has been separated into partitions spanning all qubits. **These “slices” will be backpropagated in reverse order.** Each slice must span all qubits. One may use the tools provided in [`qiskit_addon_utils.slicing`](https://qiskit.github.io/qiskit-addon-utils/apidocs/qiskit_addon_utils.slicing.html#module-qiskit_addon_utils.slicing "(in Qiskit addon utilities)") to slice a single [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"). - * **truncation\_error\_budget** ([*TruncationErrorBudget*](qiskit_addon_obp.utils.truncating.TruncationErrorBudget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") *| None*) – The error budget used for truncating Pauli terms. Refer to the [how-to guide](how_tos/truncate_operator_terms) for a detailed discussion on truncating terms from the output operator and bounding the incurred error. + * **truncation\_error\_budget** ([*TruncationErrorBudget*](qiskit_addon_obp.utils.truncating.TruncationErrorBudget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") *| None*) – The error budget used for truncating Pauli terms. Refer to the [how-to guide](https://qiskit.github.io/qiskit-addon-obp/how_tos/truncate_operator_terms.html) for a detailed discussion on truncating terms from the output operator and bounding the incurred error. * **operator\_budget** ([*OperatorBudget*](qiskit_addon_obp.utils.simplify.OperatorBudget "qiskit_addon_obp.utils.simplify.OperatorBudget") *| None*) – Constraints on how large the operator may grow during backpropagation. If `None`, a default instance of [`OperatorBudget`](qiskit_addon_obp.utils.simplify.OperatorBudget "qiskit_addon_obp.utils.simplify.OperatorBudget") will be used, and no constraints will be placed on the output operator size. * **max\_seconds** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *| None*) – The maximum number of seconds to run the backpropagation. If this timeout is triggered before the function returns, the metadata of that moment will be returned. Note, that this metadata may contain only partial information for the last slice being backpropagated. diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.TruncationErrorBudget.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.TruncationErrorBudget.mdx index 765ec1da757..74e7425740c 100644 --- a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.TruncationErrorBudget.mdx +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.TruncationErrorBudget.mdx @@ -13,7 +13,7 @@ python_api_name: qiskit_addon_obp.utils.truncating.TruncationErrorBudget A class for storing the constants that determine the truncation error budget. - Refer to the [how-to guide](how_tos/truncate_operator_terms) for a detailed discussion on truncating operator terms during backpropagation and bounding the incurred error. + Refer to the [how-to guide](https://qiskit.github.io/qiskit-addon-obp/how_tos/truncate_operator_terms.html) for a detailed discussion on truncating operator terms during backpropagation and bounding the incurred error. ## Attributes @@ -28,7 +28,7 @@ python_api_name: qiskit_addon_obp.utils.truncating.TruncationErrorBudget Indicates which Lp-norm is used for calculating truncation errors. - Refer to the [how-to guide](how_tos/bound_error_using_p_norm) for a detailed conversation on bounding truncation error using higher Lp-norms. + Refer to the [how-to guide](https://qiskit.github.io/qiskit-addon-obp/how_tos/bound_error_using_p_norm.html) for a detailed conversation on bounding truncation error using higher Lp-norms. ### per\_slice\_budget diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.setup_budget.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.setup_budget.mdx index 2f09529c352..bd059b26ec1 100644 --- a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.setup_budget.mdx +++ b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.setup_budget.mdx @@ -13,7 +13,7 @@ python_api_name: qiskit_addon_obp.utils.truncating.setup_budget Calculate the budget available to each slice for observable term truncation. - This method makes the construction of a [`TruncationErrorBudget`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") easier for an end-user. This error budget can be provided to the [`backpropagate()`](qiskit_addon_obp.backpropagate "qiskit_addon_obp.backpropagate") method to enable the truncation of low-weight Pauli terms. Refer to the [how-to guide](how_tos/truncate_operator_terms) for a detailed discussion on truncating terms from the output operator and bounding the incurred error. + This method makes the construction of a [`TruncationErrorBudget`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") easier for an end-user. This error budget can be provided to the [`backpropagate()`](qiskit_addon_obp.backpropagate "qiskit_addon_obp.backpropagate") method to enable the truncation of low-weight Pauli terms. Refer to the [how-to guide](https://qiskit.github.io/qiskit-addon-obp/how_tos/truncate_operator_terms.html) for a detailed discussion on truncating terms from the output operator and bounding the incurred error. ## The construction logic is as follows: @@ -33,7 +33,7 @@ python_api_name: qiskit_addon_obp.utils.truncating.setup_budget * **max\_error\_per\_slice** ([*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") *|*[*Sequence*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")*\[*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")*] | None*) – Specifies the maximum error per backpropagated slice. See above for more details. * **max\_error\_total** ([*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") *| None*) – Specifies the total maximum error for the entire backpropagation. See above for more details. * **num\_slices** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *| None*) – The number of slices over which to distribute the budget. See above for more details. - * **p\_norm** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The Lp norm of the error. This affects the gradual distribution of `max_error_total` in the case of `num_slices` also being set (see above). Refer to the [how-to guide](how_tos/bound_error_using_p_norm) for a detailed conversation on bounding truncation error using higher Lp-norms. + * **p\_norm** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The Lp norm of the error. This affects the gradual distribution of `max_error_total` in the case of `num_slices` also being set (see above). Refer to the [how-to guide](https://qiskit.github.io/qiskit-addon-obp/how_tos/bound_error_using_p_norm.html) for a detailed conversation on bounding truncation error using higher Lp-norms. **Returns** diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.mdx index a44916cce46..be8f6a39175 100644 --- a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.mdx +++ b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.mdx @@ -6,7 +6,7 @@ Utility methods for circuit slicing. -For more information, check out the [how-to guide](how_tos/create_circuit_slices) which discusses this submodule. +For more information, check out the [how-to guide](https://qiskit.github.io/qiskit-addon-utils/how_tos/create_circuit_slices.html) which discusses this submodule. | | | | ------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------- | diff --git a/public/images/api/qiskit-addon-cutting/qiskit_addon_cutting-instructions-Move-1.svg b/public/images/api/qiskit-addon-cutting/qiskit_addon_cutting-instructions-Move-1.svg index 82d7e527452..8f337c96422 100644 --- a/public/images/api/qiskit-addon-cutting/qiskit_addon_cutting-instructions-Move-1.svg +++ b/public/images/api/qiskit-addon-cutting/qiskit_addon_cutting-instructions-Move-1.svg @@ -6,7 +6,7 @@ - 2024-09-16T18:09:51.165292 + 2024-10-24T23:41:25.973568 image/svg+xml @@ -32,22 +32,22 @@ z +" clip-path="url(#p61b5890b95)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p61b5890b95)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p61b5890b95)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p61b5890b95)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p61b5890b95)" style="fill: #ffffff; stroke: #ffffff; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p61b5890b95)" style="fill: #9f1853; stroke: #9f1853; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p61b5890b95)" style="fill: #9f1853; stroke: #9f1853; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p61b5890b95)" style="fill: #9f1853; stroke: #9f1853; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p61b5890b95)" style="fill: #33b1ff; stroke: #33b1ff; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p61b5890b95)" style="fill: #9f1853; stroke: #9f1853; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p61b5890b95)" style="fill: #9f1853; stroke: #9f1853; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p61b5890b95)" style="fill: #9f1853; stroke: #9f1853; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p61b5890b95)" style="fill: #9f1853; stroke: #9f1853; stroke-width: 1.5; stroke-linejoin: miter"/> - + @@ -184,7 +184,7 @@ z - + @@ -209,7 +209,7 @@ z - + @@ -244,7 +244,7 @@ z - + @@ -287,7 +287,7 @@ z - + @@ -295,7 +295,7 @@ z - + @@ -303,7 +303,7 @@ z - + @@ -364,7 +364,7 @@ z - + @@ -416,7 +416,7 @@ z - + @@ -426,7 +426,7 @@ z - + @@ -452,7 +452,7 @@ z - + @@ -460,7 +460,7 @@ z - + @@ -468,7 +468,7 @@ z - + @@ -553,7 +553,7 @@ z - + @@ -563,7 +563,7 @@ z - + @@ -587,7 +587,7 @@ z - + @@ -595,7 +595,7 @@ z - + @@ -603,7 +603,7 @@ z - + @@ -613,7 +613,7 @@ z - + @@ -623,7 +623,7 @@ z - + @@ -631,7 +631,7 @@ z - + @@ -639,7 +639,7 @@ z - + @@ -650,7 +650,7 @@ z - + @@ -660,7 +660,7 @@ z - + @@ -669,7 +669,7 @@ z - + @@ -677,7 +677,7 @@ z - + @@ -685,7 +685,7 @@ z - + @@ -695,7 +695,7 @@ z - + @@ -707,7 +707,7 @@ z - + diff --git a/scripts/js/lib/links/ignores.ts b/scripts/js/lib/links/ignores.ts index 6472014e4b5..24f9e437d05 100644 --- a/scripts/js/lib/links/ignores.ts +++ b/scripts/js/lib/links/ignores.ts @@ -321,29 +321,6 @@ function _legacyQiskitSDKIssues(): FilesToIgnores { }; } -function _addonsApiDocs(): FilesToIgnores { - return { - "docs/api/qiskit-addon-cutting/qiskit_addon_cutting.instructions.Move.mdx": - ["tutorials/03_wire_cutting_via_move_instruction"], - "docs/api/qiskit-addon-cutting/release-notes.mdx": [ - "/api/migration-guides/v2-primitives", - "/api/migration-guides/qiskit-1.0-features#qiskitprimitives", - "explanation/index", - "tutorials/index#circuit-cutting-tutorials", - "explanation/index#circuit-cutting-explanation", - ], - "docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.setup_budget.mdx": - ["how_tos/truncate_operator_terms", "how_tos/bound_error_using_p_norm"], - "docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.TruncationErrorBudget.mdx": - ["how_tos/truncate_operator_terms", "how_tos/bound_error_using_p_norm"], - "docs/api/qiskit-addon-obp/qiskit_addon_obp.backpropagate.mdx": [ - "how_tos/truncate_operator_terms", - ], - "docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.mdx": [ - "how_tos/create_circuit_slices", - ], - }; -} const FILES_TO_IGNORES__EXPECTED: FilesToIgnores = mergeFilesToIgnores( _qiskitUtilsData(), _patternsReorg(), @@ -351,8 +328,7 @@ const FILES_TO_IGNORES__EXPECTED: FilesToIgnores = mergeFilesToIgnores( _legacyQiskitSDKIssues(), ); -const FILES_TO_IGNORES__SHOULD_FIX: FilesToIgnores = - mergeFilesToIgnores(_addonsApiDocs()); +const FILES_TO_IGNORES__SHOULD_FIX: FilesToIgnores = {}; export const FILES_TO_IGNORES: FilesToIgnores = mergeFilesToIgnores( FILES_TO_IGNORES__EXPECTED, From 59e41621cecc883948ebcc6120d24bd69a42be47 Mon Sep 17 00:00:00 2001 From: lucachiese25 Date: Fri, 25 Oct 2024 22:06:23 +0200 Subject: [PATCH 27/32] fixed typo in Specify observables in the Pauli basis (#2182) fixes #2172 --------- Co-authored-by: CHIESELU Co-authored-by: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> --- docs/guides/specify-observables-pauli.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/specify-observables-pauli.ipynb b/docs/guides/specify-observables-pauli.ipynb index 989662ad7d0..b5dae5f369d 100644 --- a/docs/guides/specify-observables-pauli.ipynb +++ b/docs/guides/specify-observables-pauli.ipynb @@ -95,7 +95,7 @@ "O = \\frac{1}{n} \\sum_{i=1} Z_i\n", "$$\n", "\n", - "For observables that are not given in terms of Pauli operators but in a matrix for, we first have to reformulate them\n", + "For observables that are not given in terms of Pauli operators but in a matrix form, we first have to reformulate them\n", "in the Pauli basis in order to evaluate them on a quantum computer.\n", "We are always able to find such a representation as the Pauli matrices form a basis for the Hermitian $2^n \\times 2^n$ matrices.\n", "We expand the observable $O$ as\n", From 3b58c42340010393864d1562f835f6bfd23270f0 Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Fri, 25 Oct 2024 16:07:09 -0400 Subject: [PATCH 28/32] Shorten and use kebab-case for Addon URLs (#2177) Closes https://github.com/Qiskit/documentation/issues/2174. We now convert URLs like `qiskit_addon_obp.MyClass` to `my-class`. This is safe to change because the Addons are not yet public. We may eventually want to do this for Qiskit, Runtime, and Transpiler Service - for now, they stay the same. --- docs/api/qiskit-addon-cutting/_toc.json | 66 +++---- ...on_cutting.cut_gates.mdx => cut-gates.mdx} | 6 +- docs/api/qiskit-addon-cutting/cut-wires.mdx | 32 +++ ...Constraints.mdx => device-constraints.mdx} | 0 ...observables.mdx => expand-observables.mdx} | 0 ...on_cutting.find_cuts.mdx => find-cuts.mdx} | 6 +- ...s.mdx => generate-cutting-experiments.mdx} | 0 docs/api/qiskit-addon-cutting/index.mdx | 120 +++++------ ....CutWire.mdx => instructions-cut-wire.mdx} | 0 ...uctions.Move.mdx => instructions-move.mdx} | 0 ...meters.mdx => optimization-parameters.mdx} | 0 ...ubits.mdx => partition-circuit-qubits.mdx} | 8 +- ...tion_problem.mdx => partition-problem.mdx} | 4 +- ...em.mdx => partitioned-cutting-problem.mdx} | 0 .../qiskit_addon_cutting.cut_wires.mdx | 32 --- ....BaseQPDGate.mdx => qpd-base-qpd-gate.mdx} | 0 ...mdx => qpd-decompose-qpd-instructions.mdx} | 6 +- ...ights.mdx => qpd-generate-qpd-weights.mdx} | 8 +- ...ing.qpd.QPDBasis.mdx => qpd-qpd-basis.mdx} | 0 ....mdx => qpd-qpdbasis-from-instruction.mdx} | 8 +- ...Gate.mdx => qpd-single-qubit-qpd-gate.mdx} | 2 +- ...QPDGate.mdx => qpd-two-qubit-qpd-gate.mdx} | 4 +- ...qpd.WeightType.mdx => qpd-weight-type.mdx} | 0 ...mdx => reconstruct-expectation-values.mdx} | 4 +- .../qiskit-addon-cutting/release-notes.mdx | 38 ++-- ..._count.mdx => utils-bitwise-bit-count.mdx} | 0 ...q.mdx => utils-iteration-unique-by-eq.mdx} | 0 ...d.mdx => utils-iteration-unique-by-id.mdx} | 0 ...e-grouping-commuting-observable-group.mdx} | 0 ...rvable-grouping-observable-collection.mdx} | 10 +- ...g-observables-restricted-to-subsystem.mdx} | 0 ...mdx => utils-simulation-exact-sampler.mdx} | 0 ...ulation-simulate-statevector-outcomes.mdx} | 0 ... => utils-transforms-separate-circuit.mdx} | 2 +- ...> utils-transforms-separated-circuits.mdx} | 2 +- ...-transpiler-passes-consolidate-resets.mdx} | 0 ...-transpiler-passes-remove-final-reset.mdx} | 0 ...kit_addon_mpf.mdx => qiskit-addon-mpf.mdx} | 6 +- .../qiskit_addon_mpf.static.mdx | 26 --- ...ddon_mpf.static.LSE.mdx => static-lse.mdx} | 0 ...mdx => static-setup-approximate-model.mdx} | 4 +- ...model.mdx => static-setup-exact-model.mdx} | 8 +- ...tic.setup_lse.mdx => static-setup-lse.mdx} | 6 +- docs/api/qiskit-addon-mpf/static.mdx | 26 +++ ...bp.backpropagate.mdx => backpropagate.mdx} | 10 +- .../api/qiskit-addon-obp/qiskit-addon-obp.mdx | 17 ++ .../api/qiskit-addon-obp/qiskit_addon_obp.mdx | 17 -- .../qiskit_addon_obp.utils.mdx | 15 -- .../qiskit_addon_obp.utils.metadata.mdx | 12 -- .../qiskit_addon_obp.utils.operations.mdx | 13 -- .../qiskit_addon_obp.utils.simplify.mdx | 13 -- .../qiskit_addon_obp.utils.truncating.mdx | 13 -- .../qiskit_addon_obp.utils.visualization.mdx | 17 -- docs/api/qiskit-addon-obp/release-notes.mdx | 26 +-- ...ta.mdx => utils-metadata-obp-metadata.mdx} | 4 +- ....mdx => utils-metadata-slice-metadata.mdx} | 2 +- docs/api/qiskit-addon-obp/utils-metadata.mdx | 12 ++ ...o.mdx => utils-operations-apply-op-to.mdx} | 0 ..._op.mdx => utils-operations-reduce-op.mdx} | 0 ....mdx => utils-operations-to-global-op.mdx} | 0 .../api/qiskit-addon-obp/utils-operations.mdx | 13 ++ ...mdx => utils-simplify-operator-budget.mdx} | 2 +- ...x => utils-simplify-simplify-metadata.mdx} | 0 ...mplify.mdx => utils-simplify-simplify.mdx} | 2 +- docs/api/qiskit-addon-obp/utils-simplify.mdx | 13 ++ ....mdx => utils-truncating-setup-budget.mdx} | 12 +- ...ils-truncating-truncate-binary-search.mdx} | 0 ...ls-truncating-truncation-error-budget.mdx} | 0 .../api/qiskit-addon-obp/utils-truncating.mdx | 13 ++ ...-visualization-plot-accumulated-error.mdx} | 6 +- ...alization-plot-left-over-error-budget.mdx} | 4 +- ...> utils-visualization-plot-num-paulis.mdx} | 4 +- ...ils-visualization-plot-num-qwc-groups.mdx} | 2 +- ...sualization-plot-num-truncated-paulis.mdx} | 4 +- ...utils-visualization-plot-slice-errors.mdx} | 4 +- ...> utils-visualization-plot-sum-paulis.mdx} | 4 +- .../qiskit-addon-obp/utils-visualization.mdx | 17 ++ docs/api/qiskit-addon-obp/utils.mdx | 15 ++ ...ecovery-post-select-by-hamming-weight.mdx} | 0 ...ation-recovery-recover-configurations.mdx} | 0 .../configuration-recovery.mdx | 12 ++ ...arrays.mdx => counts-counts-to-arrays.mdx} | 0 ...nts-generate-counts-bipartite-hamming.mdx} | 0 ...mdx => counts-generate-counts-uniform.mdx} | 0 ...t.mdx => counts-normalize-counts-dict.mdx} | 0 docs/api/qiskit-addon-sqd/counts.mdx | 14 ++ ...> fermion-bitstring-matrix-to-ci-strs.mdx} | 0 ...-bitstring-matrix-to-sorted-addresses.mdx} | 0 ...ermion-enlarge-batch-from-transitions.mdx} | 0 ...x => fermion-flip-orbital-occupancies.mdx} | 0 ...tals.mdx => fermion-optimize-orbitals.mdx} | 0 ...grals.mdx => fermion-rotate-integrals.mdx} | 0 ..._fermion.mdx => fermion-solve-fermion.mdx} | 0 docs/api/qiskit-addon-sqd/fermion.mdx | 17 ++ .../api/qiskit-addon-sqd/qiskit-addon-sqd.mdx | 20 ++ ...iskit_addon_sqd.configuration_recovery.mdx | 12 -- .../qiskit_addon_sqd.counts.mdx | 14 -- .../qiskit_addon_sqd.fermion.mdx | 17 -- .../api/qiskit-addon-sqd/qiskit_addon_sqd.mdx | 20 -- .../qiskit_addon_sqd.qubit.mdx | 15 -- .../qiskit_addon_sqd.subsampling.mdx | 12 -- ...x => qubit-matrix-elements-from-pauli.mdx} | 2 +- ...=> qubit-project-operator-to-subspace.mdx} | 2 +- ....solve_qubit.mdx => qubit-solve-qubit.mdx} | 0 ...x => qubit-sort-and-remove-duplicates.mdx} | 0 docs/api/qiskit-addon-sqd/qubit.mdx | 15 ++ docs/api/qiskit-addon-sqd/release-notes.mdx | 16 +- ... subsampling-postselect-and-subsample.mdx} | 0 ...ubsample.mdx => subsampling-subsample.mdx} | 0 docs/api/qiskit-addon-sqd/subsampling.mdx | 12 ++ ...dges.mdx => coloring-auto-color-edges.mdx} | 0 ...dx => coloring-is-valid-edge-coloring.mdx} | 0 docs/api/qiskit-addon-utils/coloring.mdx | 12 ++ ...ators-generate-time-evolution-circuit.mdx} | 0 ...m-generators-generate-xyz-hamiltonian.mdx} | 2 +- ...oblem-generators-pauli-order-strategy.mdx} | 0 .../qiskit-addon-utils/problem-generators.mdx | 15 ++ .../qiskit-addon-utils/qiskit-addon-utils.mdx | 17 ++ .../qiskit_addon_utils.coloring.mdx | 12 -- .../qiskit-addon-utils/qiskit_addon_utils.mdx | 17 -- .../qiskit_addon_utils.problem_generators.mdx | 15 -- .../qiskit_addon_utils.slicing.mdx | 23 --- ..._addon_utils.slicing.transpiler.passes.mdx | 13 -- docs/api/qiskit-addon-utils/release-notes.mdx | 2 +- ..._slices.mdx => slicing-combine-slices.mdx} | 0 ...iers.mdx => slicing-slice-by-barriers.mdx} | 0 ...ring.mdx => slicing-slice-by-coloring.mdx} | 4 +- ...y_depth.mdx => slicing-slice-by-depth.mdx} | 0 ...es.mdx => slicing-slice-by-gate-types.mdx} | 0 ...ng-transpiler-passes-collect-op-color.mdx} | 0 ...ing-transpiler-passes-collect-op-size.mdx} | 0 ...ing-transpiler-passes-collect-op-type.mdx} | 0 .../slicing-transpiler-passes.mdx | 13 ++ ....transpiler.mdx => slicing-transpiler.mdx} | 6 +- docs/api/qiskit-addon-utils/slicing.mdx | 23 +++ public/api/qiskit-addon-cutting/objects.inv | Bin 3841 -> 3889 bytes public/api/qiskit-addon-mpf/objects.inv | Bin 1706 -> 1709 bytes public/api/qiskit-addon-obp/objects.inv | Bin 3195 -> 3217 bytes public/api/qiskit-addon-sqd/objects.inv | Bin 3659 -> 3671 bytes public/api/qiskit-addon-utils/objects.inv | Bin 2347 -> 2367 bytes scripts/js/lib/api/Pkg.ts | 14 ++ scripts/js/lib/api/conversionPipeline.test.ts | 1 + scripts/js/lib/api/conversionPipeline.ts | 13 +- scripts/js/lib/api/flattenFolders.test.ts | 33 ---- .../js/lib/api/normalizeResultUrls.test.ts | 77 ++++++++ ...attenFolders.ts => normalizeResultUrls.ts} | 24 ++- scripts/js/lib/api/updateLinks.test.ts | 186 +++++++++++++----- scripts/js/lib/api/updateLinks.ts | 48 +++-- 148 files changed, 836 insertions(+), 654 deletions(-) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.cut_gates.mdx => cut-gates.mdx} (77%) create mode 100644 docs/api/qiskit-addon-cutting/cut-wires.mdx rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.DeviceConstraints.mdx => device-constraints.mdx} (100%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.expand_observables.mdx => expand-observables.mdx} (100%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.find_cuts.mdx => find-cuts.mdx} (74%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.generate_cutting_experiments.mdx => generate-cutting-experiments.mdx} (100%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.instructions.CutWire.mdx => instructions-cut-wire.mdx} (100%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.instructions.Move.mdx => instructions-move.mdx} (100%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.OptimizationParameters.mdx => optimization-parameters.mdx} (100%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.partition_circuit_qubits.mdx => partition-circuit-qubits.mdx} (78%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.partition_problem.mdx => partition-problem.mdx} (84%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.PartitionedCuttingProblem.mdx => partitioned-cutting-problem.mdx} (100%) delete mode 100644 docs/api/qiskit-addon-cutting/qiskit_addon_cutting.cut_wires.mdx rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.qpd.BaseQPDGate.mdx => qpd-base-qpd-gate.mdx} (100%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.qpd.decompose_qpd_instructions.mdx => qpd-decompose-qpd-instructions.mdx} (87%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.qpd.generate_qpd_weights.mdx => qpd-generate-qpd-weights.mdx} (75%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.qpd.QPDBasis.mdx => qpd-qpd-basis.mdx} (100%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.qpd.qpdbasis_from_instruction.mdx => qpd-qpdbasis-from-instruction.mdx} (74%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.qpd.SingleQubitQPDGate.mdx => qpd-single-qubit-qpd-gate.mdx} (94%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.qpd.TwoQubitQPDGate.mdx => qpd-two-qubit-qpd-gate.mdx} (85%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.qpd.WeightType.mdx => qpd-weight-type.mdx} (100%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.reconstruct_expectation_values.mdx => reconstruct-expectation-values.mdx} (74%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.utils.bitwise.bit_count.mdx => utils-bitwise-bit-count.mdx} (100%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.utils.iteration.unique_by_eq.mdx => utils-iteration-unique-by-eq.mdx} (100%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.utils.iteration.unique_by_id.mdx => utils-iteration-unique-by-id.mdx} (100%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup.mdx => utils-observable-grouping-commuting-observable-group.mdx} (100%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.utils.observable_grouping.ObservableCollection.mdx => utils-observable-grouping-observable-collection.mdx} (83%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.utils.observable_grouping.observables_restricted_to_subsystem.mdx => utils-observable-grouping-observables-restricted-to-subsystem.mdx} (100%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.utils.simulation.ExactSampler.mdx => utils-simulation-exact-sampler.mdx} (100%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.utils.simulation.simulate_statevector_outcomes.mdx => utils-simulation-simulate-statevector-outcomes.mdx} (100%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.utils.transforms.separate_circuit.mdx => utils-transforms-separate-circuit.mdx} (92%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.utils.transforms.SeparatedCircuits.mdx => utils-transforms-separated-circuits.mdx} (90%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.utils.transpiler_passes.ConsolidateResets.mdx => utils-transpiler-passes-consolidate-resets.mdx} (100%) rename docs/api/qiskit-addon-cutting/{qiskit_addon_cutting.utils.transpiler_passes.RemoveFinalReset.mdx => utils-transpiler-passes-remove-final-reset.mdx} (100%) rename docs/api/qiskit-addon-mpf/{qiskit_addon_mpf.mdx => qiskit-addon-mpf.mdx} (58%) delete mode 100644 docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.mdx rename docs/api/qiskit-addon-mpf/{qiskit_addon_mpf.static.LSE.mdx => static-lse.mdx} (100%) rename docs/api/qiskit-addon-mpf/{qiskit_addon_mpf.static.setup_approximate_model.mdx => static-setup-approximate-model.mdx} (92%) rename docs/api/qiskit-addon-mpf/{qiskit_addon_mpf.static.setup_exact_model.mdx => static-setup-exact-model.mdx} (78%) rename docs/api/qiskit-addon-mpf/{qiskit_addon_mpf.static.setup_lse.mdx => static-setup-lse.mdx} (89%) create mode 100644 docs/api/qiskit-addon-mpf/static.mdx rename docs/api/qiskit-addon-obp/{qiskit_addon_obp.backpropagate.mdx => backpropagate.mdx} (74%) create mode 100644 docs/api/qiskit-addon-obp/qiskit-addon-obp.mdx delete mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.mdx delete mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.mdx delete mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.metadata.mdx delete mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.mdx delete mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.mdx delete mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.mdx delete mode 100644 docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.mdx rename docs/api/qiskit-addon-obp/{qiskit_addon_obp.utils.metadata.OBPMetadata.mdx => utils-metadata-obp-metadata.mdx} (88%) rename docs/api/qiskit-addon-obp/{qiskit_addon_obp.utils.metadata.SliceMetadata.mdx => utils-metadata-slice-metadata.mdx} (96%) create mode 100644 docs/api/qiskit-addon-obp/utils-metadata.mdx rename docs/api/qiskit-addon-obp/{qiskit_addon_obp.utils.operations.apply_op_to.mdx => utils-operations-apply-op-to.mdx} (100%) rename docs/api/qiskit-addon-obp/{qiskit_addon_obp.utils.operations.reduce_op.mdx => utils-operations-reduce-op.mdx} (100%) rename docs/api/qiskit-addon-obp/{qiskit_addon_obp.utils.operations.to_global_op.mdx => utils-operations-to-global-op.mdx} (100%) create mode 100644 docs/api/qiskit-addon-obp/utils-operations.mdx rename docs/api/qiskit-addon-obp/{qiskit_addon_obp.utils.simplify.OperatorBudget.mdx => utils-simplify-operator-budget.mdx} (93%) rename docs/api/qiskit-addon-obp/{qiskit_addon_obp.utils.simplify.SimplifyMetadata.mdx => utils-simplify-simplify-metadata.mdx} (100%) rename docs/api/qiskit-addon-obp/{qiskit_addon_obp.utils.simplify.simplify.mdx => utils-simplify-simplify.mdx} (93%) create mode 100644 docs/api/qiskit-addon-obp/utils-simplify.mdx rename docs/api/qiskit-addon-obp/{qiskit_addon_obp.utils.truncating.setup_budget.mdx => utils-truncating-setup-budget.mdx} (68%) rename docs/api/qiskit-addon-obp/{qiskit_addon_obp.utils.truncating.truncate_binary_search.mdx => utils-truncating-truncate-binary-search.mdx} (100%) rename docs/api/qiskit-addon-obp/{qiskit_addon_obp.utils.truncating.TruncationErrorBudget.mdx => utils-truncating-truncation-error-budget.mdx} (100%) create mode 100644 docs/api/qiskit-addon-obp/utils-truncating.mdx rename docs/api/qiskit-addon-obp/{qiskit_addon_obp.utils.visualization.plot_accumulated_error.mdx => utils-visualization-plot-accumulated-error.mdx} (74%) rename docs/api/qiskit-addon-obp/{qiskit_addon_obp.utils.visualization.plot_left_over_error_budget.mdx => utils-visualization-plot-left-over-error-budget.mdx} (80%) rename docs/api/qiskit-addon-obp/{qiskit_addon_obp.utils.visualization.plot_num_paulis.mdx => utils-visualization-plot-num-paulis.mdx} (86%) rename docs/api/qiskit-addon-obp/{qiskit_addon_obp.utils.visualization.plot_num_qwc_groups.mdx => utils-visualization-plot-num-qwc-groups.mdx} (93%) rename docs/api/qiskit-addon-obp/{qiskit_addon_obp.utils.visualization.plot_num_truncated_paulis.mdx => utils-visualization-plot-num-truncated-paulis.mdx} (89%) rename docs/api/qiskit-addon-obp/{qiskit_addon_obp.utils.visualization.plot_slice_errors.mdx => utils-visualization-plot-slice-errors.mdx} (87%) rename docs/api/qiskit-addon-obp/{qiskit_addon_obp.utils.visualization.plot_sum_paulis.mdx => utils-visualization-plot-sum-paulis.mdx} (88%) create mode 100644 docs/api/qiskit-addon-obp/utils-visualization.mdx create mode 100644 docs/api/qiskit-addon-obp/utils.mdx rename docs/api/qiskit-addon-sqd/{qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight.mdx => configuration-recovery-post-select-by-hamming-weight.mdx} (100%) rename docs/api/qiskit-addon-sqd/{qiskit_addon_sqd.configuration_recovery.recover_configurations.mdx => configuration-recovery-recover-configurations.mdx} (100%) create mode 100644 docs/api/qiskit-addon-sqd/configuration-recovery.mdx rename docs/api/qiskit-addon-sqd/{qiskit_addon_sqd.counts.counts_to_arrays.mdx => counts-counts-to-arrays.mdx} (100%) rename docs/api/qiskit-addon-sqd/{qiskit_addon_sqd.counts.generate_counts_bipartite_hamming.mdx => counts-generate-counts-bipartite-hamming.mdx} (100%) rename docs/api/qiskit-addon-sqd/{qiskit_addon_sqd.counts.generate_counts_uniform.mdx => counts-generate-counts-uniform.mdx} (100%) rename docs/api/qiskit-addon-sqd/{qiskit_addon_sqd.counts.normalize_counts_dict.mdx => counts-normalize-counts-dict.mdx} (100%) create mode 100644 docs/api/qiskit-addon-sqd/counts.mdx rename docs/api/qiskit-addon-sqd/{qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs.mdx => fermion-bitstring-matrix-to-ci-strs.mdx} (100%) rename docs/api/qiskit-addon-sqd/{qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses.mdx => fermion-bitstring-matrix-to-sorted-addresses.mdx} (100%) rename docs/api/qiskit-addon-sqd/{qiskit_addon_sqd.fermion.enlarge_batch_from_transitions.mdx => fermion-enlarge-batch-from-transitions.mdx} (100%) rename docs/api/qiskit-addon-sqd/{qiskit_addon_sqd.fermion.flip_orbital_occupancies.mdx => fermion-flip-orbital-occupancies.mdx} (100%) rename docs/api/qiskit-addon-sqd/{qiskit_addon_sqd.fermion.optimize_orbitals.mdx => fermion-optimize-orbitals.mdx} (100%) rename docs/api/qiskit-addon-sqd/{qiskit_addon_sqd.fermion.rotate_integrals.mdx => fermion-rotate-integrals.mdx} (100%) rename docs/api/qiskit-addon-sqd/{qiskit_addon_sqd.fermion.solve_fermion.mdx => fermion-solve-fermion.mdx} (100%) create mode 100644 docs/api/qiskit-addon-sqd/fermion.mdx create mode 100644 docs/api/qiskit-addon-sqd/qiskit-addon-sqd.mdx delete mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.configuration_recovery.mdx delete mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.mdx delete mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.mdx delete mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.mdx delete mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.mdx delete mode 100644 docs/api/qiskit-addon-sqd/qiskit_addon_sqd.subsampling.mdx rename docs/api/qiskit-addon-sqd/{qiskit_addon_sqd.qubit.matrix_elements_from_pauli.mdx => qubit-matrix-elements-from-pauli.mdx} (93%) rename docs/api/qiskit-addon-sqd/{qiskit_addon_sqd.qubit.project_operator_to_subspace.mdx => qubit-project-operator-to-subspace.mdx} (93%) rename docs/api/qiskit-addon-sqd/{qiskit_addon_sqd.qubit.solve_qubit.mdx => qubit-solve-qubit.mdx} (100%) rename docs/api/qiskit-addon-sqd/{qiskit_addon_sqd.qubit.sort_and_remove_duplicates.mdx => qubit-sort-and-remove-duplicates.mdx} (100%) create mode 100644 docs/api/qiskit-addon-sqd/qubit.mdx rename docs/api/qiskit-addon-sqd/{qiskit_addon_sqd.subsampling.postselect_and_subsample.mdx => subsampling-postselect-and-subsample.mdx} (100%) rename docs/api/qiskit-addon-sqd/{qiskit_addon_sqd.subsampling.subsample.mdx => subsampling-subsample.mdx} (100%) create mode 100644 docs/api/qiskit-addon-sqd/subsampling.mdx rename docs/api/qiskit-addon-utils/{qiskit_addon_utils.coloring.auto_color_edges.mdx => coloring-auto-color-edges.mdx} (100%) rename docs/api/qiskit-addon-utils/{qiskit_addon_utils.coloring.is_valid_edge_coloring.mdx => coloring-is-valid-edge-coloring.mdx} (100%) create mode 100644 docs/api/qiskit-addon-utils/coloring.mdx rename docs/api/qiskit-addon-utils/{qiskit_addon_utils.problem_generators.generate_time_evolution_circuit.mdx => problem-generators-generate-time-evolution-circuit.mdx} (100%) rename docs/api/qiskit-addon-utils/{qiskit_addon_utils.problem_generators.generate_xyz_hamiltonian.mdx => problem-generators-generate-xyz-hamiltonian.mdx} (92%) rename docs/api/qiskit-addon-utils/{qiskit_addon_utils.problem_generators.PauliOrderStrategy.mdx => problem-generators-pauli-order-strategy.mdx} (100%) create mode 100644 docs/api/qiskit-addon-utils/problem-generators.mdx create mode 100644 docs/api/qiskit-addon-utils/qiskit-addon-utils.mdx delete mode 100644 docs/api/qiskit-addon-utils/qiskit_addon_utils.coloring.mdx delete mode 100644 docs/api/qiskit-addon-utils/qiskit_addon_utils.mdx delete mode 100644 docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.mdx delete mode 100644 docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.mdx delete mode 100644 docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.mdx rename docs/api/qiskit-addon-utils/{qiskit_addon_utils.slicing.combine_slices.mdx => slicing-combine-slices.mdx} (100%) rename docs/api/qiskit-addon-utils/{qiskit_addon_utils.slicing.slice_by_barriers.mdx => slicing-slice-by-barriers.mdx} (100%) rename docs/api/qiskit-addon-utils/{qiskit_addon_utils.slicing.slice_by_coloring.mdx => slicing-slice-by-coloring.mdx} (90%) rename docs/api/qiskit-addon-utils/{qiskit_addon_utils.slicing.slice_by_depth.mdx => slicing-slice-by-depth.mdx} (100%) rename docs/api/qiskit-addon-utils/{qiskit_addon_utils.slicing.slice_by_gate_types.mdx => slicing-slice-by-gate-types.mdx} (100%) rename docs/api/qiskit-addon-utils/{qiskit_addon_utils.slicing.transpiler.passes.CollectOpColor.mdx => slicing-transpiler-passes-collect-op-color.mdx} (100%) rename docs/api/qiskit-addon-utils/{qiskit_addon_utils.slicing.transpiler.passes.CollectOpSize.mdx => slicing-transpiler-passes-collect-op-size.mdx} (100%) rename docs/api/qiskit-addon-utils/{qiskit_addon_utils.slicing.transpiler.passes.CollectOpType.mdx => slicing-transpiler-passes-collect-op-type.mdx} (100%) create mode 100644 docs/api/qiskit-addon-utils/slicing-transpiler-passes.mdx rename docs/api/qiskit-addon-utils/{qiskit_addon_utils.slicing.transpiler.mdx => slicing-transpiler.mdx} (54%) create mode 100644 docs/api/qiskit-addon-utils/slicing.mdx delete mode 100644 scripts/js/lib/api/flattenFolders.test.ts create mode 100644 scripts/js/lib/api/normalizeResultUrls.test.ts rename scripts/js/lib/api/{flattenFolders.ts => normalizeResultUrls.ts} (52%) diff --git a/docs/api/qiskit-addon-cutting/_toc.json b/docs/api/qiskit-addon-cutting/_toc.json index aa71d8b44f0..1e3c2d80856 100644 --- a/docs/api/qiskit-addon-cutting/_toc.json +++ b/docs/api/qiskit-addon-cutting/_toc.json @@ -14,135 +14,135 @@ }, { "title": "BaseQPDGate", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.BaseQPDGate" + "url": "/api/qiskit-addon-cutting/qpd-base-qpd-gate" }, { "title": "bit_count", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.bitwise.bit_count" + "url": "/api/qiskit-addon-cutting/utils-bitwise-bit-count" }, { "title": "CommutingObservableGroup", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup" + "url": "/api/qiskit-addon-cutting/utils-observable-grouping-commuting-observable-group" }, { "title": "ConsolidateResets", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transpiler_passes.ConsolidateResets" + "url": "/api/qiskit-addon-cutting/utils-transpiler-passes-consolidate-resets" }, { "title": "cut_gates", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.cut_gates" + "url": "/api/qiskit-addon-cutting/cut-gates" }, { "title": "cut_wires", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.cut_wires" + "url": "/api/qiskit-addon-cutting/cut-wires" }, { "title": "CutWire", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.instructions.CutWire" + "url": "/api/qiskit-addon-cutting/instructions-cut-wire" }, { "title": "decompose_qpd_instructions", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.decompose_qpd_instructions" + "url": "/api/qiskit-addon-cutting/qpd-decompose-qpd-instructions" }, { "title": "DeviceConstraints", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.DeviceConstraints" + "url": "/api/qiskit-addon-cutting/device-constraints" }, { "title": "ExactSampler", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.simulation.ExactSampler" + "url": "/api/qiskit-addon-cutting/utils-simulation-exact-sampler" }, { "title": "expand_observables", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.expand_observables" + "url": "/api/qiskit-addon-cutting/expand-observables" }, { "title": "find_cuts", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.find_cuts" + "url": "/api/qiskit-addon-cutting/find-cuts" }, { "title": "generate_cutting_experiments", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.generate_cutting_experiments" + "url": "/api/qiskit-addon-cutting/generate-cutting-experiments" }, { "title": "generate_qpd_weights", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.generate_qpd_weights" + "url": "/api/qiskit-addon-cutting/qpd-generate-qpd-weights" }, { "title": "Move", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.instructions.Move" + "url": "/api/qiskit-addon-cutting/instructions-move" }, { "title": "ObservableCollection", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.ObservableCollection" + "url": "/api/qiskit-addon-cutting/utils-observable-grouping-observable-collection" }, { "title": "observables_restricted_to_subsystem", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.observables_restricted_to_subsystem" + "url": "/api/qiskit-addon-cutting/utils-observable-grouping-observables-restricted-to-subsystem" }, { "title": "OptimizationParameters", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.OptimizationParameters" + "url": "/api/qiskit-addon-cutting/optimization-parameters" }, { "title": "partition_circuit_qubits", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_circuit_qubits" + "url": "/api/qiskit-addon-cutting/partition-circuit-qubits" }, { "title": "partition_problem", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_problem" + "url": "/api/qiskit-addon-cutting/partition-problem" }, { "title": "PartitionedCuttingProblem", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.PartitionedCuttingProblem" + "url": "/api/qiskit-addon-cutting/partitioned-cutting-problem" }, { "title": "QPDBasis", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.QPDBasis" + "url": "/api/qiskit-addon-cutting/qpd-qpd-basis" }, { "title": "qpdbasis_from_instruction", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.qpdbasis_from_instruction" + "url": "/api/qiskit-addon-cutting/qpd-qpdbasis-from-instruction" }, { "title": "reconstruct_expectation_values", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.reconstruct_expectation_values" + "url": "/api/qiskit-addon-cutting/reconstruct-expectation-values" }, { "title": "RemoveFinalReset", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transpiler_passes.RemoveFinalReset" + "url": "/api/qiskit-addon-cutting/utils-transpiler-passes-remove-final-reset" }, { "title": "separate_circuit", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.separate_circuit" + "url": "/api/qiskit-addon-cutting/utils-transforms-separate-circuit" }, { "title": "SeparatedCircuits", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.SeparatedCircuits" + "url": "/api/qiskit-addon-cutting/utils-transforms-separated-circuits" }, { "title": "simulate_statevector_outcomes", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.simulation.simulate_statevector_outcomes" + "url": "/api/qiskit-addon-cutting/utils-simulation-simulate-statevector-outcomes" }, { "title": "SingleQubitQPDGate", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.SingleQubitQPDGate" + "url": "/api/qiskit-addon-cutting/qpd-single-qubit-qpd-gate" }, { "title": "TwoQubitQPDGate", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.TwoQubitQPDGate" + "url": "/api/qiskit-addon-cutting/qpd-two-qubit-qpd-gate" }, { "title": "unique_by_eq", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.iteration.unique_by_eq" + "url": "/api/qiskit-addon-cutting/utils-iteration-unique-by-eq" }, { "title": "unique_by_id", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.iteration.unique_by_id" + "url": "/api/qiskit-addon-cutting/utils-iteration-unique-by-id" }, { "title": "WeightType", - "url": "/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.WeightType" + "url": "/api/qiskit-addon-cutting/qpd-weight-type" } ] }, diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.cut_gates.mdx b/docs/api/qiskit-addon-cutting/cut-gates.mdx similarity index 77% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.cut_gates.mdx rename to docs/api/qiskit-addon-cutting/cut-gates.mdx index 20fb84628d7..4b324566278 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.cut_gates.mdx +++ b/docs/api/qiskit-addon-cutting/cut-gates.mdx @@ -11,7 +11,7 @@ python_api_name: qiskit_addon_cutting.cut_gates # qiskit\_addon\_cutting.cut\_gates - Transform specified gates into [`TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate")s. + Transform specified gates into [`TwoQubitQPDGate`](qpd-two-qubit-qpd-gate "qiskit_addon_cutting.qpd.TwoQubitQPDGate")s. **Parameters** @@ -21,11 +21,11 @@ python_api_name: qiskit_addon_cutting.cut_gates **Return type** - [`tuple`](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`list`](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")\[[`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.qpd_basis.QPDBasis")]] + [`tuple`](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), [`list`](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")\[[`QPDBasis`](qpd-qpd-basis "qiskit_addon_cutting.qpd.qpd_basis.QPDBasis")]] **Returns** - A copy of the input circuit with the specified gates replaced with [`TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate")s and a list of [`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.QPDBasis") instances – one for each decomposed gate. + A copy of the input circuit with the specified gates replaced with [`TwoQubitQPDGate`](qpd-two-qubit-qpd-gate "qiskit_addon_cutting.qpd.TwoQubitQPDGate")s and a list of [`QPDBasis`](qpd-qpd-basis "qiskit_addon_cutting.qpd.QPDBasis") instances – one for each decomposed gate. **Raises** diff --git a/docs/api/qiskit-addon-cutting/cut-wires.mdx b/docs/api/qiskit-addon-cutting/cut-wires.mdx new file mode 100644 index 00000000000..5800119212c --- /dev/null +++ b/docs/api/qiskit-addon-cutting/cut-wires.mdx @@ -0,0 +1,32 @@ +--- +title: cut_wires +description: API reference for qiskit_addon_cutting.cut_wires +in_page_toc_min_heading_level: 1 +python_api_type: function +python_api_name: qiskit_addon_cutting.cut_wires +--- + + + +# qiskit\_addon\_cutting.cut\_wires + + + Transform all [`CutWire`](instructions-cut-wire "qiskit_addon_cutting.instructions.CutWire") instructions in a circuit to [`Move`](instructions-move "qiskit_addon_cutting.instructions.Move") instructions marked for cutting. + + The returned circuit will have one newly allocated qubit for every [`CutWire`](instructions-cut-wire "qiskit_addon_cutting.instructions.CutWire") instruction. + + See Sec. 3 and Appendix A of [2302.03366v1](https://arxiv.org/abs/2302.03366v1) for more information about the two different representations of wire cuts: single-qubit ([`CutWire`](instructions-cut-wire "qiskit_addon_cutting.instructions.CutWire")) vs. two-qubit ([`Move`](instructions-move "qiskit_addon_cutting.instructions.Move")). + + **Parameters** + + **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Original circuit with [`CutWire`](instructions-cut-wire "qiskit_addon_cutting.instructions.CutWire") instructions + + **Returns** + + New circuit with [`CutWire`](instructions-cut-wire "qiskit_addon_cutting.instructions.CutWire") instructions replaced by [`Move`](instructions-move "qiskit_addon_cutting.instructions.Move") instructions wrapped in `TwoQubitQPDGate`s + + **Return type** + + circuit + + diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.DeviceConstraints.mdx b/docs/api/qiskit-addon-cutting/device-constraints.mdx similarity index 100% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.DeviceConstraints.mdx rename to docs/api/qiskit-addon-cutting/device-constraints.mdx diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.expand_observables.mdx b/docs/api/qiskit-addon-cutting/expand-observables.mdx similarity index 100% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.expand_observables.mdx rename to docs/api/qiskit-addon-cutting/expand-observables.mdx diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.find_cuts.mdx b/docs/api/qiskit-addon-cutting/find-cuts.mdx similarity index 74% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.find_cuts.mdx rename to docs/api/qiskit-addon-cutting/find-cuts.mdx index d97a17d3403..53e94280ef3 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.find_cuts.mdx +++ b/docs/api/qiskit-addon-cutting/find-cuts.mdx @@ -16,8 +16,8 @@ python_api_name: qiskit_addon_cutting.find_cuts **Parameters** * **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – The circuit to cut. The input circuit may not contain gates acting on more than two qubits. - * **optimization** ([`OptimizationParameters`](qiskit_addon_cutting.OptimizationParameters "qiskit_addon_cutting.automated_cut_finding.OptimizationParameters")) – Options for controlling optimizer behavior. Currently, the optimal cuts are chosen using Dijkstra’s best-first search algorithm. - * **constraints** ([`DeviceConstraints`](qiskit_addon_cutting.DeviceConstraints "qiskit_addon_cutting.automated_cut_finding.DeviceConstraints")) – Constraints on how the circuit may be partitioned + * **optimization** ([`OptimizationParameters`](optimization-parameters "qiskit_addon_cutting.automated_cut_finding.OptimizationParameters")) – Options for controlling optimizer behavior. Currently, the optimal cuts are chosen using Dijkstra’s best-first search algorithm. + * **constraints** ([`DeviceConstraints`](device-constraints "qiskit_addon_cutting.automated_cut_finding.DeviceConstraints")) – Constraints on how the circuit may be partitioned **Return type** @@ -25,7 +25,7 @@ python_api_name: qiskit_addon_cutting.find_cuts **Returns** - A circuit containing [`BaseQPDGate`](qiskit_addon_cutting.qpd.BaseQPDGate "qiskit_addon_cutting.qpd.BaseQPDGate") instances. The subcircuits resulting from cutting these gates will be runnable on the devices meeting the `constraints`. + A circuit containing [`BaseQPDGate`](qpd-base-qpd-gate "qiskit_addon_cutting.qpd.BaseQPDGate") instances. The subcircuits resulting from cutting these gates will be runnable on the devices meeting the `constraints`. **A metadata dictionary:** diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.generate_cutting_experiments.mdx b/docs/api/qiskit-addon-cutting/generate-cutting-experiments.mdx similarity index 100% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.generate_cutting_experiments.mdx rename to docs/api/qiskit-addon-cutting/generate-cutting-experiments.mdx diff --git a/docs/api/qiskit-addon-cutting/index.mdx b/docs/api/qiskit-addon-cutting/index.mdx index f1ce6f0ad24..add344534d7 100644 --- a/docs/api/qiskit-addon-cutting/index.mdx +++ b/docs/api/qiskit-addon-cutting/index.mdx @@ -18,48 +18,48 @@ Circuit Cutting ([`qiskit_addon_cutting`](#module-qiskit_addon_cutting "qiskit_a ### Circuit Cutting -| | | -| --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| [`cut_wires`](qiskit_addon_cutting.cut_wires "qiskit_addon_cutting.cut_wires") | Transform all [`CutWire`](qiskit_addon_cutting.instructions.CutWire "qiskit_addon_cutting.instructions.CutWire") instructions in a circuit to [`Move`](qiskit_addon_cutting.instructions.Move "qiskit_addon_cutting.instructions.Move") instructions marked for cutting. | -| [`expand_observables`](qiskit_addon_cutting.expand_observables "qiskit_addon_cutting.expand_observables") | Expand observable(s) according to the qubit mapping between `original_circuit` and `final_circuit`. | -| [`partition_circuit_qubits`](qiskit_addon_cutting.partition_circuit_qubits "qiskit_addon_cutting.partition_circuit_qubits") | Replace all nonlocal gates belonging to more than one partition with instances of [`TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate"). | -| [`partition_problem`](qiskit_addon_cutting.partition_problem "qiskit_addon_cutting.partition_problem") | Separate an input circuit and observable(s). | -| [`cut_gates`](qiskit_addon_cutting.cut_gates "qiskit_addon_cutting.cut_gates") | Transform specified gates into [`TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate")s. | -| [`generate_cutting_experiments`](qiskit_addon_cutting.generate_cutting_experiments "qiskit_addon_cutting.generate_cutting_experiments") | Generate cutting subexperiments and their associated coefficients. | -| [`reconstruct_expectation_values`](qiskit_addon_cutting.reconstruct_expectation_values "qiskit_addon_cutting.reconstruct_expectation_values") | Reconstruct an expectation value from the results of the sub-experiments. | - -| | | -| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | -| [`PartitionedCuttingProblem`](qiskit_addon_cutting.PartitionedCuttingProblem "qiskit_addon_cutting.PartitionedCuttingProblem") | The result of decomposing and separating a circuit and observable(s). | -| [`instructions.CutWire`](qiskit_addon_cutting.instructions.CutWire "qiskit_addon_cutting.instructions.CutWire") | An instruction for denoting a wire cut location. | -| [`instructions.Move`](qiskit_addon_cutting.instructions.Move "qiskit_addon_cutting.instructions.Move") | A two-qubit instruction representing a reset of the second qubit followed by a swap. | +| | | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [`cut_wires`](cut-wires "qiskit_addon_cutting.cut_wires") | Transform all [`CutWire`](instructions-cut-wire "qiskit_addon_cutting.instructions.CutWire") instructions in a circuit to [`Move`](instructions-move "qiskit_addon_cutting.instructions.Move") instructions marked for cutting. | +| [`expand_observables`](expand-observables "qiskit_addon_cutting.expand_observables") | Expand observable(s) according to the qubit mapping between `original_circuit` and `final_circuit`. | +| [`partition_circuit_qubits`](partition-circuit-qubits "qiskit_addon_cutting.partition_circuit_qubits") | Replace all nonlocal gates belonging to more than one partition with instances of [`TwoQubitQPDGate`](qpd-two-qubit-qpd-gate "qiskit_addon_cutting.qpd.TwoQubitQPDGate"). | +| [`partition_problem`](partition-problem "qiskit_addon_cutting.partition_problem") | Separate an input circuit and observable(s). | +| [`cut_gates`](cut-gates "qiskit_addon_cutting.cut_gates") | Transform specified gates into [`TwoQubitQPDGate`](qpd-two-qubit-qpd-gate "qiskit_addon_cutting.qpd.TwoQubitQPDGate")s. | +| [`generate_cutting_experiments`](generate-cutting-experiments "qiskit_addon_cutting.generate_cutting_experiments") | Generate cutting subexperiments and their associated coefficients. | +| [`reconstruct_expectation_values`](reconstruct-expectation-values "qiskit_addon_cutting.reconstruct_expectation_values") | Reconstruct an expectation value from the results of the sub-experiments. | + +| | | +| ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ | +| [`PartitionedCuttingProblem`](partitioned-cutting-problem "qiskit_addon_cutting.PartitionedCuttingProblem") | The result of decomposing and separating a circuit and observable(s). | +| [`instructions.CutWire`](instructions-cut-wire "qiskit_addon_cutting.instructions.CutWire") | An instruction for denoting a wire cut location. | +| [`instructions.Move`](instructions-move "qiskit_addon_cutting.instructions.Move") | A two-qubit instruction representing a reset of the second qubit followed by a swap. | #### Automatic Cut Finding -| | | -| ------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------- | -| [`find_cuts`](qiskit_addon_cutting.find_cuts "qiskit_addon_cutting.find_cuts") | Find cut locations in a circuit, given optimization parameters and cutting constraints. | +| | | +| --------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| [`find_cuts`](find-cuts "qiskit_addon_cutting.find_cuts") | Find cut locations in a circuit, given optimization parameters and cutting constraints. | -| | | -| --------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | -| [`OptimizationParameters`](qiskit_addon_cutting.OptimizationParameters "qiskit_addon_cutting.OptimizationParameters") | Specify parameters that control the optimization. | -| [`DeviceConstraints`](qiskit_addon_cutting.DeviceConstraints "qiskit_addon_cutting.DeviceConstraints") | Specify the constraints (qubits per subcircuit) that must be respected. | +| | | +| ------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| [`OptimizationParameters`](optimization-parameters "qiskit_addon_cutting.OptimizationParameters") | Specify parameters that control the optimization. | +| [`DeviceConstraints`](device-constraints "qiskit_addon_cutting.DeviceConstraints") | Specify the constraints (qubits per subcircuit) that must be respected. | ### Quasi-Probability Decomposition (QPD) -| | | -| --------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | -| [`qpd.QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.QPDBasis") | Basis in which to decompose an operation. | -| [`qpd.BaseQPDGate`](qiskit_addon_cutting.qpd.BaseQPDGate "qiskit_addon_cutting.qpd.BaseQPDGate") | Base class for a gate to be decomposed using quasiprobability decomposition. | -| [`qpd.SingleQubitQPDGate`](qiskit_addon_cutting.qpd.SingleQubitQPDGate "qiskit_addon_cutting.qpd.SingleQubitQPDGate") | Single qubit gate to be decomposed using quasiprobability decomposition. | -| [`qpd.TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate") | Two qubit gate to be decomposed using quasiprobability decomposition. | -| [`qpd.WeightType`](qiskit_addon_cutting.qpd.WeightType "qiskit_addon_cutting.qpd.WeightType") | Type of weight associated with a QPD sample. | +| | | +| --------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| [`qpd.QPDBasis`](qpd-qpd-basis "qiskit_addon_cutting.qpd.QPDBasis") | Basis in which to decompose an operation. | +| [`qpd.BaseQPDGate`](qpd-base-qpd-gate "qiskit_addon_cutting.qpd.BaseQPDGate") | Base class for a gate to be decomposed using quasiprobability decomposition. | +| [`qpd.SingleQubitQPDGate`](qpd-single-qubit-qpd-gate "qiskit_addon_cutting.qpd.SingleQubitQPDGate") | Single qubit gate to be decomposed using quasiprobability decomposition. | +| [`qpd.TwoQubitQPDGate`](qpd-two-qubit-qpd-gate "qiskit_addon_cutting.qpd.TwoQubitQPDGate") | Two qubit gate to be decomposed using quasiprobability decomposition. | +| [`qpd.WeightType`](qpd-weight-type "qiskit_addon_cutting.qpd.WeightType") | Type of weight associated with a QPD sample. | -| | | -| --------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | -| [`qpd.generate_qpd_weights`](qiskit_addon_cutting.qpd.generate_qpd_weights "qiskit_addon_cutting.qpd.generate_qpd_weights") | Generate weights from the joint quasiprobability distribution. | -| [`qpd.decompose_qpd_instructions`](qiskit_addon_cutting.qpd.decompose_qpd_instructions "qiskit_addon_cutting.qpd.decompose_qpd_instructions") | Replace all QPD instructions in the circuit with local Qiskit operations and measurements. | -| [`qpd.qpdbasis_from_instruction`](qiskit_addon_cutting.qpd.qpdbasis_from_instruction "qiskit_addon_cutting.qpd.qpdbasis_from_instruction") | Generate a [`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.QPDBasis") object, given a supported operation. | +| | | +| ------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------- | +| [`qpd.generate_qpd_weights`](qpd-generate-qpd-weights "qiskit_addon_cutting.qpd.generate_qpd_weights") | Generate weights from the joint quasiprobability distribution. | +| [`qpd.decompose_qpd_instructions`](qpd-decompose-qpd-instructions "qiskit_addon_cutting.qpd.decompose_qpd_instructions") | Replace all QPD instructions in the circuit with local Qiskit operations and measurements. | +| [`qpd.qpdbasis_from_instruction`](qpd-qpdbasis-from-instruction "qiskit_addon_cutting.qpd.qpdbasis_from_instruction") | Generate a [`QPDBasis`](qpd-qpd-basis "qiskit_addon_cutting.qpd.QPDBasis") object, given a supported operation. | @@ -75,9 +75,9 @@ Utility functions. Bitwise utilities. -| | | -| ---------------------------------------------------------------------------------------------------------------- | ------------------------- | -| [`bit_count`](qiskit_addon_cutting.utils.bitwise.bit_count "qiskit_addon_cutting.utils.bitwise.bit_count")(x, /) | Count number of set bits. | +| | | +| ------------------------------------------------------------------------------------------- | ------------------------- | +| [`bit_count`](utils-bitwise-bit-count "qiskit_addon_cutting.utils.bitwise.bit_count")(x, /) | Count number of set bits. | @@ -87,10 +87,10 @@ Bitwise utilities. Iteration utilities. -| | | -| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------- | -| [`unique_by_id`](qiskit_addon_cutting.utils.iteration.unique_by_id "qiskit_addon_cutting.utils.iteration.unique_by_id")(iterable, /) | Return unique objects in `iterable`, by identity. | -| [`unique_by_eq`](qiskit_addon_cutting.utils.iteration.unique_by_eq "qiskit_addon_cutting.utils.iteration.unique_by_eq")(iterable, /) | Return unique objects in `iterable`, by equality. | +| | | +| --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------- | +| [`unique_by_id`](utils-iteration-unique-by-id "qiskit_addon_cutting.utils.iteration.unique_by_id")(iterable, /) | Return unique objects in `iterable`, by identity. | +| [`unique_by_eq`](utils-iteration-unique-by-eq "qiskit_addon_cutting.utils.iteration.unique_by_eq")(iterable, /) | Return unique objects in `iterable`, by equality. | @@ -100,11 +100,11 @@ Iteration utilities. Module for conducting Pauli observable grouping. -| | | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| [`observables_restricted_to_subsystem`](qiskit_addon_cutting.utils.observable_grouping.observables_restricted_to_subsystem "qiskit_addon_cutting.utils.observable_grouping.observables_restricted_to_subsystem")(qubits, ...) | Restrict each observable to its support on a given subsystem. | -| [`CommutingObservableGroup`](qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup "qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup")(general\_observable, ...) | Set of mutually qubit-wise commuting observables. | -| [`ObservableCollection`](qiskit_addon_cutting.utils.observable_grouping.ObservableCollection "qiskit_addon_cutting.utils.observable_grouping.ObservableCollection")(observables, /) | Collection of observables organized for efficient taking of measurements. | +| | | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| [`observables_restricted_to_subsystem`](utils-observable-grouping-observables-restricted-to-subsystem "qiskit_addon_cutting.utils.observable_grouping.observables_restricted_to_subsystem")(qubits, ...) | Restrict each observable to its support on a given subsystem. | +| [`CommutingObservableGroup`](utils-observable-grouping-commuting-observable-group "qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup")(general\_observable, ...) | Set of mutually qubit-wise commuting observables. | +| [`ObservableCollection`](utils-observable-grouping-observable-collection "qiskit_addon_cutting.utils.observable_grouping.ObservableCollection")(observables, /) | Collection of observables organized for efficient taking of measurements. | @@ -114,10 +114,10 @@ Module for conducting Pauli observable grouping. Simulation of precise measurement outcome probabilities. -| | | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | -| [`simulate_statevector_outcomes`](qiskit_addon_cutting.utils.simulation.simulate_statevector_outcomes "qiskit_addon_cutting.utils.simulation.simulate_statevector_outcomes")(qc, /) | Return each classical outcome along with its precise probability. | -| [`ExactSampler`](qiskit_addon_cutting.utils.simulation.ExactSampler "qiskit_addon_cutting.utils.simulation.ExactSampler")(\*\[, options]) | Sampler which returns exact probabilities for each possible outcome. | +| | | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | +| [`simulate_statevector_outcomes`](utils-simulation-simulate-statevector-outcomes "qiskit_addon_cutting.utils.simulation.simulate_statevector_outcomes")(qc, /) | Return each classical outcome along with its precise probability. | +| [`ExactSampler`](utils-simulation-exact-sampler "qiskit_addon_cutting.utils.simulation.ExactSampler")(\*\[, options]) | Sampler which returns exact probabilities for each possible outcome. | @@ -127,13 +127,13 @@ Simulation of precise measurement outcome probabilities. Functions for manipulating quantum circuits. -| | | -| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ | -| [`separate_circuit`](qiskit_addon_cutting.utils.transforms.separate_circuit "qiskit_addon_cutting.utils.transforms.separate_circuit")(circuit\[, partition\_labels]) | Separate the circuit into its disconnected components. | +| | | +| ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ | +| [`separate_circuit`](utils-transforms-separate-circuit "qiskit_addon_cutting.utils.transforms.separate_circuit")(circuit\[, partition\_labels]) | Separate the circuit into its disconnected components. | -| | | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| [`SeparatedCircuits`](qiskit_addon_cutting.utils.transforms.SeparatedCircuits "qiskit_addon_cutting.utils.transforms.SeparatedCircuits")(subcircuits, qubit\_map) | Named tuple for result of [`separate_circuit()`](qiskit_addon_cutting.utils.transforms.separate_circuit "qiskit_addon_cutting.utils.transforms.separate_circuit"). | +| | | +| --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | +| [`SeparatedCircuits`](utils-transforms-separated-circuits "qiskit_addon_cutting.utils.transforms.SeparatedCircuits")(subcircuits, qubit\_map) | Named tuple for result of [`separate_circuit()`](utils-transforms-separate-circuit "qiskit_addon_cutting.utils.transforms.separate_circuit"). | @@ -143,8 +143,8 @@ Functions for manipulating quantum circuits. Transpiler passes useful for circuit knitting. -| | | -| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | -| [`RemoveFinalReset`](qiskit_addon_cutting.utils.transpiler_passes.RemoveFinalReset "qiskit_addon_cutting.utils.transpiler_passes.RemoveFinalReset")(\*args, \*\*kwargs) | Remove reset when it is the final instruction on a qubit wire. | -| [`ConsolidateResets`](qiskit_addon_cutting.utils.transpiler_passes.ConsolidateResets "qiskit_addon_cutting.utils.transpiler_passes.ConsolidateResets")(\*args, \*\*kwargs) | Consolidate a run duplicate resets in to a single reset. | +| | | +| ------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------- | +| [`RemoveFinalReset`](utils-transpiler-passes-remove-final-reset "qiskit_addon_cutting.utils.transpiler_passes.RemoveFinalReset")(\*args, \*\*kwargs) | Remove reset when it is the final instruction on a qubit wire. | +| [`ConsolidateResets`](utils-transpiler-passes-consolidate-resets "qiskit_addon_cutting.utils.transpiler_passes.ConsolidateResets")(\*args, \*\*kwargs) | Consolidate a run duplicate resets in to a single reset. | diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.instructions.CutWire.mdx b/docs/api/qiskit-addon-cutting/instructions-cut-wire.mdx similarity index 100% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.instructions.CutWire.mdx rename to docs/api/qiskit-addon-cutting/instructions-cut-wire.mdx diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.instructions.Move.mdx b/docs/api/qiskit-addon-cutting/instructions-move.mdx similarity index 100% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.instructions.Move.mdx rename to docs/api/qiskit-addon-cutting/instructions-move.mdx diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.OptimizationParameters.mdx b/docs/api/qiskit-addon-cutting/optimization-parameters.mdx similarity index 100% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.OptimizationParameters.mdx rename to docs/api/qiskit-addon-cutting/optimization-parameters.mdx diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_circuit_qubits.mdx b/docs/api/qiskit-addon-cutting/partition-circuit-qubits.mdx similarity index 78% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_circuit_qubits.mdx rename to docs/api/qiskit-addon-cutting/partition-circuit-qubits.mdx index a8c38c75998..88592da45d9 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_circuit_qubits.mdx +++ b/docs/api/qiskit-addon-cutting/partition-circuit-qubits.mdx @@ -11,14 +11,14 @@ python_api_name: qiskit_addon_cutting.partition_circuit_qubits # qiskit\_addon\_cutting.partition\_circuit\_qubits - Replace all nonlocal gates belonging to more than one partition with instances of [`TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate"). + Replace all nonlocal gates belonging to more than one partition with instances of [`TwoQubitQPDGate`](qpd-two-qubit-qpd-gate "qiskit_addon_cutting.qpd.TwoQubitQPDGate"). - [`TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate")s belonging to a single partition will not be affected. + [`TwoQubitQPDGate`](qpd-two-qubit-qpd-gate "qiskit_addon_cutting.qpd.TwoQubitQPDGate")s belonging to a single partition will not be affected. **Parameters** * **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – The circuit to partition - * **partition\_labels** ([`Sequence`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")\[[`Hashable`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Hashable "(in Python v3.13)")]) – A sequence containing a partition label for each qubit in the input circuit. Nonlocal gates belonging to more than one partition will be replaced with [`TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate")s. + * **partition\_labels** ([`Sequence`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")\[[`Hashable`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Hashable "(in Python v3.13)")]) – A sequence containing a partition label for each qubit in the input circuit. Nonlocal gates belonging to more than one partition will be replaced with [`TwoQubitQPDGate`](qpd-two-qubit-qpd-gate "qiskit_addon_cutting.qpd.TwoQubitQPDGate")s. * **inplace** ([`bool`](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – Flag denoting whether to copy the input circuit before acting on it **Return type** @@ -27,7 +27,7 @@ python_api_name: qiskit_addon_cutting.partition_circuit_qubits **Returns** - The output circuit with each nonlocal gate spanning two partitions replaced by a [`TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate") + The output circuit with each nonlocal gate spanning two partitions replaced by a [`TwoQubitQPDGate`](qpd-two-qubit-qpd-gate "qiskit_addon_cutting.qpd.TwoQubitQPDGate") **Raises** diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_problem.mdx b/docs/api/qiskit-addon-cutting/partition-problem.mdx similarity index 84% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_problem.mdx rename to docs/api/qiskit-addon-cutting/partition-problem.mdx index 04b651ad63a..e391d3bf590 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.partition_problem.mdx +++ b/docs/api/qiskit-addon-cutting/partition-problem.mdx @@ -15,9 +15,9 @@ python_api_name: qiskit_addon_cutting.partition_problem If `partition_labels` is provided, then qubits with matching partition labels will be grouped together, and non-local gates spanning more than one partition will be cut apart. The label `None` is treated specially: any qubit with that partition label must be unused in the circuit. - If `partition_labels` is not provided, then it will be determined automatically from the connectivity of the circuit. This automatic determination ignores any [`TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate")s in the `circuit`, as these denote instructions that are explicitly destined for cutting. The resulting partition labels, in the automatic case, will be consecutive integers starting with 0. Qubits which are idle throughout the circuit will be assigned a partition label of `None`. + If `partition_labels` is not provided, then it will be determined automatically from the connectivity of the circuit. This automatic determination ignores any [`TwoQubitQPDGate`](qpd-two-qubit-qpd-gate "qiskit_addon_cutting.qpd.TwoQubitQPDGate")s in the `circuit`, as these denote instructions that are explicitly destined for cutting. The resulting partition labels, in the automatic case, will be consecutive integers starting with 0. Qubits which are idle throughout the circuit will be assigned a partition label of `None`. - All cut instructions will be replaced with [`SingleQubitQPDGate`](qiskit_addon_cutting.qpd.SingleQubitQPDGate "qiskit_addon_cutting.qpd.SingleQubitQPDGate")s. + All cut instructions will be replaced with [`SingleQubitQPDGate`](qpd-single-qubit-qpd-gate "qiskit_addon_cutting.qpd.SingleQubitQPDGate")s. If provided, `observables` will be separated along the boundaries specified by the partition labels. diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.PartitionedCuttingProblem.mdx b/docs/api/qiskit-addon-cutting/partitioned-cutting-problem.mdx similarity index 100% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.PartitionedCuttingProblem.mdx rename to docs/api/qiskit-addon-cutting/partitioned-cutting-problem.mdx diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.cut_wires.mdx b/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.cut_wires.mdx deleted file mode 100644 index 9c8a50059ee..00000000000 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.cut_wires.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: cut_wires -description: API reference for qiskit_addon_cutting.cut_wires -in_page_toc_min_heading_level: 1 -python_api_type: function -python_api_name: qiskit_addon_cutting.cut_wires ---- - - - -# qiskit\_addon\_cutting.cut\_wires - - - Transform all [`CutWire`](qiskit_addon_cutting.instructions.CutWire "qiskit_addon_cutting.instructions.CutWire") instructions in a circuit to [`Move`](qiskit_addon_cutting.instructions.Move "qiskit_addon_cutting.instructions.Move") instructions marked for cutting. - - The returned circuit will have one newly allocated qubit for every [`CutWire`](qiskit_addon_cutting.instructions.CutWire "qiskit_addon_cutting.instructions.CutWire") instruction. - - See Sec. 3 and Appendix A of [2302.03366v1](https://arxiv.org/abs/2302.03366v1) for more information about the two different representations of wire cuts: single-qubit ([`CutWire`](qiskit_addon_cutting.instructions.CutWire "qiskit_addon_cutting.instructions.CutWire")) vs. two-qubit ([`Move`](qiskit_addon_cutting.instructions.Move "qiskit_addon_cutting.instructions.Move")). - - **Parameters** - - **circuit** ([`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")) – Original circuit with [`CutWire`](qiskit_addon_cutting.instructions.CutWire "qiskit_addon_cutting.instructions.CutWire") instructions - - **Returns** - - New circuit with [`CutWire`](qiskit_addon_cutting.instructions.CutWire "qiskit_addon_cutting.instructions.CutWire") instructions replaced by [`Move`](qiskit_addon_cutting.instructions.Move "qiskit_addon_cutting.instructions.Move") instructions wrapped in `TwoQubitQPDGate`s - - **Return type** - - circuit - - diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.BaseQPDGate.mdx b/docs/api/qiskit-addon-cutting/qpd-base-qpd-gate.mdx similarity index 100% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.BaseQPDGate.mdx rename to docs/api/qiskit-addon-cutting/qpd-base-qpd-gate.mdx diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.decompose_qpd_instructions.mdx b/docs/api/qiskit-addon-cutting/qpd-decompose-qpd-instructions.mdx similarity index 87% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.decompose_qpd_instructions.mdx rename to docs/api/qiskit-addon-cutting/qpd-decompose-qpd-instructions.mdx index 259f7e8b22f..691f8be1871 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.decompose_qpd_instructions.mdx +++ b/docs/api/qiskit-addon-cutting/qpd-decompose-qpd-instructions.mdx @@ -25,15 +25,15 @@ python_api_name: qiskit_addon_cutting.qpd.decompose_qpd_instructions **Returns** - Circuit which has had all its [`BaseQPDGate`](qiskit_addon_cutting.qpd.BaseQPDGate "qiskit_addon_cutting.qpd.BaseQPDGate") instances decomposed into local operations. + Circuit which has had all its [`BaseQPDGate`](qpd-base-qpd-gate "qiskit_addon_cutting.qpd.BaseQPDGate") instances decomposed into local operations. The circuit will contain a new, final classical register to contain the QPD measurement outcomes (accessible at `retval.cregs[-1]`). **Raises** - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – An index in `instruction_ids` corresponds to a gate which is not a [`BaseQPDGate`](qiskit_addon_cutting.qpd.BaseQPDGate "qiskit_addon_cutting.qpd.BaseQPDGate") instance. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – An index in `instruction_ids` corresponds to a gate which is not a [`BaseQPDGate`](qpd-base-qpd-gate "qiskit_addon_cutting.qpd.BaseQPDGate") instance. * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – A list within instruction\_ids is not length 1 or 2. - * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – The total number of indices in `instruction_ids` does not equal the number of [`BaseQPDGate`](qiskit_addon_cutting.qpd.BaseQPDGate "qiskit_addon_cutting.qpd.BaseQPDGate") instances in the circuit. + * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – The total number of indices in `instruction_ids` does not equal the number of [`BaseQPDGate`](qpd-base-qpd-gate "qiskit_addon_cutting.qpd.BaseQPDGate") instances in the circuit. * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – Gates within the same decomposition hold different QPD bases. * [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – Length of `map_ids` does not equal the number of decompositions in the circuit. diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.generate_qpd_weights.mdx b/docs/api/qiskit-addon-cutting/qpd-generate-qpd-weights.mdx similarity index 75% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.generate_qpd_weights.mdx rename to docs/api/qiskit-addon-cutting/qpd-generate-qpd-weights.mdx index 2a12ee50f27..e638bbe5a43 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.generate_qpd_weights.mdx +++ b/docs/api/qiskit-addon-cutting/qpd-generate-qpd-weights.mdx @@ -17,17 +17,17 @@ python_api_name: qiskit_addon_cutting.qpd.generate_qpd_weights **Parameters** - * **qpd\_bases** ([`Sequence`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")\[[`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.qpd_basis.QPDBasis")]) – The [`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.QPDBasis") objects from which to generate weights + * **qpd\_bases** ([`Sequence`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")\[[`QPDBasis`](qpd-qpd-basis "qiskit_addon_cutting.qpd.qpd_basis.QPDBasis")]) – The [`QPDBasis`](qpd-qpd-basis "qiskit_addon_cutting.qpd.QPDBasis") objects from which to generate weights * **num\_samples** ([`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – Controls the number of weights to generate **Return type** - [`dict`](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.13)")\[[`tuple`](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[`int`](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)"), [`...`](https://docs.python.org/3/library/constants.html#Ellipsis "(in Python v3.13)")], [`tuple`](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)"), [`WeightType`](qiskit_addon_cutting.qpd.WeightType "qiskit_addon_cutting.qpd.weights.WeightType")]] + [`dict`](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.13)")\[[`tuple`](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[`int`](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)"), [`...`](https://docs.python.org/3/library/constants.html#Ellipsis "(in Python v3.13)")], [`tuple`](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)"), [`WeightType`](qpd-weight-type "qiskit_addon_cutting.qpd.weights.WeightType")]] **Returns** - A mapping from a given decomposition to its weight. Keys are tuples of indices – one index per input [`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.QPDBasis"). The indices correspond to a specific decomposition mapping in the basis. + A mapping from a given decomposition to its weight. Keys are tuples of indices – one index per input [`QPDBasis`](qpd-qpd-basis "qiskit_addon_cutting.qpd.QPDBasis"). The indices correspond to a specific decomposition mapping in the basis. - Values are tuples. The first element is a number corresponding to the weight of the contribution. The second element is the [`WeightType`](qiskit_addon_cutting.qpd.WeightType "qiskit_addon_cutting.qpd.WeightType"), either `EXACT` or `SAMPLED`. + Values are tuples. The first element is a number corresponding to the weight of the contribution. The second element is the [`WeightType`](qpd-weight-type "qiskit_addon_cutting.qpd.WeightType"), either `EXACT` or `SAMPLED`. diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.QPDBasis.mdx b/docs/api/qiskit-addon-cutting/qpd-qpd-basis.mdx similarity index 100% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.QPDBasis.mdx rename to docs/api/qiskit-addon-cutting/qpd-qpd-basis.mdx diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.qpdbasis_from_instruction.mdx b/docs/api/qiskit-addon-cutting/qpd-qpdbasis-from-instruction.mdx similarity index 74% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.qpdbasis_from_instruction.mdx rename to docs/api/qiskit-addon-cutting/qpd-qpdbasis-from-instruction.mdx index 825b20aa1ab..f9ac7e5c3c4 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.qpdbasis_from_instruction.mdx +++ b/docs/api/qiskit-addon-cutting/qpd-qpdbasis-from-instruction.mdx @@ -11,19 +11,19 @@ python_api_name: qiskit_addon_cutting.qpd.qpdbasis_from_instruction # qiskit\_addon\_cutting.qpd.qpdbasis\_from\_instruction - Generate a [`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.QPDBasis") object, given a supported operation. + Generate a [`QPDBasis`](qpd-qpd-basis "qiskit_addon_cutting.qpd.QPDBasis") object, given a supported operation. All two-qubit gates which implement the [`to_matrix()`](/api/qiskit/qiskit.circuit.Gate#to_matrix "(in Qiskit v1.2)") method are supported. This should include the vast majority of gates with no unbound parameters, but there are some special cases (see, e.g., [qiskit issue #10396](https://github.com/Qiskit/qiskit-terra/issues/10396)). - The [`Move`](qiskit_addon_cutting.instructions.Move "qiskit_addon_cutting.instructions.Move") operation, which can be used to specify a wire cut, is also supported. + The [`Move`](instructions-move "qiskit_addon_cutting.instructions.Move") operation, which can be used to specify a wire cut, is also supported. **Return type** - [`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.qpd_basis.QPDBasis") + [`QPDBasis`](qpd-qpd-basis "qiskit_addon_cutting.qpd.qpd_basis.QPDBasis") **Returns** - The newly-instantiated [`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.QPDBasis") object + The newly-instantiated [`QPDBasis`](qpd-qpd-basis "qiskit_addon_cutting.qpd.QPDBasis") object **Raises** diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.SingleQubitQPDGate.mdx b/docs/api/qiskit-addon-cutting/qpd-single-qubit-qpd-gate.mdx similarity index 94% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.SingleQubitQPDGate.mdx rename to docs/api/qiskit-addon-cutting/qpd-single-qubit-qpd-gate.mdx index 5dd390a2e27..f0533565d89 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.SingleQubitQPDGate.mdx +++ b/docs/api/qiskit-addon-cutting/qpd-single-qubit-qpd-gate.mdx @@ -11,7 +11,7 @@ python_api_name: qiskit_addon_cutting.qpd.SingleQubitQPDGate # qiskit\_addon\_cutting.qpd.SingleQubitQPDGate - Bases: [`BaseQPDGate`](qiskit_addon_cutting.qpd.BaseQPDGate "qiskit_addon_cutting.qpd.instructions.qpd_gate.BaseQPDGate") + Bases: [`BaseQPDGate`](qpd-base-qpd-gate "qiskit_addon_cutting.qpd.instructions.qpd_gate.BaseQPDGate") Single qubit gate to be decomposed using quasiprobability decomposition. diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.TwoQubitQPDGate.mdx b/docs/api/qiskit-addon-cutting/qpd-two-qubit-qpd-gate.mdx similarity index 85% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.TwoQubitQPDGate.mdx rename to docs/api/qiskit-addon-cutting/qpd-two-qubit-qpd-gate.mdx index eadbc949479..b81e1afa8b5 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.TwoQubitQPDGate.mdx +++ b/docs/api/qiskit-addon-cutting/qpd-two-qubit-qpd-gate.mdx @@ -11,7 +11,7 @@ python_api_name: qiskit_addon_cutting.qpd.TwoQubitQPDGate # qiskit\_addon\_cutting.qpd.TwoQubitQPDGate - Bases: [`BaseQPDGate`](qiskit_addon_cutting.qpd.BaseQPDGate "qiskit_addon_cutting.qpd.instructions.qpd_gate.BaseQPDGate") + Bases: [`BaseQPDGate`](qpd-base-qpd-gate "qiskit_addon_cutting.qpd.instructions.qpd_gate.BaseQPDGate") Two qubit gate to be decomposed using quasiprobability decomposition. @@ -19,7 +19,7 @@ python_api_name: qiskit_addon_cutting.qpd.TwoQubitQPDGate **Raises** - [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – The [`QPDBasis`](qiskit_addon_cutting.qpd.QPDBasis "qiskit_addon_cutting.qpd.QPDBasis") acts on a number of qubits not equal to 2. + [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") – The [`QPDBasis`](qpd-qpd-basis "qiskit_addon_cutting.qpd.QPDBasis") acts on a number of qubits not equal to 2. ## Methods diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.WeightType.mdx b/docs/api/qiskit-addon-cutting/qpd-weight-type.mdx similarity index 100% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.qpd.WeightType.mdx rename to docs/api/qiskit-addon-cutting/qpd-weight-type.mdx diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.reconstruct_expectation_values.mdx b/docs/api/qiskit-addon-cutting/reconstruct-expectation-values.mdx similarity index 74% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.reconstruct_expectation_values.mdx rename to docs/api/qiskit-addon-cutting/reconstruct-expectation-values.mdx index e4bfd6f29e0..8d8d356e95b 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.reconstruct_expectation_values.mdx +++ b/docs/api/qiskit-addon-cutting/reconstruct-expectation-values.mdx @@ -19,11 +19,11 @@ python_api_name: qiskit_addon_cutting.reconstruct_expectation_values The results from running the cutting subexperiments. If the cut circuit was not partitioned between qubits and run separately, this argument should be a [`SamplerResult`](/api/qiskit/qiskit.primitives.SamplerResult "(in Qiskit v1.2)") instance or a dictionary mapping a single partition to the results. If the circuit was partitioned and its pieces were run separately, this argument should be a dictionary mapping partition labels to the results from each partition’s subexperiments. - The subexperiment results are expected to be ordered in the same way the subexperiments are ordered in the output of [`generate_cutting_experiments()`](qiskit_addon_cutting.generate_cutting_experiments "qiskit_addon_cutting.generate_cutting_experiments") – one result for every sample and observable, as shown below. The Qiskit Sampler primitive will return the results in the same order the experiments are submitted, so users who do not use [`generate_cutting_experiments()`](qiskit_addon_cutting.generate_cutting_experiments "qiskit_addon_cutting.generate_cutting_experiments") to generate their experiments should take care to order their subexperiments as follows before submitting them to the sampler primitive: + The subexperiment results are expected to be ordered in the same way the subexperiments are ordered in the output of [`generate_cutting_experiments()`](generate-cutting-experiments "qiskit_addon_cutting.generate_cutting_experiments") – one result for every sample and observable, as shown below. The Qiskit Sampler primitive will return the results in the same order the experiments are submitted, so users who do not use [`generate_cutting_experiments()`](generate-cutting-experiments "qiskit_addon_cutting.generate_cutting_experiments") to generate their experiments should take care to order their subexperiments as follows before submitting them to the sampler primitive: $[sample_{0}observable_{0}, \ldots, sample_{0}observable_{N-1}, sample_{1}observable_{0}, \ldots, sample_{M-1}observable_{N-1}]$ - * **coefficients** (Sequence\[tuple\[float, WeightType]]) – A sequence containing the coefficient associated with each unique subexperiment. Each element is a tuple containing the coefficient (a `float`) together with its [`WeightType`](qiskit_addon_cutting.qpd.WeightType "qiskit_addon_cutting.qpd.WeightType"), which denotes how the value was generated. The contribution from each subexperiment will be multiplied by its corresponding coefficient, and the resulting terms will be summed to obtain the reconstructed expectation value. + * **coefficients** (Sequence\[tuple\[float, WeightType]]) – A sequence containing the coefficient associated with each unique subexperiment. Each element is a tuple containing the coefficient (a `float`) together with its [`WeightType`](qpd-weight-type "qiskit_addon_cutting.qpd.WeightType"), which denotes how the value was generated. The contribution from each subexperiment will be multiplied by its corresponding coefficient, and the resulting terms will be summed to obtain the reconstructed expectation value. * **observables** (PauliList | dict\[Hashable, PauliList]) – The observable(s) for which the expectation values will be calculated. This should be a [`PauliList`](/api/qiskit/qiskit.quantum_info.PauliList "(in Qiskit v1.2)") if `results` is a [`SamplerResult`](/api/qiskit/qiskit.primitives.SamplerResult "(in Qiskit v1.2)") instance. Otherwise, it should be a dictionary mapping partition labels to the observables associated with that partition. diff --git a/docs/api/qiskit-addon-cutting/release-notes.mdx b/docs/api/qiskit-addon-cutting/release-notes.mdx index 927adbe7aa2..2280fe583c6 100644 --- a/docs/api/qiskit-addon-cutting/release-notes.mdx +++ b/docs/api/qiskit-addon-cutting/release-notes.mdx @@ -26,9 +26,9 @@ The most notable change in this release is that the package has been renamed to ### New Features -* A new `minimum_reached` field has been added to the metadata outputted by `circuit_knitting.cutting.find_cuts()` to check if the cut-finder found a cut scheme that minimized the sampling overhead. Note that the search algorithm employed by the cut-finder is *guaranteed* to find the optimal solution, that is, the solution with the minimum sampling overhead, provided it is allowed to run long enough. The user is free to time-restrict the search by passing in suitable values for `max_backjumps` and/or `max_gamma` to [`OptimizationParameters`](qiskit_addon_cutting.OptimizationParameters "qiskit_addon_cutting.OptimizationParameters"). If the search is terminated prematurely in this way, the metadata may indicate that the minimum was not reached, even though the returned solution was actually the optimal solution. This would mean that the search that was performed was not exhaustive enough to prove that the returned solution was optimal. +* A new `minimum_reached` field has been added to the metadata outputted by `circuit_knitting.cutting.find_cuts()` to check if the cut-finder found a cut scheme that minimized the sampling overhead. Note that the search algorithm employed by the cut-finder is *guaranteed* to find the optimal solution, that is, the solution with the minimum sampling overhead, provided it is allowed to run long enough. The user is free to time-restrict the search by passing in suitable values for `max_backjumps` and/or `max_gamma` to [`OptimizationParameters`](optimization-parameters "qiskit_addon_cutting.OptimizationParameters"). If the search is terminated prematurely in this way, the metadata may indicate that the minimum was not reached, even though the returned solution was actually the optimal solution. This would mean that the search that was performed was not exhaustive enough to prove that the returned solution was optimal. -* When specifying instances of [`OptimizationParameters`](qiskit_addon_cutting.OptimizationParameters "qiskit_addon_cutting.OptimizationParameters") that are inputted to `circuit_knitting.cutting.find_cuts()`, the user can now control whether the cut-finder looks only for gate cuts, only for wire cuts, or both, by setting the bools `gate_lo` and `wire_lo` appropriately. The default value of both of these is set to `True` and so the default search considers the possibility of both gate and wire cuts. +* When specifying instances of [`OptimizationParameters`](optimization-parameters "qiskit_addon_cutting.OptimizationParameters") that are inputted to `circuit_knitting.cutting.find_cuts()`, the user can now control whether the cut-finder looks only for gate cuts, only for wire cuts, or both, by setting the bools `gate_lo` and `wire_lo` appropriately. The default value of both of these is set to `True` and so the default search considers the possibility of both gate and wire cuts. @@ -40,7 +40,7 @@ The most notable change in this release is that the package has been renamed to * The `CutQC` subpackage has been removed, along with its two associated utility modules, `circuit_knitting.utils.metrics` and `circuit_knitting.utils.conversion`. Users are now encouraged to use the automatic cut-finding and gate/wire cutting from the `circuit_knitting.cutting` package. -* The behavior of [`separate_circuit()`](qiskit_addon_cutting.utils.transforms.separate_circuit "qiskit_addon_cutting.utils.transforms.separate_circuit") and [`partition_problem()`](qiskit_addon_cutting.partition_problem "qiskit_addon_cutting.partition_problem") have changed so that idle qubits are discarded by default. Previously, each idle qubit was placed in its own subcircuit if `partition_labels` was not provided. +* The behavior of [`separate_circuit()`](utils-transforms-separate-circuit "qiskit_addon_cutting.utils.transforms.separate_circuit") and [`partition_problem()`](partition-problem "qiskit_addon_cutting.partition_problem") have changed so that idle qubits are discarded by default. Previously, each idle qubit was placed in its own subcircuit if `partition_labels` was not provided. @@ -66,7 +66,7 @@ The 0.7.1 release provides a workaround to ensure that the experiments generated ### Other Notes -* The [`generate_cutting_experiments()`](qiskit_addon_cutting.generate_cutting_experiments "qiskit_addon_cutting.generate_cutting_experiments") function has been optimized for faster execution. +* The [`generate_cutting_experiments()`](generate-cutting-experiments "qiskit_addon_cutting.generate_cutting_experiments") function has been optimized for faster execution. @@ -136,15 +136,15 @@ The 0.7 release introduces an automated cut finding code for the new circuit cut * Removed the `circuit_knitting_toolbox` import path. Users should now import from `circuit_knitting` instead. -* Removed the `circuit_knitting.cutting.decompose_gates` function, which has been deprecated since the 0.3 release. [`cut_gates()`](qiskit_addon_cutting.cut_gates "qiskit_addon_cutting.cut_gates") should be used instead. +* Removed the `circuit_knitting.cutting.decompose_gates` function, which has been deprecated since the 0.3 release. [`cut_gates()`](cut-gates "qiskit_addon_cutting.cut_gates") should be used instead. * Removed the `circuit_knitting.cutting.cutting_evaluation` module, which has been deprecated since the 0.4 release. Users should first call `circuit_knitting.cutting.generate_cutting_experiments()` to generate the subexperiment circuits and then submit these circuits directly to the desired Sampler(s). -* Removed the `circuit_knitting.cutting.qpd.generate_qpd_samples` function, which has been deprecated since the 0.3 release. [`generate_qpd_weights()`](qiskit_addon_cutting.qpd.generate_qpd_weights "qiskit_addon_cutting.qpd.generate_qpd_weights") should be used instead. +* Removed the `circuit_knitting.cutting.qpd.generate_qpd_samples` function, which has been deprecated since the 0.3 release. [`generate_qpd_weights()`](qpd-generate-qpd-weights "qiskit_addon_cutting.qpd.generate_qpd_weights") should be used instead. -* Removed the `circuit_knitting.cutting.qpd.qpdbasis_from_gate` function, which has been deprecated since the 0.3 release. [`qpdbasis_from_instruction()`](qiskit_addon_cutting.qpd.qpdbasis_from_instruction "qiskit_addon_cutting.qpd.qpdbasis_from_instruction") should be used instead. +* Removed the `circuit_knitting.cutting.qpd.qpdbasis_from_gate` function, which has been deprecated since the 0.3 release. [`qpdbasis_from_instruction()`](qpd-qpdbasis-from-instruction "qiskit_addon_cutting.qpd.qpdbasis_from_instruction") should be used instead. -* The [`generate_cutting_experiments()`](qiskit_addon_cutting.generate_cutting_experiments "qiskit_addon_cutting.generate_cutting_experiments") function now performs some optimizations on the generated circuits before returning them to the user. In particular, it performs the [`RemoveResetInZeroState`](/api/qiskit/qiskit.transpiler.passes.RemoveResetInZeroState "(in Qiskit v1.2)"), [`RemoveFinalReset`](qiskit_addon_cutting.utils.transpiler_passes.RemoveFinalReset "qiskit_addon_cutting.utils.transpiler_passes.RemoveFinalReset"), and [`ConsolidateResets`](qiskit_addon_cutting.utils.transpiler_passes.ConsolidateResets "qiskit_addon_cutting.utils.transpiler_passes.ConsolidateResets") passes, so that circuits with cut wires and no re-used qubits are transformed into subexperiments that contain no `Reset`s. This allows such circuits to work on a greater variety of hardware backends. +* The [`generate_cutting_experiments()`](generate-cutting-experiments "qiskit_addon_cutting.generate_cutting_experiments") function now performs some optimizations on the generated circuits before returning them to the user. In particular, it performs the [`RemoveResetInZeroState`](/api/qiskit/qiskit.transpiler.passes.RemoveResetInZeroState "(in Qiskit v1.2)"), [`RemoveFinalReset`](utils-transpiler-passes-remove-final-reset "qiskit_addon_cutting.utils.transpiler_passes.RemoveFinalReset"), and [`ConsolidateResets`](utils-transpiler-passes-consolidate-resets "qiskit_addon_cutting.utils.transpiler_passes.ConsolidateResets") passes, so that circuits with cut wires and no re-used qubits are transformed into subexperiments that contain no `Reset`s. This allows such circuits to work on a greater variety of hardware backends. @@ -152,7 +152,7 @@ The 0.7 release introduces an automated cut finding code for the new circuit cut ### Bug Fixes -* It is now possible to serialize [`SingleQubitQPDGate`](qiskit_addon_cutting.qpd.SingleQubitQPDGate "qiskit_addon_cutting.qpd.SingleQubitQPDGate")s using [`qpy`](/api/qiskit/qpy#module-qiskit.qpy "(in Qiskit v1.2)"), but some other issues with serialization and deserialization still remain. See issue [#455](https://github.com/Qiskit-Extensions/circuit-knitting-toolbox/issues/445) for details. +* It is now possible to serialize [`SingleQubitQPDGate`](qpd-single-qubit-qpd-gate "qiskit_addon_cutting.qpd.SingleQubitQPDGate")s using [`qpy`](/api/qiskit/qpy#module-qiskit.qpy "(in Qiskit v1.2)"), but some other issues with serialization and deserialization still remain. See issue [#455](https://github.com/Qiskit-Extensions/circuit-knitting-toolbox/issues/445) for details. @@ -208,7 +208,7 @@ The primary purpose of this release is to swap the order of the classical regist ### Prelude -The primary goal of this release is to modify the circuit cutting workflow to enable direct use of the Sampler primitive. Previously, the Sampler was called in `execute_experiments()`, a function which is now deprecated in favor of [`generate_cutting_experiments()`](qiskit_addon_cutting.generate_cutting_experiments "qiskit_addon_cutting.generate_cutting_experiments"). +The primary goal of this release is to modify the circuit cutting workflow to enable direct use of the Sampler primitive. Previously, the Sampler was called in `execute_experiments()`, a function which is now deprecated in favor of [`generate_cutting_experiments()`](generate-cutting-experiments "qiskit_addon_cutting.generate_cutting_experiments"). @@ -216,7 +216,7 @@ The primary goal of this release is to modify the circuit cutting workflow to en ### New Features -* Added a module, `circuit_knitting.cutting.cutting_experiments`, which is intended to hold functions used for generating the quantum experiments needed for circuit cutting. This module will initially hold one function, [`generate_cutting_experiments()`](qiskit_addon_cutting.generate_cutting_experiments "qiskit_addon_cutting.generate_cutting_experiments"), which can be used to generate quantum experiments, given an input circuit containing [`BaseQPDGate`](qiskit_addon_cutting.qpd.BaseQPDGate "qiskit_addon_cutting.qpd.BaseQPDGate") instances, some observables, and a number of times the joint quasi-probability distribution for the cuts should be sampled. +* Added a module, `circuit_knitting.cutting.cutting_experiments`, which is intended to hold functions used for generating the quantum experiments needed for circuit cutting. This module will initially hold one function, [`generate_cutting_experiments()`](generate-cutting-experiments "qiskit_addon_cutting.generate_cutting_experiments"), which can be used to generate quantum experiments, given an input circuit containing [`BaseQPDGate`](qpd-base-qpd-gate "qiskit_addon_cutting.qpd.BaseQPDGate") instances, some observables, and a number of times the joint quasi-probability distribution for the cuts should be sampled. @@ -226,9 +226,9 @@ The primary goal of this release is to modify the circuit cutting workflow to en * The `circuit-knitting-toolbox` Python package now depends on `qiskit` rather than `qiskit-terra`. This should have no user-visible effects, but it is something to keep in mind if one sees dependency errors when upgrading CKT. -* The `execute_experiments()` function now returns a [`SamplerResult`](/api/qiskit/qiskit.primitives.SamplerResult "(in Qiskit v1.2)") instance for each circuit partition, rather than the 3D list of quasi-distributions returned previously. The quasi-distribution for each subexperiment can be accessed via the `quasi_dists` field of [`SamplerResult`](/api/qiskit/qiskit.primitives.SamplerResult "(in Qiskit v1.2)"). The number of QPD bits contained in each subexperiment will be included in the `num_qpd_bits` field of the `metadata` dictionary for each experiment result. The output of this function is still valid as input to [`reconstruct_expectation_values()`](qiskit_addon_cutting.reconstruct_expectation_values "qiskit_addon_cutting.reconstruct_expectation_values"). +* The `execute_experiments()` function now returns a [`SamplerResult`](/api/qiskit/qiskit.primitives.SamplerResult "(in Qiskit v1.2)") instance for each circuit partition, rather than the 3D list of quasi-distributions returned previously. The quasi-distribution for each subexperiment can be accessed via the `quasi_dists` field of [`SamplerResult`](/api/qiskit/qiskit.primitives.SamplerResult "(in Qiskit v1.2)"). The number of QPD bits contained in each subexperiment will be included in the `num_qpd_bits` field of the `metadata` dictionary for each experiment result. The output of this function is still valid as input to [`reconstruct_expectation_values()`](reconstruct-expectation-values "qiskit_addon_cutting.reconstruct_expectation_values"). -* [`reconstruct_expectation_values()`](qiskit_addon_cutting.reconstruct_expectation_values "qiskit_addon_cutting.reconstruct_expectation_values") now takes, as its first argument, a [`SamplerResult`](/api/qiskit/qiskit.primitives.SamplerResult "(in Qiskit v1.2)") instance or a dictionary mapping partition labels to [`SamplerResult`](/api/qiskit/qiskit.primitives.SamplerResult "(in Qiskit v1.2)") instances. This new `results` argument replaces the old `quasi_dists` argument. The [`SamplerResult`](/api/qiskit/qiskit.primitives.SamplerResult "(in Qiskit v1.2)") instances are expected to contain the number of QPD bits used in each circuit input to the Sampler. This should be specified in the `num_qpd_bits` field of the experiment result metadata. +* [`reconstruct_expectation_values()`](reconstruct-expectation-values "qiskit_addon_cutting.reconstruct_expectation_values") now takes, as its first argument, a [`SamplerResult`](/api/qiskit/qiskit.primitives.SamplerResult "(in Qiskit v1.2)") instance or a dictionary mapping partition labels to [`SamplerResult`](/api/qiskit/qiskit.primitives.SamplerResult "(in Qiskit v1.2)") instances. This new `results` argument replaces the old `quasi_dists` argument. The [`SamplerResult`](/api/qiskit/qiskit.primitives.SamplerResult "(in Qiskit v1.2)") instances are expected to contain the number of QPD bits used in each circuit input to the Sampler. This should be specified in the `num_qpd_bits` field of the experiment result metadata. @@ -236,7 +236,7 @@ The primary goal of this release is to modify the circuit cutting workflow to en ### Deprecation Notes -* The `execute_experiments()` function has been deprecated. Going forward, users should first call [`generate_cutting_experiments()`](qiskit_addon_cutting.generate_cutting_experiments "qiskit_addon_cutting.generate_cutting_experiments") to generate the subexperiment circuits and then submit these circuits directly to the desired Sampler(s). The [tutorials](https://qiskit.github.io/qiskit-addon-cutting/tutorials/index.html) have been updated with this new workflow. +* The `execute_experiments()` function has been deprecated. Going forward, users should first call [`generate_cutting_experiments()`](generate-cutting-experiments "qiskit_addon_cutting.generate_cutting_experiments") to generate the subexperiment circuits and then submit these circuits directly to the desired Sampler(s). The [tutorials](https://qiskit.github.io/qiskit-addon-cutting/tutorials/index.html) have been updated with this new workflow. @@ -273,7 +273,7 @@ The 0.3.0 release introduces significant new features while maintaining backward * [`iSwapGate`](/api/qiskit/qiskit.circuit.library.iSwapGate "(in Qiskit v1.2)") * [`DCXGate`](/api/qiskit/qiskit.circuit.library.DCXGate "(in Qiskit v1.2)") -* [`partition_problem()`](qiskit_addon_cutting.partition_problem "qiskit_addon_cutting.partition_problem") now works even if `partition_labels` is not explicitly provided. In this case, the labels are determined automatically from the connectivity of the input circuit. For the sake of determining connectivity, [`TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate")s are ignored, as these instructions are already marked for cutting. To support this workflow, this release also introduces a new method, `TwoQubitQPDGate.from_instruction()`, which allows one to create a [`TwoQubitQPDGate`](qiskit_addon_cutting.qpd.TwoQubitQPDGate "qiskit_addon_cutting.qpd.TwoQubitQPDGate") that wraps a given instruction. +* [`partition_problem()`](partition-problem "qiskit_addon_cutting.partition_problem") now works even if `partition_labels` is not explicitly provided. In this case, the labels are determined automatically from the connectivity of the input circuit. For the sake of determining connectivity, [`TwoQubitQPDGate`](qpd-two-qubit-qpd-gate "qiskit_addon_cutting.qpd.TwoQubitQPDGate")s are ignored, as these instructions are already marked for cutting. To support this workflow, this release also introduces a new method, `TwoQubitQPDGate.from_instruction()`, which allows one to create a [`TwoQubitQPDGate`](qpd-two-qubit-qpd-gate "qiskit_addon_cutting.qpd.TwoQubitQPDGate") that wraps a given instruction. * Dynamic Definition code has been added to the `cutqc` module. See pull request [#285](https://github.com/Qiskit-Extensions/circuit-knitting-toolbox/pull/285) for details. @@ -295,7 +295,7 @@ The 0.3.0 release introduces significant new features while maintaining backward * The dependency on the `qiskit.opflow` module has been removed from entanglement forging. With this change, Qiskit Nature 0.6.0 is now required. However, Qiskit Nature 0.6.0 is incompatible with Quantum Serverless, so users that wish to use entanglement forging with Quantum Serverless must remain on version 0.2 of the Circuit Knitting Toolbox until [issue #108](https://github.com/Qiskit-Extensions/circuit-knitting-toolbox/issues/108) is resolved. -* [`BaseQPDGate`](qiskit_addon_cutting.qpd.BaseQPDGate "qiskit_addon_cutting.qpd.BaseQPDGate") instances in subcircuits returned from [`partition_circuit_qubits()`](qiskit_addon_cutting.partition_circuit_qubits "qiskit_addon_cutting.partition_circuit_qubits") and [`partition_problem()`](qiskit_addon_cutting.partition_problem "qiskit_addon_cutting.partition_problem") will now have labels prefixed with “cut”, rather than “qpd”. +* [`BaseQPDGate`](qpd-base-qpd-gate "qiskit_addon_cutting.qpd.BaseQPDGate") instances in subcircuits returned from [`partition_circuit_qubits()`](partition-circuit-qubits "qiskit_addon_cutting.partition_circuit_qubits") and [`partition_problem()`](partition-problem "qiskit_addon_cutting.partition_problem") will now have labels prefixed with “cut”, rather than “qpd”. @@ -303,7 +303,7 @@ The 0.3.0 release introduces significant new features while maintaining backward ### Deprecation Notes -* `decompose_gates()` is deprecated and will be removed no sooner than v0.4.0. Users should migrate to the identical [`cut_gates()`](qiskit_addon_cutting.cut_gates "qiskit_addon_cutting.cut_gates") function. +* `decompose_gates()` is deprecated and will be removed no sooner than v0.4.0. Users should migrate to the identical [`cut_gates()`](cut-gates "qiskit_addon_cutting.cut_gates") function. * `generate_qpd_samples()` has been renamed to `generate_qpd_weights()`. The original name will be removed no sooner than version 0.4 of the Circuit Knitting Toolbox. @@ -342,7 +342,7 @@ The 0.3.0 release introduces significant new features while maintaining backward The foundation of the `circuit_cutting` package is the `circuit_knitting_toolbox.circuit_cutting.qpd` sub-package. The `qpd` package allows for easy transformation of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)") gates and wires into elements which may be decomposed to a probabilistic set of basis gates. See `QPDBasis` and `BaseQPDGate` classes for more information. -Additionally, 0.2.0 includes a set of functions which allow for easy implementation of gate cutting workflows. These functions are built on top of the `circuit_knitting_toolbox.circuit_cutting.qpd` package. Like all circuit knitting techniques, gate cutting can be described as three consecutive stages: *decomposition* of a problem, *execution* of many subexperiments, and *reconstruction* of a simulated output of the original problem. These steps may be implemented with the `circuit_cutting` package using only a few primary functions, namely, the [`partition_problem()`](qiskit_addon_cutting.partition_problem "qiskit_addon_cutting.partition_problem"), `decompose_gates()`, `execute_experiments()`, and [`reconstruct_expectation_values()`](qiskit_addon_cutting.reconstruct_expectation_values "qiskit_addon_cutting.reconstruct_expectation_values") functions. Check out the [tutorials](https://qiskit.github.io/qiskit-addon-cutting/tutorials/index.html) for a look at a couple of example circuit cutting workflows. +Additionally, 0.2.0 includes a set of functions which allow for easy implementation of gate cutting workflows. These functions are built on top of the `circuit_knitting_toolbox.circuit_cutting.qpd` package. Like all circuit knitting techniques, gate cutting can be described as three consecutive stages: *decomposition* of a problem, *execution* of many subexperiments, and *reconstruction* of a simulated output of the original problem. These steps may be implemented with the `circuit_cutting` package using only a few primary functions, namely, the [`partition_problem()`](partition-problem "qiskit_addon_cutting.partition_problem"), `decompose_gates()`, `execute_experiments()`, and [`reconstruct_expectation_values()`](reconstruct-expectation-values "qiskit_addon_cutting.reconstruct_expectation_values") functions. Check out the [tutorials](https://qiskit.github.io/qiskit-addon-cutting/tutorials/index.html) for a look at a couple of example circuit cutting workflows. @@ -352,7 +352,7 @@ Additionally, 0.2.0 includes a set of functions which allow for easy implementat * Addition of a `qpd` package which allows for easy transformation of [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)") gates and wires into elements which may be decomposed to a probabilistic set of basis gates. See `QPDBasis` and `BaseQPDGate` classes for more information. -* Addition of `cutting_decomposition`, `cutting_execution`, and `cutting_reconstruction` modules. These modules provide several functions which allow for easy implementation of gate cutting workflows, namely, the [`partition_problem()`](qiskit_addon_cutting.partition_problem "qiskit_addon_cutting.partition_problem"), `decompose_gates()`, `execute_experiments()`, and [`reconstruct_expectation_values()`](qiskit_addon_cutting.reconstruct_expectation_values "qiskit_addon_cutting.reconstruct_expectation_values") functions. +* Addition of `cutting_decomposition`, `cutting_execution`, and `cutting_reconstruction` modules. These modules provide several functions which allow for easy implementation of gate cutting workflows, namely, the [`partition_problem()`](partition-problem "qiskit_addon_cutting.partition_problem"), `decompose_gates()`, `execute_experiments()`, and [`reconstruct_expectation_values()`](reconstruct-expectation-values "qiskit_addon_cutting.reconstruct_expectation_values") functions. diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.bitwise.bit_count.mdx b/docs/api/qiskit-addon-cutting/utils-bitwise-bit-count.mdx similarity index 100% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.bitwise.bit_count.mdx rename to docs/api/qiskit-addon-cutting/utils-bitwise-bit-count.mdx diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.iteration.unique_by_eq.mdx b/docs/api/qiskit-addon-cutting/utils-iteration-unique-by-eq.mdx similarity index 100% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.iteration.unique_by_eq.mdx rename to docs/api/qiskit-addon-cutting/utils-iteration-unique-by-eq.mdx diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.iteration.unique_by_id.mdx b/docs/api/qiskit-addon-cutting/utils-iteration-unique-by-id.mdx similarity index 100% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.iteration.unique_by_id.mdx rename to docs/api/qiskit-addon-cutting/utils-iteration-unique-by-id.mdx diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup.mdx b/docs/api/qiskit-addon-cutting/utils-observable-grouping-commuting-observable-group.mdx similarity index 100% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup.mdx rename to docs/api/qiskit-addon-cutting/utils-observable-grouping-commuting-observable-group.mdx diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.ObservableCollection.mdx b/docs/api/qiskit-addon-cutting/utils-observable-grouping-observable-collection.mdx similarity index 83% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.ObservableCollection.mdx rename to docs/api/qiskit-addon-cutting/utils-observable-grouping-observable-collection.mdx index 1f786132793..6557cf971ec 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.ObservableCollection.mdx +++ b/docs/api/qiskit-addon-cutting/utils-observable-grouping-observable-collection.mdx @@ -13,7 +13,7 @@ python_api_name: qiskit_addon_cutting.utils.observable_grouping.ObservableCollec Collection of observables organized for efficient taking of measurements. - The observables are automatically organized into sets of mutually qubit-wise commuting observables, each represented by a [`CommutingObservableGroup`](qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup "qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup"). + The observables are automatically organized into sets of mutually qubit-wise commuting observables, each represented by a [`CommutingObservableGroup`](utils-observable-grouping-commuting-observable-group "qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup"). Assign member variables. @@ -40,9 +40,9 @@ python_api_name: qiskit_addon_cutting.utils.observable_grouping.ObservableCollec ## Attributes - | | | - | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | - | `groups` | List of [`CommutingObservableGroup`](qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup "qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup")s which, together, contain all desired observables. | - | `lookup` | Get dict which maps each [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)") observable to a list of indices, `(i, j)`, to commuting observables in `groups`. | + | | | + | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | `groups` | List of [`CommutingObservableGroup`](utils-observable-grouping-commuting-observable-group "qiskit_addon_cutting.utils.observable_grouping.CommutingObservableGroup")s which, together, contain all desired observables. | + | `lookup` | Get dict which maps each [`Pauli`](/api/qiskit/qiskit.quantum_info.Pauli "(in Qiskit v1.2)") observable to a list of indices, `(i, j)`, to commuting observables in `groups`. | diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.observables_restricted_to_subsystem.mdx b/docs/api/qiskit-addon-cutting/utils-observable-grouping-observables-restricted-to-subsystem.mdx similarity index 100% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.observable_grouping.observables_restricted_to_subsystem.mdx rename to docs/api/qiskit-addon-cutting/utils-observable-grouping-observables-restricted-to-subsystem.mdx diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.simulation.ExactSampler.mdx b/docs/api/qiskit-addon-cutting/utils-simulation-exact-sampler.mdx similarity index 100% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.simulation.ExactSampler.mdx rename to docs/api/qiskit-addon-cutting/utils-simulation-exact-sampler.mdx diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.simulation.simulate_statevector_outcomes.mdx b/docs/api/qiskit-addon-cutting/utils-simulation-simulate-statevector-outcomes.mdx similarity index 100% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.simulation.simulate_statevector_outcomes.mdx rename to docs/api/qiskit-addon-cutting/utils-simulation-simulate-statevector-outcomes.mdx diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.separate_circuit.mdx b/docs/api/qiskit-addon-cutting/utils-transforms-separate-circuit.mdx similarity index 92% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.separate_circuit.mdx rename to docs/api/qiskit-addon-cutting/utils-transforms-separate-circuit.mdx index 1a5c931ab0e..ace93f555e5 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.separate_circuit.mdx +++ b/docs/api/qiskit-addon-cutting/utils-transforms-separate-circuit.mdx @@ -48,7 +48,7 @@ python_api_name: qiskit_addon_cutting.utils.transforms.separate_circuit **Returns** - A [`SeparatedCircuits`](qiskit_addon_cutting.utils.transforms.SeparatedCircuits "qiskit_addon_cutting.utils.transforms.SeparatedCircuits") named tuple containing the `subcircuits` and `qubit_map`. + A [`SeparatedCircuits`](utils-transforms-separated-circuits "qiskit_addon_cutting.utils.transforms.SeparatedCircuits") named tuple containing the `subcircuits` and `qubit_map`. **Raises** diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.SeparatedCircuits.mdx b/docs/api/qiskit-addon-cutting/utils-transforms-separated-circuits.mdx similarity index 90% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.SeparatedCircuits.mdx rename to docs/api/qiskit-addon-cutting/utils-transforms-separated-circuits.mdx index 59e8b37f4b3..c4a8100abc1 100644 --- a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transforms.SeparatedCircuits.mdx +++ b/docs/api/qiskit-addon-cutting/utils-transforms-separated-circuits.mdx @@ -13,7 +13,7 @@ python_api_name: qiskit_addon_cutting.utils.transforms.SeparatedCircuits Bases: [`NamedTuple`](https://docs.python.org/3/library/typing.html#typing.NamedTuple "(in Python v3.13)") - Named tuple for result of [`separate_circuit()`](qiskit_addon_cutting.utils.transforms.separate_circuit "qiskit_addon_cutting.utils.transforms.separate_circuit"). + Named tuple for result of [`separate_circuit()`](utils-transforms-separate-circuit "qiskit_addon_cutting.utils.transforms.separate_circuit"). `subcircuits` is a dict of circuits, keyed by each partition label. `qubit_map` is a list with length equal to the number of qubits in the original circuit. Each element of that list is a 2-tuple which includes the partition label of that qubit, together with the index of that qubit in the corresponding subcircuit. If the original qubit is unused and has been removed from the separated circuits, then that tuple will be equal to `(None, None)`. diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transpiler_passes.ConsolidateResets.mdx b/docs/api/qiskit-addon-cutting/utils-transpiler-passes-consolidate-resets.mdx similarity index 100% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transpiler_passes.ConsolidateResets.mdx rename to docs/api/qiskit-addon-cutting/utils-transpiler-passes-consolidate-resets.mdx diff --git a/docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transpiler_passes.RemoveFinalReset.mdx b/docs/api/qiskit-addon-cutting/utils-transpiler-passes-remove-final-reset.mdx similarity index 100% rename from docs/api/qiskit-addon-cutting/qiskit_addon_cutting.utils.transpiler_passes.RemoveFinalReset.mdx rename to docs/api/qiskit-addon-cutting/utils-transpiler-passes-remove-final-reset.mdx diff --git a/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.mdx b/docs/api/qiskit-addon-mpf/qiskit-addon-mpf.mdx similarity index 58% rename from docs/api/qiskit-addon-mpf/qiskit_addon_mpf.mdx rename to docs/api/qiskit-addon-mpf/qiskit-addon-mpf.mdx index 1c6ebb31203..d50c2282427 100644 --- a/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.mdx +++ b/docs/api/qiskit-addon-mpf/qiskit-addon-mpf.mdx @@ -11,6 +11,6 @@ Multi-product formulas. ## Submodules -| | | -| -------------------------------------------------------------------------------------------- | ------------ | -| [`static`](qiskit_addon_mpf.static#module-qiskit_addon_mpf.static "qiskit_addon_mpf.static") | Static MPFs. | +| | | +| --------------------------------------------------------------------------- | ------------ | +| [`static`](static#module-qiskit_addon_mpf.static "qiskit_addon_mpf.static") | Static MPFs. | diff --git a/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.mdx b/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.mdx deleted file mode 100644 index 86a55cd30ab..00000000000 --- a/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.mdx +++ /dev/null @@ -1,26 +0,0 @@ -# Static MPFs - - - - - -Static MPFs. - -## Linear system of equations utilities - -| | | -| ------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------- | -| [`LSE`](qiskit_addon_mpf.static.LSE "qiskit_addon_mpf.static.LSE") | A `namedtuple` representing a linear system of equations. | -| [`setup_lse`](qiskit_addon_mpf.static.setup_lse "qiskit_addon_mpf.static.setup_lse") | Return the linear system of equations for computing the static MPF coefficients. | - -## Exact static MPF coefficients - -| | | -| ------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [`setup_exact_model`](qiskit_addon_mpf.static.setup_exact_model "qiskit_addon_mpf.static.setup_exact_model") | Construct a [`cvxpy.Problem`](https://www.cvxpy.org/api_reference/cvxpy.problems.html#cvxpy.Problem "(in CVXPY v1.5)") for finding exact static MPF coefficients. | - -## Approximate static MPF coefficients - -| | | -| ------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [`setup_approximate_model`](qiskit_addon_mpf.static.setup_approximate_model "qiskit_addon_mpf.static.setup_approximate_model") | Construct a [`cvxpy.Problem`](https://www.cvxpy.org/api_reference/cvxpy.problems.html#cvxpy.Problem "(in CVXPY v1.5)") for finding approximate static MPF coefficients. | diff --git a/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.LSE.mdx b/docs/api/qiskit-addon-mpf/static-lse.mdx similarity index 100% rename from docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.LSE.mdx rename to docs/api/qiskit-addon-mpf/static-lse.mdx diff --git a/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.setup_approximate_model.mdx b/docs/api/qiskit-addon-mpf/static-setup-approximate-model.mdx similarity index 92% rename from docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.setup_approximate_model.mdx rename to docs/api/qiskit-addon-mpf/static-setup-approximate-model.mdx index 24a94dd16d7..bd59edf321c 100644 --- a/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.setup_approximate_model.mdx +++ b/docs/api/qiskit-addon-mpf/static-setup-approximate-model.mdx @@ -15,7 +15,7 @@ python_api_name: qiskit_addon_mpf.static.setup_approximate_model The optimization problem constructed by this class is defined as follows: - * the cost function minimizes the sum of squares ([`sum_squares()`](https://www.cvxpy.org/api_reference/cvxpy.atoms.other_atoms.html#cvxpy.atoms.sum_squares.sum_squares "(in CVXPY v1.5)")) of the distances to an exact solution for all equations of the [`LSE`](qiskit_addon_mpf.static.LSE "qiskit_addon_mpf.static.LSE"): + * the cost function minimizes the sum of squares ([`sum_squares()`](https://www.cvxpy.org/api_reference/cvxpy.atoms.other_atoms.html#cvxpy.atoms.sum_squares.sum_squares "(in CVXPY v1.5)")) of the distances to an exact solution for all equations of the [`LSE`](static-lse "qiskit_addon_mpf.static.LSE"): $$ \sum_i \left( \sum_j A_{ij} x_j - b_i \right)^2 @@ -50,7 +50,7 @@ $$ **Parameters** - * **lse** ([*LSE*](qiskit_addon_mpf.static.LSE "qiskit_addon_mpf.static.lse.LSE")) – the linear system of equations from which to build the model. + * **lse** ([*LSE*](static-lse "qiskit_addon_mpf.static.lse.LSE")) – the linear system of equations from which to build the model. * **max\_l1\_norm** ([*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – the upper limit to use for the constrain of the L1-norm of the variables. **Returns** diff --git a/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.setup_exact_model.mdx b/docs/api/qiskit-addon-mpf/static-setup-exact-model.mdx similarity index 78% rename from docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.setup_exact_model.mdx rename to docs/api/qiskit-addon-mpf/static-setup-exact-model.mdx index a2bdeb2efd8..a2508f059fa 100644 --- a/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.setup_exact_model.mdx +++ b/docs/api/qiskit-addon-mpf/static-setup-exact-model.mdx @@ -14,14 +14,14 @@ python_api_name: qiskit_addon_mpf.static.setup_exact_model Construct a [`cvxpy.Problem`](https://www.cvxpy.org/api_reference/cvxpy.problems.html#cvxpy.Problem "(in CVXPY v1.5)") for finding exact static MPF coefficients. - The coefficients found via this optimization problem will be identical to the analytical ones obtained from the [`LSE.solve()`](qiskit_addon_mpf.static.LSE#solve "qiskit_addon_mpf.static.LSE.solve") method. This additional interface exists to highlight the parallel to the [`setup_approximate_model()`](qiskit_addon_mpf.static.setup_approximate_model "qiskit_addon_mpf.static.setup_approximate_model") interface. It also serves educational purposes for how-to approach optimization problems targeting MPF coefficients. + The coefficients found via this optimization problem will be identical to the analytical ones obtained from the [`LSE.solve()`](static-lse#solve "qiskit_addon_mpf.static.LSE.solve") method. This additional interface exists to highlight the parallel to the [`setup_approximate_model()`](static-setup-approximate-model "qiskit_addon_mpf.static.setup_approximate_model") interface. It also serves educational purposes for how-to approach optimization problems targeting MPF coefficients. The optimization problem constructed by this class is defined as follows: - * the cost function minimizes the L1-norm ([`norm1`](https://www.cvxpy.org/api_reference/cvxpy.atoms.other_atoms.html#cvxpy.atoms.norm1.norm1 "(in CVXPY v1.5)")) of the variables ([`LSE.x`](qiskit_addon_mpf.static.LSE#x "qiskit_addon_mpf.static.LSE.x")) + * the cost function minimizes the L1-norm ([`norm1`](https://www.cvxpy.org/api_reference/cvxpy.atoms.other_atoms.html#cvxpy.atoms.norm1.norm1 "(in CVXPY v1.5)")) of the variables ([`LSE.x`](static-lse#x "qiskit_addon_mpf.static.LSE.x")) - * the constraints correspond to each equation of the [`LSE`](qiskit_addon_mpf.static.LSE "qiskit_addon_mpf.static.LSE"): + * the constraints correspond to each equation of the [`LSE`](static-lse "qiskit_addon_mpf.static.LSE"): $$ \sum_j A_{ij} x_j = b_i @@ -50,7 +50,7 @@ $$ **Parameters** - **lse** ([*LSE*](qiskit_addon_mpf.static.LSE "qiskit_addon_mpf.static.lse.LSE")) – the linear system of equations from which to build the model. + **lse** ([*LSE*](static-lse "qiskit_addon_mpf.static.lse.LSE")) – the linear system of equations from which to build the model. **Returns** diff --git a/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.setup_lse.mdx b/docs/api/qiskit-addon-mpf/static-setup-lse.mdx similarity index 89% rename from docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.setup_lse.mdx rename to docs/api/qiskit-addon-mpf/static-setup-lse.mdx index 19b15386655..4dffd5e31a0 100644 --- a/docs/api/qiskit-addon-mpf/qiskit_addon_mpf.static.setup_lse.mdx +++ b/docs/api/qiskit-addon-mpf/static-setup-lse.mdx @@ -45,16 +45,16 @@ $$ **Parameters** - * **trotter\_steps** ([*list*](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")*\[*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*] |* [*Parameter*](https://www.cvxpy.org/api_reference/cvxpy.expressions.html#cvxpy.expressions.constants.parameter.Parameter "(in CVXPY v1.5)")) – the sequence of trotter steps from which to build \$A\$. Rather than a list of integers, this may also be a [`Parameter`](https://www.cvxpy.org/api_reference/cvxpy.expressions.html#cvxpy.expressions.constants.parameter.Parameter "(in CVXPY v1.5)") instance of the desired size. In this case, the constructed [`LSE`](qiskit_addon_mpf.static.LSE "qiskit_addon_mpf.static.LSE") is parameterized whose values must be assigned before it can be solved. + * **trotter\_steps** ([*list*](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")*\[*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*] |* [*Parameter*](https://www.cvxpy.org/api_reference/cvxpy.expressions.html#cvxpy.expressions.constants.parameter.Parameter "(in CVXPY v1.5)")) – the sequence of trotter steps from which to build \$A\$. Rather than a list of integers, this may also be a [`Parameter`](https://www.cvxpy.org/api_reference/cvxpy.expressions.html#cvxpy.expressions.constants.parameter.Parameter "(in CVXPY v1.5)") instance of the desired size. In this case, the constructed [`LSE`](static-lse "qiskit_addon_mpf.static.LSE") is parameterized whose values must be assigned before it can be solved. * **order** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – the order of the individual product formulas making up the MPF. * **symmetric** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – whether the individual product formulas making up the MPF are symmetric. For example, the Lie-Trotter formula is not symmetric, while Suzuki-Trotter is. **Returns** - An [`LSE`](qiskit_addon_mpf.static.LSE "qiskit_addon_mpf.static.LSE"). + An [`LSE`](static-lse "qiskit_addon_mpf.static.LSE"). **Return type** - [*LSE*](qiskit_addon_mpf.static.LSE "qiskit_addon_mpf.static.lse.LSE") + [*LSE*](static-lse "qiskit_addon_mpf.static.lse.LSE") diff --git a/docs/api/qiskit-addon-mpf/static.mdx b/docs/api/qiskit-addon-mpf/static.mdx new file mode 100644 index 00000000000..82596d7761e --- /dev/null +++ b/docs/api/qiskit-addon-mpf/static.mdx @@ -0,0 +1,26 @@ +# Static MPFs + + + + + +Static MPFs. + +## Linear system of equations utilities + +| | | +| ------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| [`LSE`](static-lse "qiskit_addon_mpf.static.LSE") | A `namedtuple` representing a linear system of equations. | +| [`setup_lse`](static-setup-lse "qiskit_addon_mpf.static.setup_lse") | Return the linear system of equations for computing the static MPF coefficients. | + +## Exact static MPF coefficients + +| | | +| ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [`setup_exact_model`](static-setup-exact-model "qiskit_addon_mpf.static.setup_exact_model") | Construct a [`cvxpy.Problem`](https://www.cvxpy.org/api_reference/cvxpy.problems.html#cvxpy.Problem "(in CVXPY v1.5)") for finding exact static MPF coefficients. | + +## Approximate static MPF coefficients + +| | | +| ------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [`setup_approximate_model`](static-setup-approximate-model "qiskit_addon_mpf.static.setup_approximate_model") | Construct a [`cvxpy.Problem`](https://www.cvxpy.org/api_reference/cvxpy.problems.html#cvxpy.Problem "(in CVXPY v1.5)") for finding approximate static MPF coefficients. | diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.backpropagate.mdx b/docs/api/qiskit-addon-obp/backpropagate.mdx similarity index 74% rename from docs/api/qiskit-addon-obp/qiskit_addon_obp.backpropagate.mdx rename to docs/api/qiskit-addon-obp/backpropagate.mdx index 21c692144de..86e3ebdca75 100644 --- a/docs/api/qiskit-addon-obp/qiskit_addon_obp.backpropagate.mdx +++ b/docs/api/qiskit-addon-obp/backpropagate.mdx @@ -13,9 +13,9 @@ python_api_name: qiskit_addon_obp.backpropagate This function takes a (list of) observable(s) and backpropagates the provided quantum circuit slices **in reverse order** onto the observable(s) until one of the stopping criteria is reached. - The stopping criteria are values which constrain how large the observable may grow during backpropagation. These may be specified via the `operator_budget` optional argument. Refer to the [`OperatorBudget`](qiskit_addon_obp.utils.simplify.OperatorBudget "qiskit_addon_obp.utils.simplify.OperatorBudget") class for more details. + The stopping criteria are values which constrain how large the observable may grow during backpropagation. These may be specified via the `operator_budget` optional argument. Refer to the [`OperatorBudget`](utils-simplify-operator-budget "qiskit_addon_obp.utils.simplify.OperatorBudget") class for more details. - During backpropagation, users may truncate low-weight terms from the output observables, potentially reducing the number of experiments needed to run on the QPU. Truncating observable terms results in expectation value error proportional to the weights of the truncated terms. Users may specify how aggressively to truncate by providing a [`TruncationErrorBudget`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") to the `truncation_error_budget` argument. Refer to the [`setup_budget()`](qiskit_addon_obp.utils.truncating.setup_budget "qiskit_addon_obp.utils.truncating.setup_budget") documentation for more details. + During backpropagation, users may truncate low-weight terms from the output observables, potentially reducing the number of experiments needed to run on the QPU. Truncating observable terms results in expectation value error proportional to the weights of the truncated terms. Users may specify how aggressively to truncate by providing a [`TruncationErrorBudget`](utils-truncating-truncation-error-budget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") to the `truncation_error_budget` argument. Refer to the [`setup_budget()`](utils-truncating-setup-budget "qiskit_addon_obp.utils.truncating.setup_budget") documentation for more details. The `max_seconds` argument is not available on Windows! @@ -25,8 +25,8 @@ python_api_name: qiskit_addon_obp.backpropagate * **observables** ([*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)") *|*[*list*](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")*\[*[*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)")*]*) – The observable(s) onto which the circuit is backpropagated. * **slices** ([*Sequence*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")*\[*[*QuantumCircuit*](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")*]*) – A sequence of `QuantumCircuit` objects representing a single circuit which has been separated into partitions spanning all qubits. **These “slices” will be backpropagated in reverse order.** Each slice must span all qubits. One may use the tools provided in [`qiskit_addon_utils.slicing`](https://qiskit.github.io/qiskit-addon-utils/apidocs/qiskit_addon_utils.slicing.html#module-qiskit_addon_utils.slicing "(in Qiskit addon utilities)") to slice a single [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"). - * **truncation\_error\_budget** ([*TruncationErrorBudget*](qiskit_addon_obp.utils.truncating.TruncationErrorBudget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") *| None*) – The error budget used for truncating Pauli terms. Refer to the [how-to guide](https://qiskit.github.io/qiskit-addon-obp/how_tos/truncate_operator_terms.html) for a detailed discussion on truncating terms from the output operator and bounding the incurred error. - * **operator\_budget** ([*OperatorBudget*](qiskit_addon_obp.utils.simplify.OperatorBudget "qiskit_addon_obp.utils.simplify.OperatorBudget") *| None*) – Constraints on how large the operator may grow during backpropagation. If `None`, a default instance of [`OperatorBudget`](qiskit_addon_obp.utils.simplify.OperatorBudget "qiskit_addon_obp.utils.simplify.OperatorBudget") will be used, and no constraints will be placed on the output operator size. + * **truncation\_error\_budget** ([*TruncationErrorBudget*](utils-truncating-truncation-error-budget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") *| None*) – The error budget used for truncating Pauli terms. Refer to the [how-to guide](https://qiskit.github.io/qiskit-addon-obp/how_tos/truncate_operator_terms.html) for a detailed discussion on truncating terms from the output operator and bounding the incurred error. + * **operator\_budget** ([*OperatorBudget*](utils-simplify-operator-budget "qiskit_addon_obp.utils.simplify.OperatorBudget") *| None*) – Constraints on how large the operator may grow during backpropagation. If `None`, a default instance of [`OperatorBudget`](utils-simplify-operator-budget "qiskit_addon_obp.utils.simplify.OperatorBudget") will be used, and no constraints will be placed on the output operator size. * **max\_seconds** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *| None*) – The maximum number of seconds to run the backpropagation. If this timeout is triggered before the function returns, the metadata of that moment will be returned. Note, that this metadata may contain only partial information for the last slice being backpropagated. **Returns** @@ -44,6 +44,6 @@ python_api_name: qiskit_addon_obp.backpropagate **Return type** - [tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[list](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")\[[*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)")], [*Sequence*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")\[[*QuantumCircuit*](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")], [*OBPMetadata*](qiskit_addon_obp.utils.metadata.OBPMetadata "qiskit_addon_obp.utils.metadata.OBPMetadata")] + [tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[list](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")\[[*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)")], [*Sequence*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")\[[*QuantumCircuit*](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)")], [*OBPMetadata*](utils-metadata-obp-metadata "qiskit_addon_obp.utils.metadata.OBPMetadata")] diff --git a/docs/api/qiskit-addon-obp/qiskit-addon-obp.mdx b/docs/api/qiskit-addon-obp/qiskit-addon-obp.mdx new file mode 100644 index 00000000000..34d77d85800 --- /dev/null +++ b/docs/api/qiskit-addon-obp/qiskit-addon-obp.mdx @@ -0,0 +1,17 @@ +# Qiskit addon: operator backpropagation (OBP) + + + + + +Main operator backpropagation functionality. + +| | | +| ----------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| [`backpropagate`](backpropagate "qiskit_addon_obp.backpropagate") | Backpropagate slices of quantum circuit operations onto the provided observables. | + +## Submodules + +| | | +| ----------------------------------------------------------------------- | -------------------------------------------------------------- | +| [`utils`](utils#module-qiskit_addon_obp.utils "qiskit_addon_obp.utils") | Utility functionality for conducting operator backpropagation. | diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.mdx deleted file mode 100644 index 5ce6964c34c..00000000000 --- a/docs/api/qiskit-addon-obp/qiskit_addon_obp.mdx +++ /dev/null @@ -1,17 +0,0 @@ -# Qiskit addon: operator backpropagation (OBP) - - - - - -Main operator backpropagation functionality. - -| | | -| ---------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | -| [`backpropagate`](qiskit_addon_obp.backpropagate "qiskit_addon_obp.backpropagate") | Backpropagate slices of quantum circuit operations onto the provided observables. | - -## Submodules - -| | | -| ---------------------------------------------------------------------------------------- | -------------------------------------------------------------- | -| [`utils`](qiskit_addon_obp.utils#module-qiskit_addon_obp.utils "qiskit_addon_obp.utils") | Utility functionality for conducting operator backpropagation. | diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.mdx deleted file mode 100644 index 437f3781e23..00000000000 --- a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.mdx +++ /dev/null @@ -1,15 +0,0 @@ -# utils - - - - - -Utility functionality for conducting operator backpropagation. - -| | | -| ------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------- | -| [`metadata`](qiskit_addon_obp.utils.metadata#module-qiskit_addon_obp.utils.metadata "qiskit_addon_obp.utils.metadata") | Container classes for holding backpropagation metadata. | -| [`operations`](qiskit_addon_obp.utils.operations#module-qiskit_addon_obp.utils.operations "qiskit_addon_obp.utils.operations") | Utility functions for operator backpropagation. | -| [`simplify`](qiskit_addon_obp.utils.simplify#module-qiskit_addon_obp.utils.simplify "qiskit_addon_obp.utils.simplify") | Functions for simplifying Pauli operators. | -| [`truncating`](qiskit_addon_obp.utils.truncating#module-qiskit_addon_obp.utils.truncating "qiskit_addon_obp.utils.truncating") | Functions for truncating Pauli operators within given error budgets. | -| [`visualization`](qiskit_addon_obp.utils.visualization#module-qiskit_addon_obp.utils.visualization "qiskit_addon_obp.utils.visualization") | Various visualization utilities. | diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.metadata.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.metadata.mdx deleted file mode 100644 index bc27644e4ba..00000000000 --- a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.metadata.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# metadata - - - - - -Container classes for holding backpropagation metadata. - -| | | -| ---------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -| [`OBPMetadata`](qiskit_addon_obp.utils.metadata.OBPMetadata "qiskit_addon_obp.utils.metadata.OBPMetadata") | A container for metadata generated during the `backpropagate()` method. | -| [`SliceMetadata`](qiskit_addon_obp.utils.metadata.SliceMetadata "qiskit_addon_obp.utils.metadata.SliceMetadata") | A container for metadata generated during the backpropagation of a single slice. | diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.mdx deleted file mode 100644 index b46ed5d658c..00000000000 --- a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.mdx +++ /dev/null @@ -1,13 +0,0 @@ -# operations - - - - - -Utility functions for operator backpropagation. - -| | | -| ----------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -| [`apply_op_to`](qiskit_addon_obp.utils.operations.apply_op_to "qiskit_addon_obp.utils.operations.apply_op_to") | Apply the operator `op2` to the operator `op1`. | -| [`to_global_op`](qiskit_addon_obp.utils.operations.to_global_op "qiskit_addon_obp.utils.operations.to_global_op") | Convert a local operator to a global operator by inserting identities on qubits which aren't used. | -| [`reduce_op`](qiskit_addon_obp.utils.operations.reduce_op "qiskit_addon_obp.utils.operations.reduce_op") | Create a lean representation of a global Pauli operator. | diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.mdx deleted file mode 100644 index a10fe0c16f8..00000000000 --- a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.mdx +++ /dev/null @@ -1,13 +0,0 @@ -# simplify - - - - - -Functions for simplifying Pauli operators. - -| | | -| ------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | -| [`OperatorBudget`](qiskit_addon_obp.utils.simplify.OperatorBudget "qiskit_addon_obp.utils.simplify.OperatorBudget") | A class for storing the constants that determine how large an operator may grow. | -| [`SimplifyMetadata`](qiskit_addon_obp.utils.simplify.SimplifyMetadata "qiskit_addon_obp.utils.simplify.SimplifyMetadata") | A simple dataclass for returning the tracked attributes during operator simplification. | -| [`simplify`](qiskit_addon_obp.utils.simplify.simplify "qiskit_addon_obp.utils.simplify.simplify") | Simplifies the provided Pauli operator. | diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.mdx deleted file mode 100644 index ebb43861491..00000000000 --- a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.mdx +++ /dev/null @@ -1,13 +0,0 @@ -# truncating - - - - - -Functions for truncating Pauli operators within given error budgets. - -| | | -| ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | -| [`TruncationErrorBudget`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") | A class for storing the constants that determine the truncation error budget. | -| [`setup_budget`](qiskit_addon_obp.utils.truncating.setup_budget "qiskit_addon_obp.utils.truncating.setup_budget") | Calculate the budget available to each slice for observable term truncation. | -| [`truncate_binary_search`](qiskit_addon_obp.utils.truncating.truncate_binary_search "qiskit_addon_obp.utils.truncating.truncate_binary_search") | Perform binary search to find an optimal observable truncation threshold. | diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.mdx b/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.mdx deleted file mode 100644 index c988457409d..00000000000 --- a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.mdx +++ /dev/null @@ -1,17 +0,0 @@ -# visualization - - - - - -Various visualization utilities. - -| | | -| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | -| [`plot_accumulated_error`](qiskit_addon_obp.utils.visualization.plot_accumulated_error "qiskit_addon_obp.utils.visualization.plot_accumulated_error") | Plot the accumulated error. | -| [`plot_left_over_error_budget`](qiskit_addon_obp.utils.visualization.plot_left_over_error_budget "qiskit_addon_obp.utils.visualization.plot_left_over_error_budget") | Plot the left-over error budget. | -| [`plot_slice_errors`](qiskit_addon_obp.utils.visualization.plot_slice_errors "qiskit_addon_obp.utils.visualization.plot_slice_errors") | Plot the slice errors. | -| [`plot_num_paulis`](qiskit_addon_obp.utils.visualization.plot_num_paulis "qiskit_addon_obp.utils.visualization.plot_num_paulis") | Plot the number of Pauli terms. | -| [`plot_num_truncated_paulis`](qiskit_addon_obp.utils.visualization.plot_num_truncated_paulis "qiskit_addon_obp.utils.visualization.plot_num_truncated_paulis") | Plot the number of truncated Pauli terms. | -| [`plot_sum_paulis`](qiskit_addon_obp.utils.visualization.plot_sum_paulis "qiskit_addon_obp.utils.visualization.plot_sum_paulis") | Plot the total number of all Pauli terms. | -| [`plot_num_qwc_groups`](qiskit_addon_obp.utils.visualization.plot_num_qwc_groups "qiskit_addon_obp.utils.visualization.plot_num_qwc_groups") | Plot the number of qubit-wise commuting Pauli groups. | diff --git a/docs/api/qiskit-addon-obp/release-notes.mdx b/docs/api/qiskit-addon-obp/release-notes.mdx index b3ec22f0d8c..0f22da2ab42 100644 --- a/docs/api/qiskit-addon-obp/release-notes.mdx +++ b/docs/api/qiskit-addon-obp/release-notes.mdx @@ -20,19 +20,19 @@ in_page_toc_max_heading_level: 2 ### New Features -* Added a [`OperatorBudget`](qiskit_addon_obp.utils.simplify.OperatorBudget "qiskit_addon_obp.utils.simplify.OperatorBudget") class for specifying how large an operator may grow during back-propagation. +* Added a [`OperatorBudget`](utils-simplify-operator-budget "qiskit_addon_obp.utils.simplify.OperatorBudget") class for specifying how large an operator may grow during back-propagation. -* Adds the `max_seconds` keyword-argument to the [`backpropagate()`](qiskit_addon_obp.backpropagate "qiskit_addon_obp.backpropagate") function, allowing the end-user to specify a maximum wall clock time for the algorithm. This can (for example) be useful for exploring different truncation error budget strategies while limiting the CPU time. +* Adds the `max_seconds` keyword-argument to the [`backpropagate()`](backpropagate "qiskit_addon_obp.backpropagate") function, allowing the end-user to specify a maximum wall clock time for the algorithm. This can (for example) be useful for exploring different truncation error budget strategies while limiting the CPU time. -* Introduced a new `dataclass`, [`TruncationErrorBudget`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget"), for holding information about the observable truncation strategy. +* Introduced a new `dataclass`, [`TruncationErrorBudget`](utils-truncating-truncation-error-budget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget"), for holding information about the observable truncation strategy. -* Introduced a new function, [`setup_budget()`](qiskit_addon_obp.utils.truncating.setup_budget "qiskit_addon_obp.utils.truncating.setup_budget"), which generates a [`TruncationErrorBudget`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") class, given an observable truncation strategy (e.g. `max_error_total`, `max_error_per_slice`, `p_norm`). +* Introduced a new function, [`setup_budget()`](utils-truncating-setup-budget "qiskit_addon_obp.utils.truncating.setup_budget"), which generates a [`TruncationErrorBudget`](utils-truncating-truncation-error-budget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") class, given an observable truncation strategy (e.g. `max_error_total`, `max_error_per_slice`, `p_norm`). ### Upgrade Notes -* The [`backpropagate()`](qiskit_addon_obp.backpropagate "qiskit_addon_obp.backpropagate") function no longer accepts `max_paulis` and `max_qwc_groups` kwargs for constraining the size of the operator during back-propagation. Users should instead use the new `operator_budget` kwarg, which takes an [`OperatorBudget`](qiskit_addon_obp.utils.simplify.OperatorBudget "qiskit_addon_obp.utils.simplify.OperatorBudget") instance. +* The [`backpropagate()`](backpropagate "qiskit_addon_obp.backpropagate") function no longer accepts `max_paulis` and `max_qwc_groups` kwargs for constraining the size of the operator during back-propagation. Users should instead use the new `operator_budget` kwarg, which takes an [`OperatorBudget`](utils-simplify-operator-budget "qiskit_addon_obp.utils.simplify.OperatorBudget") instance. To migrate, change this code @@ -58,7 +58,7 @@ in_page_toc_max_heading_level: 2 bp_obs, remaining_slices, metadata = backpropagate(obs, slices, operator_budget=op_budget) ``` -* The `max_slices` kwarg has been removed from [`backpropagate()`](qiskit_addon_obp.backpropagate "qiskit_addon_obp.backpropagate"). Users should now only pass in slices which they intend to back-propagate. If a user wants to attempt to only back-propagate the last `20` slices of an `N`-slice circuit, they would simply pass in the last `20` slices to [`backpropagate()`](qiskit_addon_obp.backpropagate "qiskit_addon_obp.backpropagate") and, recombine any slices remaining after back-propagation with the original `N-20` slices. +* The `max_slices` kwarg has been removed from [`backpropagate()`](backpropagate "qiskit_addon_obp.backpropagate"). Users should now only pass in slices which they intend to back-propagate. If a user wants to attempt to only back-propagate the last `20` slices of an `N`-slice circuit, they would simply pass in the last `20` slices to [`backpropagate()`](backpropagate "qiskit_addon_obp.backpropagate") and, recombine any slices remaining after back-propagation with the original `N-20` slices. For example @@ -75,9 +75,9 @@ in_page_toc_max_heading_level: 2 reduced_circuit = combine_slices(slices[:-num_slices] + remaining_slices) ``` -* The `max_slices` kwarg in [`setup_budget()`](qiskit_addon_obp.utils.truncating.setup_budget "qiskit_addon_obp.utils.truncating.setup_budget") has been renamed to `num_slices`. +* The `max_slices` kwarg in [`setup_budget()`](utils-truncating-setup-budget "qiskit_addon_obp.utils.truncating.setup_budget") has been renamed to `num_slices`. -* The `max_slices` attribute in [`OBPMetadata`](qiskit_addon_obp.utils.metadata.OBPMetadata "qiskit_addon_obp.utils.metadata.OBPMetadata") has been renamed to `num_slices`. +* The `max_slices` attribute in [`OBPMetadata`](utils-metadata-obp-metadata "qiskit_addon_obp.utils.metadata.OBPMetadata") has been renamed to `num_slices`. * The project’s root Python namespace has been changed from `obp` to `qiskit_addon_obp`. All package imports must be updated. @@ -93,17 +93,17 @@ in_page_toc_max_heading_level: 2 from qiskit_addon_obp import backpropagate ``` -* Removed the `max_error_total`, `max_error_per_slice`, and `p_norm` kwargs from the [`backpropagate()`](qiskit_addon_obp.backpropagate "qiskit_addon_obp.backpropagate") signature. Instead, users must specify their observable truncation strategy with the new `truncation_error_budget` kwarg which accepts a [`TruncationErrorBudget`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") instance. +* Removed the `max_error_total`, `max_error_per_slice`, and `p_norm` kwargs from the [`backpropagate()`](backpropagate "qiskit_addon_obp.backpropagate") signature. Instead, users must specify their observable truncation strategy with the new `truncation_error_budget` kwarg which accepts a [`TruncationErrorBudget`](utils-truncating-truncation-error-budget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") instance. -* Removed the `per_slice_budget`, `max_error_total`, and `p_norm` fields from the [`OBPMetadata`](qiskit_addon_obp.utils.metadata.OBPMetadata "qiskit_addon_obp.utils.metadata.OBPMetadata") class. These fields will now be accessed through the new `truncation_error_budget` field, which holds a [`TruncationErrorBudget`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") instance. +* Removed the `per_slice_budget`, `max_error_total`, and `p_norm` fields from the [`OBPMetadata`](utils-metadata-obp-metadata "qiskit_addon_obp.utils.metadata.OBPMetadata") class. These fields will now be accessed through the new `truncation_error_budget` field, which holds a [`TruncationErrorBudget`](utils-truncating-truncation-error-budget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") instance. ### Bug Fixes -* The [`setup_budget()`](qiskit_addon_obp.utils.truncating.setup_budget "qiskit_addon_obp.utils.truncating.setup_budget") erroneously distributed the `max_error_total` when `num_slices` was also set. This has been fixed now, such that the budget always gets distributed evenly, regardless of the value of `p_norm`. +* The [`setup_budget()`](utils-truncating-setup-budget "qiskit_addon_obp.utils.truncating.setup_budget") erroneously distributed the `max_error_total` when `num_slices` was also set. This has been fixed now, such that the budget always gets distributed evenly, regardless of the value of `p_norm`. -* When the `max_seconds` argument to the [`backpropagate()`](qiskit_addon_obp.backpropagate "qiskit_addon_obp.backpropagate") method is used, but the timeout is not reached during the actual OBP execution, the signal will now be reset properly, thereby avoiding cancellations at a (seemingly) random later point in time (of course, it is not random but actually after the specified amount of time has passed, but the rest of the code being executed after OBP could be doing anything at this point). +* When the `max_seconds` argument to the [`backpropagate()`](backpropagate "qiskit_addon_obp.backpropagate") method is used, but the timeout is not reached during the actual OBP execution, the signal will now be reset properly, thereby avoiding cancellations at a (seemingly) random later point in time (of course, it is not random but actually after the specified amount of time has passed, but the rest of the code being executed after OBP could be doing anything at this point). -* The computation of the [`accumulated_error()`](qiskit_addon_obp.utils.metadata.OBPMetadata#accumulated_error "qiskit_addon_obp.utils.metadata.OBPMetadata.accumulated_error") and [`left_over_error_budget()`](qiskit_addon_obp.utils.metadata.OBPMetadata#left_over_error_budget "qiskit_addon_obp.utils.metadata.OBPMetadata.left_over_error_budget") were fixed to respect the [Minkowski inequality](https://en.wikipedia.org/wiki/Minkowski_inequality). This is necessary, because a general Lp-norm (other than `p=2`) does not satisfy the [parallelogram law](https://en.wikipedia.org/wiki/Parallelogram_law) which resulted in a non-rigorous upper bound of the actual accumulated errors (and left-over error budgets by extension). +* The computation of the [`accumulated_error()`](utils-metadata-obp-metadata#accumulated_error "qiskit_addon_obp.utils.metadata.OBPMetadata.accumulated_error") and [`left_over_error_budget()`](utils-metadata-obp-metadata#left_over_error_budget "qiskit_addon_obp.utils.metadata.OBPMetadata.left_over_error_budget") were fixed to respect the [Minkowski inequality](https://en.wikipedia.org/wiki/Minkowski_inequality). This is necessary, because a general Lp-norm (other than `p=2`) does not satisfy the [parallelogram law](https://en.wikipedia.org/wiki/Parallelogram_law) which resulted in a non-rigorous upper bound of the actual accumulated errors (and left-over error budgets by extension). diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.metadata.OBPMetadata.mdx b/docs/api/qiskit-addon-obp/utils-metadata-obp-metadata.mdx similarity index 88% rename from docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.metadata.OBPMetadata.mdx rename to docs/api/qiskit-addon-obp/utils-metadata-obp-metadata.mdx index 5761d51df4d..d7e2fae61b9 100644 --- a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.metadata.OBPMetadata.mdx +++ b/docs/api/qiskit-addon-obp/utils-metadata-obp-metadata.mdx @@ -58,7 +58,7 @@ python_api_name: qiskit_addon_obp.utils.metadata.OBPMetadata This method computes the accumulated error for a given observable index at a given “time” during the course of the backpropagation. In this context, “time” is to be understood as the discrete steps of already backpropagated slices. - The accumulated error is computed as the sum of the individual [`SliceMetadata.slice_errors`](qiskit_addon_obp.utils.metadata.SliceMetadata#slice_errors "qiskit_addon_obp.utils.metadata.SliceMetadata.slice_errors"). These in turn may be computed within a specified [`TruncationErrorBudget.p_norm`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget#p_norm "qiskit_addon_obp.utils.truncating.TruncationErrorBudget.p_norm"). Thus, the computed accumulated error is an upper bound to the real accumulated error as given by the [Minkowski inequality](https://en.wikipedia.org/wiki/Minkowski_inequality) (the generalization of the triangle inequality for Lp-norms other than `p=2`). + The accumulated error is computed as the sum of the individual [`SliceMetadata.slice_errors`](utils-metadata-slice-metadata#slice_errors "qiskit_addon_obp.utils.metadata.SliceMetadata.slice_errors"). These in turn may be computed within a specified [`TruncationErrorBudget.p_norm`](utils-truncating-truncation-error-budget#p_norm "qiskit_addon_obp.utils.truncating.TruncationErrorBudget.p_norm"). Thus, the computed accumulated error is an upper bound to the real accumulated error as given by the [Minkowski inequality](https://en.wikipedia.org/wiki/Minkowski_inequality) (the generalization of the triangle inequality for Lp-norms other than `p=2`). Since a general Lp-norm (other than `p=2`) is *not* an inner product norm, it does *not* satisfy the [parallelogram law](https://en.wikipedia.org/wiki/Parallelogram_law). Hence, we must use the Minkowski inequality as the upper bound of the accumulated error. @@ -103,7 +103,7 @@ python_api_name: qiskit_addon_obp.utils.metadata.OBPMetadata This method computes the left-over error budget for a given observable index at a given “time” during the course of the backpropagation. In this context, “time” is to be understood as the discrete steps of already backpropagated slices. - The left-over error budget is computed as the remainder of the total budget minus the sum of the individual [`SliceMetadata.slice_errors`](qiskit_addon_obp.utils.metadata.SliceMetadata#slice_errors "qiskit_addon_obp.utils.metadata.SliceMetadata.slice_errors"). These in turn may be computed within a specified [`TruncationErrorBudget.p_norm`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget#p_norm "qiskit_addon_obp.utils.truncating.TruncationErrorBudget.p_norm"). + The left-over error budget is computed as the remainder of the total budget minus the sum of the individual [`SliceMetadata.slice_errors`](utils-metadata-slice-metadata#slice_errors "qiskit_addon_obp.utils.metadata.SliceMetadata.slice_errors"). These in turn may be computed within a specified [`TruncationErrorBudget.p_norm`](utils-truncating-truncation-error-budget#p_norm "qiskit_addon_obp.utils.truncating.TruncationErrorBudget.p_norm"). See also the explanations in [`accumulated_error()`](#qiskit_addon_obp.utils.metadata.OBPMetadata.accumulated_error "qiskit_addon_obp.utils.metadata.OBPMetadata.accumulated_error") for more details on how the individual slice errors are summed up to form an upper bound to the real error via the Minkowski inequality. diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.metadata.SliceMetadata.mdx b/docs/api/qiskit-addon-obp/utils-metadata-slice-metadata.mdx similarity index 96% rename from docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.metadata.SliceMetadata.mdx rename to docs/api/qiskit-addon-obp/utils-metadata-slice-metadata.mdx index 5e74acdcc7c..4d16a84d544 100644 --- a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.metadata.SliceMetadata.mdx +++ b/docs/api/qiskit-addon-obp/utils-metadata-slice-metadata.mdx @@ -63,7 +63,7 @@ python_api_name: qiskit_addon_obp.utils.metadata.SliceMetadata The sum of the coefficients for each observable that were trimmed during operator simplification because each individual coefficient was below the trimming threshold. - This sum is *not* affected by the value of [`p_norm`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget#p_norm "qiskit_addon_obp.utils.truncating.TruncationErrorBudget.p_norm")! + This sum is *not* affected by the value of [`p_norm`](utils-truncating-truncation-error-budget#p_norm "qiskit_addon_obp.utils.truncating.TruncationErrorBudget.p_norm")! diff --git a/docs/api/qiskit-addon-obp/utils-metadata.mdx b/docs/api/qiskit-addon-obp/utils-metadata.mdx new file mode 100644 index 00000000000..e00af07a4ee --- /dev/null +++ b/docs/api/qiskit-addon-obp/utils-metadata.mdx @@ -0,0 +1,12 @@ +# metadata + + + + + +Container classes for holding backpropagation metadata. + +| | | +| ------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------- | +| [`OBPMetadata`](utils-metadata-obp-metadata "qiskit_addon_obp.utils.metadata.OBPMetadata") | A container for metadata generated during the `backpropagate()` method. | +| [`SliceMetadata`](utils-metadata-slice-metadata "qiskit_addon_obp.utils.metadata.SliceMetadata") | A container for metadata generated during the backpropagation of a single slice. | diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.apply_op_to.mdx b/docs/api/qiskit-addon-obp/utils-operations-apply-op-to.mdx similarity index 100% rename from docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.apply_op_to.mdx rename to docs/api/qiskit-addon-obp/utils-operations-apply-op-to.mdx diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.reduce_op.mdx b/docs/api/qiskit-addon-obp/utils-operations-reduce-op.mdx similarity index 100% rename from docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.reduce_op.mdx rename to docs/api/qiskit-addon-obp/utils-operations-reduce-op.mdx diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.to_global_op.mdx b/docs/api/qiskit-addon-obp/utils-operations-to-global-op.mdx similarity index 100% rename from docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.operations.to_global_op.mdx rename to docs/api/qiskit-addon-obp/utils-operations-to-global-op.mdx diff --git a/docs/api/qiskit-addon-obp/utils-operations.mdx b/docs/api/qiskit-addon-obp/utils-operations.mdx new file mode 100644 index 00000000000..c592a229b46 --- /dev/null +++ b/docs/api/qiskit-addon-obp/utils-operations.mdx @@ -0,0 +1,13 @@ +# operations + + + + + +Utility functions for operator backpropagation. + +| | | +| ------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------- | +| [`apply_op_to`](utils-operations-apply-op-to "qiskit_addon_obp.utils.operations.apply_op_to") | Apply the operator `op2` to the operator `op1`. | +| [`to_global_op`](utils-operations-to-global-op "qiskit_addon_obp.utils.operations.to_global_op") | Convert a local operator to a global operator by inserting identities on qubits which aren't used. | +| [`reduce_op`](utils-operations-reduce-op "qiskit_addon_obp.utils.operations.reduce_op") | Create a lean representation of a global Pauli operator. | diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.OperatorBudget.mdx b/docs/api/qiskit-addon-obp/utils-simplify-operator-budget.mdx similarity index 93% rename from docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.OperatorBudget.mdx rename to docs/api/qiskit-addon-obp/utils-simplify-operator-budget.mdx index a7ab658eb1d..6decb16b4ed 100644 --- a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.OperatorBudget.mdx +++ b/docs/api/qiskit-addon-obp/utils-simplify-operator-budget.mdx @@ -35,7 +35,7 @@ python_api_name: qiskit_addon_obp.utils.simplify.OperatorBudget ### simplify - A flag denoting whether to call [`simplify()`](qiskit_addon_obp.utils.simplify.simplify "qiskit_addon_obp.utils.simplify.simplify") at every iteration. + A flag denoting whether to call [`simplify()`](utils-simplify-simplify "qiskit_addon_obp.utils.simplify.simplify") at every iteration. ## Methods diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.SimplifyMetadata.mdx b/docs/api/qiskit-addon-obp/utils-simplify-simplify-metadata.mdx similarity index 100% rename from docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.SimplifyMetadata.mdx rename to docs/api/qiskit-addon-obp/utils-simplify-simplify-metadata.mdx diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.simplify.mdx b/docs/api/qiskit-addon-obp/utils-simplify-simplify.mdx similarity index 93% rename from docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.simplify.mdx rename to docs/api/qiskit-addon-obp/utils-simplify-simplify.mdx index b109336c136..c7079dc364f 100644 --- a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify.simplify.mdx +++ b/docs/api/qiskit-addon-obp/utils-simplify-simplify.mdx @@ -25,6 +25,6 @@ python_api_name: qiskit_addon_obp.utils.simplify.simplify **Return type** - [tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), [*SimplifyMetadata*](qiskit_addon_obp.utils.simplify.SimplifyMetadata "qiskit_addon_obp.utils.simplify.SimplifyMetadata")] + [tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")\[[*SparsePauliOp*](/api/qiskit/qiskit.quantum_info.SparsePauliOp "(in Qiskit v1.2)"), [*SimplifyMetadata*](utils-simplify-simplify-metadata "qiskit_addon_obp.utils.simplify.SimplifyMetadata")] diff --git a/docs/api/qiskit-addon-obp/utils-simplify.mdx b/docs/api/qiskit-addon-obp/utils-simplify.mdx new file mode 100644 index 00000000000..d91f8975401 --- /dev/null +++ b/docs/api/qiskit-addon-obp/utils-simplify.mdx @@ -0,0 +1,13 @@ +# simplify + + + + + +Functions for simplifying Pauli operators. + +| | | +| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| [`OperatorBudget`](utils-simplify-operator-budget "qiskit_addon_obp.utils.simplify.OperatorBudget") | A class for storing the constants that determine how large an operator may grow. | +| [`SimplifyMetadata`](utils-simplify-simplify-metadata "qiskit_addon_obp.utils.simplify.SimplifyMetadata") | A simple dataclass for returning the tracked attributes during operator simplification. | +| [`simplify`](utils-simplify-simplify "qiskit_addon_obp.utils.simplify.simplify") | Simplifies the provided Pauli operator. | diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.setup_budget.mdx b/docs/api/qiskit-addon-obp/utils-truncating-setup-budget.mdx similarity index 68% rename from docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.setup_budget.mdx rename to docs/api/qiskit-addon-obp/utils-truncating-setup-budget.mdx index bd059b26ec1..91270403ed2 100644 --- a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.setup_budget.mdx +++ b/docs/api/qiskit-addon-obp/utils-truncating-setup-budget.mdx @@ -13,19 +13,19 @@ python_api_name: qiskit_addon_obp.utils.truncating.setup_budget Calculate the budget available to each slice for observable term truncation. - This method makes the construction of a [`TruncationErrorBudget`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") easier for an end-user. This error budget can be provided to the [`backpropagate()`](qiskit_addon_obp.backpropagate "qiskit_addon_obp.backpropagate") method to enable the truncation of low-weight Pauli terms. Refer to the [how-to guide](https://qiskit.github.io/qiskit-addon-obp/how_tos/truncate_operator_terms.html) for a detailed discussion on truncating terms from the output operator and bounding the incurred error. + This method makes the construction of a [`TruncationErrorBudget`](utils-truncating-truncation-error-budget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") easier for an end-user. This error budget can be provided to the [`backpropagate()`](backpropagate "qiskit_addon_obp.backpropagate") method to enable the truncation of low-weight Pauli terms. Refer to the [how-to guide](https://qiskit.github.io/qiskit-addon-obp/how_tos/truncate_operator_terms.html) for a detailed discussion on truncating terms from the output operator and bounding the incurred error. ## The construction logic is as follows: - * if `max_error_per_slice` is provided its value is converted to a list and used immediately for [`TruncationErrorBudget.per_slice_budget`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget#per_slice_budget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget.per_slice_budget") + * if `max_error_per_slice` is provided its value is converted to a list and used immediately for [`TruncationErrorBudget.per_slice_budget`](utils-truncating-truncation-error-budget#per_slice_budget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget.per_slice_budget") * if the above is not the case, `max_error_total` has to be set * if `num_slices` is **not** set,:attr:.TruncationErrorBudget.per\_slice\_budget gets set to `[max_error_total]` resulting in the entire budget being consumed **greedily** - * however, if `num_slices` is provided, then [`TruncationErrorBudget.per_slice_budget`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget#per_slice_budget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget.per_slice_budget") assumes an even distribution of the maximum total error across the specified number of slices: `[max_error_total / num_slices]` + * however, if `num_slices` is provided, then [`TruncationErrorBudget.per_slice_budget`](utils-truncating-truncation-error-budget#per_slice_budget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget.per_slice_budget") assumes an even distribution of the maximum total error across the specified number of slices: `[max_error_total / num_slices]` Finally, if `max_error_total` is set, this puts a hard limit on the total maximum error to be accumulated throughout the entire backpropagation. Thus, setting `max_error_per_slice` and `max_error_total` can be of value. - Budget not spent during a previous iteration will carry over into subsequent iterations, meaning that the maximum budget for any slice during backpropagation may in fact exceed [`TruncationErrorBudget.per_slice_budget`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget#per_slice_budget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget.per_slice_budget"). + Budget not spent during a previous iteration will carry over into subsequent iterations, meaning that the maximum budget for any slice during backpropagation may in fact exceed [`TruncationErrorBudget.per_slice_budget`](utils-truncating-truncation-error-budget#per_slice_budget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget.per_slice_budget"). **Parameters** @@ -37,7 +37,7 @@ python_api_name: qiskit_addon_obp.utils.truncating.setup_budget **Returns** - The resulting [`TruncationErrorBudget`](qiskit_addon_obp.utils.truncating.TruncationErrorBudget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget"). + The resulting [`TruncationErrorBudget`](utils-truncating-truncation-error-budget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget"). **Raises** @@ -45,6 +45,6 @@ python_api_name: qiskit_addon_obp.utils.truncating.setup_budget **Return type** - [*TruncationErrorBudget*](qiskit_addon_obp.utils.truncating.TruncationErrorBudget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") + [*TruncationErrorBudget*](utils-truncating-truncation-error-budget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.truncate_binary_search.mdx b/docs/api/qiskit-addon-obp/utils-truncating-truncate-binary-search.mdx similarity index 100% rename from docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.truncate_binary_search.mdx rename to docs/api/qiskit-addon-obp/utils-truncating-truncate-binary-search.mdx diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.TruncationErrorBudget.mdx b/docs/api/qiskit-addon-obp/utils-truncating-truncation-error-budget.mdx similarity index 100% rename from docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.truncating.TruncationErrorBudget.mdx rename to docs/api/qiskit-addon-obp/utils-truncating-truncation-error-budget.mdx diff --git a/docs/api/qiskit-addon-obp/utils-truncating.mdx b/docs/api/qiskit-addon-obp/utils-truncating.mdx new file mode 100644 index 00000000000..81829ecbb58 --- /dev/null +++ b/docs/api/qiskit-addon-obp/utils-truncating.mdx @@ -0,0 +1,13 @@ +# truncating + + + + + +Functions for truncating Pauli operators within given error budgets. + +| | | +| ------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------- | +| [`TruncationErrorBudget`](utils-truncating-truncation-error-budget "qiskit_addon_obp.utils.truncating.TruncationErrorBudget") | A class for storing the constants that determine the truncation error budget. | +| [`setup_budget`](utils-truncating-setup-budget "qiskit_addon_obp.utils.truncating.setup_budget") | Calculate the budget available to each slice for observable term truncation. | +| [`truncate_binary_search`](utils-truncating-truncate-binary-search "qiskit_addon_obp.utils.truncating.truncate_binary_search") | Perform binary search to find an optimal observable truncation threshold. | diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_accumulated_error.mdx b/docs/api/qiskit-addon-obp/utils-visualization-plot-accumulated-error.mdx similarity index 74% rename from docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_accumulated_error.mdx rename to docs/api/qiskit-addon-obp/utils-visualization-plot-accumulated-error.mdx index c2ac84f14d2..15a306bb1a3 100644 --- a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_accumulated_error.mdx +++ b/docs/api/qiskit-addon-obp/utils-visualization-plot-accumulated-error.mdx @@ -13,7 +13,7 @@ python_api_name: qiskit_addon_obp.utils.visualization.plot_accumulated_error Plot the accumulated error. - This method populates the provided figure axes with a line-plot of the [`OBPMetadata.accumulated_error()`](qiskit_addon_obp.utils.metadata.OBPMetadata#accumulated_error "qiskit_addon_obp.utils.metadata.OBPMetadata.accumulated_error"). Below is an example where we plot some `metadata` which exists within our context. + This method populates the provided figure axes with a line-plot of the [`OBPMetadata.accumulated_error()`](utils-metadata-obp-metadata#accumulated_error "qiskit_addon_obp.utils.metadata.OBPMetadata.accumulated_error"). Below is an example where we plot some `metadata` which exists within our context. ```python >>> from matplotlib import pyplot as plt @@ -26,11 +26,11 @@ python_api_name: qiskit_addon_obp.utils.visualization.plot_accumulated_error As you can see in the figure above, the number of backpropagated slices is displayed along the x-axis. You can think of this as the “time” of the backpropagation algorithm. The accumulated error due to truncated Pauli terms is displayed along the y-axis. If `OBPMetadata.truncation_error_budget.max_error_total` is not [`numpy.inf`](https://numpy.org/doc/stable/reference/constants.html#numpy.inf "(in NumPy v2.1)"), it is displayed as a red horizontal line. Each observable that was backpropagated, gets its own line. - This data is related to the one visualized by [`plot_slice_errors()`](qiskit_addon_obp.utils.visualization.plot_slice_errors "qiskit_addon_obp.utils.visualization.plot_slice_errors"). This method plots the cumulative sum of the slice errors along the x-axis. + This data is related to the one visualized by [`plot_slice_errors()`](utils-visualization-plot-slice-errors "qiskit_addon_obp.utils.visualization.plot_slice_errors"). This method plots the cumulative sum of the slice errors along the x-axis. **Parameters** - * **metadata** ([*OBPMetadata*](qiskit_addon_obp.utils.metadata.OBPMetadata "qiskit_addon_obp.utils.metadata.OBPMetadata")) – the metadata to be visualized. + * **metadata** ([*OBPMetadata*](utils-metadata-obp-metadata "qiskit_addon_obp.utils.metadata.OBPMetadata")) – the metadata to be visualized. * **axes** (*Axes*) – the matplotlib axes in which to plot. diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_left_over_error_budget.mdx b/docs/api/qiskit-addon-obp/utils-visualization-plot-left-over-error-budget.mdx similarity index 80% rename from docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_left_over_error_budget.mdx rename to docs/api/qiskit-addon-obp/utils-visualization-plot-left-over-error-budget.mdx index ba0f4424eb5..7471fe1d25c 100644 --- a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_left_over_error_budget.mdx +++ b/docs/api/qiskit-addon-obp/utils-visualization-plot-left-over-error-budget.mdx @@ -13,7 +13,7 @@ python_api_name: qiskit_addon_obp.utils.visualization.plot_left_over_error_budge Plot the left-over error budget. - This method populates the provided figure axes with a line-plot of the [`OBPMetadata.left_over_error_budget()`](qiskit_addon_obp.utils.metadata.OBPMetadata#left_over_error_budget "qiskit_addon_obp.utils.metadata.OBPMetadata.left_over_error_budget"). Below is an example where we plot some `metadata` which exists within our context. + This method populates the provided figure axes with a line-plot of the [`OBPMetadata.left_over_error_budget()`](utils-metadata-obp-metadata#left_over_error_budget "qiskit_addon_obp.utils.metadata.OBPMetadata.left_over_error_budget"). Below is an example where we plot some `metadata` which exists within our context. ```python >>> from matplotlib import pyplot as plt @@ -30,7 +30,7 @@ python_api_name: qiskit_addon_obp.utils.visualization.plot_left_over_error_budge **Parameters** - * **metadata** ([*OBPMetadata*](qiskit_addon_obp.utils.metadata.OBPMetadata "qiskit_addon_obp.utils.metadata.OBPMetadata")) – the metadata to be visualized. + * **metadata** ([*OBPMetadata*](utils-metadata-obp-metadata "qiskit_addon_obp.utils.metadata.OBPMetadata")) – the metadata to be visualized. * **axes** (*Axes*) – the matplotlib axes in which to plot. diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_num_paulis.mdx b/docs/api/qiskit-addon-obp/utils-visualization-plot-num-paulis.mdx similarity index 86% rename from docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_num_paulis.mdx rename to docs/api/qiskit-addon-obp/utils-visualization-plot-num-paulis.mdx index 0290e995bd3..21de0f287de 100644 --- a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_num_paulis.mdx +++ b/docs/api/qiskit-addon-obp/utils-visualization-plot-num-paulis.mdx @@ -30,11 +30,11 @@ python_api_name: qiskit_addon_obp.utils.visualization.plot_num_paulis As you can see in the figure above, the number of backpropagated slices is displayed along the x-axis. You can think of this as the “time” of the backpropagation algorithm. The number of Pauli terms at each backpropagation step is displayed along the y-axis. Since each observable is treated individually, they are plotted separately. - You can also find out the number of unique Pauli terms across all observables by using [`plot_sum_paulis()`](qiskit_addon_obp.utils.visualization.plot_sum_paulis "qiskit_addon_obp.utils.visualization.plot_sum_paulis"). + You can also find out the number of unique Pauli terms across all observables by using [`plot_sum_paulis()`](utils-visualization-plot-sum-paulis "qiskit_addon_obp.utils.visualization.plot_sum_paulis"). **Parameters** - * **metadata** ([*OBPMetadata*](qiskit_addon_obp.utils.metadata.OBPMetadata "qiskit_addon_obp.utils.metadata.OBPMetadata")) – the metadata to be visualized. + * **metadata** ([*OBPMetadata*](utils-metadata-obp-metadata "qiskit_addon_obp.utils.metadata.OBPMetadata")) – the metadata to be visualized. * **axes** (*Axes*) – the matplotlib axes in which to plot. diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_num_qwc_groups.mdx b/docs/api/qiskit-addon-obp/utils-visualization-plot-num-qwc-groups.mdx similarity index 93% rename from docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_num_qwc_groups.mdx rename to docs/api/qiskit-addon-obp/utils-visualization-plot-num-qwc-groups.mdx index e050ab1d450..200f2951549 100644 --- a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_num_qwc_groups.mdx +++ b/docs/api/qiskit-addon-obp/utils-visualization-plot-num-qwc-groups.mdx @@ -34,7 +34,7 @@ python_api_name: qiskit_addon_obp.utils.visualization.plot_num_qwc_groups **Parameters** - * **metadata** ([*OBPMetadata*](qiskit_addon_obp.utils.metadata.OBPMetadata "qiskit_addon_obp.utils.metadata.OBPMetadata")) – the metadata to be visualized. + * **metadata** ([*OBPMetadata*](utils-metadata-obp-metadata "qiskit_addon_obp.utils.metadata.OBPMetadata")) – the metadata to be visualized. * **axes** (*Axes*) – the matplotlib axes in which to plot. diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_num_truncated_paulis.mdx b/docs/api/qiskit-addon-obp/utils-visualization-plot-num-truncated-paulis.mdx similarity index 89% rename from docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_num_truncated_paulis.mdx rename to docs/api/qiskit-addon-obp/utils-visualization-plot-num-truncated-paulis.mdx index 492a2b21ed8..df5045c67a7 100644 --- a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_num_truncated_paulis.mdx +++ b/docs/api/qiskit-addon-obp/utils-visualization-plot-num-truncated-paulis.mdx @@ -34,11 +34,11 @@ python_api_name: qiskit_addon_obp.utils.visualization.plot_num_truncated_paulis As you can see in the figure above, the number of backpropagated slices is displayed along the x-axis. You can think of this as the “time” of the backpropagation algorithm. The number of truncated Pauli terms at each backpropagation step is displayed along the y-axis. Since each observable is treated individually, they are plotted separately. - This data can give you additional insight as to how the accumulated error is split across multiple Pauli terms (see also the output of [`plot_accumulated_error()`](qiskit_addon_obp.utils.visualization.plot_accumulated_error "qiskit_addon_obp.utils.visualization.plot_accumulated_error")). + This data can give you additional insight as to how the accumulated error is split across multiple Pauli terms (see also the output of [`plot_accumulated_error()`](utils-visualization-plot-accumulated-error "qiskit_addon_obp.utils.visualization.plot_accumulated_error")). **Parameters** - * **metadata** ([*OBPMetadata*](qiskit_addon_obp.utils.metadata.OBPMetadata "qiskit_addon_obp.utils.metadata.OBPMetadata")) – the metadata to be visualized. + * **metadata** ([*OBPMetadata*](utils-metadata-obp-metadata "qiskit_addon_obp.utils.metadata.OBPMetadata")) – the metadata to be visualized. * **axes** (*Axes*) – the matplotlib axes in which to plot. diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_slice_errors.mdx b/docs/api/qiskit-addon-obp/utils-visualization-plot-slice-errors.mdx similarity index 87% rename from docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_slice_errors.mdx rename to docs/api/qiskit-addon-obp/utils-visualization-plot-slice-errors.mdx index 7c1444d9518..d43ced07c5c 100644 --- a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_slice_errors.mdx +++ b/docs/api/qiskit-addon-obp/utils-visualization-plot-slice-errors.mdx @@ -36,11 +36,11 @@ python_api_name: qiskit_addon_obp.utils.visualization.plot_slice_errors As you can see in the figure above, the number of backpropagated slices is displayed along the x-axis. You can think of this as the “time” of the backpropagation algorithm. The truncation error incurred at each backpropagation step is displayed along the y-axis. Since each observable is treated individually, they are plotted separately. - This data is related to the one visualized by [`plot_accumulated_error()`](qiskit_addon_obp.utils.visualization.plot_accumulated_error "qiskit_addon_obp.utils.visualization.plot_accumulated_error"). That method will plot the cumulative sum of the slice errors along the x-axis. + This data is related to the one visualized by [`plot_accumulated_error()`](utils-visualization-plot-accumulated-error "qiskit_addon_obp.utils.visualization.plot_accumulated_error"). That method will plot the cumulative sum of the slice errors along the x-axis. **Parameters** - * **metadata** ([*OBPMetadata*](qiskit_addon_obp.utils.metadata.OBPMetadata "qiskit_addon_obp.utils.metadata.OBPMetadata")) – the metadata to be visualized. + * **metadata** ([*OBPMetadata*](utils-metadata-obp-metadata "qiskit_addon_obp.utils.metadata.OBPMetadata")) – the metadata to be visualized. * **axes** (*Axes*) – the matplotlib axes in which to plot. diff --git a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_sum_paulis.mdx b/docs/api/qiskit-addon-obp/utils-visualization-plot-sum-paulis.mdx similarity index 88% rename from docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_sum_paulis.mdx rename to docs/api/qiskit-addon-obp/utils-visualization-plot-sum-paulis.mdx index c3cf4da6c2f..0240b35eb56 100644 --- a/docs/api/qiskit-addon-obp/qiskit_addon_obp.utils.visualization.plot_sum_paulis.mdx +++ b/docs/api/qiskit-addon-obp/utils-visualization-plot-sum-paulis.mdx @@ -38,11 +38,11 @@ python_api_name: qiskit_addon_obp.utils.visualization.plot_sum_paulis As you can see in the figure above, the number of backpropagated slices is displayed along the x-axis. You can think of this as the “time” of the backpropagation algorithm. The total number of all Pauli terms at each backpropagation step is displayed along the y-axis. If `OBPMetadata.operator_budget.max_paulis` is not None, it is displayed as a red horizontal line. - This data can give you additional insight into how many unique Pauli terms are spread across all of the backpropagated observables. See also the output of [`plot_num_paulis()`](qiskit_addon_obp.utils.visualization.plot_num_paulis "qiskit_addon_obp.utils.visualization.plot_num_paulis") for the number of Pauli terms in each observable individually. + This data can give you additional insight into how many unique Pauli terms are spread across all of the backpropagated observables. See also the output of [`plot_num_paulis()`](utils-visualization-plot-num-paulis "qiskit_addon_obp.utils.visualization.plot_num_paulis") for the number of Pauli terms in each observable individually. **Parameters** - * **metadata** ([*OBPMetadata*](qiskit_addon_obp.utils.metadata.OBPMetadata "qiskit_addon_obp.utils.metadata.OBPMetadata")) – the metadata to be visualized. + * **metadata** ([*OBPMetadata*](utils-metadata-obp-metadata "qiskit_addon_obp.utils.metadata.OBPMetadata")) – the metadata to be visualized. * **axes** (*Axes*) – the matplotlib axes in which to plot. diff --git a/docs/api/qiskit-addon-obp/utils-visualization.mdx b/docs/api/qiskit-addon-obp/utils-visualization.mdx new file mode 100644 index 00000000000..a6e89a1aabe --- /dev/null +++ b/docs/api/qiskit-addon-obp/utils-visualization.mdx @@ -0,0 +1,17 @@ +# visualization + + + + + +Various visualization utilities. + +| | | +| --------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | +| [`plot_accumulated_error`](utils-visualization-plot-accumulated-error "qiskit_addon_obp.utils.visualization.plot_accumulated_error") | Plot the accumulated error. | +| [`plot_left_over_error_budget`](utils-visualization-plot-left-over-error-budget "qiskit_addon_obp.utils.visualization.plot_left_over_error_budget") | Plot the left-over error budget. | +| [`plot_slice_errors`](utils-visualization-plot-slice-errors "qiskit_addon_obp.utils.visualization.plot_slice_errors") | Plot the slice errors. | +| [`plot_num_paulis`](utils-visualization-plot-num-paulis "qiskit_addon_obp.utils.visualization.plot_num_paulis") | Plot the number of Pauli terms. | +| [`plot_num_truncated_paulis`](utils-visualization-plot-num-truncated-paulis "qiskit_addon_obp.utils.visualization.plot_num_truncated_paulis") | Plot the number of truncated Pauli terms. | +| [`plot_sum_paulis`](utils-visualization-plot-sum-paulis "qiskit_addon_obp.utils.visualization.plot_sum_paulis") | Plot the total number of all Pauli terms. | +| [`plot_num_qwc_groups`](utils-visualization-plot-num-qwc-groups "qiskit_addon_obp.utils.visualization.plot_num_qwc_groups") | Plot the number of qubit-wise commuting Pauli groups. | diff --git a/docs/api/qiskit-addon-obp/utils.mdx b/docs/api/qiskit-addon-obp/utils.mdx new file mode 100644 index 00000000000..ad96ef5db0b --- /dev/null +++ b/docs/api/qiskit-addon-obp/utils.mdx @@ -0,0 +1,15 @@ +# utils + + + + + +Utility functionality for conducting operator backpropagation. + +| | | +| ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | +| [`metadata`](utils-metadata#module-qiskit_addon_obp.utils.metadata "qiskit_addon_obp.utils.metadata") | Container classes for holding backpropagation metadata. | +| [`operations`](utils-operations#module-qiskit_addon_obp.utils.operations "qiskit_addon_obp.utils.operations") | Utility functions for operator backpropagation. | +| [`simplify`](utils-simplify#module-qiskit_addon_obp.utils.simplify "qiskit_addon_obp.utils.simplify") | Functions for simplifying Pauli operators. | +| [`truncating`](utils-truncating#module-qiskit_addon_obp.utils.truncating "qiskit_addon_obp.utils.truncating") | Functions for truncating Pauli operators within given error budgets. | +| [`visualization`](utils-visualization#module-qiskit_addon_obp.utils.visualization "qiskit_addon_obp.utils.visualization") | Various visualization utilities. | diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight.mdx b/docs/api/qiskit-addon-sqd/configuration-recovery-post-select-by-hamming-weight.mdx similarity index 100% rename from docs/api/qiskit-addon-sqd/qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight.mdx rename to docs/api/qiskit-addon-sqd/configuration-recovery-post-select-by-hamming-weight.mdx diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.configuration_recovery.recover_configurations.mdx b/docs/api/qiskit-addon-sqd/configuration-recovery-recover-configurations.mdx similarity index 100% rename from docs/api/qiskit-addon-sqd/qiskit_addon_sqd.configuration_recovery.recover_configurations.mdx rename to docs/api/qiskit-addon-sqd/configuration-recovery-recover-configurations.mdx diff --git a/docs/api/qiskit-addon-sqd/configuration-recovery.mdx b/docs/api/qiskit-addon-sqd/configuration-recovery.mdx new file mode 100644 index 00000000000..3cda3199b18 --- /dev/null +++ b/docs/api/qiskit-addon-sqd/configuration-recovery.mdx @@ -0,0 +1,12 @@ +# Configuration Recovery + + + + + +Functions for performing self-consistent configuration recovery. + +| | | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| [`post_select_by_hamming_weight`](configuration-recovery-post-select-by-hamming-weight "qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight") | Post-select bitstrings based on the hamming weight of each half. | +| [`recover_configurations`](configuration-recovery-recover-configurations "qiskit_addon_sqd.configuration_recovery.recover_configurations") | Refine bitstrings based on average orbital occupancy and a target hamming weight. | diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.counts_to_arrays.mdx b/docs/api/qiskit-addon-sqd/counts-counts-to-arrays.mdx similarity index 100% rename from docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.counts_to_arrays.mdx rename to docs/api/qiskit-addon-sqd/counts-counts-to-arrays.mdx diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.generate_counts_bipartite_hamming.mdx b/docs/api/qiskit-addon-sqd/counts-generate-counts-bipartite-hamming.mdx similarity index 100% rename from docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.generate_counts_bipartite_hamming.mdx rename to docs/api/qiskit-addon-sqd/counts-generate-counts-bipartite-hamming.mdx diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.generate_counts_uniform.mdx b/docs/api/qiskit-addon-sqd/counts-generate-counts-uniform.mdx similarity index 100% rename from docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.generate_counts_uniform.mdx rename to docs/api/qiskit-addon-sqd/counts-generate-counts-uniform.mdx diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.normalize_counts_dict.mdx b/docs/api/qiskit-addon-sqd/counts-normalize-counts-dict.mdx similarity index 100% rename from docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.normalize_counts_dict.mdx rename to docs/api/qiskit-addon-sqd/counts-normalize-counts-dict.mdx diff --git a/docs/api/qiskit-addon-sqd/counts.mdx b/docs/api/qiskit-addon-sqd/counts.mdx new file mode 100644 index 00000000000..390d4c46298 --- /dev/null +++ b/docs/api/qiskit-addon-sqd/counts.mdx @@ -0,0 +1,14 @@ +# Counts + + + + + +Functions for transforming counts dictionaries. + +| | | +| ------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| [`counts_to_arrays`](counts-counts-to-arrays "qiskit_addon_sqd.counts.counts_to_arrays") | Convert a counts dictionary into a bitstring matrix and a probability array. | +| [`generate_counts_uniform`](counts-generate-counts-uniform "qiskit_addon_sqd.counts.generate_counts_uniform") | Generate a bitstring counts dictionary of samples drawn from the uniform distribution. | +| [`generate_counts_bipartite_hamming`](counts-generate-counts-bipartite-hamming "qiskit_addon_sqd.counts.generate_counts_bipartite_hamming") | Generate a bitstring counts dictionary with specified bipartite hamming weight. | +| [`normalize_counts_dict`](counts-normalize-counts-dict "qiskit_addon_sqd.counts.normalize_counts_dict") | Convert a counts dictionary into a probability dictionary. | diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs.mdx b/docs/api/qiskit-addon-sqd/fermion-bitstring-matrix-to-ci-strs.mdx similarity index 100% rename from docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs.mdx rename to docs/api/qiskit-addon-sqd/fermion-bitstring-matrix-to-ci-strs.mdx diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses.mdx b/docs/api/qiskit-addon-sqd/fermion-bitstring-matrix-to-sorted-addresses.mdx similarity index 100% rename from docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses.mdx rename to docs/api/qiskit-addon-sqd/fermion-bitstring-matrix-to-sorted-addresses.mdx diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.enlarge_batch_from_transitions.mdx b/docs/api/qiskit-addon-sqd/fermion-enlarge-batch-from-transitions.mdx similarity index 100% rename from docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.enlarge_batch_from_transitions.mdx rename to docs/api/qiskit-addon-sqd/fermion-enlarge-batch-from-transitions.mdx diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.flip_orbital_occupancies.mdx b/docs/api/qiskit-addon-sqd/fermion-flip-orbital-occupancies.mdx similarity index 100% rename from docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.flip_orbital_occupancies.mdx rename to docs/api/qiskit-addon-sqd/fermion-flip-orbital-occupancies.mdx diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.optimize_orbitals.mdx b/docs/api/qiskit-addon-sqd/fermion-optimize-orbitals.mdx similarity index 100% rename from docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.optimize_orbitals.mdx rename to docs/api/qiskit-addon-sqd/fermion-optimize-orbitals.mdx diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.rotate_integrals.mdx b/docs/api/qiskit-addon-sqd/fermion-rotate-integrals.mdx similarity index 100% rename from docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.rotate_integrals.mdx rename to docs/api/qiskit-addon-sqd/fermion-rotate-integrals.mdx diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.solve_fermion.mdx b/docs/api/qiskit-addon-sqd/fermion-solve-fermion.mdx similarity index 100% rename from docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.solve_fermion.mdx rename to docs/api/qiskit-addon-sqd/fermion-solve-fermion.mdx diff --git a/docs/api/qiskit-addon-sqd/fermion.mdx b/docs/api/qiskit-addon-sqd/fermion.mdx new file mode 100644 index 00000000000..c20e2b230b1 --- /dev/null +++ b/docs/api/qiskit-addon-sqd/fermion.mdx @@ -0,0 +1,17 @@ +# Fermion + + + + + +Functions for the study of fermionic systems. + +| | | +| ------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------- | +| [`bitstring_matrix_to_ci_strs`](fermion-bitstring-matrix-to-ci-strs "qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs") | Convert bitstrings (rows) in a `bitstring_matrix` into integer representations of determinants. | +| [`enlarge_batch_from_transitions`](fermion-enlarge-batch-from-transitions "qiskit_addon_sqd.fermion.enlarge_batch_from_transitions") | Apply the set of transition operators to the configurations represented in `bitstring_matrix`. | +| [`flip_orbital_occupancies`](fermion-flip-orbital-occupancies "qiskit_addon_sqd.fermion.flip_orbital_occupancies") | Flip an orbital occupancy array to match the indexing of a bitstring. | +| [`solve_fermion`](fermion-solve-fermion "qiskit_addon_sqd.fermion.solve_fermion") | Approximate the ground state given molecular integrals and a set of electronic configurations. | +| [`optimize_orbitals`](fermion-optimize-orbitals "qiskit_addon_sqd.fermion.optimize_orbitals") | Optimize orbitals to produce a minimal ground state. | +| [`rotate_integrals`](fermion-rotate-integrals "qiskit_addon_sqd.fermion.rotate_integrals") | Perform a similarity transform on the integrals. | +| [`bitstring_matrix_to_sorted_addresses`](fermion-bitstring-matrix-to-sorted-addresses "qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses") | Convert a bitstring matrix into a sorted array of unique, unsigned integers. | diff --git a/docs/api/qiskit-addon-sqd/qiskit-addon-sqd.mdx b/docs/api/qiskit-addon-sqd/qiskit-addon-sqd.mdx new file mode 100644 index 00000000000..0a1debfb874 --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qiskit-addon-sqd.mdx @@ -0,0 +1,20 @@ +# Sample-based Quantum Diagonalization + + + + + +Primary SQD functionality. + +| | +| - | + +## Modules + +| | | +| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | +| [`configuration_recovery`](configuration-recovery#module-qiskit_addon_sqd.configuration_recovery "qiskit_addon_sqd.configuration_recovery") | Functions for performing self-consistent configuration recovery. | +| [`subsampling`](subsampling#module-qiskit_addon_sqd.subsampling "qiskit_addon_sqd.subsampling") | Functions for creating batches of samples from a bitstring matrix. | +| [`counts`](counts#module-qiskit_addon_sqd.counts "qiskit_addon_sqd.counts") | Functions for transforming counts dictionaries. | +| [`fermion`](fermion#module-qiskit_addon_sqd.fermion "qiskit_addon_sqd.fermion") | Functions for the study of fermionic systems. | +| [`qubit`](qubit#module-qiskit_addon_sqd.qubit "qiskit_addon_sqd.qubit") | Functions for handling quantum samples. | diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.configuration_recovery.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.configuration_recovery.mdx deleted file mode 100644 index 32acfb1c92a..00000000000 --- a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.configuration_recovery.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Configuration Recovery - - - - - -Functions for performing self-consistent configuration recovery. - -| | | -| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | -| [`post_select_by_hamming_weight`](qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight "qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight") | Post-select bitstrings based on the hamming weight of each half. | -| [`recover_configurations`](qiskit_addon_sqd.configuration_recovery.recover_configurations "qiskit_addon_sqd.configuration_recovery.recover_configurations") | Refine bitstrings based on average orbital occupancy and a target hamming weight. | diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.mdx deleted file mode 100644 index 2f3a9b0f3e7..00000000000 --- a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.counts.mdx +++ /dev/null @@ -1,14 +0,0 @@ -# Counts - - - - - -Functions for transforming counts dictionaries. - -| | | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- | -| [`counts_to_arrays`](qiskit_addon_sqd.counts.counts_to_arrays "qiskit_addon_sqd.counts.counts_to_arrays") | Convert a counts dictionary into a bitstring matrix and a probability array. | -| [`generate_counts_uniform`](qiskit_addon_sqd.counts.generate_counts_uniform "qiskit_addon_sqd.counts.generate_counts_uniform") | Generate a bitstring counts dictionary of samples drawn from the uniform distribution. | -| [`generate_counts_bipartite_hamming`](qiskit_addon_sqd.counts.generate_counts_bipartite_hamming "qiskit_addon_sqd.counts.generate_counts_bipartite_hamming") | Generate a bitstring counts dictionary with specified bipartite hamming weight. | -| [`normalize_counts_dict`](qiskit_addon_sqd.counts.normalize_counts_dict "qiskit_addon_sqd.counts.normalize_counts_dict") | Convert a counts dictionary into a probability dictionary. | diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.mdx deleted file mode 100644 index 2454587b335..00000000000 --- a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.fermion.mdx +++ /dev/null @@ -1,17 +0,0 @@ -# Fermion - - - - - -Functions for the study of fermionic systems. - -| | | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | -| [`bitstring_matrix_to_ci_strs`](qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs "qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs") | Convert bitstrings (rows) in a `bitstring_matrix` into integer representations of determinants. | -| [`enlarge_batch_from_transitions`](qiskit_addon_sqd.fermion.enlarge_batch_from_transitions "qiskit_addon_sqd.fermion.enlarge_batch_from_transitions") | Apply the set of transition operators to the configurations represented in `bitstring_matrix`. | -| [`flip_orbital_occupancies`](qiskit_addon_sqd.fermion.flip_orbital_occupancies "qiskit_addon_sqd.fermion.flip_orbital_occupancies") | Flip an orbital occupancy array to match the indexing of a bitstring. | -| [`solve_fermion`](qiskit_addon_sqd.fermion.solve_fermion "qiskit_addon_sqd.fermion.solve_fermion") | Approximate the ground state given molecular integrals and a set of electronic configurations. | -| [`optimize_orbitals`](qiskit_addon_sqd.fermion.optimize_orbitals "qiskit_addon_sqd.fermion.optimize_orbitals") | Optimize orbitals to produce a minimal ground state. | -| [`rotate_integrals`](qiskit_addon_sqd.fermion.rotate_integrals "qiskit_addon_sqd.fermion.rotate_integrals") | Perform a similarity transform on the integrals. | -| [`bitstring_matrix_to_sorted_addresses`](qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses "qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses") | Convert a bitstring matrix into a sorted array of unique, unsigned integers. | diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.mdx deleted file mode 100644 index 9e4b97bb6b8..00000000000 --- a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.mdx +++ /dev/null @@ -1,20 +0,0 @@ -# Sample-based Quantum Diagonalization - - - - - -Primary SQD functionality. - -| | -| - | - -## Modules - -| | | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------ | -| [`configuration_recovery`](qiskit_addon_sqd.configuration_recovery#module-qiskit_addon_sqd.configuration_recovery "qiskit_addon_sqd.configuration_recovery") | Functions for performing self-consistent configuration recovery. | -| [`subsampling`](qiskit_addon_sqd.subsampling#module-qiskit_addon_sqd.subsampling "qiskit_addon_sqd.subsampling") | Functions for creating batches of samples from a bitstring matrix. | -| [`counts`](qiskit_addon_sqd.counts#module-qiskit_addon_sqd.counts "qiskit_addon_sqd.counts") | Functions for transforming counts dictionaries. | -| [`fermion`](qiskit_addon_sqd.fermion#module-qiskit_addon_sqd.fermion "qiskit_addon_sqd.fermion") | Functions for the study of fermionic systems. | -| [`qubit`](qiskit_addon_sqd.qubit#module-qiskit_addon_sqd.qubit "qiskit_addon_sqd.qubit") | Functions for handling quantum samples. | diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.mdx deleted file mode 100644 index 636ece71c80..00000000000 --- a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.mdx +++ /dev/null @@ -1,15 +0,0 @@ -# Qubit - - - - - -Functions for handling quantum samples. - -| | | -| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | -| [`solve_qubit`](qiskit_addon_sqd.qubit.solve_qubit "qiskit_addon_sqd.qubit.solve_qubit") | Find the energies and eigenstates of a Hamiltonian projected into a subspace. | -| [`project_operator_to_subspace`](qiskit_addon_sqd.qubit.project_operator_to_subspace "qiskit_addon_sqd.qubit.project_operator_to_subspace") | Project a Pauli operator onto a Hilbert subspace defined by the computational basis states (rows) in `bitstring_matrix`. | -| [`sort_and_remove_duplicates`](qiskit_addon_sqd.qubit.sort_and_remove_duplicates "qiskit_addon_sqd.qubit.sort_and_remove_duplicates") | Sort a bitstring matrix and remove duplicate entries. | -| [`matrix_elements_from_pauli`](qiskit_addon_sqd.qubit.matrix_elements_from_pauli "qiskit_addon_sqd.qubit.matrix_elements_from_pauli") | Find the sparse matrix elements of a Pauli operator in the subspace defined by the bitstrings. | -| [`sort_and_remove_duplicates`](qiskit_addon_sqd.qubit.sort_and_remove_duplicates "qiskit_addon_sqd.qubit.sort_and_remove_duplicates") | Sort a bitstring matrix and remove duplicate entries. | diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.subsampling.mdx b/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.subsampling.mdx deleted file mode 100644 index 8bb6c732dde..00000000000 --- a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.subsampling.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Subsampling - - - - - -Functions for creating batches of samples from a bitstring matrix. - -| | | -| ------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | -| [`subsample`](qiskit_addon_sqd.subsampling.subsample "qiskit_addon_sqd.subsampling.subsample") | Subsample batches of bit arrays from an input `bitstring_matrix`. | -| [`postselect_and_subsample`](qiskit_addon_sqd.subsampling.postselect_and_subsample "qiskit_addon_sqd.subsampling.postselect_and_subsample") | Subsample batches of bit arrays with correct hamming weight from an input `bitstring_matrix`. | diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.matrix_elements_from_pauli.mdx b/docs/api/qiskit-addon-sqd/qubit-matrix-elements-from-pauli.mdx similarity index 93% rename from docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.matrix_elements_from_pauli.mdx rename to docs/api/qiskit-addon-sqd/qubit-matrix-elements-from-pauli.mdx index 6a1a5f59553..e8fa7a09b4f 100644 --- a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.matrix_elements_from_pauli.mdx +++ b/docs/api/qiskit-addon-sqd/qubit-matrix-elements-from-pauli.mdx @@ -18,7 +18,7 @@ python_api_name: qiskit_addon_sqd.qubit.matrix_elements_from_pauli `A[rows[k], cols[k]] = amplutides[k]`. - The bitstrings in the `bitstring_matrix` must be unique and sorted in ascending order according to their unsigned integer representation. Otherwise the projection will return wrong results. This function does not explicitly check for uniqueness and order because this can be rather time consuming. See [`qiskit_addon_sqd.qubit.sort_and_remove_duplicates()`](qiskit_addon_sqd.qubit.sort_and_remove_duplicates "qiskit_addon_sqd.qubit.sort_and_remove_duplicates") for a simple way to ensure your bitstring matrix is well-formatted. + The bitstrings in the `bitstring_matrix` must be unique and sorted in ascending order according to their unsigned integer representation. Otherwise the projection will return wrong results. This function does not explicitly check for uniqueness and order because this can be rather time consuming. See [`qiskit_addon_sqd.qubit.sort_and_remove_duplicates()`](qubit-sort-and-remove-duplicates "qiskit_addon_sqd.qubit.sort_and_remove_duplicates") for a simple way to ensure your bitstring matrix is well-formatted. diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.project_operator_to_subspace.mdx b/docs/api/qiskit-addon-sqd/qubit-project-operator-to-subspace.mdx similarity index 93% rename from docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.project_operator_to_subspace.mdx rename to docs/api/qiskit-addon-sqd/qubit-project-operator-to-subspace.mdx index f02dfba95c0..21a5fdd3002 100644 --- a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.project_operator_to_subspace.mdx +++ b/docs/api/qiskit-addon-sqd/qubit-project-operator-to-subspace.mdx @@ -16,7 +16,7 @@ python_api_name: qiskit_addon_sqd.qubit.project_operator_to_subspace The output sparse matrix, `A`, represents an `NxN` matrix s.t. `N` is the number of rows in `bitstring_matrix`. The rows of `A` represent the input configurations, and the columns represent the connected component associated with the configuration in the corresponding row. The non-zero elements of the matrix represent the complex amplitudes associated with the connected components. - The bitstrings in the `bitstring_matrix` must be unique and sorted in ascending order according to their unsigned integer representation. Otherwise the projection will return wrong results. This function does not explicitly check for uniqueness and order because this can be rather time consuming. See [`qiskit_addon_sqd.qubit.sort_and_remove_duplicates()`](qiskit_addon_sqd.qubit.sort_and_remove_duplicates "qiskit_addon_sqd.qubit.sort_and_remove_duplicates") for a simple way to ensure your bitstring matrix is well-formatted. + The bitstrings in the `bitstring_matrix` must be unique and sorted in ascending order according to their unsigned integer representation. Otherwise the projection will return wrong results. This function does not explicitly check for uniqueness and order because this can be rather time consuming. See [`qiskit_addon_sqd.qubit.sort_and_remove_duplicates()`](qubit-sort-and-remove-duplicates "qiskit_addon_sqd.qubit.sort_and_remove_duplicates") for a simple way to ensure your bitstring matrix is well-formatted. diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.solve_qubit.mdx b/docs/api/qiskit-addon-sqd/qubit-solve-qubit.mdx similarity index 100% rename from docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.solve_qubit.mdx rename to docs/api/qiskit-addon-sqd/qubit-solve-qubit.mdx diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.sort_and_remove_duplicates.mdx b/docs/api/qiskit-addon-sqd/qubit-sort-and-remove-duplicates.mdx similarity index 100% rename from docs/api/qiskit-addon-sqd/qiskit_addon_sqd.qubit.sort_and_remove_duplicates.mdx rename to docs/api/qiskit-addon-sqd/qubit-sort-and-remove-duplicates.mdx diff --git a/docs/api/qiskit-addon-sqd/qubit.mdx b/docs/api/qiskit-addon-sqd/qubit.mdx new file mode 100644 index 00000000000..2f23f637950 --- /dev/null +++ b/docs/api/qiskit-addon-sqd/qubit.mdx @@ -0,0 +1,15 @@ +# Qubit + + + + + +Functions for handling quantum samples. + +| | | +| -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | +| [`solve_qubit`](qubit-solve-qubit "qiskit_addon_sqd.qubit.solve_qubit") | Find the energies and eigenstates of a Hamiltonian projected into a subspace. | +| [`project_operator_to_subspace`](qubit-project-operator-to-subspace "qiskit_addon_sqd.qubit.project_operator_to_subspace") | Project a Pauli operator onto a Hilbert subspace defined by the computational basis states (rows) in `bitstring_matrix`. | +| [`sort_and_remove_duplicates`](qubit-sort-and-remove-duplicates "qiskit_addon_sqd.qubit.sort_and_remove_duplicates") | Sort a bitstring matrix and remove duplicate entries. | +| [`matrix_elements_from_pauli`](qubit-matrix-elements-from-pauli "qiskit_addon_sqd.qubit.matrix_elements_from_pauli") | Find the sparse matrix elements of a Pauli operator in the subspace defined by the bitstrings. | +| [`sort_and_remove_duplicates`](qubit-sort-and-remove-duplicates "qiskit_addon_sqd.qubit.sort_and_remove_duplicates") | Sort a bitstring matrix and remove duplicate entries. | diff --git a/docs/api/qiskit-addon-sqd/release-notes.mdx b/docs/api/qiskit-addon-sqd/release-notes.mdx index 987f23b9faa..f720a88c759 100644 --- a/docs/api/qiskit-addon-sqd/release-notes.mdx +++ b/docs/api/qiskit-addon-sqd/release-notes.mdx @@ -20,9 +20,9 @@ in_page_toc_max_heading_level: 2 ### Bug Fixes -* Fixed a bug in [`qiskit_addon_sqd.fermion.solve_fermion()`](qiskit_addon_sqd.fermion.solve_fermion "qiskit_addon_sqd.fermion.solve_fermion") and [`qiskit_addon_sqd.fermion.optimize_orbitals()`](qiskit_addon_sqd.fermion.optimize_orbitals "qiskit_addon_sqd.fermion.optimize_orbitals") which causes the determinants for spin-up and spin-down to be incorrectly flipped before solving. +* Fixed a bug in [`qiskit_addon_sqd.fermion.solve_fermion()`](fermion-solve-fermion "qiskit_addon_sqd.fermion.solve_fermion") and [`qiskit_addon_sqd.fermion.optimize_orbitals()`](fermion-optimize-orbitals "qiskit_addon_sqd.fermion.optimize_orbitals") which causes the determinants for spin-up and spin-down to be incorrectly flipped before solving. -* Fixed a bug in open-shell workflows which would cause [`qiskit_addon_sqd.fermion.optimize_orbitals()`](qiskit_addon_sqd.fermion.optimize_orbitals "qiskit_addon_sqd.fermion.optimize_orbitals") to crash with a `malloc` error. +* Fixed a bug in open-shell workflows which would cause [`qiskit_addon_sqd.fermion.optimize_orbitals()`](fermion-optimize-orbitals "qiskit_addon_sqd.fermion.optimize_orbitals") to crash with a `malloc` error. @@ -34,7 +34,7 @@ in_page_toc_max_heading_level: 2 ### Upgrade Notes -* Specifying `addresses` as a keyword argument to [`qiskit_addon_sqd.fermion.solve_fermion()`](qiskit_addon_sqd.fermion.solve_fermion "qiskit_addon_sqd.fermion.solve_fermion") and [`qiskit_addon_sqd.fermion.optimize_orbitals()`](qiskit_addon_sqd.fermion.optimize_orbitals "qiskit_addon_sqd.fermion.optimize_orbitals") is no longer supported. Users may still pass `addresses` as the first positional argument; however, this usage is deprecated. Users are encouraged to pass the bitstring matrix defining the subspace as the first positional arguments to these functions, as shown below. +* Specifying `addresses` as a keyword argument to [`qiskit_addon_sqd.fermion.solve_fermion()`](fermion-solve-fermion "qiskit_addon_sqd.fermion.solve_fermion") and [`qiskit_addon_sqd.fermion.optimize_orbitals()`](fermion-optimize-orbitals "qiskit_addon_sqd.fermion.optimize_orbitals") is no longer supported. Users may still pass `addresses` as the first positional argument; however, this usage is deprecated. Users are encouraged to pass the bitstring matrix defining the subspace as the first positional arguments to these functions, as shown below. To upgrade, change this code @@ -83,7 +83,7 @@ in_page_toc_max_heading_level: 2 ### Deprecation Notes -* The [`qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses()`](qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses "qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses") function has been deprecated in favor of [`qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs()`](qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs "qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs"). These two functions behave the same with one key exception – [`qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses()`](qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses "qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses") returns the configurations as `tuple(spin_dn, spin_up)`; whereas, [`qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs()`](qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs "qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs") returns the configurations as `tuple(spin_up, spin_dn)`. +* The [`qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses()`](fermion-bitstring-matrix-to-sorted-addresses "qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses") function has been deprecated in favor of [`qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs()`](fermion-bitstring-matrix-to-ci-strs "qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs"). These two functions behave the same with one key exception – [`qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses()`](fermion-bitstring-matrix-to-sorted-addresses "qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses") returns the configurations as `tuple(spin_dn, spin_up)`; whereas, [`qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs()`](fermion-bitstring-matrix-to-ci-strs "qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs") returns the configurations as `tuple(spin_up, spin_dn)`. To migrate @@ -104,7 +104,7 @@ in_page_toc_max_heading_level: 2 ci_strs_up, ci_strs_dn = bitstring_matrix_to_ci_strs(bs_matrix, open_shell=True) ``` -* The `addresses` argument to [`qiskit_addon_sqd.fermion.solve_fermion()`](qiskit_addon_sqd.fermion.solve_fermion "qiskit_addon_sqd.fermion.solve_fermion") and [`qiskit_addon_sqd.fermion.optimize_orbitals()`](qiskit_addon_sqd.fermion.optimize_orbitals "qiskit_addon_sqd.fermion.optimize_orbitals") has been deprecated in favor of `bitstring_matrix`. Users are no longer required to convert their configurations to integers; instead, they should now pass in the bitstring matrix specifying the subspace onto which to project and diagonalize the Hamiltonian. The conversion to the integer representation of determinants will be done internally. +* The `addresses` argument to [`qiskit_addon_sqd.fermion.solve_fermion()`](fermion-solve-fermion "qiskit_addon_sqd.fermion.solve_fermion") and [`qiskit_addon_sqd.fermion.optimize_orbitals()`](fermion-optimize-orbitals "qiskit_addon_sqd.fermion.optimize_orbitals") has been deprecated in favor of `bitstring_matrix`. Users are no longer required to convert their configurations to integers; instead, they should now pass in the bitstring matrix specifying the subspace onto which to project and diagonalize the Hamiltonian. The conversion to the integer representation of determinants will be done internally. @@ -112,7 +112,7 @@ in_page_toc_max_heading_level: 2 ### Bug Fixes -* Fixed a bug in [`qiskit_addon_sqd.configuration_recovery.recover_configurations()`](qiskit_addon_sqd.configuration_recovery.recover_configurations "qiskit_addon_sqd.configuration_recovery.recover_configurations") which would sometimes cause a divide-by-zero error when calculating individual bit-flip probability. +* Fixed a bug in [`qiskit_addon_sqd.configuration_recovery.recover_configurations()`](configuration-recovery-recover-configurations "qiskit_addon_sqd.configuration_recovery.recover_configurations") which would sometimes cause a divide-by-zero error when calculating individual bit-flip probability. * Fixes a bug that caused configuration recovery to fail on bitstrings of length greater than 72. @@ -128,7 +128,7 @@ in_page_toc_max_heading_level: 2 ### Upgrade Notes -* The [`qiskit_addon_sqd.counts.generate_counts_bipartite_hamming()`](qiskit_addon_sqd.counts.generate_counts_bipartite_hamming "qiskit_addon_sqd.counts.generate_counts_bipartite_hamming"), [`qiskit_addon_sqd.subsampling.postselect_and_subsample()`](qiskit_addon_sqd.subsampling.postselect_and_subsample "qiskit_addon_sqd.subsampling.postselect_and_subsample"), and [`qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight()`](qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight "qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight") now require the `hamming_right` and `hamming_left` arguments to be specified as keyword arguments. Additionally, the `samples_per_batch` and `n_batches` arguments to [`qiskit_addon_sqd.subsampling.postselect_and_subsample()`](qiskit_addon_sqd.subsampling.postselect_and_subsample "qiskit_addon_sqd.subsampling.postselect_and_subsample") should now be passed as keyword arguments. +* The [`qiskit_addon_sqd.counts.generate_counts_bipartite_hamming()`](counts-generate-counts-bipartite-hamming "qiskit_addon_sqd.counts.generate_counts_bipartite_hamming"), [`qiskit_addon_sqd.subsampling.postselect_and_subsample()`](subsampling-postselect-and-subsample "qiskit_addon_sqd.subsampling.postselect_and_subsample"), and [`qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight()`](configuration-recovery-post-select-by-hamming-weight "qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight") now require the `hamming_right` and `hamming_left` arguments to be specified as keyword arguments. Additionally, the `samples_per_batch` and `n_batches` arguments to [`qiskit_addon_sqd.subsampling.postselect_and_subsample()`](subsampling-postselect-and-subsample "qiskit_addon_sqd.subsampling.postselect_and_subsample") should now be passed as keyword arguments. To upgrade @@ -198,7 +198,7 @@ This is a minor release which introduces a couple of small, but important, break ### Upgrade Notes -* The [`qiskit_addon_sqd.counts.generate_counts_bipartite_hamming()`](qiskit_addon_sqd.counts.generate_counts_bipartite_hamming "qiskit_addon_sqd.counts.generate_counts_bipartite_hamming"), [`qiskit_addon_sqd.subsampling.postselect_and_subsample()`](qiskit_addon_sqd.subsampling.postselect_and_subsample "qiskit_addon_sqd.subsampling.postselect_and_subsample"), and [`qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight()`](qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight "qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight") now take the `hamming_right` positional argument before the `hamming_left` argument to better match the rest of the workflow. +* The [`qiskit_addon_sqd.counts.generate_counts_bipartite_hamming()`](counts-generate-counts-bipartite-hamming "qiskit_addon_sqd.counts.generate_counts_bipartite_hamming"), [`qiskit_addon_sqd.subsampling.postselect_and_subsample()`](subsampling-postselect-and-subsample "qiskit_addon_sqd.subsampling.postselect_and_subsample"), and [`qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight()`](configuration-recovery-post-select-by-hamming-weight "qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight") now take the `hamming_right` positional argument before the `hamming_left` argument to better match the rest of the workflow. To upgrade diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.subsampling.postselect_and_subsample.mdx b/docs/api/qiskit-addon-sqd/subsampling-postselect-and-subsample.mdx similarity index 100% rename from docs/api/qiskit-addon-sqd/qiskit_addon_sqd.subsampling.postselect_and_subsample.mdx rename to docs/api/qiskit-addon-sqd/subsampling-postselect-and-subsample.mdx diff --git a/docs/api/qiskit-addon-sqd/qiskit_addon_sqd.subsampling.subsample.mdx b/docs/api/qiskit-addon-sqd/subsampling-subsample.mdx similarity index 100% rename from docs/api/qiskit-addon-sqd/qiskit_addon_sqd.subsampling.subsample.mdx rename to docs/api/qiskit-addon-sqd/subsampling-subsample.mdx diff --git a/docs/api/qiskit-addon-sqd/subsampling.mdx b/docs/api/qiskit-addon-sqd/subsampling.mdx new file mode 100644 index 00000000000..aa5208856ca --- /dev/null +++ b/docs/api/qiskit-addon-sqd/subsampling.mdx @@ -0,0 +1,12 @@ +# Subsampling + + + + + +Functions for creating batches of samples from a bitstring matrix. + +| | | +| -------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| [`subsample`](subsampling-subsample "qiskit_addon_sqd.subsampling.subsample") | Subsample batches of bit arrays from an input `bitstring_matrix`. | +| [`postselect_and_subsample`](subsampling-postselect-and-subsample "qiskit_addon_sqd.subsampling.postselect_and_subsample") | Subsample batches of bit arrays with correct hamming weight from an input `bitstring_matrix`. | diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.coloring.auto_color_edges.mdx b/docs/api/qiskit-addon-utils/coloring-auto-color-edges.mdx similarity index 100% rename from docs/api/qiskit-addon-utils/qiskit_addon_utils.coloring.auto_color_edges.mdx rename to docs/api/qiskit-addon-utils/coloring-auto-color-edges.mdx diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.coloring.is_valid_edge_coloring.mdx b/docs/api/qiskit-addon-utils/coloring-is-valid-edge-coloring.mdx similarity index 100% rename from docs/api/qiskit-addon-utils/qiskit_addon_utils.coloring.is_valid_edge_coloring.mdx rename to docs/api/qiskit-addon-utils/coloring-is-valid-edge-coloring.mdx diff --git a/docs/api/qiskit-addon-utils/coloring.mdx b/docs/api/qiskit-addon-utils/coloring.mdx new file mode 100644 index 00000000000..0b7e2668157 --- /dev/null +++ b/docs/api/qiskit-addon-utils/coloring.mdx @@ -0,0 +1,12 @@ +# coloring + + + + + +Utility methods for coloring. + +| | | +| ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | +| [`auto_color_edges`](coloring-auto-color-edges "qiskit_addon_utils.coloring.auto_color_edges") | Color the input edges of an undirected graph such that no two incident edges share a color. | +| [`is_valid_edge_coloring`](coloring-is-valid-edge-coloring "qiskit_addon_utils.coloring.is_valid_edge_coloring") | Check whether an edge coloring scheme is valid. | diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.generate_time_evolution_circuit.mdx b/docs/api/qiskit-addon-utils/problem-generators-generate-time-evolution-circuit.mdx similarity index 100% rename from docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.generate_time_evolution_circuit.mdx rename to docs/api/qiskit-addon-utils/problem-generators-generate-time-evolution-circuit.mdx diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.generate_xyz_hamiltonian.mdx b/docs/api/qiskit-addon-utils/problem-generators-generate-xyz-hamiltonian.mdx similarity index 92% rename from docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.generate_xyz_hamiltonian.mdx rename to docs/api/qiskit-addon-utils/problem-generators-generate-xyz-hamiltonian.mdx index 2fac02b7675..794bd9a22d6 100644 --- a/docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.generate_xyz_hamiltonian.mdx +++ b/docs/api/qiskit-addon-utils/problem-generators-generate-xyz-hamiltonian.mdx @@ -56,7 +56,7 @@ $$ * **coupling** ([*CouplingMap*](/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v1.2)") *|*[*PyGraph*](https://www.rustworkx.org/apiref/rustworkx.PyGraph.html#rustworkx.PyGraph "(in rustworkx v0.15)") *|*[*PyDiGraph*](https://www.rustworkx.org/apiref/rustworkx.PyDiGraph.html#rustworkx.PyDiGraph "(in rustworkx v0.15)")) – The qubit subgraph on which to map the Hamiltonian. Directionality of graph edges will be ignored, and parallel edges will be treated as a single edge during generation of the operator. * **coupling\_constants** ([*Sequence*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")*\[*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")*]*) – The real-valued coupling constants, $J_i$, in each Cartesian axis. * **ext\_magnetic\_field** ([*Sequence*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence "(in Python v3.13)")*\[*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")*]*) – The coefficients, $h_i$, representing a magnetic field along each Cartesian axis. - * **pauli\_order\_strategy** ([*PauliOrderStrategy*](qiskit_addon_utils.problem_generators.PauliOrderStrategy "qiskit_addon_utils.problem_generators.generate_xyz_hamiltonian.PauliOrderStrategy")) – Indicates the iteration strategy in which the Pauli terms will be generated. See [`PauliOrderStrategy`](qiskit_addon_utils.problem_generators.PauliOrderStrategy "qiskit_addon_utils.problem_generators.PauliOrderStrategy") for more details. + * **pauli\_order\_strategy** ([*PauliOrderStrategy*](problem-generators-pauli-order-strategy "qiskit_addon_utils.problem_generators.generate_xyz_hamiltonian.PauliOrderStrategy")) – Indicates the iteration strategy in which the Pauli terms will be generated. See [`PauliOrderStrategy`](problem-generators-pauli-order-strategy "qiskit_addon_utils.problem_generators.PauliOrderStrategy") for more details. * **coloring** ([*dict*](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.13)")*\[*[*tuple*](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")*\[*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*,* [*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*],* [*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*] | None*) – An optional dictionary encoding the graph coloring that is used to sort the Hamiltonian terms. This dictionary maps edge labels (in the form of integer pairs) to color values (simple integers). Hamiltonian interaction terms will be added by increasing color value. Within each color, edges are sorted which does not change anything physically but results in easier to read results. **Returns** diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.PauliOrderStrategy.mdx b/docs/api/qiskit-addon-utils/problem-generators-pauli-order-strategy.mdx similarity index 100% rename from docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.PauliOrderStrategy.mdx rename to docs/api/qiskit-addon-utils/problem-generators-pauli-order-strategy.mdx diff --git a/docs/api/qiskit-addon-utils/problem-generators.mdx b/docs/api/qiskit-addon-utils/problem-generators.mdx new file mode 100644 index 00000000000..3e4a57cf1b7 --- /dev/null +++ b/docs/api/qiskit-addon-utils/problem-generators.mdx @@ -0,0 +1,15 @@ + + +# problem\_generators + + + + + +Utility methods for problem generation. + +| | | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | +| [`generate_xyz_hamiltonian`](problem-generators-generate-xyz-hamiltonian "qiskit_addon_utils.problem_generators.generate_xyz_hamiltonian") | Generate a connectivity-aware qubit operator representing a quantum XYZ-type model. | +| [`PauliOrderStrategy`](problem-generators-pauli-order-strategy "qiskit_addon_utils.problem_generators.PauliOrderStrategy") | Enumeration of different Pauli-orderings. | +| [`generate_time_evolution_circuit`](problem-generators-generate-time-evolution-circuit "qiskit_addon_utils.problem_generators.generate_time_evolution_circuit") | Model the time evolution of an operator. | diff --git a/docs/api/qiskit-addon-utils/qiskit-addon-utils.mdx b/docs/api/qiskit-addon-utils/qiskit-addon-utils.mdx new file mode 100644 index 00000000000..5900cf3e92f --- /dev/null +++ b/docs/api/qiskit-addon-utils/qiskit-addon-utils.mdx @@ -0,0 +1,17 @@ +# Qiskit addon utilities + + + + + +Utilities for Qiskit addons. + +This package contains functionality which is meant to supplement workflows involving one or more Qiskit addons. For example, this package contains functions for creating Hamiltonians, generating Trotter time evolution circuits, and slicing and combining quantum circuits in time-wise partitions. + +## Submodules + +| | | +| ------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------- | +| [`coloring`](coloring#module-qiskit_addon_utils.coloring "qiskit_addon_utils.coloring") | Utility methods for coloring. | +| [`problem_generators`](problem-generators#module-qiskit_addon_utils.problem_generators "qiskit_addon_utils.problem_generators") | Utility methods for problem generation. | +| [`slicing`](slicing#module-qiskit_addon_utils.slicing "qiskit_addon_utils.slicing") | Utility methods for circuit slicing. | diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.coloring.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.coloring.mdx deleted file mode 100644 index 9608fa59695..00000000000 --- a/docs/api/qiskit-addon-utils/qiskit_addon_utils.coloring.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# coloring - - - - - -Utility methods for coloring. - -| | | -| ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | -| [`auto_color_edges`](qiskit_addon_utils.coloring.auto_color_edges "qiskit_addon_utils.coloring.auto_color_edges") | Color the input edges of an undirected graph such that no two incident edges share a color. | -| [`is_valid_edge_coloring`](qiskit_addon_utils.coloring.is_valid_edge_coloring "qiskit_addon_utils.coloring.is_valid_edge_coloring") | Check whether an edge coloring scheme is valid. | diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.mdx deleted file mode 100644 index 5fcb3215c25..00000000000 --- a/docs/api/qiskit-addon-utils/qiskit_addon_utils.mdx +++ /dev/null @@ -1,17 +0,0 @@ -# Qiskit addon utilities - - - - - -Utilities for Qiskit addons. - -This package contains functionality which is meant to supplement workflows involving one or more Qiskit addons. For example, this package contains functions for creating Hamiltonians, generating Trotter time evolution circuits, and slicing and combining quantum circuits in time-wise partitions. - -## Submodules - -| | | -| -------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------- | -| [`coloring`](qiskit_addon_utils.coloring#module-qiskit_addon_utils.coloring "qiskit_addon_utils.coloring") | Utility methods for coloring. | -| [`problem_generators`](qiskit_addon_utils.problem_generators#module-qiskit_addon_utils.problem_generators "qiskit_addon_utils.problem_generators") | Utility methods for problem generation. | -| [`slicing`](qiskit_addon_utils.slicing#module-qiskit_addon_utils.slicing "qiskit_addon_utils.slicing") | Utility methods for circuit slicing. | diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.mdx deleted file mode 100644 index d12a01d523a..00000000000 --- a/docs/api/qiskit-addon-utils/qiskit_addon_utils.problem_generators.mdx +++ /dev/null @@ -1,15 +0,0 @@ - - -# problem\_generators - - - - - -Utility methods for problem generation. - -| | | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | -| [`generate_xyz_hamiltonian`](qiskit_addon_utils.problem_generators.generate_xyz_hamiltonian "qiskit_addon_utils.problem_generators.generate_xyz_hamiltonian") | Generate a connectivity-aware qubit operator representing a quantum XYZ-type model. | -| [`PauliOrderStrategy`](qiskit_addon_utils.problem_generators.PauliOrderStrategy "qiskit_addon_utils.problem_generators.PauliOrderStrategy") | Enumeration of different Pauli-orderings. | -| [`generate_time_evolution_circuit`](qiskit_addon_utils.problem_generators.generate_time_evolution_circuit "qiskit_addon_utils.problem_generators.generate_time_evolution_circuit") | Model the time evolution of an operator. | diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.mdx deleted file mode 100644 index be8f6a39175..00000000000 --- a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.mdx +++ /dev/null @@ -1,23 +0,0 @@ -# slicing - - - - - -Utility methods for circuit slicing. - -For more information, check out the [how-to guide](https://qiskit.github.io/qiskit-addon-utils/how_tos/create_circuit_slices.html) which discusses this submodule. - -| | | -| ------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------- | -| [`combine_slices`](qiskit_addon_utils.slicing.combine_slices "qiskit_addon_utils.slicing.combine_slices") | Combine N-qubit slices of a circuit into a single circuit. | -| [`slice_by_barriers`](qiskit_addon_utils.slicing.slice_by_barriers "qiskit_addon_utils.slicing.slice_by_barriers") | Split a `QuantumCircuit` into slices around full-circuit barriers. | -| [`slice_by_coloring`](qiskit_addon_utils.slicing.slice_by_coloring "qiskit_addon_utils.slicing.slice_by_coloring") | Split a `QuantumCircuit` into slices using the provided edge coloring. | -| [`slice_by_depth`](qiskit_addon_utils.slicing.slice_by_depth "qiskit_addon_utils.slicing.slice_by_depth") | Split a `QuantumCircuit` into slices based on depth. | -| [`slice_by_gate_types`](qiskit_addon_utils.slicing.slice_by_gate_types "qiskit_addon_utils.slicing.slice_by_gate_types") | Split a `QuantumCircuit` into depth-1 slices of operations of the same type. | - -## Submodules - -| | | -| ------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------- | -| [`transpiler`](qiskit_addon_utils.slicing.transpiler#module-qiskit_addon_utils.slicing.transpiler "qiskit_addon_utils.slicing.transpiler") | A submodule with transpiler utilities for slicing. | diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.mdx b/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.mdx deleted file mode 100644 index c69812c4bbe..00000000000 --- a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.mdx +++ /dev/null @@ -1,13 +0,0 @@ -# passes - - - - - -A submodule with transpilation passes for slicing. - -| | | -| --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | -| [`CollectOpColor`](qiskit_addon_utils.slicing.transpiler.passes.CollectOpColor "qiskit_addon_utils.slicing.transpiler.passes.CollectOpColor") | Collects blocks of operations which act on the provided edges. | -| [`CollectOpSize`](qiskit_addon_utils.slicing.transpiler.passes.CollectOpSize "qiskit_addon_utils.slicing.transpiler.passes.CollectOpSize") | Collects blocks of the specified size and replaces them by a single block instruction. | -| [`CollectOpType`](qiskit_addon_utils.slicing.transpiler.passes.CollectOpType "qiskit_addon_utils.slicing.transpiler.passes.CollectOpType") | Collects blocks of the specified operation and replaces them by a single block instruction. | diff --git a/docs/api/qiskit-addon-utils/release-notes.mdx b/docs/api/qiskit-addon-utils/release-notes.mdx index 55e39dceb10..378296bd9d9 100644 --- a/docs/api/qiskit-addon-utils/release-notes.mdx +++ b/docs/api/qiskit-addon-utils/release-notes.mdx @@ -20,5 +20,5 @@ in_page_toc_max_heading_level: 2 ### Upgrade Notes -* The keyword argument `include_slice_barriers` of [`combine_slices()`](qiskit_addon_utils.slicing.combine_slices "qiskit_addon_utils.slicing.combine_slices") has been renamed to `include_barriers`. +* The keyword argument `include_slice_barriers` of [`combine_slices()`](slicing-combine-slices "qiskit_addon_utils.slicing.combine_slices") has been renamed to `include_barriers`. diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.combine_slices.mdx b/docs/api/qiskit-addon-utils/slicing-combine-slices.mdx similarity index 100% rename from docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.combine_slices.mdx rename to docs/api/qiskit-addon-utils/slicing-combine-slices.mdx diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_barriers.mdx b/docs/api/qiskit-addon-utils/slicing-slice-by-barriers.mdx similarity index 100% rename from docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_barriers.mdx rename to docs/api/qiskit-addon-utils/slicing-slice-by-barriers.mdx diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_coloring.mdx b/docs/api/qiskit-addon-utils/slicing-slice-by-coloring.mdx similarity index 90% rename from docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_coloring.mdx rename to docs/api/qiskit-addon-utils/slicing-slice-by-coloring.mdx index 98b527b5429..bd739c82d43 100644 --- a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_coloring.mdx +++ b/docs/api/qiskit-addon-utils/slicing-slice-by-coloring.mdx @@ -13,7 +13,7 @@ python_api_name: qiskit_addon_utils.slicing.slice_by_coloring Split a `QuantumCircuit` into slices using the provided edge coloring. - Two-qubit gates acting on identically colored qubit connections (edges) will be grouped greedily into slices using [`CollectOpColor`](qiskit_addon_utils.slicing.transpiler.passes.CollectOpColor "qiskit_addon_utils.slicing.transpiler.passes.CollectOpColor"). This will be done in order of increasing color value (the integer values which each edge is mapped to). + Two-qubit gates acting on identically colored qubit connections (edges) will be grouped greedily into slices using [`CollectOpColor`](slicing-transpiler-passes-collect-op-color "qiskit_addon_utils.slicing.transpiler.passes.CollectOpColor"). This will be done in order of increasing color value (the integer values which each edge is mapped to). Note, that this does *not* mean that low valued color slices are guaranteed to be left-most in your circuit. Below is an example to emphasize this. @@ -61,7 +61,7 @@ python_api_name: qiskit_addon_utils.slicing.slice_by_coloring └───┘ ░ ``` - Single-qubit gates will be collected into a single slice using [`CollectOpSize`](qiskit_addon_utils.slicing.transpiler.passes.CollectOpSize "qiskit_addon_utils.slicing.transpiler.passes.CollectOpSize"). + Single-qubit gates will be collected into a single slice using [`CollectOpSize`](slicing-transpiler-passes-collect-op-size "qiskit_addon_utils.slicing.transpiler.passes.CollectOpSize"). **Parameters** diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_depth.mdx b/docs/api/qiskit-addon-utils/slicing-slice-by-depth.mdx similarity index 100% rename from docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_depth.mdx rename to docs/api/qiskit-addon-utils/slicing-slice-by-depth.mdx diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_gate_types.mdx b/docs/api/qiskit-addon-utils/slicing-slice-by-gate-types.mdx similarity index 100% rename from docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.slice_by_gate_types.mdx rename to docs/api/qiskit-addon-utils/slicing-slice-by-gate-types.mdx diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.CollectOpColor.mdx b/docs/api/qiskit-addon-utils/slicing-transpiler-passes-collect-op-color.mdx similarity index 100% rename from docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.CollectOpColor.mdx rename to docs/api/qiskit-addon-utils/slicing-transpiler-passes-collect-op-color.mdx diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.CollectOpSize.mdx b/docs/api/qiskit-addon-utils/slicing-transpiler-passes-collect-op-size.mdx similarity index 100% rename from docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.CollectOpSize.mdx rename to docs/api/qiskit-addon-utils/slicing-transpiler-passes-collect-op-size.mdx diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.CollectOpType.mdx b/docs/api/qiskit-addon-utils/slicing-transpiler-passes-collect-op-type.mdx similarity index 100% rename from docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.passes.CollectOpType.mdx rename to docs/api/qiskit-addon-utils/slicing-transpiler-passes-collect-op-type.mdx diff --git a/docs/api/qiskit-addon-utils/slicing-transpiler-passes.mdx b/docs/api/qiskit-addon-utils/slicing-transpiler-passes.mdx new file mode 100644 index 00000000000..e071db7010a --- /dev/null +++ b/docs/api/qiskit-addon-utils/slicing-transpiler-passes.mdx @@ -0,0 +1,13 @@ +# passes + + + + + +A submodule with transpilation passes for slicing. + +| | | +| ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | +| [`CollectOpColor`](slicing-transpiler-passes-collect-op-color "qiskit_addon_utils.slicing.transpiler.passes.CollectOpColor") | Collects blocks of operations which act on the provided edges. | +| [`CollectOpSize`](slicing-transpiler-passes-collect-op-size "qiskit_addon_utils.slicing.transpiler.passes.CollectOpSize") | Collects blocks of the specified size and replaces them by a single block instruction. | +| [`CollectOpType`](slicing-transpiler-passes-collect-op-type "qiskit_addon_utils.slicing.transpiler.passes.CollectOpType") | Collects blocks of the specified operation and replaces them by a single block instruction. | diff --git a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.mdx b/docs/api/qiskit-addon-utils/slicing-transpiler.mdx similarity index 54% rename from docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.mdx rename to docs/api/qiskit-addon-utils/slicing-transpiler.mdx index 7a60df35b4c..42a5e5544ef 100644 --- a/docs/api/qiskit-addon-utils/qiskit_addon_utils.slicing.transpiler.mdx +++ b/docs/api/qiskit-addon-utils/slicing-transpiler.mdx @@ -8,6 +8,6 @@ A submodule with transpiler utilities for slicing. ## Submodules -| | | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- | -| [`passes`](qiskit_addon_utils.slicing.transpiler.passes#module-qiskit_addon_utils.slicing.transpiler.passes "qiskit_addon_utils.slicing.transpiler.passes") | A submodule with transpilation passes for slicing. | +| | | +| ---------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- | +| [`passes`](slicing-transpiler-passes#module-qiskit_addon_utils.slicing.transpiler.passes "qiskit_addon_utils.slicing.transpiler.passes") | A submodule with transpilation passes for slicing. | diff --git a/docs/api/qiskit-addon-utils/slicing.mdx b/docs/api/qiskit-addon-utils/slicing.mdx new file mode 100644 index 00000000000..bc6d7257df9 --- /dev/null +++ b/docs/api/qiskit-addon-utils/slicing.mdx @@ -0,0 +1,23 @@ +# slicing + + + + + +Utility methods for circuit slicing. + +For more information, check out the [how-to guide](https://qiskit.github.io/qiskit-addon-utils/how_tos/create_circuit_slices.html) which discusses this submodule. + +| | | +| ----------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| [`combine_slices`](slicing-combine-slices "qiskit_addon_utils.slicing.combine_slices") | Combine N-qubit slices of a circuit into a single circuit. | +| [`slice_by_barriers`](slicing-slice-by-barriers "qiskit_addon_utils.slicing.slice_by_barriers") | Split a `QuantumCircuit` into slices around full-circuit barriers. | +| [`slice_by_coloring`](slicing-slice-by-coloring "qiskit_addon_utils.slicing.slice_by_coloring") | Split a `QuantumCircuit` into slices using the provided edge coloring. | +| [`slice_by_depth`](slicing-slice-by-depth "qiskit_addon_utils.slicing.slice_by_depth") | Split a `QuantumCircuit` into slices based on depth. | +| [`slice_by_gate_types`](slicing-slice-by-gate-types "qiskit_addon_utils.slicing.slice_by_gate_types") | Split a `QuantumCircuit` into depth-1 slices of operations of the same type. | + +## Submodules + +| | | +| ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- | +| [`transpiler`](slicing-transpiler#module-qiskit_addon_utils.slicing.transpiler "qiskit_addon_utils.slicing.transpiler") | A submodule with transpiler utilities for slicing. | diff --git a/public/api/qiskit-addon-cutting/objects.inv b/public/api/qiskit-addon-cutting/objects.inv index 062666b2f42fee10dbc3d4e3f39b32bd7c61e418..7a6b13a06ba6e7a8c43cea3c888f9b84ed932c98 100644 GIT binary patch delta 3781 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 delta 3733 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 S{UdW}jk1px(EkBeK`y`!BL{f^ delta 1565 zcmV+&2IBdx4XO>0pnv--FrzNo1?(nE?>vsvX2zMSRkGGVAZQ^50R|6S>eqJwkP;}8 zcu49>BJRPthZk>L{-o-a>NTn=!PiY&gLZ%4h{`Ymeg{8Kj0I?kvBdn4J59vx@gm4q-Rk0~D zgT^pTVJk&tuzv=%kd0wTfnUEaKmQhYv+#w`6~X}z?0KMd7?qRFay8k?Z2at|63PPL z>hL#0-nCP*1^Rh-<$t~|Kj*P7f*uTgv5gGGg48v|lyI%GJZBL-95Fy0l!6eGr`nB% z%k;)6o~-pUjf`@FBvgB)NdrX<$xnmqcvR46%BZF!Q-5j})3XBs4+5eF2M{=b@`N8_ zlBqAOFzA3}*D}PtiaWRPjC=AJ1D=ASIg&+KoMIe;BlJyMua!m{8?XH>ZTEZ=;U1vD zcU}>xG~yNIFFGMo{GqXw*}&e?f<3x1?nw*HYXl*nh4xY~Q_~B5+HLq)Jn)@+Cz$9y$wf z7I3s=Y1@i-s0H*0*8qL5aVWd}fQXN`Fj27uq*o4gD@lu_jgv4E+I?ca>T%s=Ujl@Y z;Cc0wrD52om1xdv@;J|MR9Nd|)6Xno1G8-e_)UO646Vpi-M&Fz93aAU0-WJBit?B7 zQGX;hOlPX}-N$r&Cjj`#IMe9@ZxMg#rywl&8<8)BW7~NpQCq<(RU|Bn@Ug=<=>Y~D zG5Pw1umJeF{!uD4sQK7EfY1sgYqCb~*}&TQ2F!adAf)%Z6A_>>f-5km?sk1EK-As$X!2rDBW^U2;i*?Bz&~XLFg8REnw_6yo4u9>B z!9z$=kyaAyHuA6)jN<(i)dcF(u?Q?((STN9(-5w`eTs1a_!K^cJd`Vq7@MUT*uMl1 zAqk_H@Y8*xuiu-V{cl+7tZP8e`hVR09fe8a`W8Ojwt3%y^`FCETiwNGss}p5Ab9RU z8r)q^1a$`ihctjqvPR&U{zU7let&>nA*`inV7qVWw8IGguh!p0-}kt8p?cTGh3O5CljmJP*xDHc&w6fnn`r#&tY?!(wXuL^el=cT%x}af603} zTWXJANIXw^iT)r>UD`v!4ELzyEbof~hv(_cMxLkNH<8a&UZQh~=sbl*yO-nF1&4n{ zUKSa|Wjd0GGJQU*PmR$tVn^{YegsS$ z_a;YH?pH)@J@MTY48~6KGl^5azB0Ut&pGzslpdUiv*KCXj2s808y3036)#^xe5a5( Pf#{IeFYS9Pxm8YCDLIuTi$h{Gj5!2F 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 k_Febb83SuUY}tiuzJT;>><|92qG>qb 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 NNyoW;_J2BJ`V9Om0Qdj^ diff --git a/public/api/qiskit-addon-sqd/objects.inv b/public/api/qiskit-addon-sqd/objects.inv index cca9c80c6c9ab5938a52f0a3b7f2b056cfc962c0..b8877d78769e331c6b8f91d82f75e32d8d7dba41 100644 GIT binary patch delta 3539 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 NrP!Il{{bcuB_o9%-Ln7y delta 3527 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 B)4c!y diff --git a/public/api/qiskit-addon-utils/objects.inv b/public/api/qiskit-addon-utils/objects.inv index 2692c9a3afeec2a946d7b612bd8ccb22923019d7..d32801947935418e41852dc175c233b52b70c7d6 100644 GIT binary patch delta 2255 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 { versionWithoutPatch: "0.1", type: "latest", releaseNotesConfig: new ReleaseNotesConfig({ enabled: false }), + kebabCaseAndShortenUrls: false, }); const markdownFolder = pkg.outputDir(docsBaseFolder); diff --git a/scripts/js/lib/api/conversionPipeline.ts b/scripts/js/lib/api/conversionPipeline.ts index 32552433de4..db410892984 100644 --- a/scripts/js/lib/api/conversionPipeline.ts +++ b/scripts/js/lib/api/conversionPipeline.ts @@ -23,7 +23,7 @@ import { saveImages } from "./saveImages.js"; import { generateToc } from "./generateToc.js"; import { HtmlToMdResultWithUrl } from "./HtmlToMdResult.js"; import { mergeClassMembers } from "./mergeClassMembers.js"; -import flattenFolders from "./flattenFolders.js"; +import { normalizeResultUrls } from "./normalizeResultUrls.js"; import { updateLinks } from "./updateLinks.js"; import { specialCaseResults } from "./specialCaseResults.js"; import addFrontMatter from "./addFrontMatter.js"; @@ -149,9 +149,16 @@ async function postProcessResults( initialResults: HtmlToMdResultWithUrl[], ): Promise { const results = await mergeClassMembers(initialResults); - flattenFolders(results); + normalizeResultUrls(results, { + kebabCaseAndShorten: pkg.kebabCaseAndShortenUrls, + pkgName: pkg.name, + }); specialCaseResults(results); - await updateLinks(results, maybeObjectsInv); + await updateLinks( + results, + { kebabCaseAndShorten: pkg.kebabCaseAndShortenUrls, pkgName: pkg.name }, + maybeObjectsInv, + ); await dedupeHtmlIdsFromResults(results); addFrontMatter(results, pkg); removeMathBlocksIndentation(results); diff --git a/scripts/js/lib/api/flattenFolders.test.ts b/scripts/js/lib/api/flattenFolders.test.ts deleted file mode 100644 index 460d51bb0c4..00000000000 --- a/scripts/js/lib/api/flattenFolders.test.ts +++ /dev/null @@ -1,33 +0,0 @@ -// This code is a Qiskit project. -// -// (C) Copyright IBM 2024. -// -// This code is licensed under the Apache License, Version 2.0. You may -// obtain a copy of this license in the LICENSE 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. - -import { expect, test } from "@playwright/test"; - -import flattenFolders from "./flattenFolders.js"; -import { HtmlToMdResultWithUrl } from "./HtmlToMdResult.js"; - -test("flattenFolders()", () => { - const results = [ - { url: "/api/my-pkg/apidoc/my_module" }, - { url: "/api/my-pkg/apidocs/my_module2" }, - { url: "/api/my-pkg/stubs/my_module.foo.Bar" }, - { url: "/api/my-pkg/release_notes" }, - ] as HtmlToMdResultWithUrl[]; - - flattenFolders(results); - expect(results.map((result) => result.url)).toEqual([ - "/api/my-pkg/my_module", - "/api/my-pkg/my_module2", - "/api/my-pkg/my_module.foo.Bar", - "/api/my-pkg/release_notes", - ]); -}); diff --git a/scripts/js/lib/api/normalizeResultUrls.test.ts b/scripts/js/lib/api/normalizeResultUrls.test.ts new file mode 100644 index 00000000000..1d80d87a1b1 --- /dev/null +++ b/scripts/js/lib/api/normalizeResultUrls.test.ts @@ -0,0 +1,77 @@ +// This code is a Qiskit project. +// +// (C) Copyright IBM 2024. +// +// This code is licensed under the Apache License, Version 2.0. You may +// obtain a copy of this license in the LICENSE 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. + +import { expect, test } from "@playwright/test"; + +import { + kebabCaseAndShortenPage, + normalizeResultUrls, +} from "./normalizeResultUrls.js"; +import { HtmlToMdResultWithUrl } from "./HtmlToMdResult.js"; + +test.describe("kebabCaseAndShortenPage()", () => { + const cases = [ + ["my_api", "my-api"], + ["my_api.Foo", "foo"], + ["my_api.a_function", "a-function"], + ["my_api.module.FooBar2", "module-foo-bar-2"], + ["another_api.Foo", "another-api-foo"], + ]; + + cases.forEach(([input, expected]) => { + test(input, () => { + const result = kebabCaseAndShortenPage(input, "my-api"); + expect(result).toEqual(expected); + }); + }); +}); + +test.describe("normalizeResultUrls()", () => { + const results = [ + { url: "/api/my-pkg/apidoc/my_pkg" }, + { url: "/api/my-pkg/apidoc/my_module" }, + { url: "/api/my-pkg/apidocs/my_module2" }, + { url: "/api/my-pkg/stubs/my_pkg.foo.Bar" }, + { url: "/api/my-pkg/stubs/my_pkg.a_function" }, + { url: "/api/my-pkg/release_notes" }, + ] as HtmlToMdResultWithUrl[]; + + test("no kebab-case", () => { + normalizeResultUrls(results, { + kebabCaseAndShorten: false, + pkgName: "my-pkg", + }); + expect(results.map((result) => result.url)).toEqual([ + "/api/my-pkg/my_pkg", + "/api/my-pkg/my_module", + "/api/my-pkg/my_module2", + "/api/my-pkg/my_pkg.foo.Bar", + "/api/my-pkg/my_pkg.a_function", + "/api/my-pkg/release_notes", + ]); + }); + + test("kebab-case", () => { + normalizeResultUrls(results, { + kebabCaseAndShorten: true, + pkgName: "my-pkg", + }); + expect(results.map((result) => result.url)).toEqual([ + "/api/my-pkg/my-pkg", + "/api/my-pkg/my-module", + "/api/my-pkg/my-module-2", + "/api/my-pkg/foo-bar", + "/api/my-pkg/a-function", + "/api/my-pkg/release-notes", + ]); + }); +}); diff --git a/scripts/js/lib/api/flattenFolders.ts b/scripts/js/lib/api/normalizeResultUrls.ts similarity index 52% rename from scripts/js/lib/api/flattenFolders.ts rename to scripts/js/lib/api/normalizeResultUrls.ts index ee2b0308985..4e8ac36f6f0 100644 --- a/scripts/js/lib/api/flattenFolders.ts +++ b/scripts/js/lib/api/normalizeResultUrls.ts @@ -10,17 +10,33 @@ // copyright notice, and modified files need to carry a notice indicating // that they have been altered from the originals. +import { kebabCase, initial, last } from "lodash-es"; + import { HtmlToMdResultWithUrl } from "./HtmlToMdResult.js"; import { removePart } from "../stringUtils.js"; -function flattenFolders(results: HtmlToMdResultWithUrl[]): void { +export function kebabCaseAndShortenPage(page: string, pkgName: string): string { + const kebab = kebabCase(page); + return kebab === pkgName ? kebab : kebab.replace(`${pkgName}-`, ""); +} + +export function normalizeResultUrls( + results: HtmlToMdResultWithUrl[], + kwargs: { kebabCaseAndShorten: boolean; pkgName: string }, +): void { for (const result of results) { - result.url = omitRootFolders(result.url); + const flattened = omitRootFolders(result.url); + if (!kwargs.kebabCaseAndShorten) { + result.url = flattened; + continue; + } + + const parts = flattened.split("/"); + const page = kebabCaseAndShortenPage(last(parts)!, kwargs.pkgName); + result.url = [...initial(parts), page].join("/"); } } function omitRootFolders(path: string): string { return removePart(path, "/", ["stubs", "apidocs", "apidoc"]); } - -export default flattenFolders; diff --git a/scripts/js/lib/api/updateLinks.test.ts b/scripts/js/lib/api/updateLinks.test.ts index b09c8150808..a8daa1a188f 100644 --- a/scripts/js/lib/api/updateLinks.test.ts +++ b/scripts/js/lib/api/updateLinks.test.ts @@ -17,10 +17,10 @@ import { updateLinks, normalizeUrl, relativizeLink } from "./updateLinks.js"; import { HtmlToMdResultWithUrl } from "./HtmlToMdResult.js"; test.describe("updateLinks", () => { - test("update links", async () => { - const data: HtmlToMdResultWithUrl[] = [ - { - markdown: ` + const data: HtmlToMdResultWithUrl[] = [ + { + markdown: ` +[link0](qiskit_ibm_runtime) [link1](qiskit_ibm_runtime.RuntimeJob) [link2](qiskit_ibm_runtime.RuntimeJob#qiskit_ibm_runtime.RuntimeJob) [link3](qiskit_ibm_runtime.RuntimeJob.job#wut) @@ -30,60 +30,64 @@ test.describe("updateLinks", () => { [link7](#qiskit_ibm_runtime.RuntimeJob.job) [link8](https://qiskit.org/documentation/apidoc/algorithms.html) [link9](https://qiskit.org/documentation/stubs/qiskit.circuit.BreakLoopOp.html#assemble) - `, - meta: { - apiType: "class", - apiName: "qiskit_ibm_runtime.RuntimeJob", - }, - url: "/docs/api/qiskit-ibm-runtime/stubs/qiskit_ibm_runtime.RuntimeJob", - images: [], - isReleaseNotes: false, + `, + meta: { + apiType: "class", + apiName: "qiskit_ibm_runtime.RuntimeJob", }, - { - markdown: ` + url: "/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob", + images: [], + isReleaseNotes: false, + }, + { + markdown: ` [run](qiskit_ibm_runtime.RuntimeJob#qiskit_ibm_runtime.RuntimeJob.run) - `, - meta: { - apiType: "class", - apiName: "qiskit_ibm_runtime.Sampler", - }, - url: "/docs/api/qiskit-ibm-runtime/stubs/qiskit_ibm_runtime.RuntimeJob", - images: [], - isReleaseNotes: false, + `, + meta: { + apiType: "class", + apiName: "qiskit_ibm_runtime.Sampler", }, - ]; + url: "/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob", + images: [], + isReleaseNotes: false, + }, + ]; + const objectsInvEntries = [ + "stubs/qiskit.algorithms.Eigensolver#qiskit.algorithms.Eigensolver", + "stubs/qiskit.algorithms.EstimationProblem.html#qiskit.algorithms.EstimationProblem.state_preparation", + "stubs/qiskit.algorithms.FasterAmplitudeEstimationResult.html#qiskit.algorithms.FasterAmplitudeEstimationResult.success_probability", + "apidoc/qiskit_ibm_runtime#index", + "stubs/qiskit_ibm_runtime.QiskitRuntimeService", + "stubs/qiskit_ibm_runtime.RuntimeJob#qiskit_ibm_runtime.RuntimeJob.submit", + "stubs/qiskit_ibm_runtime.RuntimeEncoder#qiskit_ibm_runtime.RuntimeEncoder", + "stubs/qiskit_ibm_runtime.options.Options#options", + "qiskit.algorithms.gradients.LinCombEstimatorGradient#SUPPORTED_GATES", + ].map((uri) => { + return { + name: "-", + domainAndRole: "-", + priority: "-", + uri, + dispname: "-", + }; + }); + const objectsInv = new ObjectsInv( + "# Here's a simple preamble", + objectsInvEntries, + ); - const objectsInvEntries = [ - "stubs/qiskit.algorithms.Eigensolver#qiskit.algorithms.Eigensolver", - "stubs/qiskit.algorithms.EstimationProblem.html#qiskit.algorithms.EstimationProblem.state_preparation", - "stubs/qiskit.algorithms.FasterAmplitudeEstimationResult.html#qiskit.algorithms.FasterAmplitudeEstimationResult.success_probability", - "stubs/qiskit_ibm_runtime.QiskitRuntimeService", - "stubs/qiskit_ibm_runtime.RuntimeJob#qiskit_ibm_runtime.RuntimeJob.submit", - "stubs/qiskit_ibm_runtime.RuntimeEncoder#qiskit_ibm_runtime.RuntimeEncoder", - "stubs/qiskit_ibm_runtime.options.Options#options", - "tutorials/qaoa_with_primitives", - "tutorials/vqe_with_estimator#Step-1:-Map-classical-inputs-to-a-quantum-problem", - "qiskit.algorithms.gradients.LinCombEstimatorGradient#SUPPORTED_GATES", - ].map((uri) => { - return { - name: "-", - domainAndRole: "-", - priority: "-", - uri, - dispname: "-", - }; - }); - const objectsInv = new ObjectsInv( - "# Here's a simple preamble", - objectsInvEntries, + test("no kebab-case", async () => { + await updateLinks( + data, + { kebabCaseAndShorten: false, pkgName: "qiskit-ibm-runtime" }, + objectsInv, ); - - await updateLinks(data, objectsInv); expect(data).toEqual([ { images: [], isReleaseNotes: false, - markdown: `[link1](qiskit_ibm_runtime.RuntimeJob) + markdown: `[link0](qiskit_ibm_runtime) +[link1](qiskit_ibm_runtime.RuntimeJob) [link2](qiskit_ibm_runtime.RuntimeJob) [link3](qiskit_ibm_runtime.RuntimeJob#job) [link4](qiskit_ibm_runtime.RuntimeJob) @@ -96,7 +100,7 @@ test.describe("updateLinks", () => { apiName: "qiskit_ibm_runtime.RuntimeJob", apiType: "class", }, - url: "/docs/api/qiskit-ibm-runtime/stubs/qiskit_ibm_runtime.RuntimeJob", + url: "/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob", }, { images: [], @@ -106,7 +110,7 @@ test.describe("updateLinks", () => { apiName: "qiskit_ibm_runtime.Sampler", apiType: "class", }, - url: "/docs/api/qiskit-ibm-runtime/stubs/qiskit_ibm_runtime.RuntimeJob", + url: "/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob", }, ]); @@ -114,19 +118,70 @@ test.describe("updateLinks", () => { "qiskit.algorithms.Eigensolver#qiskit.algorithms.Eigensolver", "qiskit.algorithms.EstimationProblem#qiskit.algorithms.EstimationProblem.state_preparation", "qiskit.algorithms.FasterAmplitudeEstimationResult#qiskit.algorithms.FasterAmplitudeEstimationResult.success_probability", + "qiskit_ibm_runtime#index", "qiskit_ibm_runtime.QiskitRuntimeService", "qiskit_ibm_runtime.RuntimeJob#submit", "qiskit_ibm_runtime.RuntimeEncoder#qiskit_ibm_runtime.RuntimeEncoder", "qiskit_ibm_runtime.options.Options#options", - "tutorials/qaoa_with_primitives", - "tutorials/vqe_with_estimator#step-1:-map-classical-inputs-to-a-quantum-problem", "qiskit.algorithms.gradients.LinCombEstimatorGradient#supported_gates", ]); }); + + test("kebab-case", async () => { + await updateLinks( + data, + { kebabCaseAndShorten: true, pkgName: "qiskit-ibm-runtime" }, + objectsInv, + ); + expect(data).toEqual([ + { + images: [], + isReleaseNotes: false, + markdown: `[link0](qiskit-ibm-runtime) +[link1](runtime-job) +[link2](runtime-job) +[link3](runtime-job#job) +[link4](runtime-job) +[link5](runtime-job) +[link6](runtime-job) +[link7](#qiskit_ibm_runtime.RuntimeJob.job) +[link8](/api/qiskit/algorithms) +[link9](/api/qiskit/qiskit.circuit.BreakLoopOp#assemble)\n`, + meta: { + apiName: "qiskit_ibm_runtime.RuntimeJob", + apiType: "class", + }, + url: "/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob", + }, + { + images: [], + isReleaseNotes: false, + markdown: "[run](runtime-job#run)\n", + meta: { + apiName: "qiskit_ibm_runtime.Sampler", + apiType: "class", + }, + url: "/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob", + }, + ]); + + expect(objectsInv.entries.map((e) => e.uri)).toEqual([ + "qiskit-algorithms-eigensolver#qiskit.algorithms.Eigensolver", + "qiskit-algorithms-estimation-problem#qiskit.algorithms.EstimationProblem.state_preparation", + "qiskit-algorithms-faster-amplitude-estimation-result#qiskit.algorithms.FasterAmplitudeEstimationResult.success_probability", + "qiskit-ibm-runtime#index", + "qiskit-runtime-service", + "runtime-job#submit", + "runtime-encoder#qiskit_ibm_runtime.RuntimeEncoder", + "options-options#options", + "qiskit-algorithms-gradients-lin-comb-estimator-gradient#supported_gates", + ]); + }); }); test("normalizeUrl()", () => { const urls = [ + `qiskit_ibm_runtime`, `qiskit_ibm_runtime.RuntimeJob`, `qiskit_ibm_runtime.RuntimeJob#qiskit_ibm_runtime.RuntimeJob`, `qiskit_ibm_runtime.RuntimeJob.job#wut`, @@ -162,9 +217,13 @@ test("normalizeUrl()", () => { const itemNames = new Set(["qiskit_ibm_runtime.RuntimeJob"]); const newUrls = urls.map((url) => - normalizeUrl(url, resultsByName, itemNames), + normalizeUrl(url, resultsByName, itemNames, { + kebabCaseAndShorten: false, + pkgName: "qiskit-ibm-runtime", + }), ); expect(newUrls).toEqual([ + "qiskit_ibm_runtime", "qiskit_ibm_runtime.RuntimeJob", "qiskit_ibm_runtime.RuntimeJob", "qiskit_ibm_runtime.RuntimeJob#job", @@ -175,6 +234,25 @@ test("normalizeUrl()", () => { "qiskit_ibm_runtime.RuntimeJob#run", "qiskit_ibm_runtime.RuntimeJob", ]); + + const kebabResults = urls.map((url) => + normalizeUrl(url, resultsByName, itemNames, { + kebabCaseAndShorten: true, + pkgName: "qiskit-ibm-runtime", + }), + ); + expect(kebabResults).toEqual([ + "qiskit-ibm-runtime", + "runtime-job", + "runtime-job", + "runtime-job#job", + "runtime-job", + "runtime-job", + "runtime-job", + "#qiskit_ibm_runtime.RuntimeJob.job", + "runtime-job#run", + "runtime-job", + ]); }); test.describe("relativizeLink()", () => { diff --git a/scripts/js/lib/api/updateLinks.ts b/scripts/js/lib/api/updateLinks.ts index a6cf1a797f3..9d0313e77a7 100644 --- a/scripts/js/lib/api/updateLinks.ts +++ b/scripts/js/lib/api/updateLinks.ts @@ -26,6 +26,7 @@ import { HtmlToMdResultWithUrl } from "./HtmlToMdResult.js"; import { remarkStringifyOptions } from "./commonParserConfig.js"; import { ObjectsInv } from "./objectsInv.js"; import { transformSpecialCaseUrl } from "./specialCaseResults.js"; +import { kebabCaseAndShortenPage } from "./normalizeResultUrls.js"; export interface Link { url: string; // Where the link goes @@ -58,6 +59,7 @@ export function normalizeUrl( url: string, resultsByName: { [key: string]: HtmlToMdResultWithUrl }, itemNames: Set, + kwargs: { kebabCaseAndShorten: boolean; pkgName: string }, ): string { if (isAbsoluteUrl(url)) return url; if (url.startsWith("/")) return url; @@ -67,36 +69,55 @@ export function normalizeUrl( const urlParts = url.split("/"); const initialUrlParts = initial(urlParts); - const [path, hash] = last(urlParts)!.split("#") as [ + const [page, hash] = last(urlParts)!.split("#") as [ string, string | undefined, ]; + const normalizedPage = kwargs.kebabCaseAndShorten + ? kebabCaseAndShortenPage(page, kwargs.pkgName) + : page; + const normalizedUrlWithoutHash = [...initialUrlParts, normalizedPage].join( + "/", + ); + // qiskit_ibm_runtime.RuntimeJob // qiskit_ibm_runtime.RuntimeJob#qiskit_ibm_runtime.RuntimeJob - if (itemNames.has(path)) { - if (hash === path) { - url = [...initialUrlParts, path].join("/"); + if (itemNames.has(page)) { + if (hash === page) { + return normalizedUrlWithoutHash; } // qiskit_ibm_runtime.RuntimeJob#qiskit_ibm_runtime.RuntimeJob.job -> qiskit_ibm_runtime.RuntimeJob#job - if (hash?.startsWith(`${path}.`)) { - const member = removePrefix(hash, `${path}.`); - url = [...initialUrlParts, path].join("/") + `#${member}`; + if (hash?.startsWith(`${page}.`)) { + const member = removePrefix(hash, `${page}.`); + return `${normalizedUrlWithoutHash}#${member}`; } } // qiskit_ibm_runtime.QiskitRuntimeService.job -> qiskit_ibm_runtime.QiskitRuntimeService#job - const pathParts = path.split("."); + const pathParts = page.split("."); const member = last(pathParts); const initialPathParts = initial(pathParts); const parentName = initialPathParts.join("."); if ("class" === resultsByName[parentName]?.meta.apiType) { - url = [...initialUrlParts, parentName].join("/") + "#" + member; + const normalizedParentName = kwargs.kebabCaseAndShorten + ? kebabCaseAndShortenPage(parentName, kwargs.pkgName) + : parentName; + return [...initialUrlParts, normalizedParentName].join("/") + "#" + member; } - url = lowerCaseIfMarkdownAnchor(url); - return url; + if (!hash) return normalizedUrlWithoutHash; + + // Anchors generated from markdown headings are always lower case but, if these + // headings are API references, Sphinx sometimes expects them to include + // uppercase characters. + // + // As a heuristic, we assume URLs containing periods are anchors to HTML id + // tags (which preserve Sphinx's original casing), and anchors with no periods + // are from markdown headings (which must be lower-cased). This seems to work ok. + const normalizedHash = hash.includes(".") ? hash : hash.toLowerCase(); + return `${normalizedUrlWithoutHash}#${normalizedHash}`; } export function relativizeLink(link: Link): Link | undefined { @@ -126,6 +147,7 @@ export function relativizeLink(link: Link): Link | undefined { export async function updateLinks( results: HtmlToMdResultWithUrl[], + kwargs: { kebabCaseAndShorten: boolean; pkgName: string }, maybeObjectsInv?: ObjectsInv, ): Promise { const resultsByName = keyBy(results, (result) => result.meta.apiName!); @@ -153,7 +175,7 @@ export async function updateLinks( textNode.value = relativizedLink.text; } } - node.url = normalizeUrl(node.url, resultsByName, itemNames); + node.url = normalizeUrl(node.url, resultsByName, itemNames, kwargs); }); }) .use(remarkStringify, remarkStringifyOptions) @@ -163,6 +185,6 @@ export async function updateLinks( } maybeObjectsInv?.updateUris((uri: string) => - normalizeUrl(uri, resultsByName, itemNames), + normalizeUrl(uri, resultsByName, itemNames, kwargs), ); } From c86ceca4c9aa71a1aaf3eb783ee1314199ba4231 Mon Sep 17 00:00:00 2001 From: Frank Harkins Date: Mon, 28 Oct 2024 16:17:20 +0000 Subject: [PATCH 29/32] Add instructions for `CodeCellPlaceholder` component (#2179) Closes #2173. Also documents the `CodeAssistantAdmonition` component. --------- Co-authored-by: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> --- .prettierignore | 1 + README.md | 72 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) diff --git a/.prettierignore b/.prettierignore index d280b456bb0..82f45db7bdb 100644 --- a/.prettierignore +++ b/.prettierignore @@ -3,3 +3,4 @@ translations scripts/js/lib/api/testdata .mypy_cache public/images +README.md diff --git a/README.md b/README.md index 0c68aa36571..2da49b9443d 100644 --- a/README.md +++ b/README.md @@ -592,6 +592,19 @@ By default, the title is the `type` capitalized. You can customize it by setting ``` +We also have a specialized admonition for Qiskit Code Assistant prompt suggestions. Warning: avoid a trailing comma on the last entry in `prompts`! + +```mdx + +``` + ### Definition Tooltip To use a `DefinitionTooltip`, use the following syntax: @@ -663,6 +676,65 @@ There is a specific use case where you want to show instructions for different o ``` +### CodeCellPlaceholder + +This component only works in notebooks. Notebook code cells are always at the +top-level of content, but sometimes you'll want to have them nested in other +components, such as in tabs or in a list. While you could write your code +as a markdown block, it's usually preferable to keep the code as a code block +so that it is executed and its code can be later used in the notebook. The +CodeCellPlaceholder component allows you to still use a code block, but move +it to render somewhere else in the notebook. + +To use this component, add a tag +starting with `id-` to the code cell you'd like to move, then add a +`` component with the same tag somewhere in +your markdown. This will move that code cell into the place of the component. + +You can then use this component anywhere in your markdown. While you can move code +cells anywhere, try to keep them relatively close to their position in the +notebook and preserve their order to avoid confusion. + +Here's an example of what this might look like in your notebook source. + +```json +{ + "cell_type": "code", + "execution_count": 1, + "metadata": { + "tags": [ + "id-example-cell" + ] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Hello, world!" + ] + }, + } + ], + "source": [ + "# This is a code cell\n", + "print(\"Hello, world!\")" + ] +}, +{ + "cell_type": "markdown", + "source": [ + "This is a notebook markdown cell.", + "\n", + "\n", + "\n", + " This `TabItem` contains a notebook code cell\n", + " \n", + "\n", + "" + ] +} +``` + ## Proper marking and attribution **All information needs to identify, mark, and attribute IBM and applicable third-party trademarks.** We do this the first time an IBM trademark appears on each page. See the [Copyright and trademark information](https://www.ibm.com/legal/copyright-trademark) page for more details. From 0e70f3667c2ab8126ca5f8434339341143fdcd6f Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Tue, 29 Oct 2024 10:09:13 -0400 Subject: [PATCH 30/32] Use sentence case capitalization for API names (#2195) This changes the left sidebar and the release notes heading, per the IBM style guide. --- README.md | 2 +- docs/api/qiskit-addon-cutting/_toc.json | 2 +- docs/api/qiskit-addon-cutting/release-notes.mdx | 6 +++--- docs/api/qiskit-addon-mpf/_toc.json | 2 +- docs/api/qiskit-addon-mpf/release-notes.mdx | 6 +++--- docs/api/qiskit-addon-obp/_toc.json | 2 +- docs/api/qiskit-addon-obp/release-notes.mdx | 6 +++--- docs/api/qiskit-addon-sqd/_toc.json | 2 +- docs/api/qiskit-addon-sqd/release-notes.mdx | 6 +++--- docs/api/qiskit-addon-utils/_toc.json | 2 +- docs/api/qiskit-addon-utils/release-notes.mdx | 6 +++--- docs/api/qiskit-ibm-runtime/0.14/_toc.json | 2 +- docs/api/qiskit-ibm-runtime/0.15/_toc.json | 2 +- docs/api/qiskit-ibm-runtime/0.16/_toc.json | 2 +- docs/api/qiskit-ibm-runtime/0.17/_toc.json | 2 +- docs/api/qiskit-ibm-runtime/0.18/_toc.json | 2 +- docs/api/qiskit-ibm-runtime/0.19/_toc.json | 2 +- docs/api/qiskit-ibm-runtime/0.20/_toc.json | 2 +- docs/api/qiskit-ibm-runtime/0.21/_toc.json | 2 +- docs/api/qiskit-ibm-runtime/0.22/_toc.json | 2 +- docs/api/qiskit-ibm-runtime/0.23/_toc.json | 2 +- docs/api/qiskit-ibm-runtime/0.24/_toc.json | 2 +- docs/api/qiskit-ibm-runtime/0.25/_toc.json | 2 +- docs/api/qiskit-ibm-runtime/0.26/_toc.json | 2 +- docs/api/qiskit-ibm-runtime/0.27/_toc.json | 2 +- docs/api/qiskit-ibm-runtime/0.28/_toc.json | 2 +- docs/api/qiskit-ibm-runtime/0.29/_toc.json | 2 +- docs/api/qiskit-ibm-runtime/0.30/_toc.json | 2 +- docs/api/qiskit-ibm-runtime/_toc.json | 2 +- docs/api/qiskit-ibm-runtime/dev/_toc.json | 2 +- docs/api/qiskit-ibm-runtime/release-notes.mdx | 6 +++--- docs/guides/latest-updates.mdx | 10 +++++----- scripts/js/lib/api/Pkg.ts | 14 +++++++------- 33 files changed, 55 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index 2da49b9443d..cb36a17fd40 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Read on for more information about how to support this project: This is the quickest, easiest, and most helpful way to contribute to this project and improve the quality of Qiskit® and IBM Quantum™ documentation. There are a few different ways to report issues, depending on where it was found: - For problems you've found in the [Qiskit SDK API Reference](https://docs.quantum.ibm.com/api/qiskit) section, open an issue in the Qiskit repo [here](https://github.com/Qiskit/qiskit/issues/new/choose). -- For problems you've found in the [Qiskit Runtime Client](https://docs.quantum.ibm.com/api/qiskit-ibm-runtime) section, open an issue in the Qiskit IBM Runtime repo [here](https://github.com/Qiskit/qiskit-ibm-runtime/issues/new/choose). +- For problems you've found in the [Qiskit Runtime client](https://docs.quantum.ibm.com/api/qiskit-ibm-runtime) section, open an issue in the Qiskit IBM Runtime repo [here](https://github.com/Qiskit/qiskit-ibm-runtime/issues/new/choose). - For problems you've found in any other section of [docs](https://docs.quantum.ibm.com), open a content bug issue [here](https://github.com/Qiskit/documentation/issues/new/choose). ### 2. Suggest new content diff --git a/docs/api/qiskit-addon-cutting/_toc.json b/docs/api/qiskit-addon-cutting/_toc.json index 1e3c2d80856..502ff98d816 100644 --- a/docs/api/qiskit-addon-cutting/_toc.json +++ b/docs/api/qiskit-addon-cutting/_toc.json @@ -1,5 +1,5 @@ { - "title": "Circuit Cutting", + "title": "Circuit cutting", "children": [ { "title": "API index", diff --git a/docs/api/qiskit-addon-cutting/release-notes.mdx b/docs/api/qiskit-addon-cutting/release-notes.mdx index 2280fe583c6..b089729d234 100644 --- a/docs/api/qiskit-addon-cutting/release-notes.mdx +++ b/docs/api/qiskit-addon-cutting/release-notes.mdx @@ -1,6 +1,6 @@ --- -title: Circuit Cutting release notes -description: Changes made to Circuit Cutting +title: Circuit cutting release notes +description: Changes made to Circuit cutting in_page_toc_max_heading_level: 2 --- @@ -8,7 +8,7 @@ in_page_toc_max_heading_level: 2 -# Circuit Cutting release notes +# Circuit cutting release notes diff --git a/docs/api/qiskit-addon-mpf/_toc.json b/docs/api/qiskit-addon-mpf/_toc.json index 37d3a86eaf4..092990b0c99 100644 --- a/docs/api/qiskit-addon-mpf/_toc.json +++ b/docs/api/qiskit-addon-mpf/_toc.json @@ -1,5 +1,5 @@ { - "title": "Multi-Product Formulas", + "title": "Multi-product formulas", "children": [ { "title": "API index", diff --git a/docs/api/qiskit-addon-mpf/release-notes.mdx b/docs/api/qiskit-addon-mpf/release-notes.mdx index 87aa4dfb65d..9ce7b4ed528 100644 --- a/docs/api/qiskit-addon-mpf/release-notes.mdx +++ b/docs/api/qiskit-addon-mpf/release-notes.mdx @@ -1,6 +1,6 @@ --- -title: Multi-Product Formulas release notes -description: Changes made to Multi-Product Formulas +title: Multi-product formulas release notes +description: Changes made to Multi-product formulas in_page_toc_max_heading_level: 2 --- @@ -8,5 +8,5 @@ in_page_toc_max_heading_level: 2 -# Multi-Product Formulas release notes +# Multi-product formulas release notes diff --git a/docs/api/qiskit-addon-obp/_toc.json b/docs/api/qiskit-addon-obp/_toc.json index 5019433655a..6eee3efbef1 100644 --- a/docs/api/qiskit-addon-obp/_toc.json +++ b/docs/api/qiskit-addon-obp/_toc.json @@ -1,5 +1,5 @@ { - "title": "Operator Backpropagation", + "title": "Operator backpropagation", "children": [ { "title": "API index", diff --git a/docs/api/qiskit-addon-obp/release-notes.mdx b/docs/api/qiskit-addon-obp/release-notes.mdx index 0f22da2ab42..723a31414c9 100644 --- a/docs/api/qiskit-addon-obp/release-notes.mdx +++ b/docs/api/qiskit-addon-obp/release-notes.mdx @@ -1,6 +1,6 @@ --- -title: Operator Backpropagation release notes -description: Changes made to Operator Backpropagation +title: Operator backpropagation release notes +description: Changes made to Operator backpropagation in_page_toc_max_heading_level: 2 --- @@ -8,7 +8,7 @@ in_page_toc_max_heading_level: 2 -# Operator Backpropagation release notes +# Operator backpropagation release notes diff --git a/docs/api/qiskit-addon-sqd/_toc.json b/docs/api/qiskit-addon-sqd/_toc.json index deb81009cc7..7cb14070e12 100644 --- a/docs/api/qiskit-addon-sqd/_toc.json +++ b/docs/api/qiskit-addon-sqd/_toc.json @@ -1,5 +1,5 @@ { - "title": "Sample-Based Quantum Diagonalization", + "title": "Sample-based quantum diagonalization", "children": [ { "title": "API index", diff --git a/docs/api/qiskit-addon-sqd/release-notes.mdx b/docs/api/qiskit-addon-sqd/release-notes.mdx index f720a88c759..ad59fd7e9a8 100644 --- a/docs/api/qiskit-addon-sqd/release-notes.mdx +++ b/docs/api/qiskit-addon-sqd/release-notes.mdx @@ -1,6 +1,6 @@ --- -title: Sample-Based Quantum Diagonalization release notes -description: Changes made to Sample-Based Quantum Diagonalization +title: Sample-based quantum diagonalization release notes +description: Changes made to Sample-based quantum diagonalization in_page_toc_max_heading_level: 2 --- @@ -8,7 +8,7 @@ in_page_toc_max_heading_level: 2 -# Sample-Based Quantum Diagonalization release notes +# Sample-based quantum diagonalization release notes diff --git a/docs/api/qiskit-addon-utils/_toc.json b/docs/api/qiskit-addon-utils/_toc.json index 38c4e3fa34f..2e8456196c5 100644 --- a/docs/api/qiskit-addon-utils/_toc.json +++ b/docs/api/qiskit-addon-utils/_toc.json @@ -1,5 +1,5 @@ { - "title": "Qiskit Addon Utilities", + "title": "Qiskit addon utilities", "children": [ { "title": "API index", diff --git a/docs/api/qiskit-addon-utils/release-notes.mdx b/docs/api/qiskit-addon-utils/release-notes.mdx index 378296bd9d9..a30ac515f17 100644 --- a/docs/api/qiskit-addon-utils/release-notes.mdx +++ b/docs/api/qiskit-addon-utils/release-notes.mdx @@ -1,6 +1,6 @@ --- -title: Qiskit Addon Utilities release notes -description: Changes made to Qiskit Addon Utilities +title: Qiskit addon utilities release notes +description: Changes made to Qiskit addon utilities in_page_toc_max_heading_level: 2 --- @@ -8,7 +8,7 @@ in_page_toc_max_heading_level: 2 -# Qiskit Addon Utilities release notes +# Qiskit addon utilities release notes diff --git a/docs/api/qiskit-ibm-runtime/0.14/_toc.json b/docs/api/qiskit-ibm-runtime/0.14/_toc.json index 3ece6a6686e..9c84a7d72e5 100644 --- a/docs/api/qiskit-ibm-runtime/0.14/_toc.json +++ b/docs/api/qiskit-ibm-runtime/0.14/_toc.json @@ -1,5 +1,5 @@ { - "title": "Qiskit Runtime Client", + "title": "Qiskit Runtime client", "children": [ { "title": "API index", diff --git a/docs/api/qiskit-ibm-runtime/0.15/_toc.json b/docs/api/qiskit-ibm-runtime/0.15/_toc.json index d5d2b6975cf..01b10c25449 100644 --- a/docs/api/qiskit-ibm-runtime/0.15/_toc.json +++ b/docs/api/qiskit-ibm-runtime/0.15/_toc.json @@ -1,5 +1,5 @@ { - "title": "Qiskit Runtime Client", + "title": "Qiskit Runtime client", "children": [ { "title": "API index", diff --git a/docs/api/qiskit-ibm-runtime/0.16/_toc.json b/docs/api/qiskit-ibm-runtime/0.16/_toc.json index f3c090730fb..24d1bbe816b 100644 --- a/docs/api/qiskit-ibm-runtime/0.16/_toc.json +++ b/docs/api/qiskit-ibm-runtime/0.16/_toc.json @@ -1,5 +1,5 @@ { - "title": "Qiskit Runtime Client", + "title": "Qiskit Runtime client", "children": [ { "title": "API index", diff --git a/docs/api/qiskit-ibm-runtime/0.17/_toc.json b/docs/api/qiskit-ibm-runtime/0.17/_toc.json index 7324f08a79b..8d77608b4c2 100644 --- a/docs/api/qiskit-ibm-runtime/0.17/_toc.json +++ b/docs/api/qiskit-ibm-runtime/0.17/_toc.json @@ -1,5 +1,5 @@ { - "title": "Qiskit Runtime Client", + "title": "Qiskit Runtime client", "children": [ { "title": "API index", diff --git a/docs/api/qiskit-ibm-runtime/0.18/_toc.json b/docs/api/qiskit-ibm-runtime/0.18/_toc.json index a7190cf67b1..dd1eea3df49 100644 --- a/docs/api/qiskit-ibm-runtime/0.18/_toc.json +++ b/docs/api/qiskit-ibm-runtime/0.18/_toc.json @@ -1,5 +1,5 @@ { - "title": "Qiskit Runtime Client", + "title": "Qiskit Runtime client", "children": [ { "title": "API index", diff --git a/docs/api/qiskit-ibm-runtime/0.19/_toc.json b/docs/api/qiskit-ibm-runtime/0.19/_toc.json index 75455e690bb..13ddbd39b5b 100644 --- a/docs/api/qiskit-ibm-runtime/0.19/_toc.json +++ b/docs/api/qiskit-ibm-runtime/0.19/_toc.json @@ -1,5 +1,5 @@ { - "title": "Qiskit Runtime Client", + "title": "Qiskit Runtime client", "children": [ { "title": "API index", diff --git a/docs/api/qiskit-ibm-runtime/0.20/_toc.json b/docs/api/qiskit-ibm-runtime/0.20/_toc.json index 1b35490cc01..799de7ee5d8 100644 --- a/docs/api/qiskit-ibm-runtime/0.20/_toc.json +++ b/docs/api/qiskit-ibm-runtime/0.20/_toc.json @@ -1,5 +1,5 @@ { - "title": "Qiskit Runtime Client", + "title": "Qiskit Runtime client", "children": [ { "title": "API index", diff --git a/docs/api/qiskit-ibm-runtime/0.21/_toc.json b/docs/api/qiskit-ibm-runtime/0.21/_toc.json index b501f750864..5664ec5327f 100644 --- a/docs/api/qiskit-ibm-runtime/0.21/_toc.json +++ b/docs/api/qiskit-ibm-runtime/0.21/_toc.json @@ -1,5 +1,5 @@ { - "title": "Qiskit Runtime Client", + "title": "Qiskit Runtime client", "children": [ { "title": "API index", diff --git a/docs/api/qiskit-ibm-runtime/0.22/_toc.json b/docs/api/qiskit-ibm-runtime/0.22/_toc.json index e817fdb25c5..93fd1d0d80b 100644 --- a/docs/api/qiskit-ibm-runtime/0.22/_toc.json +++ b/docs/api/qiskit-ibm-runtime/0.22/_toc.json @@ -1,5 +1,5 @@ { - "title": "Qiskit Runtime Client", + "title": "Qiskit Runtime client", "children": [ { "title": "API index", diff --git a/docs/api/qiskit-ibm-runtime/0.23/_toc.json b/docs/api/qiskit-ibm-runtime/0.23/_toc.json index ca49f201bb6..f05f600f36c 100644 --- a/docs/api/qiskit-ibm-runtime/0.23/_toc.json +++ b/docs/api/qiskit-ibm-runtime/0.23/_toc.json @@ -1,5 +1,5 @@ { - "title": "Qiskit Runtime Client", + "title": "Qiskit Runtime client", "children": [ { "title": "API index", diff --git a/docs/api/qiskit-ibm-runtime/0.24/_toc.json b/docs/api/qiskit-ibm-runtime/0.24/_toc.json index 9724fd935f9..ca38c569437 100644 --- a/docs/api/qiskit-ibm-runtime/0.24/_toc.json +++ b/docs/api/qiskit-ibm-runtime/0.24/_toc.json @@ -1,5 +1,5 @@ { - "title": "Qiskit Runtime Client", + "title": "Qiskit Runtime client", "children": [ { "title": "API index", diff --git a/docs/api/qiskit-ibm-runtime/0.25/_toc.json b/docs/api/qiskit-ibm-runtime/0.25/_toc.json index 302b32024e9..44b3b1af875 100644 --- a/docs/api/qiskit-ibm-runtime/0.25/_toc.json +++ b/docs/api/qiskit-ibm-runtime/0.25/_toc.json @@ -1,5 +1,5 @@ { - "title": "Qiskit Runtime Client", + "title": "Qiskit Runtime client", "children": [ { "title": "API index", diff --git a/docs/api/qiskit-ibm-runtime/0.26/_toc.json b/docs/api/qiskit-ibm-runtime/0.26/_toc.json index 23fc2ef84ff..4b695261479 100644 --- a/docs/api/qiskit-ibm-runtime/0.26/_toc.json +++ b/docs/api/qiskit-ibm-runtime/0.26/_toc.json @@ -1,5 +1,5 @@ { - "title": "Qiskit Runtime Client", + "title": "Qiskit Runtime client", "children": [ { "title": "API index", diff --git a/docs/api/qiskit-ibm-runtime/0.27/_toc.json b/docs/api/qiskit-ibm-runtime/0.27/_toc.json index b0b59b20933..4ee426fd369 100644 --- a/docs/api/qiskit-ibm-runtime/0.27/_toc.json +++ b/docs/api/qiskit-ibm-runtime/0.27/_toc.json @@ -1,5 +1,5 @@ { - "title": "Qiskit Runtime Client", + "title": "Qiskit Runtime client", "children": [ { "title": "API index", diff --git a/docs/api/qiskit-ibm-runtime/0.28/_toc.json b/docs/api/qiskit-ibm-runtime/0.28/_toc.json index 02419893903..8bde9c06dbc 100644 --- a/docs/api/qiskit-ibm-runtime/0.28/_toc.json +++ b/docs/api/qiskit-ibm-runtime/0.28/_toc.json @@ -1,5 +1,5 @@ { - "title": "Qiskit Runtime Client", + "title": "Qiskit Runtime client", "children": [ { "title": "API index", diff --git a/docs/api/qiskit-ibm-runtime/0.29/_toc.json b/docs/api/qiskit-ibm-runtime/0.29/_toc.json index 107d03ad825..ef2168eb408 100644 --- a/docs/api/qiskit-ibm-runtime/0.29/_toc.json +++ b/docs/api/qiskit-ibm-runtime/0.29/_toc.json @@ -1,5 +1,5 @@ { - "title": "Qiskit Runtime Client", + "title": "Qiskit Runtime client", "children": [ { "title": "API index", diff --git a/docs/api/qiskit-ibm-runtime/0.30/_toc.json b/docs/api/qiskit-ibm-runtime/0.30/_toc.json index 2b9e3e24e62..66137e22147 100644 --- a/docs/api/qiskit-ibm-runtime/0.30/_toc.json +++ b/docs/api/qiskit-ibm-runtime/0.30/_toc.json @@ -1,5 +1,5 @@ { - "title": "Qiskit Runtime Client", + "title": "Qiskit Runtime client", "children": [ { "title": "API index", diff --git a/docs/api/qiskit-ibm-runtime/_toc.json b/docs/api/qiskit-ibm-runtime/_toc.json index 71b17bcb038..3eed46cb896 100644 --- a/docs/api/qiskit-ibm-runtime/_toc.json +++ b/docs/api/qiskit-ibm-runtime/_toc.json @@ -1,5 +1,5 @@ { - "title": "Qiskit Runtime Client", + "title": "Qiskit Runtime client", "children": [ { "title": "API index", diff --git a/docs/api/qiskit-ibm-runtime/dev/_toc.json b/docs/api/qiskit-ibm-runtime/dev/_toc.json index 09b931e25ae..c9033005ab9 100644 --- a/docs/api/qiskit-ibm-runtime/dev/_toc.json +++ b/docs/api/qiskit-ibm-runtime/dev/_toc.json @@ -1,5 +1,5 @@ { - "title": "Qiskit Runtime Client", + "title": "Qiskit Runtime client", "children": [ { "title": "API index", diff --git a/docs/api/qiskit-ibm-runtime/release-notes.mdx b/docs/api/qiskit-ibm-runtime/release-notes.mdx index 668c2f793d3..0a7c3865d45 100644 --- a/docs/api/qiskit-ibm-runtime/release-notes.mdx +++ b/docs/api/qiskit-ibm-runtime/release-notes.mdx @@ -1,12 +1,12 @@ --- -title: Qiskit Runtime Client release notes -description: Changes made to Qiskit Runtime Client +title: Qiskit Runtime client release notes +description: Changes made to Qiskit Runtime client in_page_toc_max_heading_level: 2 --- -# Qiskit Runtime Client release notes +# Qiskit Runtime client release notes diff --git a/docs/guides/latest-updates.mdx b/docs/guides/latest-updates.mdx index 45d83412a8a..7e91d26559c 100644 --- a/docs/guides/latest-updates.mdx +++ b/docs/guides/latest-updates.mdx @@ -35,9 +35,9 @@ For more details, read the post about the release on the [IBM Quantum blog](http {/* use url format /api/qiskit/release-notes/X.X to link to the specific X.X version of the release notes */} -### Qiskit Runtime Client 0.28.0 +### Qiskit Runtime client 0.28.0 -*To see the release notes for all versions, visit the [Qiskit Runtime Client release notes](/api/qiskit-ibm-runtime/release-notes).* +*To see the release notes for all versions, visit the [Qiskit Runtime client release notes](/api/qiskit-ibm-runtime/release-notes).* **Highlights from the 0.28.0 (2024-08-15) version release** @@ -53,7 +53,7 @@ For more details, read the post about the release on the [IBM Quantum blog](http See the full [0.28.0 release notes](/api/qiskit-ibm-runtime/release-notes#0280-2024-08-15). {/* use url format /api/qiskit-ibm-runtime/release-notes#0XYZ to link to the specific 0.XY.Z version of the release notes */} -### Qiskit Transpiler Service Client v0.3.0 +### Qiskit Transpiler Service client v0.3.0 We’re pleased to share that the beta release of the Qiskit Transpiler Service is now available to all IBM Quantum™ Premium Plan users. @@ -63,7 +63,7 @@ On the IBM Quantum blog, we take a deep dive into the new beta release with a sp {/* no other release notes available yet */} -### Qiskit Functions Catalog Service Client v0.1.0 +### Qiskit Functions Catalog Service client v0.1.0 Introducing the Qiskit Functions preview, for IBM Quantum Premium Plan users. To get started, `pip install qiskit-ibm-catalog`, and explore the [Qiskit Functions documentation](/guides/functions). With the Qiskit Functions Catalog client, you can submit workloads to abstracted services designed to accelerate your research - sign in with your existing IBM Quantum Platform credentials. @@ -189,7 +189,7 @@ Updates to the infrastructure and design of the documentation include the follow - We fixed GitHub source code links for functions using decorators - thanks to the open-source contributor who opened an issue for this! - When you change the version in the left sidebar of the API reference docs, you arrive at the equivalent page in the new version. If the page does not exist in the new version, you land on the index page. - We improved the design and color of the warning banner for when you access outdated API pages to make it more obvious that newer docs are available. The banner persists as you scroll down the page. -- Source code links and release notes have been added to the [Qiskit Transpiler Service Client API documentation](/api/qiskit-ibm-transpiler). +- Source code links and release notes have been added to the [Qiskit Transpiler Service client API documentation](/api/qiskit-ibm-transpiler). - Code blocks that write to a file now display the file path; see examples in this [Qiskit Serverless guide](/guides/serverless-first-program). - Tips to use the Qiskit Code Assistant now appear throughout the guides. diff --git a/scripts/js/lib/api/Pkg.ts b/scripts/js/lib/api/Pkg.ts index 57aee16935a..c0b1624bea6 100644 --- a/scripts/js/lib/api/Pkg.ts +++ b/scripts/js/lib/api/Pkg.ts @@ -107,7 +107,7 @@ export class Pkg { if (name === "qiskit-ibm-runtime") { return new Pkg({ ...args, - title: "Qiskit Runtime Client", + title: "Qiskit Runtime client", githubSlug: "qiskit/qiskit-ibm-runtime", kebabCaseAndShortenUrls: false, }); @@ -116,7 +116,7 @@ export class Pkg { if (name === "qiskit-ibm-transpiler") { return new Pkg({ ...args, - title: "Qiskit Transpiler Service Client", + title: "Qiskit Transpiler Service client", githubSlug: "qiskit/qiskit-ibm-transpiler", kebabCaseAndShortenUrls: false, }); @@ -125,7 +125,7 @@ export class Pkg { if (name === "qiskit-addon-obp") { return new Pkg({ ...args, - title: "Operator Backpropagation", + title: "Operator backpropagation", githubSlug: "Qiskit/qiskit-addon-obp", kebabCaseAndShortenUrls: true, }); @@ -133,7 +133,7 @@ export class Pkg { if (name === "qiskit-addon-mpf") { return new Pkg({ ...args, - title: "Multi-Product Formulas", + title: "Multi-product formulas", githubSlug: "Qiskit/qiskit-addon-mpf", kebabCaseAndShortenUrls: true, }); @@ -141,7 +141,7 @@ export class Pkg { if (name === "qiskit-addon-sqd") { return new Pkg({ ...args, - title: "Sample-Based Quantum Diagonalization", + title: "Sample-based quantum diagonalization", githubSlug: "Qiskit/qiskit-addon-sqd", kebabCaseAndShortenUrls: true, }); @@ -149,7 +149,7 @@ export class Pkg { if (name === "qiskit-addon-cutting") { return new Pkg({ ...args, - title: "Circuit Cutting", + title: "Circuit cutting", githubSlug: "Qiskit/qiskit-addon-cutting", kebabCaseAndShortenUrls: true, }); @@ -157,7 +157,7 @@ export class Pkg { if (name === "qiskit-addon-utils") { return new Pkg({ ...args, - title: "Qiskit Addon Utilities", + title: "Qiskit addon utilities", githubSlug: "Qiskit/qiskit-addon-utils", kebabCaseAndShortenUrls: true, }); From 0791c334f8024753a0f32ddf504db794c30e2893 Mon Sep 17 00:00:00 2001 From: Frank Harkins Date: Tue, 29 Oct 2024 14:17:38 +0000 Subject: [PATCH 31/32] Add linting with ruff (#2197) Adds linting and formatting with [Ruff](https://docs.astral.sh/ruff). This caught a couple of undefined variables, but it also enforces consistent code styling across our code examples. You may find it easier to review this PR commit-wise. --- .github/workflows/main.yml | 18 +++----------- docs/guides/circuit-library.ipynb | 4 ++-- docs/guides/construct-circuits.ipynb | 4 ++-- docs/guides/create-transpiler-plugin.ipynb | 1 - docs/guides/custom-backend.ipynb | 8 +++---- .../defaults-and-configuration-options.ipynb | 1 - docs/guides/hello-world.ipynb | 3 --- docs/guides/primitive-input-output.ipynb | 9 ++++--- docs/guides/pulse.ipynb | 6 ++--- docs/guides/q-ctrl-optimization-solver.ipynb | 5 ++-- docs/guides/qedma-qesem.ipynb | 16 +++++++++++++ docs/guides/qunasys-quri-chemistry.ipynb | 24 +++++++------------ docs/guides/serverless-manage-resources.ipynb | 3 +-- docs/guides/simulate-with-qiskit-aer.ipynb | 1 - docs/guides/transpiler-stages.ipynb | 5 ---- docs/guides/visualize-results.ipynb | 2 +- tox.ini | 13 ++++++---- 17 files changed, 54 insertions(+), 69 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f4423447fd1..ed9fc9b2c45 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -51,12 +51,6 @@ jobs: with: files: docs/**/*.{md,mdx,ipynb} separator: "\n" - - name: Get all changed notebooks - id: all-changed-notebooks - uses: tj-actions/changed-files@af2816c65436325c50621100d67f6e853cd1b0f1 - with: - files: "docs/**/*.ipynb" - separator: "\n" - name: Pull preview image if: steps.all-changed-files.outputs.any_changed == 'true' @@ -80,17 +74,11 @@ jobs: shell: python run: | import subprocess, sys - files = """${{ steps.all-changed-notebooks.outputs.all_changed_notebooks }}""" - args = ["tox", "-e", "lint", "--"] + files.split("\n") try: - subprocess.run(args, check=True) + subprocess.run(["tox", "-e", "lint"], check=True) except: print( - "To fix, install `tox` and run `tox -e fix`.\n\n" - "Alternatively, you can download the fixed notebook from CI by going to this PR's " - "\"Execute notebooks\" job, clicking \"Summary\" on the upper-left " - "of this page, and downloading the \"Executed notebooks\" artifact." - "\n\n" - "For more information, see https://github.com/Qiskit/documentation/blob/main/README.md#lint-notebooks" + "Error while linting notebook. " + "To fix, install tox and run `tox -e fix`." ) sys.exit(1) diff --git a/docs/guides/circuit-library.ipynb b/docs/guides/circuit-library.ipynb index c6f897dfbd5..4e184134ece 100644 --- a/docs/guides/circuit-library.ipynb +++ b/docs/guides/circuit-library.ipynb @@ -370,10 +370,10 @@ ], "source": [ "from qiskit.circuit.library import CDKMRippleCarryAdder\n", - "adder = CDKMRippleCarryAdder(3) # Adder of 3-bit numbers\n", - "\n", "from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister\n", "\n", + "adder = CDKMRippleCarryAdder(3) # Adder of 3-bit numbers\n", + "\n", "# Create the number A=2\n", "reg_a = QuantumRegister(3, 'a')\n", "number_a = QuantumCircuit(reg_a)\n", diff --git a/docs/guides/construct-circuits.ipynb b/docs/guides/construct-circuits.ipynb index 4dc16cdde8c..2cc8339e5f6 100644 --- a/docs/guides/construct-circuits.ipynb +++ b/docs/guides/construct-circuits.ipynb @@ -380,14 +380,14 @@ } ], "source": [ + "from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager\n", "from qiskit.circuit import Parameter\n", + "\n", "angle = Parameter(\"angle\") # undefined number\n", "\n", "# Create and optimize circuit once\n", "qc = QuantumCircuit(1)\n", "qc.rx(angle, 0)\n", - "\n", - "from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager\n", "qc = generate_preset_pass_manager(optimization_level=3, basis_gates=['u', 'cx']).run(qc)\n", "\n", "qc.draw(\"mpl\")" diff --git a/docs/guides/create-transpiler-plugin.ipynb b/docs/guides/create-transpiler-plugin.ipynb index 791847ac363..99dedaece06 100644 --- a/docs/guides/create-transpiler-plugin.ipynb +++ b/docs/guides/create-transpiler-plugin.ipynb @@ -178,7 +178,6 @@ "metadata": {}, "outputs": [], "source": [ - "from qiskit.transpiler.passmanager_config import PassManagerConfig\n", "from qiskit.transpiler.preset_passmanagers.plugin import PassManagerStagePluginManager\n", "\n", "# Initialize the plugin manager\n", diff --git a/docs/guides/custom-backend.ipynb b/docs/guides/custom-backend.ipynb index 3061b170624..58e4f05271f 100644 --- a/docs/guides/custom-backend.ipynb +++ b/docs/guides/custom-backend.ipynb @@ -77,9 +77,9 @@ "from qiskit.providers import BackendV2, Options\n", "from qiskit.transpiler import Target, InstructionProperties\n", "from qiskit.circuit.library import XGate, SXGate, RZGate, CZGate, ECRGate\n", - "from qiskit.circuit import Measure, Delay, Parameter, IfElseOp, Reset\n", + "from qiskit.circuit import Measure, Delay, Parameter, Reset\n", "from qiskit import QuantumCircuit, transpile\n", - "from qiskit.visualization import plot_gate_map, plot_coupling_map\n", + "from qiskit.visualization import plot_gate_map\n", "\n", "\n", "\n", @@ -344,7 +344,6 @@ ], "source": [ "from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager\n", - "from qiskit import QuantumCircuit\n", "\n", "num_qubits = 50\n", "ghz = QuantumCircuit(num_qubits)\n", @@ -458,7 +457,6 @@ " self._target.add_instruction(Delay(Parameter(\"t\")), delay_props)\n", " cz_props = {}\n", " for edge in graph.edge_list():\n", - " offset = i * len(graph)\n", " cz_props[edge] = InstructionProperties(\n", " error=rng.uniform(7e-4, 5e-3), duration=rng.uniform(1e-8, 9e-7)\n", " )\n", @@ -529,7 +527,7 @@ "full_device_bv.h(range(num_qubits))\n", "full_device_bv.cx(range(num_qubits - 1), num_qubits - 1)\n", "full_device_bv.h(range(num_qubits))\n", - "full_device_bv.measure(range(num_qubits - 1), range(num_qubits - 1));\n", + "full_device_bv.measure(range(num_qubits - 1), range(num_qubits - 1))\n", "tqc = transpile(full_device_bv, backend, optimization_level=3)\n", "op_counts = tqc.count_ops()\n", "print(f\"CZ gates: {op_counts['cz']}\")\n", diff --git a/docs/guides/defaults-and-configuration-options.ipynb b/docs/guides/defaults-and-configuration-options.ipynb index 4686d366bed..1b39d492b44 100644 --- a/docs/guides/defaults-and-configuration-options.ipynb +++ b/docs/guides/defaults-and-configuration-options.ipynb @@ -39,7 +39,6 @@ "source": [ "from qiskit import QuantumCircuit\n", "from qiskit.circuit.library import GroverOperator, Diagonal\n", - "from qiskit_ibm_runtime import QiskitRuntimeService\n", "from qiskit_ibm_runtime.fake_provider import FakeSherbrooke\n", "\n", "# Create circuit to test transpiler on\n", diff --git a/docs/guides/hello-world.ipynb b/docs/guides/hello-world.ipynb index 25a3745c048..0ab8156077f 100644 --- a/docs/guides/hello-world.ipynb +++ b/docs/guides/hello-world.ipynb @@ -152,7 +152,6 @@ "outputs": [], "source": [ "# Set up six different observables.\n", - "from qiskit.quantum_info import SparsePauliOp\n", "\n", "observables_labels = [\"IZ\", \"IX\", \"ZI\", \"XI\", \"ZZ\", \"XX\"]\n", "observables = [SparsePauliOp(label) for label in observables_labels]" @@ -247,7 +246,6 @@ ], "source": [ "# Construct the Estimator instance.\n", - "from qiskit_ibm_runtime import EstimatorV2 as Estimator\n", "\n", "estimator = Estimator(mode=backend)\n", "estimator.options.resilience_level = 1\n", @@ -618,7 +616,6 @@ ], "source": [ "import matplotlib.pyplot as plt\n", - "import numpy as np\n", "from qiskit_ibm_runtime import QiskitRuntimeService\n", "\n", "# data\n", diff --git a/docs/guides/primitive-input-output.ipynb b/docs/guides/primitive-input-output.ipynb index 5620db67f2f..52f36dc653b 100644 --- a/docs/guides/primitive-input-output.ipynb +++ b/docs/guides/primitive-input-output.ipynb @@ -57,10 +57,9 @@ "from qiskit_ibm_runtime import (\n", " EstimatorV2 as Estimator,\n", " SamplerV2 as Sampler,\n", - " QiskitRuntimeService,\n", ")\n", "from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager\n", - "from qiskit.quantum_info import Pauli, SparsePauliOp\n", + "from qiskit.quantum_info import SparsePauliOp\n", "import numpy as np\n", "\n", "# Instantiate runtime service and get\n", @@ -351,7 +350,7 @@ "print(f'The result of the submitted job had {len(result)} PUB and has a value:\\n {result}\\n')\n", "print(f'The associated PubResult of this job has the following DataBins:\\n {result[0].data}\\n')\n", "print(f'And this DataBin has attributes: {result[0].data.keys()}')\n", - "print(f'Recall that this shape is due to our array of parameter binding sets having shape (100,), combined with \\n\\\n", + "print('Recall that this shape is due to our array of parameter binding sets having shape (100,), combined with \\n\\\n", " our array of observables having shape (3, 1), where 2 is the number of parameters in the circuit.\\n')\n", "print(f'The expectation values measured from this PUB are: \\n{result[0].data.evs}')" ] @@ -482,11 +481,11 @@ ], "source": [ "# Print out the results metadata\n", - "print(f'The metadata of the PrimitiveResult is:')\n", + "print('The metadata of the PrimitiveResult is:')\n", "for key, val in result.metadata.items():\n", " print(f\"'{key}' : {val},\")\n", "\n", - "print(f'\\nThe metadata of the PubResult result is:')\n", + "print('\\nThe metadata of the PubResult result is:')\n", "for key, val in result[0].metadata.items():\n", " print(f\"'{key}' : {val},\")" ] diff --git a/docs/guides/pulse.ipynb b/docs/guides/pulse.ipynb index 1f1530c4f3f..e9ee5067718 100644 --- a/docs/guides/pulse.ipynb +++ b/docs/guides/pulse.ipynb @@ -331,11 +331,11 @@ } ], "source": [ + "from qiskit import QiskitError\n", + "\n", "circ = QuantumCircuit(2, 2)\n", "circ.append(custom_gate, [1])\n", "\n", - "\n", - "from qiskit import QiskitError\n", "try:\n", " circ = passmanager.run(circ)\n", "except QiskitError as e:\n", @@ -874,7 +874,7 @@ "metadata": {}, "outputs": [], "source": [ - "from qiskit.pulse import Acquire, AcquireChannel, MemorySlot\n", + "from qiskit.pulse import MemorySlot\n", "\n", "with pulse.build(backend) as schedule:\n", " pulse.acquire(1200, pulse.acquire_channel(0), MemorySlot(0))" diff --git a/docs/guides/q-ctrl-optimization-solver.ipynb b/docs/guides/q-ctrl-optimization-solver.ipynb index fe1b2a777ca..26ec48dc9f9 100644 --- a/docs/guides/q-ctrl-optimization-solver.ipynb +++ b/docs/guides/q-ctrl-optimization-solver.ipynb @@ -377,9 +377,8 @@ } ], "source": [ - "import numpy as np\n", "import networkx as nx\n", - "from sympy import symbols, Poly\n", + "from sympy import symbols, Poly, srepr\n", "\n", "# To change the weights, change the seed to any integer.\n", "rng_seed = 18\n", @@ -470,7 +469,7 @@ "source": [ "# Solve the problem\n", "mvc_job = solver.run(\n", - " problem=sympy.srepr(cost_function), instance=hub + \"/\" + group + \"/\" + project\n", + " problem=srepr(cost_function), instance=hub + \"/\" + group + \"/\" + project\n", ")" ] }, diff --git a/docs/guides/qedma-qesem.ipynb b/docs/guides/qedma-qesem.ipynb index 4778505d82c..7a33b04e84a 100644 --- a/docs/guides/qedma-qesem.ipynb +++ b/docs/guides/qedma-qesem.ipynb @@ -73,6 +73,22 @@ "Authenticate using your [IBM Quantum Platform API token](http://quantum.ibm.com/), and select the Qiskit Function as follows:" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "613c4d93", + "metadata": { + "tags": [ + "remove-cell" + ] + }, + "outputs": [], + "source": [ + "# This cell is hidden from users\n", + "# It stops the linter complaining about undefined variables\n", + "# ruff: noqa: F821" + ] + }, { "cell_type": "code", "execution_count": null, diff --git a/docs/guides/qunasys-quri-chemistry.ipynb b/docs/guides/qunasys-quri-chemistry.ipynb index d8ac7cee0e5..98e9bb387cd 100644 --- a/docs/guides/qunasys-quri-chemistry.ipynb +++ b/docs/guides/qunasys-quri-chemistry.ipynb @@ -357,14 +357,10 @@ ")\n", "\n", "while True:\n", - " try:\n", - " print(datetime.datetime.now(), job.status())\n", - " time.sleep(10)\n", - " if job.status() in [\"ERROR\", \"DONE\"]:\n", - " break\n", - " except:\n", - " print(\"Retrieve job status failed.\")\n", - " pass\n", + " print(datetime.datetime.now(), job.status())\n", + " if job.status() in [\"ERROR\", \"DONE\"]:\n", + " break\n", + " time.sleep(10)\n", "\n", "result = job.result()" ] @@ -556,14 +552,10 @@ "start = time.time()\n", "\n", "while True:\n", - " try:\n", - " print(datetime.datetime.now(), opt_job.status())\n", - " time.sleep(10)\n", - " if opt_job.status() in [\"ERROR\", \"DONE\"]:\n", - " break\n", - " except:\n", - " print(\"Retrieve job status failed.\")\n", - " pass\n", + " print(datetime.datetime.now(), opt_job.status())\n", + " if opt_job.status() in [\"ERROR\", \"DONE\"]:\n", + " break\n", + " time.sleep(10)\n", "\n", "opt_result = opt_job.result()" ] diff --git a/docs/guides/serverless-manage-resources.ipynb b/docs/guides/serverless-manage-resources.ipynb index 4dcd0973927..4066630ccb6 100644 --- a/docs/guides/serverless-manage-resources.ipynb +++ b/docs/guides/serverless-manage-resources.ipynb @@ -170,6 +170,7 @@ ], "source": [ "import tarfile\n", + "from qiskit_serverless import IBMServerlessClient\n", "\n", "# Create a tar\n", "filename = \"transpile_demo.tar\"\n", @@ -178,8 +179,6 @@ "file.close()\n", "\n", "# Upload the tar to Serverless data directory\n", - "from qiskit_serverless import IBMServerlessClient\n", - "\n", "serverless = IBMServerlessClient()\n", "serverless.file_upload(filename)" ] diff --git a/docs/guides/simulate-with-qiskit-aer.ipynb b/docs/guides/simulate-with-qiskit-aer.ipynb index a2319c8a220..bd3560a5ee6 100644 --- a/docs/guides/simulate-with-qiskit-aer.ipynb +++ b/docs/guides/simulate-with-qiskit-aer.ipynb @@ -221,7 +221,6 @@ } ], "source": [ - "from qiskit.quantum_info import hellinger_fidelity\n", "from qiskit_aer.primitives import SamplerV2 as Sampler\n", "\n", "measured_circuit = circuit.copy()\n", diff --git a/docs/guides/transpiler-stages.ipynb b/docs/guides/transpiler-stages.ipynb index 38d9980811e..9adf0d00470 100644 --- a/docs/guides/transpiler-stages.ipynb +++ b/docs/guides/transpiler-stages.ipynb @@ -411,11 +411,6 @@ } ], "source": [ - "from qiskit_ibm_runtime.fake_provider import FakeWashingtonV2\n", - "from qiskit_ibm_runtime import QiskitRuntimeService\n", - "from qiskit.transpiler.timing_constraints import TimingConstraints\n", - "\n", - "\n", "ghz = QuantumCircuit(5)\n", "ghz.h(0)\n", "ghz.cx(0, range(1, 5))\n", diff --git a/docs/guides/visualize-results.ipynb b/docs/guides/visualize-results.ipynb index 57d947cf7f1..99f92c14127 100644 --- a/docs/guides/visualize-results.ipynb +++ b/docs/guides/visualize-results.ipynb @@ -196,6 +196,7 @@ "from qiskit import QuantumCircuit\n", "from qiskit.quantum_info import SparsePauliOp\n", "from qiskit_aer.primitives import Estimator\n", + "from matplotlib import pyplot as plt\n", "\n", "# Simple estimation experiment to create results\n", "qc = QuantumCircuit(2)\n", @@ -209,7 +210,6 @@ "print(result)\n", "\n", "# Plot using Matplotlib\n", - "from matplotlib import pyplot as plt\n", "plt.bar(observables_labels, result.values)" ] }, diff --git a/tox.ini b/tox.ini index f37baaba626..7a1bb294010 100644 --- a/tox.ini +++ b/tox.ini @@ -11,10 +11,15 @@ setenv = PYDEVD_DISABLE_FILE_VALIDATION=1 commands = test-docs-notebooks {posargs} --config-path scripts/config/notebook-testing.toml [testenv:{lint,fix}] -deps = squeaky==0.7.0 -commands = - lint: squeaky --check --no-advice {posargs:docs} - fix: squeaky {posargs:docs} +deps = + squeaky==0.7.0 + ruff==0.7.1 + +commands = + lint: ruff check {posargs:docs} + lint: squeaky --check --no-advice {posargs:docs} + fix: squeaky {posargs:docs} + fix: ruff check --fix {posargs:docs} [testenv:nb-tester] deps = From 7f72cc8d598465e4328419f0d7bf771b6c55c9cb Mon Sep 17 00:00:00 2001 From: Rebecca Dimock <66339736+beckykd@users.noreply.github.com> Date: Tue, 29 Oct 2024 11:21:14 -0500 Subject: [PATCH 32/32] Update Sampler import (#2201) Closes #2176 I searched and didn't find any other improperly coded imports. Hopefully there aren't any more lurking in there! --- docs/guides/run-jobs-session.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/run-jobs-session.mdx b/docs/guides/run-jobs-session.mdx index b56c79955c7..afb275409b4 100644 --- a/docs/guides/run-jobs-session.mdx +++ b/docs/guides/run-jobs-session.mdx @@ -21,7 +21,7 @@ The way sessions are started within Qiskit Runtime has changed. **By 1 April 202 Before starting a session, you must [set up Qiskit Runtime](./install-qiskit) and initialize it as a service: ``` python -from qiskit_ibm_runtime import QiskitRuntimeService, Session, Sampler, Estimator +from qiskit_ibm_runtime import QiskitRuntimeService, Session, SamplerV2 as Sampler, EstimatorV2 as Estimator service = QiskitRuntimeService() ```

62Cqfr5ep^4#|hrHsSF!=GTe!Q1+SfJ&vo8JY5?zPvR%c<>+{Jw3?%be{ki zTRndK_?n@Sbu7I0APpEPc5{4cim`OaJ?64?XDaKARWB~?veUP^19KW!O(Ezjirs{~ z+W5J>-J@s-$|KTga*?s()DV(|;KiEJq6Bz9=h~bPgpMa{&`wkRH5yQl`Q0lu>)$Cd zRuO>cx4G1G55_;Dt%uSej~q>MsoYk`2h(O(+8+s0GSjS*63?@`tIJtG?$8 zI}YcRj`-{C?(T*Kz|p*PTjE(SE4AKf7Rf$M1g$akOZOM(Z@0952F zh=-Z+VT7HP`t(2Gskxky;}qiJc-f1JGz9VS|CbV%RcvBj?k^6mDf-Zrv zv0B`97cQsukyUwn5S)6qy`KH~rwRb&<@bkKGC?ZP1>A5!Dc-kr3!103z`=!JI}Z>5 zC**n6?qT1xE11|viStM8Zh;_^@%2(RC@ewD8Bhp>6d>ZYI3CJLXoA?sYh+9ZO`QNl zVR1Q7VaJRM#@vU)_MV8;ig@!T6J~4+FMKJ^=l9!%9iQ5mO3;epGZ1v0ya&wK4|FUH z8(_cd)ftc+25S5&p-^MJ_$(E&#%GW-ku(D_Slx;RvK^vA3Rt#v!$x(d%ARUuxQs#m zMJgZel{?uM?*&0C1o5SZw{(!z$Y=zM!?(0x>!yg(N2#drNc@Dung$Q8C9Z);0Ri88 zAm8k%nh!*rBL5w4v6XJMuo7S&*H^fRGyJm9y59xlGVY8B$h=zNdQcbOWFIK8$0GUw zqp(Bw?#@;uv~xUV_Pz@&q5`-x(@wT}R`S-*N+l)nja0B_O@>`kkl5QUH1wGh%J2s&*aOps1679|8?+`sNWV|_1o0$Tn>EO0 zNbUrwvEX+2MtH!s?P9 zWY27SeF0HXVLcfj9wWF;x8VMt@G6ma{~8RS0P)*>KROgUjo#jwlGuZWx9rI;Z&QHN zi0tpK0i`WMMwH~BSD`@?nkjB_b>!*^BNh#Ls&}q*1P4k*Q*W=9ZBLF0_(i%u z1Ei7&>8828T?tf?%26{Wkk&qhv*aOh1>&6=ochXGxP-{cQK;bO8CE0U1hCVHwVtPE z8NAX)bNqNB*m)NGc#j6rl8aVsVxYW_%m&^OBo0-UCa0vV0L-(2BwR7^S}!tyJzZcUKb+dRA{!R$4D!VhFbC{1TY3p?UK0Osc7!+j=%^U;g@mi6Qr<$*>d zG5{u&)@u}CfJo%X^dYTX7ju^7-UJ&3B^3XNTHLeVp$Qt-@O{sd{Z9g%OaoF^xC|=6 zk6)wpVJk+>$$%O%Vam~0?W6H&gKltC+|<ByU*+^nqMpX8_%I*y1# z$J?u4hhPk7lS84JUjSU2P6-$9gf|M(0K&lDw-YhJGk4%5C02E^FTEK literal 15879 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 CUfeFA+ugagO`_t(5!4o^a9U=D@4=p? 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 diff --git a/public/images/api/qiskit/dev/qiskit-visualization-timeline_drawer-2.png b/public/images/api/qiskit/dev/qiskit-visualization-timeline_drawer-2.png index 06772a17b83b5077b66608d4cb48a7d629bfe1c8..0b753b1abce1e4e4453e547d605066bdc0070b39 100644 GIT binary patch literal 8323 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 K?-$=S5Bwh+^@$?@ literal 8008 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 diff --git a/public/images/api/qiskit/dev/qiskit-visualization-timeline_drawer-3.png b/public/images/api/qiskit/dev/qiskit-visualization-timeline_drawer-3.png index e0d96143c340a758d5574a5906374d795380133f..2faf303b6ea2322a7606fa7ca29be6d93ed072aa 100644 GIT binary patch literal 26706 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 literal 26427 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 Ujvq`E2Vt7VQ(e_cWxF^31Bl;NAOHXW delta 6689 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 x;xIdL=8V3PJFh5Cmt5iVS{J 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 A$N&HU literal 23831 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 diff --git a/public/images/api/qiskit/dev/transpiler-17.png b/public/images/api/qiskit/dev/transpiler-17.png index 55f03678d17a77f737b0333fbeed4949cc99f3d5..4ed1ff5a588b6515450ab778c0491e24aa18b7ce 100644 GIT binary patch literal 18840 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