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_ 18b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#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 23f9f4a432ee4f56b8cb24b2033d3b1068200a6d30Elliott Hughes#if !defined(__BIONIC_NO_MATH_INLINES) 24f9f4a432ee4f56b8cb24b2033d3b1068200a6d30Elliott Hughes#define __BIONIC_MATH_INLINE(__def) extern __inline__ __always_inline __attribute__((gnu_inline)) __attribute__((__artificial__)) __def 25f9f4a432ee4f56b8cb24b2033d3b1068200a6d30Elliott Hughes#else 26f9f4a432ee4f56b8cb24b2033d3b1068200a6d30Elliott Hughes#define __BIONIC_MATH_INLINE(__def) 27f9f4a432ee4f56b8cb24b2033d3b1068200a6d30Elliott Hughes#endif 28f9f4a432ee4f56b8cb24b2033d3b1068200a6d30Elliott Hughes 29de9ac710534626e6796ea885f8480fc4cfd64158Elliott Hughes__BEGIN_DECLS 30de9ac710534626e6796ea885f8480fc4cfd64158Elliott Hughes#pragma GCC visibility push(default) 31de9ac710534626e6796ea885f8480fc4cfd64158Elliott Hughes 32b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define HUGE_VAL __builtin_huge_val() 331dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 34a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#if __ISO_C_VISIBLE >= 1999 35b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define FP_ILOGB0 (-INT_MAX) 36b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define FP_ILOGBNAN INT_MAX 371dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 38b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define HUGE_VALF __builtin_huge_valf() 39b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define HUGE_VALL __builtin_huge_vall() 40b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define INFINITY __builtin_inff() 41b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define NAN __builtin_nanf("") 421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 43b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define MATH_ERRNO 1 44b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define MATH_ERREXCEPT 2 45b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define math_errhandling MATH_ERREXCEPT 461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 47b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#if defined(__FP_FAST_FMA) 48b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define FP_FAST_FMA 1 49b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#endif 50b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#if defined(__FP_FAST_FMAF) 51b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define FP_FAST_FMAF 1 52b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#endif 53b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#if defined(__FP_FAST_FMAL) 54b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define FP_FAST_FMAL 1 551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#endif 561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* Symbolic constants to classify floating point numbers. */ 58b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define FP_INFINITE 0x01 59b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define FP_NAN 0x02 60b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define FP_NORMAL 0x04 61b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define FP_SUBNORMAL 0x08 62b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define FP_ZERO 0x10 63b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define fpclassify(x) \ 64b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, x) 65b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes 66b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define isfinite(x) __builtin_isfinite(x) 67b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define isinf(x) __builtin_isinf(x) 68b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define isnan(x) __builtin_isnan(x) 69b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define isnormal(x) __builtin_isnormal(x) 70b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes 71b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define isgreater(x, y) __builtin_isgreater((x), (y)) 72b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define isgreaterequal(x, y) __builtin_isgreaterequal((x), (y)) 73b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define isless(x, y) __builtin_isless((x), (y)) 74b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define islessequal(x, y) __builtin_islessequal((x), (y)) 75b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define islessgreater(x, y) __builtin_islessgreater((x), (y)) 76b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define isunordered(x, y) __builtin_isunordered((x), (y)) 77b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes 78b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes#define signbit(x) \ 79b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes ((sizeof(x) == sizeof(float)) ? __builtin_signbitf(x) \ 80b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes : (sizeof(x) == sizeof(double)) ? __builtin_signbit(x) \ 81b662280aaff801ef936fbfab34dd1596acce945eElliott Hughes : __builtin_signbitl(x)) 821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 839f87a0b285128542a221f2b69d3b959a4e33c054Elliott Hughestypedef double __double_t; 849f87a0b285128542a221f2b69d3b959a4e33c054Elliott Hughestypedef __double_t double_t; 859f87a0b285128542a221f2b69d3b959a4e33c054Elliott Hughestypedef float __float_t; 869f87a0b285128542a221f2b69d3b959a4e33c054Elliott Hughestypedef __float_t float_t; 87a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#endif /* __ISO_C_VISIBLE >= 1999 */ 881dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 891dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 901dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * XOPEN/SVID 911dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 92a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#if __BSD_VISIBLE || __XSI_VISIBLE 931dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_E 2.7182818284590452354 /* e */ 941dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_LOG2E 1.4426950408889634074 /* log 2e */ 951dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_LOG10E 0.43429448190325182765 /* log 10e */ 961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_LN2 0.69314718055994530942 /* log e2 */ 971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_LN10 2.30258509299404568402 /* log e10 */ 981dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_PI 3.14159265358979323846 /* pi */ 991dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_PI_2 1.57079632679489661923 /* pi/2 */ 1001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_PI_4 0.78539816339744830962 /* pi/4 */ 1011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_1_PI 0.31830988618379067154 /* 1/pi */ 1021dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_2_PI 0.63661977236758134308 /* 2/pi */ 1031dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */ 1041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_SQRT2 1.41421356237309504880 /* sqrt(2) */ 1051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */ 1061dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MAXFLOAT ((float)3.40282346638528860e+38) 1081dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectextern int signgam; 109a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#endif /* __BSD_VISIBLE || __XSI_VISIBLE */ 1101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#if __BSD_VISIBLE 1121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#if 0 1131dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* Old value from 4.4BSD-Lite math.h; this is probably better. */ 1141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define HUGE HUGE_VAL 1151dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#else 1161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define HUGE MAXFLOAT 1171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#endif 1181dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#endif /* __BSD_VISIBLE */ 1191dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 1211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * Most of these functions depend on the rounding mode and have the side 1221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * effect of raising floating-point exceptions, so they are not declared 1231dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * as __pure2. In C99, FENV_ACCESS affects the purity of these functions. 1241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 125de9ac710534626e6796ea885f8480fc4cfd64158Elliott Hughes 1261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 1271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * ANSI/POSIX 1281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 1291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __fpclassifyd(double) __pure2; 1301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __fpclassifyf(float) __pure2; 1311dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __fpclassifyl(long double) __pure2; 1321dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __isfinitef(float) __pure2; 1331dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __isfinite(double) __pure2; 1341dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __isfinitel(long double) __pure2; 1351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __isinff(float) __pure2; 1361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __isinfl(long double) __pure2; 137a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughesint __isnanf(float) __pure2; 1381dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __isnanl(long double) __pure2; 1391dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __isnormalf(float) __pure2; 1401dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __isnormal(double) __pure2; 1411dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __isnormall(long double) __pure2; 1421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __signbit(double) __pure2; 1431dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __signbitf(float) __pure2; 1441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint __signbitl(long double) __pure2; 1451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble acos(double); 1471dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble asin(double); 1481dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble atan(double); 1491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble atan2(double, double); 1501dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble cos(double); 1511dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble sin(double); 1521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble tan(double); 1531dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1541dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble cosh(double); 1551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble sinh(double); 1561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble tanh(double); 1571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1581dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble exp(double); 1591dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble frexp(double, int *); /* fundamentally !__pure2 */ 1601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble ldexp(double, int); 1611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble log(double); 1621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble log10(double); 1631dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble modf(double, double *); /* fundamentally !__pure2 */ 1641dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1651dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble pow(double, double); 1661dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble sqrt(double); 1671dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1681dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble ceil(double); 1691dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble fabs(double) __pure2; 170f9f4a432ee4f56b8cb24b2033d3b1068200a6d30Elliott Hughes__BIONIC_MATH_INLINE(double fabs(double x) { return __builtin_fabs(x); }) 1711dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble floor(double); 1721dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble fmod(double, double); 1731dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 1751dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * These functions are not in C90. 1761dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 177a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE 1781dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble acosh(double); 1791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble asinh(double); 1801dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble atanh(double); 1811dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble cbrt(double); 1821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble erf(double); 1831dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble erfc(double); 1841dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble exp2(double); 1851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble expm1(double); 1861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble fma(double, double, double); 1871dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble hypot(double, double); 1881dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint ilogb(double) __pure2; 189a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughesint (isinf)(double) __pure2; 1901dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint (isnan)(double) __pure2; 1911dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble lgamma(double); 1921dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong long llrint(double); 1931dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong long llround(double); 1941dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble log1p(double); 195a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughesdouble log2(double); 1961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble logb(double); 1971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong lrint(double); 1981dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong lround(double); 1998e2ff164cc327aad8666333a1d75f86291858da0David 'Digit' Turnerdouble nan(const char *) __pure2; 2001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble nextafter(double, double); 2011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble remainder(double, double); 2021dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble remquo(double, double, int *); 2031dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble rint(double); 204a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#endif /* __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE */ 2051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 206a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#if __BSD_VISIBLE || __XSI_VISIBLE 2071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble j0(double); 2081dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble j1(double); 2091dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble jn(int, double); 2101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble y0(double); 2111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble y1(double); 2121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble yn(int, double); 2131dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 214a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#if __XSI_VISIBLE <= 500 || __BSD_VISIBLE 2151dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble gamma(double); 216a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#endif 217a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes 218a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#if __XSI_VISIBLE <= 600 || __BSD_VISIBLE 219a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughesdouble scalb(double, double); 220a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#endif 221a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#endif /* __BSD_VISIBLE || __XSI_VISIBLE */ 2221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 223a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 2241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble copysign(double, double) __pure2; 2251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble fdim(double, double); 2261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble fmax(double, double) __pure2; 2271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble fmin(double, double) __pure2; 2281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble nearbyint(double); 2291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble round(double); 2301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble scalbln(double, long); 2311dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble scalbn(double, int); 2321dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble tgamma(double); 2331dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble trunc(double); 234a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#endif 2351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 2371dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * BSD math library entry points 2381dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 239a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#if __BSD_VISIBLE 2401dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble drem(double, double); 2411dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint finite(double) __pure2; 2421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint isnanf(float) __pure2; 243de9ac710534626e6796ea885f8480fc4cfd64158Elliott Hugheslong double significandl(long double); 2441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 2461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * Reentrant version of gamma & lgamma; passes signgam back by reference 2471dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * as the second argument; user must allocate space for signgam. 2481dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 2491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble gamma_r(double, int *); 2501dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble lgamma_r(double, int *); 2511dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 2531dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * IEEE Test Vector 2541dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 2551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble significand(double); 256a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#endif /* __BSD_VISIBLE */ 2571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2581dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* float versions of ANSI/POSIX functions */ 259a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#if __ISO_C_VISIBLE >= 1999 2601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat acosf(float); 2611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat asinf(float); 2621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat atanf(float); 2631dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat atan2f(float, float); 2641dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat cosf(float); 2651dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat sinf(float); 2661dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat tanf(float); 2671dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2681dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat coshf(float); 2691dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat sinhf(float); 2701dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat tanhf(float); 2711dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2721dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat exp2f(float); 2731dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat expf(float); 2741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat expm1f(float); 2751dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat frexpf(float, int *); /* fundamentally !__pure2 */ 2761dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint ilogbf(float) __pure2; 2771dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat ldexpf(float, int); 2781dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat log10f(float); 2791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat log1pf(float); 280a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughesfloat log2f(float); 2811dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat logf(float); 2821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat modff(float, float *); /* fundamentally !__pure2 */ 2831dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2841dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat powf(float, float); 2851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat sqrtf(float); 2861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2871dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat ceilf(float); 2881dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat fabsf(float) __pure2; 289f9f4a432ee4f56b8cb24b2033d3b1068200a6d30Elliott Hughes__BIONIC_MATH_INLINE(float fabsf(float x) { return __builtin_fabsf(x); }) 2901dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat floorf(float); 2911dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat fmodf(float, float); 2921dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat roundf(float); 2931dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2941dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat erff(float); 2951dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat erfcf(float); 2961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat hypotf(float, float); 2971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat lgammaf(float); 2988e2ff164cc327aad8666333a1d75f86291858da0David 'Digit' Turnerfloat tgammaf(float); 2991dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat acoshf(float); 3011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat asinhf(float); 3021dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat atanhf(float); 3031dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat cbrtf(float); 3041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat logbf(float); 3051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat copysignf(float, float) __pure2; 3061dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong long llrintf(float); 3071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong long llroundf(float); 3081dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong lrintf(float); 3091dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong lroundf(float); 3108e2ff164cc327aad8666333a1d75f86291858da0David 'Digit' Turnerfloat nanf(const char *) __pure2; 3111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat nearbyintf(float); 3121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat nextafterf(float, float); 3131dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat remainderf(float, float); 3141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat remquof(float, float, int *); 3151dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat rintf(float); 3161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat scalblnf(float, long); 3171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat scalbnf(float, int); 3181dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat truncf(float); 3191dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat fdimf(float, float); 3211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat fmaf(float, float, float); 3221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat fmaxf(float, float) __pure2; 3231dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat fminf(float, float) __pure2; 324a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#endif 3251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 3271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * float versions of BSD math library entry points 3281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 329a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#if __BSD_VISIBLE 3301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat dremf(float, float); 3311dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint finitef(float) __pure2; 3321dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat gammaf(float); 3331dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat j0f(float); 3341dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat j1f(float); 3351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat jnf(int, float); 3361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat scalbf(float, float); 3371dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat y0f(float); 3381dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat y1f(float); 3391dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat ynf(int, float); 3401dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3411dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 3421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * Float versions of reentrant version of gamma & lgamma; passes 3431dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * signgam back by reference as the second argument; user must 3441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * allocate space for signgam. 3451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 3461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat gammaf_r(float, int *); 3471dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat lgammaf_r(float, int *); 3481dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 3501dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * float version of IEEE Test Vector 3511dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 3521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat significandf(float); 353a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#endif /* __BSD_VISIBLE */ 3541dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* 3561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * long double versions of ISO/POSIX math functions 3571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */ 358a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#if __ISO_C_VISIBLE >= 1999 3599a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double acoshl(long double); 3601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double acosl(long double); 3619a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double asinhl(long double); 3621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double asinl(long double); 3631dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double atan2l(long double, long double); 3649a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double atanhl(long double); 3651dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double atanl(long double); 3661dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double cbrtl(long double); 3671dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double ceill(long double); 3681dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double copysignl(long double, long double) __pure2; 3699a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double coshl(long double); 3701dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double cosl(long double); 3719a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double erfcl(long double); 3729a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double erfl(long double); 3731dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double exp2l(long double); 3741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double expl(long double); 3759a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double expm1l(long double); 3761dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double fabsl(long double) __pure2; 377f9f4a432ee4f56b8cb24b2033d3b1068200a6d30Elliott Hughes__BIONIC_MATH_INLINE(long double fabsl(long double x) { return __builtin_fabsl(x); }) 3781dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double fdiml(long double, long double); 3791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double floorl(long double); 3801dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double fmal(long double, long double, long double); 3811dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double fmaxl(long double, long double) __pure2; 3821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double fminl(long double, long double) __pure2; 3831dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double fmodl(long double, long double); 3841dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double frexpl(long double value, int *); /* fundamentally !__pure2 */ 3851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double hypotl(long double, long double); 3861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectint ilogbl(long double) __pure2; 3871dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double ldexpl(long double, int); 3889a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double lgammal(long double); 3891dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong long llrintl(long double); 3901dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong long llroundl(long double); 3919a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double log10l(long double); 3929a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double log1pl(long double); 3939a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double log2l(long double); 3941dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double logbl(long double); 3959a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double logl(long double); 3961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong lrintl(long double); 3971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong lroundl(long double); 3981dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double modfl(long double, long double *); /* fundamentally !__pure2 */ 3991dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double nanl(const char *) __pure2; 4001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double nearbyintl(long double); 4011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double nextafterl(long double, long double); 4021dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectdouble nexttoward(double, long double); 4031dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectfloat nexttowardf(float, long double); 4041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double nexttowardl(long double, long double); 4059a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double powl(long double, long double); 4061dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double remainderl(long double, long double); 4071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double remquol(long double, long double, int *); 4081dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double rintl(long double); 4091dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double roundl(long double); 4101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double scalblnl(long double, long); 4111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double scalbnl(long double, int); 4129a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double sinhl(long double); 4131dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double sinl(long double); 4141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double sqrtl(long double); 4159a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double tanhl(long double); 4161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double tanl(long double); 4179a5a3e8e74e2c6d7850ab29711189acf0f7378a2Elliott Hugheslong double tgammal(long double); 4181dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlong double truncl(long double); 419a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes#endif /* __ISO_C_VISIBLE >= 1999 */ 420b4f2f28054bf89b1367a99f67a9e9b569e4fda06Elliott Hughes 421755318548d787c7ca36901be064c69efba41c6cfElliott Hughes#if __BSD_VISIBLE 422755318548d787c7ca36901be064c69efba41c6cfElliott Hugheslong double lgammal_r(long double, int *); 423755318548d787c7ca36901be064c69efba41c6cfElliott Hughes#endif 424755318548d787c7ca36901be064c69efba41c6cfElliott Hughes 4255f5cc45cf0e027f6ca503dc229a4890fc7164b66Elliott Hughes#if defined(__USE_GNU) 426b4f2f28054bf89b1367a99f67a9e9b569e4fda06Elliott Hughesvoid sincos(double, double*, double*); 427b4f2f28054bf89b1367a99f67a9e9b569e4fda06Elliott Hughesvoid sincosf(float, float*, float*); 428b4f2f28054bf89b1367a99f67a9e9b569e4fda06Elliott Hughesvoid sincosl(long double, long double*, long double*); 4295f5cc45cf0e027f6ca503dc229a4890fc7164b66Elliott Hughes#endif /* __USE_GNU */ 430b4f2f28054bf89b1367a99f67a9e9b569e4fda06Elliott Hughes 431de9ac710534626e6796ea885f8480fc4cfd64158Elliott Hughes#pragma GCC visibility pop 4321dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project__END_DECLS 4331dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 4341dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#endif /* !_MATH_H_ */ 435