source: vis_dev/vis-2.3/src/mark/markInt.h @ 14

Last change on this file since 14 was 14, checked in by cecile, 13 years ago

vis2.3

File size: 4.6 KB
Line 
1/**CHeaderFile*****************************************************************
2
3  FileName    [markInt.h]
4
5  PackageName [mark]
6
7  Synopsis    [Data structures used in Markovian analysis.]
8
9  Description [optional]
10
11  SeeAlso     [optional]
12
13  Author      [Balakrishna Kumthekar]
14
15  Copyright   [This file was created at the University of Colorado at
16  Boulder.  The University of Colorado at Boulder makes no warranty
17  about the suitability of this software for any purpose.  It is
18  presented on an AS IS basis.]
19
20******************************************************************************/
21#ifndef _MARKINT
22#define _MARKINT
23
24#include "mark.h"
25#include <string.h>
26
27/*---------------------------------------------------------------------------*/
28/* Constant declarations                                                     */
29/*---------------------------------------------------------------------------*/
30
31
32/*---------------------------------------------------------------------------*/
33/* Type declarations                                                         */
34/*---------------------------------------------------------------------------*/
35
36
37/*---------------------------------------------------------------------------*/
38/* Structure declarations                                                    */
39/*---------------------------------------------------------------------------*/
40
41/**Struct**********************************************************************
42
43  Synopsis    [Data structure for performing Markovian Analysis.]
44
45  SeeAlso     []
46
47******************************************************************************/
48typedef struct CK {
49  bdd_manager *manager;
50  bdd_node **piVars;      /* Primary input variables. BDD variables */
51  bdd_node **xVars;       /* Present state variables. BDD variables. */
52  bdd_node **yVars;       /* Next state variables. BDD variables. */
53  bdd_node **zVars;       /* Auxillary BDD variables, used internally */
54  bdd_node **piAddVars;   /* Primary input variables, ADD variables */
55  bdd_node **xAddVars;    /* Present state variables. ADD variables. */
56  bdd_node **yAddVars;    /* Next state variables. ADD variables. */
57  bdd_node **zAddVars;    /* Auxillary ADD variables, used internally */
58  bdd_node *coeff;        /* 0-1 ADD of TR(x,w,y) */
59  int nVars;            /* Number of state variables */
60  int nPi;              /* Number of input variables */
61  double abstol;        /* Tolerance values, used internally */
62  double scale;
63  double reltol;
64  Mark_StartMethod start;
65  int roundOff;         /* Roundoff to "roundOff" digit after decimal */
66  st_table *inputProb;  /* input probabilities */
67  bdd_node *transition;   /* BDD transition relation T(x,w,y) */
68  bdd_node *reached;      /* Set of reachable states R(x) */
69  st_table *indexSCC;
70  bdd_node *collapsedcoeff;
71  double term_SCC_states;  /* # of terminal SCCs */
72  st_table *periods;    /* period of TSCCs */
73  bdd_node *term_scc;    /* ADD of reachable terminal SCCs */
74  bdd_node *init_guess;  /* equi. probability to all TSCC states
75                         or probabiliy 1 to one of the TSCC states.*/
76} CK;
77
78/*---------------------------------------------------------------------------*/
79/* Variable declarations                                                     */
80/*---------------------------------------------------------------------------*/
81
82
83/*---------------------------------------------------------------------------*/
84/* Macro declarations                                                        */
85/*---------------------------------------------------------------------------*/
86
87/**AutomaticStart*************************************************************/
88
89/*---------------------------------------------------------------------------*/
90/* Function prototypes                                                       */
91/*---------------------------------------------------------------------------*/
92
93EXTERN bdd_node ** MarkAddCKSolve(CK *ck);
94EXTERN bdd_node ** MarkAddGenSolve(CK *ck);
95EXTERN double MarkAverageBitChange(bdd_manager *manager, bdd_node *probTR, bdd_node **xVars, bdd_node **yVars, int nVars);
96EXTERN bdd_node ** MarkAddFPSolve(CK *ck);
97EXTERN bdd_node * MarkAddBuildCoeff(bdd_manager *manager, bdd_node *func, bdd_node **piAddVars, st_table *inputProb, double scale, int nVars, int nPi);
98EXTERN bdd_node * MarkGetSCC(bdd_manager *manager, bdd_node *tr, bdd_node *tc, bdd_node *reached, bdd_node **xVars, bdd_node **yVars, int nVars, st_table **scc_table);
99EXTERN bdd_node * MarkAddInProbRecur(bdd_manager *manager, bdd_node *tr, bdd_node *cube, st_table *probTable, st_table *visited);
100
101/**AutomaticEnd***************************************************************/
102
103#endif /* _MARKINT */
Note: See TracBrowser for help on using the repository browser.