diff --git a/README.md b/README.md
index 3e617f6afd7..043452f1adc 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@ Read on for more information about how to support this project:
### 1. Report bugs, inaccuracies or general content issues
-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:
+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 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 IBM 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).
@@ -498,3 +498,32 @@ To display a qasm operation (like a not gate), you can use the `Operation` compo
```mdx
```
+
+## 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.
+
+Some companies require a special attribution notice. View a list of the companies to include in a special attribution notice at the [Special attributions](https://www.ibm.com/legal/copyright-trademark#special) section of the IBM Legal site.
+
+
+A (non-exhaustive) list of trademarked names found in our docs:
+
+- IBM®
+- IBM Cloud®
+- IBM Quantum™
+- Qiskit®
+
+
+See the Usage section of the IBM Quantum Experience Guide for guidance on when to use IBM and when to use IBM Quantum.
+
+### Trademark symbols
+
+To create the symbols in markdown:
+
+Use `®` to get ® for registered trademarks.
+
+use `™` to get ™ for nonregistered trademarks.
+
+
+ Do not include trademarks in headings. The code will display rather than the symbol.
+
Do not try to upgrade an existing Python virtual environment to Qiskit 1.0 in-place.
@@ -397,7 +397,7 @@ Further complications aren't necessary to understand the problems described in t
### The old Qiskit structure
-Historically, Qiskit was comprised of many Python distributions: `qiskit-terra`, the compiler core; `qiskit-aer`, the high-performance simulator; the original IBM Quantum provider; and several now-obsolete packages providing particular exploratory algorithmic or experiment-running features.
+Historically, Qiskit was comprised of many Python distributions: `qiskit-terra`, the compiler core; `qiskit-aer`, the high-performance simulator; the original IBM Quantum™ provider; and several now-obsolete packages providing particular exploratory algorithmic or experiment-running features.
For user ease, we also provided a Python distribution called `qiskit`, which contained no code of its own, but caused all the other components to be installed.
We called this the _metapackage_, by analogy to similar concepts in other package managers.
The code of the core of Qiskit lived in `qiskit-terra`, which owned the root of the Python package `qiskit`. In other words, `qiskit-terra` controlled what happened when you ran `import qiskit`.
@@ -467,7 +467,7 @@ Exit Jupyter, activate the Qiskit virtual environment on the command line, run `
### `import qiskit` succeeds, but trying to do anything returns "AttributeError: module 'qiskit' has no attribute '...'"
-This likely means that your environment had an old version of Qiskit in it alongside a package that extended its namespace (such as old versions of Qiskit Aer, or the long-obsolete Qiskit IBMQ Provider), and then Qiskit was uninstalled.
+This likely means that your environment had an old version of Qiskit in it alongside a package that extended its namespace (such as old versions of Qiskit Aer, or the long-obsolete Qiskit IBM Q® Provider), and then Qiskit was uninstalled.
The easiest thing to do is to start a new virtual environment, and only install recent, non-obsolete packages into it.
If you have just started a new virtual environment, or you're sure that legacy packages are not the problem, make sure that your current working directory (the directory your shell session was in when you launched Python / Jupyter) does not contain a folder called `qiskit`.
diff --git a/docs/api/migration-guides/qiskit-algorithms-module.mdx b/docs/api/migration-guides/qiskit-algorithms-module.mdx
index a8e3490a3d7..338458a363d 100644
--- a/docs/api/migration-guides/qiskit-algorithms-module.mdx
+++ b/docs/api/migration-guides/qiskit-algorithms-module.mdx
@@ -5,7 +5,7 @@ description: Use the new interface for `qiskit.algorithms`
# Algorithms migration guide
- In Qiskit 0.44 and later releases, the `qiskit.algorithms` module has been superseded by a new standalone library, `qiskit_algorithms`,
+ In Qiskit® 0.44 and later releases, the `qiskit.algorithms` module has been superseded by a new standalone library, `qiskit_algorithms`,
available on [GitHub](https://github.com/qiskit-community/qiskit-algorithms) and
[PyPi](https://pypi.org/project/qiskit-algorithms). The `qiskit.algorithms` module was migrated to a
separate package in order to clarify the purpose of Qiskit and make a distinction between the tools and libraries built on top of it.
@@ -86,7 +86,7 @@ Once you know which primitive you want to use, choose the primitive implementati
* For running on quantum hardware choose from these options:
- - Access services with native primitive implementations, such as the IBM Qiskit Runtime service by using [`qiskit_ibm_runtime.Sampler`](../qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler) and [`qiskit_ibm_runtime.Estimator`.](../qiskit-ibm-runtime/qiskit_ibm_runtime.Estimator)
+ - Access services with native primitive implementations, such as the Qiskit Runtime service by using [`qiskit_ibm_runtime.Sampler`](../qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler) and [`qiskit_ibm_runtime.Estimator`.](../qiskit-ibm-runtime/qiskit_ibm_runtime.Estimator)
- Wrap any system with `Backend` primitives ([`qiskit.primitives.BackendSampler`](../qiskit/qiskit.primitives.BackendSampler) and [`qiskit.primitives.BackendEstimator`](../qiskit/qiskit.primitives.BackendEstimator)). These wrappers implement a primitive interface on top of a backend that only supports `backend.run()`.
For detailed information and examples, particularly on the use of the `Backend` primitives, refer to
diff --git a/docs/api/migration-guides/qiskit-opflow-module.mdx b/docs/api/migration-guides/qiskit-opflow-module.mdx
index ea2ea3d03e7..215d95698c4 100644
--- a/docs/api/migration-guides/qiskit-opflow-module.mdx
+++ b/docs/api/migration-guides/qiskit-opflow-module.mdx
@@ -8,7 +8,7 @@ description: Stop using the deprecated `qiskit.opflow` module
The new [`qiskit.primitives`](../qiskit/primitives), in combination with the [`qiskit.quantum_info`](../qiskit/quantum_info) module, have superseded
functionality of [`qiskit.opflow`](../qiskit/0.44/opflow), which is being deprecated.
-This migration guide contains instructions and code examples to migrate code that uses
+This migration guide contains instructions and code examples to migrate Qiskit® code that uses
the [`qiskit.opflow`](../qiskit/0.44/opflow) module to the [`qiskit.primitives`](../qiskit/primitives) and [`qiskit.quantum_info`](../qiskit/quantum_info) modules.
@@ -20,7 +20,7 @@ the [`qiskit.opflow`](../qiskit/0.44/opflow) module to the [`qiskit.primitives`]
Most references to the [`qiskit.primitives.Sampler`](../qiskit/qiskit.primitives.Sampler) or [`qiskit.primitives.Estimator`](../qiskit/qiskit.primitives.Estimator) in this guide
- can be replaced with instances of any primitive implementation. For example Aer primitives ([`qiskit_aer.primitives.Sampler`](https://qiskit.org/ecosystem/aer/stubs/qiskit_aer.primitives.Sampler.html)/[`qiskit_aer.primitives.Estimator`](https://qiskit.org/ecosystem/aer/stubs/qiskit_aer.primitives.Estimator.html)) or the IBM Qiskit Runtime primitives ([`qiskit_ibm_runtime.Sampler`](../qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler)/[`qiskit_ibm_runtime.Estimator`](../qiskit-ibm-runtime/qiskit_ibm_runtime.Estimator)).
+ can be replaced with instances of any primitive implementation. For example Aer primitives ([`qiskit_aer.primitives.Sampler`](https://qiskit.org/ecosystem/aer/stubs/qiskit_aer.primitives.Sampler.html)/[`qiskit_aer.primitives.Estimator`](https://qiskit.org/ecosystem/aer/stubs/qiskit_aer.primitives.Estimator.html)) or the Qiskit Runtime primitives ([`qiskit_ibm_runtime.Sampler`](../qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler)/[`qiskit_ibm_runtime.Estimator`](../qiskit-ibm-runtime/qiskit_ibm_runtime.Estimator)).
Specific systems can be wrapped with ([`qiskit.primitives.BackendSampler`](../qiskit/qiskit.primitives.BackendSampler), [`qiskit.primitives.BackendEstimator`](../qiskit/qiskit.primitives.BackendEstimator)) to also present primitive-compatible interfaces.
Certain classes, such as the
@@ -91,9 +91,9 @@ These were mainly used for didactic purposes or quick prototyping and can easily
[`qiskit.quantum_info`](../qiskit/quantum_info) class: [`qiskit.quantum_info.Pauli`](../qiskit/qiskit.quantum_info.Pauli), [`qiskit.quantum_info.Clifford`](../qiskit/qiskit.quantum_info.Clifford) or
[`qiskit.quantum_info.Statevector`](../qiskit/qiskit.quantum_info.Statevector).
-### 1-qubit paulis
+### Single-qubit Paulis
-The 1-qubit paulis were commonly used for algorithm testing, as they could be combined to create more complex operators
+The single-qubit Paulis were commonly used for algorithm testing, as they could be combined to create more complex operators
(for example, `0.39 * (I ^ Z) + 0.5 * (X ^ X)`).
These operations implicitly created operators of type [`qiskit.opflow.primitive_ops.PauliSumOp`](../qiskit/0.44/qiskit.opflow.primitive_ops.PauliSumOp), and can be replaced by
directly creating a corresponding [`qiskit.quantum_info.SparsePauliOp`](../qiskit/qiskit.quantum_info.SparsePauliOp), as shown in the following examples.
@@ -477,7 +477,7 @@ or [`qiskit.opflow.state_fns`](../qiskit/0.44/qiskit.opflow.state_fns). The [`qi
| Opflow | Alternative |
| --- | --- |
-| [`qiskit.opflow.list_ops.ListOp`](../qiskit/0.44/qiskit.opflow.list_ops.ListOp) | No direct replacement. This is the base class for operator lists. In general, these could be replaced with a Python `list`s. For [`qiskit.quantum_info.Pauli`](../qiskit/qiskit.quantum_info.Pauli) operators, there are a few alternatives, depending on the use case. One alternative is [`qiskit.quantum_info.PauliList`](../qiskit/qiskit.quantum_info.PauliList). |
+| [`qiskit.opflow.list_ops.ListOp`](../qiskit/0.44/qiskit.opflow.list_ops.ListOp) | No direct replacement. This is the base class for operator lists. In general, these could be replaced with a Python `list`. For [`qiskit.quantum_info.Pauli`](../qiskit/qiskit.quantum_info.Pauli) operators, there are a few alternatives, depending on the use case. One alternative is [`qiskit.quantum_info.PauliList`](../qiskit/qiskit.quantum_info.PauliList). |
| [`qiskit.opflow.list_ops.ComposedOp`](../qiskit/0.44/qiskit.opflow.list_ops.ComposedOp) | No direct replacement. Current workflows do not require composing states and operators within one object (no lazy evaluation). |
| [`qiskit.opflow.list_ops.SummedOp`](../qiskit/0.44/qiskit.opflow.list_ops.SummedOp) | No direct replacement. For [`qiskit.quantum_info.Pauli`](../qiskit/qiskit.quantum_info.Pauli) operators, use [`qiskit.quantum_info.SparsePauliOp`](../qiskit/qiskit.quantum_info.SparsePauliOp). |
| [`qiskit.opflow.list_ops.TensoredOp`](../qiskit/0.44/qiskit.opflow.list_ops.TensoredOp) | No direct replacement. For [`qiskit.quantum_info.Pauli`](../qiskit/qiskit.quantum_info.Pauli) operators, use [`qiskit.quantum_info.SparsePauliOp`](../qiskit/qiskit.quantum_info.SparsePauliOp). |
diff --git a/docs/api/migration-guides/qiskit-quantum-instance.mdx b/docs/api/migration-guides/qiskit-quantum-instance.mdx
index cdffe65faf6..9b8a2dd59b7 100644
--- a/docs/api/migration-guides/qiskit-quantum-instance.mdx
+++ b/docs/api/migration-guides/qiskit-quantum-instance.mdx
@@ -28,7 +28,7 @@ The remainder of this guide focused on the [`qiskit.utils.QuantumInstance.execut
[`qiskit.primitives`](../qiskit/primitives) migration path.
- **Background on the Qiskit primitives**
+ **Background on the Qiskit® primitives**
The Qiskit primitives are algorithmic abstractions that encapsulate system or simulator access for easy integration into algorithm workflows.
@@ -39,14 +39,14 @@ The remainder of this guide focused on the [`qiskit.utils.QuantumInstance.execut
wrappers for `backend.run()` that follow the primitives interface.
Providers can implement these primitives as subclasses of [`qiskit.primitives.BaseSampler`](../qiskit/qiskit.primitives.BaseSampler) and [`qiskit.primitives.BaseEstimator`](../qiskit/qiskit.primitives.BaseEstimator), respectively.
- IBM Qiskit Runtime ([`qiskit_ibm_runtime`](../qiskit-ibm-runtime/qiskit_ibm_runtime.QiskitRuntimeService)) and Aer ([`qiskit_aer.primitives`](https://qiskit.org/ecosystem/aer/apidocs/aer_primitives.html)) are examples of native implementations of primitives.
+ Qiskit Runtime ([`qiskit_ibm_runtime`](../qiskit-ibm-runtime/qiskit_ibm_runtime.QiskitRuntimeService)) and Aer ([`qiskit_aer.primitives`](https://qiskit.org/ecosystem/aer/apidocs/aer_primitives.html)) are examples of native implementations of primitives.
This guide uses the following naming convention:
- *Primitives* - Any Sampler or Estimator implementation using base classes [`qiskit.primitives.BackendSampler`](../qiskit/qiskit.primitives.BackendSampler) and a [`qiskit.primitives.BackendEstimator`](../qiskit/qiskit.primitives.BackendEstimator).
- *Reference primitives* - [`qiskit.primitives.Sampler`](../qiskit/qiskit.primitives.Sampler) and [`qiskit.primitives.Estimator`](../qiskit/qiskit.primitives.Estimator) are reference implementations that come with Qiskit.
- *Aer primitives* - The [Aer](https://qiskit.org/ecosystem/aer) primitive implementations [`qiskit_aer.primitives.Sampler`](https://qiskit.org/ecosystem/aer/stubs/qiskit_aer.primitives.Sampler.html) and [`qiskit_aer.primitives.Estimator`](https://qiskit.org/ecosystem/aer/stubs/qiskit_aer.primitives.Estimator.html).
- - *Qiskit Runtime primitives* - The IBM Qiskit Runtime primitive implementations [`qiskit_ibm_runtime.Sampler`](../qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler) and [`qiskit_ibm_runtime.Estimator`](../qiskit-ibm-runtime/qiskit_ibm_runtime.Estimator).
+ - *Qiskit Runtime primitives* - The Qiskit Runtime primitive implementations [`qiskit_ibm_runtime.Sampler`](../qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler) and [`qiskit_ibm_runtime.Estimator`](../qiskit-ibm-runtime/qiskit_ibm_runtime.Estimator).
- *`Backend` primitives* - Instances of [`qiskit.primitives.BackendSampler`](../qiskit/qiskit.primitives.BackendSampler) and [`qiskit.primitives.BackendEstimator`](../qiskit/qiskit.primitives.BackendEstimator). These allow any system to implement primitive interfaces.
diff --git a/docs/api/migration-guides/qiskit-runtime-examples.mdx b/docs/api/migration-guides/qiskit-runtime-examples.mdx
index 4293dd67329..66d2b4701cd 100644
--- a/docs/api/migration-guides/qiskit-runtime-examples.mdx
+++ b/docs/api/migration-guides/qiskit-runtime-examples.mdx
@@ -6,7 +6,7 @@ description: Examples of migrating from using backend.run to using Qiskit Runtim
# Migration examples
-Follow these examples to design a Qiskit Runtime algorithm.
+Follow these examples to design a Qiskit® Runtime algorithm.
## Use Estimator to design an algorithm
diff --git a/docs/api/migration-guides/qiskit-runtime-from-provider.mdx b/docs/api/migration-guides/qiskit-runtime-from-provider.mdx
index 626e2342776..fc867cbd93a 100644
--- a/docs/api/migration-guides/qiskit-runtime-from-provider.mdx
+++ b/docs/api/migration-guides/qiskit-runtime-from-provider.mdx
@@ -5,7 +5,7 @@ description: How to migrate `backend.run()` from Qiskit IBM Provider to Qiskit I
# Migrate `backend.run()` from `qiskit_ibm_provider` to `qiskit_ibm_runtime`
-The Qiskit Runtime interface includes two packages:
+The Qiskit® Runtime interface includes two packages:
Qiskit IBM Provider (the [`qiskit_ibm_provider`](../qiskit-ibm-provider) package) and
Qiskit IBM Runtime (the [`qiskit_ibm_runtime`](../qiskit-ibm-runtime) package). Until now,
primitives (`Sampler` and `Estimator`)
@@ -16,7 +16,7 @@ In the `qiskit-ibm-runtime` 0.15 release, we added support for running custom ci
so users can run all programs through Runtime.
This guide describes how to migrate code that implemented `IBMBackend.run()`
-using Qiskit IBM Provider to use Qiskit IBM Runtime instead.
+using qiskit_ibm_provider to use qiskit_ibm_runtime instead.
**Example 1: Straightforward execution of IBMBackend.run()**
diff --git a/docs/api/migration-guides/qiskit-runtime.mdx b/docs/api/migration-guides/qiskit-runtime.mdx
index d1bca44fe4c..8227c9c1a28 100644
--- a/docs/api/migration-guides/qiskit-runtime.mdx
+++ b/docs/api/migration-guides/qiskit-runtime.mdx
@@ -11,11 +11,11 @@ in_page_toc_max_heading_level: 2
This guide describes key patterns of behavior and use cases with code
examples to help you migrate code from the legacy `qiskit-ibmq-provider`
-package to use the Qiskit Runtime primitives.
+package to use the Qiskit® Runtime primitives.
## Overview
-There are two methods for accessing IBM Quantum systems. First, the `qiskit-ibm-provider` package provides the `backend.run()` interface, allowing direct access to IBM Quantum systems with no pre- or post-processing involved. This level of access is suitable for those users who want **precise control** over circuit execution and result processing. This level of access is needed for those at the level of kernel developer who are looking to develop, for example, circuit optimization routines or error mitigation techniques, or who want to characterize quantum systems.
+There are two methods for accessing IBM Quantum™ systems. First, the `qiskit-ibm-provider` package provides the `backend.run()` interface, allowing direct access to IBM Quantum systems with no pre- or post-processing involved. This level of access is suitable for those users who want **precise control** over circuit execution and result processing. This level of access is needed for those at the level of kernel developer who are looking to develop, for example, circuit optimization routines or error mitigation techniques, or who want to characterize quantum systems.
In contrast, Qiskit Runtime is designed to **streamline algorithm and application construction** by removing the need for users to understand technical hardware and low-level software details. Advanced processing techniques for error suppression and mitigation are automatically applied, giving users high-fidelity results without the burden of having to code these routines themselves. Sessions within Qiskit Runtime allow users to run iterative algorithm circuits back to back, or batch collections of circuits without having to re-queue each job. This results in more efficient quantum processor use and reduces the time users spend running complex computations.
diff --git a/docs/build/bit-ordering.mdx b/docs/build/bit-ordering.mdx
index 7559ba99fc8..91742f9fb4f 100644
--- a/docs/build/bit-ordering.mdx
+++ b/docs/build/bit-ordering.mdx
@@ -11,7 +11,7 @@ these bits both in computer memory and when displayed on-screen.
## Qiskit conventions
-Here's how Qiskit orders bits in different scenarios.
+Here's how Qiskit® orders bits in different scenarios.
### Quantum circuits
@@ -75,7 +75,7 @@ usually write numbers with the most significant digit on the left, and in
Qiskit, bit $n$ is interpreted as the most significant bit.
For example, the following cell defines a `Statevector` from a string of
-single-qubit states. In this case, qubit $0$ is in state $|{+}\rangle$, and
+single-qubit states. In this case, qubit $0$ is in state $|+\rangle$, and
qubit $1$ in state $|0\rangle$.
```python
diff --git a/docs/build/circuit-construction.ipynb b/docs/build/circuit-construction.ipynb
index ee33463c535..896c58cf2e6 100644
--- a/docs/build/circuit-construction.ipynb
+++ b/docs/build/circuit-construction.ipynb
@@ -13,7 +13,7 @@
"id": "c50d8e43-ae82-4e41-8d17-a37332d1bf6d",
"metadata": {},
"source": [
- "This page takes a closer look at Qiskit's [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit) class, including some more advanced methods you can use to create quantum circuits."
+ "This page takes a closer look at the [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit) class in Qiskit®, including some more advanced methods you can use to create quantum circuits."
]
},
{
@@ -107,7 +107,7 @@
}
],
"source": [
- "qc.draw(\"mpl\")"
+ "qc.draw(\"mpl\", style=\"iqp\")"
]
},
{
@@ -138,7 +138,7 @@
],
"source": [
"# Draw definition circuit of 0th instruction in `qc`\n",
- "qc.data[0].operation.definition.draw(\"mpl\")"
+ "qc.data[0].operation.definition.draw(\"mpl\", style=\"iqp\")"
]
},
{
@@ -191,7 +191,7 @@
" HGate(), # New HGate instruction\n",
" [0] # Apply to qubit 0\n",
")\n",
- "qc.draw(\"mpl\")"
+ "qc.draw(\"mpl\", style=\"iqp\")"
]
},
{
@@ -234,7 +234,7 @@
"\n",
"# compose qubits (0, 1) of qc_a to qubits (1, 3) of qc_b respectively\n",
"combined = qc_a.compose(qc_b, qubits=[1, 3])\n",
- "combined.draw(\"mpl\")"
+ "combined.draw(\"mpl\", style=\"iqp\")"
]
},
{
@@ -266,7 +266,7 @@
"source": [
"inst = qc_b.to_instruction()\n",
"qc_a.append(inst, [1, 3])\n",
- "qc_a.draw(\"mpl\")"
+ "qc_a.draw(\"mpl\", style=\"iqp\")"
]
},
{
@@ -298,7 +298,7 @@
"source": [
"gate = qc_b.to_gate().control()\n",
"qc_a.append(gate, [0, 1, 3])\n",
- "qc_a.draw(\"mpl\")"
+ "qc_a.draw(\"mpl\", style=\"iqp\")"
]
},
{
@@ -332,7 +332,7 @@
}
],
"source": [
- "qc_a.decompose().draw(\"mpl\")"
+ "qc_a.decompose().draw(\"mpl\", style=\"iqp\")"
]
},
{
@@ -374,7 +374,7 @@
"from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager\n",
"qc = generate_preset_pass_manager(3, basis_gates=['u', 'cx']).run(qc)\n",
"\n",
- "qc.draw(\"mpl\")"
+ "qc.draw(\"mpl\", style=\"iqp\")"
]
},
{
@@ -410,7 +410,7 @@
" qc.assign_parameters({ angle: value })\n",
" )\n",
"\n",
- "circuits[0].draw(\"mpl\")"
+ "circuits[0].draw(\"mpl\", style=\"iqp\")"
]
},
{
diff --git a/docs/build/circuit-library.ipynb b/docs/build/circuit-library.ipynb
index 98cf0c2f45a..5e0f6c33d9c 100644
--- a/docs/build/circuit-library.ipynb
+++ b/docs/build/circuit-library.ipynb
@@ -14,7 +14,7 @@
"id": "6f257ff9-15c4-48d8-9503-7f0ab16a91b2",
"metadata": {},
"source": [
- "Qiskit includes a library of popular circuits to use as building blocks in your own programs. Using pre-defined circuits saves time researching, writing code, and debugging. The library includes popular circuits in quantum computing, circuits that are difficult to simulate classically, and circuits useful for quantum hardware benchmarking.\n",
+ "Qiskit® includes a library of popular circuits to use as building blocks in your own programs. Using pre-defined circuits saves time researching, writing code, and debugging. The library includes popular circuits in quantum computing, circuits that are difficult to simulate classically, and circuits useful for quantum hardware benchmarking.\n",
"\n",
"This page lists the different circuit categories the library provides. For a full list of circuits, see the [circuit library API documentation](/api/qiskit/circuit_library)."
]
@@ -54,7 +54,7 @@
"source": [
"from qiskit.circuit.library import TwoLocal\n",
"two_local = TwoLocal(3, 'rx', 'cz')\n",
- "two_local.decompose().draw('mpl')"
+ "two_local.decompose().draw('mpl', style=\"iqp\")"
]
},
{
@@ -114,7 +114,7 @@
],
"source": [
"bound_circuit = two_local.assign_parameters({ p: 0 for p in two_local.parameters})\n",
- "bound_circuit.decompose().draw('mpl')"
+ "bound_circuit.decompose().draw('mpl', style=\"iqp\")"
]
},
{
@@ -165,7 +165,7 @@
"feature_map = ZZFeatureMap(feature_dimension=len(features))\n",
"\n",
"encoded = feature_map.assign_parameters(features)\n",
- "encoded.draw('mpl')"
+ "encoded.draw('mpl', style=\"iqp\")"
]
},
{
@@ -220,7 +220,7 @@
"# Evolve state by appending the evolution gate\n",
"state.compose(evolution, inplace=True)\n",
"\n",
- "state.draw('mpl')"
+ "state.draw('mpl', style=\"iqp\")"
]
},
{
@@ -265,7 +265,7 @@
],
"source": [
"from qiskit.circuit.library import QuantumVolume\n",
- "QuantumVolume(4).decompose().draw('mpl')"
+ "QuantumVolume(4).decompose().draw('mpl', style=\"iqp\")"
]
},
{
@@ -334,7 +334,7 @@
"# register B, so we'll measure those qubits.\n",
"circuit = circuit.compose(number_a, qubits=reg_a).compose(number_b, qubits=reg_b).compose(adder)\n",
"circuit.measure(reg_b, reg_result)\n",
- "circuit.draw('mpl')"
+ "circuit.draw('mpl', style=\"iqp\")"
]
},
{
@@ -416,7 +416,7 @@
"qc = QuantumCircuit(4)\n",
"qc.append(hadamard_gate, [0])\n",
"qc.append(mcx_gate, [0,1,2,3])\n",
- "qc.draw('mpl')"
+ "qc.draw('mpl', style=\"iqp\")"
]
},
{
diff --git a/docs/build/circuit-visualization.ipynb b/docs/build/circuit-visualization.ipynb
index b84b8f04b3f..b386ee8ab3f 100644
--- a/docs/build/circuit-visualization.ipynb
+++ b/docs/build/circuit-visualization.ipynb
@@ -11,7 +11,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "A visualization is useful while working with quantum circuits. Below find options in Qiskit for drawing circuits, plotting data from executed jobs, seeing the state of a quantum computer, and more."
+ "A visualization is useful while working with quantum circuits. Below find options in Qiskit® for drawing circuits, plotting data from executed jobs, seeing the state of a quantum computer, and more."
]
},
{
@@ -141,7 +141,7 @@
],
"source": [
"# Matplotlib drawing\n",
- "circuit.draw(output='mpl')"
+ "circuit.draw(output='mpl', style=\"iqp\")"
]
},
{
@@ -162,7 +162,7 @@
],
"source": [
"# Latex drawing\n",
- "circuit.draw(output='latex')"
+ "circuit.draw(output='latex', style=\"iqp\")"
]
},
{
@@ -237,7 +237,7 @@
],
"source": [
"# Draw the circuit\n",
- "circuit.draw(output='mpl')"
+ "circuit.draw(output='mpl', style=\"iqp\")"
]
},
{
@@ -258,7 +258,7 @@
],
"source": [
"# Draw the circuit with reversed bit order\n",
- "circuit.draw(output='mpl', reverse_bits=True)"
+ "circuit.draw(output='mpl', style=\"iqp\", reverse_bits=True)"
]
},
{
@@ -279,7 +279,7 @@
],
"source": [
"# Draw the circuit without barriers\n",
- "circuit.draw(output='mpl', plot_barriers=False)"
+ "circuit.draw(output='mpl', style=\"iqp\", plot_barriers=False)"
]
},
{
@@ -300,7 +300,7 @@
],
"source": [
"# Draw the circuit without barriers and reverse bit order\n",
- "circuit.draw(output='mpl', plot_barriers=False, reverse_bits=True)"
+ "circuit.draw(output='mpl', style=\"iqp\", plot_barriers=False, reverse_bits=True)"
]
},
{
@@ -481,7 +481,7 @@
],
"source": [
"# Scale the mpl output to 1/2 the normal size\n",
- "circuit.draw(output='mpl', scale=0.5)"
+ "circuit.draw(output='mpl', style=\"iqp\",scale=0.5)"
]
},
{
@@ -523,7 +523,7 @@
}
],
"source": [
- "circuit_drawer(circuit, output='mpl', plot_barriers=False)"
+ "circuit_drawer(circuit, output='mpl', plot_barriers=False, style=\"iqp\")"
]
},
{
diff --git a/docs/build/classical-feedforward-and-control-flow.ipynb b/docs/build/classical-feedforward-and-control-flow.ipynb
index 96b16f0276f..778f0257d43 100644
--- a/docs/build/classical-feedforward-and-control-flow.ipynb
+++ b/docs/build/classical-feedforward-and-control-flow.ipynb
@@ -6,7 +6,7 @@
"source": [
"# Classical feedforward and control flow\n",
"\n",
- "This guide demonstrates the functionality available in Qiskit for performing classical feedforward and control flow. These features are sometimes referred to collectively as \"dynamic circuits.\" Classical feedforward refers to the ability to measure qubits in the middle of a circuit and perform additional quantum operations that depend on the measurement outcome. Qiskit supports four control flow constructs for classical feedforward, each implemented as a method on [`QuantumCircuit`](../api/qiskit/qiskit.circuit.QuantumCircuit). The constructs and their corresponding methods are:\n",
+ "This guide demonstrates the functionality available in Qiskit® for performing classical feedforward and control flow. These features are sometimes referred to collectively as \"dynamic circuits.\" Classical feedforward refers to the ability to measure qubits in the middle of a circuit and perform additional quantum operations that depend on the measurement outcome. Qiskit supports four control flow constructs for classical feedforward, each implemented as a method on [`QuantumCircuit`](../api/qiskit/qiskit.circuit.QuantumCircuit). The constructs and their corresponding methods are:\n",
"\n",
"- If statement - [`QuantumCircuit.if_test`](../api/qiskit/qiskit.circuit.QuantumCircuit#if_test)\n",
"- Switch statement - [`QuantumCircuit.switch`](../api/qiskit/qiskit.circuit.QuantumCircuit#switch)\n",
@@ -57,7 +57,7 @@
"with circuit.if_test((c0, 1)):\n",
" circuit.x(q0)\n",
"circuit.measure(q0, c0)\n",
- "circuit.draw(\"mpl\")\n",
+ "circuit.draw(\"mpl\", style=\"iqp\")\n",
"\n",
"# example output counts: {'0': 1024}"
]
@@ -103,7 +103,7 @@
" circuit.x(q1)\n",
"circuit.measure(q1, c1)\n",
"\n",
- "circuit.draw(\"mpl\")\n",
+ "circuit.draw(\"mpl\", style=\"iqp\")\n",
"\n",
"# example output counts: {'01': 260, '11': 272, '10': 492}"
]
@@ -148,7 +148,7 @@
" circuit.x(q2)\n",
"circuit.measure(q2, c2)\n",
"\n",
- "circuit.draw(\"mpl\")\n",
+ "circuit.draw(\"mpl\", style=\"iqp\")\n",
"\n",
"# example output counts: {'101': 269, '011': 260, '000': 252, '010': 243}"
]
@@ -195,7 +195,7 @@
" circuit.z(q0)\n",
"circuit.measure(q0, c0)\n",
"\n",
- "circuit.draw(\"mpl\")\n",
+ "circuit.draw(\"mpl\", style=\"iqp\")\n",
"\n",
"# example output counts: {'1': 1024}"
]
@@ -245,7 +245,7 @@
" circuit.x(q2)\n",
"circuit.measure(q2, c2)\n",
"\n",
- "circuit.draw(\"mpl\")\n",
+ "circuit.draw(\"mpl\", style=\"iqp\")\n",
"\n",
"# example output counts: {'101': 267, '110': 249, '011': 265, '000': 243}"
]
@@ -289,7 +289,7 @@
" circuit.x(q0)\n",
"circuit.measure(q0, c0)\n",
"\n",
- "circuit.draw(\"mpl\")\n",
+ "circuit.draw(\"mpl\", style=\"iqp\")\n",
"\n",
"# example output counts: {'1': 1024}"
]
@@ -338,7 +338,7 @@
" circuit.measure(q0, c0)\n",
" circuit.measure(q1, c1)\n",
"\n",
- "circuit.draw(\"mpl\")\n",
+ "circuit.draw(\"mpl\", style=\"iqp\")\n",
"\n",
"# example output counts: {'01': 334, '10': 368, '00': 322}"
]
diff --git a/docs/build/index.mdx b/docs/build/index.mdx
index 0241e460aa0..ba5e878950f 100644
--- a/docs/build/index.mdx
+++ b/docs/build/index.mdx
@@ -10,7 +10,7 @@ In the build phase, you create quantum programs that represent the problem you a
All tasks require building one or more [quantum circuits](circuit-construction). Some tasks additionally require constructing [quantum operators](operators-overview) to define properties of quantum states that you want to estimate or measure.
-Qiskit enables working with circuits (and, to some extent, operators) at various abstraction levels: abstract, virtual, physical, scheduled, and pulse programs. At the most abstract level is a task-oriented lens in the [circuit library](circuit-library). You can also express operations in abstract mathematical terms using operators, isometries, and classical/Boolean functions. For virtual circuits, mathematical abstractions take on a concrete representation in terms of a concrete gate set. At the physical level, those instructions are mapped to specific physical qubits, and instructions are re-written to reflect the connectivity and native gate set of a target hardware platform. Scheduled circuits introduce timing information, and [pulse programs](pulse) represent signals on channels.
+Qiskit® enables working with circuits (and, to some extent, operators) at various abstraction levels: abstract, virtual, physical, scheduled, and pulse programs. At the most abstract level is a task-oriented lens in the [circuit library](circuit-library). You can also express operations in abstract mathematical terms using operators, isometries, and classical/Boolean functions. For virtual circuits, mathematical abstractions take on a concrete representation in terms of a concrete gate set. At the physical level, those instructions are mapped to specific physical qubits, and instructions are re-written to reflect the connectivity and native gate set of a target hardware platform. Scheduled circuits introduce timing information, and [pulse programs](pulse) represent signals on channels.
Qiskit and [OpenQASM](introduction-to-qasm) further support the notion of extended circuits, which expand the set of allowed operations to include real-time computations on classical values. Qiskit's tooling for working with this richer family of circuits is found in the section on [Classical feedforward and control flow](classical-feedforward-and-control-flow).
diff --git a/docs/build/interoperate-qiskit-qasm2.mdx b/docs/build/interoperate-qiskit-qasm2.mdx
index 60d878e9b34..275f0335b32 100644
--- a/docs/build/interoperate-qiskit-qasm2.mdx
+++ b/docs/build/interoperate-qiskit-qasm2.mdx
@@ -6,7 +6,7 @@ description: Convert code between OpenQASM 2 and Qiskit
# OpenQASM 2 and Qiskit
-Qiskit provides some tools for converting between OpenQASM representations of quantum programs, and the [QuantumCircuit](../api/qiskit/qiskit.circuit.QuantumCircuit) class.
+Qiskit® provides some tools for converting between OpenQASM representations of quantum programs, and the [QuantumCircuit](../api/qiskit/qiskit.circuit.QuantumCircuit) class.
## Import an OpenQASM 2 program into Qiskit
diff --git a/docs/build/interoperate-qiskit-qasm3.mdx b/docs/build/interoperate-qiskit-qasm3.mdx
index ec4c863919c..77937756c39 100644
--- a/docs/build/interoperate-qiskit-qasm3.mdx
+++ b/docs/build/interoperate-qiskit-qasm3.mdx
@@ -6,7 +6,7 @@ description: Convert code between OpenQASM 3 and Qiskit
# OpenQASM 3 and Qiskit
-Qiskit provides some tools for converting between OpenQASM representations of quantum programs, and the QuantumCircuit class. Note these tools are still in an exploratory phase of development and will continue to evolve as Qiskit’s support for dynamic circuit capabilities expressed by OpenQASM 3 increases.
+Qiskit® provides some tools for converting between OpenQASM representations of quantum programs, and the QuantumCircuit class. Note these tools are still in an exploratory phase of development and will continue to evolve as Qiskit’s support for dynamic circuit capabilities expressed by OpenQASM 3 increases.
This function is still in the exploratory phase. Therefore, it is likely that the syntax and capabilities will evolve.
@@ -80,7 +80,7 @@ program = """
out = measure q;
"""
circuit = qiskit.qasm3.loads(program)
-circuit.draw("mpl")
+circuit.draw("mpl", style="iqp")
```
![output](/images/build/interoperate-qiskit-qasm3/qasm3circ.png)
diff --git a/docs/build/introduction-to-qasm.mdx b/docs/build/introduction-to-qasm.mdx
index 4c236a5f8e8..4de1e8365d6 100644
--- a/docs/build/introduction-to-qasm.mdx
+++ b/docs/build/introduction-to-qasm.mdx
@@ -5,7 +5,7 @@ description: An introduction to OpenQASM (Open quantum assembly language)
# Introduction to OpenQASM
-OpenQASM (open quantum assembly language), a machine-independent programming interface compatible with IBM Quantum systems, is an imperative programming language for describing quantum circuits. OpenQASM uses the quantum circuit model to express quantum programs as ordered sequences of parameterized operations (such as gates, measurements, and resets) and real-time classical computation. In addition to quantum algorithms, OpenQASM can describe circuits intended to characterize, validate, or debug quantum systems.
+OpenQASM (open quantum assembly language), a machine-independent programming interface compatible with IBM Quantum™ systems, is an imperative programming language for describing quantum circuits. OpenQASM uses the quantum circuit model to express quantum programs as ordered sequences of parameterized operations (such as gates, measurements, and resets) and real-time classical computation. In addition to quantum algorithms, OpenQASM can describe circuits intended to characterize, validate, or debug quantum systems.
As the needs of quantum system development have evolved, OpenQASM's feature list has expanded in response; the latest version, [OpenQASM 3,](https://arxiv.org/abs/2104.14722) incorporates extensions including classical feed-forward flow control, gate modifiers, and pulse implementations.
@@ -15,7 +15,7 @@ OpenQASM is the choice for a variety of audiences because of its versatility. Th
OpenQASM is the common interchange format among independent quantum software tools. For developers that prefer one tool for circuit construction, another for transpilation, and so forth, OpenQASM is the *lingua franca* that acts as a bridge among them.
- Qiskit provides ways to convert between OpenQASM and the [`QuantumCircuit`](../api/qiskit/qiskit.circuit.QuantumCircuit) class (see [OpenQASM 2 and Qiskit](interoperate-qiskit-qasm2) and [OpenQASM 3 and Qiskit](interoperate-qiskit-qasm3) for instructions).
+ Qiskit® provides ways to convert between OpenQASM and the [`QuantumCircuit`](../api/qiskit/qiskit.circuit.QuantumCircuit) class (see [OpenQASM 2 and Qiskit](interoperate-qiskit-qasm2) and [OpenQASM 3 and Qiskit](interoperate-qiskit-qasm3) for instructions).
For more information, view the [OpenQASM live specification.](https://openqasm.com/)
diff --git a/docs/build/operators-overview.ipynb b/docs/build/operators-overview.ipynb
index 80422dcc017..4e73750a6c9 100644
--- a/docs/build/operators-overview.ipynb
+++ b/docs/build/operators-overview.ipynb
@@ -11,7 +11,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "The `Operator` class is used in Qiskit to represent matrix operators acting on a quantum system. It has several methods to build composite operators using tensor products of smaller operators, and to compose operators.\n",
+ "The `Operator` class is used in Qiskit® to represent matrix operators acting on a quantum system. It has several methods to build composite operators using tensor products of smaller operators, and to compose operators.\n",
"\n",
"### Creating Operators\n",
"\n",
@@ -473,7 +473,7 @@
"circ = QuantumCircuit(2, 2)\n",
"circ.append(XX, [0, 1])\n",
"circ.measure([0,1], [0,1])\n",
- "circ.draw('mpl')"
+ "circ.draw('mpl', style=\"iqp\")"
]
},
{
diff --git a/docs/build/pulse.ipynb b/docs/build/pulse.ipynb
index 6c9f9cd6483..dc9eccdf925 100644
--- a/docs/build/pulse.ipynb
+++ b/docs/build/pulse.ipynb
@@ -10,7 +10,7 @@
"\n",
"Most quantum algorithms can be described with circuit operations alone. When you need more control over the low-level program implementation, you can use _pulse gates_. Pulse gates remove the constraint of executing circuits with basis gates only and let you override the default implementation of any basis gate.\n",
"\n",
- "Pulse gates let you map a logical circuit gate (for example, `X`) to a Qiskit Pulse program, called a `ScheduleBlock`. This mapping is referred to as a _calibration_. A high-fidelity calibration is one that faithfully implements the logical operation it is mapped from (for example, whether the `X` gate calibration drives $|0\\rangle$ to $|1\\rangle$).\n",
+ "Pulse gates let you map a logical circuit gate (for example, `X`) to a Qiskit® Pulse program, called a `ScheduleBlock`. This mapping is referred to as a _calibration_. A high-fidelity calibration is one that faithfully implements the logical operation it is mapped from (for example, whether the `X` gate calibration drives $|0\\rangle$ to $|1\\rangle$).\n",
"\n",
"A schedule specifies the exact time dynamics of the input signals across all input _channels_ to the device. There are usually multiple channels per qubit, such as drive and measure. This interface is more powerful, and requires a deeper understanding of the underlying device physics.\n",
"\n",
@@ -56,7 +56,7 @@
"circ.measure(0, 0)\n",
"circ.measure(1, 1)\n",
"\n",
- "circ.draw('mpl')"
+ "circ.draw('mpl', style=\"iqp\")"
]
},
{
@@ -178,7 +178,7 @@
"circ = passmanager.run(circ)\n",
"\n",
"print(backend.configuration().basis_gates)\n",
- "circ.draw('mpl', idle_wires=False)"
+ "circ.draw('mpl', style=\"iqp\", idle_wires=False)"
]
},
{
@@ -219,7 +219,7 @@
"circ.append(custom_gate, [0])\n",
"circ.measure(0, 0)\n",
"\n",
- "circ.draw('mpl')"
+ "circ.draw('mpl', style=\"iqp\")"
]
},
{
@@ -261,7 +261,7 @@
],
"source": [
"circ = passmanager.run(circ)\n",
- "circ.draw('mpl', idle_wires=False)"
+ "circ.draw('mpl', style=\"iqp\", idle_wires=False)"
]
},
{
@@ -348,7 +348,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "**Important:** For IBM devices, pulse programs are used as subroutines to describe gates. IBM devices do not accept full programs in this format. "
+ "**Important:** For IBM® devices, pulse programs are used as subroutines to describe gates. IBM devices do not accept full programs in this format. "
]
},
{
diff --git a/docs/build/qasm-feature-table.mdx b/docs/build/qasm-feature-table.mdx
index bcc7fd3f40a..873c849cbc7 100644
--- a/docs/build/qasm-feature-table.mdx
+++ b/docs/build/qasm-feature-table.mdx
@@ -72,7 +72,7 @@ Key:
- Learn how to generate OpenQASM code in the [Explore gates and circuits with the Quantum Composer](https://learning.quantum.ibm.com/tutorial/explore-gates-and-circuits-with-the-quantum-composer) tutorial.
- - See the [OpenQASM 3 Qiskit API](/api/qiskit/qasm3) reference.
+ - See the [OpenQASM 3 Qiskit® API](/api/qiskit/qasm3) reference.
- See the [OpenQASM 2 Qiskit API](/api/qiskit/qasm2) reference.
- Review the [Verify your program](../verify/) topic.
- Visit the [OpenQASM Live Specification](https://openqasm.com/).
diff --git a/docs/build/specify-observables-pauli.mdx b/docs/build/specify-observables-pauli.mdx
index 0cab9f47aaa..22df399b2f9 100644
--- a/docs/build/specify-observables-pauli.mdx
+++ b/docs/build/specify-observables-pauli.mdx
@@ -46,7 +46,7 @@ $$
where the indices $\langle i, j\rangle$ run over interacting spins and the spins are subject to a transversal field in $X$.
The subscript index indicates which qubit the Pauli operator acts on, i.e. $X_i$ applies an $X$ operator on qubit $i$ and leaves the rest unchanged.
-In Qiskit, this Hamiltonian could be constructed as
+In Qiskit®, this Hamiltonian could be constructed as
```python
from qiskit.quantum_info import SparsePauliOp
diff --git a/docs/build/unitary-synthesis.mdx b/docs/build/unitary-synthesis.mdx
index 15ae10c8ecd..c1825efab6e 100644
--- a/docs/build/unitary-synthesis.mdx
+++ b/docs/build/unitary-synthesis.mdx
@@ -15,7 +15,7 @@ For general unitary matrices, synthesis is a complex task with computational cos
Therefore, if you know an efficient decomposition for the unitary you would like to implement, it will likely be better than a general synthesis.
- If no decomposition is available, Qiskit provides you with the tools to find one.
+ If no decomposition is available, Qiskit® provides you with the tools to find one.
However, note that this generally generates deep circuits that may be unsuitable to run on noisy quantum computers.
diff --git a/docs/run/advanced-runtime-options.mdx b/docs/run/advanced-runtime-options.mdx
index 839072a9bb7..de0a3d4fb36 100644
--- a/docs/run/advanced-runtime-options.mdx
+++ b/docs/run/advanced-runtime-options.mdx
@@ -11,7 +11,7 @@ When calling the primitives, you can pass in options by using the `Options` clas
![The image shows the top-level options categories: transpilation, resilience, execution, environment, and simulation.](/images/build/options.png "Option categories")
- This section focuses on Qiskit Runtime primitive [Options](../api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.Options) (imported from `qiskit_ibm_runtime`). While most of the `primitives` interface is common across implementations, most `Options` are not. Consult the
+ This section focuses on Qiskit® Runtime primitive [Options](../api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.Options) (imported from `qiskit_ibm_runtime`). While most of the `primitives` interface is common across implementations, most `Options` are not. Consult the
corresponding API references for information about the `qiskit.primitives` and `qiskit_aer.primitives` options.
diff --git a/docs/run/circuit-execution.mdx b/docs/run/circuit-execution.mdx
index d883cdba5ac..99dac85b747 100644
--- a/docs/run/circuit-execution.mdx
+++ b/docs/run/circuit-execution.mdx
@@ -8,13 +8,13 @@ description: Explanatory content on fixed and dynamic repetition rate execution
## Fixed repetition rate execution
-Most IBM Quantum systems execute circuits at a fixed rate. Although this *repetition rate* varies by system, the underlying execution model is the same, and is described here. First, consider three circuits sent to a system using separate jobs, one for each circuit. The example below shows what happens for jobs of varying lengths. Because of the fixed repetition rate, there is a variable amount of *idle time* that occurs before the start of a circuit in order to make the entire duration match that given by the system repetition rate.
+Most IBM Quantum™ systems execute circuits at a fixed rate. Although this *repetition rate* varies by system, the underlying execution model is the same, and is described here. First, consider three circuits sent to a system using separate jobs, one for each circuit. The example below shows what happens for jobs of varying lengths. Because of the fixed repetition rate, there is a variable amount of *idle time* that occurs before the start of a circuit in order to make the entire duration match that given by the system repetition rate.
![With fixed-rate execution, shorter jobs result in longer idle time.](/images/run/fixed_single_circuit1.png "Idle time versus job length")
The situation changes somewhat when the same circuits are batched into a single job. In this case the circuits included in the job are executed by iterating over the circuits for each shot requested; the execution is column-wise over a matrix of circuits and shots (see below).
-![The first column represents shot0. The circuits are run in order from 0 through 3. The second column represents shot 1. The circuits are run in order from 0 through 3. The remaining columns follow the same pattern. ](/images/run/circuits_shots_matrix1.png "Column-wise execution matrix")
+![The first column represents shot 0. The circuits are run in order from 0 through 3. The second column represents shot 1. The circuits are run in order from 0 through 3. The remaining columns follow the same pattern. ](/images/run/circuits_shots_matrix1.png "Column-wise execution matrix")
Matrix of four circuits in a job showing the execution pattern over the circuits.
@@ -26,4 +26,4 @@ Therefore, each circuit is equal in duration to the longest circuit in the batch
## Dynamic repetition rate execution
-Some IBM Quantum systems allow for dynamic repetition rate execution. These systems are identified in Qiskit using `backend.configuration().dynamic_reprate_enabled`, and return a value of `True`. On these systems, it is possible to manually set the above idle time by setting the `rep_delay` of the submitted job. One can see from the above figures that by reducing the idle time one can potentially see a greater throughput of circuits on the systems that support dynamic repetition rates. See the the next section on conditional reset for more detailed usage examples.
\ No newline at end of file
+Some IBM Quantum systems allow for dynamic repetition rate execution. These systems are identified in Qiskit® using `backend.configuration().dynamic_reprate_enabled`, and return a value of `True`. On these systems, it is possible to manually set the above idle time by setting the `rep_delay` of the submitted job. One can see from the above figures that by reducing the idle time one can potentially see a greater throughput of circuits on the systems that support dynamic repetition rates. See the the next section on conditional reset for more detailed usage examples.
\ No newline at end of file
diff --git a/docs/run/configure-error-mitigation.mdx b/docs/run/configure-error-mitigation.mdx
index 94e8761c3b1..0a11cefa670 100644
--- a/docs/run/configure-error-mitigation.mdx
+++ b/docs/run/configure-error-mitigation.mdx
@@ -57,7 +57,7 @@ applied at each resilience level.
- If using an IBM Cloud Qiskit Runtime service instance with Q-CTRL performance management enabled, there is no need to specify runtime optimization or resilience levels, as the strategy includes an automatic preset.
+ If using an IBM Cloud® Qiskit® Runtime service instance with Q-CTRL performance management enabled, there is no need to specify runtime optimization or resilience levels, as the strategy includes an automatic preset.
Setting `optimization_level` or `resilience_level` equal to 0 will result in an
execution error. Levels 1, 2, and 3 are permitted but will not impact performance.
@@ -165,15 +165,15 @@ mitigated circuit.
How this works:
-When estimating an unmitigated Pauli observable $\langle P\rangle$ the
+When estimating an unmitigated Pauli observable $\langle P\rangle$, the
standard error in the estimated expectation value is given by
-$\frac{1}{\sqrt{N_{\text{shots}}}}\left(1- \langle P\rangle^2\right)$
+$\frac{1}{\sqrt{N_{\text{shots}}}}\left(1- \langle P\rangle^2\right)$,
where $N_{\text{shots}}$ is the number of shots used to estimate
$\langle P\rangle$. When applying PEC mitigation, the standard error
becomes
-$\sqrt{\frac{S}{N_{\text{samples}}}}\left(1- \langle P\rangle^2\right)$
+$\sqrt{\frac{S}{N_{\text{samples}}}}\left(1- \langle P\rangle^2\right)$,
where $N_{\text{samples}}$ is the number of PEC samples.
The sampling overhead scales exponentially with a parameter that
diff --git a/docs/run/configure-runtime-compilation.mdx b/docs/run/configure-runtime-compilation.mdx
index ee43c6816c5..11fc23881ab 100644
--- a/docs/run/configure-runtime-compilation.mdx
+++ b/docs/run/configure-runtime-compilation.mdx
@@ -51,7 +51,7 @@ The `optimization_level` setting specifies how much optimization to perform on t
- The primitives expect circuits in a form suitable to execute on the target system. You may use the Qiskit transpiler locally to translate abstract circuits into this target circuit form.
+ The primitives expect circuits in a form suitable to execute on the target system. You may use the Qiskit® transpiler locally to translate abstract circuits into this target circuit form.
At present, the primitives will attempt low-cost transformations if given a circuit that is not already in target form, but in the future, primitives will error on such circuits. It is therefore recommended that users take advantage of the local compilation capabilities of the Qiskit transpiler wherever possible.
@@ -59,7 +59,7 @@ At present, the primitives will attempt low-cost transformations if given a circ
- If using an IBM Cloud Qiskit Runtime service instance with Q-CTRL performance management enabled, there is no need to specify runtime optimization or resilience levels, as the strategy includes an automatic preset.
+ If using an IBM Cloud® Qiskit Runtime service instance with Q-CTRL performance management enabled, there is no need to specify runtime optimization or resilience levels, as the strategy includes an automatic preset.
Q-CTRL defaults to `optimization_level=3` and `resilience_level=1`.
Setting `optimization_level` or `resilience_level` equal to 0 will result in an
diff --git a/docs/run/dynamic-circuits-considerations.ipynb b/docs/run/dynamic-circuits-considerations.ipynb
index e6b26b2c2f2..52469ca07f4 100644
--- a/docs/run/dynamic-circuits-considerations.ipynb
+++ b/docs/run/dynamic-circuits-considerations.ipynb
@@ -6,7 +6,7 @@
"source": [
"# Hardware considerations and limitations for classical feedforward and control flow\n",
"\n",
- "[Classical feedforward and control flow](/build/classical-feedforward-and-control-flow) shows how to use Qiskit to build circuits that involve classical feedforward and control flow, also known as dynamic circuits. When actually running such circuits on quantum hardware, there are several considerations and limitations to be aware of. Many of these limitations exist because the underlying technology supporting these features is in an early stage of development, and we hope to be able to address them in the future.\n",
+ "[Classical feedforward and control flow](/build/classical-feedforward-and-control-flow) shows how to use Qiskit® to build circuits that involve classical feedforward and control flow, also known as dynamic circuits. When actually running such circuits on quantum hardware, there are several considerations and limitations to be aware of. Many of these limitations exist because the underlying technology supporting these features is in an early stage of development, and we hope to be able to address them in the future.\n",
"\n",
"## Primitives do not currently support classical feedforward and control flow\n",
"\n",
@@ -20,7 +20,7 @@
"\n",
"![Diagram showing control hardware architecture](/images/run/rta-architecture.png)\n",
"\n",
- "Running circuits on quantum processors involves not only the qubits themselves, but also a system of classical electronics and computers to generate and receive waveforms and orchestrate the control logic. When a job is submitted to the IBM Quantum service, it is processed into multiple classical programs that must be distributed between two kinds of units: central controllers and qubit controllers (see diagram above). A job may fail if it exceeds certain limitations of these controllers. There are two kinds of limitations to be aware of:\n",
+ "Running circuits on quantum processors involves not only the qubits themselves, but also a system of classical electronics and computers to generate and receive waveforms and orchestrate the control logic. When a job is submitted to the IBM Quantum™ service, it is processed into multiple classical programs that must be distributed between two kinds of units: central controllers and qubit controllers (see diagram above). A job may fail if it exceeds certain limitations of these controllers. There are two kinds of limitations to be aware of:\n",
"\n",
"- **Limited working memory**. This primarily affects the central controllers, and jobs will fail if they cause this memory limit to be exceeded.\n",
"- **Latency caused by classical computation**. Running circuits that use classical feedforward and control flow involves performing classical computation during the course of the circuit execution. Due to the limited coherence time of qubits, there is a limited time budget for performing these computations. A job may fail at compile time if the compilation detects that the classical computation overhead is too large.\n",
diff --git a/docs/run/estimate-job-run-time.mdx b/docs/run/estimate-job-run-time.mdx
index 7f888a9e81c..3daeab5f725 100644
--- a/docs/run/estimate-job-run-time.mdx
+++ b/docs/run/estimate-job-run-time.mdx
@@ -6,13 +6,13 @@ description: Estimate how long a job that uses a primitive will take to run
# Estimate job run time
-After submitting a job to the IBM Quantum channel, you can see an estimation for how much _quantum time_ the job will take to run by using `job.usage_estimation`. Alternatively, you can [view this information on the IBM Quantum Platform user interface](#view-usage).
+After submitting a job to the IBM Quantum™ channel, you can see an estimation for how much _quantum time_ the job will take to run by using `job.usage_estimation`. Alternatively, you can [view this information on the IBM Quantum Platform user interface](#view-usage).
Quantum time is the duration, in seconds, a quantum system is committed to fulfilling a user request.
- This only applies to jobs that use primitives.
- - This is not yet available on the IBM Qiskit Runtime on Cloud channel.
+ - This is not yet available on the Qiskit® Runtime on IBM Cloud® channel.
Example:
diff --git a/docs/run/fair-share-queue.mdx b/docs/run/fair-share-queue.mdx
index d309e3eff16..01ca2c0a3c9 100644
--- a/docs/run/fair-share-queue.mdx
+++ b/docs/run/fair-share-queue.mdx
@@ -10,7 +10,7 @@ When you submit a job to a quantum system, it enters the scheduler for the speci
## Fair-share terms
-* **Provider:** An entity providing access to quantum computing. IBM Quantum Platform and IBM Cloud® are providers of Qiskit Runtime services.
+* **Provider:** An entity providing access to quantum computing. IBM Quantum™ Platform and IBM Cloud® are providers of Qiskit® Runtime services.
* **Instance:** A combination of hub/group/project.
* **Hub:** Represents the top level of an organization such as an academic, industry, or research partner.
* **Group:** A mid-level structure to which access shares can be allocated by the hub for one or more collections of users (projects).
diff --git a/docs/run/get-backend-information.ipynb b/docs/run/get-backend-information.ipynb
index 5829d4df378..8d9bbc16857 100644
--- a/docs/run/get-backend-information.ipynb
+++ b/docs/run/get-backend-information.ipynb
@@ -6,7 +6,7 @@
"source": [
"# Get backend information with Qiskit\n",
"\n",
- "This page explains how to use Qiskit to find information about your available backends."
+ "This page explains how to use Qiskit® to find information about your available backends."
]
},
{
diff --git a/docs/run/index.mdx b/docs/run/index.mdx
index 5334d416e68..8a387455c68 100644
--- a/docs/run/index.mdx
+++ b/docs/run/index.mdx
@@ -6,7 +6,7 @@ description: Overview of the Run section, where you'll find information on IBM Q
# Introduction
-IBM Quantum maintains the world’s most advanced fleet of quantum systems, with seven [utility-scale](https://www.ibm.com/blog/announcement/new-ibm-quantum-systems-on-the-ibm-cloud/) quantum systems, and more on the way. These systems demonstrate unparalleled reliability, with >95% uptime across the fleet of quantum systems - and unmatched stability, with two-qubit gate error fluctuations no larger than 0.001 over timescales measured in months[^1].
+IBM Quantum™ maintains the world’s most advanced fleet of quantum systems, with seven [utility-scale](https://www.ibm.com/blog/announcement/new-ibm-quantum-systems-on-the-ibm-cloud/) quantum systems, and more on the way. These systems demonstrate unparalleled reliability, with >95% uptime across the fleet of quantum systems - and unmatched stability, with two-qubit gate error fluctuations no larger than 0.001 over timescales measured in months[^1].
## The run phase
@@ -14,7 +14,7 @@ In the run phase, you send your quantum program to be executed on a quantum syst
The steps during the run phase are:
-1. Using your account credentials, authenticate to the channel of your choice ([IBM Quantum Platform](../start/setup-channel#ibm-quantum-platform) or [IBM Cloud](../start/setup-channel#ibm-cloud)).
+1. Using your account credentials, authenticate to the channel of your choice ([IBM Quantum Platform](../start/setup-channel#ibm-quantum-platform) or [IBM Cloud®](../start/setup-channel#ibm-cloud)).
2. Choose a system or simulator.
3. Send a job to a system or simulator.
4. View job results.
diff --git a/docs/run/instances.mdx b/docs/run/instances.mdx
index 5518ca8b8e5..2272c0b0f73 100644
--- a/docs/run/instances.mdx
+++ b/docs/run/instances.mdx
@@ -4,10 +4,10 @@ description: What IBM Quantum Platform instances are and how to use them
---
# Instances
-Access to IBM Quantum Platform services is controlled by the **instances** (previously called providers) to which you are assigned. An instance is defined by a hierarchical organization of **hub**, **group**, and **project**. A hub is the top level of a given hierarchy (organization) and contains within it one or more groups. These groups are in turn populated with projects. The combination of hub/group/project is called an instance. Users can belong to more than one instance at any given time.
+Access to IBM Quantum™ Platform services is controlled by the **instances** (previously called providers) to which you are assigned. An instance is defined by a hierarchical organization of **hub**, **group**, and **project**. A hub is the top level of a given hierarchy (organization) and contains within it one or more groups. These groups are in turn populated with projects. The combination of hub/group/project is called an instance. Users can belong to more than one instance at any given time.
- IBM Cloud instances are different from IBM Quantum Platform instances. IBM Cloud does not use the hub/group/project structure for user management. This section describes instances in IBM Quantum Platform. To view and create IBM Cloud instances, visit the [IBM Cloud Quantum Instances page](https://cloud.ibm.com/quantum/instances). Click the name of an instance to see details such as your CRN for that instance, what compute resources (programs, systems, and simulators) are available to you by using that instance, and what jobs you have run on that instance.
+ IBM Cloud® instances are different from IBM Quantum Platform instances. IBM Cloud does not use the hub/group/project structure for user management. This section describes instances in IBM Quantum Platform. To view and create IBM Cloud instances, visit the [IBM Cloud Quantum Instances page](https://cloud.ibm.com/quantum/instances). Click the name of an instance to see details such as your CRN for that instance, what compute resources (programs, systems, and simulators) are available to you by using that instance, and what jobs you have run on that instance.
![Alice, Bob, and Charlie are all in Hub A. Hub A has Group 1 and 2. Alice and Bob are in Group 1. Charlie is in Group 2. Group 1 has Project X and Y. Alice is in both projects. Bob is only in project X. Group 2 has Project Z. Charlie is in project Z. Therefore, Charlie's instance is Hub-A/Group-2/Project-Z.](/images/run/providers1.jpg "Hub / group / project hierarchy")
diff --git a/docs/run/manage-cost.mdx b/docs/run/manage-cost.mdx
index 7d1bc986d87..c38d9e4c260 100644
--- a/docs/run/manage-cost.mdx
+++ b/docs/run/manage-cost.mdx
@@ -6,10 +6,10 @@ description: How to manage costs of running jobs on systems when using the Stand
# Manage cost
-The IBM Cloud Quantum Standard plan is not free, except when running jobs on simulators. Use the information in this topic to help you understand how much you’re paying and how to limit your costs.
+The IBM Cloud® Quantum Standard plan is not free, except when running jobs on simulators. Use the information in this topic to help you understand how much you’re paying and how to limit your costs.
- The information in this topic only applies to those who are using the Standard plan for IBM Quantum on IBM Cloud. There are no costs associated with IBM Quantum Platform Open plan.
+ The information in this topic only applies to those who are using the Standard plan for Qiskit® Runtime on IBM Cloud. There are no costs associated with IBM Quantum™ Platform Open plan.
## Set a cost limit
diff --git a/docs/run/max-execution-time.mdx b/docs/run/max-execution-time.mdx
index 748f1b42f6a..857512bc096 100644
--- a/docs/run/max-execution-time.mdx
+++ b/docs/run/max-execution-time.mdx
@@ -6,7 +6,7 @@ description: Describes how long a Qiskit Runtime job or session can run.
# Maximum execution time for a Qiskit Runtime job or session
-To ensure fairness and help control costs, there is a maximum amount of time each Qiskit Runtime job and session can run. If a job exceeds this time limit, it is forcibly canceled and a `RuntimeJobMaxTimeoutError` exception is raised. If a session exceeds its limits, any queued jobs are canceled but any jobs that are already running are not.
+To ensure fairness and help control costs, there is a maximum amount of time each Qiskit® Runtime job and session can run. If a job exceeds this time limit, it is forcibly canceled and a `RuntimeJobMaxTimeoutError` exception is raised. If a session exceeds its limits, any queued jobs are canceled but any jobs that are already running are not.
## Job maximum execution time
@@ -55,7 +55,7 @@ When a session is started, it is assigned a maximum session timeout value. After
## Other limitations
* Inputs to jobs cannot exceed 64MB in size.
-* Open plan users can use up to 10 minutes of system execution time per month (resets at 00:00 UTC on the first of each month). System execution time is the amount of time that the system is dedicated to processing your job. You can track your monthly usage on the [Platform dashboard,](https://quantum.ibm.com/) [Quantum Platform Jobs page,](https://quantum.ibm.com/jobs) and [Account](https://quantum.ibm.com/account) page.
+* Open plan users can use up to 10 minutes of system execution time per month (resets at 00:00 UTC on the first of each month). System execution time is the amount of time that the system is dedicated to processing your job. You can track your monthly usage on the [Platform dashboard,](https://quantum.ibm.com/) [IBM Quantum™ Platform Jobs page,](https://quantum.ibm.com/jobs) and [Account](https://quantum.ibm.com/account) page.
## Next steps
diff --git a/docs/run/minimize-time.mdx b/docs/run/minimize-time.mdx
index 0517623227c..e4b93833675 100644
--- a/docs/run/minimize-time.mdx
+++ b/docs/run/minimize-time.mdx
@@ -10,7 +10,7 @@ There are several ways you can limit the amount of quantum time spent processing
- Run only as many iterations and shots as you need: The time your workload takes (and therefore, its cost) depends on how many jobs you create in a session and how many shots are run in each job. Therefore, you can manage your cost by running only as many jobs and shots as you need.
-- Set limits on execution time: You can limit how long each job or session runs. For details, see [Maximum execution time for a Qiskit Runtime job or session](max-execution-time).
+- Set limits on execution time: You can limit how long each job or session runs. For details, see [Maximum execution time for a Qiskit® Runtime job or session](max-execution-time).
- Use only the necessary settings for error suppression, error mitigation, and optimization, because higher values can cause your jobs to run longer. See [Algorithm tuning options](advanced-runtime-options), [Configure runtime compilation](configure-runtime-compilation), and [Configure error mitigation](configure-error-mitigation) for details.
diff --git a/docs/run/monitor-job.mdx b/docs/run/monitor-job.mdx
index 7292c5ac442..718287b41a7 100644
--- a/docs/run/monitor-job.mdx
+++ b/docs/run/monitor-job.mdx
@@ -8,8 +8,8 @@ description: How to monitor a job submitted to IBM Quantum Platform or IBM Quant
Jobs are listed on the Jobs page for your quantum service channel:
-* IBM Cloud channel: From the IBM Cloud console quantum [Instances page](https://cloud.ibm.com/quantum/instances), click the name of your instance, then click the Jobs tab.
-* IBM Quantum channel: In IBM Quantum Platform, open the [Jobs page](https://quantum.ibm.com/jobs).
+* IBM Cloud® channel: From the IBM Cloud console quantum [Instances page](https://cloud.ibm.com/quantum/instances), click the name of your instance, then click the Jobs tab.
+* IBM Quantum™ channel: In IBM Quantum Platform, open the [Jobs page](https://quantum.ibm.com/jobs).
Use the job instance to check the job status or retrieve the results by calling the appropriate command:
@@ -26,7 +26,7 @@ Use the job instance to check the job status or retrieve the results by calling
Call `service.job(\)` to retrieve a job you previously submitted. If you don’t have the job ID, or if you want to retrieve multiple jobs at once; including jobs from retired systems, call `service.jobs()` with optional filters instead. See [QiskitRuntimeService.jobs](../api/qiskit-ibm-runtime/qiskit_ibm_runtime.QiskitRuntimeService#jobs).
- service.jobs() returns only Qiskit Runtime jobs. To retrieve other jobs, use [qiskit-ibm-provider](../api/qiskit-ibm-provider/qiskit_ibm_provider.IBMBackend#ibmbackend) instead.
+ service.jobs() returns only Qiskit® Runtime jobs. To retrieve other jobs, use [qiskit-ibm-provider](../api/qiskit-ibm-provider/qiskit_ibm_provider.IBMBackend#ibmbackend) instead.
## Example
diff --git a/docs/run/native-gates.mdx b/docs/run/native-gates.mdx
index 3e03d183817..549bc7fbee6 100644
--- a/docs/run/native-gates.mdx
+++ b/docs/run/native-gates.mdx
@@ -8,7 +8,7 @@ description: Summary of the native gates and operations supported by IBM Quantum
Each [processor family](processor-types) has a native gate set. By default, the systems in each family only support running the gates and operations in the native gate set. Thus, every gate in the circuit must be translated (by the transpiler) to the elements of this set.
-You can view the native gates and operations for a system either [with Qiskit](#native-gates-with-qiskit) or on the IBM Quantum Platform [Compute resources page](#native-gates-on-platform).
+You can view the native gates and operations for a system either [with Qiskit®](#native-gates-with-qiskit) or on the IBM Quantum™ Platform [Compute resources page](#native-gates-on-platform).
The terms native gates and basis gates are often used interchangeably. However, you can specify a different set of basis gates to use, while the native gate set never changes. For information about changing the basis gates, see the [Represent quantum computers](../transpile/representing_quantum_computers#basis-gates) topic.
diff --git a/docs/run/primitives-examples.mdx b/docs/run/primitives-examples.mdx
index ea1b21c0c4f..774d9603c33 100644
--- a/docs/run/primitives-examples.mdx
+++ b/docs/run/primitives-examples.mdx
@@ -9,7 +9,7 @@ description: Practical examples of primitive usage
The examples in this section illustrate some common ways to use primitives. Before running these examples, follow the instructions in [Install and set up.](../start/install)
- These examples all use the primitives from Qiskit Runtime, but you could use the base primitives instead.
+ These examples all use the primitives from Qiskit® Runtime, but you could use the base primitives instead.
## Estimator examples
@@ -283,5 +283,5 @@ print(f" > Quasi-probability distribution job 2: {another_result.quasi_dists}")
- [Specify advanced runtime options.](advanced-runtime-options)
- - Practice with primitives by working through the [Cost function lesson](https://learning.quantum.ibm.com/course/variational-algorithm-design/cost-functions#primitives) in IBM Quantum Learning.
+ - Practice with primitives by working through the [Cost function lesson](https://learning.quantum.ibm.com/course/variational-algorithm-design/cost-functions#primitives) in IBM Quantum™ Learning.
\ No newline at end of file
diff --git a/docs/run/primitives-get-started.mdx b/docs/run/primitives-get-started.mdx
index 9ea8e04c584..f4c60322b1b 100644
--- a/docs/run/primitives-get-started.mdx
+++ b/docs/run/primitives-get-started.mdx
@@ -6,10 +6,10 @@ description: Use Qiskit Runtime Estimator and Sampler
# Get started with primitives
-The steps in this topic describes how to set up primitives, explore the options you can use to configure them, then invoke them in a program.
+The steps in this topic describes how to set up primitives, explore the options you can use to configure them, and invoke them in a program.
- These examples all use the primitives from Qiskit Runtime, but you could use the base primitives instead.
+ These examples all use the primitives from Qiskit® Runtime, but you could use the base primitives instead.
@@ -137,5 +137,5 @@ print(f" > Metadata: {result.metadata[0]}")
- Review detailed [primitives examples.](primitives-examples)
- - Practice with primitives by working through the [Cost function lesson](https://learning.quantum.ibm.com/course/variational-algorithm-design/cost-functions#primitives) in IBM Quantum Learning.
+ - Practice with primitives by working through the [Cost function lesson](https://learning.quantum.ibm.com/course/variational-algorithm-design/cost-functions#primitives) in IBM Quantum™ Learning.
diff --git a/docs/run/primitives.mdx b/docs/run/primitives.mdx
index 80e82fb244e..1ee03ec23a8 100644
--- a/docs/run/primitives.mdx
+++ b/docs/run/primitives.mdx
@@ -21,7 +21,7 @@ As we move towards larger systems and more complex workflows, the focus shifts f
qubit signals to viewing quantum devices as systems that perform tasks we need.
The two most common tasks quantum computers are used for are sampling quantum states and calculating expectation values.
-These tasks motivated the design of *the first two Qiskit primitives: Sampler and Estimator*.
+These tasks motivated the design of *the first two Qiskit® primitives: Sampler and Estimator*.
In short, the computational model introduced by the Qiskit primitives moves quantum programming one step closer
to where classical programming is today, where the focus is less on the hardware details and more on the results
@@ -32,7 +32,7 @@ you are trying to achieve.
The Qiskit primitives are defined by open-source primitive base-classes, from
which different providers can derive their own Sampler and Estimator implementations. Among the implementations
using Qiskit, you can find reference primitive implementations for local simulation in the `qiskit.primitives` module.
-Providers like IBM’s Qiskit Runtime enable access to appropriate systems through native implementations of
+Providers like Qiskit Runtime enable access to appropriate systems through native implementations of
their own primitives.
## Benefits of Qiskit primitives
@@ -89,5 +89,5 @@ The Qiskit Runtime primitives provide a more sophisticated implementation (such
- Read [Get started with primitives](primitives-get-started) to implement primitives in your work.
- Review detailed [primitives examples.](primitives-examples)
- - Practice with primitives by working through the [Cost function lesson](https://learning.quantum.ibm.com/course/variational-algorithm-design/cost-functions#primitives) in IBM Quantum Learning.
+ - Practice with primitives by working through the [Cost function lesson](https://learning.quantum.ibm.com/course/variational-algorithm-design/cost-functions#primitives) in IBM Quantum™ Learning.
diff --git a/docs/run/processor-types.mdx b/docs/run/processor-types.mdx
index 84acbcc118f..f6b66719cb8 100644
--- a/docs/run/processor-types.mdx
+++ b/docs/run/processor-types.mdx
@@ -80,7 +80,7 @@ Egret brings the innovations of tunable couplers onto a 33-qubit platform, resul
* [View available Egret systems](https://quantum.ibm.com/services/resources?tab=systems&type=Egret)
- `r1` (December 2022) The first realization of the Egret processor has demonstrated the highest Quantum Volume among IBM Quantum systems and a substantial improvement in two-qubit gate error rates ([https://research.ibm.com/blog/quantum-volume-256](https://research.ibm.com/blog/quantum-volume-256)). This new quantum processor boasts a substantial speedup and fidelity improvement (many gates approaching 99.9%) in two-qubit gates while reducing spectator errors.
+ `r1` (December 2022) The first realization of the Egret processor has demonstrated the highest Quantum Volume among IBM Quantum™ systems and a substantial improvement in two-qubit gate error rates ([https://research.ibm.com/blog/quantum-volume-256](https://research.ibm.com/blog/quantum-volume-256)). This new quantum processor boasts a substantial speedup and fidelity improvement (many gates approaching 99.9%) in two-qubit gates while reducing spectator errors.
## Falcon
diff --git a/docs/run/quantum-serverless.mdx b/docs/run/quantum-serverless.mdx
index bae29443560..f46d1ab1aca 100644
--- a/docs/run/quantum-serverless.mdx
+++ b/docs/run/quantum-serverless.mdx
@@ -5,7 +5,7 @@ description: Run workloads remotely with Quantum Serverless
# Run workloads remotely with Quantum Serverless
-Premium users can build, deploy, and run their workloads remotely on classical compute made available through the IBM Quantum Platform.
+Premium users can build, deploy, and run their workloads remotely on classical compute made available through the IBM Quantum™ Platform.
Try out the tutorials in [IBM Quantum Learning](https://learning.quantum.ibm.com/catalog/tutorials?topics=qiskit-patterns) (note: these are accessible in the Premium Plan once you have logged into your IBM Quantum account) and explore more of the features of Quantum Serverless in the [documentation](https://qiskit-extensions.github.io/quantum-serverless/).
@@ -16,7 +16,7 @@ Try out the tutorials in [IBM Quantum Learning](https://learning.quantum.ibm.com
## Qiskit Patterns with Quantum Serverless
-Creating utility-scale quantum applications generally requires a variety of compute resource requirements. You can use Quantum Serverless to easily submit quantum workflows for remote, managed execution. These quantum workflows can typically be implemented within a common pattern, called a Qiskit Pattern. A Qiskit Pattern is an intuitive, repeatable set of steps for implementing a quantum computing workflow.
+Creating utility-scale quantum applications generally requires a variety of compute resource requirements. You can use Quantum Serverless to easily submit quantum workflows for remote, managed execution. These quantum workflows can typically be implemented within a common pattern, called a Qiskit® Pattern. A Qiskit Pattern is an intuitive, repeatable set of steps for implementing a quantum computing workflow.
Steps in a Qiskit Pattern:
diff --git a/docs/run/reserve-system-time.mdx b/docs/run/reserve-system-time.mdx
index 1cc39f6b3fc..789771d4c67 100644
--- a/docs/run/reserve-system-time.mdx
+++ b/docs/run/reserve-system-time.mdx
@@ -7,7 +7,7 @@ description: Reserve time on a system as an IBM Quantum Network member
# Reserve system time
- This feature is available only to organizations that belong to the [IBM Quantum Network](https://www.ibm.com/quantum/network). Educators and researchers can also make reservations and access other benefits by signing up for one of the special programs we offer. Go to the [Educators program sign-up form](https://quantum.ibm.com/programs/educators) or the [Researchers program sign-up form](https://quantum.ibm.com/programs/researchers) for more information.
+ This feature is available only to organizations that belong to the [IBM Quantum™ Network](https://www.ibm.com/quantum/network). Educators and researchers can also make reservations and access other benefits by signing up for one of the special programs we offer. Go to the [Educators program sign-up form](https://quantum.ibm.com/programs/educators) or the [Researchers program sign-up form](https://quantum.ibm.com/programs/researchers) for more information.
Under standard operating conditions, IBM Quantum systems accept jobs according to the dynamic priority assigned by the [fair-share queuing system](fair-share-queue).
diff --git a/docs/run/retired-systems.mdx b/docs/run/retired-systems.mdx
index b150a79ddf7..3f754645666 100644
--- a/docs/run/retired-systems.mdx
+++ b/docs/run/retired-systems.mdx
@@ -6,7 +6,7 @@ description: A list of IBM Quantum systems that are now retired
# Retired systems
-The following systems have been retired. For the full list of available systems, see the [Compute resources page.](https://quantum.ibm.com/services/resources?services=systems) By default, the information is shown in the card view, but you can use the view switchers (![view-switcher icon](/images/run/view-switcher1.png)) at the top right to change to a sortable table view.
+The following IBM Quantum™ systems have been retired. For the full list of available systems, see the [Compute resources page.](https://quantum.ibm.com/services/resources?services=systems) By default, the information is shown in the card view, but you can use the view switchers (![view-switcher icon](/images/run/view-switcher1.png)) at the top right to change to a sortable table view.
To retrieve jobs from a retired system, see [these instructions.](#retrieve)
diff --git a/docs/run/run-jobs-in-session.mdx b/docs/run/run-jobs-in-session.mdx
index d9922ab969c..0c30dbc7367 100644
--- a/docs/run/run-jobs-in-session.mdx
+++ b/docs/run/run-jobs-in-session.mdx
@@ -10,7 +10,7 @@ There are several ways to set up and use [sessions](sessions). It is recommende
## Set up to use sessions
-Before starting a session, you must [set up Qiskit Runtime](../start/install) and initialize it as a service:
+Before starting a session, you must [set up Qiskit® Runtime](../start/install) and initialize it as a service:
``` python
from qiskit_ibm_runtime import QiskitRuntimeService, Session, Sampler, Estimator
@@ -173,7 +173,7 @@ with Session(service=service, backend="ibmq_qasm_simulator") as session:
print(session.details())
```
- You can also view session details on the [Quantum Platform Jobs page](https://quantum.ibm.com/jobs) or on the IBM Cloud Jobs page, which you access from your [Instances page](https://cloud.ibm.com/quantum/instances).
+ You can also view session details on the [Quantum Platform Jobs page](https://quantum.ibm.com/jobs) or on the IBM Cloud® Jobs page, which you access from your [Instances page](https://cloud.ibm.com/quantum/instances).
## Next steps
diff --git a/docs/run/sessions.mdx b/docs/run/sessions.mdx
index e7911f533f8..3bb538355cd 100644
--- a/docs/run/sessions.mdx
+++ b/docs/run/sessions.mdx
@@ -6,7 +6,7 @@ description: An overview of sessions and when to use them.
# Introduction to Qiskit Runtime sessions
-A session is a Qiskit Runtime feature that lets you efficiently run multi-job iterative workloads on quantum computers. Using sessions helps avoid delays caused by queuing each job separately, which can be particularly useful for iterative tasks that require frequent communication between classical and quantum resources.
+A session is a Qiskit® Runtime feature that lets you efficiently run multi-job iterative workloads on quantum computers. Using sessions helps avoid delays caused by queuing each job separately, which can be particularly useful for iterative tasks that require frequent communication between classical and quantum resources.
The queuing time does not decrease for the first job submitted within a session. Therefore, a session does not provide any benefits when running a single job. Additionally, sessions do not work on simulators because simulators do not have a queue.
diff --git a/docs/run/system-information.mdx b/docs/run/system-information.mdx
index 9a55dbc4ce3..3e13ab4c131 100644
--- a/docs/run/system-information.mdx
+++ b/docs/run/system-information.mdx
@@ -6,7 +6,7 @@ description: Information about IBM Quantum system calibration, properties, and v
# System information
-IBM Quantum offers both open and premium access to a wide variety of quantum systems. All quantum systems deployed by IBM Quantum are based on superconducting qubit technology, as the control and scalability of this technology pave a clear path to achieving quantum advantage with these systems. You can see the full details of all IBM Quantum systems on the [Compute resources page.](https://quantum.ibm.com/services/resources?tab=systems)
+IBM Quantum™ offers both open and premium access to a wide variety of quantum systems. All quantum systems deployed by IBM Quantum are based on superconducting qubit technology, as the control and scalability of this technology pave a clear path to achieving quantum advantage with these systems. You can see the full details of all IBM Quantum systems on the [Compute resources page.](https://quantum.ibm.com/services/resources?tab=systems)
Note that the words "system" and "backend" are often used interchangeably.
@@ -41,11 +41,11 @@ The revision version number will increment for fixes that do not break the exist
## System configuration values
-The following is a subset of system configuration values available in IBM Quantum and from [Qiskit](/api/qiskit/qiskit.providers.models.BackendConfiguration).
+The following is a subset of system configuration values available in IBM Quantum and from [Qiskit®](/api/qiskit/qiskit.providers.models.BackendConfiguration).
These values are shown on both the Systems and Simulators tabs of the [Compute resources page](https://quantum.ibm.com/services/resources?services=systems) and the details page for each system.
-* **Name** - The unique name assigned to a specific quantum system or simulator. Systems hosted on IBM Cloud® have names that begin with `ibmq_*` (older systems) or `ibm_*` (newer systems). All quantum systems are given a city name, e.g., `ibmq_johannesburg`. This name does not indicate where the actual quantum system is hosted. They are named after IBM locations around the world.
+* **Name** - The unique name assigned to a specific quantum system or simulator. Systems hosted on IBM Cloud® have names that begin with `ibmq_*` (older systems) or `ibm_*` (newer systems). All quantum systems are given a city name, e.g., `ibmq_johannesburg`. This name does not indicate where the actual quantum system is hosted. They are named after IBM® locations around the world.
* **Qubits** - The number of qubits in a system. For physical quantum systems, this is the number of physical qubits in the device. For simulators, this number need not be uniquely defined, and instead can depend on the simulation method and/or the amount of memory available.
* **EPLG** - Error per layered gate in a chain of 100 qubits. Error per layered gate measures the average gate process error in a layered chain of $N$ qubits ($N$=100 here). It is derived from a similar quantity known as the layer fidelity (LF) where EPLG$_{100}$ = 1-LF$^{\frac{1}{99}}$ and layer fidelity is the process fidelity of the layered chain of $N$ qubits. For details, see the paper [Benchmarking quantum processor performance at scale](https://arxiv.org/abs/2311.05933).
* **CLOPS** - Circuit layer operations per second, and also known as CLOPS_v, is a measure of how many layers of a Quantum volume circuit (virtual circuit) a QPU (quantum processing unit) can execute per unit of time. Find more information about this metric in the paper [Quality, Speed, and Scale: three key attributes to measure the performance of near-term quantum computers](https://arxiv.org/abs/2110.14108).
diff --git a/docs/start/configure-qiskit-local.mdx b/docs/start/configure-qiskit-local.mdx
index 9d2d7aa189a..1bcb68ca52c 100644
--- a/docs/start/configure-qiskit-local.mdx
+++ b/docs/start/configure-qiskit-local.mdx
@@ -5,7 +5,7 @@ description: Configure Qiskit on your local machine
---
# Configure Qiskit locally
-After Qiskit is installed and running, there are some optional steps you can take to change the default Qiskit behavior.
+After Qiskit® is installed and running, there are some optional steps you can take to change the default Qiskit behavior.
## User configuration file
diff --git a/docs/start/hello-world.ipynb b/docs/start/hello-world.ipynb
index ce72b9c0242..2d90a002210 100644
--- a/docs/start/hello-world.ipynb
+++ b/docs/start/hello-world.ipynb
@@ -7,7 +7,7 @@
"source": [
"# Hello world\n",
"\n",
- "This Hello world example creates a simple quantum program and runs it on a quantum system. Begin with following the [Install and set up](install) instructions if you haven't already, including the steps to [Set up to use IBM Quantum Platform](setup-channel#set-up-to-use-ibm-quantum-platform).\n",
+ "This Hello world example creates a simple quantum program and runs it on a quantum system. Begin with following the [Install and set up](install) instructions if you haven't already, including the steps to [Set up to use IBM Quantum™ Platform](setup-channel#set-up-to-use-ibm-quantum-platform).\n",
"\n",
"We recommend that you use the [Jupyter](https://jupyter.org/install) development environment to interact with quantum computers. Be sure to install the recommended extra visualization support (`pip install qiskit[visualization]`), and note that zsh users need to put `'qiskit[visualization]'` in single quotes.\n",
"\n",
@@ -292,7 +292,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.11.1"
+ "version": "3.12.0"
},
"title": "Hello world"
},
diff --git a/docs/start/index.mdx b/docs/start/index.mdx
index b6ea505ad36..ee53e211d33 100644
--- a/docs/start/index.mdx
+++ b/docs/start/index.mdx
@@ -10,9 +10,9 @@ in_page_toc_max_heading_level: 2
The quantum community has explored quantum computing on the cloud since 2016. Now the community has a new challenge: *demonstrate useful quantum computation*.
-Through IBM Quantum, you have access to performant and utility-scale (>100-qubit) quantum systems for your work, as well as scalable and flexible quantum software. Whether you try out a no-cost plan or run your programs through a pay-as-you-go or premium plan, you can start doing useful work with quantum computing now.
+Through IBM Quantum™, you have access to performant and utility-scale (>100-qubit) quantum systems for your work, as well as scalable and flexible quantum software. Whether you try out a no-cost plan or run your programs through a pay-as-you-go or premium plan, you can start doing useful work with quantum computing now.
-The sections at the core of our documentation are based on the stages of a typical quantum user’s journey: build quantum circuits and operators in Qiskit, then transpile and run on quantum systems using Qiskit Runtime primitives, a simplified interface for circuit execution. By pairing Qiskit with Qiskit Runtime, you benefit from seamless circuit execution powered by advanced runtime compilation, error suppression, and error mitigation techniques.
+The sections at the core of our documentation are based on the stages of a typical quantum user’s journey: build quantum circuits and operators in Qiskit®, then transpile and run on quantum systems using Qiskit Runtime primitives, a simplified interface for circuit execution. By pairing Qiskit with Qiskit Runtime, you benefit from seamless circuit execution powered by advanced runtime compilation, error suppression, and error mitigation techniques.
If you’re just getting started with IBM Quantum, you are in the right place. Use the topics in this section to get ready, then proceed to [Build](../build) to create your first quantum circuit. Keep working through the sections in order, following the tabs at the top of this page.
@@ -28,13 +28,13 @@ Already know what you’re looking for?
- [Run](../run): Run on our hardware with job configuration options such as sessions.
-- **API reference**: Find API references for [Qiskit](/api/qiskit), [Qiskit Runtime IBM Client](/api/qiskit-ibm-runtime), [Qiskit IBM Runtime Rest API](/api/runtime/), and [Qiskit IBM Provider](/api/qiskit-ibm-provider) in the API reference drop-down menu above. You can also find the [Error code registry](../errors) here.
+- **API reference**: Find API references for [Qiskit](/api/qiskit), [Qiskit Runtime IBM Client](/api/qiskit-ibm-runtime), [Qiskit IBM Runtime REST API](/api/runtime/), and [Qiskit IBM Provider](/api/qiskit-ibm-provider) in the API reference drop-down menu above. You can also find the [Error code registry](../errors) here.
## Community
Join other users in our quantum community to share ideas and see what others are up to.
-- Join our [Slack](https://ibm.co/joinqiskitslack)
+- Join our [Slack channel](https://ibm.co/joinqiskitslack)
- Follow us on [LinkedIn](https://www.linkedin.com/showcase/ibm-quantum/)
- Start contributing at [GitHub](https://github.com/qiskit)
- Find us on [YouTube](https://www.youtube.com/qiskit) and [Medium](https://medium.com/qiskit)
diff --git a/docs/start/install-qiskit-source.mdx b/docs/start/install-qiskit-source.mdx
index ac317cf291b..31a5a3d7bb0 100644
--- a/docs/start/install-qiskit-source.mdx
+++ b/docs/start/install-qiskit-source.mdx
@@ -5,7 +5,7 @@ description: Learn how to install the development version of Qiskit.
---
# Install Qiskit and Qiskit Runtime from source
-Installing Qiskit from source allows you to access the current development version, instead of using the version in the Python Package Index (PyPI) repository. This lets you inspect and extend the latest version of the Qiskit code more efficiently.
+Installing Qiskit® from source allows you to access the current development version, instead of using the version in the Python Package Index (PyPI) repository. This lets you inspect and extend the latest version of the Qiskit code more efficiently.
## Create and activate a new virtual environment
diff --git a/docs/start/install.mdx b/docs/start/install.mdx
index 0ff1f7ff421..7e12dd28111 100644
--- a/docs/start/install.mdx
+++ b/docs/start/install.mdx
@@ -6,7 +6,7 @@ description: Install and set up Qiskit and Qiskit Runtime on various operating s
# Install and set up Qiskit
-Whether you will work locally or in a cloud environment, the first step for all users is to install Qiskit. For those wanting to run on a real system, your next step is to choose one of two channels in order to access IBM Quantum systems: IBM Quantum Platform or IBM Cloud.
+Whether you will work locally or in a cloud environment, the first step for all users is to install Qiskit®. For those wanting to run on a real system, your next step is to choose one of two channels in order to access IBM Quantum™ systems: IBM Quantum Platform or IBM Cloud®.
## Install and set up Qiskit with the Qiskit Runtime client
diff --git a/docs/start/setup-channel.mdx b/docs/start/setup-channel.mdx
index bb27bb83624..dd86e0f28d2 100644
--- a/docs/start/setup-channel.mdx
+++ b/docs/start/setup-channel.mdx
@@ -5,13 +5,13 @@ description: Installation and setup instructions for IBM Quantum Platform or IBM
---
# Select and set up an IBM Quantum channel
-You can access IBM Quantum systems by using the IBM Quantum Platform or IBM Cloud _channel_. _Channel_ is the term used to describe the method you use to access IBM Quantum services.
+You can access IBM Quantum™ systems by using the IBM Quantum Platform or IBM Cloud® _channel_. _Channel_ is the term used to describe the method you use to access IBM Quantum services.
### IBM Quantum Platform
IBM Quantum Platform has Open (free access) and Premium (enterprise subscription) plans. See [IBM Quantum access plans](https://www.ibm.com/quantum/access-plans) for details.
-You can make requests locally (on your laptop or other device) using the `qiskit-ibm-runtime` client or use a cloud-based environment, such as [IBM Quantum Lab](https://lab.quantum.ibm.com) (a Jupyter Notebook environment) or [IBM Quantum Composer](https://quantum.ibm.com/composer/files/new) (a virtual circuit composer). To make requests from a local environment, you need to [install and set up Qiskit with the Qiskit Runtime Client](install#local) and [set up to use IBM Quantum Platform.](#iqp)
+You can make requests locally (on your laptop or other device) using the `qiskit-ibm-runtime` client or use a cloud-based environment, such as [IBM Quantum Lab](https://lab.quantum.ibm.com) (a Jupyter Notebook environment) or [IBM Quantum Composer](https://quantum.ibm.com/composer/files/new) (a virtual circuit composer). To make requests from a local environment, you need to [install and set up Qiskit® with the Qiskit Runtime Client](install#local) and [set up to use IBM Quantum Platform.](#iqp)
[IBM Quantum Lab](https://lab.quantum.ibm.com) and [IBM Quantum Composer](https://quantum.ibm.com/composer/files/new) are self-contained tools and require no setup.
diff --git a/docs/support.mdx b/docs/support.mdx
index 275da94f060..b6bdaca90ea 100644
--- a/docs/support.mdx
+++ b/docs/support.mdx
@@ -8,12 +8,12 @@ description: How to find answers to questions or problems you encounter while us
## IBM Quantum Support
-Members of the IBM Quantum Network can reach out to IBM Quantum Support if they have technical difficulties, questions, or concerns. Ask your administrator or IBM representative for IBM Quantum Support contact information.
+Members of the IBM Quantum™ Network can reach out to IBM Quantum Support if they have technical difficulties, questions, or concerns. Ask your administrator or IBM® representative for IBM Quantum Support contact information.
## Qiskit
-For help with Qiskit, access our Slack community: [Qiskit Slack](https://qisk.it/join-slack).
+For help with Qiskit®, access our Slack community: [Qiskit Slack](https://qisk.it/join-slack).
## Qiskit Runtime
diff --git a/docs/transpile/ai-transpiler-passes.mdx b/docs/transpile/ai-transpiler-passes.mdx
index 06f59431249..8646ed6df1b 100644
--- a/docs/transpile/ai-transpiler-passes.mdx
+++ b/docs/transpile/ai-transpiler-passes.mdx
@@ -5,7 +5,7 @@ description: What are the AI transpiler passes and how to use them
# AI transpiler passes
-The AI-powered transpiler passes are experimental passes that work as a drop-in replacement of "traditional" qiskit passes for some transpiling tasks. They often produce better results than existing heuristic algorithms (such as lower depth and CNOT count), but are also much faster than optimization algorithms such as Boolean satisfiability solvers. The AI transpiler passes run on the cloud and are available to IBM Quantum Premium Plan users.
+The AI-powered transpiler passes are experimental passes that work as a drop-in replacement of "traditional" Qiskit® passes for some transpiling tasks. They often produce better results than existing heuristic algorithms (such as lower depth and CNOT count), but are also much faster than optimization algorithms such as Boolean satisfiability solvers. The AI transpiler passes run on the cloud and are available to IBM Quantum™ Premium Plan users.
diff --git a/docs/transpile/common-parameters.mdx b/docs/transpile/common-parameters.mdx
index 76739837d88..fd6dc22eaa5 100644
--- a/docs/transpile/common-parameters.mdx
+++ b/docs/transpile/common-parameters.mdx
@@ -14,9 +14,9 @@ You can use the approximation degree to specify how closely you want the resulta
In two-qubit unitary synthesis (used in initial stages of all levels and for optimization stage with optimization level 3), this value specifies the target fidelity of the output decomposition. That is, how much error is introduced when a matrix representation of a circuit is converted to discrete gates. If the approximation degree is a lower value (more approximation), the output circuit from synthesis will differ more from the input matrix, but will also likely have fewer gates (because any arbitrary two-qubit operation can be decomposed perfectly with at most three CX gates) and is easier to run.
-When the approximation degree is less than 1.0, circuits with one or two CX gates might be synthesized, leading to less error from the hardware, but more from the approximation. Since CX is the most expensive gate in terms of error, it might be beneficial to decrease the number of them at the cost of fidelity in synthesis (this technique was used to increase quantum volume on IBM devices: [Validating quantum computers using randomized model circuits](https://arxiv.org/abs/1811.12926)).
+When the approximation degree is less than 1.0, circuits with one or two CX gates might be synthesized, leading to less error from the hardware, but more from the approximation. Since CX is the most expensive gate in terms of error, it might be beneficial to decrease the number of them at the cost of fidelity in synthesis (this technique was used to increase quantum volume on IBM® devices: [Validating quantum computers using randomized model circuits](https://arxiv.org/abs/1811.12926)).
-As an example, we generate a random 2-qubit `UnitaryGate` which will be synthesized in the initial stage. Setting the `approximation_degree` less than 1.0 might generate an approximate circuit. We must also specify the `basis_gates` to let the synthesis method know which gates it can use for the approximate synthesis.
+As an example, we generate a random two-qubit `UnitaryGate` which will be synthesized in the initial stage. Setting the `approximation_degree` less than 1.0 might generate an approximate circuit. We must also specify the `basis_gates` to let the synthesis method know which gates it can use for the approximate synthesis.
```python
from qiskit import QuantumCircuit, transpile
@@ -98,7 +98,7 @@ These options influence how the transpiler works and are used to try and get bet
* `unitary_synthesis_method` (str) - The name of the unitary synthesis method to use. By default `default` is used.
- To see a list of all installed plugins for a given stage you can run [`list_stage_plugins("stage_name")`](https://docs.quantum.ibm.com/api/qiskit/transpiler_plugins#plugin-api). For example if you want to see a list of all installed plugins for the routing stage run `list_stage_plugins(routing)`.
+ To see a list of all installed plugins for a given stage, run [`list_stage_plugins("stage_name")`](https://docs.quantum.ibm.com/api/qiskit/transpiler_plugins#plugin-api). For example, if you want to see a list of all installed plugins for the routing stage, run `list_stage_plugins(routing)`.
## Next steps
diff --git a/docs/transpile/custom-transpiler-pass.ipynb b/docs/transpile/custom-transpiler-pass.ipynb
index 98873d74465..9b782eb88a4 100644
--- a/docs/transpile/custom-transpiler-pass.ipynb
+++ b/docs/transpile/custom-transpiler-pass.ipynb
@@ -6,7 +6,7 @@
"source": [
"# Write a custom transpiler pass\n",
"\n",
- "Qiskit lets you create custom transpilation passes and run them in the `PassManager` object or add them to a `StagedPassManager`. Here we will demonstrate how to write a transpiler pass, focusing on building a pass that performs [Pauli twirling](https://arxiv.org/abs/quant-ph/0606161) on the noisy quantum gates in a quantum circuit. This example uses the DAG, which is the object manipulated by the `TransformationPass` type of pass.\n"
+ "Qiskit® lets you create custom transpilation passes and run them in the `PassManager` object or add them to a `StagedPassManager`. Here we will demonstrate how to write a transpiler pass, focusing on building a pass that performs [Pauli twirling](https://arxiv.org/abs/quant-ph/0606161) on the noisy quantum gates in a quantum circuit. This example uses the DAG, which is the object manipulated by the `TransformationPass` type of pass.\n"
]
},
{
@@ -18,7 +18,7 @@
" Background: DAG representation\n",
" \n",
"\n",
- "Before building a pass it is important to introduce the internal representation of quantum circuits in Qiskit, the [directed acyclic graph (DAG)](../api/qiskit/qiskit.dagcircuit.DAGCircuit) (see [this tutorial](https://qiskit.org/ecosystem/rustworkx/tutorial/dags.html) for an overview). To follow these steps, install the `graphivz` library for the DAG plotting functions. Use a Python package manager (such as `pip` or `conda`) to install `pydot` and your system's native package manager (for example, `apt`, `brew`, `yum`, or `dnf`) for `graphivz`.\n",
+ "Before building a pass, it is important to introduce the internal representation of quantum circuits in Qiskit, the [directed acyclic graph (DAG)](../api/qiskit/qiskit.dagcircuit.DAGCircuit) (see [this tutorial](https://qiskit.org/ecosystem/rustworkx/tutorial/dags.html) for an overview). To follow these steps, install the `graphivz` library for the DAG plotting functions. Use a Python package manager (such as `pip` or `conda`) to install `pydot` and your system's native package manager (for example, `apt`, `brew`, `yum`, or `dnf`) for `graphivz`.\n",
"\n",
"In Qiskit, within the transpilation stages, circuits are represented using a DAG. In general, a DAG is composed of *vertices* (also known as \"nodes\") and directed *edges* that connect pairs of vertices in a particular orientation. This representation is stored using `qiskit.dagcircuit.DAGCircuit` objects that are composed of invididual `DagNode` objects. The advantage of this representation over a pure list of gates (that is, a *netlist*) is that the flow of information between operations is explicit, making it easier to make transformation decisions. \n",
"\n",
@@ -75,7 +75,7 @@
"\n",
"From the DAG, use the `op_nodes()` method to return all of its nodes. The DAG can also be used to collect runs, which are sequences of nodes that run uninterrupted on a qubit. These can be collected as single-qubit runs with `collect_1q_runs`, two-qubit runs with `collect_2q_runs`, and runs of nodes where the instruction names are in a namelist with `collect_runs`. The `DAGCircuit` has many methods for searching and traversing a graph. One commonly used method is `topological_op_nodes`, which provides the nodes in a dependency ordering. Other methods such as `bfs_successors` are used primarily to determine how nodes interact with subsequent operations on a DAG. \n",
"\n",
- "In the example, we want to replace each node, representing an instruction, with a subcircuit built as a mini DAG. The mini DAG has a two-qubit quantum register added to it. Operations are added to the mini DAG by using `apply_operation_back`, which places the `Instruction` on the mini DAG's output (whereas `apply_operation_front` would place it on the mini DAG's input). The node is then substituted by the mini DAG by using `substitute_node_with_dag`, and the process continues over each instance of `CXGate` and `ECRGate` in the DAG (corresponding to the two-qubit basis gates on IBM backends)."
+ "In the example, we want to replace each node, representing an instruction, with a subcircuit built as a mini DAG. The mini DAG has a two-qubit quantum register added to it. Operations are added to the mini DAG by using `apply_operation_back`, which places the `Instruction` on the mini DAG's output (whereas `apply_operation_front` would place it on the mini DAG's input). The node is then substituted by the mini DAG by using `substitute_node_with_dag`, and the process continues over each instance of `CXGate` and `ECRGate` in the DAG (corresponding to the two-qubit basis gates on IBM® backends)."
]
},
{
diff --git a/docs/transpile/defaults-and-configuration-options.mdx b/docs/transpile/defaults-and-configuration-options.mdx
index cbc0faac31d..7ad1051b17e 100644
--- a/docs/transpile/defaults-and-configuration-options.mdx
+++ b/docs/transpile/defaults-and-configuration-options.mdx
@@ -32,7 +32,7 @@ qc = qc.compose(GroverOperator(oracle))
qc.measure_all()
# View the circuit
-qc.draw(output='mpl')
+qc.draw(output='mpl', style="iqp")
```
![Original circuit](/images/transpile/defaults-and-configuration-options/original-circuit.png "Original circuit")
@@ -47,7 +47,7 @@ backend = FakeSherbrooke()
transpiled_circ = transpile(qc, backend)
# View the transpiled circuit
-transpiled_circ.draw(output='mpl')
+transpiled_circ.draw(output='mpl', style="iqp")
```
![Transpiled circuit](/images/transpile/defaults-and-configuration-options/transpiled-circuit.png "Transpiled circuit")
@@ -208,7 +208,7 @@ qiskit.compiler.transpile(unitary_synthesis_method='default', translation_method
- Learn how to [Set the optimization level](set-optimization).
- Review more [Commonly used parameters](common-parameters).
- - Learn how to [Set the optimization level when using Qiskit Runtime.](../run/advanced-runtime-options)
+ - Learn how to [Set the optimization level when using Qiskit® Runtime.](../run/advanced-runtime-options)
- Visit the [Transpile with pass managers](transpile-with-pass-managers) topic.
- For examples, see [Representing quantum computers.](representing_quantum_computers)
- Try the [Submit transpiled circuits](https://learning.quantum.ibm.com/tutorial/submit-transpiled-circuits) tutorial.
diff --git a/docs/transpile/dynamical-decoupling-pass-manager.ipynb b/docs/transpile/dynamical-decoupling-pass-manager.ipynb
index 53ba70ad35c..0eb688d0211 100644
--- a/docs/transpile/dynamical-decoupling-pass-manager.ipynb
+++ b/docs/transpile/dynamical-decoupling-pass-manager.ipynb
@@ -243,7 +243,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Now, `YGate`s are absent from our circuit, and there is explicit timing information in the form of `Delay` gates. This transpiled circuit with dynamical decoupling is not ready to be sent to the backend. When doing so, remember to set the `skip_transpilation=True` option (See [Advanced runtime compilation options](/run/configure-runtime-compilation#advanced-runtime-compilation-options).)"
+ "Now, `YGate`s are absent from our circuit, and there is explicit timing information in the form of `Delay` gates. This transpiled circuit with dynamical decoupling is not ready to be sent to the backend. When doing so, remember to set the `skip_transpilation=True` option (See [Advanced runtime compilation options](/run/configure-runtime-compilation#advanced-runtime-compilation-options))."
]
},
{
diff --git a/docs/transpile/index.mdx b/docs/transpile/index.mdx
index e11dd4ecbe0..19fc502137b 100644
--- a/docs/transpile/index.mdx
+++ b/docs/transpile/index.mdx
@@ -7,7 +7,7 @@ description: Introduction to the transpiler
# Introduction
-Transpilation is the process of rewriting a given input circuit to match the topology of a specific quantum device, and optimize the circuit instructions for execution on noisy quantum systems. This documentation covers the tooling and workflows for local transpilation available to all Qiskit users, as well as for the cloud-based [Qiskit transpiler service](qiskit-transpiler-service) available to Premium Plan users. If you're using primitives and are only interested in the default transpilation options provided by the Qiskit Runtime service, read the [Configure runtime compilation for Qiskit Runtime](../run/configure-runtime-compilation) topic.
+Transpilation is the process of rewriting a given input circuit to match the topology of a specific quantum device, and optimize the circuit instructions for execution on noisy quantum systems. This documentation covers the tooling and workflows for local transpilation available to all Qiskit® users, as well as for the cloud-based [Qiskit transpiler service](qiskit-transpiler-service) available to Premium Plan users. If you're using primitives and are only interested in the default transpilation options provided by the Qiskit Runtime service, read the [Configure runtime compilation for Qiskit Runtime](../run/configure-runtime-compilation) topic.
A central component of Qiskit, the transpiler is designed for modularity and extensibility. Its central goal is to write new circuit transformations (known as transpiler **passes**), and combine them with other existing passes, greatly reducing the depth and complexity of quantum circuits. Which passes are chained together and in which order has a major effect on the final outcome. This pipeline is determined by the [`PassManager`](/api/qiskit/qiskit.transpiler.PassManager) and [`StagedPassManager`](/api/qiskit/qiskit.transpiler.StagedPassManager) objects. The `StagedPassManager` orchestrates the execution of one or more `PassManagers` and determines the order in which they are executed, while the `PassManager` object is merely a collection of one or more passes. Think of the `StagedPassManager` as the conductor in an orchestra, the `PassManagers` as the different instrument sections, and the `Pass`es as the individual musicians. In this way, you can compose hardware-efficient quantum circuits that let you execute utility-scale work while keeping noise manageable.
diff --git a/docs/transpile/qiskit-transpiler-service.mdx b/docs/transpile/qiskit-transpiler-service.mdx
index 1807edb1938..a216c5ec381 100644
--- a/docs/transpile/qiskit-transpiler-service.mdx
+++ b/docs/transpile/qiskit-transpiler-service.mdx
@@ -5,7 +5,7 @@ description: What is the Qiskit transpiler service and how to use it
---
# Transpile circuits remotely with the Qiskit transpiler service
-The Qiskit transpiler service provides transpilation capabilities on the cloud. In addition to the local Qiskit transpiler capabilities, your transpilation tasks can benefit from both IBM Quantum Cloud resources and AI-powered transpiler passes.
+The Qiskit® transpiler service provides transpilation capabilities on the cloud. In addition to the local Qiskit transpiler capabilities, your transpilation tasks can benefit from both IBM Quantum™ cloud resources and AI-powered transpiler passes.
The Qiskit transpiler service offers a Python library to seamlessly integrate this service and its capabilities into your current Qiskit patterns and workflows.
diff --git a/docs/transpile/representing_quantum_computers.mdx b/docs/transpile/representing_quantum_computers.mdx
index 0cd7d7a91ff..878680796d2 100644
--- a/docs/transpile/representing_quantum_computers.mdx
+++ b/docs/transpile/representing_quantum_computers.mdx
@@ -28,7 +28,7 @@ backend = FakeSherbrooke()
target = backend.target
```
-The `EfficientSU2` circuit consists of layers of single qubit operations spanned by `SU(2)` and `CX` entanglements. This is a heuristic pattern that can be used to prepare trial wave functions for variational quantum algorithms or classification circuits for machine learning.
+The `EfficientSU2` circuit consists of layers of single-qubit operations spanned by `SU(2)` and `CX` entanglements. This is a heuristic pattern that can be used to prepare trial wave functions for variational quantum algorithms or classification circuits for machine learning.
```python
qc = EfficientSU2(12, entanglement='circular', reps=1)
@@ -52,7 +52,7 @@ Providing the `backend` properties, including the gates' error rates, allows the
## Coupling map
-The coupling map is a graph that shows which qubits are connected and hence have 2-qubit gates between them. Sometimes this graph is directional, meaning that the 2-qubit gates can only go in one direction. However, the transpiler can always flip a gate's direction by adding additional 1-qubit gates. An abstract quantum circuit can always be represented on this graph, even if its connectivity is limited, by introducting SWAP gates to move the quantum information around.
+The coupling map is a graph that shows which qubits are connected and hence have two-qubit gates between them. Sometimes this graph is directional, meaning that the two-qubit gates can only go in one direction. However, the transpiler can always flip a gate's direction by adding additional single-qubit gates. An abstract quantum circuit can always be represented on this graph, even if its connectivity is limited, by introducting SWAP gates to move the quantum information around.
The qubits from our abstract circuits are called _virtual qubits_ and those on the coupling map are _physical qubits_. The transpiler provides a mapping between virtual and physical qubits. One of the first steps in transpilation, the _routing_ stage, performs this mapping.
@@ -70,7 +70,7 @@ qc_t_cm_lv0.draw('mpl', style='iqp', idle_wires=False)
```
![Ansatz transpiled to coupling map with optimization level 0](/images/transpile/representing_quantum_computers/qc_t_cm_lv0.png "Circuit transpiled with a coupling map")
-As shown above, several SWAP gates were inserted (each consisting of three CX gates), which will cause a lot of errors on current devices. To see which qubits are selected on the actual qubit topology, use `plot_circuit_layout` from Qiskit Visualizations:
+As shown above, several SWAP gates were inserted (each consisting of three CX gates), which will cause a lot of errors on current devices. To see which qubits are selected on the actual qubit topology, use `plot_circuit_layout` from Qiskit® Visualizations:
```python
from qiskit.visualization import plot_circuit_layout
@@ -110,10 +110,10 @@ print(basis_gates)
['rz', 'sx', 'x', 'ecr', 'measure', 'delay']
```
-The default single-qubit gates on _ibm_sherbrooke_ are `rz`, `x`, and `sx`, and the default two-qubit gate is `ecr` which stands for echoed cross resonance. CX gates are constructed from `ecr` gates, so on some systems `ecr` is specified as the two-qubit basis gate while on others `cx` is default. The `ecr` gates is the _entangling_ part of the `cx` gate. If one desires to use a gate that is not in the basis gate set, instructions for custom gates can be provided using [pulse gates](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.PulseGates#pulsegates). In addition to the control gates, there are also `delay` and `measurement` instructions.
+The default single-qubit gates on _ibm_sherbrooke_ are `rz`, `x`, and `sx`, and the default two-qubit gate is `ecr` (echoed cross-resonance). CX gates are constructed from `ecr` gates, so on some systems `ecr` is specified as the two-qubit basis gate, while on others `cx` is default. The `ecr` gate is the _entangling_ part of the `cx` gate. To use a gate that is not in the basis gate set, follow instructions in the Qiskit API documentation for custom gates using [pulse gates](/api/qiskit/qiskit.transpiler.passes.PulseGates#pulsegates). In addition to the control gates, there are also `delay` and `measurement` instructions.
- Systems have default basis gates, but you can choose whatever gates you want, as long as you provide the instruction or add pulse gates (See [Create transpiler passes.](custom-transpiler-pass)) The default basis gates are those that calibrations have been done for on the system, so no further instruction/pulse gate needs to be provided. For example, on some systems `cx` is the default two-qubit gates and `ecr` on others.
+ Systems have default basis gates, but you can choose whatever gates you want, as long as you provide the instruction or add pulse gates (see [Create transpiler passes.](custom-transpiler-pass)) The default basis gates are those that calibrations have been done for on the system, so no further instruction/pulse gate needs to be provided. For example, on some systems `cx` is the default two-qubit gate and `ecr` on others. See the [Native gates and operations](../run/native-gates) topic for more details.
@@ -129,7 +129,7 @@ Note that the `CXGate`s have been decomposed to `ecr` gates and single-qubit bas
Constructing a `target` object lets you consider the qubits' error rates in addition to the `coupling_map` and `basis_gates`. The `target` object contains everything needed to target a system, but here we build one that contains a limited amount of information.
-We retrieved the `target` from `backend.target` previously. This contains a lot of system information, including error rates. For example, the instruction properties of the echoed cross resonance gate between qubit 0 and 1 (not that `ecr` is directional) is retrieved by running the following command:
+We retrieved the `target` from `backend.target` previously. This contains a lot of system information, including error rates. For example, the instruction properties of the echoed cross-resonance gate between qubit 0 and 1 (note that `ecr` is directional) is retrieved by running the following command:
```python
target['ecr'][(1, 0)]
diff --git a/docs/transpile/set-optimization.mdx b/docs/transpile/set-optimization.mdx
index eac122b40a2..5f49698a251 100644
--- a/docs/transpile/set-optimization.mdx
+++ b/docs/transpile/set-optimization.mdx
@@ -14,7 +14,7 @@ Higher optimization levels generate more optimized circuits at the expense of lo
- `optimization_level=0`: Trivial optimization, which maps the circuit to the system with no explicit optimization.
- `optimization_level=1-3`: Increasingly complex optimization, with heuristic algorithms that are used to find a layout and insert SWAP gates, with the goal of improving the overall performance of the circuit. The number of iterations that these algorithms run increases with higher optimization levels.
-Because finding the best layout is an NP-hard problem, it is the most time-consuming part of the transpilation process. However, Qiskit uses stochastic algorithms that have been refactored into Rust, resulting in significant speedup. Therefore, optimization levels 1-3 all use the same layout algorithms. There are some slight differences in how the circuits are translated into basis gates, as described in the following table:
+Because finding the best layout is an NP-hard problem, it is the most time-consuming part of the transpilation process. However, Qiskit® uses stochastic algorithms that have been refactored into Rust, resulting in significant speedup. Therefore, optimization levels 1-3 all use the same layout algorithms. There are some slight differences in how the circuits are translated into basis gates, as described in the following table:
@@ -90,7 +90,7 @@ rand_U = UnitaryGate(UU)
qc = QuantumCircuit(2)
qc.append(rand_U, range(2))
qc.swap(0, 1)
-qc.draw('mpl')
+qc.draw('mpl', style="iqp")
```
![Original abstract circuit](/images/transpile/defaults-and-configuration-options/abstract-circ.png "Original abstract circuit")
@@ -149,15 +149,6 @@ Adjusting the optimization level can change other aspects of the circuit too, no
## Next steps
-
- - [Default options and configuration settings](defaults-and-configuration-options)
- - [Commonly used parameters](common-parameters)
- - Try the [Submit transpiled circuits](https://learning.quantum.ibm.com/tutorial/submit-transpiled-circuits) tutorial.
-
-
-
-## Next steps
-
- To learn how to use the `transpile` function, start with the [Transpilation default settings and configuration options](defaults-and-configuration-options) topic.
- Continue learning about transpilation with the [Transpiler stages](transpiler-stages) topic.
diff --git a/docs/transpile/transpile-with-pass-managers.ipynb b/docs/transpile/transpile-with-pass-managers.ipynb
index a4a930d8fdf..b2e9d895772 100644
--- a/docs/transpile/transpile-with-pass-managers.ipynb
+++ b/docs/transpile/transpile-with-pass-managers.ipynb
@@ -15,7 +15,7 @@
"source": [
"## What is a (staged) pass manager?\n",
"\n",
- "In the context of Qiskit, transpilation refers to the process of transforming an input circuit into a form that is suitable for execution on a quantum device. Transpilation typically occurs in a sequence of steps called transpiler passes. The circuit is processed by each transpiler pass in sequence, with the output of one pass becoming the input to the next. For example, one pass could go through the circuit and merge all consecutive sequences of single-qubit gates, and then the next pass could synthesize these gates into the basis set of the target device. The transpiler passes included with Qiskit are located in the [qiskit.transpiler.passes](/api/qiskit/transpiler_passes) module.\n",
+ "In the context of Qiskit®, transpilation refers to the process of transforming an input circuit into a form that is suitable for execution on a quantum device. Transpilation typically occurs in a sequence of steps called transpiler passes. The circuit is processed by each transpiler pass in sequence, with the output of one pass becoming the input to the next. For example, one pass could go through the circuit and merge all consecutive sequences of single-qubit gates, and then the next pass could synthesize these gates into the basis set of the target device. The transpiler passes included with Qiskit are located in the [qiskit.transpiler.passes](/api/qiskit/transpiler_passes) module.\n",
"\n",
"A pass manager is an object that stores a list of transpiler passes and can execute them on a circuit. Create a pass manager by initializing a [`PassManager`](/api/qiskit/qiskit.transpiler.PassManager) with a list of transpiler passes. To run the transpilation on a circuit, call the [run](/api/qiskit/qiskit.transpiler.PassManager#run) method with a circuit as input.\n",
"\n",
@@ -129,7 +129,7 @@
"circuit.cx(a, b)\n",
"circuit.cx(b, a)\n",
"\n",
- "circuit.draw(\"mpl\")"
+ "circuit.draw(\"mpl\", style=\"iqp\")"
]
},
{
@@ -158,7 +158,7 @@
],
"source": [
"translated = translate.run(circuit)\n",
- "translated.draw(\"mpl\")"
+ "translated.draw(\"mpl\", style=\"iqp\")"
]
},
{
diff --git a/docs/transpile/transpiler-stages.ipynb b/docs/transpile/transpiler-stages.ipynb
index 89f55f8dffe..47f5468f230 100644
--- a/docs/transpile/transpiler-stages.ipynb
+++ b/docs/transpile/transpiler-stages.ipynb
@@ -6,7 +6,7 @@
"source": [
"# Transpiler stages\n",
"\n",
- "This page describes the stages of Qiskit's prebuilt transpilation pipeline. There are six stages:\n",
+ "This page describes the stages of prebuilt transpilation pipeline in Qiskit®. There are six stages:\n",
"\n",
"1. `init` \n",
"2. `layout`\n",
@@ -15,7 +15,7 @@
"5. `optimization`\n",
"6. `scheduling`\n",
"\n",
- "The [`generate_preset_pass_manager`](/api/qiskit/transpiler_preset#qiskit.transpiler.preset_passmanagers.generate_preset_pass_manager) function creates a preset [staged pass manager](/api/qiskit/qiskit.transpiler.StagedPassManager) composed of these stages. The specific passes that make up each stage depends on the arguments passed to `generate_preset_pass_manager`. There is one positional argument that must be specified, the `optimization_level`, which is an integer that can be 0, 1, 2, or 3. Higher values indicate heavier but more costly optimization (see [Transpilation defaults and configuration options](defaults-and-configuration-options)).\n",
+ "The [`generate_preset_pass_manager`](/api/qiskit/transpiler_preset#qiskit.transpiler.preset_passmanagers.generate_preset_pass_manager) function creates a preset [staged pass manager](/api/qiskit/qiskit.transpiler.StagedPassManager) composed of these stages. The specific passes that make up each stage depends on the arguments passed to `generate_preset_pass_manager`. The `optimization_level` is a positional argument that must be specified; it is an integer that can be 0, 1, 2, or 3. Higher values indicate heavier but more costly optimization (see [Transpilation defaults and configuration options](defaults-and-configuration-options)).\n",
"\n",
"The recommended way to transpile a circuit is to create a preset staged pass manager and then run that pass manager on the circuit, as described in [Transpile with pass managers](transpile-with-pass-managers). However, a simpler but less customizable alternative is to use the [`transpile`](/api/qiskit/compiler#qiskit.compiler.transpile) function. This function accepts the circuit directly as an argument. As with `generate_preset_pass_manager`, the specific transpiler passes used depend on the arguments, such as `optimization_level`, passed to `transpile`. In fact, internally the `transpile` function calls `generate_preset_pass_manager` to create a preset staged pass manager and runs it on the circuit."
]
@@ -226,7 +226,7 @@
"print(\"native gates:\" + str(backend.operation_names))\n",
"qc = QuantumCircuit(2)\n",
"qc.swap(0, 1)\n",
- "qc.decompose().draw('mpl')"
+ "qc.decompose().draw('mpl', style=\"iqp\")"
]
},
{
@@ -258,7 +258,7 @@
"source": [
"qc = QuantumCircuit(3)\n",
"qc.ccx(0, 1, 2)\n",
- "qc.decompose().draw('mpl')"
+ "qc.decompose().draw('mpl', style=\"iqp\")"
]
},
{
@@ -444,7 +444,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.11.1"
+ "version": "3.12.0"
},
"title": "Transpiler stages",
"widgets": {
diff --git a/docs/verify/building_noise_models.ipynb b/docs/verify/building_noise_models.ipynb
index cea6f427827..a417a7646ea 100644
--- a/docs/verify/building_noise_models.ipynb
+++ b/docs/verify/building_noise_models.ipynb
@@ -6,7 +6,7 @@
"source": [
"# Build noise models\n",
"\n",
- "This page shows how to use the Qiskit Aer [`noise`](https://qiskit.org/ecosystem/aer/apidocs/aer_noise.html) module to build noise models for simulating quantum circuits in the presence of errors. This is useful for emulating noisy quantum processors and for studying the effects of noise on the execution of quantum algorithms."
+ "This page shows how to use the Qiskit® Aer [`noise`](https://qiskit.org/ecosystem/aer/apidocs/aer_noise.html) module to build noise models for simulating quantum circuits in the presence of errors. This is useful for emulating noisy quantum processors and for studying the effects of noise on the execution of quantum algorithms."
]
},
{
@@ -49,7 +49,7 @@
"source": [
"## Qiskit Aer `noise` module\n",
"\n",
- "The Qiskit Aer `noise` module contains Python classes to build customized noise models for simulation. There are three key classes:\n",
+ "The Qiskit® Aer `noise` module contains Python classes to build customized noise models for simulation. There are three key classes:\n",
"\n",
"1. The `NoiseModel` class which stores a noise model used for noisy simulation.\n",
"2. The `QuantumError` class which describes CPTP gate errors. These can be applied:\n",
@@ -93,7 +93,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## Quantum Errors\n",
+ "## Quantum errors\n",
"\n",
"Rather than deal with the `QuantumError` object directly, many helper functions exist to automatically generate a specific type of parameterized quantum error. These are contained in the `noise` module and include functions for many common errors types used in quantum computing research. The function names and the type of error they return are:\n",
"\n",
@@ -126,7 +126,7 @@
"source": [
"### Example\n",
"\n",
- "For example to construct a 5% single-qubit Bit-flip error:"
+ "To construct a 5% single-qubit bit-flip error:"
]
},
{
@@ -269,7 +269,7 @@
"source": [
"### Converting to and from QuantumChannel operators\n",
"\n",
- "We can also convert back and forth between `QuantumError` objects in Qiskit Aer and `QuantumChannel` objects in Qiskit Terra."
+ "We can also convert back and forth between `QuantumError` objects in Qiskit Aer and `QuantumChannel` objects in Qiskit."
]
},
{
@@ -374,14 +374,14 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Readout Error\n",
+ "### Readout error\n",
"\n",
"Classical readout errors are specified by a list of assignment probabilities vectors $P(A|B)$:\n",
"\n",
" * $A$ is the *recorded* classical bit value\n",
" * $B$ is the *true* bit value returned from the measurement\n",
"\n",
- "E.g. for 1 qubits: $ P(A|B) = [P(A|0), P(A|1)]$."
+ "For example, for one qubit: $ P(A|B) = [P(A|0), P(A|1)]$."
]
},
{
@@ -407,7 +407,7 @@
}
],
"source": [
- "# Measurement miss-assignement probabilities\n",
+ "# Measurement misassignment probabilities\n",
"p0given1 = 0.1\n",
"p1given0 = 0.05\n",
"\n",
@@ -419,7 +419,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Readout errors may also be combined using `compose`, `tensor` and `expand` like with quantum errors."
+ "Readout errors may also be combined using `compose`, `tensor` and `expand`, like with quantum errors."
]
},
{
@@ -427,9 +427,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## Adding errors to a Noise Model\n",
+ "## Add errors to a noise model\n",
"\n",
- "When adding a quantum error to a noise model we must specify the type of *instruction* that it acts on, and what qubits to apply it to. There are two cases for Quantum Errors:\n",
+ "When adding a quantum error to a noise model, we must specify the type of *instruction* that it acts on and what qubits to apply it to. There are two cases of quantum errors:\n",
"\n",
" 1. All-qubit quantum error\n",
" 2. Specific qubit quantum error\n",
@@ -481,7 +481,7 @@
"source": [
"### 2. Specific qubit quantum error\n",
"\n",
- "This applies the error to any occurrence of an instruction acting on a specified list of qubits. Note that the order of the qubit matters: For a 2-qubit gate an error applied to qubits [0, 1] is different to one applied to qubits [1, 0] for example.\n",
+ "This applies the error to any occurrence of an instruction acting on a specified list of qubits. Note that the order of the qubit matters: for example, an error applied to qubits [0, 1] for a two-qubit gate is different to one applied to qubits [1, 0].\n",
"\n",
"It is added as `noise_model.add_quantum_error(error, instructions, qubits)`:"
]
@@ -535,7 +535,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Executing a noisy simulation with a noise model\n",
+ "### Execute a noisy simulation with a noise model\n",
"\n",
"The command `AerSimulator(noise_model=noise_model)` returns a simulator configured to the given noise model. In addition to setting the simulator's noise model, it also overrides the simulator's basis gates, according to the gates of the noise model."
]
@@ -549,9 +549,9 @@
}
},
"source": [
- "## Noise Model Examples\n",
+ "## Noise model examples\n",
"\n",
- "We will now give some examples of noise models. For our demonstrations we will use a simple test circuit generating a n-qubit GHZ state:"
+ "We will now give some examples of noise models. For our demonstrations we use a simple test circuit generating a n-qubit GHZ state:"
]
},
{
@@ -603,7 +603,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Ideal Simulation"
+ "### Ideal simulation"
]
},
{
@@ -644,13 +644,13 @@
}
},
"source": [
- "## Noise Example 1: Basic bit-flip error noise model\n",
+ "## Noise example 1: Basic bit-flip error noise model\n",
"\n",
- "Lets consider a simple toy noise model example common in quantum information theory research:\n",
+ "Let's consider a simple toy noise model example common in quantum information theory research:\n",
"\n",
- "* When applying a single qubit gate, flip the state of the qubit with probability `p_gate1`.\n",
- "* When applying a 2-qubit gate apply single-qubit errors to each qubit.\n",
- "* When resetting a qubit reset to 1 instead of 0 with probability `p_reset`.\n",
+ "* When applying a single-qubit gate, flip the state of the qubit with probability `p_gate1`.\n",
+ "* When applying a two-qubit gate, apply single-qubit errors to each qubit.\n",
+ "* When resetting a qubit, reset to 1 instead of 0 with probability `p_reset`.\n",
"* When measuring a qubit, flip the state of the qubit with probability `p_meas`."
]
},
@@ -702,7 +702,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Executing the noisy simulation"
+ "### Execute the noisy simulation"
]
},
{
@@ -832,7 +832,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Executing the noisy simulation"
+ "### Execute the noisy simulation"
]
},
{
diff --git a/docs/verify/cloud-based-simulators.mdx b/docs/verify/cloud-based-simulators.mdx
index 136fbe1fffa..53f851fc0b2 100644
--- a/docs/verify/cloud-based-simulators.mdx
+++ b/docs/verify/cloud-based-simulators.mdx
@@ -5,7 +5,7 @@ description: Overview of available IBM Quantum cloud-based simulators
# Available IBM Quantum simulators
-This page gives details about the IBM Quantum cloud-based simulators. For information about the Qiskit built-in simulator, see the [Python-based simulators page in the API reference.](../api/qiskit/providers_basicaer) You can also use the [Qiskit reference primitives](simulate-with-qiskit-primitives) for local statevector simulation.
+This page gives details about the IBM Quantum™ cloud-based simulators. For information about the Qiskit® built-in simulator, see the [Python-based simulators page in the API reference.](../api/qiskit/providers_basicaer) You can also use the [Qiskit reference primitives](simulate-with-qiskit-primitives) for local statevector simulation.
IBM Quantum features a collection of high-performance simulators for prototyping quantum circuits and algorithms.
diff --git a/docs/verify/index.mdx b/docs/verify/index.mdx
index 06e1e4a141b..eb511c53a81 100644
--- a/docs/verify/index.mdx
+++ b/docs/verify/index.mdx
@@ -11,7 +11,7 @@ Because the cost of classically simulating quantum circuits scales exponentially
- Test smaller versions of the circuits that can be simulated classically.
- Modify the circuits so that they become classically simulable and test these modified circuits.
-Stabilizer circuits are a useful tool for accomplishing this latter goal. These are a restricted class of quantum circuits that can be efficiently simulated classically. Specialized simulators can easily simulate stabilizer circuits with thousands of qubits. See [Efficient simulation of stabilizer circuits with Qiskit Aer primitives](stabilizer-circuit-simulation) for an overview of stabilizer circuits and how to simulate them efficiently.
+Stabilizer circuits are a useful tool for accomplishing this latter goal. These are a restricted class of quantum circuits that can be efficiently simulated classically. Specialized simulators can easily simulate stabilizer circuits with thousands of qubits. See [Efficient simulation of stabilizer circuits with Qiskit® Aer primitives](stabilizer-circuit-simulation) for an overview of stabilizer circuits and how to simulate them efficiently.
For general quantum circuits, the following tools are available for you to verify your quantum programs:
diff --git a/docs/verify/simulate-with-qiskit-aer.ipynb b/docs/verify/simulate-with-qiskit-aer.ipynb
index 27acf743312..a9a5dce932c 100644
--- a/docs/verify/simulate-with-qiskit-aer.ipynb
+++ b/docs/verify/simulate-with-qiskit-aer.ipynb
@@ -6,9 +6,9 @@
"source": [
"# Exact and noisy simulation with Qiskit Aer primitives\n",
"\n",
- "[Exact simulation with Qiskit primitives](simulate-with-qiskit-primitives) demonstrates how to use the reference primitives included with Qiskit to perform exact simulation of quantum circuits. Currently existing quantum processors suffer from errors, or noise, so the results of an exact simulation do not necessarily reflect the results you would expect when running circuits on real hardware. While the reference primitives in Qiskit do not support modeling noise, [Qiskit Aer](https://qiskit.org/ecosystem/aer/) includes implementations of the primitives that do support modeling noise. Qiskit Aer is a high-performance quantum circuit simulator that you can use in place of the reference primitives for better performance and more features. It is part of the [Qiskit Ecosystem](https://qiskit.github.io/ecosystem/). In this article, we demonstrate the use of Qiskit Aer primitives for exact and noisy simulation.\n",
+ "[Exact simulation with Qiskit® primitives](simulate-with-qiskit-primitives) demonstrates how to use the reference primitives included with Qiskit to perform exact simulation of quantum circuits. Currently existing quantum processors suffer from errors, or noise, so the results of an exact simulation do not necessarily reflect the results you would expect when running circuits on real hardware. While the reference primitives in Qiskit do not support modeling noise, [Qiskit Aer](https://qiskit.org/ecosystem/aer/) includes implementations of the primitives that do support modeling noise. Qiskit Aer is a high-performance quantum circuit simulator that you can use in place of the reference primitives for better performance and more features. It is part of the [Qiskit Ecosystem](https://qiskit.github.io/ecosystem/). In this article, we demonstrate the use of Qiskit Aer primitives for exact and noisy simulation.\n",
"\n",
- "Let's create an example circuit on 8 qubits."
+ "Let's create an example circuit on eight qubits."
]
},
{
@@ -33,7 +33,7 @@
"\n",
"n_qubits = 8\n",
"circuit = EfficientSU2(n_qubits)\n",
- "circuit.decompose().draw(\"mpl\")"
+ "circuit.decompose().draw(\"mpl\", style=\"iqp\")"
]
},
{
@@ -88,7 +88,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Now, let's initialize a noise model that includes depolarizing error of 2% on every CX gate. In practice, the error arising from the two-qubit gates, which are CX gates here, are the dominant source of error when running a circuit. See [Building noise models](./building_noise_models) for an overview of constructing noise models in Qiskit Aer.\n",
+ "Now, let's initialize a noise model that includes depolarizing error of 2% on every CX gate. In practice, the error arising from the two-qubit gates, which are CX gates here, are the dominant source of error when running a circuit. See [Build noise models](./building_noise_models) for an overview of constructing noise models in Qiskit Aer.\n",
"\n",
"In the next cell, we construct an Estimator that incorporates this noise model and use it to compute the expectation value of the observable."
]
diff --git a/docs/verify/simulate-with-qiskit-primitives.mdx b/docs/verify/simulate-with-qiskit-primitives.mdx
index f5fed8004e0..f1ccc27e302 100644
--- a/docs/verify/simulate-with-qiskit-primitives.mdx
+++ b/docs/verify/simulate-with-qiskit-primitives.mdx
@@ -5,7 +5,7 @@ description: Simulate with Qiskit reference primitives. How to compute an expect
# Exact simulation with Qiskit primitives
-The reference primitives in Qiskit can perform local statevector simulations, which is useful for quickly prototyping algorithms.
+The reference primitives in Qiskit® can perform local statevector simulations, which is useful for quickly prototyping algorithms.
The `Estimator` primitive can compute an expectation value, and the `Sampler` primitive can compute circuit output probabilities.
@@ -49,7 +49,7 @@ from qiskit import QuantumCircuit
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0,1)
-qc.draw("mpl")
+qc.draw("mpl", style="iqp")
```
![Initial QuantumCircuit](/images/verify/simulate-with-qiskit-primitives/estimator-initialize.png "Initial QuantumCircuit")
@@ -114,7 +114,7 @@ theta = Parameter('θ')
param_qc = QuantumCircuit(2)
param_qc.ry(theta, 0)
param_qc.cx(0,1)
-print(param_qc.draw())
+print(param_qc.draw(style="iqp"))
```
```
@@ -267,7 +267,7 @@ qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0,1)
qc.measure_all()
-qc.draw("mpl")
+qc.draw("mpl", style="iqp")
```
![Initial QuantumCircuit](/images/verify/simulate-with-qiskit-primitives/sampler-initialize.png "Initial QuantumCircuit")
@@ -349,7 +349,7 @@ param_qc = QuantumCircuit(2)
param_qc.ry(theta, 0)
param_qc.cx(0,1)
param_qc.measure_all()
-print(param_qc.draw())
+print(param_qc.draw(style="iqp"))
```
```
diff --git a/docs/verify/stabilizer-circuit-simulation.ipynb b/docs/verify/stabilizer-circuit-simulation.ipynb
index 0ebcd74faaa..15b2039a955 100644
--- a/docs/verify/stabilizer-circuit-simulation.ipynb
+++ b/docs/verify/stabilizer-circuit-simulation.ipynb
@@ -6,7 +6,7 @@
"source": [
"# Efficient simulation of stabilizer circuits with Qiskit Aer primitives\n",
"\n",
- "This page shows how to use Qiskit Aer primitives to efficiently simulate stabilizer circuits, including those subject to Pauli noise.\n",
+ "This page shows how to use Qiskit® Aer primitives to efficiently simulate stabilizer circuits, including those subject to Pauli noise.\n",
"\n",
"Stabilizer circuits, also known as Clifford circuits, are an important restricted class of quantum circuits that can be efficiently simulated classically. There are several equivalent ways to define stabilizer circuits. One definition is that a stabilizer circuit is a quantum circuit that consists solely of the following gates:\n",
"\n",
@@ -45,7 +45,7 @@
"\n",
"n_qubits = 8\n",
"circuit = EfficientSU2(n_qubits)\n",
- "circuit.decompose().draw(\"mpl\")"
+ "circuit.decompose().draw(\"mpl\", style=\"iqp\")"
]
},
{
diff --git a/docs/verify/using-ibm-quantum-simulators.mdx b/docs/verify/using-ibm-quantum-simulators.mdx
index a5eff6efb84..9b3742469ba 100644
--- a/docs/verify/using-ibm-quantum-simulators.mdx
+++ b/docs/verify/using-ibm-quantum-simulators.mdx
@@ -6,7 +6,7 @@ description: Set up ibmq_qasm_simulator and map a basic noise model for an IBM Q
# Using IBM Quantum cloud-based simulators
-Set up ``ibmq_qasm_simulator`` and map a basic noise model for an IBM Quantum hardware device in Qiskit Runtime, then use this noise model to perform noisy simulations of ``QuantumCircuits`` by using ``Sampler`` and ``Estimator`` to study the effects of errors that occur on real devices.
+Set up ``ibmq_qasm_simulator`` and map a basic noise model for an IBM Quantum™ hardware device in Qiskit® Runtime, then use this noise model to perform noisy simulations of ``QuantumCircuits`` by using ``Sampler`` and ``Estimator`` to study the effects of errors that occur on real devices.
## Set up your local development environment
@@ -36,7 +36,7 @@ qc.cp(theta,0,1)
qc.h(0)
qc.measure(0,0)
-qc.draw('mpl')
+qc.draw('mpl', style="iqp")
```
![](/images/qiskit-ibm-runtime/noisy-sim-circuit.png)
@@ -109,7 +109,7 @@ The Estimator binds single-qubit rotations to get Hamiltonians before it returns
``` python
qc_no_meas = qc.remove_final_measurements(inplace=False)
-qc_no_meas.draw('mpl')
+qc_no_meas.draw('mpl', style="iqp")
```
![](/images/qiskit-ibm-runtime/noisy-sim-estimator-circuit.png)
diff --git a/translations/ja/api/migration-guides/qiskit-runtime-from-provider.mdx b/translations/ja/api/migration-guides/qiskit-runtime-from-provider.mdx
index 626e2342776..634db485cdb 100644
--- a/translations/ja/api/migration-guides/qiskit-runtime-from-provider.mdx
+++ b/translations/ja/api/migration-guides/qiskit-runtime-from-provider.mdx
@@ -5,7 +5,7 @@ description: How to migrate `backend.run()` from Qiskit IBM Provider to Qiskit I
# Migrate `backend.run()` from `qiskit_ibm_provider` to `qiskit_ibm_runtime`
-The Qiskit Runtime interface includes two packages:
+The Qiskit® Runtime interface includes two packages:
Qiskit IBM Provider (the [`qiskit_ibm_provider`](../qiskit-ibm-provider) package) and
Qiskit IBM Runtime (the [`qiskit_ibm_runtime`](../qiskit-ibm-runtime) package). Until now,
primitives (`Sampler` and `Estimator`)
diff --git a/translations/ja/run/retired-systems.mdx b/translations/ja/run/retired-systems.mdx
index b8aef114b7c..02e1794d66e 100644
--- a/translations/ja/run/retired-systems.mdx
+++ b/translations/ja/run/retired-systems.mdx
@@ -5,7 +5,7 @@ description: A list of IBM Quantum systems that are now retired
# Retired systems
-The following systems have been retired. For the full list of available systems, see the [Compute resources page.](https://quantum.ibm.com/services/resources?services=systems) By default, the information is shown in the card view, but you can use the view switchers (![view-switcher icon](/images/run/view-switcher1.png)) at the top right to change to a sortable table view.
+The following IBM Quantum® systems have been retired. For the full list of available systems, see the [Compute resources page.](https://quantum.ibm.com/services/resources?services=systems) By default, the information is shown in the card view, but you can use the view switchers (![view-switcher icon](/images/run/view-switcher1.png)) at the top right to change to a sortable table view.
To retrieve jobs from a retired system, see [these instructions.](#retrieve)