first try at writing an efficient and "correct" exp10

this is a nonstandard function so it's not clear what conditions it
should satisfy. my intent is that it be fast and exact for positive
integral exponents when the result fits in the destination type, and
fast and correctly rounded for small negative integral exponents.
otherwise we aim for at most 1ulp error; it seems to differ from pow
by at most 1ulp and it's often 2-5 times faster than pow.
This commit is contained in:
Rich Felker
2012-04-30 03:26:53 -04:00
parent 63374ee233
commit f681975577
4 changed files with 59 additions and 0 deletions

View File

@ -387,6 +387,10 @@ float y1f(float);
long double y1l(long double);
float ynf(int, float);
long double ynl(int, long double);
double exp10(double);
float exp10f(float);
long double exp10l(long double);
#endif
#ifdef __cplusplus