# ChoiMap

 Other toolboxes required ChoiMap Produces the Choi map or one of its generalizations none ReductionMap Superoperators

ChoiMap is a function that returns the Choi matrix of the linear map on $3 \times 3$ matrices that acts as follows:

$\begin{bmatrix}x_{11} & x_{12} & x_{13} \\ x_{21} & x_{22} & x_{23} \\ x_{31} & x_{32} & x_{33}\end{bmatrix} \mapsto \begin{bmatrix}ax_{11}+bx_{22}+cx_{33} & -x_{12} & -x_{13} \\ -x_{21} & cx_{11}+ax_{22}+bx_{33} & -x_{23} \\ -x_{31} & -x_{32} & bx_{11}+cx_{22}+ax_{33}\end{bmatrix},$

where $a,b,c$ are given real numbers. This map is positive if and only if $a \geq 0$, $a + b + c \geq 2$, and $bc \geq (1-a)^2$ whenever $0 \leq a \leq 1$.

## Syntax

• C = ChoiMap()
• C = ChoiMap(A,B,C)

## Argument descriptions

• A,B,C: Real parameters of the Choi map. If they are not provided, the default Choi map (with A = B = 1 and C = 0) is returned.

## Examples

### The standard Choi map

The following code returns the Choi matrix of the Choi map and then verifies that the Choi map is indeed positive (i.e., verifies that its Choi matrix is block positive):

>> C = ChoiMap()

C =

1     0     0     0    -1     0     0     0    -1
0     0     0     0     0     0     0     0     0
0     0     1     0     0     0     0     0     0
0     0     0     1     0     0     0     0     0
-1     0     0     0     1     0     0     0    -1
0     0     0     0     0     0     0     0     0
0     0     0     0     0     0     0     0     0
0     0     0     0     0     0     0     1     0
-1     0     0     0    -1     0     0     0     1

>> IsBlockPositive(C) % verify that the Choi map is positive

ans =

1

### The reduction map

The reduction map is the map $R$ defined by $R(X) = {\rm Tr}(X)I - X$, where $I$ is the identity operator. The reduction map is the Choi map that arises when $a = 0$, $b = c = 1$:

>> ChoiMap(0,1,1)

ans =

0     0     0     0    -1     0     0     0    -1
0     1     0     0     0     0     0     0     0
0     0     1     0     0     0     0     0     0
0     0     0     1     0     0     0     0     0
-1     0     0     0     0     0     0     0    -1
0     0     0     0     0     1     0     0     0
0     0     0     0     0     0     1     0     0
0     0     0     0     0     0     0     1     0
-1     0     0     0    -1     0     0     0     0

>> full(ReductionMap(3))

ans =

0     0     0     0    -1     0     0     0    -1
0     1     0     0     0     0     0     0     0
0     0     1     0     0     0     0     0     0
0     0     0     1     0     0     0     0     0
-1     0     0     0     0     0     0     0    -1
0     0     0     0     0     1     0     0     0
0     0     0     0     0     0     1     0     0
0     0     0     0     0     0     0     1     0
-1     0     0     0    -1     0     0     0     0