Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tag: android-2.3.4_…
Fetching contributors…

Cannot retrieve contributors at this time

file 232 lines (199 sloc) 6.668 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232

/* @(#)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.
* ====================================================
*/

#ifdef __cplusplus
extern "C" {
#endif

#ifndef __LITTLE_ENDIAN
/* Sometimes it's necessary to define __LITTLE_ENDIAN explicitly
but these catch some common cases. */
#if defined(i386) || defined(i486) || \
defined(intel) || defined(x86) || defined(i86pc) || \
defined(__alpha) || defined(__osf__)
#define __LITTLE_ENDIAN
#endif
#endif

#ifdef __LITTLE_ENDIAN
#define __HI(x) *(1+(int*)&x)
#define __LO(x) *(int*)&x
#define __HIp(x) *(1+(int*)x)
#define __LOp(x) *(int*)x
#else
#define __HI(x) *(int*)&x
#define __LO(x) *(1+(int*)&x)
#define __HIp(x) *(int*)x
#define __LOp(x) *(1+(int*)x)
#endif

#ifndef __P
#define __FDLIBM_P_DEFINED
#ifdef __STDC__
#define __P(p) p
#else
#define __P(p) ()
#endif
#endif

/*
* ANSI/POSIX
*/

extern int signgam;

#define MAXFLOAT ((float)3.40282346638528860e+38)

enum fdversion {fdlibm_ieee = -1, fdlibm_svid, fdlibm_xopen, fdlibm_posix};

#define _LIB_VERSION_TYPE enum fdversion
#define _LIB_VERSION _fdlib_version

/* if global variable _LIB_VERSION is not desirable, one may
* change the following to be a constant by:
* #define _LIB_VERSION_TYPE const enum version
* In that case, after one initializes the value _LIB_VERSION (see
* s_lib_version.c) during compile time, it cannot be modified
* in the middle of a program
*/
extern _LIB_VERSION_TYPE _LIB_VERSION;

#define _IEEE_ fdlibm_ieee
#define _SVID_ fdlibm_svid
#define _XOPEN_ fdlibm_xopen
#define _POSIX_ fdlibm_posix

struct exception {
int type;
char *name;
double arg1;
double arg2;
double retval;
};

#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 ieee_acos __P((double));
extern double ieee_asin __P((double));
extern double ieee_atan __P((double));
extern double ieee_atan2 __P((double, double));
extern double ieee_cos __P((double));
extern double ieee_sin __P((double));
extern double ieee_tan __P((double));

extern double ieee_cosh __P((double));
extern double ieee_sinh __P((double));
extern double ieee_tanh __P((double));

extern double ieee_exp __P((double));
extern double ieee_frexp __P((double, int *));
extern double ieee_ldexp __P((double, int));
extern double ieee_log __P((double));
extern double ieee_log10 __P((double));
extern double ieee_modf __P((double, double *));

extern double ieee_pow __P((double, double));
extern double ieee_sqrt __P((double));

extern double ieee_ceil __P((double));
extern double ieee_fabs __P((double));
extern double ieee_floor __P((double));
extern double ieee_fmod __P((double, double));

extern double ieee_erf __P((double));
extern double ieee_erfc __P((double));
extern double ieee_gamma __P((double));
extern double ieee_hypot __P((double, double));
extern int ieee_isnan __P((double));
extern int ieee_finite __P((double));
extern double ieee_j0 __P((double));
extern double ieee_j1 __P((double));
extern double ieee_jn __P((int, double));
extern double ieee_lgamma __P((double));
extern double ieee_y0 __P((double));
extern double ieee_y1 __P((double));
extern double ieee_yn __P((int, double));

extern double acosh __P((double));
extern double asinh __P((double));
extern double atanh __P((double));
extern double ieee_cbrt __P((double));
extern double ieee_logb __P((double));
extern double ieee_nextafter __P((double, double));
extern double ieee_remainder __P((double, double));
#ifdef _SCALB_INT
extern double ieee_scalb __P((double, int));
#else
extern double ieee_scalb __P((double, double));
#endif

extern int ieee_matherr __P((struct exception *));

/*
* IEEE Test Vector
*/
extern double ieee_significand __P((double));

/*
* Functions callable from C, intended to support IEEE arithmetic.
*/
extern double ieee_copysign __P((double, double));
extern int ieee_ilogb __P((double));
extern double ieee_rint __P((double));
extern double ieee_scalbn __P((double, int));

/*
* BSD math library entry points
*/
extern double ieee_expm1 __P((double));
extern double ieee_log1p __P((double));

/*
* Reentrant version of gamma & lgamma; passes signgam back by reference
* as the second argument; user must allocate space for signgam.
*/
#ifdef _REENTRANT
extern double ieee_gamma_r __P((double, int *));
extern double ieee_lgamma_r __P((double, int *));
#endif /* _REENTRANT */

/* ieee style elementary functions */
extern double __ieee754_sqrt __P((double));
extern double __ieee754_acos __P((double));
extern double __ieee754_acosh __P((double));
extern double __ieee754_log __P((double));
extern double __ieee754_atanh __P((double));
extern double __ieee754_asin __P((double));
extern double __ieee754_atan2 __P((double,double));
extern double __ieee754_exp __P((double));
extern double __ieee754_cosh __P((double));
extern double __ieee754_fmod __P((double,double));
extern double __ieee754_pow __P((double,double));
extern double __ieee754_lgamma_r __P((double,int *));
extern double __ieee754_gamma_r __P((double,int *));
extern double __ieee754_lgamma __P((double));
extern double __ieee754_gamma __P((double));
extern double __ieee754_log10 __P((double));
extern double __ieee754_sinh __P((double));
extern double __ieee754_hypot __P((double,double));
extern double __ieee754_j0 __P((double));
extern double __ieee754_j1 __P((double));
extern double __ieee754_y0 __P((double));
extern double __ieee754_y1 __P((double));
extern double __ieee754_jn __P((int,double));
extern double __ieee754_yn __P((int,double));
extern double __ieee754_remainder __P((double,double));
extern int __ieee754_rem_pio2 __P((double,double*));
#ifdef _SCALB_INT
extern double __ieee754_scalb __P((double,int));
#else
extern double __ieee754_scalb __P((double,double));
#endif

/* fdlibm kernel function */
extern double __kernel_standard __P((double,double,int));
extern double __kernel_sin __P((double,double,int));
extern double __kernel_cos __P((double,double));
extern double __kernel_tan __P((double,double,int));
extern int __kernel_rem_pio2 __P((double*,double*,int,int,int,const int*));

#ifdef __FDLIBM_P_DEFINED
#undef __P
#endif

#ifdef __cplusplus
}; /* extern "C" */
#endif
Something went wrong with that request. Please try again.