Alien-Judy
view release on metacpan or search on metacpan
src/judy-1.0.5/test/Judy1LTime.c view on Meta::CPAN
else
TstIndex = Seed1;
J1U(Rc, *J1, TstIndex);
if (Rc != 1)
FAILURE("Judy1Unset ret Rcode != 1", (Word_t)Rc);
}
ENDTm(DeltaUSec1, tm1);
DeltaUSec1 /= Elements;
}
STARTTm(tm1);
if (JLFlag)
{
for (Seed1 = Seed, elm = 0; elm < Elements; elm++)
{
Seed1 = GetNextIndex(Seed1);
if (DFlag)
TstIndex = Swizzle(Seed1);
else
TstIndex = Seed1;
JLD(Rc, *JL, TstIndex);
if (Rc != 1)
FAILURE("JudyLDel ret Rcode != 1", (Word_t)Rc);
}
ENDTm(DeltaUSecL, tm1);
DeltaUSecL /= Elements;
}
return (0);
}
// Routine to get next size of Indexes
int // return 1 if last number
NextNumb(Word_t *PNumber, // pointer to returned next number
double *PDNumb, // Temp double of above
double DMult, // Multiplier
Word_t MaxNumb) // Max number to return
{
// Save prev number
double PrevPDNumb = *PDNumb;
double DDiff;
// Calc next number >= 1.0 beyond previous
do {
*PDNumb *= DMult;
DDiff = *PDNumb - PrevPDNumb;
} while (DDiff < 0.5);
// Return it in integer format
if (DDiff < 100.0) *PNumber += (Word_t)(DDiff + 0.5);
else *PNumber = *PDNumb + 0.5;
// Verify it did not exceed max number
if (*PNumber >= MaxNumb)
{
// it did, so return max
*PNumber = MaxNumb;
return (1); // flag it
}
return (0); // more available
}
( run in 1.056 second using v1.01-cache-2.11-cpan-140bd7fdf52 )