states.brauer

Brauer states are the p_val-fold tensor product of the standard maximally-entangled pure states.

Functions

brauer(dim, p_val)

Produce all Brauer states [1].

Module Contents

states.brauer.brauer(dim, p_val)

Produce all Brauer states [1].

Produce a matrix whose columns are all of the (unnormalized) “Brauer” states: states that are the p_val-fold tensor product of the standard maximally-entangled pure state on dim local dimensions. There are many such states, since there are many different ways to group the 2 * p_val parties into p_val pairs (with each pair corresponding to one maximally-entangled state).

The exact number of such states is:

>>> import math
>>> import numpy as np
>>> p_val = 2
>>> math.factorial(2 * p_val) / (math.factorial(p_val) * 2**p_val)
3.0

which is the number of columns of the returned matrix.

This function has been adapted from QETLAB.

Examples

Generate a matrix whose columns are all Brauer states on 4 qubits.

>>> from toqito.states import brauer
>>> brauer(2, 2)
array([[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.]])

References

[1] (1,2)

Wikipedia. Brauer algebra. URL: https://en.wikipedia.org/wiki/Brauer_algebra.

Parameters:
  • dim (int) – Dimension of each local subsystem

  • p_val (int) – Half of the number of parties (i.e., the state that this function computes will live in \((\mathbb{C}^D)^{\otimes 2 P})\)

Returns:

Matrix whose columns are all of the unnormalized Brauer states.

Return type:

numpy.ndarray