wwei23 -- WW on Catagolue -- has been searching various pseudo-symmetries not previously supported by apgsearch, notably 4x64, 2x128, 1x256 and 32x32, and has made the modified apgsearch available
on the LifeWiki.
Here's the diff against a vanilla copy of apgsearch-2015-05-25.py, showing the juicy bits:
Code: Select all
--- apgsearch-2015-05-25-vanilla.py 2017-06-30 11:07:46.918428600 +0200
+++ apgsearch-2015-05-25-wwei23.py 2017-06-30 11:03:10.075594100 +0200
@@ -51,6 +51,7 @@
import datetime
import os
import urllib2
+import RANDOM
def get_server_address():
# Should be 'http://catagolue.appspot.com' for the released version,
@@ -117,7 +118,7 @@
try:
- payload = authenticate(payosha256_key, operation_name)
+ payload = authenticate("#anon", operation_name)
if payload is None:
return 1
@@ -165,6 +166,8 @@
else:
d = 0
+
+
for j in xrange(32):
t = ord(s[j])
@@ -172,9 +175,27 @@
for k in xrange(8):
if (sym == '8x32'):
+
x = k + 8*(j % 4)
y = int(j / 4)
+
+ elif (sym == '4x64'):
+
+ x = k + 8*(j % 8)
+ y = int(j / 8)
+
+ elif (sym == '2x128'):
+
+ x = k + 8*(j % 16)
+ y = int(j / 16)
+
+ elif (sym == '1x256'):
+
+ x = k + 8*(j % 32)
+ y = int(j / 32)
+
else:
+
x = k + 8*(j % 2)
y = int(j / 2)
@@ -185,6 +206,15 @@
thesoup.append(x)
thesoup.append(y)
+ if (sym == '32x32'):
+
+ thesoup.append(x+16)
+ thesoup.append(y)
+ thesoup.append(x)
+ thesoup.append(y+16)
+ thesoup.append(x+16)
+ thesoup.append(y+16)
+
elif (sym == 'D4_x1'):
thesoup.append(y)
@@ -2645,7 +2675,7 @@
orignumber = min(orignumber, 100000000)
number = orignumber
initpos = 0
- if symmstring not in ["8x32", "C1", "C2_1", "C2_2", "C2_4", "C4_1", "C4_4", "D2_+1", "D2_+2", "D2_x", "D4_+1", "D4_+2", "D4_+4", "D4_x1", "D4_x4", "D8_1", "D8_4"]:
+ if symmstring not in ["32x32", "1x256", "2x128", "4x64", "8x32", "C1", "C2_1", "C2_2", "C2_4", "C4_1", "C4_4", "D2_+1", "D2_+2", "D2_x", "D4_+1", "D4_+2", "D4_+4", "D4_x1", "D4_x4", "D8_1", "D8_4"]:
g.exit(symmstring+" is not a valid symmetry option")
quitapg = False
@@ -2757,7 +2787,7 @@
g.new("Symmetry test")
- symmetries = [["C1", "8x32"],
+ symmetries = [["32x32", "C1", "8x32", "4x64", "2x128", "1x256"],
["C2_1", "C2_2", "C2_4"],
["C4_1", "C4_4"],
["D2_+1", "D2_+2", "D2_x"],
This should be straightforward to integrate into Aidan's hacked apgsearch supporting semi-totalistic rules. Integration of these into apgsearch 3.1 might be more involved, I haven't looked at how it operates under the hood yet.
If anyone else also wants to search these symmetries, please use the above modifications to ensure that soups are generated the same way, to ensure reproducibility / compatibility of results. (Also, to ensure Catagolue will produce the right sample soups if/when it gains the ability to handle these symmetries natively.)