What problem does it solve? Writing correct and performant JAX code requires discipline around functional purity, random key management, and JIT-compatible control flow, which developers often get wrong when coming from NumPy or imperative frameworks. ## Core Features & Use Cases - JAX Fundamentals Guidance: Covers jax.numpy operations, automatic differentiation with jax.grad, JIT compilation with jax.jit, and vectorization with jax.vmap. - Functional Control Flow: Enforces jax.lax.scan, jax.lax.cond, and jax.lax.fori_loop instead of Python control flow inside jitted functions. - Model Development Patterns: Guides pure-function model definitions using Flax or Haiku, proper random key splitting, pytrees, sharding, and gradient checkpointing. - Use Case: When building a training loop that runs slowly or produces wrong gradients, apply this Skill to refactor it into pure functions with proper key splitting and JIT-compiled scan loops. ## Quick Start Help me write a JIT-compiled JAX training loop for a neural network using Flax with proper random key splitting.