397dff81ee
Keep IEEE code paths only:
* removed SVID, XOPEN, POSIX code paths from everywhere.
* deleted s_lib_version.c, as version is only useful if multiple
standards are supported.
* deleted k_standard.c, as it handles non-IEEE exception cases only.
* renamed the e_{acos,asin,atan2,exp,fmod,log,pow,sqrt}.c sources as
s_.*, dropped the __ieee754_ prefix from the names of the
appropriate functions therein, and deleted the
w_{acos,asin,atan2,exp,fmod,log,pow,sqrt}.c wrapper code.
Keep C99 declaration variants only:
* removed old C-style function declaration variants.
* removed data declaration variants where const qualifier was not
used.
Clean unused sources/functions:
* removed s_{rint,significand,tanh}.c and the appropriate functions
defined therein.
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
93 lines
2.3 KiB
C
93 lines
2.3 KiB
C
|
|
/* @(#)fdlibm.h 1.5 04/04/22 */
|
|
/*
|
|
* ====================================================
|
|
* Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved.
|
|
*
|
|
* Permission to use, copy, modify, and distribute this
|
|
* software is freely granted, provided that this notice
|
|
* is preserved.
|
|
* ====================================================
|
|
*/
|
|
|
|
/* Sometimes it's necessary to define __LITTLE_ENDIAN explicitly
|
|
but these catch some common cases. */
|
|
|
|
#if defined(i386) || defined(__i386) || defined(__i386__) || \
|
|
defined(i486) || defined(__i486) || defined(__i486__) || \
|
|
defined(intel) || defined(x86) || defined(i86pc) || \
|
|
defined(__alpha) || defined(__osf__) || \
|
|
defined(__x86_64__) || defined(__arm__)
|
|
#define __LITTLE_ENDIAN
|
|
#endif
|
|
|
|
#ifdef __LITTLE_ENDIAN
|
|
#define __HI(x) *(1+(int*)&x)
|
|
#define __LO(x) *(int*)&x
|
|
#else
|
|
#define __HI(x) *(int*)&x
|
|
#define __LO(x) *(1+(int*)&x)
|
|
#endif
|
|
|
|
/*
|
|
* ANSI/POSIX
|
|
*/
|
|
|
|
#define MAXFLOAT ((float)3.40282346638528860e+38)
|
|
|
|
#define HUGE MAXFLOAT
|
|
|
|
/*
|
|
* set X_TLOSS = pi*2**52, which is possibly defined in <values.h>
|
|
* (one may replace the following line by "#include <values.h>")
|
|
*/
|
|
|
|
#define X_TLOSS 1.41484755040568800000e+16
|
|
|
|
#define DOMAIN 1
|
|
#define SING 2
|
|
#define OVERFLOW 3
|
|
#define UNDERFLOW 4
|
|
#define TLOSS 5
|
|
#define PLOSS 6
|
|
|
|
/*
|
|
* ANSI/POSIX
|
|
*/
|
|
extern double acos (double);
|
|
extern double asin (double);
|
|
extern double atan (double);
|
|
extern double atan2 (double, double);
|
|
extern double cos (double);
|
|
extern double sin (double);
|
|
extern double tan (double);
|
|
|
|
extern double exp (double);
|
|
extern double log (double);
|
|
|
|
extern double pow (double, double);
|
|
extern double sqrt (double);
|
|
|
|
extern double ceil (double);
|
|
extern double fabs (double);
|
|
extern double floor (double);
|
|
extern double fmod (double, double);
|
|
|
|
extern int isnan (double);
|
|
extern int finite (double);
|
|
|
|
/*
|
|
* Functions callable from C, intended to support IEEE arithmetic.
|
|
*/
|
|
extern double copysign (double, double);
|
|
extern double scalbn (double, int);
|
|
|
|
/* ieee style elementary functions */
|
|
extern int __ieee754_rem_pio2 (double,double*);
|
|
|
|
/* fdlibm kernel function */
|
|
extern double __kernel_sin (double,double,int);
|
|
extern double __kernel_cos (double,double);
|
|
extern double __kernel_tan (double,double,int);
|
|
extern int __kernel_rem_pio2 (double*,double*,int,int,int,const int*);
|