# ChoiMap

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
 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

## Source code

Click on "expand" to the right to view the MATLAB source code for this function.

1. %%  CHOIMAP    Produces the Choi map or one of its generalizations
2. %   This function has no required arguments.
3. %
4. %   C = ChoiMap() is the Choi matrix of the Choi map, which is a positive
5. %   map on 3-by-3 matrices that is capable of detecting some entanglement
6. %   that the transpose map is not.
7. %
8. %   This function has three optional arguments:
9. %     A,B,C (default 1,1,0)
10. %
11. %   C = ChoiMap(A,B,C) is the Choi matrix of the positive map defined in
12. %   . Many of these maps are capable of detecting PPT entanglement.
13. %
14. %   URL: http://www.qetlab.com/ChoiMap
15. %
16. %   References:
17. %    S. J. Cho, S.-H. Kye, and S. G. Lee, Linear Algebr. Appl. 171, 213
18. %   (1992).
19. 
20. %   requires: iden.m, MaxEntangled.m, opt_args.m
21. %   author: Nathaniel Johnston (nathaniel@njohnston.ca)
22. %   package: QETLAB
23. %   last updated: August 5, 2013
24. 
25. function C = ChoiMap(varargin)
26. 
27. % set optional argument defaults: a=1, b=1, c=0 (the usual Choi map)
28. [a,b,c] = opt_args({ 1, 1, 0 },varargin{:});
29. 
30. psi = MaxEntangled(3,0,0);
31. C = diag([a+1,c,b,b,a+1,c,c,b,a+1]) - psi*psi';