229 register pset p, last, p1;
234 long start =
ptime();
241 return sf_new(1, T->sf_size);
242 for(n = T->count, lev = 0; n != 0; n >>= 1, lev++) ;
249 stack[0].sf =
sf_new(1, T->sf_size);
250 stack[0].level = lev;
253 nlast =
GETSET(T, T->count - 1);
258 for(i = 0; i < T->sf_size; i++)
264 stack[n++].level = lev;
267 while (n > 1 && (stack[n-1].level==stack[n-2].level || p == nlast)) {
269 lvl =
MIN(stack[n-1].level, stack[n-2].level) - 1;
271 printf(
"# EXACT_MINCOV[%d]: %4d = %4d x %4d, time = %s\n",
272 lvl, temp->
count, stack[n-1].sf->count,
274 (void) fflush(stdout);
278 stack[n-2].sf = temp;
279 stack[n-2].level = lvl;
290 printf(
"MINCOV: family of all minimal coverings is\n");
#define INLINEset_diff(r, a, b)
#define foreach_set(R, last, p)
pcover lex_sort(pcover T)
#define is_in_set(set, e)
pset_family unate_intersect(pset_family A, pset_family B, bool largest_only)
#define set_remove(set, e)
#define GETSET(family, index)