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.
Files changed (83) hide show
  1. qiskit_aer/VERSION.txt +1 -0
  2. qiskit_aer/__init__.py +89 -0
  3. qiskit_aer/aererror.py +30 -0
  4. qiskit_aer/aerprovider.py +119 -0
  5. qiskit_aer/backends/__init__.py +20 -0
  6. qiskit_aer/backends/aer_compiler.py +1085 -0
  7. qiskit_aer/backends/aer_simulator.py +1025 -0
  8. qiskit_aer/backends/aerbackend.py +679 -0
  9. qiskit_aer/backends/backend_utils.py +567 -0
  10. qiskit_aer/backends/backendconfiguration.py +395 -0
  11. qiskit_aer/backends/backendproperties.py +590 -0
  12. qiskit_aer/backends/compatibility.py +287 -0
  13. qiskit_aer/backends/controller_wrappers.cp314-win_amd64.pyd +0 -0
  14. qiskit_aer/backends/libopenblas.dll +0 -0
  15. qiskit_aer/backends/name_mapping.py +306 -0
  16. qiskit_aer/backends/qasm_simulator.py +925 -0
  17. qiskit_aer/backends/statevector_simulator.py +330 -0
  18. qiskit_aer/backends/unitary_simulator.py +316 -0
  19. qiskit_aer/jobs/__init__.py +35 -0
  20. qiskit_aer/jobs/aerjob.py +143 -0
  21. qiskit_aer/jobs/utils.py +66 -0
  22. qiskit_aer/library/__init__.py +204 -0
  23. qiskit_aer/library/control_flow_instructions/__init__.py +16 -0
  24. qiskit_aer/library/control_flow_instructions/jump.py +47 -0
  25. qiskit_aer/library/control_flow_instructions/mark.py +30 -0
  26. qiskit_aer/library/control_flow_instructions/store.py +29 -0
  27. qiskit_aer/library/default_qubits.py +44 -0
  28. qiskit_aer/library/instructions_table.csv +21 -0
  29. qiskit_aer/library/save_instructions/__init__.py +44 -0
  30. qiskit_aer/library/save_instructions/save_amplitudes.py +168 -0
  31. qiskit_aer/library/save_instructions/save_clifford.py +63 -0
  32. qiskit_aer/library/save_instructions/save_data.py +129 -0
  33. qiskit_aer/library/save_instructions/save_density_matrix.py +91 -0
  34. qiskit_aer/library/save_instructions/save_expectation_value.py +257 -0
  35. qiskit_aer/library/save_instructions/save_matrix_product_state.py +71 -0
  36. qiskit_aer/library/save_instructions/save_probabilities.py +156 -0
  37. qiskit_aer/library/save_instructions/save_stabilizer.py +70 -0
  38. qiskit_aer/library/save_instructions/save_state.py +79 -0
  39. qiskit_aer/library/save_instructions/save_statevector.py +120 -0
  40. qiskit_aer/library/save_instructions/save_superop.py +62 -0
  41. qiskit_aer/library/save_instructions/save_unitary.py +63 -0
  42. qiskit_aer/library/set_instructions/__init__.py +19 -0
  43. qiskit_aer/library/set_instructions/set_density_matrix.py +78 -0
  44. qiskit_aer/library/set_instructions/set_matrix_product_state.py +83 -0
  45. qiskit_aer/library/set_instructions/set_stabilizer.py +77 -0
  46. qiskit_aer/library/set_instructions/set_statevector.py +78 -0
  47. qiskit_aer/library/set_instructions/set_superop.py +78 -0
  48. qiskit_aer/library/set_instructions/set_unitary.py +78 -0
  49. qiskit_aer/noise/__init__.py +265 -0
  50. qiskit_aer/noise/device/__init__.py +25 -0
  51. qiskit_aer/noise/device/models.py +397 -0
  52. qiskit_aer/noise/device/parameters.py +202 -0
  53. qiskit_aer/noise/errors/__init__.py +30 -0
  54. qiskit_aer/noise/errors/base_quantum_error.py +119 -0
  55. qiskit_aer/noise/errors/pauli_error.py +283 -0
  56. qiskit_aer/noise/errors/pauli_lindblad_error.py +363 -0
  57. qiskit_aer/noise/errors/quantum_error.py +451 -0
  58. qiskit_aer/noise/errors/readout_error.py +355 -0
  59. qiskit_aer/noise/errors/standard_errors.py +498 -0
  60. qiskit_aer/noise/noise_model.py +1231 -0
  61. qiskit_aer/noise/noiseerror.py +30 -0
  62. qiskit_aer/noise/passes/__init__.py +18 -0
  63. qiskit_aer/noise/passes/local_noise_pass.py +160 -0
  64. qiskit_aer/noise/passes/relaxation_noise_pass.py +137 -0
  65. qiskit_aer/primitives/__init__.py +44 -0
  66. qiskit_aer/primitives/estimator.py +751 -0
  67. qiskit_aer/primitives/estimator_v2.py +159 -0
  68. qiskit_aer/primitives/sampler.py +361 -0
  69. qiskit_aer/primitives/sampler_v2.py +256 -0
  70. qiskit_aer/quantum_info/__init__.py +32 -0
  71. qiskit_aer/quantum_info/states/__init__.py +16 -0
  72. qiskit_aer/quantum_info/states/aer_densitymatrix.py +313 -0
  73. qiskit_aer/quantum_info/states/aer_state.py +525 -0
  74. qiskit_aer/quantum_info/states/aer_statevector.py +302 -0
  75. qiskit_aer/utils/__init__.py +44 -0
  76. qiskit_aer/utils/noise_model_inserter.py +66 -0
  77. qiskit_aer/utils/noise_transformation.py +431 -0
  78. qiskit_aer/version.py +86 -0
  79. qiskit_aer-0.17.2.dist-info/METADATA +209 -0
  80. qiskit_aer-0.17.2.dist-info/RECORD +83 -0
  81. qiskit_aer-0.17.2.dist-info/WHEEL +5 -0
  82. qiskit_aer-0.17.2.dist-info/licenses/LICENSE.txt +203 -0
  83. 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