ConvNeXt's channel LayerNorm — the render's γ/β outputs and the graph transport #
The op itself — chanLNTensor3, its VJP, chanLNRows and the γ/β gradient contractions — is
Architectures/ChannelLN. This file holds what is ConvNeXt's: the two statements that the render's
LN tail (veclnGammaSgd / rowDenseBiasSgd on the transposed views) denotes the certified γ/β
step (cnx_render_chlngamma_certified, cnx_render_chlnbeta_certified), and the graph-side ▸
transport (den_reassocS / den_unassocS) that keeps ConvNeXtRender's reassoc and
chanLNTensor3 describing one function.
Channel-LN γ output, certified. The rendered per-channel reduce — ViT's
vecLNGradGamma on the two transposed views the tail emits — equals the certified Jacobian
of chanLNTensor3 in its Vec c γ, contracted with the activation-layout cotangent. The
den target of the render's veclnGammaSgd LN tail.
Channel-LN β output, certified. The β grad is the plain reduce Σ_rows dy, so the same
rowDenseBiasSgd op ViT's LN-β uses denotes it here too.
The graph's reassoc transport IS the math's Mat-split bridge — den_castIdx composed
with reassocFwdIdx_val. This is the lemma that keeps ConvNeXtRender's channel-LN sites and
chanLNTensor3 describing one function.