Alien-Judy
view release on metacpan or search on metacpan
src/judy-1.0.5/test/Judy1LCheck.c view on Meta::CPAN
Word_t Magic;
Word_t StartSeed = 0xc1fc; // default beginning number
Word_t FirstSeed;
#undef __FUNCTI0N__
#define __FUNCTI0N__ "Random"
static Word_t // Placed here so INLINING compilers get to look at it.
Random(Word_t newseed)
{
if (newseed & RandomBit)
{
newseed += newseed;
newseed ^= Magic;
}
else
{
newseed += newseed;
}
newseed &= RandomBit * 2 - 1;
if (newseed == FirstSeed)
{
printf("End of LFSR, Total Population = %lu\n", TotalPop);
exit(0);
}
return(newseed);
}
static Word_t // Placed here so INLINING compilers get to look at it.
GetNextIndex(Word_t Index)
{
if (SkipN)
Index += SkipN;
else
Index = Random(Index);
return(Index);
}
#undef __FUNCTI0N__
#define __FUNCTI0N__ "main"
int
main(int argc, char *argv[])
{
// Names of Judy Arrays
void *J1 = NULL; // Judy1
void *JL = NULL; // JudyL
double Mult;
Pms_t Pms;
Word_t Seed;
Word_t PtsPdec = 10; // points per decade
Word_t Groups; // Number of measurement groups
Word_t grp;
int c;
extern char *optarg;
//////////////////////////////////////////////////////////////
// PARSE INPUT PARAMETERS
//////////////////////////////////////////////////////////////
while ((c = getopt(argc, argv, "n:S:P:b:L:B:pdDC")) != -1)
{
switch (c)
{
case 'n': // Number of elements
nElms = strtoul(optarg, NULL, 0); // Size of Linear Array
if (nElms == 0)
FAILURE("No tests: -n", nElms);
// Check if more than a trillion (64 bit only)
if ((double)nElms > 1e12)
FAILURE("Too many Indexes=", nElms);
break;
case 'S': // Step Size, 0 == Random
SkipN = strtoul(optarg, NULL, 0);
break;
case 'P': //
PtsPdec = strtoul(optarg, NULL, 0);
break;
case 'b': // May not work past 35 bits if changed
StartSeed = strtoul(optarg, NULL, 0);
break;
case 'B':
BValue = strtoul(optarg, NULL, 0);
if (
(BValue > (sizeof(Word_t) * 8))
||
(MagicList[BValue] == 0)
)
{
ErrorFlag++;
printf("\nIllegal number of random bits of %lu !!!\n", BValue);
}
break;
case 'p': // Print test indexes
pFlag = 1;
break;
case 'd': // Delete indexes
dFlag = 0;
break;
case 'D': // Swizzle indexes
DFlag = 1;
break;
case 'C': // Skip counting test.
CFlag = 1;
break;
default:
ErrorFlag++;
break;
( run in 0.824 second using v1.01-cache-2.11-cpan-13bb782fe5a )