toqito.matrix_props.majorizes¶
Determine if one vector or matrix majorizes another.
Module Contents¶
- toqito.matrix_props.majorizes.majorizes(a_var, b_var)[source]¶
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.
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)) ```
- Parameters:
a_var (numpy.ndarray | list[int]) – Matrix or vector provided as list or np.array.
b_var (numpy.ndarray | list[int]) – Matrix or vector provided as list or np.array.
- Returns:
Return True if a_var majorizes b_var and False otherwise.
- Return type:
bool