Go to the source code of this file.
|
ABC_NAMESPACE_IMPL_START
pset_family | sf_contain (INOUT pset_family A) |
|
pset_family | sf_rev_contain (INOUT pset_family A) |
|
pset_family | sf_ind_contain (INOUT pset_family A, INOUT int *row_indices) |
|
pset_family | sf_dupl (INOUT pset_family A) |
|
pset_family | sf_union (INOUT pset_family A, INOUT pset_family B) |
|
pset_family | dist_merge (INOUT pset_family A, IN pset mask) |
|
pset_family | d1merge (INOUT pset_family A, IN int var) |
|
int | d1_rm_equal (pset *A1, int(*compare)()) |
|
int | rm_equal (INOUT pset *A1, IN int(*compare)()) |
|
int | rm_contain (INOUT pset *A1) |
|
int | rm_rev_contain (INOUT pset *A1) |
|
int | rm2_equal (INOUT register pset *A1, INOUT register pset *B1, OUT pset *E1, IN int(*compare)()) |
|
int | rm2_contain (INOUT pset *A1, IN pset *B1) |
|
pset * | sf_sort (IN pset_family A, IN int(*compare)()) |
|
pset * | sf_list (IN register pset_family A) |
|
pset_family | sf_unlist (IN pset *A1, IN int totcnt, IN int size) |
|
pset_family | sf_ind_unlist (IN pset *A1, IN int totcnt, IN int size, INOUT int *row_indices, IN register pset pfirst) |
|
pset_family | sf_merge (INOUT pset *A1, INOUT pset *B1, INOUT pset *E1, IN int totcnt, IN int size) |
|
int d1_rm_equal |
( |
pset * |
A1, |
|
|
int (*)() |
compare |
|
) |
| |
Definition at line 171 of file contain.c.
175 register int i, j, dest;
178 if (A1[0] != (
pcube) NULL) {
179 for(i = 0, j = 1; A1[j] != (
pcube) NULL; j++)
180 if ( (*compare)(&A1[i], &A1[j]) == 0) {
182 (void)
set_or(A1[i], A1[i], A1[j]);
190 A1[dest] = (
pcube) NULL;
Definition at line 161 of file contain.c.
pset_family dist_merge(INOUT pset_family A, IN pset mask)
Definition at line 141 of file contain.c.
149 (void)
set_copy(cube.temp[0], mask);
int d1_rm_equal(pset *A1, int(*compare)())
pset_family sf_unlist(IN pset *A1, IN int totcnt, IN int size)
pset * sf_sort(IN pset_family A, IN int(*compare)())
Definition at line 304 of file contain.c.
308 register pset *pa, *pb, a, b, *pdest = A1;
311 for(pa = A1; (a = *pa++) != NULL; ) {
313 for(pb = B1; (b = *pb++) != NULL &&
SIZE(b) >
SIZE(a); ) {
#define INLINEsetp_implies(a, b, when_false)
Definition at line 274 of file contain.c.
279 register pset *pda = A1, *pdb = B1, *pde = E1;
282 for(; *A1 != NULL && *B1 != NULL; )
283 switch((*compare)(A1, B1)) {
285 *pda++ = *A1++;
break;
287 *pde++ = *A1++; B1++;
break;
289 *pdb++ = *B1++;
break;
297 *pda = *pdb = *pde = NULL;
Definition at line 214 of file contain.c.
217 register pset *pa, *pb;
218 register pset *pcheck = NULL;
224 for(pa = A1; (a = *pa++) != NULL; ) {
226 if (
SIZE(a) != last_size)
227 last_size =
SIZE(a), pcheck = pdest;
228 for(pb = A1; pb != pcheck; ) {
#define INLINEsetp_implies(a, b, when_false)
Definition at line 196 of file contain.c.
200 register pset *
p, *pdest = A1;
203 for(p = A1+1; *p != NULL; p++)
204 if ((*compare)(p, p-1) != 0)
Definition at line 244 of file contain.c.
247 register pset *pa, *pb;
248 register pset *pcheck = NULL;
254 for(pa = A1; (a = *pa++) != NULL; ) {
256 if (
SIZE(a) != last_size)
257 last_size =
SIZE(a), pcheck = pdest;
258 for(pb = A1; pb != pcheck; ) {
#define INLINEsetp_implies(a, b, when_false)
Definition at line 37 of file contain.c.
static int descend(struct saucy *s, struct coloring *c, int target, int min)
pset_family sf_unlist(IN pset *A1, IN int totcnt, IN int size)
int rm_contain(INOUT pset *A1)
int rm_equal(INOUT pset *A1, IN int(*compare)())
pset * sf_sort(IN pset_family A, IN int(*compare)())
Definition at line 99 of file contain.c.
static int descend(struct saucy *s, struct coloring *c, int target, int min)
pset_family sf_unlist(IN pset *A1, IN int totcnt, IN int size)
int rm_equal(INOUT pset *A1, IN int(*compare)())
pset * sf_sort(IN pset_family A, IN int(*compare)())
Definition at line 81 of file contain.c.
static int descend(struct saucy *s, struct coloring *c, int target, int min)
pset_family sf_ind_unlist(IN pset *A1, IN int totcnt, IN int size, INOUT int *row_indices, IN register pset pfirst)
int rm_contain(INOUT pset *A1)
int rm_equal(INOUT pset *A1, IN int(*compare)())
pset * sf_sort(IN pset_family A, IN int(*compare)())
Definition at line 382 of file contain.c.
388 register pset pr,
p, *pa;
389 register int i, *new_row_indices;
393 new_row_indices =
ALLOC(
int, totcnt);
394 for(pr = R->
data, pa = A1, i=0; (p = *pa++) != NULL; pr += R->
wsize, i++) {
396 new_row_indices[i] = row_indices[(p - pfirst)/R->
wsize];
398 for(i = 0; i < totcnt; i++)
399 row_indices[i] = new_row_indices[i];
400 FREE(new_row_indices);
#define INLINEset_copy(r, a)
Definition at line 351 of file contain.c.
354 register pset p, last, *pdest, *A1;
#define foreach_set(R, last, p)
Definition at line 407 of file contain.c.
411 register pset pr, ps, *pmin, *pmid, *pmax;
422 n = 3; temp[0] = A1; temp[1] = B1; temp[2] = E1;
423 for(i = 0; i < n-1; i++)
424 for(j = i+1; j < n; j++)
425 if (
desc1(*temp[i], *temp[j]) > 0) {
430 pmin = temp[0]; pmid = temp[1]; pmax = temp[2];
433 while (*pmin != (
pset) NULL) {
437 if (
desc1(*pmin, *pmax) > 0) {
438 swap = pmax; pmax = pmin; pmin = pmid; pmid =
swap;
439 }
else if (
desc1(*pmin, *pmid) > 0) {
440 swap = pmin; pmin = pmid; pmid =
swap;
#define INLINEset_copy(r, a)
static void swap(int *a, int x, int y)
Definition at line 58 of file contain.c.
int rm_rev_contain(INOUT pset *A1)
pset_family sf_unlist(IN pset *A1, IN int totcnt, IN int size)
int rm_equal(INOUT pset *A1, IN int(*compare)())
pset * sf_sort(IN pset_family A, IN int(*compare)())
Definition at line 330 of file contain.c.
334 register pset p, last, *pdest, *A1;
345 qsort((
char *) A1, A->count,
sizeof(
pset), compare);
#define PUTSIZE(set, size)
#define foreach_set(R, last, p)
Definition at line 121 of file contain.c.
131 R =
sf_merge(A1, B1, E1, cnt, A->sf_size);
static int descend(struct saucy *s, struct coloring *c, int target, int min)
pset * sf_list(IN register pset_family A)
pset_family sf_merge(INOUT pset *A1, INOUT pset *B1, INOUT pset *E1, IN int totcnt, IN int size)
int rm2_equal(INOUT register pset *A1, INOUT register pset *B1, OUT pset *E1, IN int(*compare)())
int rm2_contain(INOUT pset *A1, IN pset *B1)
Definition at line 366 of file contain.c.
370 register pset pr,
p, *pa;
374 for(pr = R->
data, pa = A1; (p = *pa++) != NULL; pr += R->
wsize)
#define INLINEset_copy(r, a)