Index: src/libcfa/Makefile.am
===================================================================
--- src/libcfa/Makefile.am	(revision 921fe6ad27e90b63b7bddda41b0caffdbfaa8ab8)
+++ src/libcfa/Makefile.am	(revision dab7ac792024c4767a55726e396c9df595df6da0)
@@ -11,6 +11,6 @@
 ## Created On       : Sun May 31 08:54:01 2015
 ## Last Modified By : Peter A. Buhr
-## Last Modified On : Thu Jul 20 15:38:28 2017
-## Update Count     : 219
+## Last Modified On : Thu Jul 20 23:09:34 2017
+## Update Count     : 220
 ###############################################################################
 
@@ -42,5 +42,5 @@
 CC = ${abs_top_srcdir}/src/driver/cfa
 
-headers = fstream iostream iterator limits math rational stdlib \
+headers = fstream iostream iterator limits rational stdlib \
 	  containers/maybe containers/pair containers/result containers/vector
 
@@ -91,5 +91,5 @@
 
 cfa_includedir = $(CFA_INCDIR)
-nobase_cfa_include_HEADERS = ${headers} ${stdhdr} gmp concurrency/invoke.h
+nobase_cfa_include_HEADERS = ${headers} ${stdhdr} math gmp concurrency/invoke.h
 
 CLEANFILES = libcfa-prelude.c
Index: src/libcfa/Makefile.in
===================================================================
--- src/libcfa/Makefile.in	(revision 921fe6ad27e90b63b7bddda41b0caffdbfaa8ab8)
+++ src/libcfa/Makefile.in	(revision dab7ac792024c4767a55726e396c9df595df6da0)
@@ -150,6 +150,6 @@
 am__libcfa_d_a_SOURCES_DIST = libcfa-prelude.c interpose.c \
 	libhdr/libdebug.c fstream.c iostream.c iterator.c limits.c \
-	math.c rational.c stdlib.c containers/maybe.c \
-	containers/pair.c containers/result.c containers/vector.c \
+	rational.c stdlib.c containers/maybe.c containers/pair.c \
+	containers/result.c containers/vector.c \
 	concurrency/coroutine.c concurrency/thread.c \
 	concurrency/kernel.c concurrency/monitor.c assert.c \
@@ -164,6 +164,6 @@
 am__objects_2 = libcfa_d_a-fstream.$(OBJEXT) \
 	libcfa_d_a-iostream.$(OBJEXT) libcfa_d_a-iterator.$(OBJEXT) \
-	libcfa_d_a-limits.$(OBJEXT) libcfa_d_a-math.$(OBJEXT) \
-	libcfa_d_a-rational.$(OBJEXT) libcfa_d_a-stdlib.$(OBJEXT) \
+	libcfa_d_a-limits.$(OBJEXT) libcfa_d_a-rational.$(OBJEXT) \
+	libcfa_d_a-stdlib.$(OBJEXT) \
 	containers/libcfa_d_a-maybe.$(OBJEXT) \
 	containers/libcfa_d_a-pair.$(OBJEXT) \
@@ -185,6 +185,6 @@
 am__libcfa_a_SOURCES_DIST = libcfa-prelude.c interpose.c \
 	libhdr/libdebug.c fstream.c iostream.c iterator.c limits.c \
-	math.c rational.c stdlib.c containers/maybe.c \
-	containers/pair.c containers/result.c containers/vector.c \
+	rational.c stdlib.c containers/maybe.c containers/pair.c \
+	containers/result.c containers/vector.c \
 	concurrency/coroutine.c concurrency/thread.c \
 	concurrency/kernel.c concurrency/monitor.c assert.c \
@@ -198,6 +198,6 @@
 am__objects_6 = libcfa_a-fstream.$(OBJEXT) libcfa_a-iostream.$(OBJEXT) \
 	libcfa_a-iterator.$(OBJEXT) libcfa_a-limits.$(OBJEXT) \
-	libcfa_a-math.$(OBJEXT) libcfa_a-rational.$(OBJEXT) \
-	libcfa_a-stdlib.$(OBJEXT) containers/libcfa_a-maybe.$(OBJEXT) \
+	libcfa_a-rational.$(OBJEXT) libcfa_a-stdlib.$(OBJEXT) \
+	containers/libcfa_a-maybe.$(OBJEXT) \
 	containers/libcfa_a-pair.$(OBJEXT) \
 	containers/libcfa_a-result.$(OBJEXT) \
@@ -261,8 +261,8 @@
   esac
 am__nobase_cfa_include_HEADERS_DIST = fstream iostream iterator limits \
-	math rational stdlib containers/maybe containers/pair \
+	rational stdlib containers/maybe containers/pair \
 	containers/result containers/vector concurrency/coroutine \
 	concurrency/thread concurrency/kernel concurrency/monitor \
-	${shell echo stdhdr/*} gmp concurrency/invoke.h
+	${shell echo stdhdr/*} math gmp concurrency/invoke.h
 HEADERS = $(nobase_cfa_include_HEADERS)
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
@@ -414,5 +414,5 @@
 EXTRA_FLAGS = -g -Wall -Werror -Wno-unused-function -I${abs_top_srcdir}/src/libcfa/libhdr -imacros libcfa-prelude.c @CFA_FLAGS@
 AM_CCASFLAGS = @CFA_FLAGS@
-headers = fstream iostream iterator limits math rational stdlib \
+headers = fstream iostream iterator limits rational stdlib \
 	containers/maybe containers/pair containers/result \
 	containers/vector $(am__append_3)
@@ -426,5 +426,5 @@
 stdhdr = ${shell echo stdhdr/*}
 cfa_includedir = $(CFA_INCDIR)
-nobase_cfa_include_HEADERS = ${headers} ${stdhdr} gmp concurrency/invoke.h
+nobase_cfa_include_HEADERS = ${headers} ${stdhdr} math gmp concurrency/invoke.h
 CLEANFILES = libcfa-prelude.c
 all: all-am
@@ -592,5 +592,4 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-libcfa-prelude.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-limits.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-math.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-rational.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-stdlib.Po@am__quote@
@@ -604,5 +603,4 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-libcfa-prelude.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-limits.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-math.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-rational.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-stdlib.Po@am__quote@
@@ -757,18 +755,4 @@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-limits.obj `if test -f 'limits.c'; then $(CYGPATH_W) 'limits.c'; else $(CYGPATH_W) '$(srcdir)/limits.c'; fi`
 
-libcfa_d_a-math.o: math.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-math.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-math.Tpo -c -o libcfa_d_a-math.o `test -f 'math.c' || echo '$(srcdir)/'`math.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-math.Tpo $(DEPDIR)/libcfa_d_a-math.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='math.c' object='libcfa_d_a-math.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-math.o `test -f 'math.c' || echo '$(srcdir)/'`math.c
-
-libcfa_d_a-math.obj: math.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-math.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-math.Tpo -c -o libcfa_d_a-math.obj `if test -f 'math.c'; then $(CYGPATH_W) 'math.c'; else $(CYGPATH_W) '$(srcdir)/math.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-math.Tpo $(DEPDIR)/libcfa_d_a-math.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='math.c' object='libcfa_d_a-math.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-math.obj `if test -f 'math.c'; then $(CYGPATH_W) 'math.c'; else $(CYGPATH_W) '$(srcdir)/math.c'; fi`
-
 libcfa_d_a-rational.o: rational.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-rational.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-rational.Tpo -c -o libcfa_d_a-rational.o `test -f 'rational.c' || echo '$(srcdir)/'`rational.c
@@ -1064,18 +1048,4 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-limits.obj `if test -f 'limits.c'; then $(CYGPATH_W) 'limits.c'; else $(CYGPATH_W) '$(srcdir)/limits.c'; fi`
-
-libcfa_a-math.o: math.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-math.o -MD -MP -MF $(DEPDIR)/libcfa_a-math.Tpo -c -o libcfa_a-math.o `test -f 'math.c' || echo '$(srcdir)/'`math.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-math.Tpo $(DEPDIR)/libcfa_a-math.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='math.c' object='libcfa_a-math.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-math.o `test -f 'math.c' || echo '$(srcdir)/'`math.c
-
-libcfa_a-math.obj: math.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-math.obj -MD -MP -MF $(DEPDIR)/libcfa_a-math.Tpo -c -o libcfa_a-math.obj `if test -f 'math.c'; then $(CYGPATH_W) 'math.c'; else $(CYGPATH_W) '$(srcdir)/math.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-math.Tpo $(DEPDIR)/libcfa_a-math.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='math.c' object='libcfa_a-math.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-math.obj `if test -f 'math.c'; then $(CYGPATH_W) 'math.c'; else $(CYGPATH_W) '$(srcdir)/math.c'; fi`
 
 libcfa_a-rational.o: rational.c
Index: src/libcfa/math
===================================================================
--- src/libcfa/math	(revision 921fe6ad27e90b63b7bddda41b0caffdbfaa8ab8)
+++ src/libcfa/math	(revision dab7ac792024c4767a55726e396c9df595df6da0)
@@ -10,337 +10,381 @@
 // Created On       : Mon Apr 18 23:37:04 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Jul  7 09:34:15 2017
-// Update Count     : 61
+// Last Modified On : Thu Jul 20 21:45:07 2017
+// Update Count     : 77
 //
 
 #pragma once
 
-extern "C" {
-#include <math.h>										// fpclassify, isfinite, isnormal, isnan, isinf
-} // extern "C"
-
-float ?%?( float, float );
-float fmod( float, float );
-double ?%?( double, double );
+#include <math.h>
+#include <complex.h>
+
+static inline float ?%?( float x, float y ) { return fmodf( x, y ); }
+static inline float fmod( float x, float y ) { return fmodf( x, y ); }
+static inline double ?%?( double x, double y ) { return fmod( x, y ); }
 // extern "C" { double fmod( double, double ); }
-long double ?%?( long double, long double );
-long double fmod( long double, long double );
-
-float remainder( float, float );
+static inline long double ?%?( long double x, long double y ) { return fmodl( x, y ); }
+static inline long double fmod( long double x, long double y ) { return fmodl( x, y ); }
+
+static inline float remainder( float x, float y ) { return remainderf( x, y ); }
 // extern "C" { double remainder( double, double ); }
-long double remainder( long double, long double );
-
-[ int, float ] remquo( float, float );
-float remquo( float, float, int * );
-[ int, double ] remquo( double, double );
-// extern "C" { double remquo( double, double, int * ); }
-[ int, long double ] remquo( long double, long double );
-long double remquo( long double, long double, int * );
-
-[ int, float ] div( float, float );						// alternative name for remquo
-float div( float, float, int * );
-[ int, double ] div( double, double );
-// extern "C" { double div( double, double, int * ); }
-[ int, long double ] div( long double, long double );
-long double div( long double, long double, int * );
-
-float fma( float, float, float );
+static inline long double remainder( long double x, long double y ) { return remainderl( x, y ); }
+
+static inline float remquo( float x, float y, int * quo ) { return remquof( x, y, quo ); }
+// extern "C" { double remquo( double x, double y, int * quo ); }
+static inline long double remquo( long double x, long double y, int * quo ) { return remquol( x, y, quo ); }
+static inline [ int, float ] remquo( float x, float y ) { int quo; x = remquof( x, y, &quo ); return [ quo, x ]; }
+static inline [ int, double ] remquo( double x, double y ) { int quo; x = remquo( x, y, &quo ); return [ quo, x ]; }
+static inline [ int, long double ] remquo( long double x, long double y ) { int quo; x = remquol( x, y, &quo ); return [ quo, x ]; }
+
+// alternative name for remquo
+static inline float div( float x, float y, int * quo ) { return remquof( x, y, quo ); }
+static inline double div( double x, double y, int * quo ) { return remquo( x, y, quo ); }
+static inline long double div( long double x, long double y, int * quo ) { return remquol( x, y, quo ); }
+static inline [ int, float ] div( float x, float y ) { int quo; x = remquof( x, y, &quo ); return [ quo, x ]; }
+static inline [ int, double ] div( double x, double y ) { int quo; x = remquo( x, y, &quo ); return [ quo, x ]; }
+static inline [ int, long double ] div( long double x, long double y ) { int quo; x = remquol( x, y, &quo ); return [ quo, x ]; }
+
+static inline float fma( float x, float y, float z ) { return fmaf( x, y, z ); }
 // extern "C" { double fma( double, double, double ); }
-long double fma( long double, long double, long double );
-
-float fdim( float, float );
+static inline long double fma( long double x, long double y, long double z ) { return fmal( x, y, z ); }
+
+static inline float fdim( float x, float y ) { return fdimf( x, y ); }
 // extern "C" { double fdim( double, double ); }
-long double fdim( long double, long double );
-
-float nan( const char * );
+static inline long double fdim( long double x, long double y ) { return fdiml( x, y ); }
+
+static inline float nan( const char * tag ) { return nanf( tag ); }
 // extern "C" { double nan( const char * ); }
-long double nan( const char * );
+static inline long double nan( const char * tag ) { return nanl( tag ); }
 
 //---------------------- Exponential ----------------------
 
-float exp( float );
+static inline float exp( float x ) { return expf( x ); }
 // extern "C" { double exp( double ); }
-long double exp( long double );
-float _Complex exp( float _Complex );
-double _Complex exp( double _Complex );
-long double _Complex exp( long double _Complex );
-
-float exp2( float );
+static inline long double exp( long double x ) { return expl( x ); }
+static inline float _Complex exp( float _Complex x ) { return cexpf( x ); }
+static inline double _Complex exp( double _Complex x ) { return cexp( x ); }
+static inline long double _Complex exp( long double _Complex x ) { return cexpl( x ); }
+
+static inline float exp2( float x ) { return exp2f( x ); }
 // extern "C" { double exp2( double ); }
-long double exp2( long double );
-// float _Complex exp2( float _Complex );
-// double _Complex exp2( double _Complex );
-// long double _Complex exp2( long double _Complex );
-
-float expm1( float );
+static inline long double exp2( long double x ) { return exp2l( x ); }
+//static inline float _Complex exp2( float _Complex x ) { return cexp2f( x ); }
+//static inline double _Complex exp2( double _Complex x ) { return cexp2( x ); }
+//static inline long double _Complex exp2( long double _Complex x ) { return cexp2l( x ); }
+
+static inline float expm1( float x ) { return expm1f( x ); }
 // extern "C" { double expm1( double ); }
-long double expm1( long double );
-
-float log( float );
+static inline long double expm1( long double x ) { return expm1l( x ); }
+
+static inline float pow( float x, float y ) { return powf( x, y ); }
+// extern "C" { double pow( double, double ); }
+static inline long double pow( long double x, long double y ) { return powl( x, y ); }
+static inline float _Complex pow( float _Complex x, float _Complex y ) { return cpowf( x, y ); }
+static inline double _Complex pow( double _Complex x, double _Complex y ) { return cpow( x, y ); }
+static inline long double _Complex pow( long double _Complex x, long double _Complex y ) { return cpowl( x, y ); }
+
+static inline float ?\?( float x, float y ) { return powf( x, y ); }
+static inline double ?\?( double x, double y ) { return pow( x, y ); }
+static inline long double ?\?( long double x, long double y ) { return powl( x, y ); }
+static inline float _Complex ?\?( float _Complex x, _Complex float y ) { return cpowf(x, y ); }
+static inline double _Complex ?\?( double _Complex x, _Complex double y ) { return cpow( x, y ); }
+static inline long double _Complex ?\?( long double _Complex x, _Complex long double y ) { return cpowl( x, y ); }
+
+static inline float ?\=?( float * x, float y ) { *x = *x \ y; return *x; }
+static inline double ?\=?( double * x, double y ) { *x = *x \ y; return *x; }
+static inline long double ?\=?( long double * x, long double y ) { *x = *x \ y; return *x; }
+static inline float _Complex ?\=?( float _Complex * x, _Complex float y ) { *x = *x \ y; return *x; }
+static inline double _Complex ?\=?( double _Complex * x, _Complex double y ) { *x = *x \ y; return *x; }
+static inline long double _Complex ?\=?( long double _Complex * x, _Complex long double y ) { *x = *x \ y; return *x; }
+
+static inline long int ?\?( long int x, unsigned long y ) {	// disallow negative exponent
+    if ( y == 0 ) return 1;
+    if ( x == 2 ) return x << (y - 1);
+    long int prod = 1;
+    for ( unsigned int i = 0; i < y; i += 1 ) {
+		prod = prod * x;
+    } // for
+    return prod;
+}
+static inline double ?\?( long int x, signed long y ) {	// allow negative exponent
+    if ( y >=  0 ) return (double)(x \ (unsigned int)y);
+    else return 1.0 / x \ (unsigned int)(-y);
+}
+static inline forall( otype T | { void ?{}( T * this, one_t ); T ?*?( T, T ); } )
+T ?\?( T x, unsigned long y ) {
+    T prod = 1;
+    for ( unsigned int i = 1; i < y; i += 1 ) {
+		prod = prod * x;
+    } // for
+    return prod;
+}
+static inline long int ?\=?( long int * x, unsigned long y ) { *x = *x \ y; return *x; }
+static inline int ?\=?( int * x, unsigned long y ) { *x = *x \ y; return *x; }
+
+//---------------------- Logarithm ----------------------
+
+static inline float log( float x ) { return logf( x ); }
 // extern "C" { double log( double ); }
-long double log( long double );
-float _Complex log( float _Complex );
-double _Complex log( double _Complex );
-long double _Complex log( long double _Complex );
-
-float log2( float );
+static inline long double log( long double x ) { return logl( x ); }
+static inline float _Complex log( float _Complex x ) { return clogf( x ); }
+static inline double _Complex log( double _Complex x ) { return clog( x ); }
+static inline long double _Complex log( long double _Complex x ) { return clogl( x ); }
+
+static inline float log2( float x ) { return log2f( x ); }
 // extern "C" { double log2( double ); }
-long double log2( long double );
-// float _Complex log2( float _Complex );
-// double _Complex log2( double _Complex );
-// long double _Complex log2( long double _Complex );
-
-float log10( float );
+static inline long double log2( long double x ) { return log2l( x ); }
+// static inline float _Complex log2( float _Complex x ) { return clog2f( x ); }
+// static inline double _Complex log2( double _Complex x ) { return clog2( x ); }
+// static inline long double _Complex log2( long double _Complex x ) { return clog2l( x ); }
+
+static inline float log10( float x ) { return log10f( x ); }
 // extern "C" { double log10( double ); }
-long double log10( long double );
-// float _Complex log10( float _Complex );
-// double _Complex log10( double _Complex );
-// long double _Complex log10( long double _Complex );
-
-float log1p( float );
+static inline long double log10( long double x ) { return log10l( x ); }
+// static inline float _Complex log10( float _Complex x ) { return clog10f( x ); }
+// static inline double _Complex log10( double _Complex x ) { return clog10( x ); }
+// static inline long double _Complex log10( long double _Complex x ) { return clog10l( x ); }
+
+static inline float log1p( float x ) { return log1pf( x ); }
 // extern "C" { double log1p( double ); }
-long double log1p( long double );
-
-int ilogb( float );
+static inline long double log1p( long double x ) { return log1pl( x ); }
+
+static inline int ilogb( float x ) { return ilogbf( x ); }
 // extern "C" { int ilogb( double ); }
-int ilogb( long double );
-
-float logb( float );
+static inline int ilogb( long double x ) { return ilogbl( x ); }
+
+static inline float logb( float x ) { return logbf( x ); }
 // extern "C" { double logb( double ); }
-long double logb( long double );
-
-//---------------------- Power ----------------------
-
-float sqrt( float );
+static inline long double logb( long double x ) { return logbl( x ); }
+
+static inline float sqrt( float x ) { return sqrtf( x ); }
 // extern "C" { double sqrt( double ); }
-long double sqrt( long double );
-float _Complex sqrt( float _Complex );
-double _Complex sqrt( double _Complex );
-long double _Complex sqrt( long double _Complex );
-
-float cbrt( float );
+static inline long double sqrt( long double x ) { return sqrtl( x ); }
+static inline float _Complex sqrt( float _Complex x ) { return csqrtf( x ); }
+static inline double _Complex sqrt( double _Complex x ) { return csqrt( x ); }
+static inline long double _Complex sqrt( long double _Complex x ) { return csqrtl( x ); }
+
+static inline float cbrt( float x ) { return cbrtf( x ); }
 // extern "C" { double cbrt( double ); }
-long double cbrt( long double );
-
-float hypot( float, float );
+static inline long double cbrt( long double x ) { return cbrtl( x ); }
+
+static inline float hypot( float x, float y ) { return hypotf( x, y ); }
 // extern "C" { double hypot( double, double ); }
-long double hypot( long double, long double );
-
-float pow( float, float );
-// extern "C" { double pow( double, double ); }
-long double pow( long double, long double );
-float _Complex pow( float _Complex, float _Complex );
-double _Complex pow( double _Complex, double _Complex );
-long double _Complex pow( long double _Complex, long double _Complex );
+static inline long double hypot( long double x, long double y ) { return hypotl( x, y ); }
 
 //---------------------- Trigonometric ----------------------
 
-float sin( float );
+static inline float sin( float x ) { return sinf( x ); }
 // extern "C" { double sin( double ); }
-long double sin( long double );
-float _Complex sin( float _Complex );
-double _Complex sin( double _Complex );
-long double _Complex sin( long double _Complex );
-
-float cos( float );
+static inline long double sin( long double x ) { return sinl( x ); }
+static inline float _Complex sin( float _Complex x ) { return csinf( x ); }
+static inline double _Complex sin( double _Complex x ) { return csin( x ); }
+static inline long double _Complex sin( long double _Complex x ) { return csinl( x ); }
+
+static inline float cos( float x ) { return cosf( x ); }
 // extern "C" { double cos( double ); }
-long double cos( long double );
-float _Complex cos( float _Complex );
-double _Complex cos( double _Complex );
-long double _Complex cos( long double _Complex );
-
-float tan( float );
+static inline long double cos( long double x ) { return cosl( x ); }
+static inline float _Complex cos( float _Complex x ) { return ccosf( x ); }
+static inline double _Complex cos( double _Complex x ) { return ccos( x ); }
+static inline long double _Complex cos( long double _Complex x ) { return ccosl( x ); }
+
+static inline float tan( float x ) { return tanf( x ); }
 // extern "C" { double tan( double ); }
-long double tan( long double );
-float _Complex tan( float _Complex );
-double _Complex tan( double _Complex );
-long double _Complex tan( long double _Complex );
-
-float asin( float );
+static inline long double tan( long double x ) { return tanl( x ); }
+static inline float _Complex tan( float _Complex x ) { return ctanf( x ); }
+static inline double _Complex tan( double _Complex x ) { return ctan( x ); }
+static inline long double _Complex tan( long double _Complex x ) { return ctanl( x ); }
+
+static inline float asin( float x ) { return asinf( x ); }
 // extern "C" { double asin( double ); }
-long double asin( long double );
-float _Complex asin( float _Complex );
-double _Complex asin( double _Complex );
-long double _Complex asin( long double _Complex );
-
-float acos( float );
+static inline long double asin( long double x ) { return asinl( x ); }
+static inline float _Complex asin( float _Complex x ) { return casinf( x ); }
+static inline double _Complex asin( double _Complex x ) { return casin( x ); }
+static inline long double _Complex asin( long double _Complex x ) { return casinl( x ); }
+
+static inline float acos( float x ) { return acosf( x ); }
 // extern "C" { double acos( double ); }
-long double acos( long double );
-float _Complex acos( float _Complex );
-double _Complex acos( double _Complex );
-long double _Complex acos( long double _Complex );
-
-float atan( float );
+static inline long double acos( long double x ) { return acosl( x ); }
+static inline float _Complex acos( float _Complex x ) { return cacosf( x ); }
+static inline double _Complex acos( double _Complex x ) { return cacos( x ); }
+static inline long double _Complex acos( long double _Complex x ) { return cacosl( x ); }
+
+static inline float atan( float x ) { return atanf( x ); }
 // extern "C" { double atan( double ); }
-long double atan( long double );
-float _Complex atan( float _Complex );
-double _Complex atan( double _Complex );
-long double _Complex atan( long double _Complex );
-
-float atan2( float, float );
+static inline long double atan( long double x ) { return atanl( x ); }
+static inline float _Complex atan( float _Complex x ) { return catanf( x ); }
+static inline double _Complex atan( double _Complex x ) { return catan( x ); }
+static inline long double _Complex atan( long double _Complex x ) { return catanl( x ); }
+
+static inline float atan2( float x, float y ) { return atan2f( x, y ); }
 // extern "C" { double atan2( double, double ); }
-long double atan2( long double, long double );
-
-float atan( float, float );								// alternative name for atan2
-double atan( double, double );
-long double atan( long double, long double );
+static inline long double atan2( long double x, long double y ) { return atan2l( x, y ); }
+
+// alternative name for atan2
+static inline float atan( float x, float y ) { return atan2f( x, y ); }
+static inline double atan( double x, double y ) { return atan2( x, y ); }
+static inline long double atan( long double x, long double y ) { return atan2l( x, y ); }
 
 //---------------------- Hyperbolic ----------------------
 
-float sinh( float );
+static inline float sinh( float x ) { return sinhf( x ); }
 // extern "C" { double sinh( double ); }
-long double sinh( long double );
-float _Complex sinh( float _Complex );
-double _Complex sinh( double _Complex );
-long double _Complex sinh( long double _Complex );
-
-float cosh( float );
+static inline long double sinh( long double x ) { return sinhl( x ); }
+static inline float _Complex sinh( float _Complex x ) { return csinhf( x ); }
+static inline double _Complex sinh( double _Complex x ) { return csinh( x ); }
+static inline long double _Complex sinh( long double _Complex x ) { return csinhl( x ); }
+
+static inline float cosh( float x ) { return coshf( x ); }
 // extern "C" { double cosh( double ); }
-long double cosh( long double );
-float _Complex cosh( float _Complex );
-double _Complex cosh( double _Complex );
-long double _Complex cosh( long double _Complex );
-
-float tanh( float );
+static inline long double cosh( long double x ) { return coshl( x ); }
+static inline float _Complex cosh( float _Complex x ) { return ccoshf( x ); }
+static inline double _Complex cosh( double _Complex x ) { return ccosh( x ); }
+static inline long double _Complex cosh( long double _Complex x ) { return ccoshl( x ); }
+
+static inline float tanh( float x ) { return tanhf( x ); }
 // extern "C" { double tanh( double ); }
-long double tanh( long double );
-float _Complex tanh( float _Complex );
-double _Complex tanh( double _Complex );
-long double _Complex tanh( long double _Complex );
-
-float asinh( float );
+static inline long double tanh( long double x ) { return tanhl( x ); }
+static inline float _Complex tanh( float _Complex x ) { return ctanhf( x ); }
+static inline double _Complex tanh( double _Complex x ) { return ctanh( x ); }
+static inline long double _Complex tanh( long double _Complex x ) { return ctanhl( x ); }
+
+static inline float asinh( float x ) { return asinhf( x ); }
 // extern "C" { double asinh( double ); }
-long double asinh( long double );
-float _Complex asinh( float _Complex );
-double _Complex asinh( double _Complex );
-long double _Complex asinh( long double _Complex );
-
-float acosh( float );
+static inline long double asinh( long double x ) { return asinhl( x ); }
+static inline float _Complex asinh( float _Complex x ) { return casinhf( x ); }
+static inline double _Complex asinh( double _Complex x ) { return casinh( x ); }
+static inline long double _Complex asinh( long double _Complex x ) { return casinhl( x ); }
+
+static inline float acosh( float x ) { return acoshf( x ); }
 // extern "C" { double acosh( double ); }
-long double acosh( long double );
-float _Complex acosh( float _Complex );
-double _Complex acosh( double _Complex );
-long double _Complex acosh( long double _Complex );
-
-float atanh( float );
+static inline long double acosh( long double x ) { return acoshl( x ); }
+static inline float _Complex acosh( float _Complex x ) { return cacoshf( x ); }
+static inline double _Complex acosh( double _Complex x ) { return cacosh( x ); }
+static inline long double _Complex acosh( long double _Complex x ) { return cacoshl( x ); }
+
+static inline float atanh( float x ) { return atanhf( x ); }
 // extern "C" { double atanh( double ); }
-long double atanh( long double );
-float _Complex atanh( float _Complex );
-double _Complex atanh( double _Complex );
-long double _Complex atanh( long double _Complex );
+static inline long double atanh( long double x ) { return atanhl( x ); }
+static inline float _Complex atanh( float _Complex x ) { return catanhf( x ); }
+static inline double _Complex atanh( double _Complex x ) { return catanh( x ); }
+static inline long double _Complex atanh( long double _Complex x ) { return catanhl( x ); }
 
 //---------------------- Error / Gamma ----------------------
 
-float erf( float );
+static inline float erf( float x ) { return erff( x ); }
 // extern "C" { double erf( double ); }
-long double erf( long double );
+static inline long double erf( long double x ) { return erfl( x ); }
 // float _Complex erf( float _Complex );
 // double _Complex erf( double _Complex );
 // long double _Complex erf( long double _Complex );
 
-float erfc( float );
+static inline float erfc( float x ) { return erfcf( x ); }
 // extern "C" { double erfc( double ); }
-long double erfc( long double );
+static inline long double erfc( long double x ) { return erfcl( x ); }
 // float _Complex erfc( float _Complex );
 // double _Complex erfc( double _Complex );
 // long double _Complex erfc( long double _Complex );
 
-float lgamma( float );
+static inline float lgamma( float x ) { return lgammaf( x ); }
 // extern "C" { double lgamma( double ); }
-long double lgamma( long double );
-float lgamma( float, int * );
-double lgamma( double, int * );
-long double lgamma( long double, int * );
-
-float tgamma( float );
+static inline long double lgamma( long double x ) { return lgammal( x ); }
+static inline float lgamma( float x, int * sign ) { return lgammaf_r( x, sign ); }
+static inline double lgamma( double x, int * sign ) { return lgamma_r( x, sign ); }
+static inline long double lgamma( long double x, int * sign ) { return lgammal_r( x, sign ); }
+
+static inline float tgamma( float x ) { return tgammaf( x ); }
 // extern "C" { double tgamma( double ); }
-long double tgamma( long double );
+static inline long double tgamma( long double x ) { return tgammal( x ); }
 
 //---------------------- Nearest Integer ----------------------
 
-float floor( float );
+static inline float floor( float x ) { return floorf( x ); }
 // extern "C" { double floor( double ); }
-long double floor( long double );
-
-float ceil( float );
+static inline long double floor( long double x ) { return floorl( x ); }
+
+static inline float ceil( float x ) { return ceilf( x ); }
 // extern "C" { double ceil( double ); }
-long double ceil( long double );
-
-float trunc( float );
+static inline long double ceil( long double x ) { return ceill( x ); }
+
+static inline float trunc( float x ) { return truncf( x ); }
 // extern "C" { double trunc( double ); }
-long double trunc( long double );
-
-float rint( float );
-long double rint( long double );
-long int rint( float );
-long int rint( double );
-long int rint( long double );
-long long int rint( float );
-long long int rint( double );
-long long int rint( long double );
-
-long int lrint( float );
+static inline long double trunc( long double x ) { return truncl( x ); }
+
+static inline float rint( float x ) { return rintf( x ); }
+// extern "C" { double rint( double x ); }
+static inline long double rint( long double x ) { return rintl( x ); }
+static inline long int rint( float x ) { return lrintf( x ); }
+static inline long int rint( double x ) { return lrint( x ); }
+static inline long int rint( long double x ) { return lrintl( x ); }
+static inline long long int rint( float x ) { return llrintf( x ); }
+static inline long long int rint( double x ) { return llrint( x ); }
+static inline long long int rint( long double x ) { return llrintl( x ); }
+
+static inline long int lrint( float x ) { return lrintf( x ); }
 // extern "C" { long int lrint( double ); }
-long int lrint( long double );
-long long int llrint( float );
+static inline long int lrint( long double x ) { return lrintl( x ); }
+static inline long long int llrint( float x ) { return llrintf( x ); }
 // extern "C" { long long int llrint( double ); }
-long long int llrint( long double );
-
-float nearbyint( float );
+static inline long long int llrint( long double x ) { return llrintl( x ); }
+
+static inline float nearbyint( float x ) { return nearbyintf( x ); }
 // extern "C" { double nearbyint( double ); }
-long double nearbyint( long double );
-
-float round( float );
-long double round( long double );
-long int round( float );
-long int round( double );
-long int round( long double );
-long long int round( float );
-long long int round( double );
-long long int round( long double );
-
-long int lround( float );
+static inline long double nearbyint( long double x ) { return nearbyintl( x ); }
+
+static inline float round( float x ) { return roundf( x ); }
+// extern "C" { double round( double x ); }
+static inline long double round( long double x ) { return roundl( x ); }
+static inline long int round( float x ) { return lroundf( x ); }
+static inline long int round( double x ) { return lround( x ); }
+static inline long int round( long double x ) { return lroundl( x ); }
+static inline long long int round( float x ) { return llroundf( x ); }
+static inline long long int round( double x ) { return llround( x ); }
+static inline long long int round( long double x ) { return llroundl( x ); }
+
+static inline long int lround( float x ) { return lroundf( x ); }
 // extern "C" { long int lround( double ); }
-long int lround( long double );
-long long int llround( float );
+static inline long int lround( long double x ) { return lroundl( x ); }
+static inline long long int llround( float x ) { return llroundf( x ); }
 // extern "C" { long long int llround( double ); }
-long long int llround( long double );
+static inline long long int llround( long double x ) { return llroundl( x ); }
 
 //---------------------- Manipulation ----------------------
 
-float copysign( float, float );
+static inline float copysign( float x, float y ) { return copysignf( x, y ); }
 // extern "C" { double copysign( double, double ); }
-long double copysign( long double, long double );
-
-float frexp( float, int * );
+static inline long double copysign( long double x, long double y ) { return copysignl( x, y ); }
+
+static inline float frexp( float x, int * ip ) { return frexpf( x, ip ); }
 // extern "C" { double frexp( double, int * ); }
-long double frexp( long double, int * );
-
-float ldexp( float, int );
+static inline long double frexp( long double x, int * ip ) { return frexpl( x, ip ); }
+
+static inline float ldexp( float x, int exp2 ) { return ldexpf( x, exp2 ); }
 // extern "C" { double ldexp( double, int ); }
-long double ldexp( long double, int );
-
-[ float, float ] modf( float );
-float modf( float, float * );
-[ double, double ] modf( double );
+static inline long double ldexp( long double x, int exp2 ) { return ldexpl( x, exp2 ); }
+
+static inline [ float, float ] modf( float x ) { float i; x = modff( x, &i ); return [ i, x ]; }
+static inline float modf( float x, float * i ) { return modff( x, i ); }
+static inline [ double, double ] modf( double x ) { double i; x = modf( x, &i ); return [ i, x ]; }
 // extern "C" { double modf( double, double * ); }
-[ long double, long double ] modf( long double );
-long double modf( long double, long double * );
-
-float nextafter( float, float );
+static inline [ long double, long double ] modf( long double x ) { long double i; x = modfl( x, &i ); return [ i, x ]; }
+static inline long double modf( long double x, long double * i ) { return modfl( x, i ); }
+
+static inline float nextafter( float x, float y ) { return nextafterf( x, y ); }
 // extern "C" { double nextafter( double, double ); }
-long double nextafter( long double, long double );
-
-float nexttoward( float, long double );
+static inline long double nextafter( long double x, long double y ) { return nextafterl( x, y ); }
+
+static inline float nexttoward( float x, long double y ) { return nexttowardf( x, y ); }
 // extern "C" { double nexttoward( double, long double ); }
-long double nexttoward( long double, long double );
-
-float scalbn( float, int );
+static inline long double nexttoward( long double x, long double y ) { return nexttowardl( x, y ); }
+
+static inline float scalbn( float x, int exp ) { return scalbnf( x, exp ); }
 // extern "C" { double scalbn( double, int ); }
-long double scalbn( long double, int );
-
-float scalbln( float, long int );
+static inline long double scalbn( long double x, int exp ) { return scalbnl( x, exp ); }
+static inline float scalbn( float x, long int exp ) { return scalblnf( x, exp ); }
+static inline double scalbn( double x, long int exp ) { return scalbln( x, exp ); }
+static inline long double scalbn( long double x, long int exp ) { return scalblnl( x, exp ); }
+
+static inline float scalbln( float x, long int exp ) { return scalblnf( x, exp ); }
 // extern "C" { double scalbln( double, long int ); }
-long double scalbln( long double, long int );
+static inline long double scalbln( long double x, long int exp ) { return scalblnl( x, exp ); }
 
 // Local Variables: //
Index: src/libcfa/math.c
===================================================================
--- src/libcfa/math.c	(revision 921fe6ad27e90b63b7bddda41b0caffdbfaa8ab8)
+++ 	(revision )
@@ -1,299 +1,0 @@
-//
-// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
-//
-// The contents of this file are covered under the licence agreement in the
-// file "LICENCE" distributed with Cforall.
-//
-// math.c --
-//
-// Author           : Peter A. Buhr
-// Created On       : Tue Apr 19 22:23:08 2016
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Tue May 23 22:52:13 2017
-// Update Count     : 76
-//
-
-#include "math"
-
-extern "C" {
-#include <complex.h>
-} // extern "C"
-
-float ?%?( float x, float y ) { return fmodf( x, y ); }
-float fmod( float x, float y ) { return fmodf( x, y ); }
-double ?%?( double x, double y ) { return fmod( x, y ); }
-long double ?%?( long double x, long double y ) { return fmodl( x, y ); }
-long double fmod( long double x, long double y ) { return fmodl( x, y ); }
-
-float remainder( float x, float y ) { return remainderf( x, y ); }
-long double remainder( long double x, long double y ) { return remainderl( x, y ); }
-
-[ int, float ] remquo( float x, float y ) { int quo; x = remquof( x, y, &quo ); return [ quo, x ]; }
-float remquo( float x, float y, int *quo ) { return remquof( x, y, quo ); }
-[ int, double ] remquo( double x, double y ) { int quo; x = remquo( x, y, &quo ); return [ quo, x ]; }
-[ int, long double ] remquo( long double x, long double y ) { int quo; x = remquol( x, y, &quo ); return [ quo, x ]; }
-long double remquo( long double x, long double y, int *quo ) { return remquol( x, y, quo ); }
-
-[ int, float ] div( float x, float y ) { int quo; x = remquof( x, y, &quo ); return [ quo, x ]; }
-float div( float x, float y, int *quo ) { return remquof( x, y, quo ); }
-[ int, double ] div( double x, double y ) { int quo; x = remquo( x, y, &quo ); return [ quo, x ]; }
-[ int, long double ] div( long double x, long double y ) { int quo; x = remquol( x, y, &quo ); return [ quo, x ]; }
-long double div( long double x, long double y, int *quo ) { return remquol( x, y, quo ); }
-
-float fma( float x, float y, float z ) { return fmaf( x, y, z ); }
-long double fma( long double x, long double y, long double z ) { return fmal( x, y, z ); }
-
-float fdim( float x, float y ) { return fdimf( x, y ); }
-long double fdim( long double x, long double y ) { return fdiml( x, y ); }
-
-float nan( const char *tag ) { return nanf( tag ); }
-long double nan( const char *tag ) { return nanl( tag ); }
-
-//---------------------- Exponential ----------------------
-
-float exp( float x ) { return expf( x ); }
-long double exp( long double x ) { return expl( x ); }
-float _Complex exp( float _Complex x ) { return cexpf( x ); }
-double _Complex exp( double _Complex x ) { return cexp( x ); }
-long double _Complex exp( long double _Complex x ) { return cexpl( x ); }
-
-float exp2( float x ) { return exp2f( x ); }
-long double exp2( long double x ) { return exp2l( x ); }
-// float _Complex exp2( float _Complex x ) { return cexp2f( x ); }
-// double _Complex exp2( double _Complex x ) { return cexp2( x ); }
-// long double _Complex exp2( long double _Complex x ) { return cexp2l( x ); }
-
-float expm1( float x ) { return expm1f( x ); }
-long double expm1( long double x ) { return expm1l( x ); }
-
-float log( float x ) { return logf( x ); }
-long double log( long double x ) { return logl( x ); }
-float _Complex log( float _Complex x ) { return clogf( x ); }
-double _Complex log( double _Complex x ) { return clog( x ); }
-long double _Complex log( long double _Complex x ) { return clogl( x ); }
-
-float log2( float x ) { return log2f( x ); }
-long double log2( long double x ) { return log2l( x ); }
-// float _Complex log2( float _Complex x ) { return clog2f( x ); }
-// double _Complex log2( double _Complex x ) { return clog2( x ); }
-// long double _Complex log2( long double _Complex x ) { return clog2l( x ); }
-
-float log10( float x ) { return log10f( x ); }
-long double log10( long double x ) { return log10l( x ); }
-// float _Complex log10( float _Complex x ) { return clog10f( x ); }
-// double _Complex log10( double _Complex x ) { return clog10( x ); }
-// long double _Complex log10( long double _Complex x ) { return clog10l( x ); }
-
-float log1p( float x ) { return log1pf( x ); }
-long double log1p( long double x ) { return log1pl( x ); }
-
-int ilogb( float x ) { return ilogbf( x ); }
-int ilogb( long double x ) { return ilogbl( x ); }
-
-float logb( float x ) { return logbf( x ); }
-long double logb( long double x ) { return logbl( x ); }
-
-//---------------------- Power ----------------------
-
-float sqrt( float x ) { return sqrtf( x ); }
-long double sqrt( long double x ) { return sqrtl( x ); }
-float _Complex sqrt( float _Complex x ) { return csqrtf( x ); }
-double _Complex sqrt( double _Complex x ) { return csqrt( x ); }
-long double _Complex sqrt( long double _Complex x ) { return csqrtl( x ); }
-
-float cbrt( float x ) { return cbrtf( x ); }
-long double cbrt( long double x ) { return cbrtl( x ); }
-
-float hypot( float x, float y ) { return hypotf( x, y ); }
-long double hypot( long double x, long double y ) { return hypotl( x, y ); }
-
-float pow( float x, float y ) { return powf( x, y ); }
-long double pow( long double x, long double y ) { return powl( x, y ); }
-float _Complex pow( float _Complex x, float _Complex y ) { return cpowf( x, y ); }
-double _Complex pow( double _Complex x, double _Complex y ) { return cpow( x, y ); }
-long double _Complex pow( long double _Complex x, long double _Complex y ) { return cpowl( x, y ); }
-
-//---------------------- Trigonometric ----------------------
-
-float sin( float x ) { return sinf( x ); }
-long double sin( long double x ) { return sinl( x ); }
-float _Complex sin( float _Complex x ) { return csinf( x ); }
-double _Complex sin( double _Complex x ) { return csin( x ); }
-long double _Complex sin( long double _Complex x ) { return csinl( x ); }
-
-float cos( float x ) { return cosf( x ); }
-long double cos( long double x ) { return cosl( x ); }
-float _Complex cos( float _Complex x ) { return ccosf( x ); }
-double _Complex cos( double _Complex x ) { return ccos( x ); }
-long double _Complex cos( long double _Complex x ) { return ccosl( x ); }
-
-float tan( float x ) { return tanf( x ); }
-long double tan( long double x ) { return tanl( x ); }
-float _Complex tan( float _Complex x ) { return ctanf( x ); }
-double _Complex tan( double _Complex x ) { return ctan( x ); }
-long double _Complex tan( long double _Complex x ) { return ctanl( x ); }
-
-float asin( float x ) { return asinf( x ); }
-long double asin( long double x ) { return asinl( x ); }
-float _Complex asin( float _Complex x ) { return casinf( x ); }
-double _Complex asin( double _Complex x ) { return casin( x ); }
-long double _Complex asin( long double _Complex x ) { return casinl( x ); }
-
-float acos( float x ) { return acosf( x ); }
-long double acos( long double x ) { return acosl( x ); }
-float _Complex acos( float _Complex x ) { return cacosf( x ); }
-double _Complex acos( double _Complex x ) { return cacos( x ); }
-long double _Complex acos( long double _Complex x ) { return cacosl( x ); }
-
-float atan( float x ) { return atanf( x ); }
-long double atan( long double x ) { return atanl( x ); }
-float _Complex atan( float _Complex x ) { return catanf( x ); }
-double _Complex atan( double _Complex x ) { return catan( x ); }
-long double _Complex atan( long double _Complex x ) { return catanl( x ); }
-
-float atan2( float x, float y ) { return atan2f( x, y ); }
-long double atan2( long double x, long double y ) { return atan2l( x, y ); }
-
-float atan( float x, float y ) { return atan2f( x, y ); }
-double atan( double x, double y ) { return atan2( x, y ); }
-long double atan( long double x, long double y ) { return atan2l( x, y ); }
-
-//---------------------- Hyperbolic ----------------------
-
-float sinh( float x ) { return sinhf( x ); }
-long double sinh( long double x ) { return sinhl( x ); }
-float _Complex sinh( float _Complex x ) { return csinhf( x ); }
-double _Complex sinh( double _Complex x ) { return csinh( x ); }
-long double _Complex sinh( long double _Complex x ) { return csinhl( x ); }
-
-float cosh( float x ) { return coshf( x ); }
-long double cosh( long double x ) { return coshl( x ); }
-float _Complex cosh( float _Complex x ) { return ccoshf( x ); }
-double _Complex cosh( double _Complex x ) { return ccosh( x ); }
-long double _Complex cosh( long double _Complex x ) { return ccoshl( x ); }
-
-float tanh( float x ) { return tanhf( x ); }
-long double tanh( long double x ) { return tanhl( x ); }
-float _Complex tanh( float _Complex x ) { return ctanhf( x ); }
-double _Complex tanh( double _Complex x ) { return ctanh( x ); }
-long double _Complex tanh( long double _Complex x ) { return ctanhl( x ); }
-
-float asinh( float x ) { return asinhf( x ); }
-long double asinh( long double x ) { return asinhl( x ); }
-float _Complex asinh( float _Complex x ) { return casinhf( x ); }
-double _Complex asinh( double _Complex x ) { return casinh( x ); }
-long double _Complex asinh( long double _Complex x ) { return casinhl( x ); }
-
-float acosh( float x ) { return acoshf( x ); }
-long double acosh( long double x ) { return acoshl( x ); }
-float _Complex acosh( float _Complex x ) { return cacoshf( x ); }
-double _Complex acosh( double _Complex x ) { return cacosh( x ); }
-long double _Complex acosh( long double _Complex x ) { return cacoshl( x ); }
-
-float atanh( float x ) { return atanhf( x ); }
-long double atanh( long double x ) { return atanhl( x ); }
-float _Complex atanh( float _Complex x ) { return catanhf( x ); }
-double _Complex atanh( double _Complex x ) { return catanh( x ); }
-long double _Complex atanh( long double _Complex x ) { return catanhl( x ); }
-
-//---------------------- Error / Gamma ----------------------
-
-float erf( float x ) { return erff( x ); }
-long double erf( long double x ) { return erfl( x ); }
-// float _Complex erf( float _Complex x ) { return crflf( x ); }
-// double _Complex erf( double _Complex x ) { return crfl( x ); }
-// long double _Complex erf( long double _Complex x ) { return crfll( x ); }
-
-float erfc( float x ) { return erfcf( x ); }
-long double erfc( long double x ) { return erfcl( x ); }
-// float _Complex erfc( float _Complex x ) { return cerfcf( x ); }
-// double _Complex erfc( double _Complex x ) { return cerfc( x ); }
-// long double _Complex erfc( long double _Complex x ) { return cerfcl( x ); }
-
-float lgamma( float x ) { return lgammaf( x ); }
-long double lgamma( long double x ) { return lgammal( x ); }
-float lgamma( float x, int *sign ) { return lgammaf_r( x, sign ); }
-double lgamma( double x, int *sign ) { return lgamma_r( x, sign ); }
-long double lgamma( long double x, int *sign ) { return lgammal_r( x, sign ); }
-
-float tgamma( float x ) { return tgammaf( x ); }
-long double tgamma( long double x ) { return tgammal( x ); }
-
-//---------------------- Nearest Integer ----------------------
-
-float floor( float x ) { return floorf( x ); }
-long double floor( long double x ) { return floorl( x ); }
-
-float ceil( float x ) { return ceilf( x ); }
-long double ceil( long double x ) { return ceill( x ); }
-
-float trunc( float x ) { return truncf( x ); }
-long double trunc( long double x ) { return truncl( x ); }
-
-float rint( float x ) { return rintf( x ); }
-long double rint( long double x ) { return rintl( x ); }
-long int rint( float x ) { return lrintf( x ); }
-long int rint( double x ) { return lrint( x ); }
-long int rint( long double x ) { return lrintl( x ); }
-long long int rint( float x ) { return llrintf( x ); }
-long long int rint( double x ) { return llrint( x ); }
-long long int rint( long double x ) { return llrintl( x ); }
-
-long int lrint( float x ) { return lrintf( x ); }
-long int lrint( long double x ) { return lrintl( x ); }
-long long int llrint( float x ) { return llrintf( x ); }
-long long int llrint( long double x ) { return llrintl( x ); }
-
-float nearbyint( float x ) { return nearbyintf( x ); }
-long double nearbyint( long double x ) { return nearbyintl( x ); }
-
-float round( float x ) { return roundf( x ); }
-long double round( long double x ) { return roundl( x ); }
-long int round( float x ) { return lroundf( x ); }
-long int round( double x ) { return lround( x ); }
-long int round( long double x ) { return lroundl( x ); }
-long long int round( float x ) { return llroundf( x ); }
-long long int round( double x ) { return llround( x ); }
-long long int round( long double x ) { return llroundl( x ); }
-
-long int lround( float x ) { return lroundf( x ); }
-long int lround( long double x ) { return lroundl( x ); }
-long long int llround( float x ) { return llroundf( x ); }
-long long int llround( long double x ) { return llroundl( x ); }
-
-//---------------------- Manipulation ----------------------
-
-float copysign( float x, float y ) { return copysignf( x, y ); }
-long double copysign( long double x, long double y ) { return copysignl( x, y ); }
-
-float frexp( float x, int *ip ) { return frexpf( x, ip ); }
-long double frexp( long double x, int *ip ) { return frexpl( x, ip ); }
-
-float ldexp( float x, int exp2 ) { return ldexpf( x, exp2 ); }
-long double ldexp( long double x, int exp2 ) { return ldexpl( x, exp2 ); }
-
-[ float, float ] modf( float x ) { float i; x = modff( x, &i ); return [ i, x ]; }
-float modf( float x, float *i ) { return modff( x, i ); }
-[ double, double ] modf( double x ) { double i; x = modf( x, &i ); return [ i, x ]; }
-[ long double, long double ] modf( long double x ) { long double i; x = modfl( x, &i ); return [ i, x ]; }
-long double modf( long double x, long double *i ) { return modfl( x, i ); }
-
-float nextafter( float x, float y ) { return nextafterf( x, y ); }
-long double nextafter( long double x, long double y ) { return nextafterl( x, y ); }
-
-float nexttoward( float x, long double y ) { return nexttowardf( x, y ); }
-long double nexttoward( long double x, long double y ) { return nexttowardl( x, y ); }
-
-float scalbn( float x, int exp ) { return scalbnf( x, exp ); }
-long double scalbn( long double x, int exp ) { return scalbnl( x, exp ); }
-float scalbn( float x, long int exp ) { return scalblnf( x, exp ); }
-double scalbn( double x, long int exp ) { return scalbln( x, exp ); }
-long double scalbn( long double x, long int exp ) { return scalblnl( x, exp ); }
-
-float scalbln( float x, long int exp ) { return scalblnf( x, exp ); }
-long double scalbln( long double x, long int exp ) { return scalblnl( x, exp ); }
-
-// Local Variables: //
-// mode: c //
-// tab-width: 4 //
-// End: //
