Commit 0a84dcf0 authored by Adam P. Goucher's avatar Adam P. Goucher

Further improvement on AVX-512 (11000 soups per second)

parent cf606eb1
Pipeline #47188097 passed with stages
in 7 minutes and 48 seconds
#ifndef LIFELIB_VERSION /*
__version__=[x.replace('"', '') for x in '''
*/
#define LIFELIB_VERSION "ll2.1.15"
#define LIFELIB_VERSION "ll2.1.16"
// '''.split() if ('ll' in x)][0][2:]
#endif
......@@ -116,11 +116,18 @@ namespace apg {
d |= (((uint64_t) digest[2*j+17]) << 8*j);
}
if (symmetry == "C1") {
if ((symmetry == "C1") || (symmetry == "D2_x")) {
#ifdef __AVX512F__
bw.world[std::pair<int32_t, int32_t>(1, 2)] = b;
bw.world[std::pair<int32_t, int32_t>(2, 2)] = a;
bw.world[std::pair<int32_t, int32_t>(1, 3)] = d;
bw.world[std::pair<int32_t, int32_t>(2, 3)] = c;
#else
bw.world[std::pair<int32_t, int32_t>(1, 1)] = b;
bw.world[std::pair<int32_t, int32_t>(2, 1)] = a;
bw.world[std::pair<int32_t, int32_t>(1, 2)] = d;
bw.world[std::pair<int32_t, int32_t>(2, 2)] = c;
#endif
return bw;
}
......@@ -129,8 +136,6 @@ namespace apg {
bw.world[std::pair<int32_t, int32_t>(0, 1)] = d;
bw.world[std::pair<int32_t, int32_t>(1, 1)] = c;
if ((symmetry == "C1") || (symmetry == "D2_x")) { return bw; }
bitworld dbw;
dbw.world[std::pair<int32_t, int32_t>(0, 0)] = uint64_vreflect(uint64_hreflect(c));
dbw.world[std::pair<int32_t, int32_t>(1, 0)] = uint64_vreflect(uint64_hreflect(d));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment