fixed some bugs when faking Euclidean

This commit is contained in:
Zeno Rogue 2020-05-29 02:43:30 +02:00
parent ce299c1a0c
commit fca9834d02
3 changed files with 17 additions and 9 deletions

View File

@ -1189,6 +1189,9 @@ EX void generate() {
auto& cs = cgi.cellshape;
cgi.loop = 4;
cgi.schmid = 3;
if(S7 == 6) {
cgi.adjcheck = 1;
cgi.face = 4;
@ -1245,6 +1248,8 @@ EX void generate() {
}
}
}
reg3::make_vertices_only();
}

View File

@ -1173,6 +1173,7 @@ EX struct fpattern& getcurrfp() {
fp.Prime = 11; fp.force_hash = 0x363D8DA4u; fp.solve();
return fp;
}
if(!hyperbolic) return fp_invalid;
if(WDIM == 3 && !quotient && !hybri && !bt::in()) {
static fpattern fp(0);
if(fp.Prime) return fp;
@ -1180,7 +1181,6 @@ EX struct fpattern& getcurrfp() {
DEBB(DF_FIELD, ("set prime = ", fp.Prime));
return fp;
}
if(!hyperbolic) return fp_invalid;
if(S7 == 8 && S3 == 3 && !bt::in()) {
static fpattern fp(17);
return fp;

View File

@ -80,6 +80,16 @@ EX namespace reg3 {
cgi.ultra_mirrors.push_back(rspintox(v) * xpush(cgi.ultra_mirror_dist*2) * MirrorX * spintox(v));
}
EX void make_vertices_only() {
auto& vertices_only = cgi.vertices_only;
vertices_only.clear();
for(hyperpoint h: cgi.cellshape) {
bool found = false;
for(hyperpoint h2: vertices_only) if(hdist(h, h2) < 1e-6) found = true;
if(!found) vertices_only.push_back(h);
}
}
EX void generate() {
if(fake::in()) {
@ -89,7 +99,6 @@ EX namespace reg3 {
int& loop = cgi.loop;
int& face = cgi.face;
auto& vertices_only = cgi.vertices_only;
auto& spins = cgi.spins;
auto& cellshape = cgi.cellshape;
auto& adjcheck = cgi.adjcheck;
@ -241,13 +250,7 @@ EX namespace reg3 {
for(auto& v: cellshape) v = T * v;
}
vertices_only.clear();
for(hyperpoint h: cellshape) {
bool found = false;
for(hyperpoint h2: vertices_only) if(hdist(h, h2) < 1e-6) found = true;
if(!found) vertices_only.push_back(h);
}
make_vertices_only();
compute_ultra();
for(int a=0; a<S7; a++)