83 static char rcsid[]
DD_UNUSED =
"$Id: cuddSign.c,v 1.22 2009/02/20 02:14:58 fabio Exp $";
149 (void) fprintf(dd->
err,
150 "out-of-memory, couldn't measure DD cofactors.\n");
156 if (values != NULL) {
158 if (result != NULL) {
160 table_mem += (
size + 1) *
sizeof(
double);
166 for (i = 0; i <
size; i++) {
168 result[dd->
invperm[i]] = values[i - firstLevel];
170 result[dd->
invperm[i]] = values[size - firstLevel];
173 result[
size] = values[size - firstLevel];
186 (void) fprintf(dd->
out,
"Number of calls: %d\tTable memory: %d bytes\n",
187 num_calls, table_mem);
188 (void) fprintf(dd->
out,
"Time to compute measures: %s\n",
191 if (result == NULL) {
192 (void) fprintf(dd->
out,
193 "out-of-memory, couldn't measure DD cofactors.\n");
240 double *valuesT, *valuesE;
242 int localSize, localSizeT, localSizeE;
250 if (
st__lookup(table, (
const char *)node, (
char **)&values)) {
261 if (values == NULL) {
277 if (valuesT == NULL)
return(NULL);
279 if (valuesE == NULL)
return(NULL);
291 values[0] = valuesT[localSizeT - 1];
292 for (i = 1; i < localSize; i++) {
297 vT = valuesT[localSizeT - 1];
303 vE = valuesE[localSizeE - 1];
305 values[i] = (vT + vE) / 2.0;
void st__free_table(st__table *table)
struct st__table st__table
static double * ddCofMintermAux(DdManager *dd, DdNode *node, st__table *table)
#define Cudd_IsConstant(node)
#define Cudd_Regular(node)
enum st__retval cuddStCountfree(char *key, char *value, char *arg)
int st__ptrcmp(const char *, const char *)
#define ABC_ALLOC(type, num)
st__table * st__init_table(st__compare_func_type compare, st__hash_func_type hash)
#define ABC_NAMESPACE_IMPL_END
#define cuddIsConstant(node)
int st__foreach(st__table *table, enum st__retval(*func)(char *, char *, char *), char *arg)
#define ABC_NAMESPACE_IMPL_START
int st__lookup(st__table *table, const char *key, char **value)
static ABC_NAMESPACE_IMPL_START char rcsid[] DD_UNUSED
int st__add_direct(st__table *table, char *key, char *value)
#define Cudd_NotCond(node, c)
int st__ptrhash(const char *, int)
double * Cudd_CofMinterm(DdManager *dd, DdNode *node)