point *process(        /* Returns a pointer to the tree of points */
	       double time,          /* Value of $-M$ */
	       double gamma1,         /* Value of $\gamma_1$ */
	       double gamma2,
	       double a1,
	       double a2,
	       double b1,
	       double b2,
	       double exp_param,
	       long seed,
	       long seedtwo,
	       long seedthree,
	       point *points,        /* All the info about all */
				     /* the points */
	       short *stop           /* Returns 0 if coalescence */
				     /* has occured, 1 otherwise */
	       );

point *nextbirth(long seed,      /* Returns next point to be born */
		 long seedtwo,
		 long seedthree,
		 double lastbirth,   /* Time of previous birth */
		 double exp_param
		 );

int difference(point *p);  /* Returns 0 if point is in min process, */
			   /* 1 otherwise */

/* NOT USED IN RECENT VERSION OF process.c SO COMMENTED OUT. */
/*void tmpnode(point *tmpnode,    /* Initialize temporary point */
/*	     double deathtime,
	     long *tseed,
	     long *mseed,
	     long *pseed
	     );*/
