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

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

Initial revision

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