gaptool的lua调用c接口版本

D:\hxh\bin\LUA资料\LUA\luatest\luatest>math test1.lua
群GAP[8,1]的结构不变量N0=[1,1,2,4]是循环群(ret=31,bG=1,bC=1,bA=1,bN=1,bS=1)
群GAP[8,1]的结构不变量N0=[1,1,2,4]是循环群(ret=31,bG=1,bC=1,bA=1,bN=1,bS=1)
群GAP[8,2]的结构不变量N0=[1,3,4,0]是非循环Abel群(ret=29,bG=1,bC=0,bA=1,bN=1,bS=1)
群GAP[8,2]的结构不变量N0=[1,3,4,0]是非循环Abel群(ret=29,bG=1,bC=0,bA=1,bN=1,bS=1)
群GAP[8,5]的结构不变量N0=[1,7,0,0]是非循环Abel群(ret=29,bG=1,bC=0,bA=1,bN=1,bS=1)
群GAP[8,3]的结构不变量N0=[1,5,2,0]是非Abel幂零群(ret=25,bG=1,bC=0,bA=0,bN=1,bS=1)
群GAP[8,4]的结构不变量N0=[1,1,6,0]是非Abel幂零群(ret=25,bG=1,bC=0,bA=0,bN=1,bS=1)
群GAP[12,1]的结构不变量N0=[1,1,2,6,2,0]是非幂零可解群(ret=17,bG=1,bC=0,bA=0,bN=0,bS=1)
群GAP[12,2]的结构不变量N0=[1,1,2,2,2,4]是循环群(ret=31,bG=1,bC=1,bA=1,bN=1,bS=1)
群GAP[12,3]的结构不变量N0=[1,3,8,0,0,0]是非幂零可解群(ret=17,bG=1,bC=0,bA=0,bN=0,bS=1)
群GAP[12,4]的结构不变量N0=[1,7,2,0,2,0]是非幂零可解群(ret=17,bG=1,bC=0,bA=0,bN=0,bS=1)
群GAP[12,5]的结构不变量N0=[1,3,2,0,6,0]是非循环Abel群(ret=29,bG=1,bC=0,bA=1,bN=1,bS=1)
G12_6不是群
G16_15不是群
G16_16不是群
G6_1是非幂零可解群(ret=17,bG=1,bC=0,bA=0,bN=0,bS=1)


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}
}

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}
}

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}
}

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}
}

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}
}

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}
}

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}
}

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}
}

--[[lua5.3开始支持位操作,lua5.1中可使用c提供的位操作函数接口Xor、Add、Or
enum IsGroupEnum
{
    IsGroup_None=0,//不是群
    IsGroup_bG=0x00000001,//是群
    IsGroup_bC=0x00000002,//循环群
    IsGroup_bA=0x00000004,//交换群
    IsGroup_bN=0x00000008,//幂零群
    IsGroup_bS=0x00000010,//可解群
};
]]
function int(b)
    -- return tostring(b)
    if b then
        return 1
    else
        return 0
    end
end

function CANS(ret)
   local ss=""
   local bG=And(ret,1)~=0
   if bG then
      local bC=And(ret,2)~=0
      local bA=And(ret,4)~=0
      local bN=And(ret,8)~=0    
      local bS=(And(ret,16)~=0)        
      local s=""
      if bC then
         s="是循环群"
      else
          if bA then
             s="是非循环Abel群"
          else
              if bN then
                 s="是非Abel幂零群"
              else
                  if bS then
                     s="是非幂零可解群"
                  else
                     s="不是可解群"
                  end
              end
          end    
      end         
      ss=s.."(ret="..ret..",bG="..int(bG)..",bC="..int(bC)..",bA="..int(bA)..",bN="..int(bN)..",bS="..int(bS)..")"
   else
      ss="不是群" 
   end
   return ss
end

function printisgroup(name,ret)
   local ss=CANS(ret)
   io.write(name..ss.."\n")
end

local calN0C8=calN0("g_C8Mul","GAP[8,1]",1)
local calCANSG8=CANS(isgroup("g_C8Mul",1))
print(calN0C8..calCANSG8)

calN0C8=calN0("g_C8Mul_2","GAP[8,1]",1)
calCANSG8=CANS(isgroup("g_C8Mul_2",1))
print(calN0C8..calCANSG8)

local calN0C2C4=calN0("g_C2C4Mul","GAP[8,2]",1)
calCANSG8=CANS(isgroup("g_C2C4Mul",1))
print(calN0C2C4..calCANSG8)

calN0C2C4=calN0("g_C2C4Mul_2","GAP[8,2]",1)
calCANSG8=CANS(isgroup("g_C2C4Mul_2",1))
print(calN0C2C4..calCANSG8)

calN0E8=calN0("g_C2C2C2Mul","GAP[8,5]",1)
calCANSG8=CANS(isgroup("g_C2C2C2Mul",1))
print(calN0E8..calCANSG8)

calN0D4=calN0("g_D4Mul","GAP[8,3]",1)
calCANSG8=CANS(isgroup("g_D4Mul",1))
print(calN0D4..calCANSG8)

calN0Q8=calN0("g_Q8Mul","GAP[8,4]",1)
calCANSG8=CANS(isgroup("g_Q8Mul",1))
print(calN0Q8..calCANSG8)

for i=1,5 do
    local name="GAP[12,"..i.."]"
    calN0G12_i=calN0("G12_"..i,name,0)
    local ret=isgroup("G12_"..i)
    local ss=CANS(ret)    
    print(calN0G12_i..ss)
end

G12_6={
    {1,2,3,4,5,6,7,8,9,10,11,12},
    {2,1,4,3,10,9,8,7,6,5,12,11},
    {3,4,1,2,11,12,9,10,7,8,5,6},
    {4,3,2,1,8,7,10,9,12,11,6,5},
    {5,6,7,8,9,10,11,12,1,2,3,4},
    {6,5,8,7,2,1,12,11,10,9,4,3},
    {7,8,5,6,3,4,1,2,11,12,9,10},
    {8,7,6,5,12,11,2,1,4,3,10,9},
    {9,10,11,12,1,2,3,4,5,6,7,8},
    {10,9,12,11,6,5,4,3,2,1,8,7},
    {11,12,9,10,7,8,5,6,3,4,1,2},
    {12,11,10,9,4,3,6,5,8,7,2,1}
}
isG12_6=isgroup("G12_6")
printisgroup("G12_6",isG12_6)

G16_15={
    {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},
    {2,1,4,3,14,13,8,7,10,9,12,11,6,5,16,15},
    {3,4,1,2,15,16,13,14,11,12,9,10,7,8,5,6},
    {4,3,2,1,8,7,14,13,12,11,10,9,16,15,6,5},
    {5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4},
    {6,5,8,7,2,1,12,11,14,13,16,15,10,9,4,3},
    {7,8,5,6,3,4,1,2,15,16,13,14,11,12,9,10},
    {8,7,6,5,12,11,2,1,16,15,14,13,4,3,10,9},
    {9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8},
    {10,9,12,11,6,5,16,15,2,1,4,3,14,13,8,7},
    {11,12,9,10,7,8,5,6,3,4,1,2,15,16,13,14},
    {12,11,10,9,16,15,6,5,4,3,2,1,8,7,14,13},
    {13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12},
    {14,13,16,15,10,9,4,3,6,5,8,7,2,1,12,11},
    {15,16,13,14,11,12,9,10,7,8,5,6,3,4,1,2},
    {16,15,14,13,4,3,10,9,8,7,6,5,12,11,2,1}
}    
isG16_15=isgroup("G16_15")
printisgroup("G16_15",isG16_15)

G16_16={
    {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},
    {2,1,4,3,8,7,6,5,12,11,10,9,16,15,14,13},
    {3,4,1,2,7,8,5,6,11,12,9,10,15,16,13,14},
    {4,3,2,1,6,5,8,7,10,9,12,11,14,13,16,15},
    {5,6,7,8,3,4,1,2,15,16,13,14,9,10,11,12},
    {6,5,8,7,2,1,4,3,14,13,16,15,12,11,10,9},
    {7,8,5,6,1,2,3,4,13,14,15,16,11,12,9,10},
    {8,7,6,5,4,3,2,1,16,15,14,13,10,9,12,11},
    {9,10,11,12,13,14,15,16,3,4,1,2,7,8,5,6},
    {10,9,12,11,16,15,14,13,2,1,4,3,6,5,8,7},
    {11,12,9,10,15,16,13,14,1,2,3,4,5,6,7,8},
    {12,11,10,9,14,13,16,15,4,3,2,1,8,7,6,5},
    {13,14,15,16,11,12,9,10,5,6,7,8,3,4,1,2},
    {14,13,16,15,10,9,12,11,8,7,6,5,2,1,4,3},
    {15,16,13,14,9,10,11,12,7,8,5,6,1,2,3,4},
    {16,15,14,13,12,11,10,9,6,5,8,7,4,3,2,1}
}
isG16_16=isgroup("G16_16")
printisgroup("G16_16",isG16_16)

G6_1={
    {1,2,3,4,5,6},
    {2,1,6,5,4,3},
    {3,4,5,6,1,2},
    {4,3,2,1,6,5},
    {5,6,1,2,3,4},
    {6,5,4,3,2,1}
}
isG6_1=isgroup("G6_1")
printisgroup("G6_1",isG6_1)
 

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值