minix/include/math.h
2011-02-28 11:01:31 +00:00

104 lines
3.7 KiB
C

/* The <math.h> header contains prototypes for mathematical functions. */
#ifndef _MATH_H
#define _MATH_H
#ifndef _MINIX_ANSI_H
#include <minix/ansi.h>
#endif
#define INFINITY (__infinity())
#define NAN (__qnan())
#define HUGE_VAL INFINITY
/* Function Prototypes. */
_PROTOTYPE( double __infinity, (void) );
_PROTOTYPE( double __qnan, (void) );
_PROTOTYPE( double acos, (double _x) );
_PROTOTYPE( double asin, (double _x) );
_PROTOTYPE( double atan, (double _x) );
_PROTOTYPE( double atan2, (double _y, double _x) );
_PROTOTYPE( double ceil, (double _x) );
_PROTOTYPE( double cos, (double _x) );
_PROTOTYPE( double cosh, (double _x) );
_PROTOTYPE( double exp, (double _x) );
_PROTOTYPE( double fabs, (double _x) );
_PROTOTYPE( float fabsf, (float _x) );
_PROTOTYPE( double floor, (double _x) );
_PROTOTYPE( double fmod, (double _x, double _y) );
_PROTOTYPE( double frexp, (double _x, int *_exp) );
_PROTOTYPE( double ldexp, (double _x, int _exp) );
_PROTOTYPE( double log, (double _x) );
_PROTOTYPE( double log10, (double _x) );
_PROTOTYPE( double modf, (double _x, double *_iptr) );
_PROTOTYPE( double pow, (double _x, double _y) );
_PROTOTYPE( double rint, (double _x) );
_PROTOTYPE( double scalbn, (double _x, int _exp) );
_PROTOTYPE( float scalbnf, (float _x, int _exp) );
_PROTOTYPE( double scalbln, (double _x, long _exp) );
_PROTOTYPE( float scalblnf, (float _x, long _exp) );
_PROTOTYPE( double sin, (double _x) );
_PROTOTYPE( double sinh, (double _x) );
_PROTOTYPE( double sqrt, (double _x) );
_PROTOTYPE( double tan, (double _x) );
_PROTOTYPE( double tanh, (double _x) );
_PROTOTYPE( double hypot, (double _x, double _y) );
#ifdef _POSIX_SOURCE /* STD-C? */
#include <mathconst.h>
#define FP_INFINITE 1
#define FP_NAN 2
#define FP_NORMAL 3
#define FP_SUBNORMAL 4
#define FP_ZERO 5
_PROTOTYPE( int fpclassify, (double x) );
_PROTOTYPE( int isfinite, (double x) );
_PROTOTYPE( int isinf, (double x) );
_PROTOTYPE( int isnan, (double x) );
_PROTOTYPE( int isnormal, (double x) );
_PROTOTYPE( int signbit, (double x) );
_PROTOTYPE( int isgreater, (double x, double y) );
_PROTOTYPE( int isgreaterequal, (double x, double y) );
_PROTOTYPE( int isless, (double x, double y) );
_PROTOTYPE( int islessequal, (double x, double y) );
_PROTOTYPE( int islessgreater, (double x, double y) );
_PROTOTYPE( int isunordered, (double x, double y) );
_PROTOTYPE( double nearbyint, (double x) );
_PROTOTYPE( double remainder, (double x, double y) );
_PROTOTYPE( double trunc, (double x) );
#endif
/* The following definitions are not implemented in the ACK math lib.
* We allow them in the GNU compiler because they are builtins there.
*/
#ifdef __GNUC__
#ifndef __cplusplus
_PROTOTYPE( float powf, (float, float) );
_PROTOTYPE( float fmodf, (float, float) );
_PROTOTYPE( double erf, (double) );
_PROTOTYPE( double erfc, (double) );
_PROTOTYPE( double gamma, (double) );
_PROTOTYPE( double j0, (double) );
_PROTOTYPE( double j1, (double) );
_PROTOTYPE( double jn, (int, double) );
_PROTOTYPE( double lgamma, (double) );
_PROTOTYPE( double y0, (double) );
_PROTOTYPE( double y1, (double) );
_PROTOTYPE( double yn, (int, double) );
_PROTOTYPE( double acosh, (double) );
_PROTOTYPE( double asinh, (double) );
_PROTOTYPE( double atanh, (double) );
_PROTOTYPE( double cbrt, (double) );
_PROTOTYPE( double expm1, (double) );
_PROTOTYPE( int ilogb, (double) );
_PROTOTYPE( double log1p, (double) );
_PROTOTYPE( double logb, (double) );
_PROTOTYPE( double nextafter, (double, double) );
_PROTOTYPE( double scalb, (double, double) );
#endif
#endif
#endif /* _MATH_H */