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