toqito.matrix_props.majorizes
- toqito.matrix_props.majorizes(a_var, b_var)[source]
Determine if one vector or matrix majorizes another. [WikMajorization].
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.
Examples
Simple example illustrating that the vector \((3, 0, 0)\) majorizes the vector \((1, 1, 1)\).
>>> from toqito.matrix_props import majorizes >>> majorizes([3, 0, 0], [1, 1, 1]) True
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)\).
>>> from toqito.matrix_props import majorizes >>> from toqito.states import max_entangled >>> from toqito.channels import partial_trace >>> >>> v_vec = max_entangled(3) >>> rho = v_vec * v_vec.conj().T >>> majorizes(partial_trace(rho), rho) False
References
[WikMajorization]Wikipedia: Majorization https://en.wikipedia.org/wiki/Majorization
- Parameters:
a_var – Matrix or vector provided as list or np.array.
b_var – Matrix or vector provided as list or np.array.
- Returns:
Return
Trueifa_varmajorizesb_varandFalseotherwise.