1951a39d68df598db08dfced8b4707755864a0492Ying Wang/*
2951a39d68df598db08dfced8b4707755864a0492Ying Wang * ====================================================
3951a39d68df598db08dfced8b4707755864a0492Ying Wang * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
4951a39d68df598db08dfced8b4707755864a0492Ying Wang *
5951a39d68df598db08dfced8b4707755864a0492Ying Wang * Developed at SunPro, a Sun Microsystems, Inc. business.
6951a39d68df598db08dfced8b4707755864a0492Ying Wang * Permission to use, copy, modify, and distribute this
7951a39d68df598db08dfced8b4707755864a0492Ying Wang * software is freely granted, provided that this notice
8951a39d68df598db08dfced8b4707755864a0492Ying Wang * is preserved.
9951a39d68df598db08dfced8b4707755864a0492Ying Wang * ====================================================
10951a39d68df598db08dfced8b4707755864a0492Ying Wang */
11951a39d68df598db08dfced8b4707755864a0492Ying Wang
12951a39d68df598db08dfced8b4707755864a0492Ying Wang/*
13951a39d68df598db08dfced8b4707755864a0492Ying Wang * from: @(#)fdlibm.h 5.1 93/09/24
14951a39d68df598db08dfced8b4707755864a0492Ying Wang * $FreeBSD: src/lib/msun/src/math.h,v 1.61 2005/04/16 21:12:47 das Exp $
15951a39d68df598db08dfced8b4707755864a0492Ying Wang */
16951a39d68df598db08dfced8b4707755864a0492Ying Wang
17951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifndef _MATH_H_
18951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	_MATH_H_
19951a39d68df598db08dfced8b4707755864a0492Ying Wang
20951a39d68df598db08dfced8b4707755864a0492Ying Wang#include <sys/cdefs.h>
21951a39d68df598db08dfced8b4707755864a0492Ying Wang#include <sys/types.h>
22951a39d68df598db08dfced8b4707755864a0492Ying Wang#include <limits.h>
23951a39d68df598db08dfced8b4707755864a0492Ying Wang
24951a39d68df598db08dfced8b4707755864a0492Ying Wang#define __pure2
25951a39d68df598db08dfced8b4707755864a0492Ying Wang
26951a39d68df598db08dfced8b4707755864a0492Ying Wang/*
27951a39d68df598db08dfced8b4707755864a0492Ying Wang * ANSI/POSIX
28951a39d68df598db08dfced8b4707755864a0492Ying Wang */
29951a39d68df598db08dfced8b4707755864a0492Ying Wangextern const union __infinity_un {
30951a39d68df598db08dfced8b4707755864a0492Ying Wang	unsigned char	__uc[8];
31951a39d68df598db08dfced8b4707755864a0492Ying Wang	double		__ud;
32951a39d68df598db08dfced8b4707755864a0492Ying Wang} __infinity;
33951a39d68df598db08dfced8b4707755864a0492Ying Wang
34951a39d68df598db08dfced8b4707755864a0492Ying Wangextern const union __nan_un {
35951a39d68df598db08dfced8b4707755864a0492Ying Wang	unsigned char	__uc[sizeof(float)];
36951a39d68df598db08dfced8b4707755864a0492Ying Wang	float		__uf;
37951a39d68df598db08dfced8b4707755864a0492Ying Wang} __nan;
38951a39d68df598db08dfced8b4707755864a0492Ying Wang
39951a39d68df598db08dfced8b4707755864a0492Ying Wang/* #if __GNUC_PREREQ__(3, 3) || (defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 800) */
40951a39d68df598db08dfced8b4707755864a0492Ying Wang#if 1
41951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	__MATH_BUILTIN_CONSTANTS
42951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
43951a39d68df598db08dfced8b4707755864a0492Ying Wang
44951a39d68df598db08dfced8b4707755864a0492Ying Wang/* #if __GNUC_PREREQ__(3, 0) && !defined(__INTEL_COMPILER) */
45951a39d68df598db08dfced8b4707755864a0492Ying Wang#if 1
46951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	__MATH_BUILTIN_RELOPS
47951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
48951a39d68df598db08dfced8b4707755864a0492Ying Wang
49951a39d68df598db08dfced8b4707755864a0492Ying Wang/* #ifdef __MATH_BUILTIN_CONSTANTS */
50951a39d68df598db08dfced8b4707755864a0492Ying Wang#if 1
51951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	HUGE_VAL	__builtin_huge_val()
52951a39d68df598db08dfced8b4707755864a0492Ying Wang#else
53951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	HUGE_VAL	(__infinity.__ud)
54951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
55951a39d68df598db08dfced8b4707755864a0492Ying Wang
56951a39d68df598db08dfced8b4707755864a0492Ying Wang/* #if __ISO_C_VISIBLE >= 1999 */
57951a39d68df598db08dfced8b4707755864a0492Ying Wang#if 0
58951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	FP_ILOGB0	(-__INT_MAX)
59951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	FP_ILOGBNAN	__INT_MAX
60951a39d68df598db08dfced8b4707755864a0492Ying Wang#else
61951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	FP_ILOGB0	(-INT_MAX)
62951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	FP_ILOGBNAN	INT_MAX
63951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
64951a39d68df598db08dfced8b4707755864a0492Ying Wang
65951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifdef __MATH_BUILTIN_CONSTANTS
66951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	HUGE_VALF	__builtin_huge_valf()
67951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	HUGE_VALL	__builtin_huge_vall()
68951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	INFINITY	__builtin_inf()
69951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	NAN		__builtin_nan("")
70951a39d68df598db08dfced8b4707755864a0492Ying Wang#else
71951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	HUGE_VALF	(float)HUGE_VAL
72951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	HUGE_VALL	(long double)HUGE_VAL
73951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	INFINITY	HUGE_VALF
74951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	NAN		(__nan.__uf)
75951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif /* __MATH_BUILTIN_CONSTANTS */
76951a39d68df598db08dfced8b4707755864a0492Ying Wang
77951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	MATH_ERRNO	1
78951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	MATH_ERREXCEPT	2
79951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	math_errhandling	MATH_ERREXCEPT
80951a39d68df598db08dfced8b4707755864a0492Ying Wang
81951a39d68df598db08dfced8b4707755864a0492Ying Wang/* XXX We need a <machine/math.h>. */
82951a39d68df598db08dfced8b4707755864a0492Ying Wang#if defined(__ia64__) || defined(__sparc64__)
83951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	FP_FAST_FMA
84951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
85951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifdef __ia64__
86951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	FP_FAST_FMAL
87951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
88951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	FP_FAST_FMAF
89951a39d68df598db08dfced8b4707755864a0492Ying Wang
90951a39d68df598db08dfced8b4707755864a0492Ying Wang/* Symbolic constants to classify floating point numbers. */
91951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	FP_INFINITE	0x01
92951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	FP_NAN		0x02
93951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	FP_NORMAL	0x04
94951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	FP_SUBNORMAL	0x08
95951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	FP_ZERO		0x10
96951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	fpclassify(x) \
97951a39d68df598db08dfced8b4707755864a0492Ying Wang    ((sizeof (x) == sizeof (float)) ? __fpclassifyf(x) \
98951a39d68df598db08dfced8b4707755864a0492Ying Wang    : (sizeof (x) == sizeof (double)) ? __fpclassifyd(x) \
99951a39d68df598db08dfced8b4707755864a0492Ying Wang    : __fpclassifyl(x))
100951a39d68df598db08dfced8b4707755864a0492Ying Wang
101951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	isfinite(x)					\
102951a39d68df598db08dfced8b4707755864a0492Ying Wang    ((sizeof (x) == sizeof (float)) ? __isfinitef(x)	\
103951a39d68df598db08dfced8b4707755864a0492Ying Wang    : (sizeof (x) == sizeof (double)) ? __isfinite(x)	\
104951a39d68df598db08dfced8b4707755864a0492Ying Wang    : __isfinitel(x))
105951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	isinf(x)					\
106951a39d68df598db08dfced8b4707755864a0492Ying Wang    ((sizeof (x) == sizeof (float)) ? __isinff(x)	\
107951a39d68df598db08dfced8b4707755864a0492Ying Wang    : (sizeof (x) == sizeof (double)) ? __isinf(x)	\
108951a39d68df598db08dfced8b4707755864a0492Ying Wang    : __isinfl(x))
109951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	isnan(x)					\
110951a39d68df598db08dfced8b4707755864a0492Ying Wang    ((sizeof (x) == sizeof (float)) ? isnanf(x)		\
111951a39d68df598db08dfced8b4707755864a0492Ying Wang    : (sizeof (x) == sizeof (double)) ? isnan(x)	\
112951a39d68df598db08dfced8b4707755864a0492Ying Wang    : __isnanl(x))
113951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	isnormal(x)					\
114951a39d68df598db08dfced8b4707755864a0492Ying Wang    ((sizeof (x) == sizeof (float)) ? __isnormalf(x)	\
115951a39d68df598db08dfced8b4707755864a0492Ying Wang    : (sizeof (x) == sizeof (double)) ? __isnormal(x)	\
116951a39d68df598db08dfced8b4707755864a0492Ying Wang    : __isnormall(x))
117951a39d68df598db08dfced8b4707755864a0492Ying Wang
118951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifdef __MATH_BUILTIN_RELOPS
119951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	isgreater(x, y)		__builtin_isgreater((x), (y))
120951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	isgreaterequal(x, y)	__builtin_isgreaterequal((x), (y))
121951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	isless(x, y)		__builtin_isless((x), (y))
122951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	islessequal(x, y)	__builtin_islessequal((x), (y))
123951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	islessgreater(x, y)	__builtin_islessgreater((x), (y))
124951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	isunordered(x, y)	__builtin_isunordered((x), (y))
125951a39d68df598db08dfced8b4707755864a0492Ying Wang#else
126951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	isgreater(x, y)		(!isunordered((x), (y)) && (x) > (y))
127951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	isgreaterequal(x, y)	(!isunordered((x), (y)) && (x) >= (y))
128951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	isless(x, y)		(!isunordered((x), (y)) && (x) < (y))
129951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	islessequal(x, y)	(!isunordered((x), (y)) && (x) <= (y))
130951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	islessgreater(x, y)	(!isunordered((x), (y)) && \
131951a39d68df598db08dfced8b4707755864a0492Ying Wang					((x) > (y) || (y) > (x)))
132951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	isunordered(x, y)	(isnan(x) || isnan(y))
133951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif /* __MATH_BUILTIN_RELOPS */
134951a39d68df598db08dfced8b4707755864a0492Ying Wang
135951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	signbit(x)					\
136951a39d68df598db08dfced8b4707755864a0492Ying Wang    ((sizeof (x) == sizeof (float)) ? __signbitf(x)	\
137951a39d68df598db08dfced8b4707755864a0492Ying Wang    : (sizeof (x) == sizeof (double)) ? __signbit(x)	\
138951a39d68df598db08dfced8b4707755864a0492Ying Wang    : __signbitl(x))
139951a39d68df598db08dfced8b4707755864a0492Ying Wang
140951a39d68df598db08dfced8b4707755864a0492Ying Wang#if 0
141951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef	__double_t	double_t;
142951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef	__float_t	float_t;
143951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
144951a39d68df598db08dfced8b4707755864a0492Ying Wang/* #endif */ /* __ISO_C_VISIBLE >= 1999 */
145951a39d68df598db08dfced8b4707755864a0492Ying Wang
146951a39d68df598db08dfced8b4707755864a0492Ying Wang/*
147951a39d68df598db08dfced8b4707755864a0492Ying Wang * XOPEN/SVID
148951a39d68df598db08dfced8b4707755864a0492Ying Wang */
149951a39d68df598db08dfced8b4707755864a0492Ying Wang/* #if __BSD_VISIBLE || __XSI_VISIBLE */
150951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	M_E		2.7182818284590452354	/* e */
151951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	M_LOG2E		1.4426950408889634074	/* log 2e */
152951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	M_LOG10E	0.43429448190325182765	/* log 10e */
153951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	M_LN2		0.69314718055994530942	/* log e2 */
154951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	M_LN10		2.30258509299404568402	/* log e10 */
155951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	M_PI		3.14159265358979323846	/* pi */
156951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	M_PI_2		1.57079632679489661923	/* pi/2 */
157951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	M_PI_4		0.78539816339744830962	/* pi/4 */
158951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	M_1_PI		0.31830988618379067154	/* 1/pi */
159951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	M_2_PI		0.63661977236758134308	/* 2/pi */
160951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	M_2_SQRTPI	1.12837916709551257390	/* 2/sqrt(pi) */
161951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	M_SQRT2		1.41421356237309504880	/* sqrt(2) */
162951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	M_SQRT1_2	0.70710678118654752440	/* 1/sqrt(2) */
163951a39d68df598db08dfced8b4707755864a0492Ying Wang
164951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	MAXFLOAT	((float)3.40282346638528860e+38)
165951a39d68df598db08dfced8b4707755864a0492Ying Wangextern int signgam;
166951a39d68df598db08dfced8b4707755864a0492Ying Wang/* #endif */ /* __BSD_VISIBLE || __XSI_VISIBLE */
167951a39d68df598db08dfced8b4707755864a0492Ying Wang
168951a39d68df598db08dfced8b4707755864a0492Ying Wang#if __BSD_VISIBLE
169951a39d68df598db08dfced8b4707755864a0492Ying Wang#if 0
170951a39d68df598db08dfced8b4707755864a0492Ying Wang/* Old value from 4.4BSD-Lite math.h; this is probably better. */
171951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	HUGE		HUGE_VAL
172951a39d68df598db08dfced8b4707755864a0492Ying Wang#else
173951a39d68df598db08dfced8b4707755864a0492Ying Wang#define	HUGE		MAXFLOAT
174951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
175951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif /* __BSD_VISIBLE */
176951a39d68df598db08dfced8b4707755864a0492Ying Wang
177951a39d68df598db08dfced8b4707755864a0492Ying Wang/*
178951a39d68df598db08dfced8b4707755864a0492Ying Wang * Most of these functions depend on the rounding mode and have the side
179951a39d68df598db08dfced8b4707755864a0492Ying Wang * effect of raising floating-point exceptions, so they are not declared
180951a39d68df598db08dfced8b4707755864a0492Ying Wang * as __pure2.  In C99, FENV_ACCESS affects the purity of these functions.
181951a39d68df598db08dfced8b4707755864a0492Ying Wang */
182951a39d68df598db08dfced8b4707755864a0492Ying Wang__BEGIN_DECLS
183951a39d68df598db08dfced8b4707755864a0492Ying Wang/*
184951a39d68df598db08dfced8b4707755864a0492Ying Wang * ANSI/POSIX
185951a39d68df598db08dfced8b4707755864a0492Ying Wang */
186951a39d68df598db08dfced8b4707755864a0492Ying Wangint	__fpclassifyd(double) __pure2;
187951a39d68df598db08dfced8b4707755864a0492Ying Wangint	__fpclassifyf(float) __pure2;
188951a39d68df598db08dfced8b4707755864a0492Ying Wangint	__fpclassifyl(long double) __pure2;
189951a39d68df598db08dfced8b4707755864a0492Ying Wangint	__isfinitef(float) __pure2;
190951a39d68df598db08dfced8b4707755864a0492Ying Wangint	__isfinite(double) __pure2;
191951a39d68df598db08dfced8b4707755864a0492Ying Wangint	__isfinitel(long double) __pure2;
192951a39d68df598db08dfced8b4707755864a0492Ying Wangint	__isinff(float) __pure2;
193951a39d68df598db08dfced8b4707755864a0492Ying Wangint     __isinf(double) __pure2;
194951a39d68df598db08dfced8b4707755864a0492Ying Wangint	__isinfl(long double) __pure2;
195951a39d68df598db08dfced8b4707755864a0492Ying Wangint	__isnanl(long double) __pure2;
196951a39d68df598db08dfced8b4707755864a0492Ying Wangint	__isnormalf(float) __pure2;
197951a39d68df598db08dfced8b4707755864a0492Ying Wangint	__isnormal(double) __pure2;
198951a39d68df598db08dfced8b4707755864a0492Ying Wangint	__isnormall(long double) __pure2;
199951a39d68df598db08dfced8b4707755864a0492Ying Wangint	__signbit(double) __pure2;
200951a39d68df598db08dfced8b4707755864a0492Ying Wangint	__signbitf(float) __pure2;
201951a39d68df598db08dfced8b4707755864a0492Ying Wangint	__signbitl(long double) __pure2;
202951a39d68df598db08dfced8b4707755864a0492Ying Wang
203951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	acos(double);
204951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	asin(double);
205951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	atan(double);
206951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	atan2(double, double);
207951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	cos(double);
208951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	sin(double);
209951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	tan(double);
210951a39d68df598db08dfced8b4707755864a0492Ying Wang
211951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	cosh(double);
212951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	sinh(double);
213951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	tanh(double);
214951a39d68df598db08dfced8b4707755864a0492Ying Wang
215951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	exp(double);
216951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	frexp(double, int *);	/* fundamentally !__pure2 */
217951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	ldexp(double, int);
218951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	log(double);
219951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	log10(double);
220951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	modf(double, double *);	/* fundamentally !__pure2 */
221951a39d68df598db08dfced8b4707755864a0492Ying Wang
222951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	pow(double, double);
223951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	sqrt(double);
224951a39d68df598db08dfced8b4707755864a0492Ying Wang
225951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	ceil(double);
226951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	fabs(double) __pure2;
227951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	floor(double);
228951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	fmod(double, double);
229951a39d68df598db08dfced8b4707755864a0492Ying Wang
230951a39d68df598db08dfced8b4707755864a0492Ying Wang/*
231951a39d68df598db08dfced8b4707755864a0492Ying Wang * These functions are not in C90.
232951a39d68df598db08dfced8b4707755864a0492Ying Wang */
233951a39d68df598db08dfced8b4707755864a0492Ying Wang/* #if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE */
234951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	acosh(double);
235951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	asinh(double);
236951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	atanh(double);
237951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	cbrt(double);
238951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	erf(double);
239951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	erfc(double);
240951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	exp2(double);
241951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	expm1(double);
242951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	fma(double, double, double);
243951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	hypot(double, double);
244951a39d68df598db08dfced8b4707755864a0492Ying Wangint	ilogb(double) __pure2;
245951a39d68df598db08dfced8b4707755864a0492Ying Wang/* int	(isinf)(double) __pure2; */
246951a39d68df598db08dfced8b4707755864a0492Ying Wangint	(isnan)(double) __pure2;
247951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	lgamma(double);
248951a39d68df598db08dfced8b4707755864a0492Ying Wanglong long llrint(double);
249951a39d68df598db08dfced8b4707755864a0492Ying Wanglong long llround(double);
250951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	log1p(double);
251951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	logb(double);
252951a39d68df598db08dfced8b4707755864a0492Ying Wanglong	lrint(double);
253951a39d68df598db08dfced8b4707755864a0492Ying Wanglong	lround(double);
254951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	nextafter(double, double);
255951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	remainder(double, double);
256951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	remquo(double, double, int *);
257951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	rint(double);
258951a39d68df598db08dfced8b4707755864a0492Ying Wang/* #endif */ /* __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE */
259951a39d68df598db08dfced8b4707755864a0492Ying Wang
260951a39d68df598db08dfced8b4707755864a0492Ying Wang/* #if __BSD_VISIBLE || __XSI_VISIBLE */
261951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	j0(double);
262951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	j1(double);
263951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	jn(int, double);
264951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	scalb(double, double);
265951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	y0(double);
266951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	y1(double);
267951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	yn(int, double);
268951a39d68df598db08dfced8b4707755864a0492Ying Wang
269951a39d68df598db08dfced8b4707755864a0492Ying Wang/* #if __XSI_VISIBLE <= 500 || __BSD_VISIBLE */
270951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	gamma(double);
271951a39d68df598db08dfced8b4707755864a0492Ying Wang/* #endif */
272951a39d68df598db08dfced8b4707755864a0492Ying Wang/* #endif */ /* __BSD_VISIBLE || __XSI_VISIBLE */
273951a39d68df598db08dfced8b4707755864a0492Ying Wang
274951a39d68df598db08dfced8b4707755864a0492Ying Wang/* #if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 */
275951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	copysign(double, double) __pure2;
276951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	fdim(double, double);
277951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	fmax(double, double) __pure2;
278951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	fmin(double, double) __pure2;
279951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	nearbyint(double);
280951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	round(double);
281951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	scalbln(double, long);
282951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	scalbn(double, int);
283951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	tgamma(double);
284951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	trunc(double);
285951a39d68df598db08dfced8b4707755864a0492Ying Wang/* #endif */
286951a39d68df598db08dfced8b4707755864a0492Ying Wang
287951a39d68df598db08dfced8b4707755864a0492Ying Wang/*
288951a39d68df598db08dfced8b4707755864a0492Ying Wang * BSD math library entry points
289951a39d68df598db08dfced8b4707755864a0492Ying Wang */
290951a39d68df598db08dfced8b4707755864a0492Ying Wang/* #if __BSD_VISIBLE */
291951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	drem(double, double);
292951a39d68df598db08dfced8b4707755864a0492Ying Wangint	finite(double) __pure2;
293951a39d68df598db08dfced8b4707755864a0492Ying Wangint	isnanf(float) __pure2;
294951a39d68df598db08dfced8b4707755864a0492Ying Wang
295951a39d68df598db08dfced8b4707755864a0492Ying Wang/*
296951a39d68df598db08dfced8b4707755864a0492Ying Wang * Reentrant version of gamma & lgamma; passes signgam back by reference
297951a39d68df598db08dfced8b4707755864a0492Ying Wang * as the second argument; user must allocate space for signgam.
298951a39d68df598db08dfced8b4707755864a0492Ying Wang */
299951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	gamma_r(double, int *);
300951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	lgamma_r(double, int *);
301951a39d68df598db08dfced8b4707755864a0492Ying Wang
302951a39d68df598db08dfced8b4707755864a0492Ying Wang/*
303951a39d68df598db08dfced8b4707755864a0492Ying Wang * IEEE Test Vector
304951a39d68df598db08dfced8b4707755864a0492Ying Wang */
305951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble	significand(double);
306951a39d68df598db08dfced8b4707755864a0492Ying Wang/* #endif */ /* __BSD_VISIBLE */
307951a39d68df598db08dfced8b4707755864a0492Ying Wang
308951a39d68df598db08dfced8b4707755864a0492Ying Wang/* float versions of ANSI/POSIX functions */
309951a39d68df598db08dfced8b4707755864a0492Ying Wang/*#if __ISO_C_VISIBLE >= 1999 */
310951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	acosf(float);
311951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	asinf(float);
312951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	atanf(float);
313951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	atan2f(float, float);
314951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	cosf(float);
315951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	sinf(float);
316951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	tanf(float);
317951a39d68df598db08dfced8b4707755864a0492Ying Wang
318951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	coshf(float);
319951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	sinhf(float);
320951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	tanhf(float);
321951a39d68df598db08dfced8b4707755864a0492Ying Wang
322951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	exp2f(float);
323951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	expf(float);
324951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	expm1f(float);
325951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	frexpf(float, int *);	/* fundamentally !__pure2 */
326951a39d68df598db08dfced8b4707755864a0492Ying Wangint	ilogbf(float) __pure2;
327951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	ldexpf(float, int);
328951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	log10f(float);
329951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	log1pf(float);
330951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	logf(float);
331951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	modff(float, float *);	/* fundamentally !__pure2 */
332951a39d68df598db08dfced8b4707755864a0492Ying Wang
333951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	powf(float, float);
334951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	sqrtf(float);
335951a39d68df598db08dfced8b4707755864a0492Ying Wang
336951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	ceilf(float);
337951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	fabsf(float) __pure2;
338951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	floorf(float);
339951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	fmodf(float, float);
340951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	roundf(float);
341951a39d68df598db08dfced8b4707755864a0492Ying Wang
342951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	erff(float);
343951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	erfcf(float);
344951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	hypotf(float, float);
345951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	lgammaf(float);
346951a39d68df598db08dfced8b4707755864a0492Ying Wang
347951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	acoshf(float);
348951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	asinhf(float);
349951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	atanhf(float);
350951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	cbrtf(float);
351951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	logbf(float);
352951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	copysignf(float, float) __pure2;
353951a39d68df598db08dfced8b4707755864a0492Ying Wanglong long llrintf(float);
354951a39d68df598db08dfced8b4707755864a0492Ying Wanglong long llroundf(float);
355951a39d68df598db08dfced8b4707755864a0492Ying Wanglong	lrintf(float);
356951a39d68df598db08dfced8b4707755864a0492Ying Wanglong	lroundf(float);
357951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	nearbyintf(float);
358951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	nextafterf(float, float);
359951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	remainderf(float, float);
360951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	remquof(float, float, int *);
361951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	rintf(float);
362951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	scalblnf(float, long);
363951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	scalbnf(float, int);
364951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	truncf(float);
365951a39d68df598db08dfced8b4707755864a0492Ying Wang
366951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	fdimf(float, float);
367951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	fmaf(float, float, float);
368951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	fmaxf(float, float) __pure2;
369951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	fminf(float, float) __pure2;
370951a39d68df598db08dfced8b4707755864a0492Ying Wang/* #endif */
371951a39d68df598db08dfced8b4707755864a0492Ying Wang
372951a39d68df598db08dfced8b4707755864a0492Ying Wang/*
373951a39d68df598db08dfced8b4707755864a0492Ying Wang * float versions of BSD math library entry points
374951a39d68df598db08dfced8b4707755864a0492Ying Wang */
375951a39d68df598db08dfced8b4707755864a0492Ying Wang/* #if __BSD_VISIBLE */
376951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	dremf(float, float);
377951a39d68df598db08dfced8b4707755864a0492Ying Wangint	finitef(float) __pure2;
378951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	gammaf(float);
379951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	j0f(float);
380951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	j1f(float);
381951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	jnf(int, float);
382951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	scalbf(float, float);
383951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	y0f(float);
384951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	y1f(float);
385951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	ynf(int, float);
386951a39d68df598db08dfced8b4707755864a0492Ying Wang
387951a39d68df598db08dfced8b4707755864a0492Ying Wang/*
388951a39d68df598db08dfced8b4707755864a0492Ying Wang * Float versions of reentrant version of gamma & lgamma; passes
389951a39d68df598db08dfced8b4707755864a0492Ying Wang * signgam back by reference as the second argument; user must
390951a39d68df598db08dfced8b4707755864a0492Ying Wang * allocate space for signgam.
391951a39d68df598db08dfced8b4707755864a0492Ying Wang */
392951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	gammaf_r(float, int *);
393951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	lgammaf_r(float, int *);
394951a39d68df598db08dfced8b4707755864a0492Ying Wang
395951a39d68df598db08dfced8b4707755864a0492Ying Wang/*
396951a39d68df598db08dfced8b4707755864a0492Ying Wang * float version of IEEE Test Vector
397951a39d68df598db08dfced8b4707755864a0492Ying Wang */
398951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat	significandf(float);
399951a39d68df598db08dfced8b4707755864a0492Ying Wang/* #endif */	/* __BSD_VISIBLE */
400951a39d68df598db08dfced8b4707755864a0492Ying Wang
401951a39d68df598db08dfced8b4707755864a0492Ying Wang/*
402951a39d68df598db08dfced8b4707755864a0492Ying Wang * long double versions of ISO/POSIX math functions
403951a39d68df598db08dfced8b4707755864a0492Ying Wang */
404951a39d68df598db08dfced8b4707755864a0492Ying Wang/* #if __ISO_C_VISIBLE >= 1999 */
405951a39d68df598db08dfced8b4707755864a0492Ying Wang#if 0
406951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	acoshl(long double);
407951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	acosl(long double);
408951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	asinhl(long double);
409951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	asinl(long double);
410951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	atan2l(long double, long double);
411951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	atanhl(long double);
412951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	atanl(long double);
413951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	cbrtl(long double);
414951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
415951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	ceill(long double);
416951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	copysignl(long double, long double) __pure2;
417951a39d68df598db08dfced8b4707755864a0492Ying Wang#if 0
418951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	coshl(long double);
419951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	cosl(long double);
420951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	erfcl(long double);
421951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	erfl(long double);
422951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	exp2l(long double);
423951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	expl(long double);
424951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	expm1l(long double);
425951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
426951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	fabsl(long double) __pure2;
427951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	fdiml(long double, long double);
428951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	floorl(long double);
429951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	fmal(long double, long double, long double);
430951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	fmaxl(long double, long double) __pure2;
431951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	fminl(long double, long double) __pure2;
432951a39d68df598db08dfced8b4707755864a0492Ying Wang#if 0
433951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	fmodl(long double, long double);
434951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
435951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	frexpl(long double value, int *); /* fundamentally !__pure2 */
436951a39d68df598db08dfced8b4707755864a0492Ying Wang#if 0
437951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	hypotl(long double, long double);
438951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
439951a39d68df598db08dfced8b4707755864a0492Ying Wangint		ilogbl(long double) __pure2;
440951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	ldexpl(long double, int);
441951a39d68df598db08dfced8b4707755864a0492Ying Wang#if 0
442951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	lgammal(long double);
443951a39d68df598db08dfced8b4707755864a0492Ying Wanglong long	llrintl(long double);
444951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
445951a39d68df598db08dfced8b4707755864a0492Ying Wanglong long	llroundl(long double);
446951a39d68df598db08dfced8b4707755864a0492Ying Wang#if 0
447951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	log10l(long double);
448951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	log1pl(long double);
449951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	log2l(long double);
450951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	logbl(long double);
451951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	logl(long double);
452951a39d68df598db08dfced8b4707755864a0492Ying Wanglong		lrintl(long double);
453951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
454951a39d68df598db08dfced8b4707755864a0492Ying Wanglong		lroundl(long double);
455951a39d68df598db08dfced8b4707755864a0492Ying Wang#if 0
456951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	modfl(long double, long double *); /* fundamentally !__pure2 */
457951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	nanl(const char *) __pure2;
458951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	nearbyintl(long double);
459951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
460951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	nextafterl(long double, long double);
461951a39d68df598db08dfced8b4707755864a0492Ying Wangdouble		nexttoward(double, long double);
462951a39d68df598db08dfced8b4707755864a0492Ying Wangfloat		nexttowardf(float, long double);
463951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	nexttowardl(long double, long double);
464951a39d68df598db08dfced8b4707755864a0492Ying Wang#if 0
465951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	powl(long double, long double);
466951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	remainderl(long double, long double);
467951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	remquol(long double, long double, int *);
468951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	rintl(long double);
469951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
470951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	roundl(long double);
471951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	scalblnl(long double, long);
472951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	scalbnl(long double, int);
473951a39d68df598db08dfced8b4707755864a0492Ying Wang#if 0
474951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	sinhl(long double);
475951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	sinl(long double);
476951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	sqrtl(long double);
477951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	tanhl(long double);
478951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	tanl(long double);
479951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	tgammal(long double);
480951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
481951a39d68df598db08dfced8b4707755864a0492Ying Wanglong double	truncl(long double);
482951a39d68df598db08dfced8b4707755864a0492Ying Wang
483951a39d68df598db08dfced8b4707755864a0492Ying Wang/* BIONIC: GLibc compatibility - required by the ARM toolchain */
484951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifdef _GNU_SOURCE
485951a39d68df598db08dfced8b4707755864a0492Ying Wangvoid  sincos(double x, double *sin, double *cos);
486951a39d68df598db08dfced8b4707755864a0492Ying Wangvoid  sincosf(float x, float *sin, float *cos);
487951a39d68df598db08dfced8b4707755864a0492Ying Wangvoid  sincosl(long double x, long double *sin, long double *cos);
488951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
489951a39d68df598db08dfced8b4707755864a0492Ying Wang
490951a39d68df598db08dfced8b4707755864a0492Ying Wang/* #endif */ /* __ISO_C_VISIBLE >= 1999 */
491951a39d68df598db08dfced8b4707755864a0492Ying Wang__END_DECLS
492951a39d68df598db08dfced8b4707755864a0492Ying Wang
493951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif /* !_MATH_H_ */
494