Del como prevenir un error de coma flotante y del como un issue pasó por SAP, Intel y Microsoft
Meses atrás me informaron de un dump que le ocurrió a una usuaria mientras trabajaba con la transacción SAP que diseñamos para el manejo de modelos econométricos. El problema se presentaba al momento de calcular un antilogaritmo para un número con exponente muy pequeño, por ejemplo: 10^-900 lo cual normalmente cualquier mortal lo entendería como un valor positivo muy cercano a cero, pero bueno, SAP no. En el análisis de errores para ese dump, SAP nos indicaba lo siguiente: There may be an overflow or an underflow. With the floating point format defined according to IEEE 754 and widely used on workstations, the following must apply for "x **y": -709 A lo cual nosotros procedimos a implementar la fórmula tal como venía entregada sin mayor análisis ni revisión. Tiempo después volvió a ocurrir el mismo error al intentar calcular 10^-307.655 a lo cual aplicamos la regla de SAP teniendo lo siguiente y * ln x = -307.55 * ln 10 = -708.4018168 -709 al satisfacerse la regla y decidim...