105a0b428SJohn Marino /* $OpenBSD: math.h,v 1.33 2014/05/03 16:13:03 martynas Exp $ */ 205a0b428SJohn Marino /* 305a0b428SJohn Marino * ==================================================== 405a0b428SJohn Marino * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. 505a0b428SJohn Marino * 605a0b428SJohn Marino * Developed at SunPro, a Sun Microsystems, Inc. business. 705a0b428SJohn Marino * Permission to use, copy, modify, and distribute this 805a0b428SJohn Marino * software is freely granted, provided that this notice 905a0b428SJohn Marino * is preserved. 1005a0b428SJohn Marino * ==================================================== 1105a0b428SJohn Marino */ 1205a0b428SJohn Marino 1305a0b428SJohn Marino /* 1405a0b428SJohn Marino * from: @(#)fdlibm.h 5.1 93/09/24 1505a0b428SJohn Marino */ 1605a0b428SJohn Marino 1705a0b428SJohn Marino #ifndef _MATH_H_ 1805a0b428SJohn Marino #define _MATH_H_ 1905a0b428SJohn Marino 20*74b7c7a8SJohn Marino #include <sys/types.h> 2105a0b428SJohn Marino #include <sys/limits.h> 2205a0b428SJohn Marino 2305a0b428SJohn Marino __BEGIN_DECLS 2405a0b428SJohn Marino /* 2505a0b428SJohn Marino * ANSI/POSIX 2605a0b428SJohn Marino */ 2705a0b428SJohn Marino extern char __infinity[]; 2805a0b428SJohn Marino #if __GNUC_PREREQ__(3, 3) && !defined(__vax__) 2905a0b428SJohn Marino #define HUGE_VAL __builtin_huge_val() 3005a0b428SJohn Marino #else /* __GNUC_PREREQ__(3, 3) && !__vax__ */ 3105a0b428SJohn Marino #define HUGE_VAL (*(double *)(void *)__infinity) 3205a0b428SJohn Marino #endif /* __GNUC_PREREQ__(3, 3) && !__vax__ */ 3305a0b428SJohn Marino 3405a0b428SJohn Marino /* 3505a0b428SJohn Marino * C99 3605a0b428SJohn Marino */ 3705a0b428SJohn Marino #if __ISO_C_VISIBLE >= 1999 38*74b7c7a8SJohn Marino typedef double double_t; 39*74b7c7a8SJohn Marino typedef float float_t; 4005a0b428SJohn Marino 4105a0b428SJohn Marino #if __GNUC_PREREQ__(3, 3) && !defined(__vax__) 4205a0b428SJohn Marino #define HUGE_VALF __builtin_huge_valf() 4305a0b428SJohn Marino #define HUGE_VALL __builtin_huge_vall() 4405a0b428SJohn Marino #define INFINITY __builtin_inff() 4505a0b428SJohn Marino #define NAN __builtin_nanf("") 4605a0b428SJohn Marino #else /* __GNUC_PREREQ__(3, 3) && !__vax__ */ 4705a0b428SJohn Marino #ifdef __vax__ 4805a0b428SJohn Marino extern char __infinityf[]; 4905a0b428SJohn Marino #define HUGE_VALF (*(float *)(void *)__infinityf) 5005a0b428SJohn Marino #else /* __vax__ */ 5105a0b428SJohn Marino #define HUGE_VALF ((float)HUGE_VAL) 5205a0b428SJohn Marino #endif /* __vax__ */ 5305a0b428SJohn Marino #define HUGE_VALL ((long double)HUGE_VAL) 5405a0b428SJohn Marino #define INFINITY HUGE_VALF 5505a0b428SJohn Marino #ifndef __vax__ 5605a0b428SJohn Marino extern char __nan[]; 5705a0b428SJohn Marino #define NAN (*(float *)(void *)__nan) 5805a0b428SJohn Marino #endif /* !__vax__ */ 5905a0b428SJohn Marino #endif /* __GNUC_PREREQ__(3, 3) && !__vax__ */ 6005a0b428SJohn Marino 6105a0b428SJohn Marino #define FP_INFINITE 0x01 6205a0b428SJohn Marino #define FP_NAN 0x02 6305a0b428SJohn Marino #define FP_NORMAL 0x04 6405a0b428SJohn Marino #define FP_SUBNORMAL 0x08 6505a0b428SJohn Marino #define FP_ZERO 0x10 6605a0b428SJohn Marino 6705a0b428SJohn Marino #define FP_ILOGB0 (-INT_MAX) 6805a0b428SJohn Marino #define FP_ILOGBNAN INT_MAX 6905a0b428SJohn Marino 7005a0b428SJohn Marino #define fpclassify(x) \ 7105a0b428SJohn Marino ((sizeof (x) == sizeof (float)) ? \ 7205a0b428SJohn Marino __fpclassifyf(x) \ 7305a0b428SJohn Marino : (sizeof (x) == sizeof (double)) ? \ 74*74b7c7a8SJohn Marino __fpclassifyd(x) \ 7505a0b428SJohn Marino : __fpclassifyl(x)) 7605a0b428SJohn Marino #define isfinite(x) \ 7705a0b428SJohn Marino ((sizeof (x) == sizeof (float)) ? \ 7805a0b428SJohn Marino __isfinitef(x) \ 7905a0b428SJohn Marino : (sizeof (x) == sizeof (double)) ? \ 8005a0b428SJohn Marino __isfinite(x) \ 8105a0b428SJohn Marino : __isfinitel(x)) 8205a0b428SJohn Marino #define isnormal(x) \ 8305a0b428SJohn Marino ((sizeof (x) == sizeof (float)) ? \ 8405a0b428SJohn Marino __isnormalf(x) \ 8505a0b428SJohn Marino : (sizeof (x) == sizeof (double)) ? \ 8605a0b428SJohn Marino __isnormal(x) \ 8705a0b428SJohn Marino : __isnormall(x)) 8805a0b428SJohn Marino #define signbit(x) \ 8905a0b428SJohn Marino ((sizeof (x) == sizeof (float)) ? \ 9005a0b428SJohn Marino __signbitf(x) \ 9105a0b428SJohn Marino : (sizeof (x) == sizeof (double)) ? \ 9205a0b428SJohn Marino __signbit(x) \ 9305a0b428SJohn Marino : __signbitl(x)) 9405a0b428SJohn Marino 9505a0b428SJohn Marino #define isgreater(x, y) (!isunordered((x), (y)) && (x) > (y)) 9605a0b428SJohn Marino #define isgreaterequal(x, y) (!isunordered((x), (y)) && (x) >= (y)) 9705a0b428SJohn Marino #define isless(x, y) (!isunordered((x), (y)) && (x) < (y)) 9805a0b428SJohn Marino #define islessequal(x, y) (!isunordered((x), (y)) && (x) <= (y)) 9905a0b428SJohn Marino #define islessgreater(x, y) (!isunordered((x), (y)) && \ 10005a0b428SJohn Marino ((x) > (y) || (y) > (x))) 10105a0b428SJohn Marino #define isunordered(x, y) (isnan(x) || isnan(y)) 10205a0b428SJohn Marino #endif /* __ISO_C_VISIBLE >= 1999 */ 10305a0b428SJohn Marino 10405a0b428SJohn Marino #define isinf(x) \ 10505a0b428SJohn Marino ((sizeof (x) == sizeof (float)) ? \ 10605a0b428SJohn Marino __isinff(x) \ 10705a0b428SJohn Marino : (sizeof (x) == sizeof (double)) ? \ 10805a0b428SJohn Marino __isinf(x) \ 10905a0b428SJohn Marino : __isinfl(x)) 11005a0b428SJohn Marino #define isnan(x) \ 11105a0b428SJohn Marino ((sizeof (x) == sizeof (float)) ? \ 11205a0b428SJohn Marino __isnanf(x) \ 11305a0b428SJohn Marino : (sizeof (x) == sizeof (double)) ? \ 11405a0b428SJohn Marino __isnan(x) \ 11505a0b428SJohn Marino : __isnanl(x)) 11605a0b428SJohn Marino 11705a0b428SJohn Marino /* 11805a0b428SJohn Marino * XOPEN/SVID 11905a0b428SJohn Marino */ 12005a0b428SJohn Marino #if __BSD_VISIBLE || __XPG_VISIBLE 12105a0b428SJohn Marino #define M_E ((double)2.7182818284590452354) /* e */ 12205a0b428SJohn Marino #define M_LOG2E ((double)1.4426950408889634074) /* log 2e */ 12305a0b428SJohn Marino #define M_LOG10E ((double)0.43429448190325182765) /* log 10e */ 12405a0b428SJohn Marino #define M_LN2 ((double)0.69314718055994530942) /* log e2 */ 12505a0b428SJohn Marino #define M_LN10 ((double)2.30258509299404568402) /* log e10 */ 12605a0b428SJohn Marino #define M_PI ((double)3.14159265358979323846) /* pi */ 12705a0b428SJohn Marino #define M_PI_2 ((double)1.57079632679489661923) /* pi/2 */ 12805a0b428SJohn Marino #define M_PI_4 ((double)0.78539816339744830962) /* pi/4 */ 12905a0b428SJohn Marino #define M_1_PI ((double)0.31830988618379067154) /* 1/pi */ 13005a0b428SJohn Marino #define M_2_PI ((double)0.63661977236758134308) /* 2/pi */ 13105a0b428SJohn Marino #define M_2_SQRTPI ((double)1.12837916709551257390) /* 2/sqrt(pi) */ 13205a0b428SJohn Marino #define M_SQRT2 ((double)1.41421356237309504880) /* sqrt(2) */ 13305a0b428SJohn Marino #define M_SQRT1_2 ((double)0.70710678118654752440) /* 1/sqrt(2) */ 13405a0b428SJohn Marino 13505a0b428SJohn Marino #ifdef __vax__ 13605a0b428SJohn Marino #define MAXFLOAT ((float)1.70141173319264430e+38) 13705a0b428SJohn Marino #else 13805a0b428SJohn Marino #define MAXFLOAT ((float)3.40282346638528860e+38) 13905a0b428SJohn Marino #endif /* __vax__ */ 14005a0b428SJohn Marino 14105a0b428SJohn Marino extern int signgam; 14205a0b428SJohn Marino #endif /* __BSD_VISIBLE || __XPG_VISIBLE */ 14305a0b428SJohn Marino 14405a0b428SJohn Marino #if __POSIX_VISIBLE >= 201403 14505a0b428SJohn Marino #define M_El 2.718281828459045235360287471352662498L /* e */ 14605a0b428SJohn Marino #define M_LOG2El 1.442695040888963407359924681001892137L /* log 2e */ 14705a0b428SJohn Marino #define M_LOG10El 0.434294481903251827651128918916605082L /* log 10e */ 14805a0b428SJohn Marino #define M_LN2l 0.693147180559945309417232121458176568L /* log e2 */ 14905a0b428SJohn Marino #define M_LN10l 2.302585092994045684017991454684364208L /* log e10 */ 15005a0b428SJohn Marino #define M_PIl 3.141592653589793238462643383279502884L /* pi */ 15105a0b428SJohn Marino #define M_PI_2l 1.570796326794896619231321691639751442L /* pi/2 */ 15205a0b428SJohn Marino #define M_PI_4l 0.785398163397448309615660845819875721L /* pi/4 */ 15305a0b428SJohn Marino #define M_1_PIl 0.318309886183790671537767526745028724L /* 1/pi */ 15405a0b428SJohn Marino #define M_2_PIl 0.636619772367581343075535053490057448L /* 2/pi */ 15505a0b428SJohn Marino #define M_2_SQRTPIl 1.128379167095512573896158903121545172L /* 2/sqrt(pi) */ 15605a0b428SJohn Marino #define M_SQRT2l 1.414213562373095048801688724209698079L /* sqrt(2) */ 15705a0b428SJohn Marino #define M_SQRT1_2l 0.707106781186547524400844362104849039L /* 1/sqrt(2) */ 15805a0b428SJohn Marino #endif /* __POSIX_VISIBLE >= 201403 */ 15905a0b428SJohn Marino 16005a0b428SJohn Marino #if __BSD_VISIBLE 16105a0b428SJohn Marino #define HUGE MAXFLOAT 16205a0b428SJohn Marino #endif /* __BSD_VISIBLE */ 16305a0b428SJohn Marino 16405a0b428SJohn Marino /* 16505a0b428SJohn Marino * ANSI/POSIX 16605a0b428SJohn Marino */ 16705a0b428SJohn Marino double acos(double); 16805a0b428SJohn Marino double asin(double); 16905a0b428SJohn Marino double atan(double); 17005a0b428SJohn Marino double atan2(double, double); 17105a0b428SJohn Marino double cos(double); 17205a0b428SJohn Marino double sin(double); 17305a0b428SJohn Marino double tan(double); 17405a0b428SJohn Marino 17505a0b428SJohn Marino double cosh(double); 17605a0b428SJohn Marino double sinh(double); 17705a0b428SJohn Marino double tanh(double); 17805a0b428SJohn Marino 17905a0b428SJohn Marino double exp(double); 18005a0b428SJohn Marino double frexp(double, int *); 18105a0b428SJohn Marino double ldexp(double, int); 18205a0b428SJohn Marino double log(double); 18305a0b428SJohn Marino double log10(double); 18405a0b428SJohn Marino double modf(double, double *); 18505a0b428SJohn Marino 18605a0b428SJohn Marino double pow(double, double); 18705a0b428SJohn Marino double sqrt(double); 18805a0b428SJohn Marino 18905a0b428SJohn Marino double ceil(double); 19005a0b428SJohn Marino double fabs(double); 19105a0b428SJohn Marino double floor(double); 19205a0b428SJohn Marino double fmod(double, double); 19305a0b428SJohn Marino 19405a0b428SJohn Marino /* 19505a0b428SJohn Marino * C99 19605a0b428SJohn Marino */ 19705a0b428SJohn Marino #if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XPG_VISIBLE 19805a0b428SJohn Marino double acosh(double); 19905a0b428SJohn Marino double asinh(double); 20005a0b428SJohn Marino double atanh(double); 20105a0b428SJohn Marino 20205a0b428SJohn Marino double exp2(double); 20305a0b428SJohn Marino double expm1(double); 20405a0b428SJohn Marino int ilogb(double); 20505a0b428SJohn Marino double log1p(double); 20605a0b428SJohn Marino double log2(double); 20705a0b428SJohn Marino double logb(double); 20805a0b428SJohn Marino double scalbn(double, int); 20905a0b428SJohn Marino double scalbln(double, long int); 21005a0b428SJohn Marino 21105a0b428SJohn Marino double cbrt(double); 21205a0b428SJohn Marino double hypot(double, double); 21305a0b428SJohn Marino 21405a0b428SJohn Marino double erf(double); 21505a0b428SJohn Marino double erfc(double); 21605a0b428SJohn Marino double lgamma(double); 21705a0b428SJohn Marino double tgamma(double); 21805a0b428SJohn Marino 21905a0b428SJohn Marino double nearbyint(double); 22005a0b428SJohn Marino double rint(double); 22105a0b428SJohn Marino long int lrint(double); 22205a0b428SJohn Marino long long int llrint(double); 22305a0b428SJohn Marino double round(double); 22405a0b428SJohn Marino long int lround(double); 22505a0b428SJohn Marino long long int llround(double); 22605a0b428SJohn Marino double trunc(double); 22705a0b428SJohn Marino 22805a0b428SJohn Marino double remainder(double, double); 22905a0b428SJohn Marino double remquo(double, double, int *); 23005a0b428SJohn Marino 23105a0b428SJohn Marino double copysign(double, double); 23205a0b428SJohn Marino double nan(const char *); 23305a0b428SJohn Marino double nextafter(double, double); 23405a0b428SJohn Marino double nexttoward(double, long double); 23505a0b428SJohn Marino 23605a0b428SJohn Marino double fdim(double, double); 23705a0b428SJohn Marino double fmax(double, double); 23805a0b428SJohn Marino double fmin(double, double); 23905a0b428SJohn Marino 24005a0b428SJohn Marino double fma(double, double, double); 24105a0b428SJohn Marino #endif /* __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XPG_VISIBLE */ 24205a0b428SJohn Marino 24305a0b428SJohn Marino #if __BSD_VISIBLE || __XPG_VISIBLE 24405a0b428SJohn Marino double j0(double); 24505a0b428SJohn Marino double j1(double); 24605a0b428SJohn Marino double jn(int, double); 24705a0b428SJohn Marino double scalb(double, double); 24805a0b428SJohn Marino double y0(double); 24905a0b428SJohn Marino double y1(double); 25005a0b428SJohn Marino double yn(int, double); 25105a0b428SJohn Marino #endif /* __BSD_VISIBLE || __XPG_VISIBLE */ 25205a0b428SJohn Marino 25305a0b428SJohn Marino #if __BSD_VISIBLE || __XPG_VISIBLE <= 500 25405a0b428SJohn Marino double gamma(double); 25505a0b428SJohn Marino #endif /* __BSD_VISIBLE || __XPG_VISIBLE <= 500 */ 25605a0b428SJohn Marino 25705a0b428SJohn Marino /* 25805a0b428SJohn Marino * BSD math library entry points 25905a0b428SJohn Marino */ 26005a0b428SJohn Marino #if __BSD_VISIBLE 26105a0b428SJohn Marino double drem(double, double); 26205a0b428SJohn Marino int finite(double); 26305a0b428SJohn Marino 26405a0b428SJohn Marino /* 26505a0b428SJohn Marino * Reentrant version of gamma & lgamma; passes signgam back by reference 26605a0b428SJohn Marino * as the second argument; user must allocate space for signgam. 26705a0b428SJohn Marino */ 26805a0b428SJohn Marino double gamma_r(double, int *); 26905a0b428SJohn Marino double lgamma_r(double, int *); 27005a0b428SJohn Marino 27105a0b428SJohn Marino /* 27205a0b428SJohn Marino * IEEE Test Vector 27305a0b428SJohn Marino */ 27405a0b428SJohn Marino double significand(double); 27505a0b428SJohn Marino #endif /* __BSD_VISIBLE */ 27605a0b428SJohn Marino 27705a0b428SJohn Marino /* 27805a0b428SJohn Marino * Float versions of C99 functions 27905a0b428SJohn Marino */ 28005a0b428SJohn Marino #if __ISO_C_VISIBLE >= 1999 28105a0b428SJohn Marino float acosf(float); 28205a0b428SJohn Marino float asinf(float); 28305a0b428SJohn Marino float atanf(float); 28405a0b428SJohn Marino float atan2f(float, float); 28505a0b428SJohn Marino float cosf(float); 28605a0b428SJohn Marino float sinf(float); 28705a0b428SJohn Marino float tanf(float); 28805a0b428SJohn Marino 28905a0b428SJohn Marino float acoshf(float); 29005a0b428SJohn Marino float asinhf(float); 29105a0b428SJohn Marino float atanhf(float); 29205a0b428SJohn Marino float coshf(float); 29305a0b428SJohn Marino float sinhf(float); 29405a0b428SJohn Marino float tanhf(float); 29505a0b428SJohn Marino 29605a0b428SJohn Marino float expf(float); 29705a0b428SJohn Marino float exp2f(float); 29805a0b428SJohn Marino float expm1f(float); 29905a0b428SJohn Marino float frexpf(float, int *); 30005a0b428SJohn Marino int ilogbf(float); 30105a0b428SJohn Marino float ldexpf(float, int); 30205a0b428SJohn Marino float logf(float); 30305a0b428SJohn Marino float log10f(float); 30405a0b428SJohn Marino float log1pf(float); 30505a0b428SJohn Marino float log2f(float); 30605a0b428SJohn Marino float logbf(float); 30705a0b428SJohn Marino float modff(float, float *); 30805a0b428SJohn Marino float scalbnf(float, int); 30905a0b428SJohn Marino float scalblnf(float, long int); 31005a0b428SJohn Marino 31105a0b428SJohn Marino float cbrtf(float); 31205a0b428SJohn Marino float fabsf(float); 31305a0b428SJohn Marino float hypotf(float, float); 31405a0b428SJohn Marino float powf(float, float); 31505a0b428SJohn Marino float sqrtf(float); 31605a0b428SJohn Marino 31705a0b428SJohn Marino float erff(float); 31805a0b428SJohn Marino float erfcf(float); 31905a0b428SJohn Marino float lgammaf(float); 32005a0b428SJohn Marino float tgammaf(float); 32105a0b428SJohn Marino 32205a0b428SJohn Marino float ceilf(float); 32305a0b428SJohn Marino float floorf(float); 32405a0b428SJohn Marino float nearbyintf(float); 32505a0b428SJohn Marino float rintf(float); 32605a0b428SJohn Marino long int lrintf(float); 32705a0b428SJohn Marino long long int llrintf(float); 32805a0b428SJohn Marino float roundf(float); 32905a0b428SJohn Marino long int lroundf(float); 33005a0b428SJohn Marino long long int llroundf(float); 33105a0b428SJohn Marino float truncf(float); 33205a0b428SJohn Marino 33305a0b428SJohn Marino float fmodf(float, float); 33405a0b428SJohn Marino float remainderf(float, float); 33505a0b428SJohn Marino float remquof(float, float, int *); 33605a0b428SJohn Marino 33705a0b428SJohn Marino float copysignf(float, float); 33805a0b428SJohn Marino float nanf(const char *); 33905a0b428SJohn Marino float nextafterf(float, float); 34005a0b428SJohn Marino float nexttowardf(float, long double); 34105a0b428SJohn Marino 34205a0b428SJohn Marino float fdimf(float, float); 34305a0b428SJohn Marino float fmaxf(float, float); 34405a0b428SJohn Marino float fminf(float, float); 34505a0b428SJohn Marino 34605a0b428SJohn Marino float fmaf(float, float, float); 34705a0b428SJohn Marino #endif /* __ISO_C_VISIBLE >= 1999 */ 34805a0b428SJohn Marino 34905a0b428SJohn Marino #if __BSD_VISIBLE || __XPG_VISIBLE 35005a0b428SJohn Marino float j0f(float); 35105a0b428SJohn Marino float j1f(float); 35205a0b428SJohn Marino float jnf(int, float); 35305a0b428SJohn Marino float scalbf(float, float); 35405a0b428SJohn Marino float y0f(float); 35505a0b428SJohn Marino float y1f(float); 35605a0b428SJohn Marino float ynf(int, float); 35705a0b428SJohn Marino #endif /* __BSD_VISIBLE || __XPG_VISIBLE */ 35805a0b428SJohn Marino 35905a0b428SJohn Marino #if __BSD_VISIBLE || __XPG_VISIBLE <= 500 36005a0b428SJohn Marino float gammaf(float); 36105a0b428SJohn Marino #endif /* __BSD_VISIBLE || __XPG_VISIBLE <= 500 */ 36205a0b428SJohn Marino 36305a0b428SJohn Marino /* 36405a0b428SJohn Marino * Float versions of BSD math library entry points 36505a0b428SJohn Marino */ 36605a0b428SJohn Marino #if __BSD_VISIBLE 36705a0b428SJohn Marino float dremf(float, float); 36805a0b428SJohn Marino int finitef(float); 36905a0b428SJohn Marino int isinff(float); 37005a0b428SJohn Marino int isnanf(float); 37105a0b428SJohn Marino 37205a0b428SJohn Marino /* 37305a0b428SJohn Marino * Float versions of reentrant version of gamma & lgamma; passes 37405a0b428SJohn Marino * signgam back by reference as the second argument; user must 37505a0b428SJohn Marino * allocate space for signgam. 37605a0b428SJohn Marino */ 37705a0b428SJohn Marino float gammaf_r(float, int *); 37805a0b428SJohn Marino float lgammaf_r(float, int *); 37905a0b428SJohn Marino 38005a0b428SJohn Marino /* 38105a0b428SJohn Marino * Float version of IEEE Test Vector 38205a0b428SJohn Marino */ 38305a0b428SJohn Marino float significandf(float); 38405a0b428SJohn Marino #endif /* __BSD_VISIBLE */ 38505a0b428SJohn Marino 38605a0b428SJohn Marino /* 38705a0b428SJohn Marino * Long double versions of C99 functions 38805a0b428SJohn Marino */ 38905a0b428SJohn Marino #if __ISO_C_VISIBLE >= 1999 39005a0b428SJohn Marino long double acosl(long double); 39105a0b428SJohn Marino long double asinl(long double); 39205a0b428SJohn Marino long double atanl(long double); 39305a0b428SJohn Marino long double atan2l(long double, long double); 39405a0b428SJohn Marino long double cosl(long double); 39505a0b428SJohn Marino long double sinl(long double); 39605a0b428SJohn Marino long double tanl(long double); 39705a0b428SJohn Marino 39805a0b428SJohn Marino long double acoshl(long double); 39905a0b428SJohn Marino long double asinhl(long double); 40005a0b428SJohn Marino long double atanhl(long double); 40105a0b428SJohn Marino long double coshl(long double); 40205a0b428SJohn Marino long double sinhl(long double); 40305a0b428SJohn Marino long double tanhl(long double); 40405a0b428SJohn Marino 40505a0b428SJohn Marino long double expl(long double); 40605a0b428SJohn Marino long double exp2l(long double); 40705a0b428SJohn Marino long double expm1l(long double); 40805a0b428SJohn Marino long double frexpl(long double, int *); 40905a0b428SJohn Marino int ilogbl(long double); 41005a0b428SJohn Marino long double ldexpl(long double, int); 41105a0b428SJohn Marino long double logl(long double); 41205a0b428SJohn Marino long double log10l(long double); 41305a0b428SJohn Marino long double log1pl(long double); 41405a0b428SJohn Marino long double log2l(long double); 41505a0b428SJohn Marino long double logbl(long double); 41605a0b428SJohn Marino long double modfl(long double, long double *); 41705a0b428SJohn Marino long double scalbnl(long double, int); 41805a0b428SJohn Marino long double scalblnl(long double, long int); 41905a0b428SJohn Marino 42005a0b428SJohn Marino long double cbrtl(long double); 42105a0b428SJohn Marino long double fabsl(long double); 42205a0b428SJohn Marino long double hypotl(long double, long double); 42305a0b428SJohn Marino long double powl(long double, long double); 42405a0b428SJohn Marino long double sqrtl(long double); 42505a0b428SJohn Marino 42605a0b428SJohn Marino long double erfl(long double); 42705a0b428SJohn Marino long double erfcl(long double); 42805a0b428SJohn Marino long double lgammal(long double); 42905a0b428SJohn Marino long double tgammal(long double); 43005a0b428SJohn Marino 43105a0b428SJohn Marino long double ceill(long double); 43205a0b428SJohn Marino long double floorl(long double); 43305a0b428SJohn Marino long double nearbyintl(long double); 43405a0b428SJohn Marino long double rintl(long double); 43505a0b428SJohn Marino long int lrintl(long double); 43605a0b428SJohn Marino long long int llrintl(long double); 43705a0b428SJohn Marino long double roundl(long double); 43805a0b428SJohn Marino long int lroundl(long double); 43905a0b428SJohn Marino long long int llroundl(long double); 44005a0b428SJohn Marino long double truncl(long double); 44105a0b428SJohn Marino 44205a0b428SJohn Marino long double fmodl(long double, long double); 44305a0b428SJohn Marino long double remainderl(long double, long double); 44405a0b428SJohn Marino long double remquol(long double, long double, int *); 44505a0b428SJohn Marino 44605a0b428SJohn Marino long double copysignl(long double, long double); 44705a0b428SJohn Marino long double nanl(const char *); 44805a0b428SJohn Marino long double nextafterl(long double, long double); 44905a0b428SJohn Marino long double nexttowardl(long double, long double); 45005a0b428SJohn Marino 45105a0b428SJohn Marino long double fdiml(long double, long double); 45205a0b428SJohn Marino long double fmaxl(long double, long double); 45305a0b428SJohn Marino long double fminl(long double, long double); 45405a0b428SJohn Marino 45505a0b428SJohn Marino long double fmal(long double, long double, long double); 45605a0b428SJohn Marino #endif /* __ISO_C_VISIBLE >= 1999 */ 45705a0b428SJohn Marino 45805a0b428SJohn Marino /* 45905a0b428SJohn Marino * Library implementation 46005a0b428SJohn Marino */ 46105a0b428SJohn Marino int __fpclassify(double); 46205a0b428SJohn Marino int __fpclassifyf(float); 46305a0b428SJohn Marino int __fpclassifyl(long double); 46405a0b428SJohn Marino int __isfinite(double); 46505a0b428SJohn Marino int __isfinitef(float); 46605a0b428SJohn Marino int __isfinitel(long double); 46705a0b428SJohn Marino int __isinf(double); 46805a0b428SJohn Marino int __isinff(float); 46905a0b428SJohn Marino int __isinfl(long double); 47005a0b428SJohn Marino int __isnan(double); 47105a0b428SJohn Marino int __isnanf(float); 47205a0b428SJohn Marino int __isnanl(long double); 47305a0b428SJohn Marino int __isnormal(double); 47405a0b428SJohn Marino int __isnormalf(float); 47505a0b428SJohn Marino int __isnormall(long double); 47605a0b428SJohn Marino int __signbit(double); 47705a0b428SJohn Marino int __signbitf(float); 47805a0b428SJohn Marino int __signbitl(long double); 47905a0b428SJohn Marino 48005a0b428SJohn Marino #if __BSD_VISIBLE && defined(__vax__) 48105a0b428SJohn Marino double infnan(int); 48205a0b428SJohn Marino #endif /* __BSD_VISIBLE && defined(__vax__) */ 48305a0b428SJohn Marino __END_DECLS 48405a0b428SJohn Marino 48505a0b428SJohn Marino #endif /* !_MATH_H_ */ 486