summaryrefslogtreecommitdiffstats
path: root/testsuites/libtests/math
diff options
context:
space:
mode:
authorRalf Corsépius <ralf.corsepius@rtems.org>2012-05-24 07:15:40 +0200
committerRalf Corsépius <ralf.corsepius@rtems.org>2012-05-24 07:15:40 +0200
commit1831fd1272a352bf27d2e68cf040a8700fb8d78a (patch)
tree24fdd70d1f03ea12d6f572a05b85fa049c59365b /testsuites/libtests/math
parentRevert "libtests/math*: Avoid generated files" (diff)
downloadrtems-1831fd1272a352bf27d2e68cf040a8700fb8d78a.tar.bz2
Revert "Revert "libtests/math*: Avoid generated files""
This reverts commit 87c8d8aba6a9582ca5eeacd332b5b107e26ea50f.
Diffstat (limited to 'testsuites/libtests/math')
-rw-r--r--testsuites/libtests/math/Makefile.am8
-rw-r--r--testsuites/libtests/math/domath.c275
-rw-r--r--testsuites/libtests/math/domath.h293
-rw-r--r--testsuites/libtests/math/domath.in287
4 files changed, 300 insertions, 563 deletions
diff --git a/testsuites/libtests/math/Makefile.am b/testsuites/libtests/math/Makefile.am
index 5a8a010810..835bd931a5 100644
--- a/testsuites/libtests/math/Makefile.am
+++ b/testsuites/libtests/math/Makefile.am
@@ -1,12 +1,5 @@
rtems_tests_PROGRAMS = math
math_SOURCES = init.c domath.c
-EXTRA_DIST = $(srcdir)/../math/domath.in
-
-$(srcdir)/domath.c: $(srcdir)/../math/domath.in
- sed -e 's,[@]FTYPE[@],double,' \
- -e 's,[@]FSUFFIX[@], ,g' \
- -e 's,[@]FGUARD[@],NO_DOUBLE,' \
- $(srcdir)/../math/domath.in > $(srcdir)/domath.c
dist_rtems_tests_DATA = math.scn
@@ -14,6 +7,7 @@ include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../automake/compile.am
include $(top_srcdir)/../automake/leaf.am
+math_CPPFLAGS = $(AM_CPPFLAGS) -I$(top_srcdir)/math
math_LDADD = -lm
LINK_OBJS = $(math_OBJECTS) $(math_LDADD)
diff --git a/testsuites/libtests/math/domath.c b/testsuites/libtests/math/domath.c
index cc145142f3..3485fb210c 100644
--- a/testsuites/libtests/math/domath.c
+++ b/testsuites/libtests/math/domath.c
@@ -11,277 +11,14 @@
*/
#ifdef HAVE_CONFIG_H
-#include "config.h"
+ #include "config.h"
#endif
-#include <math.h>
-#include <stdio.h>
-
-#ifndef M_PI_2
-#define M_PI_2 1.57079632679489661923
-#endif
-
-#ifndef M_PI_4
-#define M_PI_4 0.78539816339744830962
+#ifdef NO_DOUBLE
+ #define PROVIDE_EMPTY_FUNC
#endif
-extern void domath (void);
-
-void
-domath (void)
-{
-#ifndef NO_DOUBLE
- double f1;
- double f2;
-
- int i1;
-
- f1 = acos (0.0);
- fprintf( stdout, "acos : %f\n", f1);
-
- f1 = acosh (0.0);
- fprintf( stdout, "acosh : %f\n", f1);
-
- f1 = asin (1.0);
- fprintf( stdout, "asin : %f\n", f1);
-
- f1 = asinh (1.0);
- fprintf( stdout, "asinh : %f\n", f1);
-
- f1 = atan (M_PI_4);
- fprintf( stdout, "atan : %f\n", f1);
-
- f1 = atan2 (2.3, 2.3);
- fprintf( stdout, "atan2 : %f\n", f1);
-
- f1 = atanh (1.0);
- fprintf( stdout, "atanh : %f\n", f1);
-
- f1 = cbrt (27.0);
- fprintf( stdout, "cbrt : %f\n", f1);
-
- f1 = ceil (3.5);
- fprintf( stdout, "ceil : %f\n", f1);
-
- f1 = copysign (3.5, -2.5);
- fprintf( stdout, "copysign : %f\n", f1);
-
- f1 = cos (M_PI_2);
- fprintf( stdout, "cos : %f\n", f1);
-
- f1 = cosh (M_PI_2);
- fprintf( stdout, "cosh : %f\n", f1);
-
- f1 = erf (42.0);
- fprintf( stdout, "erf : %f\n", f1);
-
- f1 = erfc (42.0);
- fprintf( stdout, "erfc : %f\n", f1);
-
- f1 = exp (0.42);
- fprintf( stdout, "exp : %f\n", f1);
-
- f1 = exp2 (0.42);
- fprintf( stdout, "exp2 : %f\n", f1);
-
- f1 = expm1 (0.00042);
- fprintf( stdout, "expm1 : %f\n", f1);
-
- f1 = fabs (-1.123);
- fprintf( stdout, "fabs : %f\n", f1);
-
- f1 = fdim (1.123, 2.123);
- fprintf( stdout, "fdim : %f\n", f1);
-
- f1 = floor (0.5);
- fprintf( stdout, "floor : %f\n", f1);
- f1 = floor (-0.5);
- fprintf( stdout, "floor : %f\n", f1);
-
- f1 = fma (2.1, 2.2, 3.01);
- fprintf( stdout, "fma : %f\n", f1);
-
- f1 = fmax (-0.42, 0.42);
- fprintf( stdout, "fmax : %f\n", f1);
-
- f1 = fmin (-0.42, 0.42);
- fprintf( stdout, "fmin : %f\n", f1);
-
- f1 = fmod (42.0, 3.0);
- fprintf( stdout, "fmod : %f\n", f1);
-
- /* no type-specific variant */
- i1 = fpclassify(1.0);
- fprintf( stdout, "fpclassify : %d\n", i1);
-
- f1 = frexp (42.0, &i1);
- fprintf( stdout, "frexp : %f\n", f1);
-
- f1 = hypot (42.0, 42.0);
- fprintf( stdout, "hypot : %f\n", f1);
-
- i1 = ilogb (42.0);
- fprintf( stdout, "ilogb : %d\n", i1);
-
- /* no type-specific variant */
- i1 = isfinite(3.0);
- fprintf( stdout, "isfinite : %d\n", i1);
-
- /* no type-specific variant */
- i1 = isgreater(3.0, 3.1);
- fprintf( stdout, "isgreater : %d\n", i1);
-
- /* no type-specific variant */
- i1 = isgreaterequal(3.0, 3.1);
- fprintf( stdout, "isgreaterequal : %d\n", i1);
-
- /* no type-specific variant */
- i1 = isinf(3.0);
- fprintf( stdout, "isinf : %d\n", i1);
-
- /* no type-specific variant */
- i1 = isless(3.0, 3.1);
- fprintf( stdout, "isless : %d\n", i1);
-
- /* no type-specific variant */
- i1 = islessequal(3.0, 3.1);
- fprintf( stdout, "islessequal : %d\n", i1);
-
- /* no type-specific variant */
- i1 = islessgreater(3.0, 3.1);
- fprintf( stdout, "islessgreater : %d\n", i1);
+#define FTYPE double
+#define PRI "%f"
- /* no type-specific variant */
- i1 = isnan(0.0);
- fprintf( stdout, "isnan : %d\n", i1);
-
- /* no type-specific variant */
- i1 = isnormal(3.0);
- fprintf( stdout, "isnormal : %d\n", i1);
-
- /* no type-specific variant */
- f1 = isunordered(1.0, 2.0);
- fprintf( stdout, "isunordered : %d\n", i1);
-
- f1 = j0 (1.2);
- fprintf( stdout, "j0 : %f\n", f1);
-
- f1 = j1 (1.2);
- fprintf( stdout, "j1 : %f\n", f1);
-
- f1 = jn (2,1.2);
- fprintf( stdout, "jn : %f\n", f1);
-
- f1 = ldexp (1.2,3);
- fprintf( stdout, "ldexp : %f\n", f1);
-
- f1 = lgamma (42.0);
- fprintf( stdout, "lgamma : %f\n", f1);
-
- f1 = llrint (-0.5);
- fprintf( stdout, "llrint : %f\n", f1);
- f1 = llrint (0.5);
- fprintf( stdout, "llrint : %f\n", f1);
-
- f1 = llround (-0.5);
- fprintf( stdout, "lround : %f\n", f1);
- f1 = llround (0.5);
- fprintf( stdout, "lround : %f\n", f1);
-
- f1 = log (42.0);
- fprintf( stdout, "log : %f\n", f1);
-
- f1 = log10 (42.0);
- fprintf( stdout, "log10 : %f\n", f1);
-
- f1 = log1p (42.0);
- fprintf( stdout, "log1p : %f\n", f1);
-
- f1 = log2 (42.0);
- fprintf( stdout, "log2 : %f\n", f1);
-
- f1 = logb (42.0);
- fprintf( stdout, "logb : %f\n", f1);
-
- f1 = lrint (-0.5);
- fprintf( stdout, "lrint : %f\n", f1);
- f1 = lrint (0.5);
- fprintf( stdout, "lrint : %f\n", f1);
-
- f1 = lround (-0.5);
- fprintf( stdout, "lround : %f\n", f1);
- f1 = lround (0.5);
- fprintf( stdout, "lround : %f\n", f1);
-
- f1 = modf (42.0,&f2);
- fprintf( stdout, "lmodf : %f\n", f1);
-
- f1 = nan ("");
- fprintf( stdout, "nan : %f\n", f1);
-
- f1 = nearbyint (1.5);
- fprintf( stdout, "nearbyint : %f\n", f1);
-
- f1 = nextafter (1.5,2.0);
- fprintf( stdout, "nextafter : %f\n", f1);
-
- f1 = pow (3.01, 2.0);
- fprintf( stdout, "pow : %f\n", f1);
-
- f1 = remainder (3.01,2.0);
- fprintf( stdout, "remainder : %f\n", f1);
-
- f1 = remquo (29.0,3.0,&i1);
- fprintf( stdout, "remquo : %f\n", f1);
-
- f1 = rint (0.5);
- fprintf( stdout, "rint : %f\n", f1);
- f1 = rint (-0.5);
- fprintf( stdout, "rint : %f\n", f1);
-
- f1 = round (0.5);
- fprintf( stdout, "round : %f\n", f1);
- f1 = round (-0.5);
- fprintf( stdout, "round : %f\n", f1);
-
- f1 = scalbln (1.2,3);
- fprintf( stdout, "scalbln : %f\n", f1);
-
- f1 = scalbn (1.2,3);
- fprintf( stdout, "scalbn : %f\n", f1);
-
- /* no type-specific variant */
- i1 = signbit(1.0);
- fprintf( stdout, "signbit : %i\n", i1);
-
- f1 = sin (M_PI_4);
- fprintf( stdout, "sin : %f\n", f1);
-
- f1 = sinh (M_PI_4);
- fprintf( stdout, "sinh : %f\n", f1);
-
- f1 = sqrt (9.0);
- fprintf( stdout, "sqrt : %f\n", f1);
-
- f1 = tan (M_PI_4);
- fprintf( stdout, "tan : %f\n", f1);
-
- f1 = tanh (M_PI_4);
- fprintf( stdout, "tanh : %f\n", f1);
-
- f1 = tgamma (2.1);
- fprintf( stdout, "tgamma : %f\n", f1);
-
- f1 = trunc (3.5);
- fprintf( stdout, "trunc : %f\n", f1);
-
- f1 = y0 (1.2);
- fprintf( stdout, "y0 : %f\n", f1);
-
- f1 = y1 (1.2);
- fprintf( stdout, "y1 : %f\n", f1);
-
- f1 = yn (3,1.2);
- fprintf( stdout, "yn : %f\n", f1);
-#endif
-}
+#include <domath.h>
diff --git a/testsuites/libtests/math/domath.h b/testsuites/libtests/math/domath.h
new file mode 100644
index 0000000000..4915577d57
--- /dev/null
+++ b/testsuites/libtests/math/domath.h
@@ -0,0 +1,293 @@
+/*
+ * Copyright (c) 2010, 2011 by
+ * Ralf Corsepius, Ulm/Germany. All rights reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software
+ * is freely granted, provided that this notice is preserved.
+ */
+
+#include <math.h>
+#include <stdio.h>
+
+#ifndef M_PI_2
+#define M_PI_2 1.57079632679489661923
+#endif
+
+#ifndef M_PI_4
+#define M_PI_4 0.78539816339744830962
+#endif
+
+#define CONCAT(x, y) x ## y
+#define XCONCAT(x, y) CONCAT(x, y)
+
+#define STRINGIFY(x, y) # x # y
+#define XSTRINGIFY(x, y) STRINGIFY(x, y)
+
+#ifdef SUFFIX
+ #define FUNC(name) XCONCAT(name, SUFFIX)
+ #define STR(name) XSTRINGIFY(name, SUFFIX)
+#else
+ #define FUNC(name) XCONCAT(name, )
+ #define STR(name) XSTRINGIFY(name, ) " "
+#endif
+
+extern void FUNC(domath) (void);
+
+void
+FUNC(domath) (void)
+{
+#ifndef PROVIDE_EMPTY_FUNC
+ FTYPE f1;
+ FTYPE f2;
+
+ int i1;
+
+ f1 = FUNC(acos) (0.0);
+ fprintf( stdout, STR(acos) " : " PRI "\n", f1);
+
+ f1 = FUNC(acosh) (0.0);
+ fprintf( stdout, STR(acosh) " : " PRI "\n", f1);
+
+ f1 = FUNC(asin) (1.0);
+ fprintf( stdout, STR(asin) " : " PRI "\n", f1);
+
+ f1 = FUNC(asinh) (1.0);
+ fprintf( stdout, STR(asinh) " : " PRI "\n", f1);
+
+ f1 = FUNC(atan) (M_PI_4);
+ fprintf( stdout, STR(atan) " : " PRI "\n", f1);
+
+ f1 = FUNC(atan2) (2.3, 2.3);
+ fprintf( stdout, STR(atan2) " : " PRI "\n", f1);
+
+ f1 = FUNC(atanh) (1.0);
+ fprintf( stdout, STR(atanh) " : " PRI "\n", f1);
+
+ f1 = FUNC(cbrt) (27.0);
+ fprintf( stdout, STR(cbrt) " : " PRI "\n", f1);
+
+ f1 = FUNC(ceil) (3.5);
+ fprintf( stdout, STR(ceil) " : " PRI "\n", f1);
+
+ f1 = FUNC(copysign) (3.5, -2.5);
+ fprintf( stdout, STR(copysign) " : " PRI "\n", f1);
+
+ f1 = FUNC(cos) (M_PI_2);
+ fprintf( stdout, STR(cos) " : " PRI "\n", f1);
+
+ f1 = FUNC(cosh) (M_PI_2);
+ fprintf( stdout, STR(cosh) " : " PRI "\n", f1);
+
+ f1 = FUNC(erf) (42.0);
+ fprintf( stdout, STR(erf) " : " PRI "\n", f1);
+
+ f1 = FUNC(erfc) (42.0);
+ fprintf( stdout, STR(erfc) " : " PRI "\n", f1);
+
+ f1 = FUNC(exp) (0.42);
+ fprintf( stdout, STR(exp) " : " PRI "\n", f1);
+
+ f1 = FUNC(exp2) (0.42);
+ fprintf( stdout, STR(exp2) " : " PRI "\n", f1);
+
+ f1 = FUNC(expm1) (0.00042);
+ fprintf( stdout, STR(expm1) " : " PRI "\n", f1);
+
+ f1 = FUNC(fabs) (-1.123);
+ fprintf( stdout, STR(fabs) " : " PRI "\n", f1);
+
+ f1 = FUNC(fdim) (1.123, 2.123);
+ fprintf( stdout, STR(fdim) " : " PRI "\n", f1);
+
+ f1 = FUNC(floor) (0.5);
+ fprintf( stdout, STR(floor) " : " PRI "\n", f1);
+ f1 = FUNC(floor) (-0.5);
+ fprintf( stdout, STR(floor) " : " PRI "\n", f1);
+
+ f1 = FUNC(fma) (2.1, 2.2, 3.01);
+ fprintf( stdout, STR(fma) " : " PRI "\n", f1);
+
+ f1 = FUNC(fmax) (-0.42, 0.42);
+ fprintf( stdout, STR(fmax) " : " PRI "\n", f1);
+
+ f1 = FUNC(fmin) (-0.42, 0.42);
+ fprintf( stdout, STR(fmin) " : " PRI "\n", f1);
+
+ f1 = FUNC(fmod) (42.0, 3.0);
+ fprintf( stdout, STR(fmod) " : " PRI "\n", f1);
+
+ /* no type-specific variant */
+ i1 = fpclassify(1.0);
+ fprintf( stdout, "fpclassify : %d\n", i1);
+
+ f1 = FUNC(frexp) (42.0, &i1);
+ fprintf( stdout, STR(frexp) " : " PRI "\n", f1);
+
+ f1 = FUNC(hypot) (42.0, 42.0);
+ fprintf( stdout, STR(hypot) " : " PRI "\n", f1);
+
+ i1 = FUNC(ilogb) (42.0);
+ fprintf( stdout, STR(ilogb) " : %d\n", i1);
+
+ /* no type-specific variant */
+ i1 = isfinite(3.0);
+ fprintf( stdout, "isfinite : %d\n", i1);
+
+ /* no type-specific variant */
+ i1 = isgreater(3.0, 3.1);
+ fprintf( stdout, "isgreater : %d\n", i1);
+
+ /* no type-specific variant */
+ i1 = isgreaterequal(3.0, 3.1);
+ fprintf( stdout, "isgreaterequal : %d\n", i1);
+
+ /* no type-specific variant */
+ i1 = isinf(3.0);
+ fprintf( stdout, "isinf : %d\n", i1);
+
+ /* no type-specific variant */
+ i1 = isless(3.0, 3.1);
+ fprintf( stdout, "isless : %d\n", i1);
+
+ /* no type-specific variant */
+ i1 = islessequal(3.0, 3.1);
+ fprintf( stdout, "islessequal : %d\n", i1);
+
+ /* no type-specific variant */
+ i1 = islessgreater(3.0, 3.1);
+ fprintf( stdout, "islessgreater : %d\n", i1);
+
+ /* no type-specific variant */
+ i1 = isnan(0.0);
+ fprintf( stdout, "isnan : %d\n", i1);
+
+ /* no type-specific variant */
+ i1 = isnormal(3.0);
+ fprintf( stdout, "isnormal : %d\n", i1);
+
+ /* no type-specific variant */
+ f1 = isunordered(1.0, 2.0);
+ fprintf( stdout, "isunordered : %d\n", i1);
+
+ f1 = FUNC(j0) (1.2);
+ fprintf( stdout, STR(j0) " : " PRI "\n", f1);
+
+ f1 = FUNC(j1) (1.2);
+ fprintf( stdout, STR(j1) " : " PRI "\n", f1);
+
+ f1 = FUNC(jn) (2,1.2);
+ fprintf( stdout, STR(jn) " : " PRI "\n", f1);
+
+ f1 = FUNC(ldexp) (1.2,3);
+ fprintf( stdout, STR(ldexp) " : " PRI "\n", f1);
+
+ f1 = FUNC(lgamma) (42.0);
+ fprintf( stdout, STR(lgamma) " : " PRI "\n", f1);
+
+ f1 = FUNC(llrint) (-0.5);
+ fprintf( stdout, STR(llrint) " : " PRI "\n", f1);
+ f1 = FUNC(llrint) (0.5);
+ fprintf( stdout, STR(llrint) " : " PRI "\n", f1);
+
+ f1 = FUNC(llround) (-0.5);
+ fprintf( stdout, STR(lround) " : " PRI "\n", f1);
+ f1 = FUNC(llround) (0.5);
+ fprintf( stdout, STR(lround) " : " PRI "\n", f1);
+
+ f1 = FUNC(log) (42.0);
+ fprintf( stdout, STR(log) " : " PRI "\n", f1);
+
+ f1 = FUNC(log10) (42.0);
+ fprintf( stdout, STR(log10) " : " PRI "\n", f1);
+
+ f1 = FUNC(log1p) (42.0);
+ fprintf( stdout, STR(log1p) " : " PRI "\n", f1);
+
+ f1 = FUNC(log2) (42.0);
+ fprintf( stdout, STR(log2) " : " PRI "\n", f1);
+
+ f1 = FUNC(logb) (42.0);
+ fprintf( stdout, STR(logb) " : " PRI "\n", f1);
+
+ f1 = FUNC(lrint) (-0.5);
+ fprintf( stdout, STR(lrint) " : " PRI "\n", f1);
+ f1 = FUNC(lrint) (0.5);
+ fprintf( stdout, STR(lrint) " : " PRI "\n", f1);
+
+ f1 = FUNC(lround) (-0.5);
+ fprintf( stdout, STR(lround) " : " PRI "\n", f1);
+ f1 = FUNC(lround) (0.5);
+ fprintf( stdout, STR(lround) " : " PRI "\n", f1);
+
+ f1 = FUNC(modf) (42.0,&f2);
+ fprintf( stdout, STR(lmodf) " : " PRI "\n", f1);
+
+ f1 = FUNC(nan) ("");
+ fprintf( stdout, STR(nan) " : " PRI "\n", f1);
+
+ f1 = FUNC(nearbyint) (1.5);
+ fprintf( stdout, STR(nearbyint) " : " PRI "\n", f1);
+
+ f1 = FUNC(nextafter) (1.5,2.0);
+ fprintf( stdout, STR(nextafter) " : " PRI "\n", f1);
+
+ f1 = FUNC(pow) (3.01, 2.0);
+ fprintf( stdout, STR(pow) " : " PRI "\n", f1);
+
+ f1 = FUNC(remainder) (3.01,2.0);
+ fprintf( stdout, STR(remainder) " : " PRI "\n", f1);
+
+ f1 = FUNC(remquo) (29.0,3.0,&i1);
+ fprintf( stdout, STR(remquo) " : " PRI "\n", f1);
+
+ f1 = FUNC(rint) (0.5);
+ fprintf( stdout, STR(rint) " : " PRI "\n", f1);
+ f1 = FUNC(rint) (-0.5);
+ fprintf( stdout, STR(rint) " : " PRI "\n", f1);
+
+ f1 = FUNC(round) (0.5);
+ fprintf( stdout, STR(round) " : " PRI "\n", f1);
+ f1 = FUNC(round) (-0.5);
+ fprintf( stdout, STR(round) " : " PRI "\n", f1);
+
+ f1 = FUNC(scalbln) (1.2,3);
+ fprintf( stdout, STR(scalbln) " : " PRI "\n", f1);
+
+ f1 = FUNC(scalbn) (1.2,3);
+ fprintf( stdout, STR(scalbn) " : " PRI "\n", f1);
+
+ /* no type-specific variant */
+ i1 = signbit(1.0);
+ fprintf( stdout, "signbit : %i\n", i1);
+
+ f1 = FUNC(sin) (M_PI_4);
+ fprintf( stdout, STR(sin) " : " PRI "\n", f1);
+
+ f1 = FUNC(sinh) (M_PI_4);
+ fprintf( stdout, STR(sinh) " : " PRI "\n", f1);
+
+ f1 = FUNC(sqrt) (9.0);
+ fprintf( stdout, STR(sqrt) " : " PRI "\n", f1);
+
+ f1 = FUNC(tan) (M_PI_4);
+ fprintf( stdout, STR(tan) " : " PRI "\n", f1);
+
+ f1 = FUNC(tanh) (M_PI_4);
+ fprintf( stdout, STR(tanh) " : " PRI "\n", f1);
+
+ f1 = FUNC(tgamma) (2.1);
+ fprintf( stdout, STR(tgamma) " : " PRI "\n", f1);
+
+ f1 = FUNC(trunc) (3.5);
+ fprintf( stdout, STR(trunc) " : " PRI "\n", f1);
+
+ f1 = FUNC(y0) (1.2);
+ fprintf( stdout, STR(y0) " : " PRI "\n", f1);
+
+ f1 = FUNC(y1) (1.2);
+ fprintf( stdout, STR(y1) " : " PRI "\n", f1);
+
+ f1 = FUNC(yn) (3,1.2);
+ fprintf( stdout, STR(yn) " : " PRI "\n", f1);
+#endif
+}
diff --git a/testsuites/libtests/math/domath.in b/testsuites/libtests/math/domath.in
deleted file mode 100644
index 92bafff276..0000000000
--- a/testsuites/libtests/math/domath.in
+++ /dev/null
@@ -1,287 +0,0 @@
-/*
- * Copyright (c) 2010, 2011 by
- * Ralf Corsepius, Ulm/Germany. All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software
- * is freely granted, provided that this notice is preserved.
- */
-
-/*
- * Try to compile and link against POSIX math routines.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <math.h>
-#include <stdio.h>
-
-#ifndef M_PI_2
-#define M_PI_2 1.57079632679489661923
-#endif
-
-#ifndef M_PI_4
-#define M_PI_4 0.78539816339744830962
-#endif
-
-extern void domath@FSUFFIX@ (void);
-
-void
-domath@FSUFFIX@ (void)
-{
-#ifndef @FGUARD@
- @FTYPE@ f1;
- @FTYPE@ f2;
-
- int i1;
-
- f1 = acos@FSUFFIX@(0.0);
- fprintf( stdout, "acos@FSUFFIX@ : %f\n", f1);
-
- f1 = acosh@FSUFFIX@(0.0);
- fprintf( stdout, "acosh@FSUFFIX@ : %f\n", f1);
-
- f1 = asin@FSUFFIX@(1.0);
- fprintf( stdout, "asin@FSUFFIX@ : %f\n", f1);
-
- f1 = asinh@FSUFFIX@(1.0);
- fprintf( stdout, "asinh@FSUFFIX@ : %f\n", f1);
-
- f1 = atan@FSUFFIX@(M_PI_4);
- fprintf( stdout, "atan@FSUFFIX@ : %f\n", f1);
-
- f1 = atan2@FSUFFIX@(2.3, 2.3);
- fprintf( stdout, "atan2@FSUFFIX@ : %f\n", f1);
-
- f1 = atanh@FSUFFIX@(1.0);
- fprintf( stdout, "atanh@FSUFFIX@ : %f\n", f1);
-
- f1 = cbrt@FSUFFIX@(27.0);
- fprintf( stdout, "cbrt@FSUFFIX@ : %f\n", f1);
-
- f1 = ceil@FSUFFIX@(3.5);
- fprintf( stdout, "ceil@FSUFFIX@ : %f\n", f1);
-
- f1 = copysign@FSUFFIX@(3.5, -2.5);
- fprintf( stdout, "copysign@FSUFFIX@ : %f\n", f1);
-
- f1 = cos@FSUFFIX@(M_PI_2);
- fprintf( stdout, "cos@FSUFFIX@ : %f\n", f1);
-
- f1 = cosh@FSUFFIX@(M_PI_2);
- fprintf( stdout, "cosh@FSUFFIX@ : %f\n", f1);
-
- f1 = erf@FSUFFIX@(42.0);
- fprintf( stdout, "erf@FSUFFIX@ : %f\n", f1);
-
- f1 = erfc@FSUFFIX@(42.0);
- fprintf( stdout, "erfc@FSUFFIX@ : %f\n", f1);
-
- f1 = exp@FSUFFIX@(0.42);
- fprintf( stdout, "exp@FSUFFIX@ : %f\n", f1);
-
- f1 = exp2@FSUFFIX@(0.42);
- fprintf( stdout, "exp2@FSUFFIX@ : %f\n", f1);
-
- f1 = expm1@FSUFFIX@(0.00042);
- fprintf( stdout, "expm1@FSUFFIX@ : %f\n", f1);
-
- f1 = fabs@FSUFFIX@(-1.123);
- fprintf( stdout, "fabs@FSUFFIX@ : %f\n", f1);
-
- f1 = fdim@FSUFFIX@(1.123, 2.123);
- fprintf( stdout, "fdim@FSUFFIX@ : %f\n", f1);
-
- f1 = floor@FSUFFIX@(0.5);
- fprintf( stdout, "floor@FSUFFIX@ : %f\n", f1);
- f1 = floor@FSUFFIX@(-0.5);
- fprintf( stdout, "floor@FSUFFIX@ : %f\n", f1);
-
- f1 = fma@FSUFFIX@(2.1, 2.2, 3.01);
- fprintf( stdout, "fma@FSUFFIX@ : %f\n", f1);
-
- f1 = fmax@FSUFFIX@(-0.42, 0.42);
- fprintf( stdout, "fmax@FSUFFIX@ : %f\n", f1);
-
- f1 = fmin@FSUFFIX@(-0.42, 0.42);
- fprintf( stdout, "fmin@FSUFFIX@ : %f\n", f1);
-
- f1 = fmod@FSUFFIX@(42.0, 3.0);
- fprintf( stdout, "fmod@FSUFFIX@ : %f\n", f1);
-
- /* no type-specific variant */
- i1 = fpclassify(1.0);
- fprintf( stdout, "fpclassify : %d\n", i1);
-
- f1 = frexp@FSUFFIX@(42.0, &i1);
- fprintf( stdout, "frexp@FSUFFIX@ : %f\n", f1);
-
- f1 = hypot@FSUFFIX@(42.0, 42.0);
- fprintf( stdout, "hypot@FSUFFIX@ : %f\n", f1);
-
- i1 = ilogb@FSUFFIX@(42.0);
- fprintf( stdout, "ilogb@FSUFFIX@ : %d\n", i1);
-
- /* no type-specific variant */
- i1 = isfinite(3.0);
- fprintf( stdout, "isfinite : %d\n", i1);
-
- /* no type-specific variant */
- i1 = isgreater(3.0, 3.1);
- fprintf( stdout, "isgreater : %d\n", i1);
-
- /* no type-specific variant */
- i1 = isgreaterequal(3.0, 3.1);
- fprintf( stdout, "isgreaterequal : %d\n", i1);
-
- /* no type-specific variant */
- i1 = isinf(3.0);
- fprintf( stdout, "isinf : %d\n", i1);
-
- /* no type-specific variant */
- i1 = isless(3.0, 3.1);
- fprintf( stdout, "isless : %d\n", i1);
-
- /* no type-specific variant */
- i1 = islessequal(3.0, 3.1);
- fprintf( stdout, "islessequal : %d\n", i1);
-
- /* no type-specific variant */
- i1 = islessgreater(3.0, 3.1);
- fprintf( stdout, "islessgreater : %d\n", i1);
-
- /* no type-specific variant */
- i1 = isnan(0.0);
- fprintf( stdout, "isnan : %d\n", i1);
-
- /* no type-specific variant */
- i1 = isnormal(3.0);
- fprintf( stdout, "isnormal : %d\n", i1);
-
- /* no type-specific variant */
- f1 = isunordered(1.0, 2.0);
- fprintf( stdout, "isunordered : %d\n", i1);
-
- f1 = j0@FSUFFIX@(1.2);
- fprintf( stdout, "j0@FSUFFIX@ : %f\n", f1);
-
- f1 = j1@FSUFFIX@(1.2);
- fprintf( stdout, "j1@FSUFFIX@ : %f\n", f1);
-
- f1 = jn@FSUFFIX@(2,1.2);
- fprintf( stdout, "jn@FSUFFIX@ : %f\n", f1);
-
- f1 = ldexp@FSUFFIX@(1.2,3);
- fprintf( stdout, "ldexp@FSUFFIX@ : %f\n", f1);
-
- f1 = lgamma@FSUFFIX@(42.0);
- fprintf( stdout, "lgamma@FSUFFIX@ : %f\n", f1);
-
- f1 = llrint@FSUFFIX@(-0.5);
- fprintf( stdout, "llrint@FSUFFIX@ : %f\n", f1);
- f1 = llrint@FSUFFIX@(0.5);
- fprintf( stdout, "llrint@FSUFFIX@ : %f\n", f1);
-
- f1 = llround@FSUFFIX@(-0.5);
- fprintf( stdout, "lround@FSUFFIX@ : %f\n", f1);
- f1 = llround@FSUFFIX@(0.5);
- fprintf( stdout, "lround@FSUFFIX@ : %f\n", f1);
-
- f1 = log@FSUFFIX@(42.0);
- fprintf( stdout, "log@FSUFFIX@ : %f\n", f1);
-
- f1 = log10@FSUFFIX@(42.0);
- fprintf( stdout, "log10@FSUFFIX@ : %f\n", f1);
-
- f1 = log1p@FSUFFIX@(42.0);
- fprintf( stdout, "log1p@FSUFFIX@ : %f\n", f1);
-
- f1 = log2@FSUFFIX@(42.0);
- fprintf( stdout, "log2@FSUFFIX@ : %f\n", f1);
-
- f1 = logb@FSUFFIX@(42.0);
- fprintf( stdout, "logb@FSUFFIX@ : %f\n", f1);
-
- f1 = lrint@FSUFFIX@(-0.5);
- fprintf( stdout, "lrint@FSUFFIX@ : %f\n", f1);
- f1 = lrint@FSUFFIX@(0.5);
- fprintf( stdout, "lrint@FSUFFIX@ : %f\n", f1);
-
- f1 = lround@FSUFFIX@(-0.5);
- fprintf( stdout, "lround@FSUFFIX@ : %f\n", f1);
- f1 = lround@FSUFFIX@(0.5);
- fprintf( stdout, "lround@FSUFFIX@ : %f\n", f1);
-
- f1 = modf@FSUFFIX@(42.0,&f2);
- fprintf( stdout, "lmodf@FSUFFIX@ : %f\n", f1);
-
- f1 = nan@FSUFFIX@("");
- fprintf( stdout, "nan@FSUFFIX@ : %f\n", f1);
-
- f1 = nearbyint@FSUFFIX@(1.5);
- fprintf( stdout, "nearbyint@FSUFFIX@ : %f\n", f1);
-
- f1 = nextafter@FSUFFIX@(1.5,2.0);
- fprintf( stdout, "nextafter@FSUFFIX@ : %f\n", f1);
-
- f1 = pow@FSUFFIX@(3.01, 2.0);
- fprintf( stdout, "pow@FSUFFIX@ : %f\n", f1);
-
- f1 = remainder@FSUFFIX@(3.01,2.0);
- fprintf( stdout, "remainder@FSUFFIX@ : %f\n", f1);
-
- f1 = remquo@FSUFFIX@(29.0,3.0,&i1);
- fprintf( stdout, "remquo@FSUFFIX@ : %f\n", f1);
-
- f1 = rint@FSUFFIX@(0.5);
- fprintf( stdout, "rint@FSUFFIX@ : %f\n", f1);
- f1 = rint@FSUFFIX@(-0.5);
- fprintf( stdout, "rint@FSUFFIX@ : %f\n", f1);
-
- f1 = round@FSUFFIX@(0.5);
- fprintf( stdout, "round@FSUFFIX@ : %f\n", f1);
- f1 = round@FSUFFIX@(-0.5);
- fprintf( stdout, "round@FSUFFIX@ : %f\n", f1);
-
- f1 = scalbln@FSUFFIX@(1.2,3);
- fprintf( stdout, "scalbln@FSUFFIX@ : %f\n", f1);
-
- f1 = scalbn@FSUFFIX@(1.2,3);
- fprintf( stdout, "scalbn@FSUFFIX@ : %f\n", f1);
-
- /* no type-specific variant */
- i1 = signbit(1.0);
- fprintf( stdout, "signbit : %i\n", i1);
-
- f1 = sin@FSUFFIX@(M_PI_4);
- fprintf( stdout, "sin@FSUFFIX@ : %f\n", f1);
-
- f1 = sinh@FSUFFIX@(M_PI_4);
- fprintf( stdout, "sinh@FSUFFIX@ : %f\n", f1);
-
- f1 = sqrt@FSUFFIX@(9.0);
- fprintf( stdout, "sqrt@FSUFFIX@ : %f\n", f1);
-
- f1 = tan@FSUFFIX@(M_PI_4);
- fprintf( stdout, "tan@FSUFFIX@ : %f\n", f1);
-
- f1 = tanh@FSUFFIX@(M_PI_4);
- fprintf( stdout, "tanh@FSUFFIX@ : %f\n", f1);
-
- f1 = tgamma@FSUFFIX@(2.1);
- fprintf( stdout, "tgamma@FSUFFIX@ : %f\n", f1);
-
- f1 = trunc@FSUFFIX@(3.5);
- fprintf( stdout, "trunc@FSUFFIX@ : %f\n", f1);
-
- f1 = y0@FSUFFIX@(1.2);
- fprintf( stdout, "y0@FSUFFIX@ : %f\n", f1);
-
- f1 = y1@FSUFFIX@(1.2);
- fprintf( stdout, "y1@FSUFFIX@ : %f\n", f1);
-
- f1 = yn@FSUFFIX@(3,1.2);
- fprintf( stdout, "yn@FSUFFIX@ : %f\n", f1);
-#endif
-}