#include "rep.h" int main(void) { init_rep(); //test the inverse function for(int i1 = 0; i1<18; i1++) { for(int i2 = 0; i2<18; i2++) { for(int i3 = 0; i3<18; i3++) { for(int i4 = 0; i4<18; i4++) { for(int j1 = 0; j1<24; j1++) { //find the cyclic subgroup generated by this element int el[5]; int elpow[5]; el[0] = i1; el[1] = i2; el[2] = i3; el[3] = i4; el[4] = j1; int invt[5]; inverse(el, invt); int idt[5]; perform_groupop(el, invt, idt); int realid[5] = {0, 0, 0, 0, 0}; if(!is_same(idt, realid)) { printf("element is "); print_groupelem(el); printf(" invt is "); print_groupelem(invt); print_groupelem(idt); printf("ERROR in inv %d, %d, %d, %d, %d\n", i1, i2, i3, i4, j1); exit(-1); } } } } } } exit(0); for(int i1 = 0; i1<18; i1++) { for(int i2 = 0; i2<18; i2++) { for(int i3 = 0; i3<18; i3++) { for(int i4 = 0; i4<18; i4++) { for(int j1 = 0; j1<24; j1++) { //find the cyclic subgroup generated by this element int el[5]; int elpow[5]; el[0] = i1; el[1] = i2; el[2] = i3; el[3] = i4; el[4] = j1; elpow[0] = i1; elpow[1] = i2; elpow[2] = i3; elpow[3] = i4; elpow[4] = j1; int cycsz = 0; do { perform_groupop(el, elpow, elpow); cycsz++; }while(!is_same(el, elpow)); printf("i1 = %2d, i2 = %2d, i3 = %2d, i4 = %2d, j1 = %2d, cycsz = %4d\r", i1, i2, i3, i4, j1, cycsz); char ofilename[32]; snprintf(ofilename, sizeof(ofilename), "out-%07d.dat", cycsz); fflush(stdout); FILE *of = fopen(ofilename, "a+"); fprintf(of, "%d, %d, %d, %d, %d, %d\n", i1, i2, i3, i4, j1, cycsz); fclose(of); } } } } } exit(0); }