1b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
2b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project/* @(#)fdlibm.h 1.5 04/04/22 */
3b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project/*
4b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * ====================================================
5b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved.
6b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project *
7b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * Permission to use, copy, modify, and distribute this
8b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * software is freely granted, provided that this notice
9b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * is preserved.
10b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * ====================================================
11b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project */
12b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
1326ea4299bba7c618fdf97624b39e33444410896dElliott Hughes#ifdef __cplusplus
1426ea4299bba7c618fdf97624b39e33444410896dElliott Hughesextern "C" {
1526ea4299bba7c618fdf97624b39e33444410896dElliott Hughes#endif
1626ea4299bba7c618fdf97624b39e33444410896dElliott Hughes
1726ea4299bba7c618fdf97624b39e33444410896dElliott Hughes#ifndef __LITTLE_ENDIAN
18b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project/* Sometimes it's necessary to define __LITTLE_ENDIAN explicitly
19b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project   but these catch some common cases. */
20b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#if defined(i386) || defined(i486) || \
21b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project	defined(intel) || defined(x86) || defined(i86pc) || \
222b584d809ab233e0684d6c2779be0cc0607dae1eChris Dearman	defined(__alpha) || defined(__osf__) || defined(__MIPSEL__)
23b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define __LITTLE_ENDIAN
24b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#endif
2526ea4299bba7c618fdf97624b39e33444410896dElliott Hughes#endif
26b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
27b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#ifdef __LITTLE_ENDIAN
28b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define __HI(x) *(1+(int*)&x)
29b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define __LO(x) *(int*)&x
30b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define __HIp(x) *(1+(int*)x)
31b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define __LOp(x) *(int*)x
32b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#else
33b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define __HI(x) *(int*)&x
34b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define __LO(x) *(1+(int*)&x)
35b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define __HIp(x) *(int*)x
36b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define __LOp(x) *(1+(int*)x)
37b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#endif
38b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
3926ea4299bba7c618fdf97624b39e33444410896dElliott Hughes#ifndef __P
4026ea4299bba7c618fdf97624b39e33444410896dElliott Hughes#define __FDLIBM_P_DEFINED
41b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#ifdef __STDC__
42b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define	__P(p)	p
43b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#else
44b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define	__P(p)	()
45b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#endif
4626ea4299bba7c618fdf97624b39e33444410896dElliott Hughes#endif
47b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
48b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project/*
49b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * ANSI/POSIX
50b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project */
51b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
52b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern int signgam;
53b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
54b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define	MAXFLOAT	((float)3.40282346638528860e+38)
55b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
56b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectenum fdversion {fdlibm_ieee = -1, fdlibm_svid, fdlibm_xopen, fdlibm_posix};
57b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
58b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define _LIB_VERSION_TYPE enum fdversion
59b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define _LIB_VERSION _fdlib_version
60b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
61b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project/* if global variable _LIB_VERSION is not desirable, one may
62b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * change the following to be a constant by:
63b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project *	#define _LIB_VERSION_TYPE const enum version
64b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * In that case, after one initializes the value _LIB_VERSION (see
65b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * s_lib_version.c) during compile time, it cannot be modified
66b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * in the middle of a program
67b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project */
68b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern  _LIB_VERSION_TYPE  _LIB_VERSION;
69b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
70b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define _IEEE_  fdlibm_ieee
71b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define _SVID_  fdlibm_svid
72b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define _XOPEN_ fdlibm_xopen
73b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define _POSIX_ fdlibm_posix
74b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
75b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectstruct exception {
76b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project	int type;
77b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project	char *name;
78b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project	double arg1;
79b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project	double arg2;
80b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project	double retval;
81b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project};
82b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
83b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define	HUGE		MAXFLOAT
84b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
85b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project/*
86b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * set X_TLOSS = pi*2**52, which is possibly defined in <values.h>
87b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * (one may replace the following line by "#include <values.h>")
88b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project */
89b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
90b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define X_TLOSS		1.41484755040568800000e+16
91b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
92b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define	DOMAIN		1
93b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define	SING		2
94b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define	OVERFLOW	3
95b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define	UNDERFLOW	4
96b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define	TLOSS		5
97b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#define	PLOSS		6
98b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
99b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project/*
100b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * ANSI/POSIX
101b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project */
102b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_acos __P((double));
103b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_asin __P((double));
104b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_atan __P((double));
105b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_atan2 __P((double, double));
106b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_cos __P((double));
107b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_sin __P((double));
108b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_tan __P((double));
109b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
110b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_cosh __P((double));
111b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_sinh __P((double));
112b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_tanh __P((double));
113b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
114b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_exp __P((double));
115b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_frexp __P((double, int *));
116b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_ldexp __P((double, int));
117b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_log __P((double));
118b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_log10 __P((double));
119b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_modf __P((double, double *));
120b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
121b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_pow __P((double, double));
122b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_sqrt __P((double));
123b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
124b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_ceil __P((double));
125b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_fabs __P((double));
126b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_floor __P((double));
127b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_fmod __P((double, double));
128b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
129b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_erf __P((double));
130b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_erfc __P((double));
131b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_gamma __P((double));
132b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_hypot __P((double, double));
133b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern int ieee_isnan __P((double));
134b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern int ieee_finite __P((double));
135b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_j0 __P((double));
136b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_j1 __P((double));
137b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_jn __P((int, double));
138b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_lgamma __P((double));
139b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_y0 __P((double));
140b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_y1 __P((double));
141b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_yn __P((int, double));
142b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
143b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double acosh __P((double));
144b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double asinh __P((double));
145b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double atanh __P((double));
146b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_cbrt __P((double));
147b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_logb __P((double));
148b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_nextafter __P((double, double));
149b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_remainder __P((double, double));
150b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#ifdef _SCALB_INT
151b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_scalb __P((double, int));
152b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#else
153b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_scalb __P((double, double));
154b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#endif
155b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
156b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern int ieee_matherr __P((struct exception *));
157b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
158b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project/*
159b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * IEEE Test Vector
160b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project */
161b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_significand __P((double));
162b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
163b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project/*
164b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * Functions callable from C, intended to support IEEE arithmetic.
165b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project */
166b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_copysign __P((double, double));
167b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern int ieee_ilogb __P((double));
168b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_rint __P((double));
169b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_scalbn __P((double, int));
170b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
171b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project/*
172b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * BSD math library entry points
173b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project */
174b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_expm1 __P((double));
175b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_log1p __P((double));
176b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
177b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project/*
178b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * Reentrant version of gamma & lgamma; passes signgam back by reference
179b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * as the second argument; user must allocate space for signgam.
180b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project */
181b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#ifdef _REENTRANT
182b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_gamma_r __P((double, int *));
183b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double ieee_lgamma_r __P((double, int *));
184b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#endif	/* _REENTRANT */
185b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
186b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project/* ieee style elementary functions */
187b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_sqrt __P((double));
188b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_acos __P((double));
189b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_acosh __P((double));
190b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_log __P((double));
191b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_atanh __P((double));
192b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_asin __P((double));
193b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_atan2 __P((double,double));
194b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_exp __P((double));
195b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_cosh __P((double));
196b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_fmod __P((double,double));
197b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_pow __P((double,double));
198b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_lgamma_r __P((double,int *));
199b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_gamma_r __P((double,int *));
200b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_lgamma __P((double));
201b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_gamma __P((double));
202b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_log10 __P((double));
203b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_sinh __P((double));
204b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_hypot __P((double,double));
205b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_j0 __P((double));
206b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_j1 __P((double));
207b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_y0 __P((double));
208b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_y1 __P((double));
209b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_jn __P((int,double));
210b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_yn __P((int,double));
211b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_remainder __P((double,double));
212b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern int    __ieee754_rem_pio2 __P((double,double*));
213b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#ifdef _SCALB_INT
214b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_scalb __P((double,int));
215b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#else
216b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __ieee754_scalb __P((double,double));
217b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#endif
218b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
219b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project/* fdlibm kernel function */
220b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __kernel_standard __P((double,double,int));
221b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __kernel_sin __P((double,double,int));
222b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __kernel_cos __P((double,double));
223b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern double __kernel_tan __P((double,double,int));
224b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Projectextern int    __kernel_rem_pio2 __P((double*,double*,int,int,int,const int*));
22526ea4299bba7c618fdf97624b39e33444410896dElliott Hughes
22626ea4299bba7c618fdf97624b39e33444410896dElliott Hughes#ifdef __FDLIBM_P_DEFINED
22726ea4299bba7c618fdf97624b39e33444410896dElliott Hughes#undef __P
22826ea4299bba7c618fdf97624b39e33444410896dElliott Hughes#endif
22926ea4299bba7c618fdf97624b39e33444410896dElliott Hughes
23026ea4299bba7c618fdf97624b39e33444410896dElliott Hughes#ifdef __cplusplus
23126ea4299bba7c618fdf97624b39e33444410896dElliott Hughes}; /* extern "C" */
23226ea4299bba7c618fdf97624b39e33444410896dElliott Hughes#endif
233