toqito.states.w_state

toqito.states.w_state(num_qubits, coeff=None)[source]

Produce a W-state [DVC00].

Returns the W-state described in [DVC00]. The W-state on num_qubits qubits is defined by:

\[|W \rangle = \frac{1}{\sqrt{num\_qubits}} \left(|100 \ldots 0 \rangle + |010 \ldots 0 \rangle + \ldots + |000 \ldots 1 \rangle \right).\]

Examples

Using toqito, we can generate the \(3\)-qubit W-state

\[|W_3 \rangle = \frac{1}{\sqrt{3}} \left( |100\rangle + |010 \rangle + |001 \rangle \right)\]

as follows.

>>> from toqito.states import w_state
>>> w_state(3)
[[0.    ],
 [0.5774],
 [0.5774],
 [0.    ],
 [0.5774],
 [0.    ],
 [0.    ],
 [0.    ]]

We may also generate a generalized \(W\)-state. For instance, here is a \(4\)-dimensional \(W\)-state

\[\frac{1}{\sqrt{30}} \left( |1000 \rangle + 2|0100 \rangle + 3|0010 \rangle + 4 |0001 \rangle \right).\]

We can generate this state in toqito as

>>> from toqito.states import w_state
>>> import numpy as np
>>> coeffs = np.array([1, 2, 3, 4]) / np.sqrt(30)
>>> w_state(4, coeffs)
[[0.    ],
 [0.7303],
 [0.5477],
 [0.    ],
 [0.3651],
 [0.    ],
 [0.    ],
 [0.    ],
 [0.1826],
 [0.    ],
 [0.    ],
 [0.    ],
 [0.    ],
 [0.    ],
 [0.    ],
 [0.    ]]

References

[DVC00]

Three qubits can be entangled in two inequivalent ways. W. Dur, G. Vidal, and J. I. Cirac. E-print: arXiv:quant-ph/0005115, 2000.

Raises:

ValueError – The number of qubits must be greater than or equal to 1.

Parameters:
  • num_qubits – An integer representing the number of qubits.

  • coeff – default is [1, 1, …, 1]/sqrt(num_qubits): a 1-by-num_qubts vector of coefficients.