Estoy tratando de calcular $\lfloor e^x \rfloor$ donde x es un entero de 64 bits. El problema es que el resultado del cálculo puede ser cercano a 2^64 . En este rango, los números en coma flotante de 64 bits serán más escasos que los enteros de 64 bits, por lo que sería una mala idea utilizar algo como el exp
función de biblioteca en C que devuelve un double
. En su lugar, me gustaría utilizar un método que calcule directamente el resultado entero de 64 bits.
¿Existe una fórmula o un algoritmo bien condicionado para calcular este valor mínimo como un entero, sin perder precisión al pasar por punto flotante?