D:\MathTool\gaptool>G24
GAP[24,1]:
N0=1,1,2,2,2,12,4,0
S2=0,1,3,5,11,66,46,144
kKEZDCANS=12,[4,4,4,0,0,0,0,0],24,4,3,0,0,0,1
I1I2=[[1,1,1],[2,1,1],[3,1,2],[4,1,2],[6,2,2],[8,1,12],[12,2,4]],[[2,1,1],[3,1,3],[4,1,5],[6,2,11],[8,1,66],[12,2,46]]
Center(GAP[24,1])=GAP[4,1]
DerivedSubgroup(GAP[24,1])=GAP[3,1]
PZ(GAP[24,1])=GAP[6,1]
PD(GAP[24,1])=GAP[8,1]
GAP[24,2]:
N0=1,1,2,2,2,4,4,8
S2=0,1,3,5,11,22,46,188
kKEZDCANS=24,[24,0,0,0,0,0,0,0],24,24,1,1,1,1,1
I1I2=[[1,1,1],[2,1,1],[3,1,2],[4,1,2],[6,2,2],[8,1,4],[12,2,4]],[[2,1,1],[3,1,3],[4,1,5],[6,2,11],[8,1,22],[12,2,46]]
Center(GAP[24,2])=GAP[24,2]
DerivedSubgroup(GAP[24,2])=GAP[1,1]
PZ(GAP[24,2])=GAP[1,1]
PD(GAP[24,2])=GAP[24,2]
GAP[24,3]:
N0=1,1,8,6,8,0,0,0
S2=0,1,12,15,44,12,0,192
kKEZDCANS=7,[2,0,0,4,1,0,0,0],12,2,8,0,0,0,1
I1I2=[[1,1,1],[2,1,1],[3,1,8],[4,1,6],[6,2,8]],[[2,1,1],[3,1,12],[4,1,15],[6,2,44],[8,4,12]]
Center(GAP[24,3])=GAP[2,1]
DerivedSubgroup(GAP[24,3])=GAP[8,4]
PZ(GAP[24,3])=GAP[12,3]
PD(GAP[24,3])=GAP[3,1]
GAP[24,4]:
N0=1,1,2,14,2,0,4,0
S2=0,1,3,35,11,36,118,72
kKEZDCANS=9,[2,5,0,0,2,0,0,0],12,2,6,0,0,0,1
I1I2=[[1,1,1],[2,1,1],[3,1,2],[4,1,14],[6,2,2],[12,2,4]],[[2,1,1],[3,1,3],[4,1,35],[6,2,11],[8,4,36],[12,1,72],[12,2,46]]
Center(GAP[24,4])=GAP[2,1]
DerivedSubgroup(GAP[24,4])=GAP[6,2]
PZ(GAP[24,4])=GAP[12,4]
PD(GAP[24,4])=GAP[4,2]
GAP[24,5]:
N0=1,7,2,8,2,0,4,0
S2=0,7,3,29,29,36,100,72
kKEZDCANS=12,[4,4,4,0,0,0,0,0],12,4,3,0,0,0,1
I1I2=[[1,1,1],[2,1,7],[3,1,2],[4,1,8],[6,2,2],[12,2,4]],[[2,1,7],[3,1,3],[4,1,20],[4,2,9],[6,1,18],[6,2,11],[8,2,36],[12,1,36],[12,2,46],[12,4,18]]
Center(GAP[24,5])=GAP[4,1]
DerivedSubgroup(GAP[24,5])=GAP[3,1]
PZ(GAP[24,5])=GAP[6,1]
PD(GAP[24,5])=GAP[8,2]
GAP[24,6]:
N0=1,13,2,2,2,0,4,0
S2=0,13,3,23,47,36,82,72
kKEZDCANS=9,[2,5,0,0,2,0,0,0],12,2,6,0,0,0,1
I1I2=[[1,1,1],[2,1,13],[3,1,2],[4,1,2],[6,2,2],[12,2,4]],[[2,1,13],[3,1,3],[4,1,5],[4,2,18],[6,1,36],[6,2,11],[8,3,36],[12,2,46],[12,4,36]]
Center(GAP[24,6])=GAP[2,1]
DerivedSubgroup(GAP[24,6])=GAP[6,2]
PZ(GAP[24,6])=GAP[12,4]
PD(GAP[24,6])=GAP[4,2]
GAP[24,7]:
N0=1,3,2,12,6,0,0,0
S2=0,3,3,33,33,36,96,72
kKEZDCANS=12,[4,4,4,0,0,0,0,0],12,4,3,0,0,0,1
I1I2=[[1,1,1],[2,1,3],[3,1,2],[4,1,12],[6,2,6]],[[2,1,3],[3,1,3],[4,1,30],[4,2,3],[6,2,33],[8,2,36],[12,1,72],[12,5,24]]
Center(GAP[24,7])=GAP[4,2]
DerivedSubgroup(GAP[24,7])=GAP[3,1]
PZ(GAP[24,7])=GAP[6,1]
PD(GAP[24,7])=GAP[8,2]
GAP[24,8]:
N0=1,9,2,6,6,0,0,0
S2=0,9,3,27,51,36,78,72
kKEZDCANS=9,[2,5,0,0,2,0,0,0],12,2,6,0,0,0,1
I1I2=[[1,1,1],[2,1,9],[3,1,2],[4,1,6],[6,2,6]],[[2,1,9],[3,1,3],[4,1,15],[4,2,12],[6,1,18],[6,2,33],[8,3,36],[12,1,36],[12,4,18],[12,5,24]]
Center(GAP[24,8])=GAP[2,1]
DerivedSubgroup(GAP[24,8])=GAP[6,2]
PZ(GAP[24,8])=GAP[12,4]
PD(GAP[24,8])=GAP[4,2]
GAP[24,9]:
N0=1,3,2,4,6,0,8,0
S2=0,3,3,13,33,12,116,96
kKEZDCANS=24,[24,0,0,0,0,0,0,0],12,24,1,0,1,1,1
I1I2=[[1,1,1],[2,1,3],[3,1,2],[4,1,4],[6,2,6],[12,2,8]],[[2,1,3],[3,1,3],[4,1,10],[4,2,3],[6,2,33],[8,2,12],[12,2,92],[12,5,24]]
Center(GAP[24,9])=GAP[24,9]
DerivedSubgroup(GAP[24,9])=GAP[1,1]
PZ(GAP[24,9])=GAP[1,1]
PD(GAP[24,9])=GAP[24,9]
GAP[24,10]:
N0=1,5,2,2,10,0,4,0
S2=0,5,3,11,55,12,94,96
kKEZDCANS=15,[6,9,0,0,0,0,0,0],12,6,2,0,0,1,1
I1I2=[[1,1,1],[2,1,5],[3,1,2],[4,1,2],[6,2,10],[12,2,4]],[[2,1,5],[3,1,3],[4,1,5],[4,2,6],[6,2,55],[8,3,12],[12,2,46],[12,5,48]]
Center(GAP[24,10])=GAP[6,2]
DerivedSubgroup(GAP[24,10])=GAP[2,1]
PZ(GAP[24,10])=GAP[4,2]
PD(GAP[24,10])=GAP[12,5]
GAP[24,11]:
N0=1,1,2,6,2,0,12,0
S2=0,1,3,15,11,12,138,96
kKEZDCANS=15,[6,9,0,0,0,0,0,0],12,6,2,0,0,1,1
I1I2=[[1,1,1],[2,1,1],[3,1,2],[4,1,6],[6,2,2],[12,2,12]],[[2,1,1],[3,1,3],[4,1,15],[6,2,11],[8,4,12],[12,2,138]]
Center(GAP[24,11])=GAP[6,2]
DerivedSubgroup(GAP[24,11])=GAP[2,1]
PZ(GAP[24,11])=GAP[4,2]
PD(GAP[24,11])=GAP[12,5]
GAP[24,12]:
N0=1,9,8,6,0,0,0,0
S2=0,9,12,27,36,36,48,108
kKEZDCANS=5,[1,0,1,0,2,1,0,0],12,1,12,0,0,0,1
I1I2=[[1,1,1],[2,1,9],[3,1,8],[4,1,6]],[[2,1,9],[3,1,12],[4,1,15],[4,2,12],[6,1,36],[8,3,36],[12,3,48]]
Center(GAP[24,12])=GAP[1,1]
DerivedSubgroup(GAP[24,12])=GAP[12,3]
PZ(GAP[24,12])=GAP[24,12]
PD(GAP[24,12])=GAP[2,1]
GAP[24,13]:
N0=1,7,8,0,8,0,0,0
S2=0,7,12,21,44,0,48,144
kKEZDCANS=8,[2,0,2,4,0,0,0,0],6,2,4,0,0,0,1
I1I2=[[1,1,1],[2,1,7],[3,1,8],[6,2,8]],[[2,1,7],[3,1,12],[4,2,21],[6,2,44],[12,3,48]]
Center(GAP[24,13])=GAP[2,1]
DerivedSubgroup(GAP[24,13])=GAP[4,2]
PZ(GAP[24,13])=GAP[12,3]
PD(GAP[24,13])=GAP[6,2]
GAP[24,14]:
N0=1,15,2,0,6,0,0,0
S2=0,15,3,57,69,0,132,0
kKEZDCANS=12,[4,4,4,0,0,0,0,0],6,4,3,0,0,0,1
I1I2=[[1,1,1],[2,1,15],[3,1,2],[6,2,6]],[[2,1,15],[3,1,3],[4,2,57],[6,1,36],[6,2,33],[12,4,108],[12,5,24]]
Center(GAP[24,14])=GAP[4,2]
DerivedSubgroup(GAP[24,14])=GAP[3,1]
PZ(GAP[24,14])=GAP[6,1]
PD(GAP[24,14])=GAP[8,5]
GAP[24,15]:
N0=1,7,2,0,14,0,0,0
S2=0,7,3,21,77,0,168,0
kKEZDCANS=24,[24,0,0,0,0,0,0,0],6,24,1,0,1,1,1
I1I2=[[1,1,1],[2,1,7],[3,1,2],[6,2,14]],[[2,1,7],[3,1,3],[4,2,21],[6,2,77],[12,5,168]]
Center(GAP[24,15])=GAP[24,15]
DerivedSubgroup(GAP[24,15])=GAP[1,1]
PZ(GAP[24,15])=GAP[1,1]
PD(GAP[24,15])=GAP[24,15]
#include "FiniteGroup.h"
#include "quotientGroup.h"
#include <fstream>
#include <complex>
using namespace std;
IGroup* newG24(int i){
//int IDs[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int IDs[]={4,1,5,6,7,8,9,10,2,11,12,13,14,15,3};
int cnt=sizeof(IDs)/sizeof(IDs[0]);
if(i<=0||i>cnt)
return NULL;
int iElem;
int sum=0;
char sz[40]={0};
sprintf(sz,"G24_%d.txt",IDs[i-1]);
ifstream fin(sz);
int *g_G24Mul=new int[576];
while( !fin.eof() && sum<24*24) {
fin >> iElem;
sum++;
int i=(sum-1)/24;
int j=(sum-1)%24;
*(g_G24Mul+i*24+j)=iElem-1;
}
fin.close();
FiniteGroup *g=new FiniteGroup(24,g_G24Mul,0);
g->m_flag=1;
return g;
}
void print(IGroup* g){
int ID=IdGroup(g);
string N0=calcN0(g);
string S2=calcS2(g);
string kKEZDCANS=calckKEZDCANS(g);
printf("GAP[%d,%d]:\n",g->size(),ID);
printf("N0=%s\n",N0.c_str());
printf("S2=%s\n",S2.c_str());
printf("kKEZDCANS=%s\n",kKEZDCANS.c_str());
string I1=calcI1(g);
string I2=calcI2(g);
printf("I1I2=%s,%s\n",I1.c_str(),I2.c_str());
vector<int> z=CenterOfG(g);
vector<int> d=commutatorOfG(g);
Subgroup Z(g,z);
Subgroup D(g,d);
int ZID=IdGroup(&Z);
int DID=IdGroup(&D);
printf("Center(GAP[%d,%d])=GAP[%d,%d]\n",g->size(),ID,Z.size(),ZID);
printf("DerivedSubgroup(GAP[%d,%d])=GAP[%d,%d]\n",g->size(),ID,D.size(),DID);
quotientGroup PZ(g,z);
quotientGroup PD(g,d);
int PZID=IdGroup(&PZ);
int PDID=IdGroup(&PD);
printf("PZ(GAP[%d,%d])=GAP[%d,%d]\n",g->size(),ID,PZ.size(),PZID);
printf("PD(GAP[%d,%d])=GAP[%d,%d]\n",g->size(),ID,PD.size(),PDID);
printf("\n");
}
int main(int argc, char* argv[])
{
for(int i=1;i<=15;i++){
IGroup* g=newG24(i);
if(g){
int ID=IdGroup(g);
print(g);
delete g;
g=NULL;
}
}
return 0;
}