qiskit/releasenotes/notes/0.17/piecewise-polynomial-and-in...

30 lines
1.2 KiB
YAML

---
features:
- |
A new class,
:class:`~qiskit.circuit.library.PiecewisePolynomialPauliRotations`, has
been added to the :mod:`qiskit.circuit.library` module. This circuit library
element is used for mapping a piecewise polynomial function, :math:`f(x)`,
which is defined through breakpoints and coefficients, on qubit amplitudes.
The breakpoints :math:`(x_0, ..., x_J)` are a subset of :math:`[0, 2^n-1]`,
where :math:`n` is the number of state qubits. The corresponding
coefficients :math:`[a_{j,1},...,a_{j,d}]`, where :math:`d` is the highest
degree among all polynomials. Then :math:`f(x)` is defined as:
.. math::
f(x) = \begin{cases}
0, x < x_0 \\
\sum_{i=0}^{i=d}a_{j,i} x^i, x_j \leq x < x_{j+1}
\end{cases}
where we implicitly assume :math:`x_{J+1} = 2^n`. And the mapping applied
to the amplitudes is given by
.. math::
F|x\rangle |0\rangle = \cos(p_j(x))|x\rangle |0\rangle + \sin(p_j(x))|x\rangle |1\rangle
This mapping is based on controlled Pauli Y-rotations and constructed using
the :class:`~qiskit.circuit.library.PolynomialPauliRotations`.