/*  basics.c  */

#include "../Drand.h"

#define   MYDEBUG 0

/*--------------------------------------------------------------------*/
/*
   -----------------------
   simplest constructor

   created -- 96may26, cca
   -----------------------
*/
Drand *
Drand_new ( 
   void 
) {
Drand   *drand ;

ALLOCATE(drand, struct _Drand, 1) ;
Drand_setDefaultFields(drand) ;

return(drand) ; }

/*--------------------------------------------------------------------*/
/*
   -----------------------
   set the default fields

   created -- 96may26, cca
   -----------------------
*/
void
Drand_setDefaultFields (
   Drand   *drand
) {
if ( drand == NULL ) {
   fprintf(stderr, "\n fatal error in Drand_setDefaultFields(%p)"
           "\n bad input", drand) ;
   exit(-1) ;
}
drand->seed1 =  123456789.0 ;
drand->seed2 =  987654321.0 ;
drand->base1 = 2147483563.0 ;
drand->base2 = 2147483399.0 ;
drand->lower = 0.0 ;
drand->upper = 1.0 ;
drand->mean  = 0.0 ;
drand->sigma = 1.0 ;
drand->mode  =  1  ;

return ; }

/*--------------------------------------------------------------------*/
/*
   --------------------------------------------------
   clear the data fields, releasing allocated storage

   created -- 96may26, cca
   --------------------------------------------------
*/
void
Drand_clearData ( 
   Drand   *drand 
) {
/*
   ---------------
   check the input
   ---------------
*/
if ( drand == NULL ) {
   fprintf(stderr, "\n fatal error in Drand_clearData(%p)"
           "\n bad input\n", drand) ;
   exit(-1) ;
}
/*
   ----------------------
   set the default fields
   ----------------------
*/
Drand_setDefaultFields(drand) ;

return ; }

/*--------------------------------------------------------------------*/
/*
   ------------------------------------------
   destructor, free's the object and its data

   created -- 96may26, cca
   ------------------------------------------
*/
Drand *
Drand_free ( 
   Drand   *drand 
) {
if ( drand == NULL ) {
   fprintf(stderr, "\n fatal error in Drand_free(%p)"
           "\n bad input\n", drand) ;
   exit(-1) ;
}
Drand_clearData(drand) ;
FREE(drand) ;

return(NULL) ; }

/*--------------------------------------------------------------------*/


syntax highlighted by Code2HTML, v. 0.9.1