qics.quantum.random.choi_operator

qics.quantum.random.choi_operator(nin, nout=None, M=None, iscomplex=False)[source]

Generate a random Choi operator \(\mathcal{J}_\mathcal{N}\) representing a quantum channel \(\mathcal{N}\), i.e.,

\[\mathcal{J}_\mathcal{N} = \sum_{i,j}^n \mathcal{N}(| i \rangle\langle j |) \otimes | i \rangle\langle j |,\]

uniformly distributed on the Hilbert-Schmidt measure.

Parameters:
ninint

Dimension of the input system.

noutint, optional

Dimension of the output system. The default is nin.

Mint, optional

Dimension used to determine the rank of the random Choi operator. The default is nout*nin.

iscomplexbool, optional

Whether the Choi operator is real (False) or complex (True). The default is False.

Returns:
ndarray

Random Choi operator corresponding to matrix of size (nout*nin, nout*nin).

Notes

See [1] for additional details.

[1]

Kukulski, Ryszard, et al. “Generating random quantum channels.” Journal of Mathematical Physics 62.6 (2021).