32 if (
cube.num_binary_vars < 0 ||
cube.num_vars <
cube.num_binary_vars)
33 fatal(
"cube size is silly, error in .i/.o or .mv");
36 cube.output =
cube.num_mv_vars > 0 ?
cube.num_vars - 1 : -1;
43 for(var = 0; var <
cube.num_vars; var++) {
44 if (var <
cube.num_binary_vars)
45 cube.part_size[var] = 2;
57 for(var = 0; var <
cube.num_vars; var++) {
59 for(i =
cube.first_part[var]; i <=
cube.last_part[var]; i++)
61 if (var <
cube.num_binary_vars) {
69 if (
cube.num_binary_vars == 0)
83 cdata.var_zeros =
ALLOC(
int,
cube.num_vars);
84 cdata.parts_active =
ALLOC(
int,
cube.num_vars);
85 cdata.is_unate =
ALLOC(
int,
cube.num_vars);
109 for(var = 0; var <
cube.num_vars; var++)
117 FREE(cdata.part_zeros);
118 FREE(cdata.var_zeros);
119 FREE(cdata.parts_active);
120 FREE(cdata.is_unate);
122 cube.first_part =
cube.last_part = (
int *) NULL;
123 cube.first_word =
cube.last_word = (
int *) NULL;
124 cube.sparse = (
int *) NULL;
129 cdata.part_zeros = cdata.var_zeros = cdata.parts_active = (
int *) NULL;
130 cdata.is_unate = (
bool *) NULL;
139 cube.first_part =
cube.last_part = (
int *) NULL;
140 cube.first_word =
cube.last_word = (
int *) NULL;
141 cube.part_size = (
int *) NULL;
146 cdata.part_zeros = cdata.var_zeros = cdata.parts_active = (
int *) NULL;
147 cdata.is_unate = (
bool *) NULL;
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
ABC_NAMESPACE_IMPL_START void cube_setup()
void restore_cube_struct()
struct cube_struct cube temp_cube_save
#define INLINEset_or(r, a, b)
#define set_insert(set, e)
struct cdata_struct cdata temp_cdata_save
#define WHICH_WORD(element)