66 lines
1.8 KiB
C++
66 lines
1.8 KiB
C++
#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);
|
|
}
|