ApproximatelyMultiplexPauli operation

Warning

This documentation refers to the Classic QDK, which has been replaced by the Modern QDK.

Please see https://aka.ms/qdk.api for the API documentation for the Modern QDK.

Namespace: Microsoft.Quantum.Canon

Package: Microsoft.Quantum.Standard

Applies a Pauli rotation conditioned on an array of qubits, truncating small rotation angles according to a given tolerance.

operation ApproximatelyMultiplexPauli (tolerance : Double, coefficients : Double[], pauli : Pauli, control : Microsoft.Quantum.Arithmetic.LittleEndian, target : Qubit) : Unit is Adj + Ctl

Description

This applies a multiply controlled unitary operation that performs rotations by angle $\theta_j$ about single-qubit Pauli operator $P$ when controlled by the $n$-qubit number state $\ket{j}$. In particular, the action of this operation is represented by the unitary

$$ \begin{align} U = \sum^{2^n - 1}_{j=0} \ket{j}\bra{j} \otimes e^{i P \theta_j}. \end{align}

Input

tolerance : Double

A tolerance below which small coefficients are truncated.

coefficients : Double[]

Array of up to $2^n$ coefficients $\theta_j$. The $j$th coefficient indexes the number state $\ket{j}$ encoded in little-endian format.

pauli : Pauli

Pauli operator $P$ that determines axis of rotation.

control : LittleEndian

$n$-qubit control register that encodes number states $\ket{j}$ in little-endian format.

target : Qubit

Single qubit register that is rotated by $e^{i P \theta_j}$.

Output : Unit

Remarks

coefficients will be padded with elements $\theta_j = 0.0$ if fewer than $2^n$ are specified.

See Also