Round one number to three float formats and watch it underflow.
fp16
A float spends its bits on an exponent, which sets the range, and a mantissa, which sets the precision. bf16 keeps all 8 of fp32’s exponent bits, so it covers the same range less precisely, while fp16’s smallest positive value is 6.0 × 10⁻⁸. Set a value near 10⁻⁸ and switch on loss scaling: multiplying by 1024 before the cast slides fp16’s window three decades down.