equiv_orthogonal_projection#
- equiv_orthogonal_projection(W, rep_x, rep_y, tensor_cache=None)[source]#
Orthogonally project a linear map onto \(\mathrm{Hom}_{\mathbb{G}}(\rho_{\mathcal{X}},\rho_{\mathcal{Y}})\).
Let \((\mathcal{X}, \rho_{\mathcal{X}})\) and \((\mathcal{Y}, \rho_{\mathcal{Y}})\) be two \(\mathbb{G}\)-symmetric vector spaces. Given any dense linear map \(\mathbf{W}\in\mathbb{R}^{\dim(\mathcal{Y})\times\dim(\mathcal{X})}\), this function returns its Frobenius-orthogonal projection onto \(\mathrm{Hom}_{\mathbb{G}}(\rho_{\mathcal{X}}, \rho_{\mathcal{Y}})\):
\[\Pi_{\mathrm{Hom}_{\mathbb{G}}}(\mathbf{W}) = \operatorname*{argmin}_{\mathbf{A}\in\mathrm{Hom}_{\mathbb{G}}(\rho_{\mathcal{X}},\rho_{\mathcal{Y}})} \|\mathbf{W}-\mathbf{A}\|_F.\]The computation uses the isotypic decomposition of both representations and projects each shared-irrep block independently.
This projection is equivalent to the Reynolds/group-average operator, but more computational and memory efficient when the order of the group is large.
\[\Pi_{\mathrm{Hom}_{\mathbb{G}}}(\mathbf{A}) = \frac{1}{|\mathbb{G}|}\sum_{g\in\mathbb{G}} \rho_{\mathcal{Y}}(g)\,\mathbf{A}\,\rho_{\mathcal{X}}(g^{-1}).\]- Parameters:
W (
Tensor) – Dense map (or batch of maps) of shape \((..., D_y, D_x)\).rep_x (
Representation) – Input representation \(\rho_{\mathcal{X}}\).rep_y (
Representation) – Output representation \(\rho_{\mathcal{Y}}\).tensor_cache (
IsotypicTensorCache, optional) – Optional override containing the tensor cache required byproject_in_isobasis(). When provided, all required tensors must be present.
- Returns:
Projected map(s) with same shape, dtype, and device as
W.- Return type:
- Shape:
W: \((..., D_y, D_x)\).
Output: \((..., D_y, D_x)\).