1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-11-27 06:27:17 +00:00

using smaller field_quotients for rule_fp; also a list of field quotients is included in devmods

This commit is contained in:
Zeno Rogue 2022-08-25 10:31:28 +02:00
parent 4947b8c1b5
commit 5146fc00f0
2 changed files with 126 additions and 17 deletions

View File

@ -0,0 +1,80 @@
336h: D29C2418 p=3, f=3, n=10, q=5,1
336h: 7769A558 p=5, f=25, n=650, q=50
336h: 640FB3D4 p=7, f=7, n=28, q=14,1
336h: C734F868 p=7, f=7, n=28, q=14,1
336h: E3F6B7BC p=7, f=49, n=672, q=336,28,16
336h: 885F1184 p=7, f=49, n=672, q=336,42,28,16
344h: B23AF1F4 p=3, f=3, n=5, q=1
344h: 4F9920E0 p=3, f=3, n=5, q=1
344h: 6DBBAAA0 p=3, f=3, n=10, q=5,1
344h: F81E97B0 p=3, f=3, n=10, q=5,1
344h: F790CEA4 p=3, f=3, n=30, q=6,3
344h: C95EC8B8 p=3, f=3, n=30, q=3
344h: 16518434 p=3, f=9, n=16, q=8,4,2
344h: 558C8ED0 p=5, f=5, n=600, q=20,25
344h: 1EC39944 p=5, f=5, n=600, q=20,25
344h: AF042EA8 p=5, f=25, n=2400, q=1200,600,60,40
344h: EC29DCEC p=5, f=25, n=2600, q=1300,650,100
344h: D26948E0 p=5, f=25, n=2600, q=1300,650,100
345h: F978E264 p=3, f=3, n=30, q=6,3
345h: 02ADCAA4 p=3, f=3, n=30, q=6,3
345h: 7EFE8D98 p=5, f=25, n=650, q=50,25
345h: F447F75C p=11, f=11, n=55, q=5
345h: 58A698B8 p=19, f=19, n=285, q=15
345h: 6FA03030 p=19, f=19, n=285, q=57,15
353h: 1566EBAC p=5, f=25, n=130, q=10
353h: 5A2E2B88 p=11, f=11, n=11, q=1
354h: 58A8E850 p=5, f=5, n=2, q=1
354h: 363D8DA4 p=11, f=11, n=22, q=11,2
354h: 9CD5E744 p=11, f=11, n=22, q=11,2
354h: F04BA28C p=19, f=19, n=114, q=57,6
355h: AF448B14 p=5, f=5, n=1
355h: F42F2904 p=5, f=5, n=1
355h: 47F0C740 p=5, f=5, n=120, q=6,4
355h: 7BAFB45C p=11, f=11, n=11, q=1
355h: 6453A3FC p=11, f=11, n=11, q=1
435h: EB201050 p=5, f=25, n=650, q=25
435h: 65CE0C00 p=11, f=11, n=55, q=11,5
435h: 5641E95C p=11, f=11, n=55, q=11,5
436h: 235F7508 p=2, f=4, n=2, q=1
436h: C02F2A80 p=2, f=4, n=2, q=1
436h: DFC6B8C0 p=2, f=4, n=8, q=4,2
436h: 4D3C8B14 p=3, f=9, n=8, q=1
436h: FF82A214 p=5, f=25, n=650, q=50,25
436h: 4546E270 p=5, f=25, n=650, q=25
436h: C4884090 p=7, f=7, n=28, q=14,4,2
436h: 5230B364 p=7, f=7, n=28, q=14,2
436h: 2D051038 p=7, f=7, n=14, q=7,2
436h: F0997060 p=7, f=7, n=14, q=7,2
436h: 1D1227CC p=7, f=49, n=672, q=336,112,42,14,12
436h: B2B4B3D4 p=7, f=49, n=672, q=336,14,12
436h: 6C29B2A4 p=13, f=13, n=91, q=13,7
436h: 06F4054C p=13, f=13, n=91, q=13,7
436h: DE4912E0 p=13, f=13, n=182, q=91,13,7
436h: 417466F0 p=13, f=13, n=182, q=91,13,7
534h: 0C62E214 p=5, f=25, n=130, q=10
534h: 72414D0C p=5, f=25, n=260, q=10
534h: 831E2D74 p=11, f=11, n=22, q=2
534h: 5FC4CFF0 p=11, f=11, n=22, q=2
535h: DCC3CACE p=5, f=5, n=1
535h: F78E1C56 p=5, f=5, n=1
535h: 9EF7A9C4 p=5, f=5, n=120, q=10,8,6,4
535h: 5254DA16 p=19, f=19, n=57, q=3
535h: A5C8752E p=19, f=19, n=57, q=3
536h: BB5AEE10 p=5, f=5, n=120, q=8,6,4
536h: 61385498 p=5, f=5, n=2, q=1
536h: B009EB44 p=5, f=5, n=2, q=1
536h: 3BA5C5A4 p=5, f=25, n=130, q=10
536h: 9FDE7B38 p=5, f=25, n=260, q=130,10
536h: 885F1184 p=7, f=49, n=672, q=336,28,16

View File

@ -1281,7 +1281,13 @@ EX struct fpattern& getcurrfp() {
return current_quotient_field; return current_quotient_field;
if(geometry == gSpace535) { if(geometry == gSpace535) {
// 120 cells, hash = 9EF7A9C4 // 120 cells, hash = 9EF7A9C4
static fpattern fp(5); static fpattern fp(0);
if(use_rule_fp) {
fp.Prime = 5; fp.force_hash = 0xDCC3CACEu; fp.solve();
}
else {
fp.Prime = 5; fp.force_hash = 0x9EF7A9C4u; fp.solve();
}
return fp; return fp;
} }
if(geometry == gSpace534) { if(geometry == gSpace534) {
@ -1291,7 +1297,7 @@ EX struct fpattern& getcurrfp() {
// fp.Prime = 5; fp.force_hash = 0x72414D0C; fp.solve(); // fp.Prime = 5; fp.force_hash = 0x72414D0C; fp.solve();
if(use_rule_fp) { if(use_rule_fp) {
fp.Prime = 11; fp.force_hash = 0x5FC4CFF0; fp.solve(); fp.Prime = 11; fp.force_hash = 0x5FC4CFF0u; fp.solve();
} }
else { else {
shstream ins(STR("\x05\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\xfc\xff\xff\xff\x01\x00\x00\x00\x04\x00\x00\x00\xfc\xff\xff\xff\x04\x00\x00\x00\xfe\xff\xff\xff\x00\x00\x00\x00\x01\x00\x00\x00\xfe\xff\xff\xff\x04\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xff\xff\xff\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xfc\xff\xff\xff\x02\x00\x00\x00\x00\x00\x00\x00\xfc\xff\xff\xff\x01\x00\x00\x00\xfd\xff\xff\xff\x00\x00\x00\x00\x02\x00\x00\x00\xfd\xff\xff\xff\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00")); shstream ins(STR("\x05\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\xfc\xff\xff\xff\x01\x00\x00\x00\x04\x00\x00\x00\xfc\xff\xff\xff\x04\x00\x00\x00\xfe\xff\xff\xff\x00\x00\x00\x00\x01\x00\x00\x00\xfe\xff\xff\xff\x04\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xff\xff\xff\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xfc\xff\xff\xff\x02\x00\x00\x00\x00\x00\x00\x00\xfc\xff\xff\xff\x01\x00\x00\x00\xfd\xff\xff\xff\x00\x00\x00\x00\x02\x00\x00\x00\xfd\xff\xff\xff\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00"));
@ -1307,7 +1313,7 @@ EX struct fpattern& getcurrfp() {
// what is 0x72414D0C?? // what is 0x72414D0C??
if(use_rule_fp) { if(use_rule_fp) {
fp.Prime = 11; fp.force_hash = 0x65CE0C00; fp.solve(); fp.Prime = 11; fp.force_hash = 0x65CE0C00u; fp.solve();
} }
else { else {
shstream ins(STR("\x05\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xfc\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff\xfc\xff\xff\xff\x04\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\xff\xff\xff\xff\x02\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\xfd\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xfc\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xfd\xff\xff\xff\xfd\xff\xff\xff\x00\x00\x00\x00\xfd\xff\xff\xff\x02\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xfd\xff\xff\xff\x03\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00")); shstream ins(STR("\x05\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xfc\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff\xfc\xff\xff\xff\x04\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\xff\xff\xff\xff\x02\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\xfd\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xfc\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xfd\xff\xff\xff\xfd\xff\xff\xff\x00\x00\x00\x00\xfd\xff\xff\xff\x02\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xfd\xff\xff\xff\x03\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00"));
@ -1317,20 +1323,28 @@ EX struct fpattern& getcurrfp() {
} }
if(geometry == gSpace436) { if(geometry == gSpace436) {
static fpattern fp(0); static fpattern fp(0);
// FF82A214 if(fp.Prime) return fp;
shstream ins(STR("\x05\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\xfd\xff\xff\xff\x00\x00\x00\x00\xfe\xff\xff\xff\xfd\xff\xff\xff\x01\x00\x00\x00\x01\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\xfd\xff\xff\xff\x02\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\xfc\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xfd\xff\xff\xff\xfd\xff\xff\xff\x00\x00\x00\x00\xfd\xff\xff\xff\x02\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xfd\xff\xff\xff\x03\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00")); if(use_rule_fp) {
hread_fpattern(ins, fp); fp.Prime = 2; fp.force_hash = 0x235F7508u; fp.solve();
}
else {
// FF82A214
shstream ins(STR("\x05\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\xfd\xff\xff\xff\x00\x00\x00\x00\xfe\xff\xff\xff\xfd\xff\xff\xff\x01\x00\x00\x00\x01\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\xfd\xff\xff\xff\x02\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\xfc\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xfd\xff\xff\xff\xfd\xff\xff\xff\x00\x00\x00\x00\xfd\xff\xff\xff\x02\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xfd\xff\xff\xff\x03\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00"));
hread_fpattern(ins, fp);
}
return fp; return fp;
} }
if(geometry == gSpace336) { if(geometry == gSpace336) {
// 672 cells in E3F6B7BC
// 672 cells in 885F1184
// 9408 cells in C4089F34
static fpattern fp(0); static fpattern fp(0);
if(fp.Prime) return fp; if(fp.Prime) return fp;
// fp.Prime = 7; fp.force_hash = 0xE3F6B7BCu; fp.solve(); if(use_rule_fp) {
shstream ins(STR("\x07\x00\x00\x00\x03\x00\x00\x00\xfa\xff\xff\xff\x02\x00\x00\x00\x03\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\xfe\xff\xff\xff\xfb\xff\xff\xff\xfc\xff\xff\xff\x03\x00\x00\x00\xfb\xff\xff\xff\xfd\xff\xff\xff\xfb\xff\xff\xff\x01\x00\x00\x00\xfd\xff\xff\xff\xfe\xff\xff\xff\xfd\xff\xff\xff\x03\x00\x00\x00\x00\x00\x00\x00\xfd\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xff\xff\xff\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xfa\xff\xff\xff\xfb\xff\xff\xff\x00\x00\x00\x00\xfa\xff\xff\xff\x02\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\xff\x06\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00")); fp.Prime = 3; fp.force_hash = 0xD29C2418u; fp.solve();
hread_fpattern(ins, fp); }
else {
// fp.Prime = 7; fp.force_hash = 0xE3F6B7BCu; fp.solve();
shstream ins(STR("\x07\x00\x00\x00\x03\x00\x00\x00\xfa\xff\xff\xff\x02\x00\x00\x00\x03\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\xfe\xff\xff\xff\xfb\xff\xff\xff\xfc\xff\xff\xff\x03\x00\x00\x00\xfb\xff\xff\xff\xfd\xff\xff\xff\xfb\xff\xff\xff\x01\x00\x00\x00\xfd\xff\xff\xff\xfe\xff\xff\xff\xfd\xff\xff\xff\x03\x00\x00\x00\x00\x00\x00\x00\xfd\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xff\xff\xff\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xfa\xff\xff\xff\xfb\xff\xff\xff\x00\x00\x00\x00\xfa\xff\xff\xff\x02\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\xff\x06\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00"));
hread_fpattern(ins, fp);
}
return fp; return fp;
} }
if(geometry == gSpace344) { if(geometry == gSpace344) {
@ -1340,7 +1354,12 @@ EX struct fpattern& getcurrfp() {
// 2600 cells in EC29DCEC // 2600 cells in EC29DCEC
static fpattern fp(0); static fpattern fp(0);
if(fp.Prime) return fp; if(fp.Prime) return fp;
fp.Prime = 5; fp.force_hash = 0x558C8ED0u; fp.solve(); if(use_rule_fp) {
fp.Prime = 3; fp.force_hash = 0xB23AF1F4u; fp.solve();
}
else {
fp.Prime = 5; fp.force_hash = 0x558C8ED0u; fp.solve();
}
return fp; return fp;
// 4900 cells in CDCC7860 (7) // 4900 cells in CDCC7860 (7)
} }
@ -1349,7 +1368,12 @@ EX struct fpattern& getcurrfp() {
if(fp.Prime) return fp; if(fp.Prime) return fp;
// 130 cells in 3BA5C5A4 // 130 cells in 3BA5C5A4
// 260 cells in 9FDE7B38 // 260 cells in 9FDE7B38
fp.Prime = 5; fp.force_hash = 0x9FDE7B38u; fp.solve(); if(use_rule_fp) {
fp.Prime = 5; fp.force_hash = 0x61385498u; fp.solve();
}
else {
fp.Prime = 5; fp.force_hash = 0x9FDE7B38u; fp.solve();
}
return fp; return fp;
} }
if(geometry == gSpace345) { if(geometry == gSpace345) {
@ -1358,7 +1382,12 @@ EX struct fpattern& getcurrfp() {
// 30 cells in 02ADCAA4 (3^2) // 30 cells in 02ADCAA4 (3^2)
// 650 cells in 7EFE8D98 (5^2) // 650 cells in 7EFE8D98 (5^2)
// 55 cells in F447F75C (11) // 55 cells in F447F75C (11)
fp.Prime = 11; fp.force_hash = 0xF447F75Cu; fp.solve(); if(use_rule_fp) {
fp.Prime = 3; fp.force_hash = 0xF978E264u; fp.solve();
}
else {
fp.Prime = 11; fp.force_hash = 0xF447F75Cu; fp.solve();
}
return fp; return fp;
} }
if(geometry == gSpace353) { if(geometry == gSpace353) {
@ -1371,8 +1400,8 @@ EX struct fpattern& getcurrfp() {
} }
if(geometry == gSpace354) { if(geometry == gSpace354) {
static fpattern fp(0); static fpattern fp(0);
if(fp.Prime) return fp; // fp.Prime = 11; fp.force_hash = 0x363D8DA4u; fp.solve();
fp.Prime = 11; fp.force_hash = 0x363D8DA4u; fp.solve(); fp.Prime = 5; fp.force_hash = 0x58A8E850u; fp.solve();
return fp; return fp;
} }
if(geometry == gCubeTiling) { if(geometry == gCubeTiling) {