D:\MathTool\gaptool>mr 3 1 2 2 17 0
cnt=512
2->[[0,0,0],[0,0,0],[0,1,0]]
17->[[0,0,0],[0,1,0],[0,0,1]]
0->[[0,0,0],[0,0,0],[0,0,0]]
}else if(ID==9){//R4_9
m_r=new ZmodnZ(1,2);
m_n=3;
MATRIXi8 A(3,vector
MATRIXi8 B(3,vector
MATRIXi8 C(3,vector
A[0][0]=0;
A[0][1]=0;
A[0][2]=0;
A[1][0]=0;
A[1][1]=0;
A[1][2]=0;
A[2][0]=0;
A[2][1]=1;
A[2][2]=0;
B[0][0]=0;
B[0][1]=0;
B[0][2]=0;
B[1][0]=0;
B[1][1]=1;
B[1][2]=0;
B[2][0]=0;
B[2][1]=0;
B[2][2]=1;
C[0][0]=0;
C[0][1]=0;
C[0][2]=0;
C[1][0]=0;
C[1][1]=0;
C[1][2]=0;
C[2][0]=0;
C[2][1]=0;
C[2][2]=0;
gen.push_back(A);
gen.push_back(B);
gen.push_back(C);
D:\MathTool\gaptool>mr 3 1 2 1 2 4
cnt=512
1->[[0,0,0],[0,0,0],[0,0,1]]
2->[[0,0,0],[0,0,0],[0,1,0]]
4->[[0,0,0],[0,0,0],[1,0,0]]
}else if(ID==30){//R8_30
m_r=new ZmodnZ(1,2);
m_n=3;
MATRIXi8 A(3,vector
MATRIXi8 B(3,vector
MATRIXi8 C(3,vector
A[0][0]=0;
A[0][1]=0;
A[0][2]=0;
A[1][0]=0;
A[1][1]=0;
A[1][2]=0;
A[2][0]=0;
A[2][1]=0;
A[2][2]=1;
B[0][0]=0;
B[0][1]=0;
B[0][2]=0;
B[1][0]=0;
B[1][1]=0;
B[1][2]=0;
B[2][0]=0;
B[2][1]=1;
B[2][2]=0;
C[0][0]=0;
C[0][1]=0;
C[0][2]=0;
C[1][0]=0;
C[1][1]=0;
C[1][2]=0;
C[2][0]=1;
C[2][1]=0;
C[2][2]=0;
gen.push_back(A);
gen.push_back(B);
gen.push_back(C);
D:\MathTool\gaptool>mr 3 1 2 1 8 64
cnt=512
1->[[0,0,0],[0,0,0],[0,0,1]]
8->[[0,0,0],[0,0,1],[0,0,0]]
64->[[0,0,1],[0,0,0],[0,0,0]]
}else if(ID==43){//R8_43
m_r=new ZmodnZ(1,2);
m_n=3;
MATRIXi8 A(3,vector
MATRIXi8 B(3,vector
MATRIXi8 C(3,vector
A[0][0]=0;
A[0][1]=0;
A[0][2]=0;
A[1][0]=0;
A[1][1]=0;
A[1][2]=0;
A[2][0]=0;
A[2][1]=0;
A[2][2]=1;
B[0][0]=0;
B[0][1]=0;
B[0][2]=0;
B[1][0]=0;
B[1][1]=0;
B[1][2]=1;
B[2][0]=0;
B[2][1]=0;
B[2][2]=0;
C[0][0]=0;
C[0][1]=0;
C[0][2]=1;
C[1][0]=0;
C[1][1]=0;
C[1][2]=0;
C[2][0]=0;
C[2][1]=0;
C[2][2]=0;
gen.push_back(A);
gen.push_back(B);
gen.push_back(C);
#define USE_MNR_UINT32
#include
#include"ZmodnZ.h"
#include"M2r.h"
#include"Mnr.h"
int main(int argc, char* argv[])
{
int n=2;
int n1=1;
int n2=8;
int idx1=0;
int idx2=1;
int idx3=2;
if(argc>1)
n=atoi(argv[1]);
if(argc>2)
n1=atoi(argv[2]);
if(argc>3)
n2=atoi(argv[3]);
if(argc>4)
idx1=atoi(argv[4]);
if(argc>5)
idx2=atoi(argv[5]);
if(argc>6)
idx3=atoi(argv[6]);
ZmodnZ* r=new ZmodnZ(n1,n2);
if(n>2){
Mnr* R=new Mnr(r,n);
R->m_flag=1;
string str1=Mnr::MStr(R->m_Set[idx1]);
printf("%d->%s\n",idx1,str1.c_str());
string str2=Mnr::MStr(R->m_Set[idx2]);
printf("%d->%s\n",idx2,str2.c_str());
string str3=Mnr::MStr(R->m_Set[idx3]);
printf("%d->%s\n",idx3,str3.c_str());
vector
v.push_back(idx1);
v.push_back(idx2);
v.push_back(idx3);
Subring S(R,v);
int ID=IdRing(&S);
cout<<"}else if(ID=="<
R=NULL;
}else{
M2r* R=new M2r(r);
R->m_flag=1;
string str1=M2r::MStr(R->m_Set[idx1]);
printf("%d->%s\n",idx1,str1.c_str());
string str2=M2r::MStr(R->m_Set[idx2]);
printf("%d->%s\n",idx2,str2.c_str());
string str3=M2r::MStr(R->m_Set[idx3]);
printf("%d->%s\n",idx3,str3.c_str());
vector
v.push_back(idx1);
v.push_back(idx2);
v.push_back(idx3);
Subring S(R,v);
int ID=IdRing(&S);
cout<<"}else if(ID=="<
for(int j=0;j<2;j++)
cout<<"A["<m_Set[idx1][i][j]<<";"<
for(int j=0;j<2;j++)
cout<<"B["<m_Set[idx2][i][j]<<";"<
for(int j=0;j<2;j++)
cout<<"C["<m_Set[idx3][i][j]<<";"<
R=NULL;
}
return 0;
}