mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-11-03 20:53:13 +03:00 
			
		
		
		
	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.
		
			
				
	
	
		
			37 lines
		
	
	
		
			732 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			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
 |