
Specific Tests in PractRand:
Recommended tests:
	BCFN - checks for long range linear correlations (bit counting);
		in practice this often detects Fibonacci style RNGs that 
		rely upon large lags to defeat other statistical tests.  
		Two integer parameters are used - the first is the minimum 
		"level" it checks for bias at (it checks all higher levels 
		that it has enough data for), higher values are faster but 
		can miss shorter range correlations.  The recommended 
		minimum level is 2, as that helps it skip the slowest parts 
		and avoids redundancy with DC6 checking for the shortest 
		range linear correlations, while still doing a reasonable 
		amount of work for how much memory it has to scan.  
		The second integer parameter helps determine the amount 
		of memory and cache it will use in testing.  It is the 
		log-base-2 of the size of the tables it uses internally.  
		Recommended values are 10 to 15, larger values if cache is 
		large, lower values if cache is small.  
		Each individual "level" of this is a frequency test on 
		overlapping sets of hamming weights.  
	DC6 - checks for short range linear correlations (bit counting); 
		takes several parameters that determine the size of 
		integers it operates on internally, the number of adjacent 
		such integers it looks for correlations between, and which 
		information it uses for each such integer; for recommended 
		values see the code for get_core_tests() and 
		get_expanded_core_tests() in test_batteries.cpp.  
		This is a frequency test on overlapping sets of hamming 
		weights.  
	Gap16 - A variation on the classic "Gap" test.  No parameters 
		are needed.  
	FPF - "floating point frequency" test; contrary to the name 
		it's purely integer math.  Can be slow on some settings.  
		This checks for very short range correlations, even shorter 
		than DC6, especially those correlations involving lots of 0 
		bits.  
		Roughly speaking, this test does a frequency test applied to 
		the binary format of floating point numbers storing the 
		integer values of overlapping windows of the original data 
		stream.  
	BRank - A fairly standard binary matrix rank test.  The most 
		original part of it is the control logic that decides 
		when data should be taken from the RNG output stream to 
		make a matrix and what size matrix it should be.  The 
		parameter is a log-scale amount of time per gigabyte it 
		spends calculating matrix ranks.  
		Due to the coarse-grained nature of the results it 
		produces, precise p-values are impossible for many of 
		its subtests.  
	mod3n - Based upon the mod3 test in gjrand, this looks for 
		short range patterns in the value modulo 3 of the RNG 
		output.  This examines the RNG output as a sequence of 
		8 bit values, 16 bit values, 32 bit values, 64 bit 
		values, 128 bit values, 256 bit values, etc, similar 
		BCFN in that regard.  This does not test all of the 
		output stream, only small chunks of it here an there, 
		similar to BRank in that regard.  While this mostly 
		catches the same sorts of biases as DC6 and BCFN, 
		those two operate on hamming weights while this one 
		does not, so once in a while a pattern that leaves 
		hamming weight distributions untouched slips by those 
		but gets caught easily by this one.  
	TMFn - A simple test looking for some simple long to very 
		long range correlations common in LCG output.  This 
		only looks at a tiny fraction of the data stream, 
		so it takes very little CPU time.  The test results 
		from this aren't calibrated yet.  
Transforms:
	(these appear as tests but are simply wrappers for other tests)
	multiplex - simply routes operations on this test to one or 
		more wrapped tests
	lowbits - for each 4,8,16,32, or 64 bits this takes the lowest 
		1,2,4,8,16, or 32 bits and routes them to the wrapped 
		test(s), discarding the rest
	shrink - 
	FirstNofM - 
	BWT - 
Non-recommended tests:
	CoupGap - "Coupon / Gap hybrid" test; still in development;
		behavior is similar to most gap tests
	...many more still to come

*****************************************************************************


