qiskit-aer 0.17.2__cp314-cp314-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- qiskit_aer/VERSION.txt +1 -0
- qiskit_aer/__init__.py +89 -0
- qiskit_aer/aererror.py +30 -0
- qiskit_aer/aerprovider.py +119 -0
- qiskit_aer/backends/__init__.py +20 -0
- qiskit_aer/backends/aer_compiler.py +1085 -0
- qiskit_aer/backends/aer_simulator.py +1025 -0
- qiskit_aer/backends/aerbackend.py +679 -0
- qiskit_aer/backends/backend_utils.py +567 -0
- qiskit_aer/backends/backendconfiguration.py +395 -0
- qiskit_aer/backends/backendproperties.py +590 -0
- qiskit_aer/backends/compatibility.py +287 -0
- qiskit_aer/backends/controller_wrappers.cp314-win_amd64.pyd +0 -0
- qiskit_aer/backends/libopenblas.dll +0 -0
- qiskit_aer/backends/name_mapping.py +306 -0
- qiskit_aer/backends/qasm_simulator.py +925 -0
- qiskit_aer/backends/statevector_simulator.py +330 -0
- qiskit_aer/backends/unitary_simulator.py +316 -0
- qiskit_aer/jobs/__init__.py +35 -0
- qiskit_aer/jobs/aerjob.py +143 -0
- qiskit_aer/jobs/utils.py +66 -0
- qiskit_aer/library/__init__.py +204 -0
- qiskit_aer/library/control_flow_instructions/__init__.py +16 -0
- qiskit_aer/library/control_flow_instructions/jump.py +47 -0
- qiskit_aer/library/control_flow_instructions/mark.py +30 -0
- qiskit_aer/library/control_flow_instructions/store.py +29 -0
- qiskit_aer/library/default_qubits.py +44 -0
- qiskit_aer/library/instructions_table.csv +21 -0
- qiskit_aer/library/save_instructions/__init__.py +44 -0
- qiskit_aer/library/save_instructions/save_amplitudes.py +168 -0
- qiskit_aer/library/save_instructions/save_clifford.py +63 -0
- qiskit_aer/library/save_instructions/save_data.py +129 -0
- qiskit_aer/library/save_instructions/save_density_matrix.py +91 -0
- qiskit_aer/library/save_instructions/save_expectation_value.py +257 -0
- qiskit_aer/library/save_instructions/save_matrix_product_state.py +71 -0
- qiskit_aer/library/save_instructions/save_probabilities.py +156 -0
- qiskit_aer/library/save_instructions/save_stabilizer.py +70 -0
- qiskit_aer/library/save_instructions/save_state.py +79 -0
- qiskit_aer/library/save_instructions/save_statevector.py +120 -0
- qiskit_aer/library/save_instructions/save_superop.py +62 -0
- qiskit_aer/library/save_instructions/save_unitary.py +63 -0
- qiskit_aer/library/set_instructions/__init__.py +19 -0
- qiskit_aer/library/set_instructions/set_density_matrix.py +78 -0
- qiskit_aer/library/set_instructions/set_matrix_product_state.py +83 -0
- qiskit_aer/library/set_instructions/set_stabilizer.py +77 -0
- qiskit_aer/library/set_instructions/set_statevector.py +78 -0
- qiskit_aer/library/set_instructions/set_superop.py +78 -0
- qiskit_aer/library/set_instructions/set_unitary.py +78 -0
- qiskit_aer/noise/__init__.py +265 -0
- qiskit_aer/noise/device/__init__.py +25 -0
- qiskit_aer/noise/device/models.py +397 -0
- qiskit_aer/noise/device/parameters.py +202 -0
- qiskit_aer/noise/errors/__init__.py +30 -0
- qiskit_aer/noise/errors/base_quantum_error.py +119 -0
- qiskit_aer/noise/errors/pauli_error.py +283 -0
- qiskit_aer/noise/errors/pauli_lindblad_error.py +363 -0
- qiskit_aer/noise/errors/quantum_error.py +451 -0
- qiskit_aer/noise/errors/readout_error.py +355 -0
- qiskit_aer/noise/errors/standard_errors.py +498 -0
- qiskit_aer/noise/noise_model.py +1231 -0
- qiskit_aer/noise/noiseerror.py +30 -0
- qiskit_aer/noise/passes/__init__.py +18 -0
- qiskit_aer/noise/passes/local_noise_pass.py +160 -0
- qiskit_aer/noise/passes/relaxation_noise_pass.py +137 -0
- qiskit_aer/primitives/__init__.py +44 -0
- qiskit_aer/primitives/estimator.py +751 -0
- qiskit_aer/primitives/estimator_v2.py +159 -0
- qiskit_aer/primitives/sampler.py +361 -0
- qiskit_aer/primitives/sampler_v2.py +256 -0
- qiskit_aer/quantum_info/__init__.py +32 -0
- qiskit_aer/quantum_info/states/__init__.py +16 -0
- qiskit_aer/quantum_info/states/aer_densitymatrix.py +313 -0
- qiskit_aer/quantum_info/states/aer_state.py +525 -0
- qiskit_aer/quantum_info/states/aer_statevector.py +302 -0
- qiskit_aer/utils/__init__.py +44 -0
- qiskit_aer/utils/noise_model_inserter.py +66 -0
- qiskit_aer/utils/noise_transformation.py +431 -0
- qiskit_aer/version.py +86 -0
- qiskit_aer-0.17.2.dist-info/METADATA +209 -0
- qiskit_aer-0.17.2.dist-info/RECORD +83 -0
- qiskit_aer-0.17.2.dist-info/WHEEL +5 -0
- qiskit_aer-0.17.2.dist-info/licenses/LICENSE.txt +203 -0
- qiskit_aer-0.17.2.dist-info/top_level.txt +1 -0
qiskit_aer/VERSION.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.17.2
|
qiskit_aer/__init__.py
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# This code is part of Qiskit.
|
|
2
|
+
#
|
|
3
|
+
# (C) Copyright IBM 2018, 2019.
|
|
4
|
+
#
|
|
5
|
+
# This code is licensed under the Apache License, Version 2.0. You may
|
|
6
|
+
# obtain a copy of this license in the LICENSE.txt file in the root directory
|
|
7
|
+
# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
|
|
8
|
+
#
|
|
9
|
+
# Any modifications or derivative works of this code must retain this
|
|
10
|
+
# copyright notice, and modified files need to carry a notice indicating
|
|
11
|
+
# that they have been altered from the originals.
|
|
12
|
+
|
|
13
|
+
"""
|
|
14
|
+
==========================================
|
|
15
|
+
Aer Provider (:mod:`qiskit_aer`)
|
|
16
|
+
==========================================
|
|
17
|
+
|
|
18
|
+
.. currentmodule:: qiskit_aer
|
|
19
|
+
|
|
20
|
+
Simulator Provider
|
|
21
|
+
==================
|
|
22
|
+
|
|
23
|
+
.. autosummary::
|
|
24
|
+
:toctree: ../stubs/
|
|
25
|
+
|
|
26
|
+
AerProvider
|
|
27
|
+
|
|
28
|
+
Simulator Backends
|
|
29
|
+
==================
|
|
30
|
+
|
|
31
|
+
.. autosummary::
|
|
32
|
+
:toctree: ../stubs/
|
|
33
|
+
|
|
34
|
+
AerSimulator
|
|
35
|
+
|
|
36
|
+
Legacy Simulator Backends
|
|
37
|
+
=========================
|
|
38
|
+
|
|
39
|
+
.. autosummary::
|
|
40
|
+
:toctree: ../stubs/
|
|
41
|
+
|
|
42
|
+
QasmSimulator
|
|
43
|
+
StatevectorSimulator
|
|
44
|
+
UnitarySimulator
|
|
45
|
+
|
|
46
|
+
Exceptions
|
|
47
|
+
==========
|
|
48
|
+
.. autosummary::
|
|
49
|
+
:toctree: ../stubs/
|
|
50
|
+
|
|
51
|
+
AerError
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
import platform
|
|
55
|
+
import sys
|
|
56
|
+
import warnings
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
# https://github.com/Qiskit/qiskit-aer/issues/1
|
|
60
|
+
# Because of this issue, we need to make sure that Numpy's OpenMP library is initialized
|
|
61
|
+
# before loading our simulators, so we force it using this ugly trick
|
|
62
|
+
if platform.system() == "Darwin":
|
|
63
|
+
import numpy as np
|
|
64
|
+
|
|
65
|
+
np.dot(np.zeros(100), np.zeros(100))
|
|
66
|
+
# ... ¯\_(ツ)_/¯
|
|
67
|
+
|
|
68
|
+
# pylint: disable=wrong-import-position
|
|
69
|
+
from qiskit_aer.aerprovider import AerProvider
|
|
70
|
+
from qiskit_aer.jobs import AerJob
|
|
71
|
+
from qiskit_aer.aererror import AerError
|
|
72
|
+
from qiskit_aer.backends import *
|
|
73
|
+
from qiskit_aer import library
|
|
74
|
+
from qiskit_aer import quantum_info
|
|
75
|
+
from qiskit_aer import noise
|
|
76
|
+
from qiskit_aer import utils
|
|
77
|
+
from qiskit_aer.version import __version__
|
|
78
|
+
|
|
79
|
+
if sys.version_info < (3, 8):
|
|
80
|
+
warnings.warn(
|
|
81
|
+
"Using Aer with Python 3.7 is deprecated as of the 0.12.0 release. "
|
|
82
|
+
"Support for running Aer with Python 3.7 will be removed in a future "
|
|
83
|
+
"release",
|
|
84
|
+
DeprecationWarning,
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
# Global instance to be used as the entry point for convenience.
|
|
89
|
+
Aer = AerProvider() # pylint: disable=invalid-name
|
qiskit_aer/aererror.py
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# This code is part of Qiskit.
|
|
2
|
+
#
|
|
3
|
+
# (C) Copyright IBM 2018, 2019.
|
|
4
|
+
#
|
|
5
|
+
# This code is licensed under the Apache License, Version 2.0. You may
|
|
6
|
+
# obtain a copy of this license in the LICENSE.txt file in the root directory
|
|
7
|
+
# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
|
|
8
|
+
#
|
|
9
|
+
# Any modifications or derivative works of this code must retain this
|
|
10
|
+
# copyright notice, and modified files need to carry a notice indicating
|
|
11
|
+
# that they have been altered from the originals.
|
|
12
|
+
|
|
13
|
+
"""
|
|
14
|
+
Exception for errors raised by Aer simulators backends.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
from qiskit import QiskitError
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class AerError(QiskitError):
|
|
21
|
+
"""Base class for errors raised by simulators."""
|
|
22
|
+
|
|
23
|
+
def __init__(self, *message):
|
|
24
|
+
"""Set the error message."""
|
|
25
|
+
super().__init__(*message)
|
|
26
|
+
self.message = " ".join(message)
|
|
27
|
+
|
|
28
|
+
def __str__(self):
|
|
29
|
+
"""Return the message."""
|
|
30
|
+
return repr(self.message)
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# This code is part of Qiskit.
|
|
2
|
+
#
|
|
3
|
+
# (C) Copyright IBM 2018, 2019.
|
|
4
|
+
#
|
|
5
|
+
# This code is licensed under the Apache License, Version 2.0. You may
|
|
6
|
+
# obtain a copy of this license in the LICENSE.txt file in the root directory
|
|
7
|
+
# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
|
|
8
|
+
#
|
|
9
|
+
# Any modifications or derivative works of this code must retain this
|
|
10
|
+
# copyright notice, and modified files need to carry a notice indicating
|
|
11
|
+
# that they have been altered from the originals.
|
|
12
|
+
|
|
13
|
+
# pylint: disable=invalid-name
|
|
14
|
+
"""Provider for Aer backends."""
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
from qiskit.providers import QiskitBackendNotFoundError
|
|
18
|
+
from qiskit.providers.providerutils import filter_backends
|
|
19
|
+
|
|
20
|
+
from .backends.aer_simulator import AerSimulator
|
|
21
|
+
from .backends.qasm_simulator import QasmSimulator
|
|
22
|
+
from .backends.statevector_simulator import StatevectorSimulator
|
|
23
|
+
from .backends.unitary_simulator import UnitarySimulator
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class AerProvider:
|
|
27
|
+
"""Provider for Aer backends."""
|
|
28
|
+
|
|
29
|
+
_BACKENDS = None
|
|
30
|
+
version = 1
|
|
31
|
+
|
|
32
|
+
@staticmethod
|
|
33
|
+
def _get_backends():
|
|
34
|
+
if AerProvider._BACKENDS is None:
|
|
35
|
+
# Populate the list of Aer simulator backends.
|
|
36
|
+
methods = AerSimulator().available_methods()
|
|
37
|
+
devices = AerSimulator().available_devices()
|
|
38
|
+
backends = []
|
|
39
|
+
for method in methods:
|
|
40
|
+
for device in devices:
|
|
41
|
+
name = "aer_simulator"
|
|
42
|
+
if method in [None, "automatic"]:
|
|
43
|
+
backends.append((name, AerSimulator, method, device))
|
|
44
|
+
else:
|
|
45
|
+
name += f"_{method}"
|
|
46
|
+
if method == "tensor_network":
|
|
47
|
+
if device == "GPU":
|
|
48
|
+
name += f"_{device}".lower()
|
|
49
|
+
backends.append((name, AerSimulator, method, device))
|
|
50
|
+
else:
|
|
51
|
+
if device == "CPU":
|
|
52
|
+
backends.append((name, AerSimulator, method, device))
|
|
53
|
+
elif method in ["statevector", "density_matrix", "unitary"]:
|
|
54
|
+
name += f"_{device}".lower()
|
|
55
|
+
backends.append((name, AerSimulator, method, device))
|
|
56
|
+
|
|
57
|
+
# Add legacy backend names
|
|
58
|
+
backends += [
|
|
59
|
+
("qasm_simulator", QasmSimulator, None, None),
|
|
60
|
+
("statevector_simulator", StatevectorSimulator, None, None),
|
|
61
|
+
("unitary_simulator", UnitarySimulator, None, None),
|
|
62
|
+
]
|
|
63
|
+
AerProvider._BACKENDS = backends
|
|
64
|
+
|
|
65
|
+
return AerProvider._BACKENDS
|
|
66
|
+
|
|
67
|
+
def get_backend(self, name=None, **kwargs):
|
|
68
|
+
"""Return a single Aer backend matching the specified filtering.
|
|
69
|
+
|
|
70
|
+
Args:
|
|
71
|
+
name (str): name of the Aer backend.
|
|
72
|
+
**kwargs: dict used for filtering.
|
|
73
|
+
|
|
74
|
+
Returns:
|
|
75
|
+
Backend: an Aer backend matching the filtering.
|
|
76
|
+
|
|
77
|
+
Raises:
|
|
78
|
+
QiskitBackendNotFoundError: if no backend could be found or
|
|
79
|
+
more than one backend matches the filtering criteria.
|
|
80
|
+
"""
|
|
81
|
+
backends = self.backends(name, **kwargs)
|
|
82
|
+
if len(backends) > 1:
|
|
83
|
+
raise QiskitBackendNotFoundError("More than one backend matches the criteria")
|
|
84
|
+
if not backends:
|
|
85
|
+
raise QiskitBackendNotFoundError("No backend matches the criteria")
|
|
86
|
+
|
|
87
|
+
return backends[0]
|
|
88
|
+
|
|
89
|
+
def backends(self, name=None, filters=None, **kwargs):
|
|
90
|
+
"""Return a list of backends matching the specified filtering.
|
|
91
|
+
|
|
92
|
+
Args:
|
|
93
|
+
name (str): name of the backend.
|
|
94
|
+
filters (callable): filtering conditions as a callable.
|
|
95
|
+
**kwargs: dict used for filtering.
|
|
96
|
+
|
|
97
|
+
Returns:
|
|
98
|
+
list[Backend]: a list of Backends that match the filtering
|
|
99
|
+
criteria.
|
|
100
|
+
"""
|
|
101
|
+
# pylint: disable=unused-argument
|
|
102
|
+
# Instantiate a new backend instance so if config options
|
|
103
|
+
# are set they will only last as long as that backend object exists
|
|
104
|
+
backends = []
|
|
105
|
+
|
|
106
|
+
# pylint: disable=not-an-iterable
|
|
107
|
+
# pylint infers _get_backends to always return None
|
|
108
|
+
for backend_name, backend_cls, method, device in self._get_backends():
|
|
109
|
+
opts = {"provider": self}
|
|
110
|
+
if method is not None:
|
|
111
|
+
opts["method"] = method
|
|
112
|
+
if device is not None:
|
|
113
|
+
opts["device"] = device
|
|
114
|
+
if name is None or backend_name == name:
|
|
115
|
+
backends.append(backend_cls(**opts))
|
|
116
|
+
return filter_backends(backends, filters=filters)
|
|
117
|
+
|
|
118
|
+
def __str__(self):
|
|
119
|
+
return "AerProvider"
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# This code is part of Qiskit.
|
|
2
|
+
#
|
|
3
|
+
# (C) Copyright IBM 2018, 2019.
|
|
4
|
+
#
|
|
5
|
+
# This code is licensed under the Apache License, Version 2.0. You may
|
|
6
|
+
# obtain a copy of this license in the LICENSE.txt file in the root directory
|
|
7
|
+
# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
|
|
8
|
+
#
|
|
9
|
+
# Any modifications or derivative works of this code must retain this
|
|
10
|
+
# copyright notice, and modified files need to carry a notice indicating
|
|
11
|
+
# that they have been altered from the originals.
|
|
12
|
+
|
|
13
|
+
"""
|
|
14
|
+
Aer Provider Simulator Backends
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
from .aer_simulator import AerSimulator
|
|
18
|
+
from .qasm_simulator import QasmSimulator
|
|
19
|
+
from .statevector_simulator import StatevectorSimulator
|
|
20
|
+
from .unitary_simulator import UnitarySimulator
|