The ★_G algebra has a specific mathematical contract that distinguishes it from equivariant neural networks (ENNs). Code in this directory must preserve that contract or it isn't ★_G anymore, it's just another ENN. The four checks below are mandatory before any code change lands.
For every code change in this directory, answer all four:
(n_feat, |G|) per molecule, with no atom dimension?★_G operates on a molecule-level summary that has been measured at
every group element. The featurizer's output for one molecule is
(n_feat, n_g), never (n_atoms, n_feat, n_g) or anything atom-keyed.
If your change introduces a per-atom dimension, you are reinventing a GNN, the comparison stops being "structure-vs-structure on identical input" and becomes a featurization comparison. Stop. If you genuinely want atom-level information, accept the change in scope and update the manuscript's Section 2.7 to reflect that the feature contract has changed.
Neural ★_G layers use plain ReLU on hidden activations and a linear output. We do not add per-irrep gating, sigmoid gates on T$_1$ channels, or any equivariant non-linearity that mixes information between irreps in a learned way.
If your change introduces a learned per-irrep gate, you are reinventing e3nn-style gated equivariant networks. Stop.
nn.Parameter indexed per irrep, per group element, or per subgroup-chain level?★_G layer weights are flat (n_out, n_in, |G|) tensors. There is no
learned per-irrep weight, no per-Clebsch-Gordan coefficient, no
multi-channel multiplicity index that the model adjusts during training.
If your change introduces such a parameter, you are reinventing MACE- style irreducible-channel attention. Stop.
The only aggregation in Neural ★_G is the final invariant pool: average across the group dimension and the feature dimension to produce a scalar prediction. This is not learnable, it is a fixed average. There is no learned attention, no message-passing, no edge weighting.
If your change introduces a learnable aggregation over atoms or edges, you are reinventing a graph neural network. Stop.
(n_feat, |G|) molecule-level summaries
(e.g. Coulomb-matrix eigenvalues, sorted distance histograms,
spherical-harmonic expansions of charge density). Append rows to
the existing (14, |G|) tensor; do not add new dimensions.starg_torch/algebra.py. Provide the
multiplication table, generalized Fourier matrix, and irrep
dimensions; the existing starg_product and starg_svd will
consume them.nn.Module subclasses with forward(self, atomic_graph) signatures.e3nn.nn, e3nn.o3.experimental, or
mace.modules for use inside a ★_G layer.The paper's claim is algebraic equivariance as an alternative to architectural equivariance, not "★_G with ENN-style improvements." Once you start adding per-irrep parameters or learnable aggregations, the comparison "★_G beats MLP on identical input" stops being clean , because you've changed what counts as ★_G.
The four checks above are how we keep the empirical claim in Section 2.7 honest. They are also how we keep the manuscript's title honest: this paper is about recovering Wigner--Eckart selection rules from data via the algebra, not about beating MACE on R². If we drift into reinventing MACE, we should rename the paper.