rune support from Paul Borman
[unix-history] / usr / src / include / math.h
CommitLineData
6affdc2b 1/*
87cea26c 2 * Copyright (c) 1985, 1990 The Regents of the University of California.
6affdc2b
KB
3 * All rights reserved.
4 *
863005e5 5 * %sccs.include.redist.c%
6affdc2b 6 *
607754d7 7 * @(#)math.h 5.10 (Berkeley) %G%
6affdc2b 8 */
d60db641 9
5ffbda5f
DS
10#ifndef _MATH_H_
11#define _MATH_H_
12
87cea26c
KB
13#if defined(vax) || defined(tahoe) /* DBL_MAX from float.h */
14#define HUGE_VAL 1.701411834604692294E+38
4bbf6817 15#else
6b421bf6 16#define HUGE_VAL 1e500 /* IEEE: positive infinity */
4bbf6817
DS
17#endif
18
19#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
87cea26c
KB
20#if defined(vax) || defined(tahoe)
21/*
22 * HUGE for the VAX and Tahoe converts to the largest possible F-float value.
23 * This implies an understanding of the conversion behavior of atof(3). It
24 * was defined to be the largest float so that overflow didn't occur when it
25 * was assigned to a single precision number. HUGE_VAL is strongly preferred.
26 */
27#define HUGE 1.701411733192644270E+38
28#else
f32d3214 29#define HUGE HUGE_VAL
4bbf6817 30#endif
6affdc2b 31
6b421bf6
KB
32#define M_E 2.7182818284590452354 /* e */
33#define M_LOG2E 1.4426950408889634074 /* log 2e */
34#define M_LOG10E 0.43429448190325182765 /* log 10e */
35#define M_LN2 0.69314718055994530942 /* log e2 */
36#define M_LN10 2.30258509299404568402 /* log e10 */
37#define M_PI 3.14159265358979323846 /* pi */
38#define M_PI_2 1.57079632679489661923 /* pi/2 */
39#define M_PI_4 0.78539816339744830962 /* pi/4 */
40#define M_1_PI 0.31830988618379067154 /* 1/pi */
41#define M_2_PI 0.63661977236758134308 /* 2/pi */
42#define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */
43#define M_SQRT2 1.41421356237309504880 /* sqrt(2) */
44#define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */
607754d7 45#endif /* !_ANSI_SOURCE && !_POSIX_SOURCE */
6b421bf6 46
4bbf6817 47#include <sys/cdefs.h>
6affdc2b 48
4bbf6817 49__BEGIN_DECLS
26424332
CT
50__pure double acos __P((double));
51__pure double asin __P((double));
52__pure double atan __P((double));
53__pure double atan2 __P((double, double));
54__pure double ceil __P((double));
55__pure double cos __P((double));
56__pure double cosh __P((double));
57__pure double exp __P((double));
58__pure double fabs __P((double));
59__pure double floor __P((double));
60__pure double fmod __P((double, double));
61 double frexp __P((double, int *));
62__pure double ldexp __P((double, int));
63__pure double log __P((double));
64__pure double log10 __P((double));
65 double modf __P((double, double *));
66__pure double pow __P((double, double));
67__pure double sin __P((double));
68__pure double sinh __P((double));
69__pure double sqrt __P((double));
70__pure double tan __P((double));
71__pure double tanh __P((double));
d60db641 72
4bbf6817 73#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
26424332
CT
74__pure double acosh __P((double));
75__pure double asinh __P((double));
76__pure double atanh __P((double));
77 double cabs(); /* we can't describe cabs()'s argument properly */
78__pure double cbrt __P((double));
79__pure double copysign __P((double, double));
80__pure double drem __P((double, double));
81__pure double erf __P((double));
82__pure double erfc __P((double));
83__pure double expm1 __P((double));
84__pure int finite __P((double));
85__pure double hypot __P((double, double));
91befe9c 86#if defined(vax) || defined(tahoe)
26424332 87__pure double infnan __P((int));
4bbf6817 88#endif
26424332
CT
89__pure int isinf __P((double));
90__pure int isnan __P((double));
91__pure double j0 __P((double));
92__pure double j1 __P((double));
93__pure double jn __P((int, double));
94__pure double lgamma __P((double));
95__pure double log1p __P((double));
96__pure double logb __P((double));
97__pure double rint __P((double));
98__pure double scalb __P((double, int));
99__pure double y0 __P((double));
100__pure double y1 __P((double));
101__pure double yn __P((int, double));
91befe9c 102#endif
4bbf6817
DS
103
104__END_DECLS
5ffbda5f
DS
105
106#endif /* _MATH_H_ */