qiskit/releasenotes/notes/1.1/optimize-annotated-conjugat...

25 lines
1.3 KiB
YAML

features:
- |
Added a new reduction to the :class:`.OptimizeAnnotated` transpiler pass.
This reduction looks for annotated operations (objects of type :class:`.AnnotatedOperation`
that consist of a base operation ``B`` and a list ``M`` of control, inverse and power
modifiers) with the following properties:
* the base operation ``B`` needs to be synthesized (i.e. it's not already supported
by the target or belongs to the equivalence library)
* the definition circuit for ``B`` can be expressed as ``P -- Q -- R`` with :math:`R = P^{-1}`
In this case the modifiers can be moved to the ``Q``-part only. As a specific example,
controlled QFT-based adders have the form ``control - [QFT -- U -- IQFT]``, which can be
simplified to ``QFT -- control-[U] -- IQFT``. By removing the controls over ``QFT`` and
``IQFT`` parts of the circuit, one obtains significantly fewer gates in the transpiled
circuit.
- |
Added two new methods to the :class:`~qiskit.dagcircuit.DAGCircuit` class:
:meth:`qiskit.dagcircuit.DAGCircuit.op_successors` returns an iterator to
:class:`.DAGOpNode` successors of a node, and
:meth:`qiskit.dagcircuit.DAGCircuit.op_successors` returns an iterator to
:class:`.DAGOpNode` predecessors of a node.