00001 #include "mdd.h"
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 array_t *
00019 mvar2bdds(mdd_manager *mgr, array_t *mvars)
00020 {
00021 array_t *bdd_vars;
00022 int i, j, mv_no;
00023 mvar_type mv;
00024 bdd_t *temp;
00025 array_t *mvar_list = mdd_ret_mvar_list(mgr);
00026
00027 bdd_vars = array_alloc(bdd_t *, 0);
00028 for (i=0; i<array_n(mvars); i++) {
00029 mv_no = array_fetch(int, mvars, i);
00030 mv = array_fetch(mvar_type, mvar_list, mv_no);
00031 for (j = 0; j < mv.encode_length; j ++) {
00032 temp = bdd_get_variable(mgr, mdd_ret_bvar_id(&mv,j) );
00033 array_insert_last(bdd_t *, bdd_vars, temp);
00034 }
00035 }
00036 return (bdd_vars);
00037 }
00038
00039
00040
00041
00042