diff options
| author | Tylo <[email protected]> | 2020-06-24 16:41:11 +0200 |
|---|---|---|
| committer | Tylo <[email protected]> | 2020-06-24 16:41:11 +0200 |
| commit | 258bf942f635da5709902b96d84b952d5e588c8c (patch) | |
| tree | a666ac54f641e4c40bef2e149369bd36bffc659b /examples | |
| parent | 54da34796941dae3990870a98fc6bb28c80ae522 (diff) | |
| download | STC-modified-258bf942f635da5709902b96d84b952d5e588c8c.tar.gz STC-modified-258bf942f635da5709902b96d84b952d5e588c8c.zip | |
Removed Mersenne Twister and xoroshiro functions. Added PGC32. Refactored carray.
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/benchmark.c | 7 | ||||
| -rw-r--r-- | examples/rngtest.c | 39 |
2 files changed, 12 insertions, 34 deletions
diff --git a/examples/benchmark.c b/examples/benchmark.c index b6e31a22..a8c4fb86 100644 --- a/examples/benchmark.c +++ b/examples/benchmark.c @@ -26,12 +26,9 @@ KHASH_MAP_INIT_INT64(ii, uint64_t) size_t seed = 1234;
static const double maxLoadFactor = 0.77;
-sfc64_t rng;
+sfc64_random_t rng;
#define SEED(s) rng = sfc64_seed(seed)
-#define RAND(N) (sfc64_rand(&rng) & ((1 << N) - 1))
-//mt19937_t rng;
-//#define SEED(s) rng = mt19937_seed(s)
-//#define RAND(N) (mt19937_rand(&rng) & ((1 << N) - 1))
+#define RAND(N) (sfc64_random(&rng) & ((1 << N) - 1))
#define CMAP_SETUP(tag, Key, Value) CHash_##tag map = chash_init; \
diff --git a/examples/rngtest.c b/examples/rngtest.c index f13306b0..d88d1fab 100644 --- a/examples/rngtest.c +++ b/examples/rngtest.c @@ -14,45 +14,26 @@ int main(void) uint64_t v; printf("start\n"); - mt19937_t state = mt19937_default(); - uint32_t k = mt19937_rand(&state); - printf("%u - %g\n", k, c_randToFloat(k)); - + pcg32_random_t pcg = pcg32_seed(time(NULL), 1); before = clock(); \ v = 0; for (size_t i=0; i<NN; i++) { - v += mt19937_rand(&state); + v += pcg32_random(&pcg) & 0xffffffff; } difference = clock() - before; - printf("my-mt: %.02f, %zu\n", (float) difference / CLOCKS_PER_SEC, v); - -#ifdef __cplusplus - std::mt19937 mt_rand; - before = clock(); \ - v = 0; - for (size_t i=0; i<NN; i++) { - v += mt_rand(); - } - difference = clock() - before; - printf("c++mt: %.02f, %zu\n", (float) difference / CLOCKS_PER_SEC, v); -#endif + printf("pcg32: %.02f, %zu\n", (float) difference / CLOCKS_PER_SEC, v); - xoroshiro128ss_t xo = xoroshiro128ss_seed(1234); + sfc64_random_t sfc = sfc64_seed(time(NULL)); before = clock(); \ v = 0; for (size_t i=0; i<NN; i++) { - v += xoroshiro128ss_rand(&xo) & 0xffffffff; - } - difference = clock() - before; - printf("xoros: %.02f, %zu\n", (float) difference / CLOCKS_PER_SEC, v); - - - sfc64_t sfc = sfc64_seed(1234); - before = clock(); \ - v = 0; - for (size_t i=0; i<NN; i++) { - v += sfc64_rand(&sfc) & 0xffffffff; + v += sfc64_random(&sfc) & 0xffffffff; } difference = clock() - before; printf("sfc64: %.02f, %zu\n", (float) difference / CLOCKS_PER_SEC, v); + + for (int i=0; i<8; ++i) printf("%f ", sfc64_fRandom(&sfc)); + puts(""); + for (int i=0; i<8; ++i) printf("%f ", pcg32_fRandom(&pcg)); + puts(""); }
\ No newline at end of file |
