Index: src/Parser/lex.ll
===================================================================
--- src/Parser/lex.ll	(revision a8e64c4029370bc62f193afaf75b9ad8e7f8a7df)
+++ src/Parser/lex.ll	(revision 0a208b842a9212f139dda75575089886452b6015)
@@ -10,6 +10,6 @@
  * Created On       : Sat Sep 22 08:58:10 2001
  * Last Modified By : Peter A. Buhr
- * Last Modified On : Thu May 18 09:03:49 2017
- * Update Count     : 513
+ * Last Modified On : Mon May 22 07:46:30 2017
+ * Update Count     : 525
  */
 
@@ -377,30 +377,30 @@
 "?"{op_binary_over}"?"	{ IDENTIFIER_RETURN(); }		// binary
 	/*
-	  This rule handles ambiguous cases with operator identifiers, e.g., "int *?*?()", where the string "*?*?"
-	  can be lexed as "*"/"?*?" or "*?"/"*?". Since it is common practise to put a unary operator juxtaposed
-	  to an identifier, e.g., "*i", users will be annoyed if they cannot do this with respect to operator
-	  identifiers. Even with this special hack, there are 5 general cases that cannot be handled. The first
-	  case is for the function-call identifier "?()":
-
-	  int * ?()();	// declaration: space required after '*'
-	  * ?()();	// expression: space required after '*'
-
-	  Without the space, the string "*?()" is ambiguous without N character look ahead; it requires scanning
-	  ahead to determine if there is a '(', which is the start of an argument/parameter list.
-
-	  The 4 remaining cases occur in expressions:
-
-	  i++?i:0;		// space required before '?'
-	  i--?i:0;		// space required before '?'
-	  i?++i:0;		// space required after '?'
-	  i?--i:0;		// space required after '?'
-
-	  In the first two cases, the string "i++?" is ambiguous, where this string can be lexed as "i"/"++?" or
-	  "i++"/"?"; it requires scanning ahead to determine if there is a '(', which is the start of an argument
-	  list.  In the second two cases, the string "?++x" is ambiguous, where this string can be lexed as
-	  "?++"/"x" or "?"/"++x"; it requires scanning ahead to determine if there is a '(', which is the start of
-	  an argument list.
+	  This rule handles ambiguous cases with operator identifiers, e.g., "int *?*?()", where the string "*?*?"  can be
+	  lexed as "*?"/"*?" or "*"/"?*?". Since it is common practise to put a unary operator juxtaposed to an identifier,
+	  e.g., "*i", users will be annoyed if they cannot do this with respect to operator identifiers. Therefore, there is
+	  a lexical look-ahead for the second case, with backtracking to return the leading unary operator and then
+	  reparsing the trailing operator identifier.  Otherwise a space is needed between the unary operator and operator
+	  identifier to disambiguate this common case.
+
+	  A similar issue occurs with the dereference, *?(...), and routine-call, ?()(...) identifiers.  The ambiguity
+	  occurs when the deference operator has no parameters, *?() and *?()(...), requiring arbitrary whitespace
+	  look-ahead for the routine-call parameter-list to disambiguate.  However, the dereference operator must have a
+	  parameter/argument to dereference *?(...).  Hence, always interpreting the string *?() as * ?() does not preclude
+	  any meaningful program.
+
+	  The remaining cases are with the increment/decrement operators and conditional expression:
+
+	  i++? ...(...);
+	  i?++ ...(...);
+
+	  requiring arbitrary whitespace look-ahead for the operator parameter-list, even though that interpretation is an
+      incorrect expression (juxtaposed identifiers).  Therefore, it is necessary to disambiguate these cases with a
+      space:
+
+	  i++ ? i : 0;
+	  i? ++i : 0;
 	*/
-{op_unary}"?"({op_unary_pre_post}|"[?]"|{op_binary_over}"?") {
+{op_unary}"?"({op_unary_pre_post}|"()"|"[?]"|{op_binary_over}"?") {
 	// 1 or 2 character unary operator ?
 	int i = yytext[1] == '?' ? 1 : 2;
Index: src/libcfa/containers/maybe
===================================================================
--- src/libcfa/containers/maybe	(revision 0a208b842a9212f139dda75575089886452b6015)
+++ src/libcfa/containers/maybe	(revision 0a208b842a9212f139dda75575089886452b6015)
@@ -0,0 +1,56 @@
+//
+// 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.
+//
+// maybe -- May contain a value.
+//
+// Author           : Andrew Beach
+// Created On       : Wed May 25 14:43:00 2017
+// Last Modified By : Andrew Beach
+// Last Modified On : Wed Apr 25 16:58:00 2017
+// Update Count     : 1
+//
+
+
+#ifndef MAYBE_H
+#define MAYBE_H
+
+
+// DO NOT USE DIRECTLY!
+forall(otype T)
+struct maybe {
+    _Bool has_value;
+    T value;
+};
+
+
+forall(otype T)
+void ?{}(maybe(T) * this);
+
+forall(otype T)
+void ?{}(maybe(T) * this, T value);
+
+forall(otype T)
+void ?{}(maybe(T) * this, maybe(T) other);
+
+forall(otype T)
+void ^?{}(maybe(T) * this);
+
+forall(otype T)
+_Bool ?!=?(result(T, E) this, zero_t);
+
+forall(otype T)
+maybe(T) maybe_value(T value);
+
+forall(otype T)
+maybe(T) maybe_none();
+
+forall(otype T)
+_Bool has_value(maybe(T) * this);
+
+forall(otype T)
+T get(maybe(T) * this);
+
+#endif // MAYBE_H
Index: src/libcfa/containers/maybe.c
===================================================================
--- src/libcfa/containers/maybe.c	(revision 0a208b842a9212f139dda75575089886452b6015)
+++ src/libcfa/containers/maybe.c	(revision 0a208b842a9212f139dda75575089886452b6015)
@@ -0,0 +1,70 @@
+//
+// 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.
+//
+// maybe.c -- May contain a value.
+//
+// Author           : Andrew Beach
+// Created On       : Wed May 25 15:40:00 2017
+// Last Modified By : Andrew Beach
+// Last Modified On : Wed May 25 17:00:00 2017
+// Update Count     : 1
+//
+
+#include <containers/maybe>
+#include <assert>
+
+
+forall(otype T)
+void ?{}(maybe(T) * this) {
+	this->has_value = false;
+}
+
+forall(otype T)
+void ?{}(maybe(T) * this, T value) {
+	this->has_value = true;
+	this->value = value;
+}
+
+forall(otype T)
+void ?{}(maybe(T) * this, maybe(T) other) {
+	this->has_value = other.has_value;
+	if (other.has_value) {
+		this->value = other.value;
+	}
+}
+
+forall(otype T)
+void ^?{}(maybe(T) * this) {
+	if (this->has_value) {
+		^(this->value){};
+	}
+}
+
+forall(otype T)
+_Bool ?!=?(result(T, E) this, zero_t) {
+	return !this->has_value;
+}
+
+forall(otype T)
+maybe(T) maybe_value(T value) {
+	return (Maybe(T)){value};
+}
+
+forall(otype T)
+maybe(T) maybe_none() {
+	return (Maybe(T)){};
+}
+
+forall(otype T)
+_Bool has_value(maybe(T) * this) {
+	return this->has_value;
+}
+
+forall(otype T)
+T get(maybe(T) * this) {
+	assertf(this->has_value, "attempt to get from maybe without value");
+	return this->value;
+}
Index: src/libcfa/containers/result
===================================================================
--- src/libcfa/containers/result	(revision 0a208b842a9212f139dda75575089886452b6015)
+++ src/libcfa/containers/result	(revision 0a208b842a9212f139dda75575089886452b6015)
@@ -0,0 +1,65 @@
+//
+// 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.
+//
+// result -- Contains the expected value or an error value.
+//
+// Author           : Andrew Beach
+// Created On       : Wed May 25 14:45:00 2017
+// Last Modified By : Andrew Beach
+// Last Modified On : Wed May 25 16:57:00 2017
+// Update Count     : 1
+//
+
+
+#ifndef RESULT_H
+#define RESULT_H
+
+
+// DO NOT USE DIRECTLY!
+forall(otype T, otype E)
+struct result {
+	_Bool has_value;
+	union {
+		T value;
+		E error;
+	};
+};
+
+
+forall(otype T, otype E)
+void ?{}(result(T, E) * this);
+
+forall(otype T, otype E)
+void ?{}(result(T, E) * this, one_t, T value);
+
+forall(otype T, otype E)
+void ?{}(result(T, E) * this, zero_t, E error);
+
+forall(otype T, otype E)
+void ?{}(result(T, E) * this, result(T, E) other);
+
+forall(otype T, otype E)
+void ^?{}(result(T, E) * this);
+
+forall(otype T, otype E)
+_Bool ?!=?(result(T, E) this, zero_t);
+
+forall(otype T, otype E)
+result(T, E) result_value(T value);
+
+forall(otype T, otype E)
+result(T, E) result_error(E error);
+
+forall(otype T, otype E)
+_Bool has_value(result(T, E) * this);
+
+forall(otype T, otype E)
+T get(result(T, E) * this);
+
+forall(otype T, otype E)
+E get_error(result(T, E) * this);
+
+#endif // RESULT_H
Index: src/libcfa/containers/result.c
===================================================================
--- src/libcfa/containers/result.c	(revision 0a208b842a9212f139dda75575089886452b6015)
+++ src/libcfa/containers/result.c	(revision 0a208b842a9212f139dda75575089886452b6015)
@@ -0,0 +1,87 @@
+//
+// 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.
+//
+// result.c -- Contains the expected value or an error value.
+//
+// Author           : Andrew Beach
+// Created On       : Wed May 25 15:40:00 2017
+// Last Modified By : Andrew Beach
+// Last Modified On : Wed May 25 17:02:00 2017
+// Update Count     : 1
+//
+
+#include <containers/result>
+#include <assert>
+
+
+forall(otype T, otype E)
+void ?{}(result(T, E) * this) {
+	this->has_value = false;
+	(this->error){};
+}
+
+forall(otype T, otype E)
+void ?{}(result(T, E) * this, one_t, T value) {
+	this->has_value = true;
+	this->value = value;
+}
+
+forall(otype T, otype E)
+void ?{}(result(T, E) * this, zero_t, E error) {
+	this->has_value = false;
+	this->error = error;
+}
+
+forall(otype T, otype E)
+void ?{}(result(T, E) * this, result(T, E) other) {
+	this->has_value = other.has_value;
+	if (other.has_value) {
+		this->value = other.value;
+	} else {
+		this->error = other.error;
+	}
+}
+
+forall(otype T, otype E)
+void ^?{}(result(T, E) * this) {
+	if (this->has_value) {
+		^(this->value){};
+	} else {
+		^(this->error){};
+	}
+}
+
+forall(otype T, otype E)
+_Bool ?!=?(result(T, E) this, zero_t) {
+	return !this->has_value;
+}
+
+forall(otype T, otype E)
+result(T, E) result_value(T value) {
+	return (Result(T, E)){1, value};
+}
+
+forall(otype T, otype E)
+result(T, E) result_error(E error) {
+	return (Result(T, E)){0, value};
+}
+
+forall(otype T, otype E)
+_Bool has_value(result(T, E) * this) {
+	return this->has_value;
+}
+
+forall(otype T, otype E)
+T get(result(T, E) * this) {
+    assertf(this->has_value, "attempt to get from result without value");
+	return this->value;
+}
+
+forall(otype T, otype E)
+E get_error(result(T, E) * this) {
+    assertf(this->has_value, "attempt to get from result without error");
+	return this->error;
+}
Index: src/libcfa/math
===================================================================
--- src/libcfa/math	(revision a8e64c4029370bc62f193afaf75b9ad8e7f8a7df)
+++ src/libcfa/math	(revision 0a208b842a9212f139dda75575089886452b6015)
@@ -10,6 +10,6 @@
 // Created On       : Mon Apr 18 23:37:04 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Apr 24 12:45:02 2016
-// Update Count     : 59
+// Last Modified On : Wed May 24 17:40:39 2017
+// Update Count     : 60
 //
 
@@ -20,11 +20,4 @@
 #include <math.h>										// fpclassify, isfinite, isnormal, isnan, isinf
 } // extern "C"
-
-float fabs( float );
-// extern "C" { double fabs( double ); }
-long double fabs( long double );
-float cabs( float _Complex );
-// extern "C" { double cabs( double _Complex ); }
-long double cabs( long double _Complex );
 
 float ?%?( float, float );
Index: src/libcfa/math.c
===================================================================
--- src/libcfa/math.c	(revision a8e64c4029370bc62f193afaf75b9ad8e7f8a7df)
+++ src/libcfa/math.c	(revision 0a208b842a9212f139dda75575089886452b6015)
@@ -10,6 +10,6 @@
 // Created On       : Tue Apr 19 22:23:08 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Apr 24 08:52:31 2016
-// Update Count     : 75
+// Last Modified On : Tue May 23 22:52:13 2017
+// Update Count     : 76
 //
 
@@ -19,9 +19,4 @@
 #include <complex.h>
 } // extern "C"
-
-float fabs( float x ) { return fabsf( x ); }
-long double fabs( long double x ) { return fabsl( x ); }
-float cabs( float _Complex x ) { return cabsf( x ); }
-long double cabs( long double _Complex x ) { return cabsl( x ); }
 
 float ?%?( float x, float y ) { return fmodf( x, y ); }
Index: src/libcfa/stdlib
===================================================================
--- src/libcfa/stdlib	(revision a8e64c4029370bc62f193afaf75b9ad8e7f8a7df)
+++ src/libcfa/stdlib	(revision 0a208b842a9212f139dda75575089886452b6015)
@@ -10,6 +10,6 @@
 // Created On       : Thu Jan 28 17:12:35 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue May  9 08:42:44 2017
-// Update Count     : 107
+// Last Modified On : Wed May 24 18:06:27 2017
+// Update Count     : 115
 //
 
@@ -28,5 +28,4 @@
 //---------------------------------------
 
-extern "C" { void * malloc( size_t ); }					// use default C routine for void *
 forall( dtype T | sized(T) ) T * malloc( void );
 forall( dtype T | sized(T) ) T * malloc( char fill );
@@ -42,9 +41,4 @@
 forall( dtype T | sized(T) ) T * memalign( size_t alignment );		// deprecated
 forall( dtype T | sized(T) ) int posix_memalign( T ** ptr, size_t alignment );
-
-extern "C" {
-void * memset( void * ptr, int fill, size_t size );
-void free( void * ptr );
-} // extern "C"
 
 forall( dtype T, ttype Params | sized(T) | { void ?{}(T *, Params); } ) T * new( Params p );
@@ -109,5 +103,5 @@
 double abs( double _Complex );
 long double abs( long double _Complex );
-forall ( otype T | { void ?{}( T *, zero_t ); int ?<?( T, T ); T -?( T ); } )
+forall( otype T | { void ?{}( T *, zero_t ); int ?<?( T, T ); T -?( T ); } )
 T abs( T );
 
@@ -115,14 +109,14 @@
 
 void rand48seed( long int s );
-char rand48();
-int rand48();
-unsigned int rand48();
-long int rand48();
-unsigned long int rand48();
-float rand48();
-double rand48();
-float _Complex rand48();
-double _Complex rand48();
-long double _Complex rand48();
+char rand48( void );
+int rand48( void );
+unsigned int rand48( void );
+long int rand48( void );
+unsigned long int rand48( void );
+float rand48( void );
+double rand48( void );
+float _Complex rand48( void );
+double _Complex rand48( void );
+long double _Complex rand48( void );
 
 //---------------------------------------
Index: src/libcfa/stdlib.c
===================================================================
--- src/libcfa/stdlib.c	(revision a8e64c4029370bc62f193afaf75b9ad8e7f8a7df)
+++ src/libcfa/stdlib.c	(revision 0a208b842a9212f139dda75575089886452b6015)
@@ -10,6 +10,6 @@
 // Created On       : Thu Jan 28 17:10:29 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue May  9 08:43:00 2017
-// Update Count     : 191
+// Last Modified On : Wed May 24 18:13:15 2017
+// Update Count     : 198
 //
 
@@ -279,14 +279,14 @@
 
 void rand48seed( long int s ) { srand48( s ); }
-char rand48() { return mrand48(); }
-int rand48() { return mrand48(); }
-unsigned int rand48() { return lrand48(); }
-long int rand48() { return mrand48(); }
-unsigned long int rand48() { return lrand48(); }
-float rand48() { return (float)drand48(); }				// otherwise float uses lrand48
-double rand48() { return drand48(); }
-float _Complex rand48() { return (float)drand48() + (float _Complex)(drand48() * _Complex_I); }
-double _Complex rand48() { return drand48() + (double _Complex)(drand48() * _Complex_I); }
-long double _Complex rand48() { return (long double)drand48() + (long double _Complex)(drand48() * _Complex_I); }
+char rand48( void ) { return mrand48(); }
+int rand48( void ) { return mrand48(); }
+unsigned int rand48( void ) { return lrand48(); }
+long int rand48( void ) { return mrand48(); }
+unsigned long int rand48( void ) { return lrand48(); }
+float rand48( void ) { return (float)drand48(); }		// otherwise float uses lrand48
+double rand48( void ) { return drand48(); }
+float _Complex rand48( void ) { return (float)drand48() + (float _Complex)(drand48() * _Complex_I); }
+double _Complex rand48( void ) { return drand48() + (double _Complex)(drand48() * _Complex_I); }
+long double _Complex rand48( void) { return (long double)drand48() + (long double _Complex)(drand48() * _Complex_I); }
 
 //---------------------------------------
Index: src/tests/.expect/64/math.txt
===================================================================
--- src/tests/.expect/64/math.txt	(revision a8e64c4029370bc62f193afaf75b9ad8e7f8a7df)
+++ src/tests/.expect/64/math.txt	(revision 0a208b842a9212f139dda75575089886452b6015)
@@ -1,59 +1,58 @@
-fabs: 1 1 1 1.41421 1.41421356237309505 1.41421356237309505
-fmod: 1 1 1 1 1 1
-remainder: -1 -1 -1
-remquo: 7 0.0999999 7 0.1 7 0.0999999999999999999
-div: 7 0.0999999 7 0.1 7 0.0999999999999999999
-fma: -2 -2 -2
-fdim: 2 2 2
-nan: nan nan nan
-exp: 2.71828 2.71828182845905 2.71828182845904524 1.46869+2.28736i 1.46869393991589+2.28735528717884i 1.46869393991588516+2.28735528717884239i
-exp2: 2 2 2
-expm1: 1.71828 1.71828182845905 1.71828182845904524
-log: 0 0 0 0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972655+0.78539816339744831i
-log2: 3 3 3
-log10: 2 2 2
-log1p: 0.693147 0.693147180559945 0.693147180559945309
-ilogb: 0 0 0
-logb: 3 3 3
-sqrt: 1 1 1 1.09868+0.45509i 1.09868411346781+0.455089860562227i 1.09868411346780997+0.455089860562227341i
-cbrt: 3 3 3
-hypot: 1.41421 1.4142135623731 1.41421356237309505
-pow: 1 1 1 0.273957+0.583701i 0.273957253830121+0.583700758758615i 0.273957253830121071+0.583700758758614628i
-sin: 0.841471 0.841470984807897 0.841470984807896507 1.29846+0.634964i 1.29845758141598+0.634963914784736i 1.29845758141597729+0.634963914784736108i
-cos: 0.540302 0.54030230586814 0.540302305868139717 0.83373-0.988898i 0.833730025131149-0.988897705762865i 0.833730025131149049-0.988897705762865096i
-tan: 1.55741 1.5574077246549 1.55740772465490223 0.271753+1.08392i 0.271752585319512+1.08392332733869i 0.271752585319511717+1.08392332733869454i
-asin: 1.5708 1.5707963267949 1.57079632679489662 0.666239+1.06128i 0.666239432492515+1.06127506190504i 0.666239432492515255+1.06127506190503565i
-acos: 0 0 0 0.904557-1.06128i 0.904556894302381-1.06127506190504i 0.904556894302381364-1.06127506190503565i
-atan: 0.785398 0.785398163397448 0.78539816339744831 1.01722+0.402359i 1.01722196789785+0.402359478108525i 1.01722196789785137+0.402359478108525094i
-atan2: 0.785398 0.785398163397448 0.78539816339744831 atan: 0.785398 0.785398163397448 0.78539816339744831 sinh: 1.1752 1.1752011936438 1.17520119364380146 0.634964+1.29846i 0.634963914784736+1.29845758141598i 0.634963914784736108+1.29845758141597729i
-cosh: 1.54308 1.54308063481524 1.54308063481524378 0.83373+0.988898i 0.833730025131149+0.988897705762865i 0.833730025131149049+0.988897705762865096i
-tanh: 0.761594 0.761594155955765 0.761594155955764888 1.08392+0.271753i 1.08392332733869+0.271752585319512i 1.08392332733869454+0.271752585319511717i
-acosh: 0 0 0 1.06128+0.904557i 1.06127506190504+0.904556894302381i 1.06127506190503565+0.904556894302381364i
-asinh: 0.881374 0.881373587019543 0.881373587019543025 1.06128+0.666239i 1.06127506190504+0.666239432492515i 1.06127506190503565+0.666239432492515255i
-atanh: inf inf inf 0.402359+1.01722i 0.402359478108525+1.01722196789785i 0.402359478108525094+1.01722196789785137i
-erf: 0.842701 0.842700792949715 0.842700792949714869
-erfc: 0.157299 0.157299207050285 0.157299207050285131
-lgamma: 1.79176 1.79175946922805 1.791759469228055
-lgamma: 1.79176 1 1.79175946922805 1 1.791759469228055 1
-tgamma: 6 6 6
-floor: 1 1 1
-ceil: 2 2 2
-trunc: 3 3 3
-rint: 2 2 2
-rint: 2 2 2
-rint: 2 2 2
-lrint: 2 2 2
-llrint: 2 2 2
-nearbyint: 4 4 4
-round: 2 2 2
-round: 2 2 2
-round: 2 2 2
-lround: 2 2 2
-llround: 2 2 2
-copysign: -1 -1 -1
-frexp: 0.5 3 0.5 3 0.5 3
-ldexp: 8 8 8
-modf: 2 0.3 2 0.3 2 0.3 nextafter: 2 2 2
-nexttoward: 2 2 2
-scalbn: 16 16 16
-scalbln: 16 16 16
+fmod:1 1 1 1 1 1
+remainder:-1 -1 -1
+remquo:7 0.0999999 7 0.1 7 0.0999999999999999999
+div:7 0.0999999 7 0.1 7 0.0999999999999999999
+fma:-2 -2 -2
+fdim:2 2 2
+nan:nan nan nan
+exp:2.71828 2.71828182845905 2.71828182845904524 1.46869+2.28736i 1.46869393991589+2.28735528717884i 1.46869393991588516+2.28735528717884239i
+exp2:2 2 2
+expm1:1.71828 1.71828182845905 1.71828182845904524
+log:0 0 0 0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972655+0.78539816339744831i
+log2:3 3 3
+log10:2 2 2
+log1p:0.693147 0.693147180559945 0.693147180559945309
+ilogb:0 0 0
+logb:3 3 3
+sqrt:1 1 1 1.09868+0.45509i 1.09868411346781+0.455089860562227i 1.09868411346780997+0.455089860562227341i
+cbrt:3 3 3
+hypot:1.41421 1.4142135623731 1.41421356237309505
+pow:1 1 1 0.273957+0.583701i 0.273957253830121+0.583700758758615i 0.273957253830121071+0.583700758758614628i
+sin:0.841471 0.841470984807897 0.841470984807896507 1.29846+0.634964i 1.29845758141598+0.634963914784736i 1.29845758141597729+0.634963914784736108i
+cos:0.540302 0.54030230586814 0.540302305868139717 0.83373-0.988898i 0.833730025131149-0.988897705762865i 0.833730025131149049-0.988897705762865096i
+tan:1.55741 1.5574077246549 1.55740772465490223 0.271753+1.08392i 0.271752585319512+1.08392332733869i 0.271752585319511717+1.08392332733869454i
+asin:1.5708 1.5707963267949 1.57079632679489662 0.666239+1.06128i 0.666239432492515+1.06127506190504i 0.666239432492515255+1.06127506190503565i
+acos:0 0 0 0.904557-1.06128i 0.904556894302381-1.06127506190504i 0.904556894302381364-1.06127506190503565i
+atan:0.785398 0.785398163397448 0.78539816339744831 1.01722+0.402359i 1.01722196789785+0.402359478108525i 1.01722196789785137+0.402359478108525094i
+atan2:0.785398 0.785398163397448 0.78539816339744831 atan:0.785398 0.785398163397448 0.78539816339744831 sinh:1.1752 1.1752011936438 1.17520119364380146 0.634964+1.29846i 0.634963914784736+1.29845758141598i 0.634963914784736108+1.29845758141597729i
+cosh:1.54308 1.54308063481524 1.54308063481524378 0.83373+0.988898i 0.833730025131149+0.988897705762865i 0.833730025131149049+0.988897705762865096i
+tanh:0.761594 0.761594155955765 0.761594155955764888 1.08392+0.271753i 1.08392332733869+0.271752585319512i 1.08392332733869454+0.271752585319511717i
+acosh:0 0 0 1.06128+0.904557i 1.06127506190504+0.904556894302381i 1.06127506190503565+0.904556894302381364i
+asinh:0.881374 0.881373587019543 0.881373587019543025 1.06128+0.666239i 1.06127506190504+0.666239432492515i 1.06127506190503565+0.666239432492515255i
+atanh:inf inf inf 0.402359+1.01722i 0.402359478108525+1.01722196789785i 0.402359478108525094+1.01722196789785137i
+erf:0.842701 0.842700792949715 0.842700792949714869
+erfc:0.157299 0.157299207050285 0.157299207050285131
+lgamma:1.79176 1.79175946922805 1.791759469228055
+lgamma:1.79176 1 1.79175946922805 1 1.791759469228055 1
+tgamma:6 6 6
+floor:1 1 1
+ceil:2 2 2
+trunc:3 3 3
+rint:2 2 2
+rint:2 2 2
+rint:2 2 2
+lrint:2 2 2
+llrint:2 2 2
+nearbyint:4 4 4
+round:2 2 2
+round:2 2 2
+round:2 2 2
+lround:2 2 2
+llround:2 2 2
+copysign:-1 -1 -1
+frexp:0.5 3 0.5 3 0.5 3
+ldexp:8 8 8
+modf:2 0.3 2 0.3 2 0.3 nextafter:2 2 2
+nexttoward:2 2 2
+scalbn:16 16 16
+scalbln:16 16 16
Index: src/tests/KRfunctions.c
===================================================================
--- src/tests/KRfunctions.c	(revision a8e64c4029370bc62f193afaf75b9ad8e7f8a7df)
+++ src/tests/KRfunctions.c	(revision 0a208b842a9212f139dda75575089886452b6015)
@@ -1,3 +1,2 @@
-//                               -*- Mode: C -*- 
 // 
 // Cforall Version 1.0.0 Copyright (C) 2017 University of Waterloo
@@ -11,6 +10,6 @@
 // Created On       : Thu Feb 16 15:23:17 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Feb 16 15:25:52 2017
-// Update Count     : 2
+// Last Modified On : Wed May 24 22:05:00 2017
+// Update Count     : 3
 // 
 
Index: src/tests/complex.c
===================================================================
--- src/tests/complex.c	(revision a8e64c4029370bc62f193afaf75b9ad8e7f8a7df)
+++ src/tests/complex.c	(revision 0a208b842a9212f139dda75575089886452b6015)
@@ -1,2 +1,17 @@
+// 
+// Cforall Version 1.0.0 Copyright (C) 2017 University of Waterloo
+//
+// The contents of this file are covered under the licence agreement in the
+// file "LICENCE" distributed with Cforall.
+// 
+// complex.c -- 
+// 
+// Author           : Peter A. Buhr
+// Created On       : Wed May 24 22:07:31 2017
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Wed May 24 22:08:01 2017
+// Update Count     : 1
+// 
+
 #include <stdio.h>
 #include <complex.h>
@@ -20,2 +35,7 @@
 #endif // __CFA
 }
+
+// Local Variables: //
+// tab-width: 4 //
+// compile-command: "cfa complex.c" //
+// End: //
Index: src/tests/gmp.c
===================================================================
--- src/tests/gmp.c	(revision a8e64c4029370bc62f193afaf75b9ad8e7f8a7df)
+++ src/tests/gmp.c	(revision 0a208b842a9212f139dda75575089886452b6015)
@@ -10,6 +10,6 @@
 // Created On       : Tue Apr 19 08:55:51 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon May 22 09:05:09 2017
-// Update Count     : 538
+// Last Modified On : Wed May 24 22:05:38 2017
+// Update Count     : 540
 // 
 
@@ -88,5 +88,5 @@
 	sout | (int)0 | fact | endl;
 	for ( unsigned int i = 1; i <= 40; i += 1 ) {
-		fact = fact * i;								// general case
+		fact *= i;										// general case
 		sout | i | fact | endl;
 	} // for
@@ -94,5 +94,5 @@
 
 // Local Variables: //
-// mode: c //
 // tab-width: 4 //
+// compile-command: "cfa gmp.c -l gmp" //
 // End: //
Index: src/tests/math.c
===================================================================
--- src/tests/math.c	(revision a8e64c4029370bc62f193afaf75b9ad8e7f8a7df)
+++ src/tests/math.c	(revision 0a208b842a9212f139dda75575089886452b6015)
@@ -10,6 +10,6 @@
 // Created On       : Fri Apr 22 14:59:21 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Apr 24 13:24:20 2016
-// Update Count     : 70
+// Last Modified On : Wed May 24 13:04:33 2017
+// Update Count     : 71
 // 
 
@@ -22,5 +22,4 @@
 	long double l;
 
-	sout | "fabs:" | fabs( -1.0F ) | fabs( -1.0D ) | fabs( -1.0L ) | cabs( -1.0F+1.0FI ) | cabs( -1.0D+1.0DI ) | cabs( -1.0DL+1.0LI ) | endl;
 	sout | "fmod:" | 5.0F % -2.0F | fmod( 5.0F, -2.0F ) | 5.0D % -2.0D | fmod( 5.0D, -2.0D ) | 5.0L % -2.0L | fmod( 5.0L, -2.0L ) | endl;
 	sout | "remainder:" | remainder( 2.0F, 3.0F ) | remainder( 2.0D, 3.0D ) | remainder( 2.0L, 3.0L ) | endl;
Index: src/tests/numericConstants.c
===================================================================
--- src/tests/numericConstants.c	(revision a8e64c4029370bc62f193afaf75b9ad8e7f8a7df)
+++ src/tests/numericConstants.c	(revision 0a208b842a9212f139dda75575089886452b6015)
@@ -1,2 +1,17 @@
+// 
+// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
+//
+// The contents of this file are covered under the licence agreement in the
+// file "LICENCE" distributed with Cforall.
+// 
+// numericConstants.c -- 
+// 
+// Author           : Peter A. Buhr
+// Created On       : Wed May 24 22:10:36 2017
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Wed May 24 22:11:36 2017
+// Update Count     : 2
+// 
+
 int main() {
 	1;							// decimal
@@ -48,3 +63,8 @@
 	0x_ff.ffp0;					// hex real
 	0x_1.ffff_ffff_p_128_l;
-}
+} // main
+
+// Local Variables: //
+// tab-width: 4 //
+// compile-command: "cfa minmax.c" //
+// End: //
Index: src/tests/rational.c
===================================================================
--- src/tests/rational.c	(revision a8e64c4029370bc62f193afaf75b9ad8e7f8a7df)
+++ src/tests/rational.c	(revision 0a208b842a9212f139dda75575089886452b6015)
@@ -10,6 +10,6 @@
 // Created On       : Mon Mar 28 08:43:12 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon May 15 21:32:22 2017
-// Update Count     : 64
+// Last Modified On : Wed May 17 15:46:35 2017
+// Update Count     : 65
 // 
 
