La aritmética de punto flotante sigue un paradigma de seguridad radicalmente diferente al de la aritmética de enteros, lo que explica por qué los modelos de lenguaje de gran escala (LLM) suelen fallar al tratar con números reales. Mientras que en la programación con enteros, el objetivo es prevenir desbordamientos mediante operaciones verificadas o constantes máximas, en el entorno IEEE-754 los errores operativos generan valores NaN (not a number) o infinitos, que son legítimos y no provocan el colapso del programa.
El autor argumenta que la tendencia a aplicar patrones de seguridad de enteros a los flotantes, como verificar denominadores cero o usar un epsilon arbitrario, es funcionalmente incorrecta. Un ejemplo concreto demuestra que dividir un número máximo de 32 bits por un valor cercano a 1 produce un infinito, invalidando la comparación con un umbral fijo. La solución recomendada es verificar explícitamente si el resultado es finito utilizando funciones como isfinite en C o Rust, en lugar de depender de umbrales arbitrarios. Este enfoque es más robusto para algoritmos complejos, ya que permite que los errores como raíces negativas o divisiones por cero se propaguen como NaN de forma segura, evitando rechazar entradas válidas por cercanía a un límite arbitrario. Sin embargo, el autor advierte que la finitud no garantiza la precisión numérica, ya que la inestabilidad puede generar resultados finitos incorrectos. Finalmente, se señala una limitación técnica en el stack gráfico, donde la propagación de NaN puede no cumplir con las normas IEEE-754, requiriendo implementaciones alternativas para detectar estos estados.
