BddEnc class definition derived from class BoolEncClient. More...
#include <BddEnc_private.h>
Public Member Functions | |
INHERITS_FROM (BoolEncClient) | |
Data Fields | |
BddEncCache_ptr | cache |
dd_reorderingtype | curr_reord_type |
int | curr_reorderings |
array_t * | current2next |
DDMgr_ptr | dd |
VarsHandler_ptr | dd_vars_hndr |
boolean | enforce_constant |
hash_ptr | failures_hash |
add_ptr | frozen_vars_add |
bdd_ptr | frozen_vars_bdd |
int | frozen_vars_num |
array_t * | index2name |
NodeList_ptr | index_gaps |
add_ptr | input_vars_add |
bdd_ptr | input_vars_bdd |
add_ptr | input_vars_mask_add |
bdd_ptr | input_vars_mask_bdd |
int | input_vars_num |
hash_ptr | layer2groups |
array_t * | level2index |
array_t * | minterm_frozen_vars |
int | minterm_frozen_vars_dim |
array_t * | minterm_input_vars |
int | minterm_input_vars_dim |
array_t * | minterm_next_state_vars |
int | minterm_next_state_vars_dim |
array_t * | minterm_state_frozen_input_vars |
int | minterm_state_frozen_input_vars_dim |
array_t * | minterm_state_frozen_vars |
int | minterm_state_frozen_vars_dim |
array_t * | minterm_state_vars |
int | minterm_state_vars_dim |
hash_ptr | name2index |
array_t * | next2current |
add_ptr | next_state_vars_add |
bdd_ptr | next_state_vars_bdd |
OrdGroups_ptr | ord_groups |
node_ptr | print_stack |
int | reord_locked_num |
int | reord_status |
add_ptr | state_frozen_input_vars_mask_add |
bdd_ptr | state_frozen_input_vars_mask_bdd |
bdd_ptr | state_frozen_vars_bdd |
add_ptr | state_frozen_vars_mask_add |
bdd_ptr | state_frozen_vars_mask_bdd |
add_ptr | state_vars_add |
bdd_ptr | state_vars_bdd |
int | state_vars_num |
TypeChecker_ptr | type_checker |
int | used_indices_frontier |
Related Functions | |
(Note that these are not member functions.) | |
void | bdd_enc_deinit (BddEnc_ptr self) |
void | bdd_enc_init (BddEnc_ptr self, SymbTable_ptr symb_table, BoolEnc_ptr bool_enc, VarsHandler_ptr dd_vars_hdlr, OrdGroups_ptr ord_groups) |
void | bdd_enc_shuffle_variables_order (BddEnc_ptr self, NodeList_ptr vars) |
node_ptr | BddEnc_add_to_expr (BddEnc_ptr self, const add_ptr add, SymbLayer_ptr det_layer) |
Converts a ADD into the corresponding (boolean) expression. | |
node_ptr | BddEnc_add_to_scalar_expr (BddEnc_ptr self, const add_ptr add, SymbLayer_ptr det_layer) |
Converts a ADD into the corresponding (possibly scalar) expression. | |
add_ptr | BddEnc_apply_input_vars_mask_add (BddEnc_ptr self, add_ptr inputs) |
Applies a mask to the given add which must contain only input variables. | |
BddInputs | BddEnc_apply_input_vars_mask_bdd (BddEnc_ptr self, BddInputs inputs) |
Applies a mask to the given BDD which must contain only input variables. | |
add_ptr | BddEnc_apply_state_frozen_input_vars_mask_add (BddEnc_ptr self, add_ptr states_inputs) |
Applies a mask to the given add which must contain frozen, state and input variables. | |
BddStatesInputs | BddEnc_apply_state_frozen_input_vars_mask_bdd (BddEnc_ptr self, BddStatesInputs states_inputs) |
Applies a mask to the given BDD which must contain frozen, state and input variables. | |
add_ptr | BddEnc_apply_state_frozen_vars_mask_add (BddEnc_ptr self, add_ptr states) |
Applies a mask to the given add which must contain only frozen and state variables. | |
BddStates | BddEnc_apply_state_frozen_vars_mask_bdd (BddEnc_ptr self, BddStates states) |
Applies a mask to the given BDD which must contain only frozen and state variables. | |
node_ptr | BddEnc_assign_symbols (BddEnc_ptr self, bdd_ptr bdd, NodeList_ptr symbols, boolean onlyRequiredSymbs, bdd_ptr *resultBdd) |
This function is similar to BddEnc_print_set_of... functions except that instead of printing values of variables, this funtion creates a list of pairs var-itsValue. | |
node_ptr | BddEnc_bdd_to_expr (BddEnc_ptr self, const bdd_ptr bdd) |
Converts a BDD into the corresponding (boolean) expression. | |
node_ptr | BddEnc_bdd_to_wff (BddEnc_ptr self, bdd_ptr bdd, NodeList_ptr vars) |
Converts a bdd into a Well Formed Formula representing it. | |
void | BddEnc_clean_evaluation_cache (BddEnc_ptr self) |
Clean the internal cache which contains the results of evaluation of expressions to ADD or BDD form. | |
array_t * | BddEnc_ComputePrimeImplicants (BddEnc_ptr self, const array_t *layer_names, bdd_ptr formula) |
Finds a set of prime implicants for a formula represented as a BDD. | |
add_ptr | BddEnc_constant_to_add (const BddEnc_ptr self, node_ptr constant) |
Returns the ADD leaf corresponding to the given atom. | |
double | BddEnc_count_inputs_of_bdd (const BddEnc_ptr self, bdd_ptr bdd) |
Return the number of inputs of a given BDD. | |
double | BddEnc_count_states_inputs_of_bdd (const BddEnc_ptr self, bdd_ptr bdd) |
Return the number of states inputs of a given BDD. | |
double | BddEnc_count_states_of_add (const BddEnc_ptr self, add_ptr add) |
Return the number of states of a given ADD. | |
double | BddEnc_count_states_of_bdd (const BddEnc_ptr self, bdd_ptr bdd) |
Return the number of states of a given BDD. | |
BddEnc_ptr | BddEnc_create (SymbTable_ptr symb_table, BoolEnc_ptr bool_enc, VarsHandler_ptr dd_vars_hndr, OrdGroups_ptr ord_groups) |
The BddEnc class constructor. | |
VIRTUAL void | BddEnc_destroy (BddEnc_ptr self) |
The BddEnc class destructor. | |
int | BddEnc_dump_addarray_davinci (BddEnc_ptr self, AddArray_ptr addarray, const char **labels, FILE *outfile) |
Dumps the given AddArray in DAVINCI format. | |
int | BddEnc_dump_addarray_dot (BddEnc_ptr self, AddArray_ptr addarray, const char **labels, FILE *outfile) |
Dumps the given AddArray in DOT format. | |
int | BddEnc_dump_expr (const BddEnc_ptr self, const node_ptr parsed_expr, const char *str_constr, const t_format format, FILE *outfile) |
Dumps an expression in the specified output format. | |
add_ptr | BddEnc_eval_constant (BddEnc_ptr self, Expr_ptr expr, node_ptr context) |
Evaluates a constant expression. | |
int | BddEnc_eval_num (BddEnc_ptr self, node_ptr e, node_ptr context) |
Evaluates a number in a context. | |
add_ptr | BddEnc_eval_sign_add (BddEnc_ptr self, add_ptr a, int flag) |
Complements an ADD according to a flag. | |
bdd_ptr | BddEnc_eval_sign_bdd (BddEnc_ptr self, bdd_ptr a, int flag) |
Complements a BDD according to a flag. | |
add_ptr | BddEnc_expr_to_add (BddEnc_ptr self, const Expr_ptr expr, const node_ptr context) |
Returns the ADD representing the expression expr, in the given context. | |
AddArray_ptr | BddEnc_expr_to_addarray (BddEnc_ptr self, const Expr_ptr expr, const node_ptr context) |
Returns the ADD array representing the expression expr, in the given context. | |
bdd_ptr | BddEnc_expr_to_bdd (BddEnc_ptr self, const Expr_ptr expr, const node_ptr context) |
Returns the BDD representing the expression expr, in the given contex. | |
void | BddEnc_force_order (BddEnc_ptr self, OrdGroups_ptr new_po_grps) |
Forces a variable ordering in the BDD encoding. | |
void | BddEnc_force_order_from_file (BddEnc_ptr self, FILE *orderfile) |
Forces a variable ordering in the BDD encoding reading it from a file. | |
DDMgr_ptr | BddEnc_get_dd_manager (const BddEnc_ptr self) |
VarsHandler_ptr | BddEnc_get_dd_vars_handler (const BddEnc_ptr self) |
BddVarSet_ptr | BddEnc_get_frozen_vars_cube (const BddEnc_ptr self) |
Gets the support of the set of frozen variables. | |
BddVarSet_ptr | BddEnc_get_input_vars_cube (const BddEnc_ptr self) |
Gets the support of the set of input variables. | |
add_ptr | BddEnc_get_input_vars_mask_add (BddEnc_ptr self) |
Returns the mask (as an ADD) in terms of input variables. | |
bdd_ptr | BddEnc_get_input_vars_mask_bdd (BddEnc_ptr self) |
Returns the mask (as BDD) in terms of input variables. | |
BddVarSet_ptr | BddEnc_get_layer_vars_cube (const BddEnc_ptr self, SymbLayer_ptr layer, SymbFilterType vt) |
Given a layer the function produces a cube of all layer's variables. | |
double | BddEnc_get_minterms_of_add (const BddEnc_ptr self, add_ptr add) |
Return the number of minterms of a given ADD. | |
double | BddEnc_get_minterms_of_bdd (const BddEnc_ptr self, bdd_ptr bdd) |
Return the number of minterms of a given BDD. | |
BddVarSet_ptr | BddEnc_get_next_state_vars_cube (const BddEnc_ptr self) |
Gets the support of the set of next-state variables. | |
OrdGroups_ptr | BddEnc_get_ord_groups (const BddEnc_ptr self) |
Returns the internally used order that was specified when creating the instance. Order is used when committing a layer and when forcing a reordering. | |
int | BddEnc_get_reordering_count (const BddEnc_ptr self) |
Returns the number of reorderings that have been carried out since either the self construction or the last call to method reset_reordering_count. | |
add_ptr | BddEnc_get_state_frozen_input_vars_mask_add (BddEnc_ptr self) |
Returns the mask (as ADD) in terms of state, frozen and input variables. | |
bdd_ptr | BddEnc_get_state_frozen_input_vars_mask_bdd (BddEnc_ptr self) |
Returns the mask (as BDD) in terms of frozen, state and input variables. | |
BddVarSet_ptr | BddEnc_get_state_frozen_vars_cube (const BddEnc_ptr self) |
Gets the support of the set of state and frozen variables. | |
add_ptr | BddEnc_get_state_frozen_vars_mask_add (BddEnc_ptr self) |
Returns the mask (as an ADD) in terms of frozen and state variables. | |
bdd_ptr | BddEnc_get_state_frozen_vars_mask_bdd (BddEnc_ptr self) |
Returns the mask (as BDD) in terms of frozen and state variables. | |
BddVarSet_ptr | BddEnc_get_state_next_state_frozen_vars_cube (const BddEnc_ptr self) |
Gets the support of the set of state, next state and frozen variables. | |
BddVarSet_ptr | BddEnc_get_state_vars_cube (const BddEnc_ptr self) |
Gets the support of the set of state variables. | |
AddArray_ptr | BddEnc_get_symbol_add (BddEnc_ptr self, node_ptr name) |
Given a variable, define or process constant the corresponding ADD array is returned. | |
BddVarSet_ptr | BddEnc_get_unfiltered_vars_cube (const BddEnc_ptr self, Set_t vars) |
Given a set of variables the function produces a cube of all of them. | |
int | BddEnc_get_var_index_from_name (const BddEnc_ptr self, node_ptr name) |
Returns the DD index of the given variable. | |
add_ptr | BddEnc_get_var_mask (BddEnc_ptr self, node_ptr var_name) |
Given a variable, it returns the mask of its encoding. | |
node_ptr | BddEnc_get_var_name_from_index (const BddEnc_ptr self, int index) |
Given a variable index, this method return the symbolic name of the correpsonding variable. | |
NodeList_ptr | BddEnc_get_var_ordering (const BddEnc_ptr self, const VarOrderingType ord_type) |
BddVarSet_ptr | BddEnc_get_vars_cube (const BddEnc_ptr self, Set_t vars, SymbFilterType vt) |
Given a set of variables the function produces a cube of them filtering out some of them. | |
NodeList_ptr | BddEnc_get_vars_in_cube (const BddEnc_ptr self, bdd_ptr cube, node_ptr list_of_sym, boolean include_next) |
Returns the symbolic names of boolean variables stored in a cube. | |
boolean | BddEnc_has_var_at_index (const BddEnc_ptr self, int index) |
Given a variable index, this method return true iff the given variable belongs to the encoder. | |
boolean | BddEnc_is_var_in_cube (const BddEnc_ptr self, node_ptr name, add_ptr cube) |
Returns true if the variable is in the cube and false otherwise. | |
bdd_ptr | BddEnc_next_state_var_to_state_var (const BddEnc_ptr self, bdd_ptr bdd) |
Exchange state variables for next state variables. | |
add_ptr | BddEnc_next_state_var_to_state_var_add (const BddEnc_ptr self, add_ptr add) |
Exchange state variables for next state variables in terms of ADD. | |
boolean | BddEnc_pick_all_terms_inputs (const BddEnc_ptr self, bdd_ptr bdd, bdd_ptr *result_array, const int array_len) |
Returns the array of All Possible Minterms. | |
boolean | BddEnc_pick_all_terms_states (const BddEnc_ptr self, bdd_ptr bdd, bdd_ptr *result_array, const int array_len) |
Returns the array of All Possible Minterms. | |
boolean | BddEnc_pick_all_terms_states_inputs (const BddEnc_ptr self, bdd_ptr bdd, bdd_ptr *result_array, const int array_len) |
Returns the array of All Possible Minterms. | |
bdd_ptr | BddEnc_pick_one_input (const BddEnc_ptr self, bdd_ptr inputs) |
Extracts a minterm from a given BDD. | |
bdd_ptr | BddEnc_pick_one_input_rand (const BddEnc_ptr self, bdd_ptr inputs) |
Extracts a random minterm from a given BDD. | |
bdd_ptr | BddEnc_pick_one_input_state (const BddEnc_ptr self, bdd_ptr inputs_states) |
Extracts a minterm over input/state variables from a given BDD. | |
bdd_ptr | BddEnc_pick_one_input_state_rand (const BddEnc_ptr self, bdd_ptr inputs_states) |
Extracts a random minterm from a given BDD. | |
bdd_ptr | BddEnc_pick_one_state (const BddEnc_ptr self, bdd_ptr states) |
Extracts a minterm from a given BDD. | |
bdd_ptr | BddEnc_pick_one_state_rand (const BddEnc_ptr self, bdd_ptr states) |
Extracts a random minterm from a given BDD. | |
int | BddEnc_print_bdd (BddEnc_ptr self, bdd_ptr bdd, VPFBEFNNV p_fun, OStream_ptr file, void *arg) |
Prints the given bdd. In particular prints only the symbols occuring in the symbols list passed to print_bdd_begin. Individual assignments may be printed using a user-defined function, passed as a parameter. | |
void | BddEnc_print_bdd_begin (BddEnc_ptr self, NodeList_ptr symbols, boolean changes_only) |
Call before a group of BddEnc_print_bdd calls. | |
void | BddEnc_print_bdd_end (BddEnc_ptr self) |
Must be called after each call to BddEnc_print_bdd_begin. | |
void | BddEnc_print_bdd_wff (BddEnc_ptr self, bdd_ptr bdd, NodeList_ptr vars, boolean do_sharing, boolean do_indent, int start_at_column, OStream_ptr out) |
Prints a BDD as a Well Formed Formula using optional sharing. | |
void | BddEnc_print_formula_info (BddEnc_ptr self, Expr_ptr formula, boolean print_models, boolean print_formula, OStream_ptr out) |
Prints statistical information of a formula. | |
void | BddEnc_print_set_of_inputs (BddEnc_ptr self, bdd_ptr inputs, boolean changes_only, VPFBEFNNV p_fun, OStream_ptr file, void *arg) |
Prints a set of input pairs. Individual assignments may be printed using a user-defined function, passed as a parameter. | |
void | BddEnc_print_set_of_state_input_pairs (BddEnc_ptr self, bdd_ptr state_input_pairs, boolean changes_only, VPFBEFNNV p_fun, OStream_ptr file, void *arg) |
Prints a set of state-input pairs. Individual assignments may be printed using a user-defined function, passed as a parameter. | |
void | BddEnc_print_set_of_states (BddEnc_ptr self, bdd_ptr states, boolean changes_only, boolean print_defines, VPFBEFNNV p_fun, OStream_ptr file, void *arg) |
Prints a set of states. Individual assignments may be printed using a user-defined function, passed as a parameter. | |
void | BddEnc_print_set_of_trans_models (BddEnc_ptr self, bdd_ptr state_input_pairs, OStream_ptr file) |
Prints a set of models for given trans. | |
void | BddEnc_print_vars_in_cube (BddEnc_ptr self, bdd_ptr cube, node_ptr list_of_sym, OStream_ptr file) |
Prints out the symbolic names of boolean variables stored in a cube. | |
void | BddEnc_reset_reordering_count (BddEnc_ptr self) |
Resets the reordering count. The value returned by any following call to method get_reordering_count will be relative to the moment this method had been called. | |
bdd_ptr | BddEnc_state_var_to_next_state_var (const BddEnc_ptr self, bdd_ptr bdd) |
Exchange next state variables for state variables. | |
add_ptr | BddEnc_state_var_to_next_state_var_add (const BddEnc_ptr self, add_ptr add) |
Exchange next state variables for state variables, in terms of ADD. | |
int | BddEnc_write_var_ordering (const BddEnc_ptr self, const char *oo_filename, const VarOrderingType dump_type) |
Writes on a file the variable order. |
BddEnc class definition derived from class BoolEncClient.
Public interface of class 'BddEnc'.
Definition of the public accessor for class BddEnc
BddEnc::INHERITS_FROM | ( | BoolEncClient | ) |
void bdd_enc_deinit | ( | BddEnc_ptr | self | ) | [related] |
void bdd_enc_init | ( | BddEnc_ptr | self, | |
SymbTable_ptr | symb_table, | |||
BoolEnc_ptr | bool_enc, | |||
VarsHandler_ptr | dd_vars_hdlr, | |||
OrdGroups_ptr | ord_groups | |||
) | [related] |
void bdd_enc_shuffle_variables_order | ( | BddEnc_ptr | self, | |
NodeList_ptr | vars | |||
) | [related] |
node_ptr BddEnc_add_to_expr | ( | BddEnc_ptr | self, | |
const add_ptr | add, | |||
SymbLayer_ptr | det_layer | |||
) | [related] |
Converts a ADD into the corresponding (boolean) expression.
Takes an ADD with leaves FALSE, TRUE, or {FALSE,TRUE}.
The case of {FALSE,TRUE} leaves is determinized if a valid layer is passed, otherwise it is preserved.
Important: if a valid determinization layer is given, the layer cannot be alreay commited to the encoder, and will have to be possibly committed later if the returned expression is intended to be used by this encoder in terms of ADD or BDD.
Recurs down on the structure of the ADD, and maps each non terminal node into an if-then-else expression, maps FALSE and TRUE terminal nodes into true and false expressions, and maps {FALSE,TRUE} into a newly introduced variable to determinize the expression.
A new boolean variable can be declared within det_layer
node_ptr BddEnc_add_to_scalar_expr | ( | BddEnc_ptr | self, | |
const add_ptr | add, | |||
SymbLayer_ptr | det_layer | |||
) | [related] |
Converts a ADD into the corresponding (possibly scalar) expression.
Takes an ADD and converts it to the corresponding scalar expression.
Non deterministic leaves will be determinized only if a valid layer is passed. Important: if a valid determinization layer is given, the layer cannot be alreay commited to the encoder, and will have to be possibly committed later if the returned expression is intended to be used by this encoder in terms of ADD or BDD.
Recurs down on the structure of the ADD, and maps each non terminal node into an if-then-else expression
A new scalar variable may be declared within det_layer
add_ptr BddEnc_apply_input_vars_mask_add | ( | BddEnc_ptr | self, | |
add_ptr | inputs | |||
) | [related] |
Applies a mask to the given add which must contain only input variables.
Returned add is referenced. Calculated mask will be cached for future use. The mask will be applicable only to variable that occur within the layers committed to self
BddInputs BddEnc_apply_input_vars_mask_bdd | ( | BddEnc_ptr | self, | |
BddInputs | inputs | |||
) | [related] |
Applies a mask to the given BDD which must contain only input variables.
Returned bdd is referenced. Calculated mask will be cached for future use. The mask will be applicable only to variable that occur within the layers committed to self
add_ptr BddEnc_apply_state_frozen_input_vars_mask_add | ( | BddEnc_ptr | self, | |
add_ptr | states_inputs | |||
) | [related] |
Applies a mask to the given add which must contain frozen, state and input variables.
Returned add is referenced. Calculated mask will be cached for future use. The mask will be applicable only to variable that occur within the layers committed to self
BddStatesInputs BddEnc_apply_state_frozen_input_vars_mask_bdd | ( | BddEnc_ptr | self, | |
BddStatesInputs | states_inputs | |||
) | [related] |
Applies a mask to the given BDD which must contain frozen, state and input variables.
Returned bdd is referenced. Calculated mask will be cached for future use. The mask will be applicable only to variable that occur within the layers committed to self
add_ptr BddEnc_apply_state_frozen_vars_mask_add | ( | BddEnc_ptr | self, | |
add_ptr | states | |||
) | [related] |
Applies a mask to the given add which must contain only frozen and state variables.
Returned add is referenced. Calculated mask will be cached for future use. The mask will be applicable only to variable that occur within the layers committed to self
BddStates BddEnc_apply_state_frozen_vars_mask_bdd | ( | BddEnc_ptr | self, | |
BddStates | states | |||
) | [related] |
Applies a mask to the given BDD which must contain only frozen and state variables.
Returned bdd is referenced. Calculated mask will be cached for future use. The mask will be applicable only to variable that occur within the layers committed to self
node_ptr BddEnc_assign_symbols | ( | BddEnc_ptr | self, | |
bdd_ptr | bdd, | |||
NodeList_ptr | symbols, | |||
boolean | onlyRequiredSymbs, | |||
bdd_ptr * | resultBdd | |||
) | [related] |
This function is similar to BddEnc_print_set_of... functions except that instead of printing values of variables, this funtion creates a list of pairs var-itsValue.
This functions takes a BDD and a list of symbols (variables or defines, both can be wrapped in NEXT), and returns a list of (symb, symb_value) which makes BDD not false (input BDD) should not be false constant). Returned list is a list of AND nodes with Nil at the end. Every element is a EQUAL node with symbol on the left and its value on the right.
Order of symbols in the returned list is the same of provided symbols list. If parameter 'onlyRequiredSymbs' is true then symbols whose values are not constrained by provided BDD will be skipped. Otherwise, some legal arbitrary values for such symbols will be created and returned list will contain all the symbols from 'symbols'.
If parameter resultAssignment is not null pointer, then it returns the produced assignments in the form of BDD, i.e. a conjunct of all generated equations "symbol = itsValue".
The input BDD may or may not be a complete assignment. The invoker should free the returned list (with free_list) and returned BDD (if any). Note, that EQUAL nodes should not be freed/modified as created with find_node.
node_ptr BddEnc_bdd_to_expr | ( | BddEnc_ptr | self, | |
const bdd_ptr | bdd | |||
) | [related] |
Converts a BDD into the corresponding (boolean) expression.
node_ptr BddEnc_bdd_to_wff | ( | BddEnc_ptr | self, | |
bdd_ptr | bdd, | |||
NodeList_ptr | vars | |||
) | [related] |
Converts a bdd into a Well Formed Formula representing it.
A new expression is built, that represents the formula given as the input bdd.
The list of variables is used to compute the scalar essentials. Note that only the following kinds of variables are allowed in this list.
1. Pure booleans (i.e. not part of an encoding) 2. Finite scalars (both ranged and words).
State, frozen and input variables are all allowed, no NEXT. (It will be part of this function's responsibility to add state variables' NEXTs as needed.
none
void BddEnc_clean_evaluation_cache | ( | BddEnc_ptr | self | ) | [related] |
Clean the internal cache which contains the results of evaluation of expressions to ADD or BDD form.
NB: NuSMV option "enable_sexp2bdd_caching" allows to disable the cache completely
array_t * BddEnc_ComputePrimeImplicants | ( | BddEnc_ptr | self, | |
const array_t * | layer_names, | |||
bdd_ptr | formula | |||
) | [related] |
Finds a set of prime implicants for a formula represented as a BDD.
Finds the set of prime implicants of a BDD b. Each element of the resulting array is a prime implicant of the BDD b. The prime implicant is represented as a list of pairs
(: <vname>
)
The meaning is that the variable <vname> is equal to
, i.e. <vname> =
. A further post-process of the result can write it in a better way, expecially for non boolean variables, where several prime implicants can be combined by writing complex predicates instead of simple equalities.
The list of layers can be declared for instance as:
char ** layers = {MODEL_LAYER_NAME, "BA_ABSTRACTION", NULL};
Where MODEL_LAYER_NAME is the name of the model layer, "BA_ABSTRACTION" is the name of a new user created layer. Very inportant is the NULL at the end to terminate the list.
This function needs more comment
None
add_ptr BddEnc_constant_to_add | ( | const BddEnc_ptr | self, | |
node_ptr | constant | |||
) | [related] |
Returns the ADD leaf corresponding to the given atom.
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 condition : {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
.
double BddEnc_count_inputs_of_bdd | ( | const BddEnc_ptr | self, | |
bdd_ptr | bdd | |||
) | [related] |
Return the number of inputs of a given BDD.
Return the number of inputs represented by a BDD.
double BddEnc_count_states_inputs_of_bdd | ( | const BddEnc_ptr | self, | |
bdd_ptr | bdd | |||
) | [related] |
Return the number of states inputs of a given BDD.
Return the number of states inputs represented by a BDD. Note: states are represented by state and frozen variables
double BddEnc_count_states_of_add | ( | const BddEnc_ptr | self, | |
add_ptr | add | |||
) | [related] |
Return the number of states of a given ADD.
Return the number of minterms (i.e. states) represented by an ADD. Note: states are represented by state and frozen variables
double BddEnc_count_states_of_bdd | ( | const BddEnc_ptr | self, | |
bdd_ptr | bdd | |||
) | [related] |
Return the number of states of a given BDD.
Return the number of states represented by a BDD. Note: states are represented by state and frozen variables.
BddEnc_ptr BddEnc_create | ( | SymbTable_ptr | symb_table, | |
BoolEnc_ptr | bool_enc, | |||
VarsHandler_ptr | dd_vars_hndr, | |||
OrdGroups_ptr | ord_groups | |||
) | [related] |
The BddEnc class constructor.
AutomaticStart
The BddEnc class constructor. ord_groups can be NULL if ordering is not used. self become the owner of the given ord_groups instance
VIRTUAL void BddEnc_destroy | ( | BddEnc_ptr | self | ) | [related] |
int BddEnc_dump_addarray_davinci | ( | BddEnc_ptr | self, | |
AddArray_ptr | addarray, | |||
const char ** | labels, | |||
FILE * | outfile | |||
) | [related] |
int BddEnc_dump_addarray_dot | ( | BddEnc_ptr | self, | |
AddArray_ptr | addarray, | |||
const char ** | labels, | |||
FILE * | outfile | |||
) | [related] |
int BddEnc_dump_expr | ( | const BddEnc_ptr | self, | |
const node_ptr | parsed_expr, | |||
const char * | str_constr, | |||
const t_format | format, | |||
FILE * | outfile | |||
) | [related] |
Dumps an expression in the specified output format.
type check the expression, then convers to bdd and dumps
add_ptr BddEnc_eval_constant | ( | BddEnc_ptr | self, | |
Expr_ptr | expr, | |||
node_ptr | context | |||
) | [related] |
Evaluates a constant expression.
Evaluate a constant expression. If the expression does not evaluate to a constant, then an internal error is generated. Returned add is referenced.
int BddEnc_eval_num | ( | BddEnc_ptr | self, | |
node_ptr | e, | |||
node_ptr | context | |||
) | [related] |
Evaluates a number in a context.
Evaluate the NUMBER represented by e
in context context
. NUMBERS can be encoded in different ways in different processes.
add_ptr BddEnc_eval_sign_add | ( | BddEnc_ptr | self, | |
add_ptr | a, | |||
int | flag | |||
) | [related] |
Complements an ADD according to a 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 FALSE/TRUE ADD (i.e. it has only FALSE or TRUE as leaf).
bdd_ptr BddEnc_eval_sign_bdd | ( | BddEnc_ptr | self, | |
bdd_ptr | a, | |||
int | flag | |||
) | [related] |
Complements a BDD according to a 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 has only FALSE or TRUE as leaves.
add_ptr BddEnc_expr_to_add | ( | BddEnc_ptr | self, | |
const Expr_ptr | expr, | |||
const node_ptr | context | |||
) | [related] |
Returns the ADD representing the expression expr, in the given context.
Returned add is referenced. A NULL value of the provided expression (expr) corresponds to a true ADD returned as result.
NOTE: Mostly expressions must be type checked before being evaluated. For example, use TypeChecker_is_expression_wellformed to type check generated expression. FSM should be checked with TypeCheckingPkg_check_constrains, and a property should be checked with TypeCheckingPkg_check_property
AddArray_ptr BddEnc_expr_to_addarray | ( | BddEnc_ptr | self, | |
const Expr_ptr | expr, | |||
const node_ptr | context | |||
) | [related] |
Returns the ADD array representing the expression expr, in the given context.
Each element of the returned add array is referenced. A NULL value of the provided expression (expr) corresponds to a true ADD array returned as result.
The returned array will belong to the invoker.
NOTE: Mostly expressions must be type checked before being evaluated. For example, use TypeChecker_is_expression_wellformed to type check generated expression. FSM should be checked with TypeCheckingPkg_check_constrains, and a property should be checked with TypeCheckingPkg_check_property
bdd_ptr BddEnc_expr_to_bdd | ( | BddEnc_ptr | self, | |
const Expr_ptr | expr, | |||
const node_ptr | context | |||
) | [related] |
Returns the BDD representing the expression expr, in the given contex.
Returned bdd is referenced.
NOTE: Mostly expressions must be type checked before being evaluated. For example, use TypeChecker_is_expression_wellformed to type check generated expression. FSM should be checked with TypeCheckingPkg_check_constrains, and a property should be checked with TypeCheckingPkg_check_property
void BddEnc_force_order | ( | BddEnc_ptr | self, | |
OrdGroups_ptr | new_po_grps | |||
) | [related] |
Forces a variable ordering in the BDD encoding.
It takes an OrdGroups structure representing the possibly partial ordering and the routine complete it with the possible missing variables. It is assumed all the variables in the given ordering group have been previously allocated within the BDD package.
void BddEnc_force_order_from_file | ( | BddEnc_ptr | self, | |
FILE * | orderfile | |||
) | [related] |
Forces a variable ordering in the BDD encoding reading it from a file.
It reads an order file and then forces it within the BDD package. The order file may be partial. Thanks to BddEnc_force_order
the ordering is completed with the possible missing variables.
DDMgr_ptr BddEnc_get_dd_manager | ( | const BddEnc_ptr | self | ) | [related] |
Gets the DD manager this encoding refers to.
VarsHandler_ptr BddEnc_get_dd_vars_handler | ( | const BddEnc_ptr | self | ) | [related] |
Gets the DD vars handler this encoding refers to.
BddVarSet_ptr BddEnc_get_frozen_vars_cube | ( | const BddEnc_ptr | self | ) | [related] |
Gets the support of the set of frozen variables.
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. Returns NULL if an error occurred.
BddVarSet_ptr BddEnc_get_input_vars_cube | ( | const BddEnc_ptr | self | ) | [related] |
Gets the support of the set of input variables.
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. Returns NULL if an error occurred.
add_ptr BddEnc_get_input_vars_mask_add | ( | BddEnc_ptr | self | ) | [related] |
Returns the mask (as an ADD) in terms of input variables.
Returned add is referenced. Calculated mask will be cached for future use. The mask will be applicable only to variable that occur within the layers committed to self
bdd_ptr BddEnc_get_input_vars_mask_bdd | ( | BddEnc_ptr | self | ) | [related] |
Returns the mask (as BDD) in terms of input variables.
Returned bdd is referenced. Calculated mask will be cached for future use. The mask will be applicable only to variable that occur within the layers committed to self
BddVarSet_ptr BddEnc_get_layer_vars_cube | ( | const BddEnc_ptr | self, | |
SymbLayer_ptr | layer, | |||
SymbFilterType | vt | |||
) | [related] |
Given a layer the function produces a cube of all layer's variables.
vt can be a combination of VFT_CURRENT, VFT_NEXT, VFT_FROZEN, VFT_INPUT (see SymbFilterType for combination shortcuts). Returned bdd is referenced, the caller must free it after it is no longer used.
double BddEnc_get_minterms_of_add | ( | const BddEnc_ptr | self, | |
add_ptr | add | |||
) | [related] |
Return the number of minterms of a given ADD.
Return the number of minterms represented by a ADD.
double BddEnc_get_minterms_of_bdd | ( | const BddEnc_ptr | self, | |
bdd_ptr | bdd | |||
) | [related] |
Return the number of minterms of a given BDD.
Return the number of minterms represented by a BDD.
BddVarSet_ptr BddEnc_get_next_state_vars_cube | ( | const BddEnc_ptr | self | ) | [related] |
Gets the support of the set of next-state variables.
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. Returns NULL if an error occurred.
OrdGroups_ptr BddEnc_get_ord_groups | ( | const BddEnc_ptr | self | ) | [related] |
Returns the internally used order that was specified when creating the instance. Order is used when committing a layer and when forcing a reordering.
Can be NULL. The returned instance belongs to self. Do not change it if you do not know well what you are doing.
int BddEnc_get_reordering_count | ( | const BddEnc_ptr | self | ) | [related] |
Returns the number of reorderings that have been carried out since either the self construction or the last call to method reset_reordering_count.
Returns the number of reorderings performed by CUDD since the instance creation, or since the last call to method reset_reordering_count. Explicit and auto-triggered reorderings are counted. Notice that forced ordering due to layers commitment may increment the orderings count.
add_ptr BddEnc_get_state_frozen_input_vars_mask_add | ( | BddEnc_ptr | self | ) | [related] |
Returns the mask (as ADD) in terms of state, frozen and input variables.
Returned add is referenced. Calculated mask will be cached for future use. The mask will be applicable only to variable that occur within the layers committed to self
bdd_ptr BddEnc_get_state_frozen_input_vars_mask_bdd | ( | BddEnc_ptr | self | ) | [related] |
Returns the mask (as BDD) in terms of frozen, state and input variables.
Returned bdd is referenced. Calculated mask will be cached for future use. The mask will be applicable only to variable that occur within the layers committed to self
BddVarSet_ptr BddEnc_get_state_frozen_vars_cube | ( | const BddEnc_ptr | self | ) | [related] |
Gets the support of the set of state and frozen variables.
The result is a conjunct of BddEnc_get_state_vars_cube and BddEnc_get_frozen_vars_cube.
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. Returns NULL if an error occurred.
add_ptr BddEnc_get_state_frozen_vars_mask_add | ( | BddEnc_ptr | self | ) | [related] |
Returns the mask (as an ADD) in terms of frozen and state variables.
Returned add is referenced. Calculated mask will be cached for future use. The mask will be applicable only to variable that occur within the layers committed to self
bdd_ptr BddEnc_get_state_frozen_vars_mask_bdd | ( | BddEnc_ptr | self | ) | [related] |
Returns the mask (as BDD) in terms of frozen and state variables.
Returned bdd is referenced. Calculated mask will be cached for future use. The mask will be applicable only to variable that occur within the layers committed to self
BddVarSet_ptr BddEnc_get_state_next_state_frozen_vars_cube | ( | const BddEnc_ptr | self | ) | [related] |
Gets the support of the set of state, next state and frozen variables.
The result is a conjunction of BddEnc_get_state_frozen_vars_cube and BddEnc_get_next_state_vars_cube.
Returned bdd is referenced, the caller must free it after it is no longer used. Returns NULL if an error occurred.
BddVarSet_ptr BddEnc_get_state_vars_cube | ( | const BddEnc_ptr | self | ) | [related] |
Gets the support of the set of state variables.
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. Returns NULL if an error occurred.
AddArray_ptr BddEnc_get_symbol_add | ( | BddEnc_ptr | self, | |
node_ptr | name | |||
) | [related] |
Given a variable, define or process constant the corresponding ADD array is returned.
Given an identifier (as an expanded identifier name
), this function returns the ADD array of its definition, or NULL if not defined. If the variable is of a Word type then the returned array may contain several elements (ADDs). For all other kinds of expressions only one element can be in the array. Errors occurs if the identifier is a define which is circularly declared. The returned array will belong to the invoker.
BddVarSet_ptr BddEnc_get_unfiltered_vars_cube | ( | const BddEnc_ptr | self, | |
Set_t | vars | |||
) | [related] |
Given a set of variables the function produces a cube of all of them.
this function is similar to BddEnc_get_vars_cube with 2 differences: 1. all variables in 'vars' are put into the result cube 2. in order to compute next-state variable bits of variable V 'vars' has to contain NEXT(V).
Returned bdd is referenced, the caller must free it after it is no longer used.
int BddEnc_get_var_index_from_name | ( | const BddEnc_ptr | self, | |
node_ptr | name | |||
) | [related] |
Returns the DD index of the given variable.
The input variable should be boolean
required
add_ptr BddEnc_get_var_mask | ( | BddEnc_ptr | self, | |
node_ptr | var_name | |||
) | [related] |
Given a variable, it returns the mask of its 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.
node_ptr BddEnc_get_var_name_from_index | ( | const BddEnc_ptr | self, | |
int | index | |||
) | [related] |
Given a variable index, this method return the symbolic name of the correpsonding variable.
required
NodeList_ptr BddEnc_get_var_ordering | ( | const BddEnc_ptr | self, | |
const VarOrderingType | ord_type | |||
) | [related] |
BddVarSet_ptr BddEnc_get_vars_cube | ( | const BddEnc_ptr | self, | |
Set_t | vars, | |||
SymbFilterType | vt | |||
) | [related] |
Given a set of variables the function produces a cube of them filtering out some of them.
vt is a filter and can be a combination of VFT_CURRENT, VFT_NEXT, VFT_FROZEN, VFT_INPUT (see SymbFilterType for combination shortcuts). vars has to contain variables only without NEXT or anything else. E.g. if vars contains state var V and vt includes VFT_CURRENT and VFT_NEXT then the result will contains both current and next bits of V.
Returned bdd is referenced, the caller must free it after it is no longer used.
NodeList_ptr BddEnc_get_vars_in_cube | ( | const BddEnc_ptr | self, | |
bdd_ptr | cube, | |||
node_ptr | list_of_sym, | |||
boolean | include_next | |||
) | [related] |
Returns the symbolic names of boolean variables stored in a cube.
Given a cube of boolean BDD variables, this function returns the list of symbolic names of the corresponding variables. If NEXT variables are also found in the cube, and include_next is true, NEXT variables will be also checked, even if not occurring explicitly in the input list.
Returned list must be disposed by the caller.
boolean BddEnc_has_var_at_index | ( | const BddEnc_ptr | self, | |
int | index | |||
) | [related] |
Given a variable index, this method return true iff the given variable belongs to the encoder.
required
boolean BddEnc_is_var_in_cube | ( | const BddEnc_ptr | self, | |
node_ptr | name, | |||
add_ptr | cube | |||
) | [related] |
Returns true if the variable is in the cube and false otherwise.
Parameter name is a fully-resolved name of variable. The cube of this variable is subtracted from the cube given in 'cube' parameter, and the result is compared with the original 'cube'. If they are different then at least a part (one bit, for example) of the variable is in the input cube. Therefore true is returned.
bdd_ptr BddEnc_next_state_var_to_state_var | ( | const BddEnc_ptr | self, | |
bdd_ptr | bdd | |||
) | [related] |
Exchange state variables for next state variables.
Given a BDD whose variables are NEXT-STATE variables, returns an isomorphic BDD where STATE variables have been substituted for the corrisponding STATE variables
add_ptr BddEnc_next_state_var_to_state_var_add | ( | const BddEnc_ptr | self, | |
add_ptr | add | |||
) | [related] |
Exchange state variables for next state variables in terms of 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
boolean BddEnc_pick_all_terms_inputs | ( | const BddEnc_ptr | self, | |
bdd_ptr | bdd, | |||
bdd_ptr * | result_array, | |||
const int | array_len | |||
) | [related] |
Returns the array of All Possible Minterms.
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
result_array will change
boolean BddEnc_pick_all_terms_states | ( | const BddEnc_ptr | self, | |
bdd_ptr | bdd, | |||
bdd_ptr * | result_array, | |||
const int | array_len | |||
) | [related] |
Returns the array of All Possible Minterms.
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.
Note: states are represented by state and frozen variables.
result_array will change
boolean BddEnc_pick_all_terms_states_inputs | ( | const BddEnc_ptr | self, | |
bdd_ptr | bdd, | |||
bdd_ptr * | result_array, | |||
const int | array_len | |||
) | [related] |
Returns the array of All Possible Minterms.
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 BDDs so it is necessary to dereference them after their use. Returns true if an error occurred.
Note: states are represented by state and frozen variables.
result_array will change
bdd_ptr BddEnc_pick_one_input | ( | const BddEnc_ptr | self, | |
bdd_ptr | inputs | |||
) | [related] |
Extracts a minterm from a given BDD.
Extracts a minterm from a given BDD. Returned bdd is referenced
bdd_ptr BddEnc_pick_one_input_rand | ( | const BddEnc_ptr | self, | |
bdd_ptr | inputs | |||
) | [related] |
Extracts a random minterm from a given BDD.
Extracts a random minterm from a given BDD. Returned bdd is referenced
bdd_ptr BddEnc_pick_one_input_state | ( | const BddEnc_ptr | self, | |
bdd_ptr | inputs_states | |||
) | [related] |
Extracts a minterm over input/state variables from a given BDD.
Extracts a minterm from a given BDD. Returned bdd is referenced. Note: input-states are represented by input, state and frozen variables.
bdd_ptr BddEnc_pick_one_input_state_rand | ( | const BddEnc_ptr | self, | |
bdd_ptr | inputs_states | |||
) | [related] |
Extracts a random minterm from a given BDD.
Extracts a random minterm from a given BDD. Returned bdd is referenced.
Note: input-states are represented by input, state and frozen variables.
bdd_ptr BddEnc_pick_one_state | ( | const BddEnc_ptr | self, | |
bdd_ptr | states | |||
) | [related] |
Extracts a minterm from a given BDD.
Extracts a minterm from a given BDD. Returned bdd is referenced. Note: states are represented by state and frozen variables.
bdd_ptr BddEnc_pick_one_state_rand | ( | const BddEnc_ptr | self, | |
bdd_ptr | states | |||
) | [related] |
Extracts a random minterm from a given BDD.
Extracts a random minterm from a given BDD. Returned bdd is referenced.
Note: states are represented by state and frozen variables.
int BddEnc_print_bdd | ( | BddEnc_ptr | self, | |
bdd_ptr | bdd, | |||
VPFBEFNNV | p_fun, | |||
OStream_ptr | file, | |||
void * | arg | |||
) | [related] |
Prints the given bdd. In particular prints only the symbols occuring in the symbols list passed to print_bdd_begin. Individual assignments may be printed using a user-defined function, passed as a parameter.
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
void BddEnc_print_bdd_begin | ( | BddEnc_ptr | self, | |
NodeList_ptr | symbols, | |||
boolean | changes_only | |||
) | [related] |
Call before a group of BddEnc_print_bdd calls.
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 and frozen variables which assume a different value from the previous printed one are printed out.
void BddEnc_print_bdd_end | ( | BddEnc_ptr | self | ) | [related] |
Must be called after each call to BddEnc_print_bdd_begin.
Must be called after each call to BddEnc_print_bdd_begin, in order to clean up some internal structure
void BddEnc_print_bdd_wff | ( | BddEnc_ptr | self, | |
bdd_ptr | bdd, | |||
NodeList_ptr | vars, | |||
boolean | do_sharing, | |||
boolean | do_indent, | |||
int | start_at_column, | |||
OStream_ptr | out | |||
) | [related] |
Prints a BDD as a Well Formed Formula using optional sharing.
The bdd representing the formula to be printed is first converted to a wff.
If sharing is required optimizations are performed on the printout.
If indentation is required, the start_at_column integer offset is used to determine the starting indenting offset to print the expression.
prints the expression on the given stream.
void BddEnc_print_formula_info | ( | BddEnc_ptr | self, | |
Expr_ptr | formula, | |||
boolean | print_models, | |||
boolean | print_formula, | |||
OStream_ptr | out | |||
) | [related] |
Prints statistical information of a formula.
Prints statistical information about a given formula. It is computed taking care of the encoding and of the indifferent variables in the encoding.
void BddEnc_print_set_of_inputs | ( | BddEnc_ptr | self, | |
bdd_ptr | inputs, | |||
boolean | changes_only, | |||
VPFBEFNNV | p_fun, | |||
OStream_ptr | file, | |||
void * | arg | |||
) | [related] |
Prints a set of input pairs. Individual assignments may be printed using a user-defined function, passed as a parameter.
void BddEnc_print_set_of_state_input_pairs | ( | BddEnc_ptr | self, | |
bdd_ptr | state_input_pairs, | |||
boolean | changes_only, | |||
VPFBEFNNV | p_fun, | |||
OStream_ptr | file, | |||
void * | arg | |||
) | [related] |
Prints a set of state-input pairs. Individual assignments may be printed using a user-defined function, passed as a parameter.
Note: states are represented by state and frozen variables
void BddEnc_print_set_of_states | ( | BddEnc_ptr | self, | |
bdd_ptr | states, | |||
boolean | changes_only, | |||
boolean | print_defines, | |||
VPFBEFNNV | p_fun, | |||
OStream_ptr | file, | |||
void * | arg | |||
) | [related] |
Prints a set of states. Individual assignments may be printed using a user-defined function, passed as a parameter.
Note: states are represented by state and frozen variables
void BddEnc_print_set_of_trans_models | ( | BddEnc_ptr | self, | |
bdd_ptr | state_input_pairs, | |||
OStream_ptr | file | |||
) | [related] |
Prints a set of models for given trans.
none
void BddEnc_print_vars_in_cube | ( | BddEnc_ptr | self, | |
bdd_ptr | cube, | |||
node_ptr | list_of_sym, | |||
OStream_ptr | file | |||
) | [related] |
Prints out the symbolic names of boolean variables stored in a cube.
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
.
None
void BddEnc_reset_reordering_count | ( | BddEnc_ptr | self | ) | [related] |
Resets the reordering count. The value returned by any following call to method get_reordering_count will be relative to the moment this method had been called.
Resets the reordering count. The value returned by any following call to method get_reordering_count will be relative to the moment this method had been called.
bdd_ptr BddEnc_state_var_to_next_state_var | ( | const BddEnc_ptr | self, | |
bdd_ptr | bdd | |||
) | [related] |
Exchange next state variables for state variables.
Given a BDD whose variables are STATE variables, returns an isomorphic BDD where NEXT-STATE variables have been substituted for the corrisponding STATE variables
add_ptr BddEnc_state_var_to_next_state_var_add | ( | const BddEnc_ptr | self, | |
add_ptr | add | |||
) | [related] |
Exchange next state variables for state variables, in terms of 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
int BddEnc_write_var_ordering | ( | const BddEnc_ptr | self, | |
const char * | oo_filename, | |||
const VarOrderingType | dump_type | |||
) | [related] |
Writes on a file the variable order.
This function writes the variable order currently in use in the system in the specified output file. 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, and can be either pure scalar (for backward compatibility) or single bits
Ownership of "output_order_file_name" is taken, unless it is the value returned by get_output_order_file
hash_ptr BddEnc::failures_hash |
add_ptr BddEnc::frozen_vars_add |
bdd_ptr BddEnc::frozen_vars_bdd |
add_ptr BddEnc::input_vars_add |
bdd_ptr BddEnc::input_vars_bdd |
add_ptr BddEnc::input_vars_mask_add |
bdd_ptr BddEnc::input_vars_mask_bdd |
hash_ptr BddEnc::layer2groups |
hash_ptr BddEnc::name2index |
add_ptr BddEnc::next_state_vars_add |
bdd_ptr BddEnc::next_state_vars_bdd |
node_ptr BddEnc::print_stack |
bdd_ptr BddEnc::state_frozen_vars_bdd |
add_ptr BddEnc::state_vars_add |
bdd_ptr BddEnc::state_vars_bdd |