summaryrefslogtreecommitdiff
path: root/libgfortran/c99_protos.h
diff options
context:
space:
mode:
Diffstat (limited to 'libgfortran/c99_protos.h')
-rw-r--r--libgfortran/c99_protos.h219
1 files changed, 217 insertions, 2 deletions
diff --git a/libgfortran/c99_protos.h b/libgfortran/c99_protos.h
index a42380de670..8b330b3ecdc 100644
--- a/libgfortran/c99_protos.h
+++ b/libgfortran/c99_protos.h
@@ -29,6 +29,7 @@ Boston, MA 02110-1301, USA. */
#ifndef C99_PROTOS_H
#define C99_PROTOS_H
+/* float variants of libm functions */
#ifndef HAVE_ACOSF
extern float acosf(float);
#endif
@@ -130,11 +131,11 @@ extern float tanhf(float);
#endif
#ifndef HAVE_TRUNC
-extern double trunc(double x);
+extern double trunc(double);
#endif
#ifndef HAVE_TRUNCF
-extern float truncf(float x);
+extern float truncf(float);
#endif
#ifndef HAVE_NEXTAFTERF
@@ -153,9 +154,223 @@ extern double round(double);
extern float roundf(float);
#endif
+
+/* log10l is needed on all platforms for decimal I/O */
#ifndef HAVE_LOG10L
+#define HAVE_LOG10L
extern long double log10l(long double);
#endif
+
+/* complex math functions */
+
+#if !defined(HAVE_CABSF)
+#define HAVE_CABSF
+extern float cabsf (float complex);
+#endif
+
+#if !defined(HAVE_CABS)
+#define HAVE_CABS
+extern double cabs (double complex);
+#endif
+
+#if !defined(HAVE_CABSL) && defined(HAVE_HYPOTL)
+#define HAVE_CABSL
+extern long double cabsl (long double complex);
+#endif
+
+
+#if !defined(HAVE_CARGF)
+#define HAVE_CARGF
+extern float cargf (float complex);
+#endif
+
+#if !defined(HAVE_CARG)
+#define HAVE_CARG
+extern double carg (double complex);
+#endif
+
+#if !defined(HAVE_CARGL) && defined(HAVE_ATAN2L)
+#define HAVE_CARGL
+extern long double cargl (long double complex);
+#endif
+
+
+#if !defined(HAVE_CEXPF)
+#define HAVE_CEXPF
+extern float complex cexpf (float complex);
+#endif
+
+#if !defined(HAVE_CEXP)
+#define HAVE_CEXP
+extern double complex cexp (double complex);
+#endif
+
+#if !defined(HAVE_CEXPL) && defined(HAVE_COSL) && defined(HAVE_SINL) && defined(EXPL)
+#define HAVE_CEXPL
+extern long double complex cexpl (long double complex);
+#endif
+
+
+#if !defined(HAVE_CLOGF)
+#define HAVE_CLOGF
+extern float complex clogf (float complex);
+#endif
+
+#if !defined(HAVE_CLOG)
+#define HAVE_CLOG
+extern double complex clog (double complex);
+#endif
+
+#if !defined(HAVE_CLOGL) && defined(HAVE_LOGL) && defined(HAVE_CABSL) && defined(HAVE_CARGL)
+#define HAVE_CLOGL
+extern long double complex clogl (long double complex);
+#endif
+
+
+#if !defined(HAVE_CLOG10F)
+#define HAVE_CLOG10F
+extern float complex clog10f (float complex);
+#endif
+
+#if !defined(HAVE_CLOG10)
+#define HAVE_CLOG10
+extern double complex clog10 (double complex);
+#endif
+
+#if !defined(HAVE_CLOG10L) && defined(HAVE_LOG10L) && defined(HAVE_CABSL) && defined(HAVE_CARGL)
+#define HAVE_CLOG10L
+extern long double complex clog10l (long double complex);
+#endif
+
+
+#if !defined(HAVE_CPOWF)
+#define HAVE_CPOWF
+extern float complex cpowf (float complex, float complex);
+#endif
+
+#if !defined(HAVE_CPOW)
+#define HAVE_CPOW
+extern double complex cpow (double complex, double complex);
+#endif
+
+#if !defined(HAVE_CPOWL) && defined(HAVE_CEXPL) && defined(HAVE_CLOGL)
+#define HAVE_CPOWL
+extern long double complex cpowl (long double complex, long double complex);
+#endif
+
+
+#if !defined(HAVE_CSQRTF)
+#define HAVE_CSQRTF
+extern float complex csqrtf (float complex);
+#endif
+
+#if !defined(HAVE_CSQRT)
+#define HAVE_CSQRT
+extern double complex csqrt (double complex);
+#endif
+
+#if !defined(HAVE_CSQRTL) && defined(HAVE_COPYSIGNL) && defined(HAVE_SQRTL) && defined(HAVE_FABSL) && defined(HAVE_HYPOTL)
+#define HAVE_CSQRTL
+extern long double complex csqrtl (long double complex);
+#endif
+
+
+#if !defined(HAVE_CSINHF)
+#define HAVE_CSINHF
+extern float complex csinhf (float complex);
+#endif
+
+#if !defined(HAVE_CSINH)
+#define HAVE_CSINH
+extern double complex csinh (double complex);
+#endif
+
+#if !defined(HAVE_CSINHL) && defined(HAVE_COSL) && defined(HAVE_COSHL) && defined(HAVE_SINL) && defined(HAVE_SINHL)
+#define HAVE_CSINHL
+extern long double complex csinhl (long double complex);
+#endif
+
+
+#if !defined(HAVE_CCOSHF)
+#define HAVE_CCOSHF
+extern float complex ccoshf (float complex);
+#endif
+
+#if !defined(HAVE_CCOSH)
+#define HAVE_CCOSH
+extern double complex ccosh (double complex);
+#endif
+
+#if !defined(HAVE_CCOSHL) && defined(HAVE_COSL) && defined(HAVE_COSHL) && defined(HAVE_SINL) && defined(HAVE_SINHL)
+#define HAVE_CCOSHL
+extern long double complex ccoshl (long double complex);
+#endif
+
+
+#if !defined(HAVE_CTANHF)
+#define HAVE_CTANHF
+extern float complex ctanhf (float complex);
+#endif
+
+#if !defined(HAVE_CTANH)
+#define HAVE_CTANH
+extern double complex ctanh (double complex);
+#endif
+
+#if !defined(HAVE_CTANHL) && defined(HAVE_TANL) && defined(HAVE_TANHL)
+#define HAVE_CTANHL
+extern long double complex ctanhl (long double complex);
+#endif
+
+
+#if !defined(HAVE_CSINF)
+#define HAVE_CSINF
+extern float complex csinf (float complex);
+#endif
+
+#if !defined(HAVE_CSIN)
+#define HAVE_CSIN
+extern double complex csin (double complex);
+#endif
+
+#if !defined(HAVE_CSINL) && defined(HAVE_COSL) && defined(HAVE_COSHL) && defined(HAVE_SINL) && defined(HAVE_SINHL)
+#define HAVE_CSINL
+extern long double complex csinl (long double complex);
+#endif
+
+
+#if !defined(HAVE_CCOSF)
+#define HAVE_CCOSF
+extern float complex ccosf (float complex);
+#endif
+
+#if !defined(HAVE_CCOS)
+#define HAVE_CCOS
+extern double complex ccos (double complex);
+#endif
+
+#if !defined(HAVE_CCOSL) && defined(HAVE_COSL) && defined(HAVE_COSHL) && defined(HAVE_SINL) && defined(HAVE_SINHL)
+#define HAVE_CCOSL
+extern long double complex ccosl (long double complex);
+#endif
+
+
+#if !defined(HAVE_CTANF)
+#define HAVE_CTANF
+extern float complex ctanf (float complex);
+#endif
+
+#if !defined(HAVE_CTAN)
+#define HAVE_CTAN
+extern double complex ctan (double complex);
+#endif
+
+#if !defined(HAVE_CTANL) && defined(HAVE_TANL) && defined(HAVE_TANHL)
+#define HAVE_CTANL
+extern long double complex ctanl (long double complex);
+#endif
+
+
#endif /* C99_PROTOS_H */