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]);
347register pcube a, b, cof;
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])