decompose_representation#
- decompose_representation(G, rep)[source]#
Block-diagonalize \(\rho:\mathbb{G}\to\mathrm{GL}(\mathcal{X})\) into invariant subspaces.
Finds a unitary matrix \(\mathbf{Q}\) such that
\[\mathbf{Q}\rho(g)\mathbf{Q}^H = \operatorname{blockdiag}(\rho_1(g), \ldots, \rho_m(g)), \quad \forall g\in\mathbb{G},\]where each \(\rho_i\) is an invariant subrepresentation. The algorithm recursively uses commuting-Hermitian witnesses and graph connected-components to obtain contiguous block structure.
- Parameters:
G (
Group) – The symmetry group.rep (dict | collections.abc.Callable) – A
Union-style input. It must be either a dict or acollections.abc.Callable. It must map eachGroupElementto a matrixndarray.
- Returns:
subreps (list[Callable]): Decomposed subrepresentations (not guaranteed sorted by dimension).
Q (
ndarray): Unitary change-of-basis matrix.
- Return type: