35 int main (
int argc,
char **argv)
37 cout <<
"#########################################################" << endl;
38 cout <<
"# CHECK CYCLIC6 64 BITS ON GF(2^n) #" << endl;
39 cout <<
"#########################################################" << endl << endl;
42 vector<string> polynomialArray;
45 vector<string> variableName;
46 for(
int i = 0; i < 6; i++)
48 variableName.push_back(
'x'+to_string(i));
52 polynomialArray.emplace_back(
"(t+t^3)*x0+(t+t^3)*x1+(t+t^3)*x2+(t+t^3)*x3+(t+t^3)*x4+(t+t^3)*x5");
53 polynomialArray.emplace_back(
"(t+t^3)*x0*x1+(t+t^3)*x1*x2+(t+t^3)*x2*x3+(t+t^3)*x3*x4+(t+t^3)*x0*x5+(t+t^3)*x4*x5");
54 polynomialArray.emplace_back(
"(t+t^3)*x0*x1*x2+(t+t^3)*x1*x2*x3+(t+t^3)*x2*x3*x4+(t+t^3)*x0*x1*x5+(t+t^3)*x0*x4*x5+(t+t^3)*x3*x4*x5");
55 polynomialArray.emplace_back(
"(t+t^3)*x0*x1*x2*x3+(t+t^3)*x1*x2*x3*x4+(t+t^3)*x0*x1*x2*x5+(t+t^3)*x0*x1*x4*x5+(t+t^3)*x0*x3*x4*x5+(t+t^3)*x2*x3*x4*x5");
56 polynomialArray.emplace_back(
"(t+t^3)*x0*x1*x2*x3*x4+(t+t^3)*x0*x1*x2*x3*x5+(t+t^3)*x0*x1*x2*x4*x5+(t+t^3)*x0*x1*x3*x4*x5+(t+t^3)*x0*x2*x3*x4*x5+(t+t^3)*x1*x2*x3*x4*x5");
57 polynomialArray.emplace_back(
"(t+t^3)*x0*x1*x2*x3*x4*x5-1");
60 vector<string> basisLong =
groebnerBasisGF2ExtensionF4(
"t^63 + t^61 + t^57 + t^56 + t^54 + t^51 + t^47 + t^46 + t^45 + t^44 + t^43 + t^42 + t^39 + t^38 + t^35 + t^34 + t^32 + t^31 + t^28 + t^25 + t^24 + t^23 + t^21 + t^19 + t^18 + t^17 + t^15 + t^13 + t^10 + t^8 + t^7 + t^5 + t^2 + t + 1", 6, variableName,
"t", polynomialArray, 1, 0);
63 vector<string> groebnerBasisCyclic6Long;
70 groebnerBasisCyclic6Long.push_back(
"((+1)*x0^1) + ((+1)*x1^1) + ((+1)*x2^1) + ((+1)*x3^1) + ((+1)*x4^1) + ((+1)*x5^1)");
71 groebnerBasisCyclic6Long.push_back(
"((+1)*x1^2) + ((+1)*x1^1*x3^1) + ((+1)*x2^1*x3^1) + ((+1)*x1^1*x4^1) + ((+1)*x3^1*x4^1) + ((+1)*x2^1*x5^1) + ((+1)*x3^1*x5^1) + ((+1)*x5^2)");
72 groebnerBasisCyclic6Long.push_back(
"((+1)*x2^1*x3^3*x5^4) + ((+1)*x2^1*x3^2*x5^5) + ((+1)*x3^3*x5^5) + ((+1)*x3^2*x5^6) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x2^1*x3^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x2^1*x5^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x3^1*x5^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x5^2)");
73 groebnerBasisCyclic6Long.push_back(
"((+1)*x1^1*x2^1) + ((+1)*x2^2) + ((+1)*x1^1*x3^1) + ((+1)*x2^1*x3^1) + ((+1)*x1^1*x4^1) + ((+1)*x2^1*x4^1) + ((+1)*x3^1*x4^1) + ((+1)*x4^2) + ((+1)*x1^1*x5^1) + ((+1)*x2^1*x5^1) + ((+1)*x3^1*x5^1) + ((+1)*x4^1*x5^1)");
74 groebnerBasisCyclic6Long.push_back(
"((+1)*x2^3) + ((+1)*x2^2*x5^1) + ((+1)*x2^1*x5^2) + ((+1)*x5^3)");
75 groebnerBasisCyclic6Long.push_back(
"((+1)*x2^2*x3^1) + ((+1)*x2^1*x3^1*x4^1) + ((+1)*x2^2*x5^1) + ((+1)*x2^1*x3^1*x5^1) + ((+1)*x2^1*x4^1*x5^1) + ((+1)*x3^1*x4^1*x5^1) + ((+1)*x2^1*x5^2) + ((+1)*x4^1*x5^2)");
76 groebnerBasisCyclic6Long.push_back(
"((+1)*x1^1*x3^3) + ((+1)*x2^1*x3^3) + ((+1)*x3^3*x4^1) + ((+1)*x1^1*x4^3) + ((+1)*x4^4) + ((+1)*x1^1*x3^2*x5^1) + ((+1)*x2^1*x3^2*x5^1) + ((+1)*x3^3*x5^1) + ((+1)*x3^2*x4^1*x5^1) + ((+1)*x1^1*x4^2*x5^1) + ((+1)*x4^3*x5^1) + ((+1)*x1^1*x3^1*x5^2) + ((+1)*x2^1*x3^1*x5^2) + ((+1)*x3^2*x5^2) + ((+1)*x1^1*x4^1*x5^2) + ((+1)*x3^1*x4^1*x5^2) + ((+1)*x4^2*x5^2) + ((+1)*x2^1*x5^3) + ((+1)*x3^1*x5^3) + ((+1)*x5^4)");
77 groebnerBasisCyclic6Long.push_back(
"((+1)*x1^1*x3^2*x5^4) + ((+1)*x2^2*x4^1*x5^4) + ((+1)*x2^1*x3^1*x4^1*x5^4) + ((+1)*x3^2*x4^1*x5^4) + ((+1)*x1^1*x4^2*x5^4) + ((+1)*x2^1*x4^2*x5^4) + ((+1)*x4^3*x5^4) + ((+1)*x2^2*x5^5) + ((+1)*x2^1*x3^1*x5^5) + ((+1)*x2^1*x4^1*x5^5) + ((+1)*x3^1*x4^1*x5^5) + ((+1)*x4^2*x5^5) + ((+1)*x2^1*x5^6) + ((+1)*x3^1*x5^6) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x2^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x5^1)");
78 groebnerBasisCyclic6Long.push_back(
"((+1)*x2^1*x4^3*x5^4) + ((+1)*x2^1*x4^2*x5^5) + ((+1)*x4^3*x5^5) + ((+1)*x4^2*x5^6) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x2^1*x4^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x2^1*x5^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x4^1*x5^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x5^2)");
79 groebnerBasisCyclic6Long.push_back(
"((+1)*x2^1*x3^2*x5^6) + ((+1)*x2^1*x4^2*x5^6) + ((+1)*x3^2*x5^7) + ((+1)*x4^2*x5^7) + ((+1)*x2^1*x5^8) + ((+1)*x5^9) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x1^1*x3^2) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x2^1*x3^2) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x2^2*x4^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x2^1*x3^1*x4^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x3^2*x4^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x1^1*x4^2) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x4^3) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x2^2*x5^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x2^1*x3^1*x5^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x3^2*x5^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x2^1*x4^1*x5^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x3^1*x4^1*x5^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x2^1*x5^2) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x3^1*x5^2)");
80 groebnerBasisCyclic6Long.push_back(
"((+1)*x1^1*x3^1*x4^1) + ((+1)*x1^1*x4^2) + ((+1)*x3^1*x4^2) + ((+1)*x4^3) + ((+1)*x1^1*x3^1*x5^1) + ((+1)*x1^1*x4^1*x5^1) + ((+1)*x3^1*x4^1*x5^1) + ((+1)*x4^2*x5^1)");
81 groebnerBasisCyclic6Long.push_back(
"((+1)*x2^1*x3^2*x4^1) + ((+1)*x2^1*x3^2*x5^1) + ((+1)*x3^2*x4^1*x5^1) + ((+1)*x3^2*x5^2) + ((+1)*x2^1*x4^1*x5^2) + ((+1)*x2^1*x5^3) + ((+1)*x4^1*x5^3) + ((+1)*x5^4)");
82 groebnerBasisCyclic6Long.push_back(
"((+1)*x2^2*x4^2) + ((+1)*x2^2*x5^2) + ((+1)*x4^2*x5^2) + ((+1)*x5^4)");
83 groebnerBasisCyclic6Long.push_back(
"((+1)*x2^1*x3^1*x4^2) + ((+1)*x2^1*x4^2*x5^1) + ((+1)*x3^1*x4^2*x5^1) + ((+1)*x2^1*x3^1*x5^2) + ((+1)*x4^2*x5^2) + ((+1)*x2^1*x5^3) + ((+1)*x3^1*x5^3) + ((+1)*x5^4)");
84 groebnerBasisCyclic6Long.push_back(
"((+1)*x3^2*x4^2*x5^2) + ((+1)*x1^1*x3^1*x5^4) + ((+1)*x2^1*x3^1*x5^4) + ((+1)*x1^1*x4^1*x5^4) + ((+1)*x3^1*x4^1*x5^4) + ((+1)*x4^2*x5^4) + ((+1)*x2^1*x5^5) + ((+1)*x3^1*x5^5) + ((+1)*x5^6) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*1)");
85 groebnerBasisCyclic6Long.push_back(
"((+1)*x1^1*x4^4*x5^2) + ((+1)*x4^5*x5^2) + ((+1)*x2^2*x4^1*x5^4) + ((+1)*x2^1*x3^1*x4^1*x5^4) + ((+1)*x2^1*x4^2*x5^4) + ((+1)*x2^2*x5^5) + ((+1)*x2^1*x3^1*x5^5) + ((+1)*x2^1*x4^1*x5^5) + ((+1)*x3^1*x4^1*x5^5) + ((+1)*x4^2*x5^5) + ((+1)*x2^1*x5^6) + ((+1)*x3^1*x5^6) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x1^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x2^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x4^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x5^1)");
86 groebnerBasisCyclic6Long.push_back(
"((+1)*x2^2*x5^6) + ((+1)*x5^8) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x2^2) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x5^2)");
87 groebnerBasisCyclic6Long.push_back(
"((+1)*x1^1*x3^1*x5^6) + ((+1)*x2^1*x3^1*x5^6) + ((+1)*x1^1*x4^1*x5^6) + ((+1)*x3^1*x4^1*x5^6) + ((+1)*x4^2*x5^6) + ((+1)*x2^1*x5^7) + ((+1)*x3^1*x5^7) + ((+1)*x5^8) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x1^1*x3^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x2^1*x3^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x1^1*x4^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x3^1*x4^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x4^2) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x2^1*x5^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x3^1*x5^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x5^2)");
88 groebnerBasisCyclic6Long.push_back(
"((+1)*x2^1*x3^1*x4^1*x5^6) + ((+1)*x2^1*x3^1*x5^7) + ((+1)*x2^1*x4^1*x5^7) + ((+1)*x3^1*x4^1*x5^7) + ((+1)*x2^1*x5^8) + ((+1)*x3^1*x5^8) + ((+1)*x4^1*x5^8) + ((+1)*x5^9) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x2^1*x3^1*x4^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x2^1*x3^1*x5^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x2^1*x4^1*x5^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x3^1*x4^1*x5^1) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x2^1*x5^2) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x3^1*x5^2) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x4^1*x5^2) + ((t^60+t^54+t^53+t^52+t^50+t^44+t^43+t^40+t^39+t^38+t^37+t^32+t^31+t^30+t^25+t^23+t^22+t^18+t^15+t^14+t^13+t^11+t^10+t^9+t^8+t^6+t^5+t^3+t^2+t+1)*x5^3)");
91 bool testCyclic6 =
true;
93 while(i < basisLong.size() && testCyclic6 == true )
95 testCyclic6 = testCyclic6 && (groebnerBasisCyclic6Long[i].compare(basisLong[i])==0);
100 cout <<
"Test cyclic6 GF(2^63) on 64 bits pass" << endl;
105 cout <<
"Test cyclic6 GF(2^63) on 64 bits failed" << endl;
Declaration of library methods.
std::vector< std::string > groebnerBasisGF2ExtensionF4(std::string modulo, int nbVariable, std::vector< std::string > variableName, std::string polyVarName, std::vector< std::string > polynomialList, int nbThread, int verbose)
Compute a reduced groebner basis of the ideal defined by the list of polynomials polynomialList.