summaryrefslogtreecommitdiffhomepage
path: root/misc/benchmarks/various/prng_bench.cpp
diff options
context:
space:
mode:
author_Tradam <[email protected]>2023-09-08 01:29:47 +0000
committerGitHub <[email protected]>2023-09-08 01:29:47 +0000
commit3c76c7f3d5db3f9586a90d03f8fbb02d79de9acd (patch)
treeafbe4b540967223911f7c5de36559b82154f02f3 /misc/benchmarks/various/prng_bench.cpp
parent0841165881871ee01b782129be681209aeed2423 (diff)
parent1a72205fe05c2375cfd380dd8381a8460d9ed8d1 (diff)
downloadSTC-modified-modified.tar.gz
STC-modified-modified.zip
Merge branch 'stclib:master' into modifiedHEADmodified
Diffstat (limited to 'misc/benchmarks/various/prng_bench.cpp')
-rw-r--r--misc/benchmarks/various/prng_bench.cpp33
1 files changed, 15 insertions, 18 deletions
diff --git a/misc/benchmarks/various/prng_bench.cpp b/misc/benchmarks/various/prng_bench.cpp
index 234e3805..45c14d18 100644
--- a/misc/benchmarks/various/prng_bench.cpp
+++ b/misc/benchmarks/various/prng_bench.cpp
@@ -66,7 +66,7 @@ uint32_t pcg32(uint32_t s[2]) {
}
-/* xoshiro128+ */
+/* xo(ro)shiro */
uint64_t xoroshiro128plus(uint64_t s[2]) {
const uint64_t s0 = s[0];
@@ -80,9 +80,6 @@ uint64_t xoroshiro128plus(uint64_t s[2]) {
return result;
}
-
-/* xoshiro256** */
-
static inline uint64_t xoshiro256starstar(uint64_t s[4]) {
const uint64_t result = rotl64(s[1] * 5, 7) * 9;
const uint64_t t = s[1] << 17;
@@ -95,7 +92,7 @@ static inline uint64_t xoshiro256starstar(uint64_t s[4]) {
return result;
}
-// wyrand - 2020-12-07
+/* wyrand - 2020-12-07 */
static inline void _wymum(uint64_t *A, uint64_t *B){
#if defined(__SIZEOF_INT128__)
__uint128_t r = *A; r *= *B;
@@ -136,44 +133,44 @@ int main(void)
for (size_t ti = 0; ti < 2; ti++) {
init_state(rng.state, 12345123);
cout << endl << "ROUND " << ti+1 << " ---------" << endl;
-
+/*
beg = clock();
for (size_t i = 0; i < N; i++)
- recipient[i] = romu_trio(rng.state);
+ recipient[i] = sfc32((uint32_t *)rng.state);
end = clock();
- cout << "romu_trio:\t"
+ cout << "sfc32:\t\t"
<< (float(end - beg) / CLOCKS_PER_SEC)
<< "s: " << recipient[312] << endl;
beg = clock();
for (size_t i = 0; i < N; i++)
- recipient[i] = wyrand64(rng.state);
+ recipient[i] = stc32((uint32_t *)rng.state);
end = clock();
- cout << "wyrand64:\t"
+ cout << "stc32:\t\t"
<< (float(end - beg) / CLOCKS_PER_SEC)
<< "s: " << recipient[312] << endl;
beg = clock();
for (size_t i = 0; i < N; i++)
- recipient[i] = sfc32((uint32_t *)rng.state);
+ recipient[i] = pcg32((uint32_t *)rng.state);
end = clock();
- cout << "sfc32:\t\t"
+ cout << "pcg32:\t\t"
<< (float(end - beg) / CLOCKS_PER_SEC)
<< "s: " << recipient[312] << endl;
-
+*/
beg = clock();
for (size_t i = 0; i < N; i++)
- recipient[i] = stc32((uint32_t *)rng.state);
+ recipient[i] = romu_trio(rng.state);
end = clock();
- cout << "stc32:\t\t"
+ cout << "romu_trio:\t"
<< (float(end - beg) / CLOCKS_PER_SEC)
<< "s: " << recipient[312] << endl;
beg = clock();
for (size_t i = 0; i < N; i++)
- recipient[i] = pcg32((uint32_t *)rng.state);
+ recipient[i] = wyrand64(rng.state);
end = clock();
- cout << "pcg32:\t\t"
+ cout << "wyrand64:\t"
<< (float(end - beg) / CLOCKS_PER_SEC)
<< "s: " << recipient[312] << endl;
@@ -189,7 +186,7 @@ int main(void)
for (size_t i = 0; i < N; i++)
recipient[i] = crand_u64(&rng);
end = clock();
- cout << "stc64:\t\t"
+ cout << "crand64:\t"
<< (float(end - beg) / CLOCKS_PER_SEC)
<< "s: " << recipient[312] << endl;