states.gen_bell

Generalized Bell state.

Module Contents

Functions

gen_bell(k_1, k_2, dim)

Produce a generalized Bell state [1].

states.gen_bell.gen_bell(k_1, k_2, dim)

Produce a generalized Bell state [1].

Produces a generalized Bell state. Note that the standard Bell states can be recovered as:

1bell(0) : gen_bell(0, 0, 2)
2
3bell(1) : gen_bell(0, 1, 2)
4
5bell(2) : gen_bell(1, 0, 2)
6
7bell(3) : gen_bell(1, 1, 2)

Examples

For \(d = 2\) and \(k_1 = k_2 = 0\), this generates the following matrix

\[\begin{split}G = \frac{1}{2} \begin{pmatrix} 1 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 1 & 0 & 0 & 1 \end{pmatrix}\end{split}\]

which is equivalent to \(|\phi_0 \rangle \langle \phi_0 |\) where

\[|\phi_0\rangle = \frac{1}{\sqrt{2}} \left( |00 \rangle + |11 \rangle \right)\]

is one of the four standard Bell states. This can be computed via toqito as follows.

>>> from toqito.states import gen_bell
>>> dim = 2
>>> k_1 = 0
>>> k_2 = 0
>>> gen_bell(k_1, k_2, dim)
array([[0.5+0.j, 0. +0.j, 0. +0.j, 0.5+0.j],
       [0. +0.j, 0. +0.j, 0. +0.j, 0. +0.j],
       [0. +0.j, 0. +0.j, 0. +0.j, 0. +0.j],
       [0.5+0.j, 0. +0.j, 0. +0.j, 0.5+0.j]])

It is possible for us to consider higher dimensional Bell states. For instance, we can consider the \(3\)-dimensional Bell state for \(k_1 = k_2 = 0\) as follows.

>>> from toqito.states import gen_bell
>>> dim = 3
>>> k_1 = 0
>>> k_2 = 0
>>> gen_bell(k_1, k_2, dim)
array([[0.33333333+0.j, 0.        +0.j, 0.        +0.j, 0.        +0.j,
        0.33333333+0.j, 0.        +0.j, 0.        +0.j, 0.        +0.j,
        0.33333333+0.j],
       [0.        +0.j, 0.        +0.j, 0.        +0.j, 0.        +0.j,
        0.        +0.j, 0.        +0.j, 0.        +0.j, 0.        +0.j,
        0.        +0.j],
       [0.        +0.j, 0.        +0.j, 0.        +0.j, 0.        +0.j,
        0.        +0.j, 0.        +0.j, 0.        +0.j, 0.        +0.j,
        0.        +0.j],
       [0.        +0.j, 0.        +0.j, 0.        +0.j, 0.        +0.j,
        0.        +0.j, 0.        +0.j, 0.        +0.j, 0.        +0.j,
        0.        +0.j],
       [0.33333333+0.j, 0.        +0.j, 0.        +0.j, 0.        +0.j,
        0.33333333+0.j, 0.        +0.j, 0.        +0.j, 0.        +0.j,
        0.33333333+0.j],
       [0.        +0.j, 0.        +0.j, 0.        +0.j, 0.        +0.j,
        0.        +0.j, 0.        +0.j, 0.        +0.j, 0.        +0.j,
        0.        +0.j],
       [0.        +0.j, 0.        +0.j, 0.        +0.j, 0.        +0.j,
        0.        +0.j, 0.        +0.j, 0.        +0.j, 0.        +0.j,
        0.        +0.j],
       [0.        +0.j, 0.        +0.j, 0.        +0.j, 0.        +0.j,
        0.        +0.j, 0.        +0.j, 0.        +0.j, 0.        +0.j,
        0.        +0.j],
       [0.33333333+0.j, 0.        +0.j, 0.        +0.j, 0.        +0.j,
        0.33333333+0.j, 0.        +0.j, 0.        +0.j, 0.        +0.j,
        0.33333333+0.j]])

References

[1] (1,2)

Denis Sych and Gerd Leuchs. A complete basis of generalized bell states. New Journal of Physics, 11(1):013006, Jan 2009. URL: https://dx.doi.org/10.1088/1367-2630/11/1/013006, doi:10.1088/1367-2630/11/1/013006.

Parameters:
  • k_1 (int) – An integer 0 <= k_1 <= n.

  • k_2 (int) – An integer 0 <= k_2 <= n.

  • dim (int) – The dimension of the generalized Bell state.

Return type:

numpy.ndarray