#include "mdd.h"
Go to the source code of this file.
Functions | |
array_t * | mdd_get_support (mdd_manager *mdd_mgr, mdd_t *f) |
array_t * | mdd_get_bdd_support_ids (mdd_manager *mdd_mgr, mdd_t *f) |
array_t * | mdd_get_bdd_support_vars (mdd_manager *mdd_mgr, mdd_t *f) |
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 }