diff --git a/fieldpattern.cpp b/fieldpattern.cpp index 85a389ca..04788123 100644 --- a/fieldpattern.cpp +++ b/fieldpattern.cpp @@ -307,7 +307,8 @@ struct fpattern { vector generate_isometries3(); int solve3(); bool generate_all3(); - + + void set_field(int p, int sq); // transmatrix full_R, full_P, full_X; #if CAP_THREAD @@ -468,6 +469,9 @@ unsigned fpattern::compute_hash() { } bool fpattern::generate_all3() { + + reg3::generate_fulls(); + matrices.clear(); matcode.clear(); add1(Id); @@ -489,7 +493,6 @@ bool fpattern::generate_all3() { } int fpattern::solve3() { - reg3::generate_cellrotations(); reg3::construct_relations(); DEBB(DF_FIELD, ("generating isometries for ", Field)); @@ -551,6 +554,13 @@ int fpattern::solve3() { return cmb; } +void fpattern::set_field(int p, int sq) { + Prime = p; + Field = sq ? Prime*Prime : Prime; + wsquare = sq; + for(int a=0; a