toqito.state_props.is_product ============================= .. py:module:: toqito.state_props.is_product .. autoapi-nested-parse:: Checks if a quantum state is product state. Module Contents --------------- .. py:function:: is_product(rho, dim = None) Determine if a given vector is a product state [@WikiSepSt]. If the input is deemed to be product, then the product decomposition is also returned. .. rubric:: Examples Consider the following Bell state \[ u = \frac{1}{\sqrt{2}} \left( |00 \rangle + |11 \rangle \right) \in \mathcal{X}. \] The corresponding density matrix of \(u\) may be calculated by: \[ \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}). \] 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). ```python exec="1" source="above" session="is_product_example" from toqito.state_props import is_product from toqito.states import bell rho = bell(0) @ bell(0).conj().T u_vec = bell(0) print(is_product(rho)) ``` ```python exec="1" source="above" session="is_product_example" print(is_product(u_vec)) ``` :param rho: The vector or matrix to check. :param dim: The dimension of the input. :returns: `True` if `rho` is a product vector and `False` otherwise.