Programming with Judy

Using Judy
Using Judy1
Chapter 332
Judy_rv = Judy1Next(PSet2, &Index1, PJError))
{
if (Judy1Set(&PnewJArray, Index1, PJError) == JERR)
return JERR;
}
*PPDest = PnewJArray;
break;
case JUDY1OP_ANDNOT:
// PSet1 with PSet2 removed
// 0010 = PSet1(1010) ANDNOT PSet2(1100)
for (Index1 = 0L, Judy_rv = Judy1First(PSet1, &Index1, PJError);
Judy_rv == 1;
Judy_rv = Judy1Next(PSet1, &Index1, PJError))
{
// if bit doesn't exist in PSet2, then add to result
if (0 == Judy1Test(PSet2, Index1, PJError))
{
if (Judy1Set(&PnewJArray, Index1, PJError) == JERR)
return JERR;
}
}
*PPDest = PnewJArray;
break;
default:
return JERR;
}
return !JERR;
} /* Judy1Op */