Marmote Core
The project aims at realizing the prototype of a software environment dedicated to modeling with Markov chains.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations
global.h
1 /* Data structures useful to several components of ERS */
2 
3 #ifndef _GLOBAL_H
4 #define _GLOBAL_H
5 
6 /* inclusion of the local config.h */
7 #include "config.h"
8 
9 /* inclusion of standard definitions */
10 #include <stdio.h>
11 #include <stdlib.h>
12 #include <string.h>
13 
14 #include "version.h"
15 #include "parseargs.h"
16 #include "messages.h"
17 #include "boolean.h"
18 #include "real_list.h"
19 #include "law.h"
20 
21 /* Value of pi from <math.h>. Sometimes it is missing... */
22 #ifndef M_PI
23 #define M_PI 3.14159265358979323846
24 #endif
25 
26 #ifdef USE_DMALLOC
27 #include <dmalloc.h>
28 #endif
29 
30 #ifndef HAVE_STRDUP_DEFINED
31 
37 extern char *strdup(const char *s);
38 #define HAVE_STRDUP_DEFINED 1
39 #endif
40 
41 #ifndef HAVE_RANDOM_DEFINED
42 
48 extern long int random(void);
54 extern void srandom(unsigned int seed);
55 #endif
56 
57 #ifdef NEED_YYWRAP
58 /* What can I do??? */
59 #endif
60 
61 /* Constants for Link Types */
62 #define UNKNOWN_TYPE 0
63 #define PLATRA 1
64 #define TRAPLA 2
65 
66 /* constants useful for printing procedures */
67 #define NO_CHAR 0
68 #define PAR 1
69 #define BRACKET 2
70 #define QUOTE 3
71 #define WHITE_QUOTE 4
72 
73 extern boolean Debug;
79 typedef struct INT_LIST {
80  int Val;
81  struct INT_LIST *Next;
82 } *Liste_Entier;
83 
88 typedef struct LAYER_DESC {
89  int Nb_Nodes;
90  int *Node_Id;
91 } *Layer_Desc;
92 
97 typedef struct TOPOLOGY {
98  int Nb_Layers;
99  Layer_Desc *Level;
100 } *Topology;
101 
108 extern double rint(double);
109 #define IRINT(x) (int)rint(x)
110 
111 #define MAX(x,y) ( (x>y) ? x : y )
112 #define MIN(x,y) ( (x<y) ? x : y )
113 #define SCAN(x,y) for(x=y;x!=NULL;x=x->Next)
114 
115 /* additionnal declaration, not always in the standard "string.h" */
116 /* extern char *strdup(char*); */
117 
118 #endif