source: trunk/src/emx/include/math.h@ 1693

Last change on this file since 1693 was 1693, checked in by bird, 21 years ago

BSD cleanup. rand() and stuff.

  • Property cvs2svn:cvs-rev set to 1.6
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 5.4 KB
Line 
1/* math.h,v 1.5 2004/09/14 22:27:34 bird Exp */
2/** @file
3 * EMX
4 * @todo This needs C99 attention!
5 */
6
7#ifndef _MATH_H
8#define _MATH_H
9
10#if defined (__cplusplus)
11extern "C" {
12#endif
13
14#define HUGE_VAL 1e9999
15
16double acos (double);
17double asin (double);
18double atan (double);
19double atan2 (double, double);
20double cbrt (double);
21double ceil (double);
22double cos (double);
23double cosh (double);
24double exp (double);
25double fabs (double);
26double floor (double);
27double fmod (double, double);
28double frexp (double, int *);
29double hypot (double, double);
30double ldexp (double, int);
31double log (double);
32double log10 (double);
33double modf (double, double *);
34double pow (double, double);
35double rint (double);
36double sin (double);
37double sinh (double);
38double sqrt (double);
39double tan (double);
40double tanh (double);
41double trunc (double);
42
43#if !defined (__NO_C9X)
44
45#define HUGE_VALF 1e9999F
46#define HUGE_VALL 1e9999L
47#define INFINITY 1e9999 /* TODO: float_t */
48#define NAN (0.0/0.0) /* TODO: Exceptions, float_t */
49
50#define DECIMAL_DIG 21
51
52#define FP_ZERO 0
53#define FP_SUBNORMAL 1
54#define FP_NORMAL 2
55#define FP_INFINITE 3
56#define FP_NAN 4
57
58#define fpclassify(x) \
59 ((sizeof (x) == sizeof (float)) ? __fpclassifyf (x) \
60 : (sizeof (x) == sizeof (double)) ? __fpclassify (x) \
61 : __fpclassifyl (x))
62
63#define signbit(x) \
64 ((sizeof (x) == sizeof (float)) ? __signbitf (x) \
65 : (sizeof (x) == sizeof (double)) ? __signbit (x) \
66 : __signbitl (x))
67
68#define isfinite(x) \
69 ((sizeof (x) == sizeof (float)) ? __isfinitef (x) \
70 : (sizeof (x) == sizeof (double)) ? __isfinite (x) \
71 : __isfinitel (x))
72
73#define isnormal(x) \
74 ((sizeof (x) == sizeof (float)) ? __isnormalf (x) \
75 : (sizeof (x) == sizeof (double)) ? __isnormal (x) \
76 : __isnormall (x))
77
78#define isnan(x) \
79 ((sizeof (x) == sizeof (float)) ? __isnanf (x) \
80 : (sizeof (x) == sizeof (double)) ? __isnan (x) \
81 : __isnanl (x))
82
83float copysignf (float, float);
84double copysign (double, double);
85long double copysignl (long double, long double);
86
87float nextafterf (float, float);
88double nextafter (double, double);
89long double nextafterl (long double, long double);
90
91long double acosl (long double);
92long double asinl (long double);
93long double atanl (long double);
94long double atan2l (long double, long double);
95long double cbrtl (long double);
96long double ceill (long double);
97long double cosl (long double);
98long double coshl (long double);
99long double expl (long double);
100long double fabsl (long double);
101long double floorl (long double);
102long double fmodl (long double, long double);
103long double frexpl (long double, int *);
104long double hypotl (long double, long double);
105long double ldexpl (long double, int);
106long double logl (long double);
107long double log10l (long double);
108long double modfl (long double, long double *);
109long double powl (long double, long double);
110long double rintl (long double);
111long double sinl (long double);
112long double sinhl (long double);
113long double sqrtl (long double);
114long double tanl (long double);
115long double tanhl (long double);
116long double truncl (long double);
117
118int __fpclassify (double);
119int __fpclassifyf (float);
120int __fpclassifyl (long double);
121
122int __signbit (double);
123int __signbitf (float);
124int __signbitl (long double);
125
126int __isfinite (double);
127int __isfinitef (float);
128int __isfinitel (long double);
129
130int __isnormal (double);
131int __isnormalf (float);
132int __isnormall (long double);
133
134int __isnan (double);
135int __isnanf (float);
136int __isnanl (long double);
137
138#endif
139
140#if !defined (__STRICT_ANSI__)
141
142#define HUGE HUGE_VAL
143
144double atof (__const__ char *);
145
146#endif
147
148
149#if !defined (__STRICT_ANSI__) || defined (_WITH_UNDERSCORE)
150
151#define _HUGE_VALF 1e9999F
152#define _HUGE_VALL 1e9999L
153#define _INFINITY 1e9999 /* TODO: float_t */
154#define _NAN (0.0/0.0) /* TODO: Exceptions, float_t */
155
156#define _LHUGE_VAL _HUGE_VALL
157#define _LHUGE _HUGE_VALL
158
159
160float _copysignf (float, float);
161double _copysign (double, double);
162long double _copysignl (long double, long double);
163
164float _nextafterf (float, float);
165double _nextafter (double, double);
166long double _nextafterl (long double, long double);
167
168long double _acosl (long double);
169long double _asinl (long double);
170long double _atanl (long double);
171long double _atan2l (long double, long double);
172long double _atofl (__const__ char *);
173long double _cbrtl (long double);
174long double _ceill (long double);
175long double _cosl (long double);
176long double _coshl (long double);
177long double _hypotl (long double, long double);
178long double _expl (long double);
179long double _fabsl (long double);
180long double _floorl (long double);
181long double _fmodl (long double, long double);
182long double _frexpl (long double, int *);
183long double _ldexpl (long double, int);
184long double _logl (long double);
185long double _log10l (long double);
186long double _modfl (long double, long double *);
187long double _powl (long double, long double);
188long double _rintl (long double);
189long double _sinl (long double);
190long double _sinhl (long double);
191long double _sqrtl (long double);
192long double _tanl (long double);
193long double _tanhl (long double);
194long double _truncl (long double);
195
196#endif
197
198
199#if defined (__cplusplus)
200}
201#endif
202
203#endif /* not _MATH_H */
Note: See TracBrowser for help on using the repository browser.