Index: src/libcfa/stdlib
===================================================================
--- src/libcfa/stdlib	(revision 3ce0d4400c0b556469634be2ec688b0fba8ddbee)
+++ src/libcfa/stdlib	(revision bbe1a87944804b0f3c9e486087ca6af21340e747)
@@ -10,6 +10,6 @@
 // Created On       : Thu Jan 28 17:12:35 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jun  2 08:46:35 2018
-// Update Count     : 306
+// Last Modified On : Tue Jul  3 08:17:28 2018
+// Update Count     : 324
 //
 
@@ -264,25 +264,32 @@
 //---------------------------------------
 
-extern "C" { void srandom( unsigned int seed ); }		// override C version
-char random( void );
-char random( char u );
-char random( char l, char u );
-int random( void );
-int random( int u );
-int random( int l, int u );
-unsigned int random( void );
-unsigned int random( unsigned int u );
-unsigned int random( unsigned int l, unsigned int u );
-extern "C" { long int random( void ); }					// override C version
-long int random( long int u );
-long int random( long int l, long int u );
-unsigned long int random( void );
-unsigned long int random( unsigned long int u );
-unsigned long int random( unsigned long int l, unsigned long int u );
-float random( void );
-double random( void );
-float _Complex random( void );
-double _Complex random( void );
-long double _Complex random( void );
+extern "C" {											// override C version
+	void srandom( unsigned int seed );
+	long int random( void );
+} // extern "C"
+
+static inline {
+	long int random( long int l, long int u ) { if ( u < l ) [u, l] = [l, u]; return lrand48() % (u - l) + l; } // [l,u)
+	long int random( long int u ) { if ( u < 0 ) return random( u, 0 ); else return random( 0, u ); } // [0,u)
+	unsigned long int random( void ) { return lrand48(); }
+	unsigned long int random( unsigned long int l, unsigned long int u ) { if ( u < l ) [u, l] = [l, u]; return lrand48() % (u - l) + l; } // [l,u)
+	unsigned long int random( unsigned long int u ) { return lrand48() % u; } // [0,u)
+
+	char random( void ) { return (unsigned long int)random(); }
+	char random( char u ) { return random( (unsigned long int)u ); } // [0,u)
+	char random( char l, char u ) { return random( (unsigned long int)l, (unsigned long int)u ); } // [l,u)
+	int random( void ) { return (long int)random(); }
+	int random( int u ) { return random( (long int)u ); } // [0,u]
+	int random( int l, int u ) { return random( (long int)l, (long int)u ); } // [l,u)
+	unsigned int random( void ) { return (unsigned long int)random(); }
+	unsigned int random( unsigned int u ) { return random( (unsigned long int)u ); } // [0,u]
+	unsigned int random( unsigned int l, unsigned int u ) { return random( (unsigned long int)l, (unsigned long int)u ); } // [l,u)
+} // distribution
+
+float random( void );									// [0.0, 1.0)
+double random( void );									// [0.0, 1.0)
+float _Complex random( void );							// [0.0, 1.0)+[0.0, 1.0)i
+double _Complex random( void );							// [0.0, 1.0)+[0.0, 1.0)i
+long double _Complex random( void );					// [0.0, 1.0)+[0.0, 1.0)i
 
 //---------------------------------------
