#include "xmmLibm_prefix.h"
#include "math.h"
#if defined(BUILDING_FOR_CARBONCORE_LEGACY)
double __inf ( void )
{
return __builtin_inf();
}
#else
unsigned int __math_errhandling ( void )
{
return (MATH_ERREXCEPT); }
int __isfinited( double x )
{
return __inline_isfinited(x);
}
int __isfinitef( float x )
{
return __inline_isfinitef(x);
}
int __isfinite( long double x )
{
return __inline_isfinite(x);
}
int finite( double x )
{
return __isfinited( x );
}
int __isinfd( double x )
{
return __inline_isinfd(x);
}
int __isinff( float x )
{
return __inline_isinff(x);
}
int __isinf( long double x )
{
return __inline_isinf(x);
}
int __isnand( double x )
{
return __inline_isnand(x);
}
int __isnanf( float x )
{
return __inline_isnanf(x);
}
int __isnan( long double x )
{
return __inline_isnan(x);
}
int __isnormald( double x )
{
return __inline_isnormald( x );
}
int __isnormalf( float x )
{
return __inline_isnormalf( x );
}
int __isnormal( long double x )
{
return __inline_isnormal( x );
}
int __signbitd( double x )
{
return __inline_signbitd(x);
}
int __signbitf( float x )
{
return __inline_signbitf(x);
}
int __signbitl( long double x )
{
return __inline_signbit(x);
}
int __fpclassifyd( double x )
{
x = __builtin_fabs(x);
if( EXPECT_FALSE( x == 0.0 ) )
return FP_ZERO;
if( EXPECT_FALSE( x < 0x1.0p-1022 ) )
return FP_SUBNORMAL;
if( EXPECT_TRUE( x < __builtin_inf() ) )
return FP_NORMAL;
if( EXPECT_TRUE( x == __builtin_inf() ) )
return FP_INFINITE;
return FP_NAN;
}
int __fpclassifyf( float x )
{
x = __builtin_fabsf(x);
if( EXPECT_FALSE( x == 0.0f ) )
return FP_ZERO;
if( EXPECT_FALSE( x < 0x1.0p-126f ) )
return FP_SUBNORMAL;
if( EXPECT_TRUE( x < __builtin_inff() ) )
return FP_NORMAL;
if( EXPECT_TRUE( x == __builtin_inff() ) )
return FP_INFINITE;
return FP_NAN;
}
int __fpclassify( long double x )
{
x = __builtin_fabsl(x);
if( EXPECT_FALSE( x == 0.0L ) )
return FP_ZERO;
if( EXPECT_FALSE( x < 0x1.0p-16382L ) )
return FP_SUBNORMAL;
if( EXPECT_TRUE( x < __builtin_infl() ) )
return FP_NORMAL;
if( EXPECT_TRUE( x == __builtin_infl() ) )
return FP_INFINITE;
return FP_NAN;
}
float __inff( void )
{
return __builtin_inff();
}
long double __infl( void )
{
return __builtin_infl();
}
float __nan( void )
{
return __builtin_nanf("");
}
#endif