diff --git a/Cargo.lock b/Cargo.lock index e5ca18b7bf4..81ed6660fbf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -37,9 +37,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.18" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" +checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9" [[package]] name = "approx" @@ -126,7 +126,7 @@ checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -181,9 +181,9 @@ checksum = "0570650661aa447e7335f1d5e4f499d8e58796e617bedc9267d971e51c8b49d4" [[package]] name = "cpufeatures" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" +checksum = "0ca741a962e1b0bff6d724a1a0958b686406e853bb14061f218562e1896f95e6" dependencies = [ "libc", ] @@ -276,7 +276,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -305,7 +305,7 @@ checksum = "3bf679796c0322556351f287a51b49e48f7c4986e727b5dd78c972d30e2e16cc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -316,7 +316,7 @@ checksum = "5322a90066ddae2b705096eb9e10c465c0498ae93bf9bdd6437415327c88e3bb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -558,9 +558,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" +checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" [[package]] name = "heck" @@ -581,7 +581,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.15.0", + "hashbrown 0.15.1", "rayon", ] @@ -637,15 +637,15 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.159" +version = "0.2.162" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" +checksum = "18d287de67fe55fd7e1581fe933d965a5a9477b38e949cfa9f8574ef01506398" [[package]] name = "libm" -version = "0.2.8" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "matrixcompare" @@ -931,9 +931,9 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pest" -version = "2.7.13" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdbef9d1d47087a895abd220ed25eb4ad973a5e26f6a4367b038c25e28dfc2d9" +checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" dependencies = [ "memchr", "thiserror", @@ -942,9 +942,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.13" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d3a6e3394ec80feb3b6393c725571754c6188490265c61aaf260810d6b95aa0" +checksum = "d214365f632b123a47fd913301e14c946c61d1c183ee245fa76eb752e59a02dd" dependencies = [ "pest", "pest_generator", @@ -952,22 +952,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.13" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94429506bde1ca69d1b5601962c73f4172ab4726571a59ea95931218cb0e930e" +checksum = "eb55586734301717aea2ac313f50b2eb8f60d2fc3dc01d190eefa2e625f60c4e" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] name = "pest_meta" -version = "2.7.13" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac8a071862e93690b6e34e9a5fb8e33ff3734473ac0245b27232222c4906a33f" +checksum = "b75da2a70cf4d9cb76833c990ac9cd3923c9a8905a8929789ce347c84564d03d" dependencies = [ "once_cell", "pest", @@ -1036,9 +1036,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.87" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3e4daa0dcf6feba26f985457cdf104d4b4256fc5a09547140f3631bb076b19a" +checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" dependencies = [ "unicode-ident", ] @@ -1064,7 +1064,7 @@ checksum = "d315b3197b780e4873bc0e11251cb56a33f65a6032a3d39b8d1405c255513766" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -1132,7 +1132,7 @@ dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -1145,7 +1145,7 @@ dependencies = [ "proc-macro2", "pyo3-build-config", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -1350,9 +1350,9 @@ checksum = "03251193000f4bd3b042892be858ee50e8b3719f2b08e5833ac4353724632430" [[package]] name = "regex" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", @@ -1362,9 +1362,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -1409,9 +1409,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" +checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" [[package]] name = "rustworkx-core" @@ -1450,22 +1450,22 @@ checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4" [[package]] name = "serde" -version = "1.0.210" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.210" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -1507,9 +1507,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.79" +version = "2.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" dependencies = [ "proc-macro2", "quote", @@ -1544,22 +1544,22 @@ checksum = "f18aa187839b2bdb1ad2fa35ead8c4c2976b64e4363c386d45ac0f7ee85c9233" [[package]] name = "thiserror" -version = "1.0.65" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d11abd9594d9b38965ef50805c5e469ca9cc6f197f883f717e0269a3057b3d5" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.65" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae71770322cbd277e69d762a16c444af02aa0575ac0d174f0b9562d3b37f8602" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -1828,5 +1828,5 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] diff --git a/docs/conf.py b/docs/conf.py index 9b28a106b58..c2ff621c5de 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -32,7 +32,7 @@ # The short X.Y version version = "1.3" # The full version, including alpha/beta/rc tags -release = "1.3.0rc1" +release = "1.3.0" language = "en" diff --git a/docs/release_notes.rst b/docs/release_notes.rst index 37e1127c5d8..d1651292433 100644 --- a/docs/release_notes.rst +++ b/docs/release_notes.rst @@ -10,4 +10,4 @@ Qiskit |version| release notes `:earliest-version:` should be set to the rc1 release for the current minor release series. For example, the stable/1.1 branch should set it to 1.1.0rc1. If on `main`, set to the prior minor version's rc1, like `1.0.0rc1`. .. release-notes:: - :earliest-version: 1.1.0rc1 + :earliest-version: 1.3.0rc1 diff --git a/qiskit/VERSION.txt b/qiskit/VERSION.txt index 2dd64f41e29..f0bb29e7638 100644 --- a/qiskit/VERSION.txt +++ b/qiskit/VERSION.txt @@ -1 +1 @@ -1.3.0rc1 +1.3.0 diff --git a/releasenotes/notes/1.3/Parameterized-commutation-checker-8a78a4715bf78b4e.yaml b/releasenotes/notes/1.3/Parameterized-commutation-checker-8a78a4715bf78b4e.yaml index 72bd9aefe72..5e821389156 100644 --- a/releasenotes/notes/1.3/Parameterized-commutation-checker-8a78a4715bf78b4e.yaml +++ b/releasenotes/notes/1.3/Parameterized-commutation-checker-8a78a4715bf78b4e.yaml @@ -8,7 +8,7 @@ features_circuits: :class:`.U1Gate`,:class:`.CRXGate`,:class:`.CRYGate`,:class:`.CRZGate`, :class:`.CPhaseGate`. - Before these were only supported with bound parameters. + Before, these were only supported with bound parameters. diff --git a/releasenotes/notes/1.3/add-gates-to-collect-clifford-af88dd8f7a2a4bf9.yaml b/releasenotes/notes/1.3/add-gates-to-collect-clifford-af88dd8f7a2a4bf9.yaml index 05de0af7052..d0d4ca9d59e 100644 --- a/releasenotes/notes/1.3/add-gates-to-collect-clifford-af88dd8f7a2a4bf9.yaml +++ b/releasenotes/notes/1.3/add-gates-to-collect-clifford-af88dd8f7a2a4bf9.yaml @@ -1,7 +1,7 @@ --- features_transpiler: - | - Add an argument ``matrix_based`` to the :class:`.CollectCliffords()` transpiler pass. + Add argument ``matrix_based`` to the :class:`.CollectCliffords` transpiler pass. If the new parameter ``matrix_based=True``, the :class:`.CollectCliffords()` transpiler pass can collect :class:`.RZGate(np.pi/2)` gates and other unitary gates that are :class:`.Clifford()` gates for certain parameters. diff --git a/releasenotes/notes/1.3/add-identity-pass-builtin-2061b29b53b928d3.yaml b/releasenotes/notes/1.3/add-identity-pass-builtin-2061b29b53b928d3.yaml index 0cf3d503aee..bc83ec6bb52 100644 --- a/releasenotes/notes/1.3/add-identity-pass-builtin-2061b29b53b928d3.yaml +++ b/releasenotes/notes/1.3/add-identity-pass-builtin-2061b29b53b928d3.yaml @@ -2,7 +2,7 @@ features_transpiler: - | The :class:`.RemoveIdentityEquivalent` transpiler pass is now run as part - of the preset pass managers at optimization levels 2 and 3. The pass is - run in the ``init`` stage and the ``optimization`` stage, because the + of the preset pass managers at optimization levels 2 and 3. The pass runs + during the ``init`` and ``optimization`` stages, because the optimizations it applies are valid in both stages and the pass is fast to execute. diff --git a/releasenotes/notes/1.3/add-mcx-plugins-85e5b248692a36db.yaml b/releasenotes/notes/1.3/add-mcx-plugins-85e5b248692a36db.yaml index 84ec35942d0..5c2822b266c 100644 --- a/releasenotes/notes/1.3/add-mcx-plugins-85e5b248692a36db.yaml +++ b/releasenotes/notes/1.3/add-mcx-plugins-85e5b248692a36db.yaml @@ -17,9 +17,9 @@ features_transpiler: * :class:`.MCXSynthesisNoAuxV24`, based on :func:`.synth_mcx_noaux_v24`. * :class:`.MCXSynthesisGrayCode`, based on :func:`.synth_mcx_gray_code`. - As well: + As well as: - * :class:`.MCXSynthesisDefault`, choosing the most efficient synthesis + * :class:`.MCXSynthesisDefault`, for choosing the most efficient synthesis method based on the number of clean and dirty ancilla qubits available. As an example, consider how the transpilation of the following circuit:: diff --git a/releasenotes/notes/1.3/add-more-sabre-trials-9b421f05d2f48d18.yaml b/releasenotes/notes/1.3/add-more-sabre-trials-9b421f05d2f48d18.yaml index c91244c944d..735380a2eb6 100644 --- a/releasenotes/notes/1.3/add-more-sabre-trials-9b421f05d2f48d18.yaml +++ b/releasenotes/notes/1.3/add-more-sabre-trials-9b421f05d2f48d18.yaml @@ -2,10 +2,11 @@ features_transpiler: - | The :class:`.SabreLayout` transpiler pass has been updated to run an - additional 2 or 3 layout trials by default independently of the - ``layout_trials`` keyword argument's value. A trivial - layout and its reverse are included for all backends, just like the :class:`.DenseLayout` + additional two or three layout trials by default, independently from the + ``layout_trials`` keyword argument's value. A trivial layout and its + reverse are included for all backends, just like the :class:`.DenseLayout` trial that was added in 1.2.0. In addition to this, the largest rings on - an IBM backend heavy hex connectivity graph are added if the backends are 127, - 133, or 156 qubits. This can provide a good starting point for some circuits on these commonly run - backends, while for all others it's just an additional "random trial". + an IBM backend heavy hex connectivity graph are added if the backends are + 127, 133, or 156 qubits. This can provide a good starting point for some + circuits on these commonly run backends, while for all others it's just + an additional "random trial". diff --git a/releasenotes/notes/1.3/add-qpy-v13-3b22ae33045af6c1.yaml b/releasenotes/notes/1.3/add-qpy-v13-3b22ae33045af6c1.yaml index 3cc80adc0b5..58069c1c06d 100644 --- a/releasenotes/notes/1.3/add-qpy-v13-3b22ae33045af6c1.yaml +++ b/releasenotes/notes/1.3/add-qpy-v13-3b22ae33045af6c1.yaml @@ -5,29 +5,22 @@ features_qpy: of :class:`.ParameterExpression` objects. issues: - | - When using QPY formats 10, 11, or 12 there is a dependency on the version - of ``symengine`` installed in the payload for serialized - :class:`.ParamerExpression` if there is mismatched version of the installed - ``symengine`` package between the environment that generated the payload with - :func:`.qpy.dump` and the installed version that is trying to load the payload - with :func:`.qpy.load`. If this is encountered you will need to install the - symengine version from the error message emitted to load the payload. QPY - format version >= 13 (or < 10) will not have this issue and it is recommended - if you're serializing :class:`.ParameterExpression` objects as part of your - circuit or any :class:`.ScheduleBlock` objects you use version 13 to avoid + When using QPY formats 10, 11, or 12 with circuits that contain + :class:`.ParamerExpression`s, if the version of the ``symengine`` package + installed in the environment that generated the payload (:func:.qpy.dump) does + not match the version of ``symengine`` installed in the enviroment where the + payload is loaded (:func:.qpy.load), you will get an error. If you encounter + this error, install the ``symengine`` version from the error message + before calling :func:.qpy.load. QPY format versions 13 or later + (or prior to 10) will not have this issue. Therefore, if you're serializing + :class:`.ParameterExpression` objects as part of your circuit or any + :class:`.ScheduleBlock` objects, it is recommended that you use version 13 to avoid this issue in the future. upgrade_qpy: - | - The :func:`.qpy.dump` function will now emit format version 13 by default. - This means payloads generated with this function by default will only - be compatible with Qiskit >= 1.3.0. If you need for the payload to be - loaded by a older version of Qiskit you can use the ``version`` flag on - :func:`.qpy.dump` to emit a version compatible with earlier releases of - Qiskit. You can refer to :ref:`qpy_compatibility` for more details on this. -# security: -# - | -# Add security notes here, or remove this section. All of the list items in -# this section are combined when the release notes are rendered, so the text -# needs to be worded so that it does not depend on any information only -# available in another section, such as the prelude. This may mean repeating -# some details. + The :func:`.qpy.dump` function now emits format version 13 by default. + This means payloads generated with this function by default are only + compatible with Qiskit 1.3.0 or later. If the payload needs to be + loaded by an earlier version of Qiskit, use the ``version`` flag on + :func:`.qpy.dump` to emit the appropriate version. Refer to + :ref:`qpy_compatibility` for more details. \ No newline at end of file diff --git a/releasenotes/notes/1.3/assign-parameters-perf-regression-fc8c9db134b1763d.yaml b/releasenotes/notes/1.3/assign-parameters-perf-regression-fc8c9db134b1763d.yaml index 28f29b63ea2..53d636da104 100644 --- a/releasenotes/notes/1.3/assign-parameters-perf-regression-fc8c9db134b1763d.yaml +++ b/releasenotes/notes/1.3/assign-parameters-perf-regression-fc8c9db134b1763d.yaml @@ -2,8 +2,8 @@ fixes: - | Fixed a performance regression in :meth:`.QuantumCircuit.assign_parameters` introduced in Qiskit - 1.2.0 when calling the method in a tight loop, binding only a small number of parameters out of - a heavily parametric circuit on each iteration. If possible, it is still more performant to - call :meth:`~.QuantumCircuit.assign_parameters` only once, with all assignments at the same - time, as this reduces the proportion of time spent on input normalization and error-checking - overhead. + 1.2.0 when calling the method in a tight loop, that caused only a small number of + parameters from a heavily parametric circuit to be bound on each iteration. If possible, it is still + more performant to call :meth:`~.QuantumCircuit.assign_parameters` only once, with all + assignments at the same time, as this reduces the proportion of time spent on input normalization + and error-checking overhead. diff --git a/releasenotes/notes/1.3/backend-estimator-v2-variance-905c953415ad0e29.yaml b/releasenotes/notes/1.3/backend-estimator-v2-variance-905c953415ad0e29.yaml index ba672a327da..32aa48bdfd3 100644 --- a/releasenotes/notes/1.3/backend-estimator-v2-variance-905c953415ad0e29.yaml +++ b/releasenotes/notes/1.3/backend-estimator-v2-variance-905c953415ad0e29.yaml @@ -1,5 +1,5 @@ --- fixes: - | - Changes the way in which the :class:`.BackendEstimatorV2` class calculates the ``std`` to ensure that - it matches the correct formula. + A fix has been introduced to the :class:`.BackendEstimatorV2` class that ensures the calculation of + ``std`` matches the correct formula. diff --git a/releasenotes/notes/1.3/backend-sampler-v2-level1-dc13af460cd38454.yaml b/releasenotes/notes/1.3/backend-sampler-v2-level1-dc13af460cd38454.yaml index 594e610939c..ce531476a2c 100644 --- a/releasenotes/notes/1.3/backend-sampler-v2-level1-dc13af460cd38454.yaml +++ b/releasenotes/notes/1.3/backend-sampler-v2-level1-dc13af460cd38454.yaml @@ -1,15 +1,15 @@ --- features: - | - Support for level 1 data was added to :class:`~.BackendSamplerV2` as was + Support for level 1 data was added to :class:`~.BackendSamplerV2`, as was support for passing options through to the ``run()`` method of the wrapped - :class:`~.BackendV2`. The run options can be specified using a - ``"run_options"`` entry inside of the ``options`` dicitonary passed to + :class:`~.BackendV2`. The run options can be specified by using a + ``"run_options"`` entry inside the ``options`` dictionary passed to :class:`~.BackendSamplerV2`. The ``"run_options"`` entry should be a - dictionary mapping argument names to values for passing to the backend's - ``run()`` method. When a ``"meas_level"`` option with a value of 1 is set + dictionary that maps argument names to values to be passed to the backend's + ``run()`` method. When a ``"meas_level = 1 "`` is set in the run options, the results from the backend will be treated as level 1 - results rather as bit arrays (the level 2 format). + results instead of bit arrays (the level 2 format). upgrade: - | When using :class:`~.BackendSamplerV2`, circuit metadata is no longer diff --git a/releasenotes/notes/1.3/basicsimulator-config-copy-5ecdfdf161e488f2.yaml b/releasenotes/notes/1.3/basicsimulator-config-copy-5ecdfdf161e488f2.yaml index b5ec0112004..851ac6644b4 100644 --- a/releasenotes/notes/1.3/basicsimulator-config-copy-5ecdfdf161e488f2.yaml +++ b/releasenotes/notes/1.3/basicsimulator-config-copy-5ecdfdf161e488f2.yaml @@ -2,6 +2,6 @@ fixes: - | For :class:`~.BasicSimulator`, the ``basis_gates`` entry in the - configuration instance returned by the ``configuration()`` is now a list - rather than a ``dict_keys`` instance, matching the expected type and - allowing for configuration instance to be deep copied. + configuration instance returned by the ``configuration()`` method is + now a list instead of a ``dict_keys`` instance, matching the expected + type and allowing for configuration instance to be deep copied. diff --git a/releasenotes/notes/1.3/binary-arithmetic-gates-6cd2b1c8112febe0.yaml b/releasenotes/notes/1.3/binary-arithmetic-gates-6cd2b1c8112febe0.yaml index a082a98389a..8415f32a5a0 100644 --- a/releasenotes/notes/1.3/binary-arithmetic-gates-6cd2b1c8112febe0.yaml +++ b/releasenotes/notes/1.3/binary-arithmetic-gates-6cd2b1c8112febe0.yaml @@ -1,11 +1,11 @@ --- features_circuits: - | - Added binary arithmetic gates for inplace addition two :math:`n`-qubit registers, that is - :math:`|a\rangle |b\rangle \mapsto |a\rangle |a+b\rangle`. + Added binary arithmetic gates for inplace addition of two :math:`n`-qubit registers, + that is :math:`|a\rangle |b\rangle \mapsto |a\rangle |a+b\rangle`. The :class:`.ModularAdderGate` implements addition modulo :math:`2^n`, the :class:`.AdderGate` implements standard addition including a carry-out, and the - :class:`.FullAdderGate` includes a carry-in qubit. See the respective documentations for + :class:`.FullAdderGate` includes a carry-in qubit. See the respective documentation for details and examples. In contrast to the existing library circuits, such as :class:`.CDKMRippleCarryAdder`, @@ -13,8 +13,8 @@ features_circuits: synthesis, depending on the circuit's context. - | Added the :class:`.MultiplierGate` for multiplication of two :math:`n`-qubit registers, that is - :math:`|a\rangle |b\rangle \mapsto |a\rangle |b\rangle |a \cdot b\rangle`. - See the class documentations for details and examples. + :math:`|a\rangle |b\rangle |0\rangle \mapsto |a\rangle |b\rangle |a \cdot b\rangle`. + See the class documentation for details and examples. features_synthesis: - | Added :func:`.adder_qft_d00`, :func:`.adder_ripple_c04`, and :func:`.adder_ripple_v95` diff --git a/releasenotes/notes/1.3/clib-evolved-ops-e91c00964c0209ce.yaml b/releasenotes/notes/1.3/clib-evolved-ops-e91c00964c0209ce.yaml index 64d81b5e01e..d8917d2a44d 100644 --- a/releasenotes/notes/1.3/clib-evolved-ops-e91c00964c0209ce.yaml +++ b/releasenotes/notes/1.3/clib-evolved-ops-e91c00964c0209ce.yaml @@ -2,7 +2,7 @@ features_circuits: - | Added :func:`.evolved_operator_ansatz`, :func:`.hamiltonian_variational_ansatz`, and - :func:`.qaoa_ansatz` to the circuit library to implement variational circuits based on + :func:`.qaoa_ansatz` into the circuit library to implement variational circuits based on operator evolutions. :func:`.evolved_operator_ansatz` and :func:`.qaoa_ansatz` are functionally equivalent to :class:`.EvolvedOperatorAnsatz` and :class:`.QAOAAnsatz`, but generally more performant. diff --git a/releasenotes/notes/1.3/clib-grover-op-cb032144e899ed0d.yaml b/releasenotes/notes/1.3/clib-grover-op-cb032144e899ed0d.yaml index 93629bb1fa9..5b1248bc1c1 100644 --- a/releasenotes/notes/1.3/clib-grover-op-cb032144e899ed0d.yaml +++ b/releasenotes/notes/1.3/clib-grover-op-cb032144e899ed0d.yaml @@ -1,12 +1,12 @@ --- features_circuits: - | - Added :func:`.grover_operator` to construct a Grover operator circuit, used in e.g. - Grover's algorithm and amplitude estimation/amplification. This function is similar to - :class:`.GroverOperator`, but does not require choosing the implementation of the - multi-controlled X gate a-priori and let's the compiler choose the optimal decomposition - instead. In addition to this, it does not wrap the circuit into an opaque gate and is - faster as less decompositions are required to transpile. + Added :func:`.grover_operator` to construct a Grover operator circuit, used in + Grover's algorithm and amplitude estimation/amplification, for example. This function is similar to + :class:`.GroverOperator`, but does not require you to choose the implementation of the + multi-controlled X gate, but instead lets the compiler determine the optimal decomposition. + Additionally, it does not wrap the circuit into an opaque gate and is + faster because fewer decompositions are required for transpilation. Example:: diff --git a/releasenotes/notes/1.3/dag-oxide-60b3d7219cb21703.yaml b/releasenotes/notes/1.3/dag-oxide-60b3d7219cb21703.yaml index 090a8226c11..44921a8531e 100644 --- a/releasenotes/notes/1.3/dag-oxide-60b3d7219cb21703.yaml +++ b/releasenotes/notes/1.3/dag-oxide-60b3d7219cb21703.yaml @@ -1,25 +1,23 @@ --- features_transpiler: - | - The implementation of the :class:`.DAGCircuit` has been rewritten in Rust. This rewrite of - the Python class should be fully API compatible with the previous Python implementation of - the class. While the class was previously implemented using - `rustworkx `__ and its underlying data graph structure existed - in Rust, the implementation of the class and all the data was stored in Python. This new - version of :class:`.DAGCircuit` stores a Rust native representation for all its data and - is fully implemented in Rust. This new implementation should be more efficient in memory - usage as it compresses the qubit and clbit representation for instructions at rest. - It also enables speed up for transpiler passes as they can fully manipulate a - :class:`.DAGCircuit` from Rust. + The :class:`.DAGCircuit` has been reimplemented in Rust. This rewrite of the Python class + should be fully API compatible with the previous Python implementation. While the class + was previously implemented using `rustworkx `__, for which + the underlying data graph structure exists in Rust, the implementation of the class and + all the data was lived in Python. This new version of :class:`.DAGCircuit` stores Rust friendly + datatypes and is more memory-efficient due to the compressed qubit and clbit representation + designed for instructions at rest. It also enables transpiler passes to fully manipulate a + :class:`.DAGCircuit` from Rust, enabling potential improvements in performance. upgrade_transpiler: - | :class:`.DAGNode` objects (and its subclasses :class:`.DAGInNode`, :class:`.DAGOutNode`, and :class:`.DAGOpNode`) no longer return references to the same underlying object from :class:`.DAGCircuit` methods. This was never a guarantee before that all returned nodes would - be shared reference to the same object, but with the migration of the :class:`.DAGCircuit` to - Rust when a :class:`.DAGNode` a new :class:`.DAGNode` instance is generated on the fly when - a node is returned to Python. These objects will evaluate as equal using ``==`` or similar - checks that rely on ``__eq__`` but will no longer identify as the same object. + be shared reference to the same object. However, with the migration of the :class:`.DAGCircuit` to + Rust, a new :class:`.DAGNode` instance is generated on the fly when a node is returned to Python. + These objects will evaluate as equal using ``==`` or similar checks that rely on ``__eq__`` + but will no longer identify as the same object. - | The :class:`.DAGOpNode` instances returned from the :class:`.DAGCircuit` are no longer shared references to the underlying data stored on the DAG. In previous release it was possible to diff --git a/releasenotes/notes/1.3/deprecate-condition_c_if-9548e5522814fe9c.yaml b/releasenotes/notes/1.3/deprecate-condition_c_if-9548e5522814fe9c.yaml index e096273f3c8..0676d6f1ad6 100644 --- a/releasenotes/notes/1.3/deprecate-condition_c_if-9548e5522814fe9c.yaml +++ b/releasenotes/notes/1.3/deprecate-condition_c_if-9548e5522814fe9c.yaml @@ -21,9 +21,9 @@ deprecations_circuits: qc = QuantumCircuit(2, 2) qc.h(0) - with expected.if_test((expected.clbits[0], True)): + with qc.if_test((qc.clbits[0], True)): qc.x(0) - with expected.if_test((expected.clbits[1], False)): + with qc.if_test((qc.clbits[1], False)): qc.z(1) qc.measure(0, 0) qc.measure(1, 1) diff --git a/releasenotes/notes/1.3/deprecate-custom-basis-gates-transpile-e4b5893377f23acb.yaml b/releasenotes/notes/1.3/deprecate-custom-basis-gates-transpile-e4b5893377f23acb.yaml index e2e794e9670..1ef61ce9a52 100644 --- a/releasenotes/notes/1.3/deprecate-custom-basis-gates-transpile-e4b5893377f23acb.yaml +++ b/releasenotes/notes/1.3/deprecate-custom-basis-gates-transpile-e4b5893377f23acb.yaml @@ -2,7 +2,7 @@ deprecations_transpiler: - | Providing custom gates through the ``basis_gates`` argument is deprecated - for both :func:`.transpile` and :func:`generate_preset_pass_manager`, this functionality + for both :func:`.transpile` and :func:`generate_preset_pass_manager`. This functionality will be removed in Qiskit 2.0. Custom gates are still supported in the :class:`.Target` model, and can be provided through the ``target`` argument. One can build a :class:`.Target` instance from scratch or use the :meth:`.Target.from_configuration` method with the ``custom_name_mapping`` diff --git a/releasenotes/notes/1.3/deprecate-mitigation-f5f6ef3233b3d726.yaml b/releasenotes/notes/1.3/deprecate-mitigation-f5f6ef3233b3d726.yaml index 850b84f1fb1..9d5d0c02f76 100644 --- a/releasenotes/notes/1.3/deprecate-mitigation-f5f6ef3233b3d726.yaml +++ b/releasenotes/notes/1.3/deprecate-mitigation-f5f6ef3233b3d726.yaml @@ -1,7 +1,7 @@ --- deprecations_misc: - | - The ``qiskit.result.mitigation`` module has been deprecated and will be removed in the 2.0 release. + The ``qiskit.result.mitigation`` module has been deprecated and will be removed in Qiskit 2.0. The deprecation includes the ``LocalReadoutMitigator`` and ``CorrelatedReadoutMitigator`` classes - as well as the associated utils. + as well as the associated utility functions. Their functionality has been superseded by the mthree package, found in https://github.com/Qiskit/qiskit-addon-mthree. diff --git a/releasenotes/notes/1.3/deprecate-pulse-package-07a621be1db7fa30.yaml b/releasenotes/notes/1.3/deprecate-pulse-package-07a621be1db7fa30.yaml index 479c31556eb..15b45368dd6 100644 --- a/releasenotes/notes/1.3/deprecate-pulse-package-07a621be1db7fa30.yaml +++ b/releasenotes/notes/1.3/deprecate-pulse-package-07a621be1db7fa30.yaml @@ -1,8 +1,9 @@ --- deprecations: - | - The Qiskit Pulse package is being deprecated and will be removed in Qiskit 2.0.0. Pulse-level - access is currently only supported on a subset of Eagle devices and not supported on the Heron architecture. Furthermore, newer IBM Quantum architectures will not support pulse-level access. + The Qiskit Pulse package is now deprecated and will be removed in Qiskit 2.0.0. Pulse-level + access is currently only supported on a subset of Eagle devices and not supported on the Heron architecture. + Furthermore, newer IBM Quantum architectures will not support pulse-level access. As a consequence, supporting Pulse as a first-class citizen frontend in the Qiskit SDK itself makes little sense going forward. The deprecation includes all pulse code in :mod:`qiskit.pulse` as well as functionality dependant or related to pulse such as pulse visualization, serialization and custom calibration support. For @@ -23,9 +24,9 @@ deprecations_circuits: * :attr:`qiskit.dagcircuit.DAGDependency.calibrations` deprecations_qpy: - | - As part of the Qiskit Pulse package deprecation, serializing a :class:`qiskit.pulse.ScheduleBlock`-based payloads - is being deprecated. In particular, passing :class:`qiskit.pulse.ScheduleBlock` objects to the `programs` argument in - the :func:`qiskit.qpy.dump` function is being deprecated. + As part of the Qiskit Pulse package deprecation, serializing :class:`qiskit.pulse.ScheduleBlock`-based payloads + is also being deprecated. Particularly the passing of :class:`qiskit.pulse.ScheduleBlock` objects to the `programs` + argument in the :func:`qiskit.qpy.dump`. deprecations_transpiler: - | As part of the Qiskit Pulse package deprecation, pulse-related aspects in the :class:`qiskit.transpiler.Target` class are being deprecated. These include: @@ -35,7 +36,7 @@ deprecations_transpiler: * :meth:`~qiskit.transpiler.Target.get_calibration` * :meth:`~qiskit.transpiler.Target.instruction_schedule_map` - In addition the following transpiler passer are also being deprecated: + In addition the following transpiler passes are also being deprecated: * :class:`~qiskit.transpiler.passes.PulseGates` * :class:`~qiskit.transpiler.passes.ValidatePulseGates` * :class:`~qiskit.transpiler.passes.RXCalibrationBuilder` diff --git a/releasenotes/notes/1.3/fix-decompose-hls-5019793177136024.yaml b/releasenotes/notes/1.3/fix-decompose-hls-5019793177136024.yaml index f6161ea72f8..820bd56ea1a 100644 --- a/releasenotes/notes/1.3/fix-decompose-hls-5019793177136024.yaml +++ b/releasenotes/notes/1.3/fix-decompose-hls-5019793177136024.yaml @@ -23,7 +23,7 @@ fixes: - | Fixed a bug in :meth:`.QuantumCircuit.decompose` where objects that could be synthesized with :class:`.HighLevelSynthesis` were first synthesized and then decomposed immediately - (i.e., they were decomposed twice instead of once). This affected, e.g., :class:`.MCXGate` + (i.e., they were decomposed twice instead of once). This affected gates such as :class:`.MCXGate` or :class:`.Clifford`, among others. - | Fixed a bug in :meth:`.QuantumCircuit.decompose`, where high-level objects without a definition diff --git a/releasenotes/notes/1.3/fix-estimator-reset-9e7539776df4cac4.yaml b/releasenotes/notes/1.3/fix-estimator-reset-9e7539776df4cac4.yaml index dba0d8f1c22..8a7d21af80c 100644 --- a/releasenotes/notes/1.3/fix-estimator-reset-9e7539776df4cac4.yaml +++ b/releasenotes/notes/1.3/fix-estimator-reset-9e7539776df4cac4.yaml @@ -3,9 +3,9 @@ features_primitives: - | :class:`.Estimator` and :class:`.StatevectorEstimator` return expectation values in a stochastic way if the input circuit includes - a reset for a some subsystems. - The result was not reproducible, but it is now reproducible - if a random seed is set. For example:: + a reset for some subsystems. + The result was previously not reproducible, but now it can be if a + random seed is set. For example:: from qiskit.primitives import StatevectorEstimator diff --git a/releasenotes/notes/fix-hls-supported-instructions-0d80ea33b3d2257b.yaml b/releasenotes/notes/1.3/fix-hls-supported-instructions-0d80ea33b3d2257b.yaml similarity index 100% rename from releasenotes/notes/fix-hls-supported-instructions-0d80ea33b3d2257b.yaml rename to releasenotes/notes/1.3/fix-hls-supported-instructions-0d80ea33b3d2257b.yaml diff --git a/releasenotes/notes/1.3/fix-sparse-pauli-op-apply-layout-zero-43b9e70f0d1536a6.yaml b/releasenotes/notes/1.3/fix-sparse-pauli-op-apply-layout-zero-43b9e70f0d1536a6.yaml index 117230aee53..6e746550920 100644 --- a/releasenotes/notes/1.3/fix-sparse-pauli-op-apply-layout-zero-43b9e70f0d1536a6.yaml +++ b/releasenotes/notes/1.3/fix-sparse-pauli-op-apply-layout-zero-43b9e70f0d1536a6.yaml @@ -1,7 +1,7 @@ fixes: - | Fixed :meth:`.SparsePauliOp.apply_layout` to work correctly with zero-qubit operators. - For example, if you previously created a 0 qubit and applied a layout like:: + For example, if you previously created a zero-qubit operator and applied a layout like:: op = SparsePauliOp("") op.apply_layout(None, 3) diff --git a/releasenotes/notes/1.3/fix-var-wires-4ebc40e0b19df253.yaml b/releasenotes/notes/1.3/fix-var-wires-4ebc40e0b19df253.yaml index 7cd1e74806b..648c6506ab6 100644 --- a/releasenotes/notes/1.3/fix-var-wires-4ebc40e0b19df253.yaml +++ b/releasenotes/notes/1.3/fix-var-wires-4ebc40e0b19df253.yaml @@ -3,6 +3,6 @@ fixes: - | Fixed an issue with :func:`.dag_drawer` and :meth:`.DAGCircuit.draw` when attempting to visualize a :class:`.DAGCircuit` instance that contained - :class:`.Var` wires. The visualizer would raise an exception trying to - do this which has been fixed so the expected visualization will be + :class:`.Var` wires, for which the visualizer would raise an exception. + This behavior has been fixed and the expected visualization will be generated. diff --git a/releasenotes/notes/fix_identity_operator_9e2ec9770ac046a6.yaml b/releasenotes/notes/1.3/fix_identity_operator_9e2ec9770ac046a6.yaml similarity index 100% rename from releasenotes/notes/fix_identity_operator_9e2ec9770ac046a6.yaml rename to releasenotes/notes/1.3/fix_identity_operator_9e2ec9770ac046a6.yaml diff --git a/releasenotes/notes/1.3/fixes_GenericBackendV2-668e40596e1f070d.yaml b/releasenotes/notes/1.3/fixes_GenericBackendV2-668e40596e1f070d.yaml index 9d297125e3c..d96c21d1633 100644 --- a/releasenotes/notes/1.3/fixes_GenericBackendV2-668e40596e1f070d.yaml +++ b/releasenotes/notes/1.3/fixes_GenericBackendV2-668e40596e1f070d.yaml @@ -1,4 +1,7 @@ --- fixes: - | - The constructor :class:`.GenericBackendV2` was allowing to create malformed backends because it accepted basis gates that couldn't be allocated in the backend size . That is, a backend with a single qubit should not accept a basis with two-qubit gates. + The constructor :class:`.GenericBackendV2` was allowing to create malformed + backends because it accepted basis gates that couldn't be allocated in the + backend size . That is, a backend with a single qubit should not accept a + basis with two-qubit gates. diff --git a/releasenotes/notes/1.3/hls-with-ancillas-d6792b41dfcf4aac.yaml b/releasenotes/notes/1.3/hls-with-ancillas-d6792b41dfcf4aac.yaml index b70a032733c..ef00acfe637 100644 --- a/releasenotes/notes/1.3/hls-with-ancillas-d6792b41dfcf4aac.yaml +++ b/releasenotes/notes/1.3/hls-with-ancillas-d6792b41dfcf4aac.yaml @@ -6,8 +6,8 @@ features_transpiler: If set to ``True``, the qubits are assumed to be initially in the state :math:`|0\rangle`, potentially allowing additional optimization opportunities for individual transpiler passes. - | - The constructor for :class:`.HighLevelSynthesis` transpiler pass now accepts an - additional argument ``qubits_initially_zero``. If set to ``True``, the pass assumes that the + The constructor for the :class:`.HighLevelSynthesis` transpiler pass now accepts an + additional argument: ``qubits_initially_zero``. If set to ``True``, the pass assumes that the qubits are initially in the state :math:`|0\rangle`. In addition, the pass keeps track of clean and dirty auxiliary qubits throughout the run, and passes this information to plugins via kwargs ``num_clean_ancillas`` and ``num_dirty_ancillas``. diff --git a/releasenotes/notes/1.3/improve-hls-qubit-tracking-6b6288d556e3af9d.yaml b/releasenotes/notes/1.3/improve-hls-qubit-tracking-6b6288d556e3af9d.yaml index f832fed1b72..881d6794e10 100644 --- a/releasenotes/notes/1.3/improve-hls-qubit-tracking-6b6288d556e3af9d.yaml +++ b/releasenotes/notes/1.3/improve-hls-qubit-tracking-6b6288d556e3af9d.yaml @@ -4,5 +4,5 @@ features_transpiler: Improved handling of ancilla qubits in the :class:`.HighLevelSynthesis` transpiler pass. For example, a circuit may have custom gates whose definitions include :class:`.MCXGate`\s. Now the synthesis algorithms - for the inner MCX-gates can use the ancilla qubits available on the + for the inner :class:`.MCXGate`\s can use the ancilla qubits available on the global circuit but outside the custom gates' definitions. diff --git a/releasenotes/notes/1.3/mcmt-gate-a201d516f05c7d56.yaml b/releasenotes/notes/1.3/mcmt-gate-a201d516f05c7d56.yaml index a9c839e4352..a1a0c0881ad 100644 --- a/releasenotes/notes/1.3/mcmt-gate-a201d516f05c7d56.yaml +++ b/releasenotes/notes/1.3/mcmt-gate-a201d516f05c7d56.yaml @@ -21,8 +21,8 @@ features_circuits: synthesized = transpile(circuit, hls_config=config) - The :class:`.MCMTGate` in addition also supports custom (i.e., open) control states of - the control qubits. + Additionally, the :class:`.MCMTGate` also supports custom (i.e., open) control states + of the control qubits. features_synthesis: - | diff --git a/releasenotes/notes/1.3/outcome_bitstring_target_for_probabilities_dict-e53f524d115bbcfc.yaml b/releasenotes/notes/1.3/outcome_bitstring_target_for_probabilities_dict-e53f524d115bbcfc.yaml index d0466b8f75d..d373e3bc6ac 100644 --- a/releasenotes/notes/1.3/outcome_bitstring_target_for_probabilities_dict-e53f524d115bbcfc.yaml +++ b/releasenotes/notes/1.3/outcome_bitstring_target_for_probabilities_dict-e53f524d115bbcfc.yaml @@ -3,11 +3,11 @@ features: - | The :class:`.StabilizerState` class now has a new method :meth:`~.StabilizerState.probabilities_dict_from_bitstring` allowing the - user to pass single bitstring to measure an outcome for. Previouslly the + user to pass single bitstring to measure an outcome for. Previously the :meth:`~.StabilizerState.probabilities_dict` would be utilized and would at worst case calculate (2^n) number of probability calculations (depending on the state), even if a user wanted a single result. With this new method the user can calculate just the single outcome bitstring value a user passes to measure the probability for. As the number of qubits increases, the more - prevelant the performance enhancement may be (depending on the state) as only + prevalent the performance enhancement may be (depending on the state) as only 1 bitstring result is measured. diff --git a/releasenotes/notes/1.3/oxidize-basis-translator-e246a99118bd9486.yaml b/releasenotes/notes/1.3/oxidize-basis-translator-e246a99118bd9486.yaml new file mode 100644 index 00000000000..0036d080bca --- /dev/null +++ b/releasenotes/notes/1.3/oxidize-basis-translator-e246a99118bd9486.yaml @@ -0,0 +1,7 @@ +features_transpiler: + - | + The :class:`.BasisTranslator` transpiler pass has been reimplemented + to work purely in Rust, taking advantage of all the other structures + that currently live there such as the :class:`.Target`, :class:`.EquivalenceLibrary`, + and the :class:`.DAGCircuit`. The pass itself now runs anywhere from + 3x to 5x faster than it did in Python. \ No newline at end of file diff --git a/releasenotes/notes/1.3/pauli-evo-plugins-612850146c3f7d49.yaml b/releasenotes/notes/1.3/pauli-evo-plugins-612850146c3f7d49.yaml index c84b4a1646a..abceb0613fd 100644 --- a/releasenotes/notes/1.3/pauli-evo-plugins-612850146c3f7d49.yaml +++ b/releasenotes/notes/1.3/pauli-evo-plugins-612850146c3f7d49.yaml @@ -26,7 +26,7 @@ features_synthesis: now constructed ~9.4x faster. The new plugin, :class:`.PauliEvolutionSynthesisRustiq`, uses the synthesis algorithm that is described in the paper "Faster and shorter synthesis of - Hamiltonian simulation circuits" by de Brugière and Martiel (https://arxiv.org/abs/2404.03280) + Hamiltonian simulation circuits" by (de) Brugière and Martiel (https://arxiv.org/abs/2404.03280) and is implemented in https://github.com/smartiel/rustiq-core. For example:: diff --git a/releasenotes/notes/1.3/paulifeaturemap-takes-dictionary-as-entanglement-02037cb2d46e1c41.yaml b/releasenotes/notes/1.3/paulifeaturemap-takes-dictionary-as-entanglement-02037cb2d46e1c41.yaml index 8acfe5439a5..cb347c6da3b 100644 --- a/releasenotes/notes/1.3/paulifeaturemap-takes-dictionary-as-entanglement-02037cb2d46e1c41.yaml +++ b/releasenotes/notes/1.3/paulifeaturemap-takes-dictionary-as-entanglement-02037cb2d46e1c41.yaml @@ -1,9 +1,9 @@ --- fixes: - | - Fixed that the entanglement in :class:`.PauliFeatureMap` and :class:`.ZZFeatureMap` + Previously, the entanglement in :class:`.PauliFeatureMap` and :class:`.ZZFeatureMap` could be given as ``List[int]`` or ``List[List[int]]``, which was incompatible with the fact - that entanglement blocks of different sizes are used. Instead, the entanglement can be + that entanglement blocks of different sizes are used. Now, the entanglement can be given as dictionary with ``{block_size: entanglement}`` pairs. features_circuits: - | diff --git a/releasenotes/notes/1.3/port-synth-cz-depth-line-mr-to-rust-1376d5a41948112a.yaml b/releasenotes/notes/1.3/port-synth-cz-depth-line-mr-to-rust-1376d5a41948112a.yaml index ee4c6933a26..4a7f7d9cecc 100644 --- a/releasenotes/notes/1.3/port-synth-cz-depth-line-mr-to-rust-1376d5a41948112a.yaml +++ b/releasenotes/notes/1.3/port-synth-cz-depth-line-mr-to-rust-1376d5a41948112a.yaml @@ -1,6 +1,11 @@ --- features_synthesis: - | - Port :func: `.synth_cz_depth_line_mr` to Rust. This function synthesizes a CZ circuit for linear nearest neighbor (LNN) connectivity, based on the Maslov and Roetteler method. On a 350x350 binary matrix, the Rust implementation yields a speedup of about 30 times. + Port :func: `.synth_cz_depth_line_mr` to Rust. This function synthesizes a CZ + circuit for linear nearest neighbor (LNN) connectivity, based on the Maslov + and Roetteler method. On a 350x350 binary matrix, the Rust implementation + yields a speedup of about 30 times. - | - Port :func: `.synth_permutation_reverse_lnn_kms` to Rust, which synthesizes a reverse permutation for linear nearest-neighbor architecture using the Kutin, Moulton, Smithline method. + Port :func: `.synth_permutation_reverse_lnn_kms` to Rust, which synthesizes a + reverse permutation for linear nearest-neighbor architecture using the Kutin, + Moulton, Smithline method. diff --git a/releasenotes/notes/1.3/rust-commutation-checker-c738e67efa9d292f.yaml b/releasenotes/notes/1.3/rust-commutation-checker-c738e67efa9d292f.yaml index bcfcbe18caf..ca731235990 100644 --- a/releasenotes/notes/1.3/rust-commutation-checker-c738e67efa9d292f.yaml +++ b/releasenotes/notes/1.3/rust-commutation-checker-c738e67efa9d292f.yaml @@ -1,6 +1,6 @@ --- features_transpiler: - | - The the :class:`.CommutationChecker` class has been reimplemented in + The :class:`.CommutationChecker` class has been reimplemented in Rust. This retains the same functionality as before but is now significantly in most cases. diff --git a/releasenotes/notes/1.3/rust-consolidation-a791a00380fc78b8.yaml b/releasenotes/notes/1.3/rust-consolidation-a791a00380fc78b8.yaml index c8412888895..e47d6d413b4 100644 --- a/releasenotes/notes/1.3/rust-consolidation-a791a00380fc78b8.yaml +++ b/releasenotes/notes/1.3/rust-consolidation-a791a00380fc78b8.yaml @@ -1,7 +1,7 @@ --- features_transpiler: - | - The :class:`.ConsolidateGates` pass will now run the equivalent of the + The :class:`.ConsolidateBlocks` pass will now run the equivalent of the :class:`.Collect2qBlocks` pass internally if it was not run in a pass manager prior to the pass. Previously it was required that :class:`.Collect2qBlocks` or :class:`.Collect1qRuns` were run prior to diff --git a/releasenotes/notes/spo-to-matrix-determinism-554389d6fc98627c.yaml b/releasenotes/notes/1.3/spo-to-matrix-determinism-554389d6fc98627c.yaml similarity index 100% rename from releasenotes/notes/spo-to-matrix-determinism-554389d6fc98627c.yaml rename to releasenotes/notes/1.3/spo-to-matrix-determinism-554389d6fc98627c.yaml diff --git a/releasenotes/notes/1.3/storage-var-a00a33fcf9a71f3f.yaml b/releasenotes/notes/1.3/storage-var-a00a33fcf9a71f3f.yaml index b3b18be2fc1..dd9eff9b281 100644 --- a/releasenotes/notes/1.3/storage-var-a00a33fcf9a71f3f.yaml +++ b/releasenotes/notes/1.3/storage-var-a00a33fcf9a71f3f.yaml @@ -117,6 +117,6 @@ upgrade_providers: classical variables (see :mod:`qiskit.circuit.classical`) and the :class:`.Store` instruction, if they do not have support for them. The new :class:`.Store` instruction is treated by the transpiler as an always-available "directive" (like :class:`.Barrier`); if your backends do not - support this won't be caught by the :mod:`~qiskit.transpiler`. + support it, this won't be caught by the :mod:`~qiskit.transpiler`. See :ref:`providers-guide-real-time-variables` for more information.