toqito.state_props.is_product
- toqito.state_props.is_product(rho, dim=None)[source]
Determine if a given vector is a product state [WikProdState].
If the input is deemed to be product, then the product decomposition is also returned.
Examples
Consider the following Bell state .. math:
u = \frac{1}{\sqrt{2}} \left( |00 \rangle + |11 \rangle \right) \in \mathcal{X}.
The corresponding density matrix of \(u\) may be calculated by:
\[\begin{split}\rho = u u^* = \frac{1}{2} \begin{pmatrix} 1 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 1 & 0 & 0 & 1 \end{pmatrix} \in \text{D}(\mathcal{X}).\end{split}\]We can provide the input as either the vector \(u\) or the denisty matrix \(\rho\). In either case, this represents an entangled state (and hence a non-product state). >>> from toqito.state_props import is_product >>> from toqito.states import bell >>> rho = bell(0) * bell(0).conj().T >>> u_vec = bell(0) >>> is_product(rho) (array([False]), None) >>> >>> is_product(u_vec) (array([False]), None)
References
[WikProdState]Wikipedia: Product state https://en.wikipedia.org/wiki/Product_state
- Parameters:
rho – The vector or matrix to check.
dim – The dimension of the input.
- Returns:
Trueifrhois a product vector andFalseotherwise.