Пример #1
0
pset_family irred_gasp(pset_family F, pset_family D, pset_family G)
{
if (G->count != 0)
F = irredundant(sf_append(F, G), D);
else
sf_free(G);
return F;
}
Пример #2
0
pset_family super_gasp(pset_family F, pset_family D, pset_family R, cost_t *cost)
{
pset_family G, G1;
{long t=util_cpu_time();G = reduce_gasp(F, D);totals(t, 9, G,&( *cost));};
{long t=util_cpu_time();G1 = all_primes(G, R);totals(t, 7, G1,&( *cost));};
sf_free(G);
{long t=util_cpu_time();G = sf_dupl(sf_append(F, G1));if(trace)print_trace( G, "NEWPRIMES",util_cpu_time()-t);};
{long t=util_cpu_time();F = irredundant(G, D);totals(t, 5, F,&( *cost));};
return F;
}
Пример #3
0
	EXEC(E = simplify(cube1list(F)),     "SIMPLIFY   ", E);
	free_cover(F);
	F = E;
    }
    cover_cost(F, &cost);
    if (unwrap_onset && (cube.part_size[cube.num_vars - 1] > 1)
      && (cost.out != cost.cubes*cube.part_size[cube.num_vars-1])
      && (cost.out < 5000))
	EXEC(F = sf_contain(unravel(F, cube.num_vars - 1)), "SETUP      ", F);

    /* Initial expand and irredundant */
    foreach_set(F, last, p) {
	RESET(p, PRIME);
    }
    EXECUTE(F = expand(F, R, FALSE), EXPAND_TIME, F, cost);
    EXECUTE(F = irredundant(F, D), IRRED_TIME, F, cost);

    if (! single_expand) {
	if (remove_essential) {
	    EXECUTE(E = essential(&F, &D), ESSEN_TIME, E, cost);
	} else {
	    E = new_cover(0);
	}

	cover_cost(F, &cost);
	do {

	    /* Repeat inner loop until solution becomes "stable" */
	    do {
		copy_cost(&cost, &best_cost);
		EXECUTE(F = reduce(F, D), REDUCE_TIME, F, cost);