glibc/sysdeps/generic/w_exp2.c
Roland McGrath becf77cd8c * sysdeps/generic/w_exp2.c [NO_LONG_DOUBLE]: Fix typos in alias names.
Reported by Mark Mitchell <mark@codesourcery.com>.
	* Versions.def (libm): Define GLIBC_2.4 set.
	* math/Versions (libm: GLIBC_2.4): Add this set, with exp2l.
	* sysdeps/i386/Versions (libm: GLIBC_2.1): Add this set, with exp2l.
	* sysdeps/ia64/Versions: Likewise.
	* sysdeps/m68k/Versions: Likewise.
	* sysdeps/sparc/sparc64/Versions: Likewise.
	* sysdeps/x86_64/Versions: New file.
	* sysdeps/mips/mips64/Versions: New file.
2005-03-28 20:42:53 +00:00

37 lines
732 B
C

/*
* wrapper exp2(x)
*/
#include <float.h>
#include "math.h"
#include "math_private.h"
static const double o_threshold= (double) DBL_MAX_EXP;
static const double u_threshold= (double) (DBL_MIN_EXP - DBL_MANT_DIG - 1);
double
__exp2 (double x) /* wrapper exp2 */
{
#ifdef _IEEE_LIBM
return __ieee754_exp2 (x);
#else
double z;
z = __ieee754_exp2 (x);
if (_LIB_VERSION != _IEEE_ && __finite (x))
{
if (x > o_threshold)
/* exp2 overflow */
return __kernel_standard (x, x, 44);
else if (x <= u_threshold)
/* exp2 underflow */
return __kernel_standard (x, x, 45);
}
return z;
#endif
}
weak_alias (__exp2, exp2)
#ifdef NO_LONG_DOUBLE
strong_alias (__exp2, __exp2l)
weak_alias (__exp2, exp2l)
#endif