oddcycle_shannon_capacity/code/gencyc.cpp

66 lines
1.8 KiB
C++
Raw Normal View History

2017-07-01 09:49:30 +00:00
#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);
}