class
TestU01StackStack of TestU01 RNG statistical tests.
Contents
Public types
-
template<class... Args>using FnPtr = std::vector<double>(*)(Args...)
Constructors, destructors, conversion operators
- TestU01Stack() explicit
- Constructor.
Public functions
-
template<class TestType, class Proxy, typename... Ts>void add(Proxy& proxy, std::vector<std::function<StatTest()>>& tests, tk::
ctr:: RNGType r, unif01_Gen*const gen, std::vector<std::string>&& names, Ts&&... xargs) const - Add a statistical test to battery.
-
auto generator(tk::
ctr:: RNGType r) const -> unif01_Gen* - Find RNG properties based on RNG id.
Public variables
- tk::
TaggedTuple<brigand::list<tag:: BirthdaySpacings, FnPtr<unif01_Gen*, sres_Poisson*, const std::tuple<long, long, int, long, int, int>&>, tag:: Collision, FnPtr<unif01_Gen*, sknuth_Res2*, const std::tuple<long, long, int, long, int>&>, tag:: RandomWalk1, FnPtr<unif01_Gen*, swalk_Res*, const std::tuple<long, long, int, int, long, long>&>, tag:: Gap, FnPtr<unif01_Gen*, sres_Chi2*, const std::tuple<long, long, int, double, double>&>, tag:: SimplePoker, FnPtr<unif01_Gen*, sres_Chi2*, const std::tuple<long, long, int, int, int>&>, tag:: CouponCollector, FnPtr<unif01_Gen*, sres_Chi2*, const std::tuple<long, long, int, int>&>, tag:: MaxOft, FnPtr<unif01_Gen*, sknuth_Res1*, const std::tuple<long, long, int, int, int, int, int>&>, tag:: WeightDistrib, FnPtr<unif01_Gen*, sres_Chi2*, const std::tuple<long, long, int, long, double, double>&>, tag:: MatrixRank, FnPtr<unif01_Gen*, sres_Chi2*, const std::tuple<long, long, int, int, int, int>&>, tag:: HammingIndep, FnPtr<unif01_Gen*, sstring_Res*, const std::tuple<long, long, int, int, int, int>&>, tag:: SerialOver, FnPtr<unif01_Gen*, sres_Basic*, const std::tuple<long, long, int, long, int>&>, tag:: CollisionOver, FnPtr<unif01_Gen*, smarsa_Res*, const std::tuple<long, long, int, long, int>&>, tag:: ClosePairs, FnPtr<unif01_Gen*, snpair_Res*, const std::tuple<long, long, int, int, int, int, int>&>, tag:: ClosePairsBitMatch, FnPtr<unif01_Gen*, snpair_Res*, const std::tuple<long, long, int, int>&>, tag:: Run, FnPtr<unif01_Gen*, sres_Chi2*, const std::tuple<long, long, int, int>&>, tag:: Permutation, FnPtr<unif01_Gen*, sres_Chi2*, const std::tuple<long, long, int, int>&>, tag:: CollisionPermut, FnPtr<unif01_Gen*, sknuth_Res2*, const std::tuple<long, long, int, int>&>, tag:: SampleProd, FnPtr<unif01_Gen*, sres_Basic*, const std::tuple<long, long, int, int>&>, tag:: SampleMean, FnPtr<unif01_Gen*, sres_Basic*, const std::tuple<long, long, int>&>, tag:: SampleCorr, FnPtr<unif01_Gen*, sres_Basic*, const std::tuple<long, long, int, int>&>, tag:: AppearanceSpacings, FnPtr<unif01_Gen*, sres_Basic*, const std::tuple<long, long, long, int, int, int>&>, tag:: SumCollector, FnPtr<unif01_Gen*, sres_Chi2*, const std::tuple<long, long, int, double>&>, tag:: Savir2, FnPtr<unif01_Gen*, sres_Chi2*, const std::tuple<long, long, int, long, int>&>, tag:: GCD, FnPtr<unif01_Gen*, smarsa_Res2*, const std::tuple<long, long, int, int>&>, tag:: LinearComp, FnPtr<unif01_Gen*, scomp_Res*, const std::tuple<long, long, int, int>&>, tag:: LempelZiv, FnPtr<unif01_Gen*, sres_Basic*, const std::tuple<long, int, int, int>&>, tag:: Fourier3, FnPtr<unif01_Gen*, sspectral_Res*, const std::tuple<long, int, int, int>&>, tag:: LongestHeadRun, FnPtr<unif01_Gen*, sstring_Res2*, const std::tuple<long, long, int, int, long>&>, tag:: PeriodsInStrings, FnPtr<unif01_Gen*, sres_Chi2*, const std::tuple<long, long, int, int>&>, tag:: HammingWeight2, FnPtr<unif01_Gen*, sres_Basic*, const std::tuple<long, long, int, int, long>&>, tag:: HammingCorr, FnPtr<unif01_Gen*, sstring_Res*, const std::tuple<long, long, int, int, int>&>, tag:: StringRun, FnPtr<unif01_Gen*, sstring_Res3*, const std::tuple<long, long, int, int>&>, tag:: AutoCorr, FnPtr<unif01_Gen*, sres_Basic*, const std::tuple<long, long, int, int, int>&>>> runner - Compile-time tag-based access to individual test wrappers.
Stack of TestU01 statistical tests wrappers
- static auto BirthdaySpacings(unif01_Gen* gen, sres_Poisson* res, const std::tuple<long, long, int, long, int, int>& xargs) -> std::vector<double>
- static auto Collision(unif01_Gen* gen, sknuth_Res2* res, const std::tuple<long, long, int, long, int>& xargs) -> std::vector<double>
- static auto Gap(unif01_Gen* gen, sres_Chi2* res, const std::tuple<long, long, int, double, double>& xargs) -> std::vector<double>
- static auto SimplePoker(unif01_Gen* gen, sres_Chi2* res, const std::tuple<long, long, int, int, int>& xargs) -> std::vector<double>
- static auto CouponCollector(unif01_Gen* gen, sres_Chi2* res, const std::tuple<long, long, int, int>& xargs) -> std::vector<double>
- static auto MaxOft(unif01_Gen* gen, sknuth_Res1* res, const std::tuple<long, long, int, int, int, int, int>& xargs) -> std::vector<double>
- static auto WeightDistrib(unif01_Gen* gen, sres_Chi2* res, const std::tuple<long, long, int, long, double, double>& xargs) -> std::vector<double>
- static auto MatrixRank(unif01_Gen* gen, sres_Chi2* res, const std::tuple<long, long, int, int, int, int>& xargs) -> std::vector<double>
- static auto HammingIndep(unif01_Gen* gen, sstring_Res* res, const std::tuple<long, long, int, int, int, int>& xargs) -> std::vector<double>
- static auto RandomWalk1(unif01_Gen* gen, swalk_Res* res, const std::tuple<long, long, int, int, long, long>& xargs) -> std::vector<double>
- static auto SerialOver(unif01_Gen* gen, sres_Basic* res, const std::tuple<long, long, int, long, int>& xargs) -> std::vector<double>
- static auto CollisionOver(unif01_Gen* gen, smarsa_Res* res, const std::tuple<long, long, int, long, int>& xargs) -> std::vector<double>
- static auto ClosePairs(unif01_Gen* gen, snpair_Res* res, const std::tuple<long, long, int, int, int, int, int>& xargs) -> std::vector<double>
- static auto ClosePairsBitMatch(unif01_Gen* gen, snpair_Res* res, const std::tuple<long, long, int, int>& xargs) -> std::vector<double>
- static auto Run(unif01_Gen* gen, sres_Chi2* res, const std::tuple<long, long, int, int>& xargs) -> std::vector<double>
- static auto Permutation(unif01_Gen* gen, sres_Chi2* res, const std::tuple<long, long, int, int>& xargs) -> std::vector<double>
- static auto CollisionPermut(unif01_Gen* gen, sknuth_Res2* res, const std::tuple<long, long, int, int>& xargs) -> std::vector<double>
- static auto SampleProd(unif01_Gen* gen, sres_Basic* res, const std::tuple<long, long, int, int>& xargs) -> std::vector<double>
- static auto SampleMean(unif01_Gen* gen, sres_Basic* res, const std::tuple<long, long, int>& xargs) -> std::vector<double>
- static auto SampleCorr(unif01_Gen* gen, sres_Basic* res, const std::tuple<long, long, int, int>& xargs) -> std::vector<double>
- static auto AppearanceSpacings(unif01_Gen* gen, sres_Basic* res, const std::tuple<long, long, long, int, int, int>& xargs) -> std::vector<double>
- static auto SumCollector(unif01_Gen* gen, sres_Chi2* res, const std::tuple<long, long, int, double>& xargs) -> std::vector<double>
- static auto Savir2(unif01_Gen* gen, sres_Chi2* res, const std::tuple<long, long, int, long, int>& xargs) -> std::vector<double>
- static auto GCD(unif01_Gen* gen, smarsa_Res2* res, const std::tuple<long, long, int, int>& xargs) -> std::vector<double>
- static auto LinearComp(unif01_Gen* gen, scomp_Res* res, const std::tuple<long, long, int, int>& xargs) -> std::vector<double>
- static auto LempelZiv(unif01_Gen* gen, sres_Basic* res, const std::tuple<long, int, int, int>& xargs) -> std::vector<double>
- static auto Fourier3(unif01_Gen* gen, sspectral_Res* res, const std::tuple<long, int, int, int>& xargs) -> std::vector<double>
- static auto LongestHeadRun(unif01_Gen* gen, sstring_Res2* res, const std::tuple<long, long, int, int, long>& xargs) -> std::vector<double>
- static auto PeriodsInStrings(unif01_Gen* gen, sres_Chi2* res, const std::tuple<long, long, int, int>& xargs) -> std::vector<double>
- static auto HammingWeight2(unif01_Gen* gen, sres_Basic* res, const std::tuple<long, long, int, int, long>& xargs) -> std::vector<double>
- static auto HammingCorr(unif01_Gen* gen, sstring_Res* res, const std::tuple<long, long, int, int, int>& xargs) -> std::vector<double>
- static auto StringRun(unif01_Gen* gen, sstring_Res3* res, const std::tuple<long, long, int, int>& xargs) -> std::vector<double>
- static auto AutoCorr(unif01_Gen* gen, sres_Basic* res, const std::tuple<long, long, int, int, int>& xargs) -> std::vector<double>
Typedef documentation
template<class... Args>
using rngtest:: TestU01Stack:: FnPtr = std::vector<double>(*)(Args...)
Function pointer type to use to define pointers to test runner functions
Function documentation
rngtest:: TestU01Stack:: TestU01Stack() explicit
Constructor.
Associate RNGs to global-scope wrappers. Admittedly, this code is ugly and looks stupid at first sight. However, this is a translation of runtime information (user-selected RNGs) to compile-time information: associating RNG ids from an enum class, tk::ctr::RNGType::value, to a compile-time constant, underlying_type value, facilitating a different pair of global-scope RNG wrappers (uniform and uniform_bits) with code reuse. Note that uniform and uniform_bits wrappers must be global-scope as they are used as external generators to TestU01. Templating them on the id enables the compiler generate a different wrapper for a different RNG facilitating simultaneous calls to any or all wrappers as they are unique functions.
template<class TestType, class Proxy, typename... Ts>
void rngtest:: TestU01Stack:: add(Proxy& proxy,
std::vector<std::function<StatTest()>>& tests,
tk:: ctr:: RNGType r,
unif01_Gen*const gen,
std::vector<std::string>&& names,
Ts&&... xargs) const
Add a statistical test to battery.
Parameters | |
---|---|
proxy in | Charm++ host proxy to which the test calls back to |
tests in | Vector of test constructors to add tests to |
r in | RNG ID enum |
gen in | Raw function pointer to TestU01 statistical test |
names in | Vector of statisical test names (can be more than one associated with a given test, since a test can contain more than one statistical test evaluation, yielding multiple p-values) |
xargs in | Extra arguments to test-run |
Note that adding a test to the battery does not invoke the test constructor, it only records the information on how to call the test constructor in the future. That is it binds the constructor arguments to the constructor call and records the the information so only a function call "()" is necessary to instantiate it.
unif01_Gen* rngtest:: TestU01Stack:: generator(tk:: ctr:: RNGType r) const
Find RNG properties based on RNG id.
Parameters | |
---|---|
r in | RNG ID enum |
Returns | Raw function pointer to TestU01 statistical test |
Find TestU01 RNG wrapper based on RNG id
static std::vector<double> rngtest:: TestU01Stack:: BirthdaySpacings(unif01_Gen* gen,
sres_Poisson* res,
const std::tuple<long, long, int, long, int, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: Collision(unif01_Gen* gen,
sknuth_Res2* res,
const std::tuple<long, long, int, long, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: Gap(unif01_Gen* gen,
sres_Chi2* res,
const std::tuple<long, long, int, double, double>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: SimplePoker(unif01_Gen* gen,
sres_Chi2* res,
const std::tuple<long, long, int, int, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: CouponCollector(unif01_Gen* gen,
sres_Chi2* res,
const std::tuple<long, long, int, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: MaxOft(unif01_Gen* gen,
sknuth_Res1* res,
const std::tuple<long, long, int, int, int, int, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: WeightDistrib(unif01_Gen* gen,
sres_Chi2* res,
const std::tuple<long, long, int, long, double, double>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: MatrixRank(unif01_Gen* gen,
sres_Chi2* res,
const std::tuple<long, long, int, int, int, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: HammingIndep(unif01_Gen* gen,
sstring_Res* res,
const std::tuple<long, long, int, int, int, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: RandomWalk1(unif01_Gen* gen,
swalk_Res* res,
const std::tuple<long, long, int, int, long, long>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: SerialOver(unif01_Gen* gen,
sres_Basic* res,
const std::tuple<long, long, int, long, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: CollisionOver(unif01_Gen* gen,
smarsa_Res* res,
const std::tuple<long, long, int, long, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: ClosePairs(unif01_Gen* gen,
snpair_Res* res,
const std::tuple<long, long, int, int, int, int, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: ClosePairsBitMatch(unif01_Gen* gen,
snpair_Res* res,
const std::tuple<long, long, int, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: Run(unif01_Gen* gen,
sres_Chi2* res,
const std::tuple<long, long, int, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: Permutation(unif01_Gen* gen,
sres_Chi2* res,
const std::tuple<long, long, int, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: CollisionPermut(unif01_Gen* gen,
sknuth_Res2* res,
const std::tuple<long, long, int, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: SampleProd(unif01_Gen* gen,
sres_Basic* res,
const std::tuple<long, long, int, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: SampleMean(unif01_Gen* gen,
sres_Basic* res,
const std::tuple<long, long, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: SampleCorr(unif01_Gen* gen,
sres_Basic* res,
const std::tuple<long, long, int, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: AppearanceSpacings(unif01_Gen* gen,
sres_Basic* res,
const std::tuple<long, long, long, int, int, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: SumCollector(unif01_Gen* gen,
sres_Chi2* res,
const std::tuple<long, long, int, double>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: Savir2(unif01_Gen* gen,
sres_Chi2* res,
const std::tuple<long, long, int, long, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: GCD(unif01_Gen* gen,
smarsa_Res2* res,
const std::tuple<long, long, int, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: LinearComp(unif01_Gen* gen,
scomp_Res* res,
const std::tuple<long, long, int, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: LempelZiv(unif01_Gen* gen,
sres_Basic* res,
const std::tuple<long, int, int, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: Fourier3(unif01_Gen* gen,
sspectral_Res* res,
const std::tuple<long, int, int, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: LongestHeadRun(unif01_Gen* gen,
sstring_Res2* res,
const std::tuple<long, long, int, int, long>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: PeriodsInStrings(unif01_Gen* gen,
sres_Chi2* res,
const std::tuple<long, long, int, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: HammingWeight2(unif01_Gen* gen,
sres_Basic* res,
const std::tuple<long, long, int, int, long>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: HammingCorr(unif01_Gen* gen,
sstring_Res* res,
const std::tuple<long, long, int, int, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: StringRun(unif01_Gen* gen,
sstring_Res3* res,
const std::tuple<long, long, int, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
static std::vector<double> rngtest:: TestU01Stack:: AutoCorr(unif01_Gen* gen,
sres_Basic* res,
const std::tuple<long, long, int, int, int>& xargs)
Parameters | |
---|---|
gen in | Raw function pointer to TestU01 statistical test |
res in | Pointer to test results object |
xargs in | Test arguments |
Returns | Vector p-values as a result of the statistical test |
Variable documentation
tk:: TaggedTuple<brigand::list<tag:: BirthdaySpacings, FnPtr<unif01_Gen*, sres_Poisson*, const std::tuple<long, long, int, long, int, int>&>, tag:: Collision, FnPtr<unif01_Gen*, sknuth_Res2*, const std::tuple<long, long, int, long, int>&>, tag:: RandomWalk1, FnPtr<unif01_Gen*, swalk_Res*, const std::tuple<long, long, int, int, long, long>&>, tag:: Gap, FnPtr<unif01_Gen*, sres_Chi2*, const std::tuple<long, long, int, double, double>&>, tag:: SimplePoker, FnPtr<unif01_Gen*, sres_Chi2*, const std::tuple<long, long, int, int, int>&>, tag:: CouponCollector, FnPtr<unif01_Gen*, sres_Chi2*, const std::tuple<long, long, int, int>&>, tag:: MaxOft, FnPtr<unif01_Gen*, sknuth_Res1*, const std::tuple<long, long, int, int, int, int, int>&>, tag:: WeightDistrib, FnPtr<unif01_Gen*, sres_Chi2*, const std::tuple<long, long, int, long, double, double>&>, tag:: MatrixRank, FnPtr<unif01_Gen*, sres_Chi2*, const std::tuple<long, long, int, int, int, int>&>, tag:: HammingIndep, FnPtr<unif01_Gen*, sstring_Res*, const std::tuple<long, long, int, int, int, int>&>, tag:: SerialOver, FnPtr<unif01_Gen*, sres_Basic*, const std::tuple<long, long, int, long, int>&>, tag:: CollisionOver, FnPtr<unif01_Gen*, smarsa_Res*, const std::tuple<long, long, int, long, int>&>, tag:: ClosePairs, FnPtr<unif01_Gen*, snpair_Res*, const std::tuple<long, long, int, int, int, int, int>&>, tag:: ClosePairsBitMatch, FnPtr<unif01_Gen*, snpair_Res*, const std::tuple<long, long, int, int>&>, tag:: Run, FnPtr<unif01_Gen*, sres_Chi2*, const std::tuple<long, long, int, int>&>, tag:: Permutation, FnPtr<unif01_Gen*, sres_Chi2*, const std::tuple<long, long, int, int>&>, tag:: CollisionPermut, FnPtr<unif01_Gen*, sknuth_Res2*, const std::tuple<long, long, int, int>&>, tag:: SampleProd, FnPtr<unif01_Gen*, sres_Basic*, const std::tuple<long, long, int, int>&>, tag:: SampleMean, FnPtr<unif01_Gen*, sres_Basic*, const std::tuple<long, long, int>&>, tag:: SampleCorr, FnPtr<unif01_Gen*, sres_Basic*, const std::tuple<long, long, int, int>&>, tag:: AppearanceSpacings, FnPtr<unif01_Gen*, sres_Basic*, const std::tuple<long, long, long, int, int, int>&>, tag:: SumCollector, FnPtr<unif01_Gen*, sres_Chi2*, const std::tuple<long, long, int, double>&>, tag:: Savir2, FnPtr<unif01_Gen*, sres_Chi2*, const std::tuple<long, long, int, long, int>&>, tag:: GCD, FnPtr<unif01_Gen*, smarsa_Res2*, const std::tuple<long, long, int, int>&>, tag:: LinearComp, FnPtr<unif01_Gen*, scomp_Res*, const std::tuple<long, long, int, int>&>, tag:: LempelZiv, FnPtr<unif01_Gen*, sres_Basic*, const std::tuple<long, int, int, int>&>, tag:: Fourier3, FnPtr<unif01_Gen*, sspectral_Res*, const std::tuple<long, int, int, int>&>, tag:: LongestHeadRun, FnPtr<unif01_Gen*, sstring_Res2*, const std::tuple<long, long, int, int, long>&>, tag:: PeriodsInStrings, FnPtr<unif01_Gen*, sres_Chi2*, const std::tuple<long, long, int, int>&>, tag:: HammingWeight2, FnPtr<unif01_Gen*, sres_Basic*, const std::tuple<long, long, int, int, long>&>, tag:: HammingCorr, FnPtr<unif01_Gen*, sstring_Res*, const std::tuple<long, long, int, int, int>&>, tag:: StringRun, FnPtr<unif01_Gen*, sstring_Res3*, const std::tuple<long, long, int, int>&>, tag:: AutoCorr, FnPtr<unif01_Gen*, sres_Basic*, const std::tuple<long, long, int, int, int>&>>> rngtest:: TestU01Stack:: runner
Compile-time tag-based access to individual test wrappers.
This tagged tuple is practically a compile-time map that associates tags (empty structs) to test wrappers. This is used to find the test wrapper function pointers after migration over the network.