aboutsummaryrefslogtreecommitdiff
path: root/math
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@gmail.com>2011-10-15 20:22:59 -0400
committerUlrich Drepper <drepper@gmail.com>2011-10-15 20:22:59 -0400
commitbcf01e6d800e837622ddbc851b42b55fa99e5636 (patch)
tree5df0ae9971331105fe53de872895abb68d8276a5 /math
parentba1a0d5938b53454a249d679ab90baf541cd91ad (diff)
downloadglibc-bcf01e6d800e837622ddbc851b42b55fa99e5636.zip
glibc-bcf01e6d800e837622ddbc851b42b55fa99e5636.tar.gz
glibc-bcf01e6d800e837622ddbc851b42b55fa99e5636.tar.bz2
Optimize exp
Add __exp*_finite optimizations and rewrite some wrappers.
Diffstat (limited to 'math')
-rw-r--r--math/Versions1
-rw-r--r--math/bits/math-finite.h7
-rw-r--r--math/e_expl.c1
3 files changed, 9 insertions, 0 deletions
diff --git a/math/Versions b/math/Versions
index 66bf460..0988851 100644
--- a/math/Versions
+++ b/math/Versions
@@ -196,5 +196,6 @@ libm {
__sinh_finite; __sinhf_finite; __sinhl_finite;
__sqrt_finite; __sqrtf_finite; __sqrtl_finite;
__gamma_r_finite; __gammaf_r_finite; __gammal_r_finite;
+ __exp_finite; __expf_finite; __expl_finite;
}
}
diff --git a/math/bits/math-finite.h b/math/bits/math-finite.h
index c6b9527..7443d26 100644
--- a/math/bits/math-finite.h
+++ b/math/bits/math-finite.h
@@ -67,6 +67,13 @@ extern float coshf (float) __asm__ ("__coshf_finite");
extern long double coshl (long double) __asm__ ("__coshl_finite");
#endif
+/* exp. */
+extern double exp (double) __asm__ ("__exp_finite");
+extern float expf (float) __asm__ ("__expf_finite");
+#ifdef __MATH_DECLARE_LDOUBLE
+extern long double expl (long double) __asm__ ("__expl_finite");
+#endif
+
#ifdef __USE_GNU
/* exp10. */
extern double exp10 (double) __asm__ ("__exp10_finite");
diff --git a/math/e_expl.c b/math/e_expl.c
index f9467c3..5ba6eb5 100644
--- a/math/e_expl.c
+++ b/math/e_expl.c
@@ -9,6 +9,7 @@ __ieee754_expl (long double x)
__set_errno (ENOSYS);
return 0.0;
}
+strong_alias (__ieee754_expl, __expl_finite)
stub_warning (expl)
#include <stub-tag.h>