mirror of https://github.com/Qiskit/qiskit.git
26 lines
1.5 KiB
YAML
26 lines
1.5 KiB
YAML
---
|
|
fixes:
|
|
- |
|
|
Fixed :meth:`.Operator.power` when called with non-integer powers on a matrix whose Schur form
|
|
is not diagonal (for example, most non-unitary matrices).
|
|
- |
|
|
:meth:`.Operator.power` will now more reliably return the expected principal value from a
|
|
fractional matrix power of a unitary matrix with a :math:`-1` eigenvalue. This is tricky in
|
|
general, because floating-point rounding effects can cause a matrix to _truly_ have an eigenvalue
|
|
on the negative side of the branch cut (even if its exact mathematical relation would not), and
|
|
imprecision in various BLAS calls can falsely find the wrong side of the branch cut.
|
|
|
|
:meth:`.Operator.power` now shifts the branch-cut location for matrix powers to be a small
|
|
complex rotation away from :math:`-1`. This does not solve the problem, it just shifts it to a
|
|
place where it is far less likely to be noticeable for the types of operators that usually
|
|
appear. Use the new ``branch_cut_rotation`` parameter to have more control over this.
|
|
|
|
See `#13305 <https://github.com/Qiskit/qiskit/issues/13305>`__.
|
|
features_quantum_info:
|
|
- |
|
|
The method :meth:`.Operator.power` has a new parameter ``branch_cut_rotation``. This can be
|
|
used to shift the branch-cut point of the root around, which can affect which matrix is chosen
|
|
as the principal root. By default, it is set to a small positive rotation to make roots of
|
|
operators with a real-negative eigenvalue (like Pauli operators) more stable against numerical
|
|
precision differences.
|