BddEncCache_ptr 
BddEncCache_create(
  BddEnc_ptr  enc 
)

Defined in BddEncCache.c

void 
BddEncCache_destroy(
  BddEncCache_ptr  self 
)

Defined in BddEncCache.c

add_ptr 
BddEncCache_get_definition(
  BddEncCache_ptr  self, 
  node_ptr  name 
)

Defined in BddEncCache.c

add_ptr 
BddEncCache_get_evaluation(
  BddEncCache_ptr  self, 
  node_ptr  name 
)

Defined in BddEncCache.c

boolean 
BddEncCache_is_constant_defined(
  BddEncCache_ptr  self, 
  node_ptr  constant 
)

Defined in BddEncCache.c

boolean 
BddEncCache_is_var_defined(
  BddEncCache_ptr  self, 
  node_ptr  var_name 
)

Defined in BddEncCache.c

add_ptr 
BddEncCache_lookup_constant(
  BddEncCache_ptr  self, 
  node_ptr  constant 
)
Returned ADD is referenced

Defined in BddEncCache.c

add_ptr 
BddEncCache_lookup_var(
  BddEncCache_ptr  self, 
  node_ptr  var_name 
)

Defined in BddEncCache.c

void 
BddEncCache_new_constant(
  BddEncCache_ptr  self, 
  node_ptr  constant, 
  add_ptr  constant_add 
)

Defined in BddEncCache.c

void 
BddEncCache_new_var(
  BddEncCache_ptr  self, 
  node_ptr  var_name, 
  add_ptr  var_add 
)

Defined in BddEncCache.c

void 
BddEncCache_pop_status(
  BddEncCache_ptr  self 
)

Defined in BddEncCache.c

void 
BddEncCache_push_status_and_reset(
  BddEncCache_ptr  self 
)

Defined in BddEncCache.c

void 
BddEncCache_set_definition(
  BddEncCache_ptr  self, 
  node_ptr  name, 
  add_ptr  def 
)

Defined in BddEncCache.c

void 
BddEncCache_set_evaluation(
  BddEncCache_ptr  self, 
  node_ptr  name, 
  add_ptr  add 
)

Defined in BddEncCache.c

add_ptr 
BddEnc_apply_input_vars_mask_add(
  BddEnc_ptr  self, 
  add_ptr  inputs 
)
Returned add is referenced. Calculated mask will be cached for future use

Defined in BddEnc.c

BddInputs 
BddEnc_apply_input_vars_mask_bdd(
  BddEnc_ptr  self, 
  BddInputs  inputs 
)
Returned bdd is referenced. Calculated mask will be cached for future use

Defined in BddEnc.c

add_ptr 
BddEnc_apply_state_input_vars_mask_add(
  BddEnc_ptr  self, 
  add_ptr  states_inputs 
)
Returned add is referenced. Calculated mask will be cached for future use

Defined in BddEnc.c

BddStatesInputs 
BddEnc_apply_state_input_vars_mask_bdd(
  BddEnc_ptr  self, 
  BddStatesInputs  states_inputs 
)
Returned bdd is referenced. Calculated mask will be cached for future use

Defined in BddEnc.c

add_ptr 
BddEnc_apply_state_vars_mask_add(
  BddEnc_ptr  self, 
  add_ptr  states 
)
Returned add is referenced. Calculated mask will be cached for future use

Defined in BddEnc.c

BddStates 
BddEnc_apply_state_vars_mask_bdd(
  BddEnc_ptr  self, 
  BddStates  states 
)
Returned bdd is referenced. Calculated mask will be cached for future use

Defined in BddEnc.c

add_ptr 
BddEnc_constant_to_add(
  const BddEnc_ptr  self, 
  node_ptr  constant 
)
Returns the ADD leaf corresponding to the given atom, if defined, NULL otherwise. The returned ADD - if any - is referenced. If the inner flag enforce_constant is set, Suppose to have a declaration of this kind:
  VAR 
    state : {idle, stopped}
  
  then in the constant hash for the atom idle there is the
  corresponding leaf ADD, i.e. the ADD whose value is the symbol
  idle.

Defined in BddEnc.c

double 
BddEnc_count_inputs_of_bdd(
  const BddEnc_ptr  self, 
  bdd_ptr  bdd 
)
Return the number of inputs represented by a BDD.

Defined in BddEnc.c

double 
BddEnc_count_states_inputs_of_bdd(
  const BddEnc_ptr  self, 
  bdd_ptr  bdd 
)
Return the number of states inputs represented by a BDD.

Defined in BddEnc.c

double 
BddEnc_count_states_of_add(
  const BddEnc_ptr  self, 
  add_ptr  add 
)
Return the number of minterms (i.e. states) represented by an ADD.

Defined in BddEnc.c

double 
BddEnc_count_states_of_bdd(
  const BddEnc_ptr  self, 
  bdd_ptr  bdd 
)
Return the number of states represented by a BDD.

Defined in BddEnc.c

BddEnc_ptr 
BddEnc_create(
  Encoding_ptr  generic_encoding, 
  DdManager* dd 
)
Constructor

Defined in BddEnc.c

void 
BddEnc_destroy(
  BddEnc_ptr  self 
)
Destructor

Defined in BddEnc.c

add_ptr 
BddEnc_eval_constant(
  BddEnc_ptr  self, 
  Expr_ptr  expr, 
  node_ptr  context 
)
Evaluate a constant expression. If the expression does not evaluate to a constant, then an internal error is generated. Returned add is referenced.

See Also eval eval_num
Defined in BddEnc.c

int 
BddEnc_eval_num(
  BddEnc_ptr  self, 
  node_ptr  e, 
  node_ptr  context 
)
Evaluate the NUMBER represented by e in context context. NUMBERS can be encoded in different ways in different processes.

See Also bdd_enc_eval
Defined in BddEnc.c

add_ptr 
BddEnc_eval_sign_add(
  BddEnc_ptr  self, 
  add_ptr  a, 
  int  flag 
)
Given the ADD a, this function returns the negation of ADD a or a itself according the value of flag. If flag = -1 then returns not a, else returns a. It is important that the ADD is a zero/one ADD (i.e. it has only zero or one as leaf).

See Also bdd_enc_eval
Defined in BddEnc.c

bdd_ptr 
BddEnc_eval_sign_bdd(
  BddEnc_ptr  self, 
  bdd_ptr  a, 
  int  flag 
)
Given the BDD a, this function returns the negation of BDD a or a itself according the value of flag. If flag = -1 then returns not a, else returns a. It is important that the BDD is a zero/one BDD (i.e. it has only zero or one as leaf).

Defined in BddEnc.c

add_ptr 
BddEnc_expr_to_add(
  BddEnc_ptr  self, 
  const Expr_ptr  expr, 
  const node_ptr  context 
)
Returned add is referenced

Defined in BddEnc.c

bdd_ptr 
BddEnc_expr_to_bdd(
  BddEnc_ptr  self, 
  const Expr_ptr  expr, 
  const node_ptr  context 
)
Returned bdd is referenced

Defined in BddEnc.c

DdManager* 
BddEnc_get_dd_manager(
  const BddEnc_ptr  self 
)
Gets the DD manager this encoding refers to.

Defined in BddEnc.c

add_ptr 
BddEnc_get_input_vars_mask_add(
  BddEnc_ptr  self 
)
Returned add is referenced. Calculated mask will be cached for future use

Defined in BddEnc.c

bdd_ptr 
BddEnc_get_input_vars_mask_bdd(
  BddEnc_ptr  self 
)
Returned bdd is referenced. Calculated mask will be cached for future use

Defined in BddEnc.c

BddVarSet_ptr 
BddEnc_get_input_vars_support(
  const BddEnc_ptr  self 
)
Returned bdd is referenced, the caller must free it after it is no longer used. Result is cached if not previously converted from internal ADD representation

Defined in BddEnc.c

double 
BddEnc_get_minterms_of_add(
  const BddEnc_ptr  self, 
  add_ptr  add 
)
Return the number of minterms represented by a ADD.

Defined in BddEnc.c

double 
BddEnc_get_minterms_of_bdd(
  const BddEnc_ptr  self, 
  bdd_ptr  bdd 
)
Return the number of minterms represented by a BDD.

Defined in BddEnc.c

BddVarSet_ptr 
BddEnc_get_next_state_vars_support(
  const BddEnc_ptr  self 
)
Returned bdd is referenced, the caller must free it after it is no longer used. Result is cached if not previously converted from internal ADD representation

Defined in BddEnc.c

NodeList_ptr 
BddEnc_get_ordering(
  const BddEnc_ptr  self 
)
It returns the list of variables corresponding to the current order of variables in the encoding

Defined in BddEnc.c

add_ptr 
BddEnc_get_state_input_vars_mask_add(
  BddEnc_ptr  self 
)
Returned add is referenced. Calculated mask will be cached for future use

Defined in BddEnc.c

bdd_ptr 
BddEnc_get_state_input_vars_mask_bdd(
  BddEnc_ptr  self 
)
Returned bdd is referenced. Calculated mask will be cached for future use

Defined in BddEnc.c

node_ptr 
BddEnc_get_state_vars_add_list(
  BddEnc_ptr  self 
)
This function is used by the printer of reachable states. The ownership of the returned ADDs - as well the list itself - is kept by self (i.e. single ADDs are not referenced)

Defined in BddEnc.c

add_ptr 
BddEnc_get_state_vars_mask_add(
  BddEnc_ptr  self 
)
Returned add is referenced. Calculated mask will be cached for future use

Defined in BddEnc.c

bdd_ptr 
BddEnc_get_state_vars_mask_bdd(
  BddEnc_ptr  self 
)
Returned bdd is referenced. Calculated mask will be cached for future use

Defined in BddEnc.c

BddVarSet_ptr 
BddEnc_get_state_vars_support(
  const BddEnc_ptr  self 
)
Returned bdd is referenced, the caller must free it after it is no longer used. Result is cached if not previously converted from internal ADD representation

Defined in BddEnc.c

add_ptr 
BddEnc_get_symbol_add(
  BddEnc_ptr  self, 
  node_ptr  name 
)
Given the symbol represented by n, this function returns the ADD of its definition, or NULL if not defined. Errors occurs if circularly defined. Returned add is referenced

See Also BddEnc_expr_to_add
Defined in BddEnc.c

Encoding_ptr 
BddEnc_get_symbolic_encoding(
  const BddEnc_ptr  self 
)

Defined in BddEnc.c

add_ptr 
BddEnc_get_var_encoding_mask(
  BddEnc_ptr  self, 
  add_ptr  var_encoding 
)
Returns the mask that removes repetitions of leaves in a variable encoding. Returned ADD is referenced. Automatic reordering, if enabled, is temporary disabled during this computation.

See Also BddEnc_get_var_name_mask bdd_enc_get_var_mask_add_recur
Defined in BddEnc.c

int 
BddEnc_get_var_index_from_name(
  const BddEnc_ptr  self, 
  node_ptr  name 
)
optional

Side Effects required

See Also optional
Defined in BddEnc.c

node_ptr 
BddEnc_get_var_name_from_dd_index(
  const BddEnc_ptr  self, 
  int  index 
)
optional

Side Effects required

See Also optional
Defined in BddEnc.c

add_ptr 
BddEnc_get_var_name_mask(
  BddEnc_ptr  self, 
  node_ptr  var_name 
)
Returns the mask that removes repetitions of leaves in a variable encoding. Returned ADD is referenced. Automatic reordering, if enabled, is temporary disabled during this computation.

See Also BddEnc_get_var_encoding_mask bdd_enc_get_var_mask_add_recur
Defined in BddEnc.c

void 
BddEnc_merge(
  BddEnc_ptr  self 
)
Call after the sequence BddEnc_push_status_and_reset, BddEnc_encode_vars, and before BddEnc_pop_status

Defined in BddEnc.c

add_ptr 
BddEnc_next_state_var_to_state_var_add(
  const BddEnc_ptr  self, 
  add_ptr  add 
)
Given an ADD whose variables are NEXT-STATE variables, returns an isomorphic ADD where STATE variables have been substituted for the corrisponding STATE variables

Defined in BddEnc.c

bdd_ptr 
BddEnc_next_state_var_to_state_var(
  const BddEnc_ptr  self, 
  bdd_ptr  bdd 
)
Given a BDD whose variables are NEXT-STATE variables, returns an isomorphic BDD where STATE variables have been substituted for the corrisponding STATE variables

Defined in BddEnc.c

boolean 
BddEnc_pick_all_terms_inputs(
  const BddEnc_ptr  self, 
  bdd_ptr  bdd, 
  bdd_ptr* result_array, 
  const int  array_len 
)
Takes a minterm and returns an array of all its terms, according to internally kept vars. Notice that the array of the result has to be previously allocated, and its size must be greater or equal the number of the minterms. The returned array contains referenced BDD so it is necessary to dereference them after their use. Returns true if an error occurred

Side Effects result_array will change

See Also bdd_pick_all_terms
Defined in BddEnc.c

boolean 
BddEnc_pick_all_terms_states_inputs(
  const BddEnc_ptr  self, 
  bdd_ptr  bdd, 
  bdd_ptr* result_array, 
  const int  array_len 
)
Takes a minterm and returns an array of all its terms, according to internally kept vars. Notice that the array of the result has to be previously allocated, and its size must be greater or equal the number of the minterms. The returned array contains referenced BDD so it is necessary to dereference them after their use. Returns true if an error occurred

Side Effects result_array will change

See Also bdd_pick_all_terms
Defined in BddEnc.c

boolean 
BddEnc_pick_all_terms_states(
  const BddEnc_ptr  self, 
  bdd_ptr  bdd, 
  bdd_ptr* result_array, 
  const int  array_len 
)
Takes a minterm and returns an array of all its terms, according to internally kept vars. Notice that the array of the result has to be previously allocated, and its size must be greater or equal the number of the minterms. The returned array contains referenced BDD so it is necessary to dereference them after their use. Returns true if an error occurred

Side Effects result_array will change

See Also bdd_pick_all_terms
Defined in BddEnc.c

bdd_ptr 
BddEnc_pick_one_input_rand(
  const BddEnc_ptr  self, 
  bdd_ptr  inputs 
)
Extracts a random minterm from a given BDD. Returned bdd is referenced

See Also bdd_pick_one_minterm_rand
Defined in BddEnc.c

bdd_ptr 
BddEnc_pick_one_input(
  const BddEnc_ptr  self, 
  bdd_ptr  inputs 
)
Extracts a minterm from a given BDD. Returned bdd is referenced

See Also bdd_pick_one_minterm
Defined in BddEnc.c

bdd_ptr 
BddEnc_pick_one_state_rand(
  const BddEnc_ptr  self, 
  bdd_ptr  states 
)
Extracts a random minterm from a given BDD. Returned bdd is referenced

See Also bdd_pick_one_minterm_rand
Defined in BddEnc.c

bdd_ptr 
BddEnc_pick_one_state(
  const BddEnc_ptr  self, 
  bdd_ptr  states 
)
Extracts a minterm from a given BDD. Returned bdd is referenced

See Also bdd_pick_one_minterm
Defined in BddEnc.c

void 
BddEnc_pop_status(
  BddEnc_ptr  self 
)
Call after BddEnc_push_status_and_reset after this

Defined in BddEnc.c

void 
BddEnc_print_bdd_begin(
  BddEnc_ptr  self, 
  node_ptr  symbols, 
  boolean  changes_only 
)
This sets some fileds used by BddEnc_print_bdd. Also clears the table used when printing only changed states. After having called BddEnc_print_bdd, call BddEnc_print_bdd_end. If changes_only is true, than only state variables which assume a different value from the previous printed one are printed out.

Defined in BddEnc.c

void 
BddEnc_print_bdd_end(
  BddEnc_ptr  self 
)
Must be called after each call to BddEnc_print_bdd_begin, in order to clean up some internal structure

Defined in BddEnc.c

int 
BddEnc_print_bdd(
  BddEnc_ptr  self, 
  bdd_ptr  bdd, 
  FILE* file 
)
Before calling this method, you must call print_bdd_begin. Then you can call this method once or more, but eventually you will have to call print_bdd_end to commit. Returns the number of symbols actually printed

Defined in BddEnc.c

void 
BddEnc_print_set_of_inputs(
  BddEnc_ptr  self, 
  bdd_ptr  inputs, 
  boolean  changes_only, 
  FILE* file 
)
Prints a set of input pairs

Defined in BddEnc.c

void 
BddEnc_print_set_of_state_input_pairs(
  BddEnc_ptr  self, 
  bdd_ptr  state_input_pairs, 
  boolean  changes_only, 
  FILE* file 
)
Prints a set of state-input pairs

Defined in BddEnc.c

void 
BddEnc_print_set_of_states(
  BddEnc_ptr  self, 
  bdd_ptr  states, 
  boolean  changes_only, 
  FILE* file 
)
Prints a set of states

Defined in BddEnc.c

void 
BddEnc_print_vars_in_cube(
  BddEnc_ptr  self, 
  bdd_ptr  cube, 
  node_ptr  list_of_sym, 
  FILE* file 
)
Given a cube of boolean BDD variables, this function prints out the symbolic names of the corresponding variables. The symbolic name of the variables to be printed out are listed in list_of_sym.

Side Effects None

Defined in BddEnc.c

void 
BddEnc_push_status_and_reset(
  BddEnc_ptr  self 
)
Not all the state is saved, only the parts that are touched by ltl model checking. Call BddEnc_restore after this. After you called this, you can read a new file, flat the hierarchy, and call BddEnc_encode_vars. The merge the saved state by calling BddEnc_merge

Defined in BddEnc.c

add_ptr 
BddEnc_state_var_to_next_state_var_add(
  const BddEnc_ptr  self, 
  add_ptr  add 
)
Given an ADD whose variables are STATE variables, returns an isomorphic ADD where NEXT-STATE variables have been substituted for the corrisponding STATE variables

Defined in BddEnc.c

bdd_ptr 
BddEnc_state_var_to_next_state_var(
  const BddEnc_ptr  self, 
  bdd_ptr  bdd 
)
Given a BDD whose variables are STATE variables, returns an isomorphic BDD where NEXT-STATE variables have been substituted for the corrisponding STATE variables

Defined in BddEnc.c

void 
BddEnc_write_order(
  const BddEnc_ptr  self, 
  const char * output_order_file_name, 
  const VarOrderingType  dump_type 
)
This function writes the variable order currently in use in the system in the specified output file. If the option "-reorder" has been used then, then this function exits (if the batch interaction mode is used). The file generated as output can be used as input order file for next computations. If the specified output file is an empty string ("" or NULL, see util_is_string_null) output is redirected to stdout. The output content depends on the value of dump_type.

See Also Compile_ReadOrder
Defined in BddEnc.c

static void 
bdd_enc_accumulate_input_variables_cube(
  BddEnc_ptr  self, 
  add_ptr  add 
)

Defined in BddEnc.c

static void 
bdd_enc_accumulate_next_state_variables_cube(
  BddEnc_ptr  self, 
  add_ptr  add 
)

Defined in BddEnc.c

static void 
bdd_enc_accumulate_state_variables_cube(
  BddEnc_ptr  self, 
  add_ptr  add 
)

Defined in BddEnc.c

static void 
bdd_enc_add_input_var_to_minterm_vars(
  BddEnc_ptr  self 
)
Adds an input variable to the array necessary to extract minterms from a BDD. Take into account of the members state.num_of_input_vars and state.num_of_state_vars in order to add the new minterm

Defined in BddEnc.c

static void 
bdd_enc_add_input_var(
  BddEnc_ptr  self, 
  node_ptr  name, 
  boolean  flag 
)
Adds a new boolean variable to the DD manager. This function is used to create the boolean variables needed to encode input variables.

See Also bdd_enc_add_state_var
Defined in BddEnc.c

static void 
bdd_enc_add_next_state_var_to_minterm_vars(
  BddEnc_ptr  self 
)
Adds an input variable to the array necessary to extract minterms from a BDD. Take into account of the members state.num_of_input_vars and state.num_of_state_vars in order to add the new minterm

Defined in BddEnc.c

static void 
bdd_enc_add_state_var_to_minterm_vars(
  BddEnc_ptr  self 
)
Adds an input variable to the array necessary to extract minterms from a BDD. Take into account of the members state.num_of_input_vars and state.num_of_state_vars in order to add the new minterm

Defined in BddEnc.c

static void 
bdd_enc_add_state_var(
  BddEnc_ptr  self, 
  node_ptr  name, 
  boolean  flag 
)
Adds a new boolean variable to the DD manager. If it is a state variable, then also the "next" variable is created, and the data structure to perform substitution of "current" and "next" variables is filled in.

See Also bdd_enc_add_state_var
Defined in BddEnc.c

static void 
bdd_enc_begin_group(
  BddEnc_ptr  self 
)
The dynamic reordering, if enabled, will be temporary disabled, until end_group is called

See Also bdd_enc_end_group
Defined in BddEnc.c

static add_ptr 
bdd_enc_binary_op(
  BddEnc_ptr  self, 
  ADDPFDAA  op, 
  node_ptr  n, 
  int  resflag, 
  int  argflag1, 
  int  argflag2, 
  node_ptr  context 
)
Takes in input the expression n and a binary operation op. Extracts from n the operands and evaluates them. The binary operator op is then applied to these partial results. The sign of the partial results and of the result depends respectively from the flags argflag1, argflag2 and resflag.

See Also eval unary_op ternary_op quaternary_op
Defined in BddEnc.c

static void 
bdd_enc_cache_deinit(
  BddEncCache_ptr  self 
)
Private deinitializer, called by the destructor

See Also bdd_enc_cache_init
Defined in BddEncCache.c

static void 
bdd_enc_cache_init(
  BddEncCache_ptr  self, 
  BddEnc_ptr  enc 
)
Private initializer, called by the constructor

See Also bdd_enc_cache_deinit
Defined in BddEncCache.c

static void 
bdd_enc_deinit(
  BddEnc_ptr  self 
)
Called by the destructor

Defined in BddEnc.c

static int 
bdd_enc_end_group(
  BddEnc_ptr  self 
)
All variables added between the calls to begin_group and this method will be grouped. If only one var has been added, no group will be created. The dynamic reordering, if was enabled before calling begin_group, is re-enabled. Returns the number of vars really blocked

See Also bdd_enc_begin_group
Defined in BddEnc.c

static add_ptr 
bdd_enc_eval_recur_case_atom(
  BddEnc_ptr  self, 
  Expr_ptr  expr, 
  node_ptr  ctx 
)
The expression n is recursively compiled in ADD:
  • If it is an ATOM:
    • If it is a program parameter, then its actual name is extracted from the parameter hash, and it is evaluated. The result of evaluation is returned.
    • If it is a constant, then the corresponding ADD is returned back.
  • If it is a binary operator, then the operands are evaluated, and then the binary operator is applied to the operands.

See Also eval get_definition
Defined in BddEnc.c

static add_ptr 
bdd_enc_eval_recur_case_dot_array(
  BddEnc_ptr  self, 
  Expr_ptr  expr, 
  node_ptr  ctx 
)

Defined in BddEnc.c

static add_ptr 
bdd_enc_eval_recur(
  BddEnc_ptr  self, 
  Expr_ptr  expr, 
  node_ptr  ctx 
)

Defined in BddEnc.c

static add_ptr 
bdd_enc_eval(
  BddEnc_ptr  self, 
  Expr_ptr  expr, 
  node_ptr  context 
)
This function takes an expression in input and gives as output the corresponding ADD.

This function if receives in input a domain variables, it returns as its evaluation the ADD representing its boolean encoding. It has as leaves the value associated to that path.
For instance consider the declaration:
VAR x : 1..6;
it is encoded with three boolean variables as below:


              x1
              /\ 
            1/  \0
            /    \
           /      \
          x2       x2
         /\        / \
        /  \       |  \
      x3    \      x3  \  
     /  \    \    /  \  \ 
    /    \   |   /    \  \
    1    5   3   2    6   4

  
If the expression is complex, then it recursively apply to the operands, and then apply the operation to the operands, returning the resulting ADD. Returned ADD is referenced

See Also eval_recur
Defined in BddEnc.c

static add_ptr 
bdd_enc_get_input_variables_add(
  const BddEnc_ptr  self 
)
Use this to retrieve value stored into the corresponding class member. Returned value is referenced

Defined in BddEnc.c

static add_ptr 
bdd_enc_get_next_state_variables_add(
  const BddEnc_ptr  self 
)
Use this to retrieve value stored into the corresponding class member. Returned value is referenced

Defined in BddEnc.c

static add_ptr 
bdd_enc_get_state_variables_add(
  const BddEnc_ptr  self 
)
Use this to retrieve value stored into the corresponding class member. Returned value is referenced

Defined in BddEnc.c

static add_ptr 
bdd_enc_get_var_mask_add_recur(
  BddEnc_ptr  self, 
  add_ptr  var_encoding, 
  add_ptr  cube 
)
Private method that recursively calculates the mask of the var encoding passed as argument. Passed cube is the cube of the encoding, used while visiting the encoding, in order to find indexes of sub-variable. Returned add is referenced, and the automatic reordering *must* be disabled before calling this method.

Defined in BddEnc.c

static add_ptr 
bdd_enc_get_vars_list_mask(
  BddEnc_ptr  self, 
  NodeList_ptr  vars 
)
Private service used by higher level mask-related methods

Defined in BddEnc.c

static add_ptr 
bdd_enc_if_then_else_op(
  BddEnc_ptr  self, 
  node_ptr  node, 
  node_ptr  context 
)
Evaluates if_then_else expressions returning the ADD representing IF ifarg THEN thenarg ELSE elsarg, where ifarg, thenarg, elsearg are the ADD obtained by evaluating ifexp, thenexp, elseexp respectively in context context. The resulting ADD is saved in the ADD hash before returning it to the calling function.

See Also add_ifthenelse
Defined in BddEnc.c

static void 
bdd_enc_init(
  BddEnc_ptr  self, 
  Encoding_ptr  generic_encoding, 
  DdManager* dd 
)
Partial initializer. Call BddEnc_encode_vars to complete

See Also BddEnc_encode_vars
Defined in BddEnc.c

static void 
bdd_enc_pre_encode(
  BddEnc_ptr  self 
)

Defined in BddEnc.c

static add_ptr 
bdd_enc_quaternary_op(
  BddEnc_ptr  self, 
  ADDPFDAAII  op, 
  node_ptr  n, 
  int  resflag, 
  int  argflag1, 
  int  argflag2, 
  node_ptr  context 
)
Takes in input the expression n and a quaternary operation op. Extracts from n the operands and evaluates them.
The third and fourth arguments have to evaluate to numbers. And op is a function that takes as input two ADD and two integers. The quaternary operator op is then applied to these partial results. The sign of the partial result and of the result depends respectively from the flags argflag1, argflag2 and resflag.

See Also eval unary_op binary_op ternary_op
Defined in BddEnc.c

static void 
bdd_enc_set_input_variables_add(
  BddEnc_ptr  self, 
  add_ptr  add 
)
Sets both members input_variables_add and input_variables_bdd. Always use this to set the value of this member

Defined in BddEnc.c

static void 
bdd_enc_set_next_state_variables_add(
  BddEnc_ptr  self, 
  add_ptr  add 
)
Sets both members state_variables_add and state_variables_bdd. Always use this to set the value of this member

Defined in BddEnc.c

static void 
bdd_enc_set_state_variables_add(
  BddEnc_ptr  self, 
  add_ptr  add 
)
Sets both members state_variables_add and state_variables_bdd. Always use this to set the value of this member

Defined in BddEnc.c

static add_ptr 
bdd_enc_ternary_op(
  BddEnc_ptr  self, 
  ADDPFDAII  op, 
  node_ptr  n, 
  int  resflag, 
  int  argflag, 
  node_ptr  context 
)
Takes in input the expression n and a ternary operation op. Extracts from n the operands and evaluates them.
The second and third arguments have to evaluate to numbers. And op is a function that takes as input an ADD an two integers. The ternary operator op is then applied to these partial results. The sign of the partial result and of the result depends respectively from the flags argflag and resflag.

See Also eval unary_op binary_op quaternary_op
Defined in BddEnc.c

static add_ptr 
bdd_enc_unary_op(
  BddEnc_ptr  self, 
  ADDPFDA  op, 
  node_ptr  n, 
  int  resflag, 
  int  argflag, 
  node_ptr  context 
)
Takes in input the expression n and a unary operation op. Evaluates n and applies to this partial result the unary operator op. The sign of the partial result and of the result depends respectively from the flag argflag and resflag.

See Also eval binary_op ternary_op quaternary_op
Defined in BddEnc.c

static assoc_retval 
hash_bdd_free(
  char* key, 
  char* data, 
  char* arg 
)
Used when destroying NodeList containing BDDs

Defined in BddEnc.c

static assoc_retval 
hash_dup_add(
  char* key, 
  char* add, 
  char* ddmgr 
)
Called when pushing the status

Defined in BddEncCache.c

static assoc_retval 
hash_free_add_evaluating(
  char* key, 
  char* data, 
  char* arg 
)
Called when pushing the status, and during deinitialization

Defined in BddEncCache.c

static assoc_retval 
hash_node_free(
  char* key, 
  char* data, 
  char* arg 
)
Used when destroying node list containing node_ptr

Defined in BddEnc.c

 
(
    
)
Used only by method BddEncCache_push_status_and_reset

Defined in BddEncCache.c

 
(
    
)
Used only by method BddEncCache_push_status_and_reset

Defined in BddEncCache.c

Last updated on 2004/06/10 11h:16