double Restore_ran_lp(long *idum)
{
/*--------------------------------------------------------------------------
Long period(>2x10^18) random number generator of L'Ecuyer
with Bays-Durhan shuffle and added safeguard. Return a uniform
random deviate between 0.0 and 1.0 (exclusive of the endpoint
value). Call with idum a negative integer to initialize;
thereafter, do not alter idum between successive deviates in
a sequence. RNMX should approximate the largest floating value
that is less than 1.
--------------------------------------------------------------------------*/
double Restore_ran_gauss(long *idum)
{
/*----------------------------------------------------------------------------
returns a normally distributed deviate with zero mean and
unit variance, using ran_lp() as the source of uniform deviates.
----------------------------------------------------------------------------*/
#define RAN Restore_ran_lp /* change this to use other random number generator */