toqito.matrix_props.majorizes ============================= .. py:module:: toqito.matrix_props.majorizes .. autoapi-nested-parse:: Determine if one vector or matrix majorizes another. Module Contents --------------- .. py:function:: majorizes(a_var, b_var) Determine if one vector or matrix majorizes another [@WikiMajorization]. Given \(a, b \in \mathbb{R}^d\), we say that \(a\) **weakly majorizes** (or dominates) \(b\) from below if and only if \[ \sum_{i=1}^k a_i^{\downarrow} \geq \sum_{i=1}^k b_i^{\downarrow} \] for all \(k \in \{1, \ldots, d\}\). This function was adapted from the QETLAB package. .. rubric:: Examples Simple example illustrating that the vector \((3, 0, 0)\) majorizes the vector \((1, 1, 1)\). ```python exec="1" source="above" from toqito.matrix_props import majorizes print(majorizes([3, 0, 0], [1, 1, 1])) ``` The majorization criterion says that every separable state \(\rho \in \text{D}(\mathcal{A} \otimes \mathcal{B})\) is such that \(\text{Tr}_{\mathcal{B}}(\rho)\) majorizes \(\text{Tr}_{\mathcal{A}}(\rho)\). ```python exec="1" source="above" from toqito.matrix_props import majorizes from toqito.states import max_entangled from toqito.matrix_ops import partial_trace v_vec = max_entangled(3) rho = v_vec @ v_vec.conj().T print(majorizes(partial_trace(rho, [1]), rho)) ``` :param a_var: Matrix or vector provided as list or np.array. :param b_var: Matrix or vector provided as list or np.array. :returns: Return `True` if `a_var` majorizes `b_var` and `False` otherwise.