Index: /issm/trunk-jpl/src/c/shared/Random/randomgenerator.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Random/randomgenerator.cpp	(revision 26601)
+++ /issm/trunk-jpl/src/c/shared/Random/randomgenerator.cpp	(revision 26602)
@@ -5,4 +5,6 @@
 #include <iostream>
 #include "./randomgenerator.h"
+#include <cmath>
+
 
 #undef M_PI
@@ -20,2 +22,57 @@
 }
 /*}}}*/
+rnd_uniform_distribution::rnd_uniform_distribution(double lower,double upper){/*{{{*/
+
+		a   = 1103515245;		// BSD Formula
+		c  = 12345;					// BSD Formula
+		m = 2147483648;			// BSD Formula
+		_seed = 0;
+		lbound = lower;
+		ubound = upper;
+		return;
+}
+/*}}}*/
+rnd_uniform_distribution::~rnd_uniform_distribution(){}
+void rnd_uniform_distribution::seed( unsigned int s ) { _seed = s; }
+unsigned int rnd_uniform_distribution::get_seed() { return _seed; }
+double rnd_uniform_distribution::generator() {
+		_seed = ( a * _seed + c ) % m ;
+		return (ubound-lbound)*(double) _seed/ m + lbound;
+}
+
+
+rnd_normal_distribution::rnd_normal_distribution(){/*{{{*/
+
+		_seed = 0;
+		mean   = 0;
+		sdev  = 1.0;
+		return;
+}
+/*}}}*/
+rnd_normal_distribution::rnd_normal_distribution(double m,double s){/*{{{*/
+
+		_seed = 0;
+		mean   = m;
+		sdev  = s;
+		return;
+}
+	/*}}}*/
+rnd_normal_distribution::~rnd_normal_distribution(){}
+void rnd_normal_distribution::seed( unsigned int s ) { _seed = s; }
+double rnd_normal_distribution::generator(){/*{{{*/
+
+		rnd_uniform_distribution	unifdistri;
+		unifdistri.seed(_seed);
+
+		double u1 = unifdistri.generator();
+		double u2 = unifdistri.generator();
+
+		double R = sqrt(-2*log(u1));
+		double theta = 2*M_PI*u2;
+
+		seed(unifdistri.get_seed());
+
+		return mean + sdev * (R*cos(theta));
+
+}
+/*}}}*/
Index: /issm/trunk-jpl/src/c/shared/Random/randomgenerator.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Random/randomgenerator.h	(revision 26601)
+++ /issm/trunk-jpl/src/c/shared/Random/randomgenerator.h	(revision 26602)
@@ -5,9 +5,4 @@
 #ifndef _RANDOMGENERATOR_H_
 #define _RANDOMGENERATOR_H_
-
-/*Headers:*/
-/*{{{*/
-#include <cmath>
-/*}}}*/
 
 #undef M_PI
@@ -29,13 +24,10 @@
     /*constructors, destructors: */
     rnd_uniform_distribution();
-    rnd_uniform_distribution(double a_1,double a_2) : _seed( 0 ), a( 1103515245 ), c( 12345 ), m( 2147483648 ), lbound(a_1), ubound(a_2) {}
-    ~rnd_uniform_distribution(){}
+    rnd_uniform_distribution(double a_1,double a_2);
+    ~rnd_uniform_distribution();
 
-    void seed( unsigned int s ) { _seed = s; }
-    unsigned int get_seed() { return _seed; }
-    double generator(){
-      _seed = ( a * _seed + c ) % m;
-      return (ubound-lbound)*(double) _seed/ m + lbound;
-    }
+    void seed( unsigned int s );
+    unsigned int get_seed();
+    double generator();
 
 };
@@ -52,25 +44,10 @@
 
     /*constructors, destructors: */
-    rnd_normal_distribution() : _seed( 0 ), mean( 0), sdev(1.0) {}
-    rnd_normal_distribution(double m,double s) : _seed( 0 ), mean( m ), sdev(s) {}
-    ~rnd_normal_distribution(){}
+    rnd_normal_distribution();
+    rnd_normal_distribution(double m,double s);
+    ~rnd_normal_distribution();
 
-    void seed( unsigned int s ) { _seed = s; }
-    double generator()
-    {
-      rnd_uniform_distribution unifdistri;
-      unifdistri.seed(_seed);
-
-      double u1 = unifdistri.generator();
-      double u2 = unifdistri.generator();
-
-      double R = sqrt(-2*log(u1));
-      double theta = 2*M_PI*u2;
-
-      seed(unifdistri.get_seed());
-
-      return mean + sdev * (R*cos(theta));
-
-    }
+    void seed( unsigned int s );
+    double generator();
 
 };
