ApproximatelyMultiplexZ 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 Z rotation conditioned on an array of qubits, truncating small rotation angles according to a given tolerance.

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

Description

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

$$ \begin{align} U = \sum^{2^n-1}_{j=0} \ket{j}\bra{j} \otimes e^{i Z \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.

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.

References

See Also