Go to the source code of this file.
|
ABC_NAMESPACE_IMPL_START bool | full_row (IN register pcube p, IN register pcube cof) |
|
bool | cdist0 (pcube a, pcube b) |
|
int | cdist01 (pset a, pset b) |
|
int | cdist (pset a, pset b) |
|
pset | force_lower (INOUT pset xlower, IN register pset a, IN register pset b) |
|
void | consensus (INOUT pcube r, IN register pcube a, IN register pcube b) |
|
int | cactive (pcube a) |
|
bool | ccommon (pcube a, pcube b, pcube cof) |
|
int | descend (pset *a, pset *b) |
|
int | ascend (pset *a, pset *b) |
|
int | lex_order (pset *a, pset *b) |
|
int | d1_order (pset *a, pset *b) |
|
int | desc1 (pset a, pset b) |
|
Definition at line 423 of file setc.c.
428 else if (
SIZE(a1) <
SIZE(b1))
return -1;
430 register int i =
LOOP(a1);
432 if (a1[i] > b1[i])
return 1;
else if (a1[i] < b1[i])
return -1;
Definition at line 293 of file setc.c.
299 register int w, last;
300 register unsigned int x;
301 if ((last = cube.inword) != -1) {
305 if ((x = ~ (x & x >> 1) & cube.inmask)) {
308 active = (last-1)*(BPI/2) +
bit_index(x) / 2;
312 for(w = 1; w < last; w++) {
314 if ((x = ~ (x & x >> 1) &
DISJOINT)) {
317 active = (w-1)*(BPI/2) +
bit_index(x) / 2;
324 register int w,
var, last;
326 for(var = cube.num_binary_vars; var < cube.num_vars; var++) {
327 mask = cube.var_mask[
var];
328 last = cube.last_word[
var];
329 for(w = cube.first_word[var]; w <= last; w++)
330 if (mask[w] & ~ a[w]) {
Definition at line 346 of file setc.c.
352 register unsigned int x, y;
353 if ((last = cube.inword) != -1) {
356 x = a[last] | cof[last];
357 y = b[last] | cof[last];
358 if (~(x & x>>1) & ~(y & y>>1) & cube.inmask)
362 for(w = 1; w < last; w++) {
365 if (~(x & x>>1) & ~(y & y>>1) &
DISJOINT)
373 register int w, last;
375 for(var = cube.num_binary_vars; var < cube.num_vars; var++) {
376 mask = cube.var_mask[
var]; last = cube.last_word[
var];
378 for(w = cube.first_word[var]; w <= last; w++)
379 if (mask[w] & ~a[w] & ~cof[w]) {
382 for(w = cube.first_word[var]; w <= last; w++)
383 if (mask[w] & ~b[w] & ~cof[w])
Definition at line 154 of file setc.c.
160 register int w, last;
register unsigned int x;
161 if ((last = cube.inword) != -1) {
164 x = a[last] & b[last];
165 if ((x = ~ (x | x >> 1) & cube.inmask))
169 for(w = 1; w < last; w++) {
171 if ((x = ~ (x | x >> 1) &
DISJOINT))
178 register int w,
var, last;
register pcube mask;
179 for(var = cube.num_binary_vars; var < cube.num_vars; var++) {
180 mask = cube.var_mask[
var]; last = cube.last_word[
var];
181 for(w = cube.first_word[var]; w <= last; w++)
182 if (a[w] & b[w] & mask[w])
Definition at line 68 of file setc.c.
72 register int w, last;
register unsigned int x;
73 if ((last = cube.inword) != -1) {
76 x = a[last] & b[last];
77 if (~(x | x >> 1) & cube.inmask)
81 for(w = 1; w < last; w++) {
90 register int w,
var, last;
register pcube mask;
91 for(var = cube.num_binary_vars; var < cube.num_vars; var++) {
92 mask = cube.var_mask[
var]; last = cube.last_word[
var];
93 for(w = cube.first_word[var]; w <= last; w++)
94 if (a[w] & b[w] & mask[w])
Definition at line 109 of file setc.c.
115 register int w, last;
register unsigned int x;
116 if ((last = cube.inword) != -1) {
119 x = a[last] & b[last];
120 if ((x = ~ (x | x >> 1) & cube.inmask))
125 for(w = 1; w < last; w++) {
127 if ((x = ~ (x | x >> 1) &
DISJOINT))
135 register int w,
var, last;
register pcube mask;
136 for(var = cube.num_binary_vars; var < cube.num_vars; var++) {
137 mask = cube.var_mask[
var]; last = cube.last_word[
var];
138 for(w = cube.first_word[var]; w <= last; w++)
139 if (a[w] & b[w] & mask[w])
Definition at line 246 of file setc.c.
253 register int w, last;
register unsigned int x;
254 if ((last = cube.inword) != -1) {
257 r[last] = x = a[last] & b[last];
258 if ((x = ~(x | x >> 1) & cube.inmask))
259 r[last] |= (x | (x << 1)) & (a[last] | b[last]);
262 for(w = 1; w < last; w++) {
263 r[w] = x = a[w] & b[w];
265 r[w] |= (x | (x << 1)) & (a[w] | b[w]);
272 bool empty;
int var;
unsigned int x;
273 register int w, last;
register pcube mask;
274 for(var = cube.num_binary_vars; var < cube.num_vars; var++) {
275 mask = cube.var_mask[
var];
276 last = cube.last_word[
var];
278 for(w = cube.first_word[var]; w <= last; w++)
279 if ((x = a[w] & b[w] & mask[w]))
280 empty =
FALSE, r[w] |= x;
282 for(w = cube.first_word[var]; w <= last; w++)
283 r[w] |= mask[w] & (a[w] | b[w]);
#define INLINEset_clear(r, size)
Definition at line 453 of file setc.c.
456 register pset a1 = *a,
b1 = *b, c1 = cube.temp[0];
457 register int i =
LOOP(a1);
458 register unsigned int x1, x2;
460 if ((x1 = a1[i] | c1[i]) > (x2 = b1[i] | c1[i]))
return -1;
461 else if (x1 < x2)
return 1;
Definition at line 470 of file setc.c.
473 if (a == (
pset) NULL)
474 return (b == (
pset) NULL) ? 0 : 1;
475 else if (b == (
pset) NULL)
478 else if (
SIZE(a) <
SIZE(b))
return 1;
480 register int i =
LOOP(a);
482 if (a[i] > b[i])
return -1;
else if (a[i] < b[i])
return 1;
Definition at line 407 of file setc.c.
412 else if (
SIZE(a1) <
SIZE(b1))
return 1;
414 register int i =
LOOP(a1);
416 if (a1[i] > b1[i])
return -1;
else if (a1[i] < b1[i])
return 1;
Definition at line 195 of file setc.c.
201 register int w, last;
register unsigned int x;
202 if ((last = cube.inword) != -1) {
205 x = a[last] & b[last];
206 if ((x = ~(x | x >> 1) & cube.inmask))
207 xlower[last] |= (x | (x << 1)) & a[last];
210 for(w = 1; w < last; w++) {
213 xlower[w] |= (x | (x << 1)) & a[w];
219 register int w,
var, last;
register pcube mask;
220 for(var = cube.num_binary_vars; var < cube.num_vars; var++) {
221 mask = cube.var_mask[
var]; last = cube.last_word[
var];
222 for(w = cube.first_word[var]; w <= last; w++)
223 if (a[w] & b[w] & mask[w])
225 for(w = cube.first_word[var]; w <= last; w++)
226 xlower[w] |= a[w] & mask[w];
Definition at line 56 of file setc.c.
59 register int i =
LOOP(
p);
60 do if ((
p[i] | cof[i]) != cube.fullset[i])
return FALSE;
while (--i > 0);
Definition at line 440 of file setc.c.
444 register int i =
LOOP(a1);
446 if (a1[i] > b1[i])
return -1;
else if (a1[i] < b1[i])
return 1;