Necesito para evaluar la función
f(x)=1−(1−A)xA,
donde0<A≤10≤x≤1.
Una sencilla implementación en C de f(x) con aritmética de punto flotante funciona bien siempre y como es bastante grande, pero se rompe cuando Una es pequeña. (1−A)x es muy cercano a 1, y restar de 1 rendimientos de un número pequeño, con apenas dígitos significativos, lo cual se divide por el diminuto A.
f(x) parece enfoque de una identidad en función de como se aproxima a cero, pero no puedo probarlo.
Hay alguna manera de reorganizar la definición de f que evita la pérdida de precisión cuando Una es pequeña? Mejor aún, hay una manera de hacerlo para que f(x)=xA=0, sin introducir un caso especial?