* config/fpu-387.h (set_fpu): Add "=m" for stmxcsr.
[official-gcc.git] / libgfortran / c99_protos.h
blob8b330b3ecdc8b74dda9e3f7e3e446d7b22bb5716
1 /* Declarations of various C99 functions
2 Copyright (C) 2004 Free Software Foundation, Inc.
4 This file is part of the GNU Fortran 95 runtime library (libgfortran).
6 Libgfortran is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
11 Libgfortran is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU Lesser General Public License for more details.
16 You should have received a copy of the GNU Lesser General Public
17 License along with libgfortran; see the file COPYING.LIB. If not,
18 write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 Boston, MA 02110-1301, USA. */
21 /* As a special exception, if you link this library with other files,
22 some of which are compiled with GCC, to produce an executable,
23 this library does not by itself cause the resulting executable
24 to be covered by the GNU General Public License.
25 This exception does not however invalidate any other reasons why
26 the executable file might be covered by the GNU General Public License. */
29 #ifndef C99_PROTOS_H
30 #define C99_PROTOS_H
32 /* float variants of libm functions */
33 #ifndef HAVE_ACOSF
34 extern float acosf(float);
35 #endif
37 #ifndef HAVE_ACOSHF
38 extern float acoshf(float);
39 #endif
41 #ifndef HAVE_ASINF
42 extern float asinf(float);
43 #endif
45 #ifndef HAVE_ASINHF
46 extern float asinhf(float);
47 #endif
49 #ifndef HAVE_ATAN2F
50 extern float atan2f(float, float);
51 #endif
53 #ifndef HAVE_ATANF
54 extern float atanf(float);
55 #endif
57 #ifndef HAVE_ATANHF
58 extern float atanhf(float);
59 #endif
61 #ifndef HAVE_CEILF
62 extern float ceilf(float);
63 #endif
65 #ifndef HAVE_COPYSIGNF
66 extern float copysignf(float, float);
67 #endif
69 #ifndef HAVE_COSF
70 extern float cosf(float);
71 #endif
73 #ifndef HAVE_COSHF
74 extern float coshf(float);
75 #endif
77 #ifndef HAVE_EXPF
78 extern float expf(float);
79 #endif
81 #ifndef HAVE_FABSF
82 extern float fabsf(float);
83 #endif
85 #ifndef HAVE_FLOORF
86 extern float floorf(float);
87 #endif
89 #ifndef HAVE_FREXPF
90 extern float frexpf(float, int *);
91 #endif
93 #ifndef HAVE_HYPOTF
94 extern float hypotf(float, float);
95 #endif
97 #ifndef HAVE_LOGF
98 extern float logf(float);
99 #endif
101 #ifndef HAVE_LOG10F
102 extern float log10f(float);
103 #endif
105 #ifndef HAVE_SCALBN
106 extern double scalbn(double, int);
107 #endif
109 #ifndef HAVE_SCALBNF
110 extern float scalbnf(float, int);
111 #endif
113 #ifndef HAVE_SINF
114 extern float sinf(float);
115 #endif
117 #ifndef HAVE_SINHF
118 extern float sinhf(float);
119 #endif
121 #ifndef HAVE_SQRTF
122 extern float sqrtf(float);
123 #endif
125 #ifndef HAVE_TANF
126 extern float tanf(float);
127 #endif
129 #ifndef HAVE_TANHF
130 extern float tanhf(float);
131 #endif
133 #ifndef HAVE_TRUNC
134 extern double trunc(double);
135 #endif
137 #ifndef HAVE_TRUNCF
138 extern float truncf(float);
139 #endif
141 #ifndef HAVE_NEXTAFTERF
142 extern float nextafterf(float, float);
143 #endif
145 #ifndef HAVE_POWF
146 extern float powf(float, float);
147 #endif
149 #ifndef HAVE_ROUND
150 extern double round(double);
151 #endif
153 #ifndef HAVE_ROUNDF
154 extern float roundf(float);
155 #endif
158 /* log10l is needed on all platforms for decimal I/O */
159 #ifndef HAVE_LOG10L
160 #define HAVE_LOG10L
161 extern long double log10l(long double);
162 #endif
165 /* complex math functions */
167 #if !defined(HAVE_CABSF)
168 #define HAVE_CABSF
169 extern float cabsf (float complex);
170 #endif
172 #if !defined(HAVE_CABS)
173 #define HAVE_CABS
174 extern double cabs (double complex);
175 #endif
177 #if !defined(HAVE_CABSL) && defined(HAVE_HYPOTL)
178 #define HAVE_CABSL
179 extern long double cabsl (long double complex);
180 #endif
183 #if !defined(HAVE_CARGF)
184 #define HAVE_CARGF
185 extern float cargf (float complex);
186 #endif
188 #if !defined(HAVE_CARG)
189 #define HAVE_CARG
190 extern double carg (double complex);
191 #endif
193 #if !defined(HAVE_CARGL) && defined(HAVE_ATAN2L)
194 #define HAVE_CARGL
195 extern long double cargl (long double complex);
196 #endif
199 #if !defined(HAVE_CEXPF)
200 #define HAVE_CEXPF
201 extern float complex cexpf (float complex);
202 #endif
204 #if !defined(HAVE_CEXP)
205 #define HAVE_CEXP
206 extern double complex cexp (double complex);
207 #endif
209 #if !defined(HAVE_CEXPL) && defined(HAVE_COSL) && defined(HAVE_SINL) && defined(EXPL)
210 #define HAVE_CEXPL
211 extern long double complex cexpl (long double complex);
212 #endif
215 #if !defined(HAVE_CLOGF)
216 #define HAVE_CLOGF
217 extern float complex clogf (float complex);
218 #endif
220 #if !defined(HAVE_CLOG)
221 #define HAVE_CLOG
222 extern double complex clog (double complex);
223 #endif
225 #if !defined(HAVE_CLOGL) && defined(HAVE_LOGL) && defined(HAVE_CABSL) && defined(HAVE_CARGL)
226 #define HAVE_CLOGL
227 extern long double complex clogl (long double complex);
228 #endif
231 #if !defined(HAVE_CLOG10F)
232 #define HAVE_CLOG10F
233 extern float complex clog10f (float complex);
234 #endif
236 #if !defined(HAVE_CLOG10)
237 #define HAVE_CLOG10
238 extern double complex clog10 (double complex);
239 #endif
241 #if !defined(HAVE_CLOG10L) && defined(HAVE_LOG10L) && defined(HAVE_CABSL) && defined(HAVE_CARGL)
242 #define HAVE_CLOG10L
243 extern long double complex clog10l (long double complex);
244 #endif
247 #if !defined(HAVE_CPOWF)
248 #define HAVE_CPOWF
249 extern float complex cpowf (float complex, float complex);
250 #endif
252 #if !defined(HAVE_CPOW)
253 #define HAVE_CPOW
254 extern double complex cpow (double complex, double complex);
255 #endif
257 #if !defined(HAVE_CPOWL) && defined(HAVE_CEXPL) && defined(HAVE_CLOGL)
258 #define HAVE_CPOWL
259 extern long double complex cpowl (long double complex, long double complex);
260 #endif
263 #if !defined(HAVE_CSQRTF)
264 #define HAVE_CSQRTF
265 extern float complex csqrtf (float complex);
266 #endif
268 #if !defined(HAVE_CSQRT)
269 #define HAVE_CSQRT
270 extern double complex csqrt (double complex);
271 #endif
273 #if !defined(HAVE_CSQRTL) && defined(HAVE_COPYSIGNL) && defined(HAVE_SQRTL) && defined(HAVE_FABSL) && defined(HAVE_HYPOTL)
274 #define HAVE_CSQRTL
275 extern long double complex csqrtl (long double complex);
276 #endif
279 #if !defined(HAVE_CSINHF)
280 #define HAVE_CSINHF
281 extern float complex csinhf (float complex);
282 #endif
284 #if !defined(HAVE_CSINH)
285 #define HAVE_CSINH
286 extern double complex csinh (double complex);
287 #endif
289 #if !defined(HAVE_CSINHL) && defined(HAVE_COSL) && defined(HAVE_COSHL) && defined(HAVE_SINL) && defined(HAVE_SINHL)
290 #define HAVE_CSINHL
291 extern long double complex csinhl (long double complex);
292 #endif
295 #if !defined(HAVE_CCOSHF)
296 #define HAVE_CCOSHF
297 extern float complex ccoshf (float complex);
298 #endif
300 #if !defined(HAVE_CCOSH)
301 #define HAVE_CCOSH
302 extern double complex ccosh (double complex);
303 #endif
305 #if !defined(HAVE_CCOSHL) && defined(HAVE_COSL) && defined(HAVE_COSHL) && defined(HAVE_SINL) && defined(HAVE_SINHL)
306 #define HAVE_CCOSHL
307 extern long double complex ccoshl (long double complex);
308 #endif
311 #if !defined(HAVE_CTANHF)
312 #define HAVE_CTANHF
313 extern float complex ctanhf (float complex);
314 #endif
316 #if !defined(HAVE_CTANH)
317 #define HAVE_CTANH
318 extern double complex ctanh (double complex);
319 #endif
321 #if !defined(HAVE_CTANHL) && defined(HAVE_TANL) && defined(HAVE_TANHL)
322 #define HAVE_CTANHL
323 extern long double complex ctanhl (long double complex);
324 #endif
327 #if !defined(HAVE_CSINF)
328 #define HAVE_CSINF
329 extern float complex csinf (float complex);
330 #endif
332 #if !defined(HAVE_CSIN)
333 #define HAVE_CSIN
334 extern double complex csin (double complex);
335 #endif
337 #if !defined(HAVE_CSINL) && defined(HAVE_COSL) && defined(HAVE_COSHL) && defined(HAVE_SINL) && defined(HAVE_SINHL)
338 #define HAVE_CSINL
339 extern long double complex csinl (long double complex);
340 #endif
343 #if !defined(HAVE_CCOSF)
344 #define HAVE_CCOSF
345 extern float complex ccosf (float complex);
346 #endif
348 #if !defined(HAVE_CCOS)
349 #define HAVE_CCOS
350 extern double complex ccos (double complex);
351 #endif
353 #if !defined(HAVE_CCOSL) && defined(HAVE_COSL) && defined(HAVE_COSHL) && defined(HAVE_SINL) && defined(HAVE_SINHL)
354 #define HAVE_CCOSL
355 extern long double complex ccosl (long double complex);
356 #endif
359 #if !defined(HAVE_CTANF)
360 #define HAVE_CTANF
361 extern float complex ctanf (float complex);
362 #endif
364 #if !defined(HAVE_CTAN)
365 #define HAVE_CTAN
366 extern double complex ctan (double complex);
367 #endif
369 #if !defined(HAVE_CTANL) && defined(HAVE_TANL) && defined(HAVE_TANHL)
370 #define HAVE_CTANL
371 extern long double complex ctanl (long double complex);
372 #endif
375 #endif /* C99_PROTOS_H */