]> git.ipfire.org Git - thirdparty/gcc.git/blame - libgfortran/c99_protos.h
libgfortran: Provide some further math library fallbacks [PR94694]
[thirdparty/gcc.git] / libgfortran / c99_protos.h
CommitLineData
6e4d9244 1/* Declarations of various C99 functions
8d9254fc 2 Copyright (C) 2004-2020 Free Software Foundation, Inc.
6e4d9244
EB
3
4This file is part of the GNU Fortran 95 runtime library (libgfortran).
5
748086b7
JJ
6Libgfortran is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 3, or (at your option)
9any later version.
6e4d9244
EB
10
11Libgfortran is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
748086b7 14GNU General Public License for more details.
6e4d9244 15
748086b7
JJ
16Under Section 7 of GPL version 3, you are granted additional
17permissions described in the GCC Runtime Library Exception, version
183.1, as published by the Free Software Foundation.
57dea9f6 19
748086b7
JJ
20You should have received a copy of the GNU General Public License and
21a copy of the GCC Runtime Library Exception along with this program;
22see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
23<http://www.gnu.org/licenses/>. */
6e4d9244
EB
24
25#ifndef C99_PROTOS_H
2cdc88b6 26#define C99_PROTOS_H 1
6e4d9244 27
1409cd0b 28/* float variants of libm functions */
6e4d9244 29#ifndef HAVE_ACOSF
2cdc88b6 30#define HAVE_ACOSF 1
6e4d9244
EB
31extern float acosf(float);
32#endif
33
22ae47e2 34#if HAVE_ACOSH && !HAVE_ACOSHF
2cdc88b6 35#define HAVE_ACOSHF 1
f02d008e
JD
36extern float acoshf(float);
37#endif
38
6e4d9244 39#ifndef HAVE_ASINF
2cdc88b6 40#define HAVE_ASINF 1
6e4d9244
EB
41extern float asinf(float);
42#endif
43
22ae47e2 44#if HAVE_ASINH && !HAVE_ASINHF
2cdc88b6 45#define HAVE_ASINHF 1
f02d008e
JD
46extern float asinhf(float);
47#endif
48
6e4d9244 49#ifndef HAVE_ATAN2F
2cdc88b6 50#define HAVE_ATAN2F 1
6e4d9244
EB
51extern float atan2f(float, float);
52#endif
53
54#ifndef HAVE_ATANF
2cdc88b6 55#define HAVE_ATANF 1
6e4d9244
EB
56extern float atanf(float);
57#endif
58
22ae47e2 59#if HAVE_ATANH && !HAVE_ATANHF
2cdc88b6 60#define HAVE_ATANHF 1
f02d008e
JD
61extern float atanhf(float);
62#endif
63
6e4d9244 64#ifndef HAVE_CEILF
2cdc88b6 65#define HAVE_CEILF 1
6e4d9244
EB
66extern float ceilf(float);
67#endif
68
69#ifndef HAVE_COPYSIGNF
2cdc88b6 70#define HAVE_COPYSIGNF 1
6e4d9244
EB
71extern float copysignf(float, float);
72#endif
73
1868599f
JJ
74#if !defined(HAVE_COPYSIGN) && defined(HAVE_INLINE_BUILTIN_COPYSIGN)
75#define HAVE_COPYSIGN 1
76extern double copysign(double, double);
77#endif
78
79#if !defined(HAVE_COPYSIGNL) && defined(HAVE_INLINE_BUILTIN_COPYSIGNL)
80#define HAVE_COPYSIGNL 1
81extern long double copysignl(long double, long double);
82#endif
83
6e4d9244 84#ifndef HAVE_COSF
2cdc88b6 85#define HAVE_COSF 1
6e4d9244
EB
86extern float cosf(float);
87#endif
88
89#ifndef HAVE_COSHF
2cdc88b6 90#define HAVE_COSHF 1
6e4d9244
EB
91extern float coshf(float);
92#endif
93
94#ifndef HAVE_EXPF
2cdc88b6 95#define HAVE_EXPF 1
6e4d9244
EB
96extern float expf(float);
97#endif
98
99#ifndef HAVE_FABSF
2cdc88b6 100#define HAVE_FABSF 1
6e4d9244
EB
101extern float fabsf(float);
102#endif
103
1868599f
JJ
104#if !defined(HAVE_FABS) && defined(HAVE_INLINE_BUILTIN_FABS)
105#define HAVE_FABS 1
106extern double fabs(double);
107#endif
108
109#if !defined(HAVE_FABSL) && defined(HAVE_INLINE_BUILTIN_FABSL)
110#define HAVE_FABSL 1
111extern long double fabsl(long double);
112#endif
113
6e4d9244 114#ifndef HAVE_FLOORF
2cdc88b6 115#define HAVE_FLOORF 1
6e4d9244
EB
116extern float floorf(float);
117#endif
118
eb647f7d
FXC
119#ifndef HAVE_FLOORL
120#define HAVE_FLOORL 1
121extern long double floorl (long double x);
122#endif
123
124#ifndef HAVE_FMODF
125#define HAVE_FMODF 1
126extern float fmodf (float x, float y);
127#endif
128
129#ifndef HAVE_FMODL
130#define HAVE_FMODL 1
131extern long double fmodl (long double x, long double y);
132#endif
133
6e4d9244 134#ifndef HAVE_FREXPF
2cdc88b6 135#define HAVE_FREXPF 1
6e4d9244
EB
136extern float frexpf(float, int *);
137#endif
138
139#ifndef HAVE_HYPOTF
2cdc88b6 140#define HAVE_HYPOTF 1
6e4d9244
EB
141extern float hypotf(float, float);
142#endif
143
144#ifndef HAVE_LOGF
2cdc88b6 145#define HAVE_LOGF 1
6e4d9244
EB
146extern float logf(float);
147#endif
148
149#ifndef HAVE_LOG10F
2cdc88b6 150#define HAVE_LOG10F 1
6e4d9244
EB
151extern float log10f(float);
152#endif
153
ae973d6a 154#ifndef HAVE_SCALBN
2cdc88b6 155#define HAVE_SCALBN 1
ae973d6a
FXC
156extern double scalbn(double, int);
157#endif
158
6e4d9244 159#ifndef HAVE_SCALBNF
2cdc88b6 160#define HAVE_SCALBNF 1
6e4d9244
EB
161extern float scalbnf(float, int);
162#endif
163
164#ifndef HAVE_SINF
2cdc88b6 165#define HAVE_SINF 1
6e4d9244
EB
166extern float sinf(float);
167#endif
168
169#ifndef HAVE_SINHF
2cdc88b6 170#define HAVE_SINHF 1
6e4d9244
EB
171extern float sinhf(float);
172#endif
173
174#ifndef HAVE_SQRTF
2cdc88b6 175#define HAVE_SQRTF 1
6e4d9244
EB
176extern float sqrtf(float);
177#endif
178
179#ifndef HAVE_TANF
2cdc88b6 180#define HAVE_TANF 1
6e4d9244
EB
181extern float tanf(float);
182#endif
183
184#ifndef HAVE_TANHF
2cdc88b6 185#define HAVE_TANHF 1
6e4d9244
EB
186extern float tanhf(float);
187#endif
188
69a2d125 189#ifndef HAVE_TRUNC
2cdc88b6 190#define HAVE_TRUNC 1
1409cd0b 191extern double trunc(double);
69a2d125
EB
192#endif
193
194#ifndef HAVE_TRUNCF
2cdc88b6 195#define HAVE_TRUNCF 1
1409cd0b 196extern float truncf(float);
69a2d125
EB
197#endif
198
6e4d9244 199#ifndef HAVE_NEXTAFTERF
2cdc88b6 200#define HAVE_NEXTAFTERF 1
6e4d9244
EB
201extern float nextafterf(float, float);
202#endif
203
204#ifndef HAVE_POWF
2cdc88b6 205#define HAVE_POWF 1
6e4d9244
EB
206extern float powf(float, float);
207#endif
208
209#ifndef HAVE_ROUND
2cdc88b6 210#define HAVE_ROUND 1
6e4d9244
EB
211extern double round(double);
212#endif
213
214#ifndef HAVE_ROUNDF
2cdc88b6 215#define HAVE_ROUNDF 1
6e4d9244
EB
216extern float roundf(float);
217#endif
218
c120ef14 219#if !defined(HAVE_ROUNDL)
94f548c2
FXC
220#define HAVE_ROUNDL 1
221extern long double roundl(long double);
222#endif
223
224
225
226#if !defined(HAVE_LROUNDF) && defined(HAVE_ROUNDF)
227#define HAVE_LROUNDF 1
228long int lroundf (float);
229#endif
230
231#if !defined(HAVE_LROUND) && defined(HAVE_ROUND)
232#define HAVE_LROUND 1
233long int lround (double);
234#endif
235
236#if !defined(HAVE_LROUNDL) && defined(HAVE_ROUNDL)
237#define HAVE_LROUNDL 1
238long int lroundl (long double);
239#endif
240
241#if !defined(HAVE_LLROUNDF) && defined(HAVE_ROUNDF)
242#define HAVE_LLROUNDF 1
243long long int llroundf (float);
244#endif
245
246#if !defined(HAVE_LLROUND) && defined(HAVE_ROUND)
247#define HAVE_LLROUND 1
248long long int llround (double);
249#endif
250
251#if !defined(HAVE_LLROUNDL) && defined(HAVE_ROUNDL)
252#define HAVE_LLROUNDL 1
253long long int llroundl (long double);
254#endif
255
7afebb02
FXC
256/* Wrappers for systems without the various C99 single precision Bessel
257 functions. */
258
259#if defined(HAVE_J0) && ! defined(HAVE_J0F)
260#define HAVE_J0F 1
261extern float j0f (float);
262#endif
263
264#if defined(HAVE_J1) && !defined(HAVE_J1F)
265#define HAVE_J1F 1
266extern float j1f (float);
267#endif
268
269#if defined(HAVE_JN) && !defined(HAVE_JNF)
270#define HAVE_JNF 1
271extern float jnf (int, float);
272#endif
273
274#if defined(HAVE_Y0) && !defined(HAVE_Y0F)
275#define HAVE_Y0F 1
276extern float y0f (float);
277#endif
278
279#if defined(HAVE_Y1) && !defined(HAVE_Y1F)
280#define HAVE_Y1F 1
281extern float y1f (float);
282#endif
283
284#if defined(HAVE_YN) && !defined(HAVE_YNF)
285#define HAVE_YNF 1
286extern float ynf (int, float);
287#endif
288
289
290/* Wrappers for systems without the C99 erff() and erfcf() functions. */
291
292#if defined(HAVE_ERF) && !defined(HAVE_ERFF)
293#define HAVE_ERFF 1
294extern float erff (float);
295#endif
296
297#if defined(HAVE_ERFC) && !defined(HAVE_ERFCF)
298#define HAVE_ERFCF 1
299extern float erfcf (float);
300#endif
301
302
1409cd0b
FXC
303
304/* log10l is needed on all platforms for decimal I/O */
32aa3bff 305#ifndef HAVE_LOG10L
2cdc88b6 306#define HAVE_LOG10L 1
32aa3bff
FXC
307extern long double log10l(long double);
308#endif
309
1409cd0b
FXC
310
311/* complex math functions */
312
313#if !defined(HAVE_CABSF)
2cdc88b6 314#define HAVE_CABSF 1
1409cd0b
FXC
315extern float cabsf (float complex);
316#endif
317
318#if !defined(HAVE_CABS)
2cdc88b6 319#define HAVE_CABS 1
1409cd0b
FXC
320extern double cabs (double complex);
321#endif
322
323#if !defined(HAVE_CABSL) && defined(HAVE_HYPOTL)
2cdc88b6 324#define HAVE_CABSL 1
1409cd0b
FXC
325extern long double cabsl (long double complex);
326#endif
327
328
329#if !defined(HAVE_CARGF)
2cdc88b6 330#define HAVE_CARGF 1
1409cd0b
FXC
331extern float cargf (float complex);
332#endif
333
334#if !defined(HAVE_CARG)
2cdc88b6 335#define HAVE_CARG 1
1409cd0b
FXC
336extern double carg (double complex);
337#endif
338
339#if !defined(HAVE_CARGL) && defined(HAVE_ATAN2L)
2cdc88b6 340#define HAVE_CARGL 1
1409cd0b
FXC
341extern long double cargl (long double complex);
342#endif
343
344
345#if !defined(HAVE_CEXPF)
2cdc88b6 346#define HAVE_CEXPF 1
1409cd0b
FXC
347extern float complex cexpf (float complex);
348#endif
349
350#if !defined(HAVE_CEXP)
2cdc88b6 351#define HAVE_CEXP 1
1409cd0b
FXC
352extern double complex cexp (double complex);
353#endif
354
0751254a 355#if !defined(HAVE_CEXPL) && defined(HAVE_COSL) && defined(HAVE_SINL) && defined(HAVE_EXPL)
2cdc88b6 356#define HAVE_CEXPL 1
1409cd0b
FXC
357extern long double complex cexpl (long double complex);
358#endif
359
360
361#if !defined(HAVE_CLOGF)
2cdc88b6 362#define HAVE_CLOGF 1
1409cd0b
FXC
363extern float complex clogf (float complex);
364#endif
365
366#if !defined(HAVE_CLOG)
2cdc88b6 367#define HAVE_CLOG 1
1409cd0b
FXC
368extern double complex clog (double complex);
369#endif
370
371#if !defined(HAVE_CLOGL) && defined(HAVE_LOGL) && defined(HAVE_CABSL) && defined(HAVE_CARGL)
2cdc88b6 372#define HAVE_CLOGL 1
1409cd0b
FXC
373extern long double complex clogl (long double complex);
374#endif
375
376
377#if !defined(HAVE_CLOG10F)
2cdc88b6 378#define HAVE_CLOG10F 1
1409cd0b
FXC
379extern float complex clog10f (float complex);
380#endif
381
382#if !defined(HAVE_CLOG10)
2cdc88b6 383#define HAVE_CLOG10 1
1409cd0b
FXC
384extern double complex clog10 (double complex);
385#endif
386
387#if !defined(HAVE_CLOG10L) && defined(HAVE_LOG10L) && defined(HAVE_CABSL) && defined(HAVE_CARGL)
2cdc88b6 388#define HAVE_CLOG10L 1
1409cd0b
FXC
389extern long double complex clog10l (long double complex);
390#endif
391
392
393#if !defined(HAVE_CPOWF)
2cdc88b6 394#define HAVE_CPOWF 1
1409cd0b
FXC
395extern float complex cpowf (float complex, float complex);
396#endif
397
398#if !defined(HAVE_CPOW)
2cdc88b6 399#define HAVE_CPOW 1
1409cd0b
FXC
400extern double complex cpow (double complex, double complex);
401#endif
402
403#if !defined(HAVE_CPOWL) && defined(HAVE_CEXPL) && defined(HAVE_CLOGL)
2cdc88b6 404#define HAVE_CPOWL 1
1409cd0b
FXC
405extern long double complex cpowl (long double complex, long double complex);
406#endif
407
408
409#if !defined(HAVE_CSQRTF)
2cdc88b6 410#define HAVE_CSQRTF 1
1409cd0b
FXC
411extern float complex csqrtf (float complex);
412#endif
413
414#if !defined(HAVE_CSQRT)
2cdc88b6 415#define HAVE_CSQRT 1
1409cd0b
FXC
416extern double complex csqrt (double complex);
417#endif
418
419#if !defined(HAVE_CSQRTL) && defined(HAVE_COPYSIGNL) && defined(HAVE_SQRTL) && defined(HAVE_FABSL) && defined(HAVE_HYPOTL)
2cdc88b6 420#define HAVE_CSQRTL 1
1409cd0b
FXC
421extern long double complex csqrtl (long double complex);
422#endif
423
424
425#if !defined(HAVE_CSINHF)
2cdc88b6 426#define HAVE_CSINHF 1
1409cd0b
FXC
427extern float complex csinhf (float complex);
428#endif
429
430#if !defined(HAVE_CSINH)
2cdc88b6 431#define HAVE_CSINH 1
1409cd0b
FXC
432extern double complex csinh (double complex);
433#endif
434
435#if !defined(HAVE_CSINHL) && defined(HAVE_COSL) && defined(HAVE_COSHL) && defined(HAVE_SINL) && defined(HAVE_SINHL)
2cdc88b6 436#define HAVE_CSINHL 1
1409cd0b
FXC
437extern long double complex csinhl (long double complex);
438#endif
439
440
441#if !defined(HAVE_CCOSHF)
2cdc88b6 442#define HAVE_CCOSHF 1
1409cd0b
FXC
443extern float complex ccoshf (float complex);
444#endif
445
446#if !defined(HAVE_CCOSH)
2cdc88b6 447#define HAVE_CCOSH 1
1409cd0b
FXC
448extern double complex ccosh (double complex);
449#endif
450
451#if !defined(HAVE_CCOSHL) && defined(HAVE_COSL) && defined(HAVE_COSHL) && defined(HAVE_SINL) && defined(HAVE_SINHL)
2cdc88b6 452#define HAVE_CCOSHL 1
1409cd0b
FXC
453extern long double complex ccoshl (long double complex);
454#endif
455
456
457#if !defined(HAVE_CTANHF)
2cdc88b6 458#define HAVE_CTANHF 1
1409cd0b
FXC
459extern float complex ctanhf (float complex);
460#endif
461
462#if !defined(HAVE_CTANH)
2cdc88b6 463#define HAVE_CTANH 1
1409cd0b
FXC
464extern double complex ctanh (double complex);
465#endif
466
467#if !defined(HAVE_CTANHL) && defined(HAVE_TANL) && defined(HAVE_TANHL)
2cdc88b6 468#define HAVE_CTANHL 1
1409cd0b
FXC
469extern long double complex ctanhl (long double complex);
470#endif
471
472
473#if !defined(HAVE_CSINF)
2cdc88b6 474#define HAVE_CSINF 1
1409cd0b
FXC
475extern float complex csinf (float complex);
476#endif
477
478#if !defined(HAVE_CSIN)
2cdc88b6 479#define HAVE_CSIN 1
1409cd0b
FXC
480extern double complex csin (double complex);
481#endif
482
483#if !defined(HAVE_CSINL) && defined(HAVE_COSL) && defined(HAVE_COSHL) && defined(HAVE_SINL) && defined(HAVE_SINHL)
2cdc88b6 484#define HAVE_CSINL 1
1409cd0b
FXC
485extern long double complex csinl (long double complex);
486#endif
487
488
489#if !defined(HAVE_CCOSF)
2cdc88b6 490#define HAVE_CCOSF 1
1409cd0b
FXC
491extern float complex ccosf (float complex);
492#endif
493
494#if !defined(HAVE_CCOS)
2cdc88b6 495#define HAVE_CCOS 1
1409cd0b
FXC
496extern double complex ccos (double complex);
497#endif
498
499#if !defined(HAVE_CCOSL) && defined(HAVE_COSL) && defined(HAVE_COSHL) && defined(HAVE_SINL) && defined(HAVE_SINHL)
2cdc88b6 500#define HAVE_CCOSL 1
1409cd0b
FXC
501extern long double complex ccosl (long double complex);
502#endif
503
504
505#if !defined(HAVE_CTANF)
2cdc88b6 506#define HAVE_CTANF 1
1409cd0b
FXC
507extern float complex ctanf (float complex);
508#endif
509
510#if !defined(HAVE_CTAN)
2cdc88b6 511#define HAVE_CTAN 1
1409cd0b
FXC
512extern double complex ctan (double complex);
513#endif
514
515#if !defined(HAVE_CTANL) && defined(HAVE_TANL) && defined(HAVE_TANHL)
2cdc88b6 516#define HAVE_CTANL 1
1409cd0b
FXC
517extern long double complex ctanl (long double complex);
518#endif
519
520
504ed63a
TB
521/* Complex ACOS. */
522
523#if !defined(HAVE_CACOSF) && defined(HAVE_CLOGF) && defined(HAVE_CSQRTF)
524#define HAVE_CACOSF 1
525extern complex float cacosf (complex float z);
526#endif
527
528#if !defined(HAVE_CACOS) && defined(HAVE_CLOG) && defined(HAVE_CSQRT)
529#define HAVE_CACOS 1
530extern complex double cacos (complex double z);
531#endif
532
533#if !defined(HAVE_CACOSL) && defined(HAVE_CLOGL) && defined(HAVE_CSQRTL)
534#define HAVE_CACOSL 1
535extern complex long double cacosl (complex long double z);
536#endif
537
538
539/* Complex ASIN. */
540
541#if !defined(HAVE_CASINF) && defined(HAVE_CLOGF) && defined(HAVE_CSQRTF)
542#define HAVE_CASINF 1
543extern complex float casinf (complex float z);
544#endif
545
546#if !defined(HAVE_CASIN) && defined(HAVE_CLOG) && defined(HAVE_CSQRT)
547#define HAVE_CASIN 1
548extern complex double casin (complex double z);
549#endif
550
551#if !defined(HAVE_CASINL) && defined(HAVE_CLOGL) && defined(HAVE_CSQRTL)
552#define HAVE_CASINL 1
553extern complex long double casinl (complex long double z);
554#endif
555
556
557/* Complex ATAN. */
558
559#if !defined(HAVE_CATANF) && defined(HAVE_CLOGF)
560#define HAVE_CATANF 1
561extern complex float catanf (complex float z);
562#endif
563
564#if !defined(HAVE_CATAN) && defined(HAVE_CLOG)
565#define HAVE_CATAN 1
566extern complex double catan (complex double z);
567#endif
568
569#if !defined(HAVE_CATANL) && defined(HAVE_CLOGL)
570#define HAVE_CATANL 1
571extern complex long double catanl (complex long double z);
572#endif
573
574
575/* Complex ASINH. */
576
577#if !defined(HAVE_CASINHF) && defined(HAVE_CLOGF) && defined(HAVE_CSQRTF)
578#define HAVE_CASINHF 1
579extern complex float casinhf (complex float z);
580#endif
581
582
583#if !defined(HAVE_CASINH) && defined(HAVE_CLOG) && defined(HAVE_CSQRT)
584#define HAVE_CASINH 1
585extern complex double casinh (complex double z);
586#endif
587
588#if !defined(HAVE_CASINHL) && defined(HAVE_CLOGL) && defined(HAVE_CSQRTL)
589#define HAVE_CASINHL 1
590extern complex long double casinhl (complex long double z);
591#endif
592
593
594/* Complex ACOSH. */
595
596#if !defined(HAVE_CACOSHF) && defined(HAVE_CLOGF) && defined(HAVE_CSQRTF)
597#define HAVE_CACOSHF 1
598extern complex float cacoshf (complex float z);
599#endif
600
601#if !defined(HAVE_CACOSH) && defined(HAVE_CLOG) && defined(HAVE_CSQRT)
602#define HAVE_CACOSH 1
603extern complex double cacosh (complex double z);
604#endif
605
606#if !defined(HAVE_CACOSHL) && defined(HAVE_CLOGL) && defined(HAVE_CSQRTL)
607#define HAVE_CACOSHL 1
608extern complex long double cacoshl (complex long double z);
609#endif
610
611
612/* Complex ATANH. */
613
614#if !defined(HAVE_CATANHF) && defined(HAVE_CLOGF)
615#define HAVE_CATANHF 1
616extern complex float catanhf (complex float z);
617#endif
618
619#if !defined(HAVE_CATANH) && defined(HAVE_CLOG)
620#define HAVE_CATANH 1
621extern complex double catanh (complex double z);
622#endif
623
624#if !defined(HAVE_CATANHL) && defined(HAVE_CLOGL)
625#define HAVE_CATANHL 1
626extern complex long double catanhl (complex long double z);
627#endif
628
629
fb0a0e15
FXC
630/* Gamma-related prototypes. */
631#if !defined(HAVE_TGAMMA)
632#define HAVE_TGAMMA 1
633extern double tgamma (double);
634#endif
635
636#if !defined(HAVE_LGAMMA)
637#define HAVE_LGAMMA 1
638extern double lgamma (double);
639#endif
640
641#if defined(HAVE_TGAMMA) && !defined(HAVE_TGAMMAF)
642#define HAVE_TGAMMAF 1
643extern float tgammaf (float);
644#endif
645
646#if defined(HAVE_LGAMMA) && !defined(HAVE_LGAMMAF)
647#define HAVE_LGAMMAF 1
648extern float lgammaf (float);
649#endif
650
1868599f
JJ
651#ifndef HAVE_FMA
652#define HAVE_FMA 1
653extern double fma(double, double, double);
654#endif
655
656#ifndef HAVE_FMAF
657#define HAVE_FMAF 1
658extern float fmaf(float, float, float);
659#endif
660
661#ifndef HAVE_FMAL
662#define HAVE_FMAL 1
663extern long double fmal(long double, long double, long double);
664#endif
fb0a0e15 665
6e4d9244
EB
666#endif /* C99_PROTOS_H */
667