/usr/include/dieharder/dab_dct.h is in libdieharder-dev 3.31.1-7.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | /*
* dab_dct test header.
*/
/*
* function prototype
*/
int dab_dct(Test **test, int irun);
static Dtest dab_dct_dtest __attribute__((unused)) = {
"DAB DCT",
"dab_dct",
"\
#========================================================================\n\
# DCT (Frequency Analysis) Test\n\
#========================================================================\n\
#\n\
# This test performs a Discrete Cosine Transform (DCT) on the output of\n\
# the RNG. More specifically, it performs tsamples transforms, each over\n\
# an independent block of ntuple words. If tsamples is large enough, the\n\
# positions of the maximum (absolute) value in each transform are\n\
# recorded and subjected to a chisq test for uniformity/independence. [1]\n\
# (A standard type II DCT is used.)\n\
# \n\
# If tsamples is smaller than or equal to 5 times ntuple then a fallback\n\
# test will be used, whereby all DCT values are converted to p-values\n\
# and tested for uniformity via a KS test. This version is significantly\n\
# less sensitive, and is not recommended.\n\
#\n\
# Power: With the right parameters, this test catches more GSL\n\
# generators than any other; however, that count is biased by each of\n\
# the randomNNN generators having three copies.\n\
#\n\
# Limitations: ntuple is required to be a power of 2, because a radix 2\n\
# algorithm is used to calculate the DCT.\n\
#\n\
# False positives: targets are (mostly) calculated exactly, however it\n\
# will still return false positives when ntuple is small and tsamples is\n\
# very large. For the default ntuple value of 256, I get bad scores with\n\
# about 100 million or more tsamples (psamples set to 1).\n\
#\n\
# [1] The samples are taken as unsigned integers, and the DC coefficient\n\
# is adjusted to compensate for this.\n\
#/\n",
1,
50000,
1,
dab_dct,
0
};
|