Análisis técnico de los errores de redondeo en la suma de decimales

El artículo técnico explora la naturaleza de los errores de redondeo que ocurren al sumar números decimales utilizando la precisión de punto flotante estándar en la computación. Aunque se recomienda evitar estas operaciones para cálculos financieros críticos, el texto demuestra que en rangos de valo

Modelos precisos de los núcleos de matriz de AMD

Un estudio académico publicado en arXiv presenta modelos matemáticos precisos para los núcleos de matriz de las GPUs de AMD, un componente que no sigue el estándar IEEE 754 de punto flotante. La investigación, realizada por Faizan Ahmad Khattak, analiza las diferencias arquitectónicas en tres genera

Los números flotantes subnormales son lentos en procesadores Intel

Los números de punto flotante subnormales, definidos por el estándar IEEE para valores muy pequeños, presentan un coste de rendimiento significativo en procesadores Intel. Un análisis técnico realizado por Daniel Lemire demuestra que estas operaciones pueden ralentizar las computaciones hasta 45 vec

Detectar valores NaN en la frontera de pases de MLIR

En el compilador MLIR, un pase de fusión puede generar un atributo NaN durante el constant folding aunque todos sus operandos partan de valores válidos, lo que termina propagando un resultado numéricamente inválido al runtime y degradando métricas de precisión mucho más adelante, sin que el fallo se

Doble-doble: 31 dígitos de precisión sin abandonar la FPU

El formato double-double combina dos números binarios de doble precisión para representar aproximadamente 31 dígitos decimales sin recurrir a bibliotecas de precisión arbitraria. Cada valor almacena por separado la componente principal y el error de redondeo, de modo que su suma recupera la parte de

Guía visual de la cuantización: cómo comprimir modelos de lenguaje grandes

La cuantización es una técnica de compresión que reduce el número de bits necesarios para representar los parámetros de un modelo de lenguaje grande (LLM), normalmente almacenados en punto flotante de 32 bits (FP32), a formatos de menor precisión como FP16, BF16 o enteros de 8 bits (INT8). El objeti

Por qué JSON puede alterar silenciosamente tus datos en JavaScript

JSON es el formato estándar para intercambiar datos en la web, pero su paso por JavaScript introduce cambios silenciosos que pueden alterar el significado de la información sin que el código lance ningún error. Este artículo analiza las principales trampas que aparecen al serializar y deserializar o

Cómo convertir números en coma flotante a binario pasando por hexadecimal

Los números enteros pueden pasarse de base 16 (hexadecimal) a base 2 (binario) convirtiendo cada dígito por separado; por ejemplo, CAFE en hexadecimal equivale a 1100 1010 1111 1110 en binario. Esta misma técnica puede extenderse a los números en coma flotante, pese a ser un truco poco conocido. En

ALP: compresión sin pérdida de coma flotante presente en repositorio de GitHub

ALP es un algoritmo de compresión sin pérdida para datos en coma flotante conforme al estándar IEEE 754, publicado como código fuente y banco de pruebas en el repositorio cwida/ALP de GitHub. Su artículo asociado, "ALP: Adaptive Lossless Floating-Point Compression", fue presentado en ACM SIGMOD 2024

Por qué log no es monótona en PHP y Lua: el caso base que rompe la intuición

Una falla silenciosa en la intuición matemática del cómputo En el mundo del software, una función tan aparentemente inocente como el logaritmo esconde trampas que rompen las expectativas más básicas de los programadores. Un análisis publicado por el desarrollador conocido como purplesyringa revela

Dos casos de estudio sobre los efectos inesperados de NaN en Python y Lua

NaN, el valor especial que representa «no es un número», infringe una de las reglas más asumidas en programación: que todo objeto es igual a sí mismo. Esa peculiaridad, definida en el estándar IEEE-754, se cuela en el diseño de lenguajes que dan por buena esa misma regla y produce comportamientos di

Conversión exacta de UNORM8 a coma flotante: dos multiplicaciones bastan

Los formatos UNORM8 almacenan un valor en el intervalo [0, 1] como un entero sin signo de 8 bits en GPUs. La conversión exacta a coma flotante consistiría, en aritmética exacta, en dividir el entero por 255. Sin embargo, la especificación funcional de D3D11.3 desaconseja exigir una precisión de 1/2

Manejo de errores de coma flotante en C++: lo que realmente funciona

Este artículo explora las técnicas para manejar eficientemente los errores de coma flotante en C++. Se abordan métodos como la inspección directa de resultados (verificación de infinito y NaN), el uso de bits de 'sticky' en el registro de estado de coma flotante y la habilitación de 'traps' de hardw

Extensiones F, D y Q: el soporte de punto flotante en RISC-V

La arquitectura de conjunto de instrucciones RISC-V ha desarrollado un ecosistema completo de extensiones para soportar operaciones de punto flotante. El ISA base (RV32I o RV64I) no define instrucciones de punto flotante, por lo que RISC-V proporciona extensiones específicas. La extensión F ofrece s

Nuevo compresor 'fc' optimiza la compresión de datos de punto flotante

Se ha publicado 'fc' (floating-point compressor), una nueva herramienta de compresión sin pérdida diseñada específicamente para streams de números en formato IEEE-754 de 64 bits. Desarrollada por Praveen Vaddadi bajo licencia Apache 2.0, la versión actual es fc 1.56. El compresor divide la entrada e

Errores ocultos: la trampa de los números flotantes

Este artículo explora un problema sutil pero crítico en el cálculo geométrico: la falta de reproducibilidad de los resultados al usar números de punto flotante (floats). El autor, Gerardus Cremer, se enfrentó a una situación donde un test de superposición de polígonos funcionaba localmente pero fall

NaN: el número que guarda secretos

Este artículo explora un aspecto poco conocido de los números de punto flotante: el valor `NaN` (Not a Number). `NaN` no es simplemente un error; es un valor especial definido por el estándar IEEE 754-2008 para representar resultados indefinidos o no numéricos, como la raíz cuadrada de un número neg

Entiende los decimales: herramienta online desvela el punto flotante

Un desarrollador ha lanzado una nueva herramienta online, [float.exposed](https://float.exposed), para ayudar a los programadores a comprender mejor los números de punto flotante, un tema a menudo confuso a pesar de su uso generalizado. La herramienta, complementaria a un artículo en ciechanow.ski,

Tanh: Técnicas para una Aproximación Eficiente

Este artículo de Tom Schroeder explora diversas técnicas para aproximar la función tangente hiperbólica (tanh), una función crucial en áreas como redes neuronales y procesamiento de audio. La función tanh mapea cualquier número real a un rango entre -1 y 1, presentando una curva en forma de 'S' que

Comparar floats: ¿evitamos el problema o lo empeoramos?

Un artículo en lisyarus.github.io cuestiona la práctica común de evitar la comparación directa de números de punto flotante utilizando un valor 'epsilon' para la tolerancia. El autor, con más de 15 años de experiencia en programación que involucra geometría, gráficos y física, argumenta que esta prá

Aritmética de punto flotante: un desafío superado

Este artículo, escrito por Julia Desmazes, explora el complejo mundo de la aritmética de punto flotante, un tema que la autora confiesa haber encontrado profundamente desafiante. El objetivo es ir más allá de la simple utilización de números de punto flotante y comprender a fondo su representación i

Redes neuronales: Lean busca mayor seguridad

El auge de las redes neuronales en aplicaciones críticas, como sistemas de seguridad y control, ha revelado una brecha preocupante: la verificación y el análisis de estas redes a menudo se realizan *fuera* del entorno de programación donde se definen y ejecutan. Esta separación crea una desconexión