QiskitBackend#

class QiskitBackend(backend=None, port=None)[source]#

This class instantiates a VirtualBackend using a Qiskit backend. This allows easy access to Qiskit backends through the qrisp interface.

Parameters:
backendQiskit backend object, optional

A Qiskit backend object, which runs QuantumCircuits. The default is AerSimulator().

portint, optional

The port to listen. The default is None.

Examples

We evaluate a QuantumFloat multiplication on the Aer simulator.

>>> from qrisp import QuantumFloat
>>> from qrisp.interface import QiskitBackend
>>> from qiskit_aer import AerSimulator
>>> example_backend = QiskitBackend(backend = AerSimulator())
>>> qf = QuantumFloat(4)
>>> qf[:] = 3
>>> res = qf*qf
>>> res.get_measurement(backend = example_backend)
{9: 1.0}

We evaluate a QuantumFloat multiplication on the FakeWashingtonV2 backend.

>>> from qrisp import QuantumFloat
>>> from qiskit_ibm_runtime.fake_provider import FakeWashingtonV2
>>> from qrisp.interface import QiskitBackend
>>> example_backend = QiskitBackend(backend = FakeWashingtonV2())
>>> qf = QuantumFloat(2)
>>> qf[:] = 2
>>> res = qf*qf
>>> res.get_measurement(backend = example_backend)
{4: 0.6962,
12: 0.0967,
0: 0.0607,
8: 0.0572,
6: 0.028,
2: 0.0128,
14: 0.0126,
5: 0.0103,
10: 0.0062,
3: 0.0057,
9: 0.0042,
13: 0.0037,
1: 0.0029,
7: 0.001,
15: 0.001,
11: 0.0008}

We evaluate a QuantumFloat addition on a real IBM quantum backend.

>>> from qrisp import QuantumFloat
>>> from qrisp.interface import QiskitBackend
>>> from qiskit_ibm_runtime import QiskitRuntimeService
>>> service = QiskitRuntimeService(channel="ibm_cloud", token="YOUR_IBM_CLOUD_TOKEN")
>>> brisbane = service.backend("ibm_brisbane")
>>> qrisp_brisbane = QiskitBackend(backend)
>>> qf = QuantumFloat(2)
>>> qf[:] = 2
>>> qf+=1
>>> qf.get_measurement(backend = qrisp_brisbane)
{3: 0.919, 1: 0.044, 2: 0.021, 0: 0.016}