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

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

@unixroot. header reviews. ++

  • Property cvs2svn:cvs-rev set to 1.5
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 5.8 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#if !defined (_ABS_DECLARED) && !defined(_LABS_DECLARED) /* see also stdlib.h */
147#define _ABS_DECLARED
148#define _LABS_DECLARED
149#if !defined (__GNUC__) || __GNUC__ >= 2
150extern int abs (int);
151extern long labs (long);
152#else
153extern __inline__ int abs (int _n) { return (_n < 0 ? -_n : _n); }
154extern __inline__ long labs (long _n) { return (_n < 0 ? -_n : _n); }
155#endif
156#endif
157
158#endif
159
160
161#if !defined (__STRICT_ANSI__) || defined (_WITH_UNDERSCORE)
162
163#define _HUGE_VALF 1e9999F
164#define _HUGE_VALL 1e9999L
165#define _INFINITY 1e9999 /* TODO: float_t */
166#define _NAN (0.0/0.0) /* TODO: Exceptions, float_t */
167
168#define _LHUGE_VAL _HUGE_VALL
169#define _LHUGE _HUGE_VALL
170
171
172float _copysignf (float, float);
173double _copysign (double, double);
174long double _copysignl (long double, long double);
175
176float _nextafterf (float, float);
177double _nextafter (double, double);
178long double _nextafterl (long double, long double);
179
180long double _acosl (long double);
181long double _asinl (long double);
182long double _atanl (long double);
183long double _atan2l (long double, long double);
184long double _atofl (__const__ char *);
185long double _cbrtl (long double);
186long double _ceill (long double);
187long double _cosl (long double);
188long double _coshl (long double);
189long double _hypotl (long double, long double);
190long double _expl (long double);
191long double _fabsl (long double);
192long double _floorl (long double);
193long double _fmodl (long double, long double);
194long double _frexpl (long double, int *);
195long double _ldexpl (long double, int);
196long double _logl (long double);
197long double _log10l (long double);
198long double _modfl (long double, long double *);
199long double _powl (long double, long double);
200long double _rintl (long double);
201long double _sinl (long double);
202long double _sinhl (long double);
203long double _sqrtl (long double);
204long double _tanl (long double);
205long double _tanhl (long double);
206long double _truncl (long double);
207
208#endif
209
210
211#if defined (__cplusplus)
212}
213#endif
214
215#endif /* not _MATH_H */
Note: See TracBrowser for help on using the repository browser.