src/mdd/mdd_support.c File Reference

#include "mdd.h"
Include dependency graph for mdd_support.c:

Go to the source code of this file.

Functions

array_tmdd_get_support (mdd_manager *mdd_mgr, mdd_t *f)
array_tmdd_get_bdd_support_ids (mdd_manager *mdd_mgr, mdd_t *f)
array_tmdd_get_bdd_support_vars (mdd_manager *mdd_mgr, mdd_t *f)

Function Documentation

array_t* mdd_get_bdd_support_ids ( mdd_manager mdd_mgr,
mdd_t f 
)

Definition at line 58 of file mdd_support.c.

00059 {
00060     array_t *bdd_support_list;
00061     array_t *bvar_list = mdd_ret_bvar_list(mdd_mgr);
00062     var_set_t *vset;
00063     int i;
00064 
00065     bdd_support_list = array_alloc(int, 0);
00066 
00067     vset = bdd_get_support(f);
00068     for (i = 0; i < array_n(bvar_list); i++) {
00069         if (var_set_get_elt(vset, i) == 1) {
00070             array_insert_last(int, bdd_support_list, i);
00071         }
00072     }
00073 
00074     (void) var_set_free(vset);
00075     return bdd_support_list;
00076 }

array_t* mdd_get_bdd_support_vars ( mdd_manager mdd_mgr,
mdd_t f 
)

Definition at line 79 of file mdd_support.c.

00080 {
00081     array_t *bdd_support_list;
00082     array_t *bvar_list = mdd_ret_bvar_list(mdd_mgr);
00083     var_set_t *vset;
00084     mdd_t *var;
00085     int i;
00086 
00087     bdd_support_list = array_alloc(mdd_t *, 0);
00088     
00089     vset = bdd_get_support(f);
00090     for (i = 0; i < array_n(bvar_list); i++) {
00091         if (var_set_get_elt(vset, i) == 1) {
00092             var = bdd_var_with_index(mdd_mgr, i);
00093             array_insert_last(mdd_t *, bdd_support_list, var);
00094         }
00095     }
00096 
00097     (void) var_set_free(vset);
00098     return bdd_support_list;
00099 }

array_t* mdd_get_support ( mdd_manager mdd_mgr,
mdd_t f 
)

Definition at line 19 of file mdd_support.c.

00020 {
00021     array_t *full_list, *support_list;
00022     array_t *mvar_list = mdd_ret_mvar_list(mdd_mgr);
00023     array_t *bvar_list = mdd_ret_bvar_list(mdd_mgr);
00024     var_set_t *vset;
00025     int i, list_length;
00026     bvar_type bv;
00027     boolean present;
00028 
00029 
00030     /* initialize full list of mvar id's */
00031     list_length = array_n(mvar_list);
00032     full_list = array_alloc(boolean, list_length);
00033     for (i = 0; i < array_n(mvar_list); i++) {
00034         array_insert(boolean, full_list, i, 0);
00035     }
00036 
00037     vset = bdd_get_support(f);
00038     for (i = 0; i < array_n(bvar_list); i++) {
00039         if (var_set_get_elt(vset, i) == 1) {
00040             bv = array_fetch(bvar_type, bvar_list, i);
00041             (void) array_insert(boolean, full_list, bv.mvar_id, 1);
00042         }
00043     }
00044 
00045     support_list = array_alloc(int, 0);
00046     for (i = 0; i < array_n(mvar_list); i++) {
00047         present = array_fetch(boolean, full_list, i);
00048         if (present) array_insert_last(int, support_list, i);
00049     }
00050 
00051     (void) array_free(full_list);
00052     (void) var_set_free(vset);
00053 
00054     return support_list;
00055 }


Generated on Tue Jan 12 13:57:26 2010 for glu-2.2 by  doxygen 1.6.1