Marmote Core
The project aims at realizing the prototype of a software environment dedicated to modeling with Markov chains.
law.h
1 /************************************************************************/
2 /* Headers for functions for manipulating distribution laws. */
3 /************************************************************************/
4 #ifndef _LAW_H
5 #define _LAW_H
6 
7 #include <math.h>
8 #include "real_list.h"
9 
14 typedef struct LAW_DESC {
15  char Name;
16  double* Parameters;
17  struct LAW_DESC **Law_Parameters; /* table pour lois "annexes */
18 } *Law_Desc;
19 
24 typedef struct LAW_LIST {
26  struct LAW_LIST *Next;
27 } *Law_List;
28 
29 
30 /* Definition of +oo for durations and rates */
31 #define INFINITE_DURATION HUGE_VAL
32 #define INFINITE_RATE HUGE_VAL
33 
34 /* Definitions for printing styles */
35 #define NO_PRINT_MODE 0
36 #define DEFAULT_PRINT_MODE 1
37 #define NORMAL_PRINT_MODE 1
38 #define QNAP_PRINT_MODE 2
39 #define PROSIT_PRINT_MODE 3
40 #define MMPP_PRINT_MODE 4
41 #define PNED_PRINT_MODE 5
42 
49 double Mean( Law_Desc );
56 double Rate( Law_Desc );
64 double Moment( Law_Desc, int Order );
72 double Laplace( Law_Desc, double s );
80 double DLaplace( Law_Desc, double s );
88 double CDF( Law_Desc, double x );
96 boolean hasMoment( Law_Desc, int Order );
97 
103 Law_Desc New_Law( void );
110 Law_Desc Copy_Law( Law_Desc Loi );
118 Law_Desc Rescale_Law( Law_Desc Loi, double Factor );
128 Law_Desc Parse_Law( char Nom, Liste_Reel Params,
129  Liste_Reel Params2, Law_List The_SubLaws );
139 int Parse_Law_From_Args ( char**, int, int, Law_Desc );
147 Law_List Append_Law( Law_List, Law_Desc New_Law );
153 void Free_Law( Law_Desc The_Law );
154 
162 void Write_Law( FILE *Stream, Law_Desc Loi, int Mode );
163 /* shortcut for printing, mostly out of backwards compatibility */
164 #define fprint_law(x) Write_Law( stdout, x, NORMAL_PRINT_MODE )
165 
166 #endif
double * Parameters
Definition: law.h:16
char Name
Definition: law.h:15
Law_Desc Val
Definition: law.h:25
Definition: law.h:14
struct LAW_LIST * Next
Definition: law.h:26
Definition: law.h:24