11dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 21dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * ==================================================== 31dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. 41dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * 51dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * Developed at SunPro, a Sun Microsystems, Inc. business. 61dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * Permission to use, copy, modify, and distribute this 71dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * software is freely granted, provided that this notice 81dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * is preserved. 91dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * ==================================================== 101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 131dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * from: @(#)fdlibm.h 5.1 93/09/24 14a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes * $FreeBSD$ 151dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#ifndef _MATH_H_ 181dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define _MATH_H_ 191dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#include <sys/cdefs.h> 211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#include <limits.h> 221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 23de9ac710534626e6796ea885f8480fc4cfd64158Elliott Hughes__BEGIN_DECLS 24de9ac710534626e6796ea885f8480fc4cfd64158Elliott Hughes#pragma GCC visibility push(default) 25de9ac710534626e6796ea885f8480fc4cfd64158Elliott Hughes 261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * ANSI/POSIX 281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectextern const union __infinity_un { 301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char __uc[8]; 311dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project double __ud; 321dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project} __infinity; 331dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 341dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectextern const union __nan_un { 351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char __uc[sizeof(float)]; 361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project float __uf; 371dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project} __nan; 381dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 39e0c56efddf55ad40cb35b2c22e1dd9b4b50df159Elliott Hughes#if __GNUC_PREREQ(3, 3) || (defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 800) 401dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define __MATH_BUILTIN_CONSTANTS 411dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#endif 421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 43e0c56efddf55ad40cb35b2c22e1dd9b4b50df159Elliott Hughes#if __GNUC_PREREQ(3, 0) && !defined(__INTEL_COMPILER) 441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define __MATH_BUILTIN_RELOPS 451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#endif 461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 47a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#ifdef __MATH_BUILTIN_CONSTANTS 481dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define HUGE_VAL __builtin_huge_val() 491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#else 501dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define HUGE_VAL (__infinity.__ud) 511dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#endif 521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 53a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#if __ISO_C_VISIBLE >= 1999 54a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#define FP_ILOGB0 (-INT_MAX) /* Android-changed */ 55a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#define FP_ILOGBNAN INT_MAX /* Android-changed */ 561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#ifdef __MATH_BUILTIN_CONSTANTS 581dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define HUGE_VALF __builtin_huge_valf() 591dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define HUGE_VALL __builtin_huge_vall() 60a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#define INFINITY __builtin_inff() 61a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#define NAN __builtin_nanf("") 621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#else 631dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define HUGE_VALF (float)HUGE_VAL 641dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define HUGE_VALL (long double)HUGE_VAL 651dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define INFINITY HUGE_VALF 661dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define NAN (__nan.__uf) 671dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#endif /* __MATH_BUILTIN_CONSTANTS */ 681dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 691dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MATH_ERRNO 1 701dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MATH_ERREXCEPT 2 711dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define math_errhandling MATH_ERREXCEPT 721dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 73a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#define FP_FAST_FMAF 1 741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#ifdef __ia64__ 75a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#define FP_FAST_FMA 1 76a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#define FP_FAST_FMAL 1 771dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#endif 781dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* Symbolic constants to classify floating point numbers. */ 801dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define FP_INFINITE 0x01 811dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define FP_NAN 0x02 821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define FP_NORMAL 0x04 831dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define FP_SUBNORMAL 0x08 841dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define FP_ZERO 0x10 851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define fpclassify(x) \ 861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ((sizeof (x) == sizeof (float)) ? __fpclassifyf(x) \ 871dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project : (sizeof (x) == sizeof (double)) ? __fpclassifyd(x) \ 881dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project : __fpclassifyl(x)) 891dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 901dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define isfinite(x) \ 911dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ((sizeof (x) == sizeof (float)) ? __isfinitef(x) \ 921dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project : (sizeof (x) == sizeof (double)) ? __isfinite(x) \ 931dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project : __isfinitel(x)) 941dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define isinf(x) \ 951dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ((sizeof (x) == sizeof (float)) ? __isinff(x) \ 96a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes : (sizeof (x) == sizeof (double)) ? isinf(x) \ 971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project : __isinfl(x)) 981dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define isnan(x) \ 99a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes ((sizeof (x) == sizeof (float)) ? __isnanf(x) \ 1001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project : (sizeof (x) == sizeof (double)) ? isnan(x) \ 1011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project : __isnanl(x)) 1021dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define isnormal(x) \ 1031dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ((sizeof (x) == sizeof (float)) ? __isnormalf(x) \ 1041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project : (sizeof (x) == sizeof (double)) ? __isnormal(x) \ 1051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project : __isnormall(x)) 1061dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#ifdef __MATH_BUILTIN_RELOPS 1081dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define isgreater(x, y) __builtin_isgreater((x), (y)) 1091dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define isgreaterequal(x, y) __builtin_isgreaterequal((x), (y)) 1101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define isless(x, y) __builtin_isless((x), (y)) 1111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define islessequal(x, y) __builtin_islessequal((x), (y)) 1121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define islessgreater(x, y) __builtin_islessgreater((x), (y)) 1131dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define isunordered(x, y) __builtin_isunordered((x), (y)) 1141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#else 1151dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define isgreater(x, y) (!isunordered((x), (y)) && (x) > (y)) 1161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define isgreaterequal(x, y) (!isunordered((x), (y)) && (x) >= (y)) 1171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define isless(x, y) (!isunordered((x), (y)) && (x) < (y)) 1181dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define islessequal(x, y) (!isunordered((x), (y)) && (x) <= (y)) 1191dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define islessgreater(x, y) (!isunordered((x), (y)) && \ 1201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ((x) > (y) || (y) > (x))) 1211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define isunordered(x, y) (isnan(x) || isnan(y)) 1221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#endif /* __MATH_BUILTIN_RELOPS */ 1231dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define signbit(x) \ 1251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ((sizeof (x) == sizeof (float)) ? __signbitf(x) \ 1261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project : (sizeof (x) == sizeof (double)) ? __signbit(x) \ 1271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project : __signbitl(x)) 1281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1299f87a0b285128542a221f2b69d3b959a4e33c054Elliott Hughestypedef double __double_t; 1309f87a0b285128542a221f2b69d3b959a4e33c054Elliott Hughestypedef __double_t double_t; 1319f87a0b285128542a221f2b69d3b959a4e33c054Elliott Hughestypedef float __float_t; 1329f87a0b285128542a221f2b69d3b959a4e33c054Elliott Hughestypedef __float_t float_t; 133a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#endif /* __ISO_C_VISIBLE >= 1999 */ 1341dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 1361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * XOPEN/SVID 1371dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 138a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#if __BSD_VISIBLE || __XSI_VISIBLE 1391dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_E 2.7182818284590452354 /* e */ 1401dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_LOG2E 1.4426950408889634074 /* log 2e */ 1411dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_LOG10E 0.43429448190325182765 /* log 10e */ 1421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_LN2 0.69314718055994530942 /* log e2 */ 1431dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_LN10 2.30258509299404568402 /* log e10 */ 1441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_PI 3.14159265358979323846 /* pi */ 1451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_PI_2 1.57079632679489661923 /* pi/2 */ 1461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_PI_4 0.78539816339744830962 /* pi/4 */ 1471dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_1_PI 0.31830988618379067154 /* 1/pi */ 1481dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_2_PI 0.63661977236758134308 /* 2/pi */ 1491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */ 1501dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_SQRT2 1.41421356237309504880 /* sqrt(2) */ 1511dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */ 1521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1531dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MAXFLOAT ((float)3.40282346638528860e+38) 1541dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectextern int signgam; 155a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#endif /* __BSD_VISIBLE || __XSI_VISIBLE */ 1561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#if __BSD_VISIBLE 1581dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#if 0 1591dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* Old value from 4.4BSD-Lite math.h; this is probably better. */ 1601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define HUGE HUGE_VAL 1611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#else 1621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define HUGE MAXFLOAT 1631dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#endif 1641dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#endif /* __BSD_VISIBLE */ 1651dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1661dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 1671dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * Most of these functions depend on the rounding mode and have the side 1681dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * effect of raising floating-point exceptions, so they are not declared 1691dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * as __pure2. In C99, FENV_ACCESS affects the purity of these functions. 1701dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 171de9ac710534626e6796ea885f8480fc4cfd64158Elliott Hughes 1721dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 1731dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * ANSI/POSIX 1741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 1751dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __fpclassifyd(double) __pure2; 1761dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __fpclassifyf(float) __pure2; 1771dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __fpclassifyl(long double) __pure2; 1781dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __isfinitef(float) __pure2; 1791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __isfinite(double) __pure2; 1801dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __isfinitel(long double) __pure2; 1811dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __isinff(float) __pure2; 1821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __isinfl(long double) __pure2; 183a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughesint __isnanf(float) __pure2; 1841dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __isnanl(long double) __pure2; 1851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __isnormalf(float) __pure2; 1861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __isnormal(double) __pure2; 1871dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __isnormall(long double) __pure2; 1881dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __signbit(double) __pure2; 1891dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __signbitf(float) __pure2; 1901dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __signbitl(long double) __pure2; 1911dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1921dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble acos(double); 1931dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble asin(double); 1941dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble atan(double); 1951dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble atan2(double, double); 1961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble cos(double); 1971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble sin(double); 1981dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble tan(double); 1991dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble cosh(double); 2011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble sinh(double); 2021dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble tanh(double); 2031dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble exp(double); 2051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble frexp(double, int *); /* fundamentally !__pure2 */ 2061dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble ldexp(double, int); 2071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble log(double); 2081dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble log10(double); 2091dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble modf(double, double *); /* fundamentally !__pure2 */ 2101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble pow(double, double); 2121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble sqrt(double); 2131dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble ceil(double); 2151dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble fabs(double) __pure2; 2161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble floor(double); 2171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble fmod(double, double); 2181dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2191dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 2201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * These functions are not in C90. 2211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 222a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE 2231dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble acosh(double); 2241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble asinh(double); 2251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble atanh(double); 2261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble cbrt(double); 2271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble erf(double); 2281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble erfc(double); 2291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble exp2(double); 2301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble expm1(double); 2311dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble fma(double, double, double); 2321dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble hypot(double, double); 2331dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint ilogb(double) __pure2; 234a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughesint (isinf)(double) __pure2; 2351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint (isnan)(double) __pure2; 2361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble lgamma(double); 2371dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong long llrint(double); 2381dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong long llround(double); 2391dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble log1p(double); 240a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughesdouble log2(double); 2411dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble logb(double); 2421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong lrint(double); 2431dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong lround(double); 2448e2ff164cc327aad8666333a1d75f86291858da0David 'Digit' Turnerdouble nan(const char *) __pure2; 2451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble nextafter(double, double); 2461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble remainder(double, double); 2471dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble remquo(double, double, int *); 2481dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble rint(double); 249a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#endif /* __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE */ 2501dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 251a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#if __BSD_VISIBLE || __XSI_VISIBLE 2521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble j0(double); 2531dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble j1(double); 2541dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble jn(int, double); 2551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble y0(double); 2561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble y1(double); 2571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble yn(int, double); 2581dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 259a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#if __XSI_VISIBLE <= 500 || __BSD_VISIBLE 2601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble gamma(double); 261a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#endif 262a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes 263a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#if __XSI_VISIBLE <= 600 || __BSD_VISIBLE 264a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughesdouble scalb(double, double); 265a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#endif 266a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#endif /* __BSD_VISIBLE || __XSI_VISIBLE */ 2671dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 268a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 2691dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble copysign(double, double) __pure2; 2701dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble fdim(double, double); 2711dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble fmax(double, double) __pure2; 2721dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble fmin(double, double) __pure2; 2731dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble nearbyint(double); 2741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble round(double); 2751dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble scalbln(double, long); 2761dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble scalbn(double, int); 2771dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble tgamma(double); 2781dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble trunc(double); 279a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#endif 2801dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2811dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 2821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * BSD math library entry points 2831dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 284a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#if __BSD_VISIBLE 2851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble drem(double, double); 2861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint finite(double) __pure2; 2871dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint isnanf(float) __pure2; 288de9ac710534626e6796ea885f8480fc4cfd64158Elliott Hugheslong double significandl(long double); 2891dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2901dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 2911dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * Reentrant version of gamma & lgamma; passes signgam back by reference 2921dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * as the second argument; user must allocate space for signgam. 2931dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 2941dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble gamma_r(double, int *); 2951dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble lgamma_r(double, int *); 2961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 2981dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * IEEE Test Vector 2991dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 3001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble significand(double); 301a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#endif /* __BSD_VISIBLE */ 3021dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3031dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* float versions of ANSI/POSIX functions */ 304a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#if __ISO_C_VISIBLE >= 1999 3051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat acosf(float); 3061dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat asinf(float); 3071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat atanf(float); 3081dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat atan2f(float, float); 3091dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat cosf(float); 3101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat sinf(float); 3111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat tanf(float); 3121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3131dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat coshf(float); 3141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat sinhf(float); 3151dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat tanhf(float); 3161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat exp2f(float); 3181dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat expf(float); 3191dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat expm1f(float); 3201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat frexpf(float, int *); /* fundamentally !__pure2 */ 3211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint ilogbf(float) __pure2; 3221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat ldexpf(float, int); 3231dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat log10f(float); 3241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat log1pf(float); 325a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughesfloat log2f(float); 3261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat logf(float); 3271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat modff(float, float *); /* fundamentally !__pure2 */ 3281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat powf(float, float); 3301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat sqrtf(float); 3311dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3321dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat ceilf(float); 3331dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat fabsf(float) __pure2; 3341dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat floorf(float); 3351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat fmodf(float, float); 3361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat roundf(float); 3371dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3381dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat erff(float); 3391dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat erfcf(float); 3401dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat hypotf(float, float); 3411dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat lgammaf(float); 3428e2ff164cc327aad8666333a1d75f86291858da0David 'Digit' Turnerfloat tgammaf(float); 3431dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat acoshf(float); 3451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat asinhf(float); 3461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat atanhf(float); 3471dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat cbrtf(float); 3481dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat logbf(float); 3491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat copysignf(float, float) __pure2; 3501dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong long llrintf(float); 3511dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong long llroundf(float); 3521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong lrintf(float); 3531dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong lroundf(float); 3548e2ff164cc327aad8666333a1d75f86291858da0David 'Digit' Turnerfloat nanf(const char *) __pure2; 3551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat nearbyintf(float); 3561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat nextafterf(float, float); 3571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat remainderf(float, float); 3581dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat remquof(float, float, int *); 3591dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat rintf(float); 3601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat scalblnf(float, long); 3611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat scalbnf(float, int); 3621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat truncf(float); 3631dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3641dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat fdimf(float, float); 3651dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat fmaf(float, float, float); 3661dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat fmaxf(float, float) __pure2; 3671dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat fminf(float, float) __pure2; 368a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#endif 3691dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3701dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 3711dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * float versions of BSD math library entry points 3721dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 373a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#if __BSD_VISIBLE 3741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat dremf(float, float); 3751dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint finitef(float) __pure2; 3761dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat gammaf(float); 3771dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat j0f(float); 3781dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat j1f(float); 3791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat jnf(int, float); 3801dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat scalbf(float, float); 3811dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat y0f(float); 3821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat y1f(float); 3831dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat ynf(int, float); 3841dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 3861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * Float versions of reentrant version of gamma & lgamma; passes 3871dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * signgam back by reference as the second argument; user must 3881dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * allocate space for signgam. 3891dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 3901dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat gammaf_r(float, int *); 3911dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat lgammaf_r(float, int *); 3921dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3931dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 3941dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * float version of IEEE Test Vector 3951dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 3961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat significandf(float); 397a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#endif /* __BSD_VISIBLE */ 3981dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3991dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 4001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * long double versions of ISO/POSIX math functions 4011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 402a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#if __ISO_C_VISIBLE >= 1999 4039a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double acoshl(long double); 4041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double acosl(long double); 4059a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double asinhl(long double); 4061dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double asinl(long double); 4071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double atan2l(long double, long double); 4089a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double atanhl(long double); 4091dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double atanl(long double); 4101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double cbrtl(long double); 4111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double ceill(long double); 4121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double copysignl(long double, long double) __pure2; 4139a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double coshl(long double); 4141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double cosl(long double); 4159a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double erfcl(long double); 4169a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double erfl(long double); 4171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double exp2l(long double); 4181dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double expl(long double); 4199a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double expm1l(long double); 4201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double fabsl(long double) __pure2; 4211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double fdiml(long double, long double); 4221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double floorl(long double); 4231dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double fmal(long double, long double, long double); 4241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double fmaxl(long double, long double) __pure2; 4251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double fminl(long double, long double) __pure2; 4261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double fmodl(long double, long double); 4271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double frexpl(long double value, int *); /* fundamentally !__pure2 */ 4281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double hypotl(long double, long double); 4291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint ilogbl(long double) __pure2; 4301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double ldexpl(long double, int); 4319a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double lgammal(long double); 4321dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong long llrintl(long double); 4331dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong long llroundl(long double); 4349a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double log10l(long double); 4359a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double log1pl(long double); 4369a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double log2l(long double); 4371dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double logbl(long double); 4389a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double logl(long double); 4391dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong lrintl(long double); 4401dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong lroundl(long double); 4411dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double modfl(long double, long double *); /* fundamentally !__pure2 */ 4421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double nanl(const char *) __pure2; 4431dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double nearbyintl(long double); 4441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double nextafterl(long double, long double); 4451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble nexttoward(double, long double); 4461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat nexttowardf(float, long double); 4471dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double nexttowardl(long double, long double); 4489a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double powl(long double, long double); 4491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double remainderl(long double, long double); 4501dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double remquol(long double, long double, int *); 4511dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double rintl(long double); 4521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double roundl(long double); 4531dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double scalblnl(long double, long); 4541dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double scalbnl(long double, int); 4559a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double sinhl(long double); 4561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double sinl(long double); 4571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double sqrtl(long double); 4589a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double tanhl(long double); 4591dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double tanl(long double); 4609a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double tgammal(long double); 4611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double truncl(long double); 462a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#endif /* __ISO_C_VISIBLE >= 1999 */ 463b4f2f28054bf89b1367a99f67a9e9b569e4fda06Elliott Hughes 464755318548d787c7ca36901be064c69efba41c6cfElliott Hughes#if __BSD_VISIBLE 465755318548d787c7ca36901be064c69efba41c6cfElliott Hugheslong double lgammal_r(long double, int *); 466755318548d787c7ca36901be064c69efba41c6cfElliott Hughes#endif 467755318548d787c7ca36901be064c69efba41c6cfElliott Hughes 4685f5cc45cf0e027f6ca503dc229a4890fc7164b66Elliott Hughes#if defined(__USE_GNU) 469b4f2f28054bf89b1367a99f67a9e9b569e4fda06Elliott Hughesvoid sincos(double, double*, double*); 470b4f2f28054bf89b1367a99f67a9e9b569e4fda06Elliott Hughesvoid sincosf(float, float*, float*); 471b4f2f28054bf89b1367a99f67a9e9b569e4fda06Elliott Hughesvoid sincosl(long double, long double*, long double*); 4725f5cc45cf0e027f6ca503dc229a4890fc7164b66Elliott Hughes#endif /* __USE_GNU */ 473b4f2f28054bf89b1367a99f67a9e9b569e4fda06Elliott Hughes 474de9ac710534626e6796ea885f8480fc4cfd64158Elliott Hughes#pragma GCC visibility pop 4751dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project__END_DECLS 4761dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 4771dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#endif /* !_MATH_H_ */ 478