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

Last change on this file since 791 was 791, checked in by bird, 22 years ago

abs() and labs() changes related to stdlib.h migration.

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