Questions on Function Approximation (using FPGAs)

Dear all,

I am working on (compound) function approximation with one input variable using piecewise polynomial approximation with non-linear joints. These approximations are implemented in hardware using Xilinx FPGAs.

Example of such functions include: f(x)=sqrt(-ln(x)) or f(x)=x*ln(x) where x = [0,1), which are used for Gaussian noise generation (Box-Muller method) and Entropy calculation respectively.

Does anyone know any other real-life applications where compound functions need to be approximated?

My second question is on the function f(x)=sqrt(-ln(x)) over x = [0,1). This function is highly non-linear and approaches infinity as x gets close to zero. This requires floating point implementation (due to the large polynomial coefficients, which I want to avoid). Are there any transformations I am apply to the function to decompose it 2 or more functions that are more linear? (Note that ln(x) is also highly non-linear over x = [0,1))

Regards,

Dong-U Lee

Reply to
D Lee
Loading thread data ...

Dear all,

I am working on (compound) function approximation with one input variable using piecewise polynomial approximation with non-linear joints. These approximations are implemented in hardware using Xilinx FPGAs.

Example of such functions include: f(x)=sqrt(-ln(x)) or f(x)=x*ln(x) where x = [0,1), which are used for Gaussian noise generation (Box-Muller method) and Entropy calculation respectively.

Does anyone know any other real-life applications where compound functions need to be approximated?

My second question is on the function f(x)=sqrt(-ln(x)) over x = [0,1). This function is highly non-linear and approaches infinity as x gets close to zero. This requires floating point implementation (due to the large polynomial coefficients, which I want to avoid). Are there any transformations I am apply to the function to decompose it 2 or more functions that are more linear? (Note that ln(x) is also highly non-linear over x = [0,1))

Regards,

Dong-U Lee

Reply to
D Lee

sqrt(1/x) is used so often that more than one modern cpu contains built-in lookup tables to generate a good starting point for a NR iteration.

My first guess would be to look for some kind of rational approximation, even if this does require a final division.

Terje

--
- 
"almost all programming can be viewed as an exercise in caching"
Reply to
Terje Mathisen

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.