/**********************************************************************/
/*                                                                    */
/*                       File "smpl.h"                                */
/*                  smpl Simulation Subsystem                         */
/*                                                                    */
/*  C Version 1.10                        (C) 1987  M. H. MacDougall  */
/*  Oct. 22, 1987                                All Rights Reserved  */
/*                                                                    */
/**********************************************************************/
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>     /* should include a declaration for 'atof' */

typedef double real;
#define then    

/* ---------------------- rand names --------------------------------*/
extern double ranf();
extern int stream(int n);
extern long seed(long Ik,int n);
extern double uniform(double a,double b);
extern int randomic(int i, int n);
extern double expntl(double x);
extern double erlang(double x,double s);
extern double hyperx(double x,double s);
extern double normal(double x,double s);
 
/* ---------------------- smpl names --------------------------------*/
extern double time();             
extern double U(int f);
extern double B(int f);
extern double Lq(int f);
extern char *mname();
extern char *fname(int f);
extern FILE *sendto(FILE *dest);   
extern void smpl(int m, char *s);
extern void reset();
static int save_name(char *s, int m);
static int get_blk(int n);
static int get_elm(); 
static void put_elm(int i);
extern void schedule(int ev, real te, int tkn);
extern void cause(int *ev, int *tkn);
extern int cancel(int ev);  
static int suspend(int tkn); 
static void enlist(int *head, int elm);  
extern int facility(char *s, int n);
static void resetf();
extern int request(int f, int tkn, int pri);
static void enqueue(int f, int j, int pri, int ev, real te);
extern int preempt(int f,int tkn, int pri);
extern void release(int f, int tkn);
extern int status(int f); 
extern int inq(int f);  
extern void trace(int n); 
static void msg(int n, int i, char *s, int q1, int q2);
static void end_line();
extern void pause();
extern void error(int n, char *s);
extern void report(); 
extern void reportf();
static int rept_page(int fnxt);
extern int lns(int i); 
extern void endpage();
extern void newpage(); 

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