toqito.state_props.is_mutually_orthogonal
- toqito.state_props.is_mutually_orthogonal(vec_list)[source]
Check if list of vectors are mutually orthogonal [WikOrthog].
We say that two bases
\[\begin{equation} \mathcal{B}_0 = \left\{u_a: a \in \Sigma \right\} \subset \mathbb{C}^{\Sigma} \quad \text{and} \quad \mathcal{B}_1 = \left\{v_a: a \in \Sigma \right\} \subset \mathbb{C}^{\Sigma} \end{equation}\]are mutually orthogonal if and only if \(\left|\langle u_a, v_b \rangle\right| = 0\) for all \(a, b \in \Sigma\).
For \(n \in \mathbb{N}\), a set of bases \(\left\{ \mathcal{B}_0, \ldots, \mathcal{B}_{n-1} \right\}\) are mutually orthogonal if and only if every basis is orthogonal with every other basis in the set, i.e. \(\mathcal{B}_x\) is orthogonal with \(\mathcal{B}_x^{\prime}\) for all \(x \not= x^{\prime}\) with \(x, x^{\prime} \in \Sigma\).
Examples
The Bell states constitute a set of mutually orthogonal vectors.
>>> from toqito.states import bell >>> from toqito.state_props import is_mutually_orthogonal >>> states = [bell(0), bell(1), bell(2), bell(3)] >>> is_mutually_orthogonal(states) True
The following is an example of a list of vectors that are not mutually orthogonal.
>>> import numpy as np >>> from toqito.states import bell >>> from toqito.state_props import is_mutually_orthogonal >>> states = [np.array([1, 0]), np.array([1, 1])] >>> is_mutually_orthogonal(states) False
References
[WikOrthog]Wikipedia: Orthogonality https://en.wikipedia.org/wiki/Orthogonality
- Raises:
ValueError – If at least two vectors are not provided.
- Parameters:
vec_list – The list of vectors to check.
- Returns:
Trueifvec_listare mutually orthogonal, andFalseotherwise.