# BrauerStates

BrauerStates | |

Produces all Brauer states | |

Other toolboxes required | none |
---|---|

Related functions | MaxEntangled |

Function category | Special states, vectors, and operators |

` BrauerStates` is a function that returns all "Brauer" states: state that are the $p$-fold tensor product of the standard pure maximally-entangled state. Note that there are $(2p)!/(p!\cdot 2^p)$ such states, since this is the number of ways of choose $p$ pairs out of $2p$ objects (here, each pair corresponds to two subsystems that are maximally-entangled). Note that the states returned are unnormalized (i.e., all of their entries are 0 or 1, rather than being scaled so that the norm of each state is 1) and sparse.

Brauer states are interesting because they span the subspace that is invariant under the action of $X^{\otimes 2p}$ for every real orthogonal matrix $X$.

## Syntax

`B = BrauerStates(D,P)`

## Argument descriptions

`D`: The dimension of each local subsystem.`P`: Half of the number of parties (i.e., the states that this function computes will live in $(\mathbb{C}^D)^{\otimes 2P}$).

## Examples

### Four-qubit Brauer States

The following code generates a matrix whose columns are all Brauer states on 4 qubits:

```
>> full(BrauerStates(2,2))
ans =
1 1 1
0 0 0
0 0 0
1 0 0
0 0 0
0 1 0
0 0 1
0 0 0
0 0 0
0 0 1
0 1 0
0 0 0
1 0 0
0 0 0
0 0 0
1 1 1
```

Indeed, the first column of the output above is the state that is maximally-entangled between qubits 1 and 2, and maximally-entangled between qubits 3 and 4. The second column is the state that is maximally-entangled between qubits 1 and 3 and between qubits 2 and 4. Finally, the third column is the state that is maximally-entangled between qubits 1 and 4 and between qubits 2 and 3.

## Notes

- In general, the output of this function will be a $N^{2P}$-by-$(2P)!/(P!\cdot 2^P)$ matrix.

- The term "Brauer state" is not standard: it is used here because these states encode the Brauer algebra's relationship with the orthogonal group in the natural way.

## Source code

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