qiskit/releasenotes/notes/0.25/linear-functions-usability-...

29 lines
1.4 KiB
YAML

---
features:
- |
Allowing to construct a :class:`.LinearFunction` object from more general quantum circuits,
that may contain:
* Barriers (of type :class:`~qiskit.circuit.Barrier`) and delays (:class:`~qiskit.circuit.Delay`),
which are simply ignored
* Permutations (of type :class:`~qiskit.circuit.library.PermutationGate`)
* Other linear functions
* Cliffords (of type :class:`.Clifford`), when the Clifford represents a linear function
(and a ``CircuitError`` exception is raised if not)
* Nested quantum circuits of this form
- |
Added :meth:`.LinearFunction.__eq__` method. Two objects of type :class:`.LinearFunction`
are considered equal when their representations as binary invertible matrices are equal.
- |
Added :meth:`.LinearFunction.extend_with_identity` method, which allows to extend
a linear function over ``k`` qubits to a linear function over ``n >= k`` qubits,
specifying the new positions of the original qubits and padding with identities on the
remaining qubits.
- |
Added two methods for pretty-printing :class:`.LinearFunction` objects:
:meth:`.LinearFunction.mat_str`, which returns the string representation of the linear
function viewed as a matrix with 0/1 entries, and
:meth:`.LinearFunction.function_str`, which returns the string representation of the
linear function viewed as a linear transformation.