Estoy tratando de implementar una rutina de punto fijo que implica calcular el valor de \ $ \ sqrt {x} \ $ para el pequeño \ $ x \ $ que se acerca a \ $ 0 \ $. La arquitectura de destino es un FPGA. Un problema es que esta función no se presta fácilmente al uso de la expansión de Taylor. Se puede ver que para valores pequeños de x, la pendiente de \ $ \ sqrt {x} \ $ va hasta el infinito cuando \ $ x \ $ se acerca a \ $ 0 \ $, por lo tanto, evaluar la función usando una serie de potencias implica multiplicar coeficientes enormes con un pequeño \ $ x \ $. Por lo tanto, este método es numéricamente inestable.
Utilizando un enfoque iterativo, Newton-Raphson produce la siguiente ecuación iterativa: \ $ x_ {n + 1} = \ frac {x_ {n}} {2} - \ frac {\ alpha} {2x_ {n} } \ $, donde estamos tratando de aproximarnos a \ $ \ sqrt {\ alpha} \ $. Pero una vez más, dado que \ $ \ alpha \ $ es pequeño, \ $ x_ {n} \ $ también tendría que ser pequeño para que la solución converja. Dado que la ecuación implica dividir un número pequeño por otro pequeño, es probable que la aritmética de punto fijo falle.
Con eso, me gustaría saber cómo implementar la aproximación de valor pequeño para \ $ \ sqrt {x} \ $ usando aritmética de punto fijo, ya sea utilizando coeficientes precomputados o métodos iterativos.