// this script computes all cyclic rotation groups // for genus 2 <= sigma <= 13 filetitle := "Classification of Cyclic Triangular Actions on Sufaces from Genus 2 to 13"; SetLogFile("cyclic.log":Overwrite := true); FW := Open("cyclic.act","w"); FWR := Open("cyclic.rez","w"); print filetitle; fprintf FW, "%o \n", filetitle; multiactions := []; groupBDpairsingenus := []; kaleidoactionsingenus := []; nonkaleidoactionsingenus := []; actionsingenus := []; totalgroupBDpairs := 0; totalkaleidoactions := 0; totalnonkaleidoactions := 0; totalactions := 0; load "tileclass.mgm"; for n := 2 to 13 do fname := "zpolybd_sig"*IntegerToString(n)*"_tau0_t3.bdat"; print " "; print "********** working on " cat fname; print " "; FR := Open(fname, "r"); Insert(~groupBDpairsingenus,n,[n,0]); Insert(~actionsingenus,n,[n,0]); Insert(~kaleidoactionsingenus,n,[n,0]); Insert(~nonkaleidoactionsingenus,n,[n,0]); repeat s := Gets(FR); if not IsEof(s) then sig, g, ords, note := ParseBData(s); if Position(note,"is_cyclic")+Position(note,"possibly_cyclic") gt 0 then print " ... ", note; print "cyclic group of order", g; triset, normforms := CyclicGroupTriples(sig,g,ords); print " "; if #normforms gt 0 then fprintf FW, "\n \n"; fprintf FW, "bdata: %2o,%3o, %o \n", sig, g, ords; fprintf FW, "G = cyclic group Z_%-2o \n", g; fprintf FW, "%-2o generating vector(s)\n", #normforms; fprintf FW, "%o \n", normforms; if IsDefined(multiactions,#normforms) then multiactions[#normforms] := [#normforms, multiactions[#normforms][2]+1]; else Insert(~multiactions,#normforms,[#normforms,1]); end if; groupBDpairsingenus[n] := [n, groupBDpairsingenus[n][2]+1]; kal :=0; nkal :=0; for x in normforms do if x[2] eq true then kal := kal +1; else nkal := nkal +1; end if; end for; kaleidoactionsingenus[n] := [n,kaleidoactionsingenus[n][2]+kal]; nonkaleidoactionsingenus[n] := [n,nonkaleidoactionsingenus[n][2]+nkal]; actionsingenus[n] := [n,kaleidoactionsingenus[n][2]+nonkaleidoactionsingenus[n][2]]; totalgroupBDpairs := totalgroupBDpairs +1; totalkaleidoactions := totalkaleidoactions + kal; totalnonkaleidoactions := totalnonkaleidoactions + nkal; totalactions := totalkaleidoactions + totalnonkaleidoactions; fprintf FWR, "%2o %3o %14o Z_%-2o %2o %2o %2o \n", sig, g, ords,g,kal,nkal, kal+nkal; end if; end if; end if; until IsEof(s); end for; print " "; print "done computing, summary information to follow"; print "total groupBDpairs: ", totalgroupBDpairs; print "total actions : ", totalactions; print "total kaleidoscopic actions: ", totalkaleidoactions; print "total non kaleidoscopic actions: ", totalnonkaleidoactions; print "multiple actions: ", multiactions; print "groupBDpairs in genus: ", groupBDpairsingenus; print "actions in genus: ", actionsingenus; print "kaleidoscopic actions in genus: ", kaleidoactionsingenus; print "non-kaleidoscopic actions in genus: ", nonkaleidoactionsingenus; fprintf FW, " \n ### summary #### \n"; fprintf FW, "total groupBDpairs: %o \n\n", totalgroupBDpairs; fprintf FW, "total actions: %o \n\n", totalactions; fprintf FW, "total kaleidoscopic actions: %o \n\n", totalkaleidoactions; fprintf FW, "total non-kaleidoscopic actions: %o \n\n", totalnonkaleidoactions; fprintf FW, "multiple actions: %o \n\n", multiactions; fprintf FW, "groupBDpairs in genus: %o \n\n", groupBDpairsingenus; fprintf FW, "actions in genus: %o \n\n", actionsingenus; fprintf FW, "kaleidoscopic actions in genus: %o \n\n", kaleidoactionsingenus; fprintf FW, "non-kaleidoscopic actions in genus: %o \n\n", nonkaleidoactionsingenus; delete FW; delete FWR; UnsetLogFile();