Jump to navigation Jump to search
Computes the dual of a superoperator in the Hilbert-Schmidt inner product

Other toolboxes required none
Related functions ComplementaryMap
Function category Superoperators

DualMap is a function that computes the dual of a superoperator in the Hilbert-Schmidt inner product. If $\Phi(X) = \sum_j A_j X B_j^\dagger$ for all matrices $X$, then the dual map is defined by $\Phi^\dagger(Y) = \sum_j A_j^\dagger Y B_j$.


  • PHID = DualMap(PHI)
  • PHID = DualMap(PHI,DIM)

Argument descriptions

  • PHI: A superoperator. Should be provided as either a Choi matrix, or as a cell with either 1 or 2 columns (see the tutorial page for more details about specifying superoperators within QETLAB). PHID will be a cell of Kraus operators if PHI is a cell of Kraus operators, and similarly PHID will be a Choi matrix if PHI is a Choi matrix.
  • DIM (optional, default has input and output spaces of equal dimension): A 1-by-2 vector containing the input and output dimensions of PHI, in that order (equivalently, these are the dimensions of the first and second subsystems of the Choi matrix PHI, in that order). If the input or output space is not square, then DIM's first row should contain the input and output row dimensions, and its second row should contain its input and output column dimensions. DIM is required if and only if PHI has unequal input and output dimensions and is provided as a Choi matrix.


The dual of the dual map

As its name implies, the dual of the dual of a map $\Phi$ is $\Phi$ itself, which we see in a special case in the following code:

>> Phi = RandomSuperoperator(3);
>> norm(ChoiMatrix(DualMap(DualMap(Phi))) - ChoiMatrix(Phi))

ans =


Source code

Click here to view this function's source code on github.