gaptool的lua調用c接口版本

D:\hxh\bin\LUA資料\LUA\luatest\luatest>math test1.lua
羣GAP[8,1]的結構不變量N0=[1,1,2,4]
羣GAP[8,1]的結構不變量N0=[1,1,2,4]
羣GAP[8,2]的結構不變量N0=[1,3,4,0]
羣GAP[8,2]的結構不變量N0=[1,3,4,0]
羣GAP[8,5]的結構不變量N0=[1,7,0,0]
羣GAP[8,3]的結構不變量N0=[1,5,2,0]
羣GAP[8,4]的結構不變量N0=[1,1,6,0]
羣GAP[12,1]的結構不變量N0=[1,1,2,6,2,0]
羣GAP[12,2]的結構不變量N0=[1,1,2,2,2,4]
羣GAP[12,3]的結構不變量N0=[1,3,8,0,0,0]
羣GAP[12,4]的結構不變量N0=[1,7,2,0,2,0]
羣GAP[12,5]的結構不變量N0=[1,3,2,0,6,0]

g_C8Mul={
    {0, 1, 2, 3, 4, 5, 6, 7},
    {1, 0, 3, 2, 5, 4, 7, 6},
    {2, 3, 1, 0, 6, 7, 5, 4},
    {3, 2, 0, 1, 7, 6, 4, 5},
    {4, 5, 6, 7, 2, 3, 1, 0},
    {5, 4, 7, 6, 3, 2, 0, 1},
    {6, 7, 5, 4, 1, 0, 3, 2},
    {7, 6, 4, 5, 0, 1, 2, 3}
}
local calN0C8=calN0("g_C8Mul","GAP[8,1]",1)
print(calN0C8)

g_C8Mul_2={
    {0,1,2,3,4,5,6,7},
    {1,2,3,4,5,6,7,0},
    {2,3,4,5,6,7,0,1},
    {3,4,5,6,7,0,1,2},
    {4,5,6,7,0,1,2,3},
    {5,6,7,0,1,2,3,4},
    {6,7,0,1,2,3,4,5},
    {7,0,1,2,3,4,5,6}
}
calN0C8=calN0("g_C8Mul_2","GAP[8,1]",1)
print(calN0C8)

g_C2C4Mul={
    {0, 1, 2, 3, 4, 5, 6, 7},
    {1, 0, 3, 2, 5, 4, 7, 6},
    {2, 3, 0, 1, 6, 7, 4, 5},
    {3, 2, 1, 0, 7, 6, 5, 4},
    {4, 5, 6, 7, 1, 0, 3, 2},
    {5, 4, 7, 6, 0, 1, 2, 3},
    {6, 7, 4, 5, 3, 2, 1, 0},
    {7, 6, 5, 4, 2, 3, 0, 1}
}
local calN0C2C4=calN0("g_C2C4Mul","GAP[8,2]",1)
print(calN0C2C4)

g_C2C4Mul_2={
    {0,1,2,3,4,5,6,7},
    {1,4,7,2,5,0,3,6},
    {2,7,4,1,6,3,0,5},
    {3,2,1,0,7,6,5,4},
    {4,5,6,7,0,1,2,3},
    {5,0,3,6,1,4,7,2},
    {6,3,0,5,2,7,4,1},
    {7,6,5,4,3,2,1,0}
}
calN0C2C4=calN0("g_C2C4Mul_2","GAP[8,2]",1)
print(calN0C2C4)

g_C2C2C2Mul={
    {0, 1, 2, 3, 4, 5, 6, 7},
    {1, 0, 3, 2, 5, 4, 7, 6},
    {2, 3, 0, 1, 6, 7, 4, 5},
    {3, 2, 1, 0, 7, 6, 5, 4},
    {4, 5, 6, 7, 0, 1, 2, 3},
    {5, 4, 7, 6, 1, 0, 3, 2},
    {6, 7, 4, 5, 2, 3, 0, 1},
    {7, 6, 5, 4, 3, 2, 1, 0}
}
calN0E8=calN0("g_C2C2C2Mul","GAP[8,5]",1)
print(calN0E8)

g_D4Mul={
    {0, 1, 2, 3, 4, 5, 6, 7},
    {1, 0, 3, 2, 5, 4, 7, 6},
    {2, 3, 0, 1, 7, 6, 5, 4},
    {3, 2, 1, 0, 6, 7, 4, 5},
    {4, 5, 6, 7, 0, 1, 2, 3},
    {5, 4, 7, 6, 1, 0, 3, 2},
    {6, 7, 4, 5, 3, 2, 1, 0},
    {7, 6, 5, 4, 2, 3, 0, 1}
}
calN0D4=calN0("g_D4Mul","GAP[8,3]",1)
print(calN0D4)

g_Q8Mul={
    {0, 1, 2, 3, 4, 5, 6, 7},
    {1, 0, 3, 2, 5, 4, 7, 6},
    {2, 3, 1, 0, 7, 6, 4, 5},
    {3, 2, 0, 1, 6, 7, 5, 4},
    {4, 5, 6, 7, 1, 0, 3, 2},
    {5, 4, 7, 6, 0, 1, 2, 3},
    {6, 7, 5, 4, 2, 3, 1, 0},
    {7, 6, 4, 5, 3, 2, 0, 1}
}
calN0Q8=calN0("g_Q8Mul","GAP[8,4]",1)
print(calN0Q8)

G12_1={
    {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 },
    {2, 3, 1, 5, 6, 4, 9, 7, 8, 12, 10, 11 },
    {3, 1, 2, 6, 4, 5, 8, 9, 7, 11, 12, 10 },
    {4, 5, 6, 1, 2, 3, 10, 11, 12, 7, 8, 9 },
    {5, 6, 4, 2, 3, 1, 12, 10, 11, 9, 7, 8 },
    { 6, 4, 5, 3, 1, 2, 11, 12, 10, 8, 9, 7 },
    { 7, 8, 9, 10, 11, 12, 4, 5, 6, 1, 2, 3 },
    { 8, 9, 7, 11, 12, 10, 6, 4, 5, 3, 1, 2 },
    { 9, 7, 8, 12, 10, 11, 5, 6, 4, 2, 3, 1 },
    { 10, 11, 12, 7, 8, 9, 1, 2, 3, 4, 5, 6 },
    { 11, 12, 10, 8, 9, 7, 3, 1, 2, 6, 4, 5 },
    { 12, 10, 11, 9, 7, 8, 2, 3, 1, 5, 6, 4 }
}

G12_2={
    {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 },
    {2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11 },
    {3, 4, 5, 6, 1, 2, 9, 10, 11, 12, 7, 8 },
    {4, 3, 6, 5, 2, 1, 10, 9, 12, 11, 8, 7 },
    {5, 6, 1, 2, 3, 4, 11, 12, 7, 8, 9, 10 },
    {6, 5, 2, 1, 4, 3, 12, 11, 8, 7, 10, 9},
    {7, 8, 9, 10, 11, 12, 2, 1, 4, 3, 6, 5},
    {8, 7, 10, 9, 12, 11, 1, 2, 3, 4, 5, 6},
    {9, 10, 11, 12, 7, 8, 4, 3, 6, 5, 2, 1},
    {10, 9, 12, 11, 8, 7, 3, 4, 5, 6, 1, 2},
    {11, 12, 7, 8, 9, 10, 6, 5, 2, 1, 4, 3},
    {12, 11, 8, 7, 10, 9, 5, 6, 1, 2, 3, 4}
}

G12_3={
    {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 },
    {2, 1, 4, 3, 8, 7, 6, 5, 11, 12, 9, 10 },
    {3, 4, 1, 2, 6, 5, 8, 7, 12, 11, 10, 9 },
    {4, 3, 2, 1, 7, 8, 5, 6, 10, 9, 12, 11 },
    {5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4 },
    {6, 5, 8, 7, 12, 11, 10, 9, 3, 4, 1, 2},
    {7, 8, 5, 6, 10, 9, 12, 11, 4, 3, 2, 1},
    {8, 7, 6, 5, 11, 12, 9, 10, 2, 1, 4, 3},
    {9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8},
    {10, 9, 12, 11, 4, 3, 2, 1, 7, 8, 5, 6},
    {11, 12, 9, 10, 2, 1, 4, 3, 8, 7, 6, 5},
    {12, 11, 10, 9, 3, 4, 1, 2, 6, 5, 8, 7}
}

G12_4={
    {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 },
    {2, 3, 1, 5, 6, 4, 9, 7, 8, 12, 10, 11  },
    {3, 1, 2, 6, 4, 5, 8, 9, 7, 11, 12, 10 },
    {4, 5, 6, 1, 2, 3, 10, 11, 12, 7, 8, 9 },
    {5, 6, 4, 2, 3, 1, 12, 10, 11, 9, 7, 8 },
    {6, 4, 5, 3, 1, 2, 11, 12, 10, 8, 9, 7},
    {7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6},
    {8, 9, 7, 11, 12, 10, 3, 1, 2, 6, 4, 5},
    {9, 7, 8, 12, 10, 11, 2, 3, 1, 5, 6, 4},
    {10, 11, 12, 7, 8, 9, 4, 5, 6, 1, 2, 3},
    {11, 12, 10, 8, 9, 7, 6, 4, 5, 3, 1, 2},
    {12, 10, 11, 9, 7, 8, 5, 6, 4, 2, 3, 1}
}

G12_5={
    {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 },
    {2, 3, 1, 5, 6, 4, 8, 9, 7, 11, 12, 10 },
    {3, 1, 2, 6, 4, 5, 9, 7, 8, 12, 10, 11 },
    {4, 5, 6, 1, 2, 3, 10, 11, 12, 7, 8, 9 },
    {5, 6, 4, 2, 3, 1, 11, 12, 10, 8, 9, 7 },
    {6, 4, 5, 3, 1, 2, 12, 10, 11, 9, 7, 8},
    {7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6 },
    {8, 9, 7, 11, 12, 10, 2, 3, 1, 5, 6, 4},
    {9, 7, 8, 12, 10, 11, 3, 1, 2, 6, 4, 5},
    {10, 11, 12, 7, 8, 9, 4, 5, 6, 1, 2, 3},
    {11, 12, 10, 8, 9, 7, 5, 6, 4, 2, 3, 1},
    {12, 10, 11, 9, 7, 8, 6, 4, 5, 3, 1, 2}
}

for i=1,5 do
    calN0G12_i=calN0("G12_"..i,"GAP[12,"..i.."]",0)
    print(calN0G12_i)
end

D:\hxh\bin\LUA資料\LUA\luatest\luatest>math test1.lua
The average is  30
The sum is      150
R2_1=M_2:
[R2Add]
1 2
2 1
[R2Mul]
1 1
1 1

R2_2=F_2:
[R2Add]
1 2
2 1
[R2Mul]
1 1
1 2

R3_1=M_3:
[R3Add]
1 2 3
2 3 1
3 1 2
[R3Mul]
1 1 1
1 1 1
1 1 1

R3_2=F_3:
[R3Add]
1 2 3
2 3 1
3 1 2
[R3Mul]
1 1 1
1 2 3
1 3 2

R2_1×R2_1:
[R4Add]
1 2 3 4
2 1 4 3
3 4 1 2
4 3 2 1
[R4Mul]
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
R2_1×R2_2:
[R4Add]
1 2 3 4
2 1 4 3
3 4 1 2
4 3 2 1
[R4Mul]
1 1 1 1
1 2 1 2
1 1 1 1
1 2 1 2
R2_1×R3_1:
[R6Add]
1 2 3 4 5 6
2 3 1 5 6 4
3 1 2 6 4 5
1 2 3 1 2 3
2 3 1 2 3 1
3 1 2 3 1 2
[R6Mul]
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
R2_1×R3_2:
[R6Add]
1 2 3 4 5 6
2 3 1 5 6 4
3 1 2 6 4 5
1 2 3 1 2 3
2 3 1 2 3 1
3 1 2 3 1 2
[R6Mul]
1 1 1 1 1 1
1 2 3 1 2 3
1 3 2 1 3 2
1 1 1 1 1 1
1 2 3 1 2 3
1 3 2 1 3 2
R2_2×R2_2:
[R4Add]
1 2 3 4
2 1 4 3
3 4 1 2
4 3 2 1
[R4Mul]
1 1 1 1
1 2 1 2
1 1 3 3
1 2 3 4
R2_2×R3_2:
[R6Add]
1 2 3 4 5 6
2 3 1 5 6 4
3 1 2 6 4 5
1 2 3 1 2 3
2 3 1 2 3 1
3 1 2 3 1 2
[R6Mul]
1 1 1 1 1 1
1 2 3 1 2 3
1 3 2 1 3 2
4 4 4 1 1 1
4 5 6 1 2 3
4 6 5 1 3 2
R3_1×R3_1:
[R9Add]
1 2 3 4 5 6 7 8 9
2 3 1 5 6 4 8 9 7
3 1 2 6 4 5 9 7 8
4 5 6 7 8 9 1 2 3
5 6 4 8 9 7 2 3 1
6 4 5 9 7 8 3 1 2
7 8 9 1 2 3 4 5 6
8 9 7 2 3 1 5 6 4
9 7 8 3 1 2 6 4 5
[R9Mul]
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
R3_1×R3_2:
[R9Add]
1 2 3 4 5 6 7 8 9
2 3 1 5 6 4 8 9 7
3 1 2 6 4 5 9 7 8
4 5 6 7 8 9 1 2 3
5 6 4 8 9 7 2 3 1
6 4 5 9 7 8 3 1 2
7 8 9 1 2 3 4 5 6
8 9 7 2 3 1 5 6 4
9 7 8 3 1 2 6 4 5
[R9Mul]
1 1 1 1 1 1 1 1 1
1 2 3 1 2 3 1 2 3
1 3 2 1 3 2 1 3 2
1 1 1 1 1 1 1 1 1
1 2 3 1 2 3 1 2 3
1 3 2 1 3 2 1 3 2
1 1 1 1 1 1 1 1 1
1 2 3 1 2 3 1 2 3
1 3 2 1 3 2 1 3 2
R3_2×R3_2:
[R9Add]
1 2 3 4 5 6 7 8 9
2 3 1 5 6 4 8 9 7
3 1 2 6 4 5 9 7 8
4 5 6 7 8 9 1 2 3
5 6 4 8 9 7 2 3 1
6 4 5 9 7 8 3 1 2
7 8 9 1 2 3 4 5 6
8 9 7 2 3 1 5 6 4
9 7 8 3 1 2 6 4 5
[R9Mul]
1 1 1 1 1 1 1 1 1
1 2 3 1 2 3 1 2 3
1 3 2 1 3 2 1 3 2
1 1 1 4 4 4 7 7 7
1 2 3 4 5 6 7 8 9
1 3 2 4 6 5 7 9 8
1 1 1 7 7 7 4 4 4
1 2 3 7 8 9 4 5 6
1 3 2 7 9 8 4 6 5
int g_R2_1R2_1Add[4][4]={
{0,1,2,3},
{1,0,3,2},
{2,3,0,1},
{3,2,1,0},
};
int g_R2_1R2_1Mul[4][4]={
{0,0,0,0},
{0,0,0,0},
{0,0,0,0},
{0,0,0,0},
};
int g_R2_1R2_2Add[4][4]={
{0,1,2,3},
{1,0,3,2},
{2,3,0,1},
{3,2,1,0},
};
int g_R2_1R2_2Mul[4][4]={
{0,0,0,0},
{0,1,0,1},
{0,0,0,0},
{0,1,0,1},
};
int g_R2_1R3_1Add[6][6]={
{0,1,2,3,4,5},
{1,2,0,4,5,3},
{2,0,1,5,3,4},
{0,1,2,0,1,2},
{1,2,0,1,2,0},
{2,0,1,2,0,1},
};
int g_R2_1R3_1Mul[6][6]={
{0,0,0,0,0,0},
{0,0,0,0,0,0},
{0,0,0,0,0,0},
{0,0,0,0,0,0},
{0,0,0,0,0,0},
{0,0,0,0,0,0},
};
int g_R2_1R3_2Add[6][6]={
{0,1,2,3,4,5},
{1,2,0,4,5,3},
{2,0,1,5,3,4},
{0,1,2,0,1,2},
{1,2,0,1,2,0},
{2,0,1,2,0,1},
};
int g_R2_1R3_2Mul[6][6]={
{0,0,0,0,0,0},
{0,1,2,0,1,2},
{0,2,1,0,2,1},
{0,0,0,0,0,0},
{0,1,2,0,1,2},
{0,2,1,0,2,1},
};
int g_R2_2R2_2Add[4][4]={
{0,1,2,3},
{1,0,3,2},
{2,3,0,1},
{3,2,1,0},
};
int g_R2_2R2_2Mul[4][4]={
{0,0,0,0},
{0,1,0,1},
{0,0,2,2},
{0,1,2,3},
};
int g_R2_2R3_2Add[6][6]={
{0,1,2,3,4,5},
{1,2,0,4,5,3},
{2,0,1,5,3,4},
{0,1,2,0,1,2},
{1,2,0,1,2,0},
{2,0,1,2,0,1},
};
int g_R2_2R3_2Mul[6][6]={
{0,0,0,0,0,0},
{0,1,2,0,1,2},
{0,2,1,0,2,1},
{3,3,3,0,0,0},
{3,4,5,0,1,2},
{3,5,4,0,2,1},
};
int g_R3_1R3_1Add[9][9]={
{0,1,2,3,4,5,6,7,8},
{1,2,0,4,5,3,7,8,6},
{2,0,1,5,3,4,8,6,7},
{3,4,5,6,7,8,0,1,2},
{4,5,3,7,8,6,1,2,0},
{5,3,4,8,6,7,2,0,1},
{6,7,8,0,1,2,3,4,5},
{7,8,6,1,2,0,4,5,3},
{8,6,7,2,0,1,5,3,4},
};
int g_R3_1R3_1Mul[9][9]={
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
};
int g_R3_1R3_2Add[9][9]={
{0,1,2,3,4,5,6,7,8},
{1,2,0,4,5,3,7,8,6},
{2,0,1,5,3,4,8,6,7},
{3,4,5,6,7,8,0,1,2},
{4,5,3,7,8,6,1,2,0},
{5,3,4,8,6,7,2,0,1},
{6,7,8,0,1,2,3,4,5},
{7,8,6,1,2,0,4,5,3},
{8,6,7,2,0,1,5,3,4},
};
int g_R3_1R3_2Mul[9][9]={
{0,0,0,0,0,0,0,0,0},
{0,1,2,0,1,2,0,1,2},
{0,2,1,0,2,1,0,2,1},
{0,0,0,0,0,0,0,0,0},
{0,1,2,0,1,2,0,1,2},
{0,2,1,0,2,1,0,2,1},
{0,0,0,0,0,0,0,0,0},
{0,1,2,0,1,2,0,1,2},
{0,2,1,0,2,1,0,2,1},
};
int g_R3_2R3_2Add[9][9]={
{0,1,2,3,4,5,6,7,8},
{1,2,0,4,5,3,7,8,6},
{2,0,1,5,3,4,8,6,7},
{3,4,5,6,7,8,0,1,2},
{4,5,3,7,8,6,1,2,0},
{5,3,4,8,6,7,2,0,1},
{6,7,8,0,1,2,3,4,5},
{7,8,6,1,2,0,4,5,3},
{8,6,7,2,0,1,5,3,4},
};
int g_R3_2R3_2Mul[9][9]={
{0,0,0,0,0,0,0,0,0},
{0,1,2,0,1,2,0,1,2},
{0,2,1,0,2,1,0,2,1},
{0,0,0,3,3,3,6,6,6},
{0,1,2,3,4,5,6,7,8},
{0,2,1,3,5,4,6,8,7},
{0,0,0,6,6,6,3,3,3},
{0,1,2,6,7,8,3,4,5},
{0,2,1,6,8,7,3,5,4},
};

-- simple test
-- call a C++ function
avg, sum=average(10, 20, 30, 40, 50)
print("The average is ", avg)
print("The sum is ", sum)
--The average is  30
--The sum is      150

function testSmallRing(delt)
    for n=2,3 do
        for id=1,2 do
        local R=smallring(n,id)
            printringtable(R,delt)
        end
    end
end
testSmallRing(1)
--testSmallRing(0)

function testDirectSum(delt)
    for n1=2,3 do
        for id1=1,2 do
            for n2=2,3 do
                for id2=1,2 do
                    if n2>=n1 and id2>=id1 then
                        local R1=smallring(n1,id1)
                        local R2=smallring(n2,id2)
                        printdirectsum(R1,R2,delt)
                    end
                end
            end
        end
    end
end
testDirectSum(1)
testDirectSum(0)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章