-
Notifications
You must be signed in to change notification settings - Fork 51
Open
Description
I was looking over the various math functions and noticed that there is a lot of error in the implementation of the Logarithm and Exponential functions. This is after applying the Intrinsic-free version of the square root function.
// The Square-Root Function.
sqrtf(x);
// Fast and Simple alternative...
expf(0.5f*logf(x));
// the Power function
powf(a, b);
// alternative method:
expf(b*logf(a));Now as far as improving the Accuracy of the Exponential and Logarithm Functions. I suggest looking into the work completed by Ping Tak Peter Tang in the following series of articles from the early 1990s and late 1980s.
- Table-driven implementation of the Expm1 function in IEEE floating-point arithmetic. ACM Transactions on Mathematical Software 18(2): 211-222 (1992)
- Table-lookup algorithms for elementary functions and their error analysis. IEEE Symposium on Computer Arithmetic 1991: 232-236
- Accurate and efficient testing of the exponential and logarithm functions. ACM Transactions on Mathematical Software 16(3): 185-200 (1990)
- Table-driven implementation of the exponential function in IEEE floating-point arithmetic. ACM Transactions on Mathematical Software ( 15(2): 144-157 (1989)
Edit: Added note about alternative method for calling the pow function.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels