# `EMLXAxon.Qwen3.Layers`
[🔗](https://github.com/elixir-nx/emlx/blob/v0.3.0/emlx_axon/lib/emlx_axon/qwen3/layers.ex#L1)

Stateless layer primitives: RMSNorm, SwiGLU.

`rms_norm/3` delegates to `EMLX.Fast.rms_norm` (single fused Metal shader).
RoPE is no longer computed here — `EMLX.Fast.rope/6` is called directly in
`Attention.forward/10` after projecting and transposing to `{B, N, T, D}`.

# `rms_norm`

Root-mean-square layer normalisation via `mlx::fast::rms_norm`.

`x`: any shape; normalises over the last axis.
`weight`: `{hidden}` scale vector.

# `swiglu`

SwiGLU activation: `silu(gate) * up`.  `gate` and `up` must have the same shape.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
