qiskit/releasenotes/notes/0.17/pauli-operator-76ae910a340a...

67 lines
2.4 KiB
YAML

---
features:
- |
Improve the :class:`qiskit.quantum_info.Pauli` operator.
This class now represents and element from the full N-qubit Pauli group
including complex coefficients. It now supports the Operator API methods
including :meth:`~qiskit.quantum_info.Pauli.compose`,
:meth:`~qiskit.quantum_info.Pauli.dot`,
:meth:`~qiskit.quantum_info.Pauli.tensor` etc, where compose and dot are
defined with respect to the full Pauli group.
This class also allows conversion to and from the string representation
of Pauli's for convenience.
For example
.. code-block::
from qiskit.quantum_info import Pauli
P1 = Pauli('XYZ')
P2 = Pauli('YZX')
P1.dot(P2)
Pauli's can also be directly appended to
:class:`~qiskit.circuit.QuantumCircuit` objects
.. code-block::
from qiskit import QuantumCircuit
from qiskit.quantum_info import Pauli
circ = QuantumCircuit(3)
circ.append(Pauli('XYZ'), [0, 1, 2])
circ.draw(output='mpl')
Additional methods allow computing when two Pauli's commute (using the
:meth:`~qiskit.quantum_info.Pauli.commutes` method) or anticommute
(using the :meth:`~qiskit.quantum_info.Pauli.anticommutes` method), and
computing the Pauli resulting from Clifford conjugation
:math:`P^\prime = C.P.C^\dagger`
using the :meth:`~qiskit.quantum_info.Pauli.evolve` method.
See the API documentation of the :class:`~qiskit.quantum_info.Pauli` class
for additional information.
- |
A new function, :func:`~qiskit.quantum_info.random_pauli`, for generating a
random element of the N-qubit Pauli group has been added to the
:mod:`qiskit.quantum_info` module.
deprecations:
- |
The following legacy methods of the :class:`qiskit.quantum_info.Pauli` class
have been deprecated. See the method documentation for replacement use in
the updated Pauli class.
* :meth:`~qiskit.quantum_info.Pauli.from_label`
* :meth:`~qiskit.quantum_info.Pauli.sgn_prod`
* :meth:`~qiskit.quantum_info.Pauli.to_spmatrix`
* :meth:`~qiskit.quantum_info.Pauli.kron`
* :meth:`~qiskit.quantum_info.Pauli.update_z`
* :meth:`~qiskit.quantum_info.Pauli.update_x`
* :meth:`~qiskit.quantum_info.Pauli.insert_paulis`
* :meth:`~qiskit.quantum_info.Pauli.append_paulis`
* :meth:`~qiskit.quantum_info.Pauli.delete_qubits`
* :meth:`~qiskit.quantum_info.Pauli.pauli_single`
* :meth:`~qiskit.quantum_info.Pauli.random`