00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00038 #ifndef __NUSMV_CORE_SIMULATE_SIMULATE_TRANS_SET_H__
00039 #define __NUSMV_CORE_SIMULATE_SIMULATE_TRANS_SET_H__
00040
00041 #include "nusmv/core/utils/utils.h"
00042 #include "nusmv/core/fsm/bdd/BddFsm.h"
00043 #include "nusmv/core/enc/bdd/BddEnc.h"
00044 #include "nusmv/core/dd/dd.h"
00045
00046
00047
00048
00049
00050
00063 typedef struct SimulateTransSet_TAG* SimulateTransSet_ptr;
00064
00070 #define SIMULATE_TRANS_SET(x) \
00071 ((SimulateTransSet_ptr) x)
00072
00078 #define SIMULATE_TRANS_SET_CHECK_INSTANCE(x) \
00079 (nusmv_assert(SIMULATE_TRANS_SET(x) != SIMULATE_TRANS_SET(NULL)))
00080
00081
00082
00083
00084
00085
00086
00094 SimulateTransSet_ptr
00095 SimulateTransSet_create(BddFsm_ptr fsm, BddEnc_ptr enc,
00096 bdd_ptr from_state, bdd_ptr next_states_set,
00097 double next_states_count);
00098
00105 void
00106 SimulateTransSet_destroy(SimulateTransSet_ptr self);
00107
00115 bdd_ptr
00116 SimulateTransSet_get_from_state(const SimulateTransSet_ptr self);
00117
00124 int
00125 SimulateTransSet_get_next_state_num(const SimulateTransSet_ptr self);
00126
00133 bdd_ptr
00134 SimulateTransSet_get_next_state(const SimulateTransSet_ptr self,
00135 int state_index);
00136
00145 int SimulateTransSet_get_inputs_num_at_state(const SimulateTransSet_ptr self, int state_index);
00146
00154 bdd_ptr
00155 SimulateTransSet_get_input_at_state(const SimulateTransSet_ptr self,
00156 int state_index, int input_index);
00157
00165 int
00166 SimulateTransSet_print(const SimulateTransSet_ptr self,
00167 boolean show_changes_only, OStream_ptr output);
00168
00178 void
00179 SimulateTransSet_get_state_input_at(const SimulateTransSet_ptr self,
00180 int index,
00181 bdd_ptr* state, bdd_ptr* input);
00182
00189 void
00190 SimulateTransSet_get_state_input_rand(const SimulateTransSet_ptr self,
00191 bdd_ptr* state, bdd_ptr* input);
00192
00199 void
00200 SimulateTransSet_get_state_input_det(const SimulateTransSet_ptr self,
00201 bdd_ptr* state, bdd_ptr* input);
00202
00203
00204 #endif