PrepareChoiState 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.Preparation

Package: Microsoft.Quantum.Standard

Prepares the Choi–Jamiołkowski state for a given operation onto given reference and target registers.

operation PrepareChoiState (op : (Qubit[] => Unit), reference : Qubit[], target : Qubit[]) : Unit

Input

op : Qubit[] => Unit

Operation $\Lambda$ whose Choi–Jamiołkowski state $J(\Lambda) / 2^N$ is to be prepared, where $N$ is the number of qubits on which op acts.

reference : Qubit[]

A register of qubits starting in the $\ket{00\cdots 0}$ state to be used as a reference for the action of op.

target : Qubit[]

A register of qubits initially in the $\ket{00\cdots 0}$ state on which op is to be applied.

Output : Unit

Remarks

The Choi–Jamiłkowski state $J(\Lambda)$ of a quantum process is defined as $$ \begin{align} J(\Lambda) \mathrel{:=} (\boldone \otimes \Lambda) (|\boldone\rangle!\rangle\langle!\langle\boldone|), \end{align} $$ where $|X\rangle!\rangle$ is the vectorization of a matrix $X$ in the column-stacking convention. Learning a classical description of this state provides full information about the effect of $\Lambda$ acting on arbitrary input states, and forms the foundation of quantum process tomography.

See Also