F4
Library for Gröebner basis computations over finite fields.
 All Classes Namespaces Files Functions Variables Friends Pages
check-cyclic6-16bits.cpp

Library check tests.

Author
Vanessa VITSE, Antoine JOUX, Titouan COLADON
/*
* Copyright (C) 2015 Antoine Joux, Vanessa Vitse and Titouan Coladon
*
* This file is part of F4.
*
* F4 is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* F4 is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with F4. If not, see <http://www.gnu.org/licenses/>.
*/
#include <iostream>
#include <string>
#include <vector>
#include <libf4.h>
using namespace std;
int main (int argc, char **argv)
{
cout << "#########################################################" << endl;
cout << "# CHECK CYCLIC6 16 BITS #" << endl;
cout << "#########################################################" << endl << endl;
// Create polynomial array
vector<string> polynomialArray;
// Create variable name array
vector<string> variableName;
for(int i = 0; i < 6; i++)
{
variableName.push_back('x'+to_string(i));
}
// Fill the polynomial array
polynomialArray.emplace_back("x0+x1+x2+x3+x4+x5");
polynomialArray.emplace_back("x0*x1+x1*x2+x2*x3+x3*x4+x0*x5+x4*x5");
polynomialArray.emplace_back("x0*x1*x2+x1*x2*x3+x2*x3*x4+x0*x1*x5+x0*x4*x5+x3*x4*x5");
polynomialArray.emplace_back("x0*x1*x2*x3+x1*x2*x3*x4+x0*x1*x2*x5+x0*x1*x4*x5+x0*x3*x4*x5+x2*x3*x4*x5");
polynomialArray.emplace_back("x0*x1*x2*x3*x4+x0*x1*x2*x3*x5+x0*x1*x2*x4*x5+x0*x1*x3*x4*x5+x0*x2*x3*x4*x5+x1*x2*x3*x4*x5");
polynomialArray.emplace_back("x0*x1*x2*x3*x4*x5-1");
// Compute a reduce groebner basis
vector<string> basisShort = groebnerBasisF4(251, 6, variableName, polynomialArray, 1, 0);
// Fill reference vectors
vector<string> groebnerBasisCyclic6Short;
//for(size_t i = 0; i < basisShort.size(); i++)
//{
//cout << "groebnerBasisCyclic6Short.push_back(\"" << basisShort[i] << "\");" << endl;
//}
groebnerBasisCyclic6Short.push_back("(1*x0^1) + (1*x1^1) + (1*x2^1) + (1*x3^1) + (1*x4^1) + (1*x5^1)");
groebnerBasisCyclic6Short.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) + (2*x1^1*x5^1) + (1*x2^1*x5^1) + (1*x3^1*x5^1) + (1*x5^2)");
groebnerBasisCyclic6Short.push_back("(1*x1^1*x2^2) + (1*x2^1*x3^2) + (121*x1^1*x2^1*x4^1) + (124*x2^2*x4^1) + (3*x1^1*x3^1*x4^1) + (124*x2^1*x3^1*x4^1) + (4*x3^2*x4^1) + (124*x2^1*x4^2) + (1*x3^1*x4^2) + (3*x1^1*x2^1*x5^1) + (1*x2^2*x5^1) + (124*x1^1*x3^1*x5^1) + (-4*x2^1*x3^1*x5^1) + (-3*x3^2*x5^1) + (-122*x2^1*x4^1*x5^1) + (3*x3^1*x4^1*x5^1) + (1*x4^2*x5^1) + (-1*x1^1*x5^2) + (-4*x3^1*x5^2) + (2*x4^1*x5^2) + (-1*x5^3)");
groebnerBasisCyclic6Short.push_back("(1*x2^3) + (105*x2^1*x3^2) + (107*x3^3) + (-105*x1^1*x2^1*x4^1) + (-70*x2^2*x4^1) + (35*x1^1*x3^1*x4^1) + (-105*x2^1*x3^1*x4^1) + (-111*x3^2*x4^1) + (-111*x1^1*x4^2) + (-70*x2^1*x4^2) + (-35*x3^1*x4^2) + (107*x4^3) + (70*x1^1*x2^1*x5^1) + (38*x2^2*x5^1) + (-70*x1^1*x3^1*x5^1) + (-35*x3^2*x5^1) + (35*x1^1*x4^1*x5^1) + (35*x2^1*x4^1*x5^1) + (-76*x3^1*x4^1*x5^1) + (-105*x1^1*x5^2) + (-73*x2^1*x5^2) + (111*x3^1*x5^2) + (70*x4^1*x5^2) + (1*x5^3)");
groebnerBasisCyclic6Short.push_back("(1*x1^1*x2^1*x3^1) + (1*x2^1*x3^2) + (123*x1^1*x2^1*x4^1) + (124*x2^2*x4^1) + (1*x1^1*x3^1*x4^1) + (125*x2^1*x3^1*x4^1) + (2*x3^2*x4^1) + (124*x2^1*x4^2) + (1*x3^1*x4^2) + (1*x1^1*x2^1*x5^1) + (1*x2^2*x5^1) + (-125*x1^1*x3^1*x5^1) + (-1*x2^1*x3^1*x5^1) + (-1*x3^2*x5^1) + (-1*x1^1*x4^1*x5^1) + (125*x2^1*x4^1*x5^1) + (1*x3^1*x4^1*x5^1) + (1*x2^1*x5^2) + (-1*x3^1*x5^2)");
groebnerBasisCyclic6Short.push_back("(1*x2^2*x3^1) + (2*x1^1*x2^1*x4^1) + (-2*x1^1*x3^1*x4^1) + (1*x2^1*x3^1*x4^1) + (-2*x3^2*x4^1) + (-2*x1^1*x2^1*x5^1) + (-1*x2^2*x5^1) + (2*x1^1*x3^1*x5^1) + (3*x2^1*x3^1*x5^1) + (2*x3^2*x5^1) + (-3*x2^1*x4^1*x5^1) + (-1*x3^1*x4^1*x5^1) + (-1*x2^1*x5^2) + (2*x3^1*x5^2) + (-1*x4^1*x5^2)");
groebnerBasisCyclic6Short.push_back("(1*x1^1*x3^2) + (-107*x2^1*x3^2) + (-107*x3^3) + (-18*x1^1*x2^1*x4^1) + (-54*x2^2*x4^1) + (-36*x1^1*x3^1*x4^1) + (-18*x2^1*x3^1*x4^1) + (108*x3^2*x4^1) + (106*x1^1*x4^2) + (-54*x2^1*x4^2) + (36*x3^1*x4^2) + (-108*x4^3) + (-72*x1^1*x2^1*x5^1) + (-36*x2^2*x5^1) + (-53*x1^1*x3^1*x5^1) + (37*x3^2*x5^1) + (-36*x1^1*x4^1*x5^1) + (89*x2^1*x4^1*x5^1) + (71*x3^1*x4^1*x5^1) + (108*x1^1*x5^2) + (71*x2^1*x5^2) + (-107*x3^1*x5^2) + (-72*x4^1*x5^2)");
groebnerBasisCyclic6Short.push_back("(1*x2^1*x3^3) + (-76*x4^4) + (55*x2^1*x3^2*x5^1) + (88*x3^3*x5^1) + (39*x1^1*x2^1*x4^1*x5^1) + (16*x2^2*x4^1*x5^1) + (88*x1^1*x3^1*x4^1*x5^1) + (-39*x2^1*x3^1*x4^1*x5^1) + (34*x3^2*x4^1*x5^1) + (-9*x1^1*x4^2*x5^1) + (-57*x2^1*x4^2*x5^1) + (-91*x3^1*x4^2*x5^1) + (46*x4^3*x5^1) + (100*x1^1*x2^1*x5^2) + (123*x2^2*x5^2) + (65*x1^1*x3^1*x5^2) + (40*x2^1*x3^1*x5^2) + (-104*x3^2*x5^2) + (51*x1^1*x4^1*x5^2) + (-57*x2^1*x4^1*x5^2) + (81*x3^1*x4^1*x5^2) + (107*x4^2*x5^2) + (-83*x1^1*x5^3) + (-28*x2^1*x5^3) + (-94*x3^1*x5^3) + (99*x4^1*x5^3) + (107*x5^4)");
groebnerBasisCyclic6Short.push_back("(1*x3^4) + (-105*x4^4) + (17*x2^1*x3^2*x5^1) + (4*x3^3*x5^1) + (31*x1^1*x2^1*x4^1*x5^1) + (-4*x2^2*x4^1*x5^1) + (81*x1^1*x3^1*x4^1*x5^1) + (-37*x2^1*x3^1*x4^1*x5^1) + (13*x3^2*x4^1*x5^1) + (-84*x1^1*x4^2*x5^1) + (119*x2^1*x4^2*x5^1) + (83*x3^1*x4^2*x5^1) + (124*x4^3*x5^1) + (28*x1^1*x2^1*x5^2) + (63*x2^2*x5^2) + (88*x1^1*x3^1*x5^2) + (117*x2^1*x3^1*x5^2) + (25*x3^2*x5^2) + (-79*x1^1*x4^1*x5^2) + (69*x2^1*x4^1*x5^2) + (4*x3^1*x4^1*x5^2) + (-34*x4^2*x5^2) + (-65*x1^1*x5^3) + (-108*x2^1*x5^3) + (29*x3^1*x5^3) + (28*x4^1*x5^3) + (94*x5^4)");
groebnerBasisCyclic6Short.push_back("(1*x2^1*x3^2*x4^1) + (-69*x2^1*x3^2*x5^1) + (-70*x3^3*x5^1) + (69*x1^1*x2^1*x4^1*x5^1) + (-38*x2^2*x4^1*x5^1) + (-107*x1^1*x3^1*x4^1*x5^1) + (67*x2^1*x3^1*x4^1*x5^1) + (75*x3^2*x4^1*x5^1) + (78*x1^1*x4^2*x5^1) + (-38*x2^1*x4^2*x5^1) + (107*x3^1*x4^2*x5^1) + (-70*x4^3*x5^1) + (36*x1^1*x2^1*x5^2) + (-108*x2^2*x5^2) + (-37*x1^1*x3^1*x5^2) + (1*x2^1*x3^1*x5^2) + (112*x3^2*x5^2) + (-108*x1^1*x4^1*x5^2) + (-114*x2^1*x4^1*x5^2) + (-32*x3^1*x4^1*x5^2) + (-1*x4^2*x5^2) + (69*x1^1*x5^3) + (-35*x2^1*x5^3) + (-73*x3^1*x5^3) + (35*x4^1*x5^3) + (-1*x5^4)");
groebnerBasisCyclic6Short.push_back("(1*x3^3*x4^1) + (111*x4^4) + (23*x2^1*x3^2*x5^1) + (-5*x3^3*x5^1) + (-49*x1^1*x2^1*x4^1*x5^1) + (68*x2^2*x4^1*x5^1) + (53*x1^1*x3^1*x4^1*x5^1) + (-113*x2^1*x3^1*x4^1*x5^1) + (-37*x3^2*x4^1*x5^1) + (-50*x1^1*x4^2*x5^1) + (101*x2^1*x4^2*x5^1) + (-99*x3^1*x4^2*x5^1) + (80*x4^3*x5^1) + (-112*x1^1*x2^1*x5^2) + (22*x2^2*x5^2) + (78*x1^1*x3^1*x5^2) + (-82*x2^1*x3^1*x5^2) + (14*x3^2*x5^2) + (57*x1^1*x4^1*x5^2) + (112*x2^1*x4^1*x5^2) + (-1*x3^1*x4^1*x5^2) + (-10*x4^2*x5^2) + (23*x1^1*x5^3) + (-22*x2^1*x5^3) + (86*x3^1*x5^3) + (-111*x4^1*x5^3) + (113*x5^4)");
groebnerBasisCyclic6Short.push_back("(1*x1^1*x2^1*x4^2) + (105*x4^4) + (112*x2^1*x3^2*x5^1) + (-116*x3^3*x5^1) + (-115*x1^1*x2^1*x4^1*x5^1) + (81*x2^2*x4^1*x5^1) + (-117*x1^1*x3^1*x4^1*x5^1) + (100*x2^1*x3^1*x4^1*x5^1) + (-85*x3^2*x4^1*x5^1) + (57*x1^1*x4^2*x5^1) + (84*x2^1*x4^2*x5^1) + (-110*x3^1*x4^2*x5^1) + (7*x4^3*x5^1) + (56*x1^1*x2^1*x5^2) + (112*x2^2*x5^2) + (-28*x1^1*x3^1*x5^2) + (77*x2^1*x3^1*x5^2) + (84*x3^2*x5^2) + (-54*x1^1*x4^1*x5^2) + (-95*x2^1*x4^1*x5^2) + (-11*x3^1*x4^1*x5^2) + (38*x4^2*x5^2) + (-51*x1^1*x5^3) + (50*x2^1*x5^3) + (95*x3^1*x5^3) + (56*x4^1*x5^3) + (-82*x5^4)");
groebnerBasisCyclic6Short.push_back("(1*x2^2*x4^2) + (70*x4^4) + (87*x2^1*x3^2*x5^1) + (18*x3^3*x5^1) + (-116*x1^1*x2^1*x4^1*x5^1) + (101*x2^2*x4^1*x5^1) + (-101*x1^1*x3^1*x4^1*x5^1) + (29*x2^1*x3^1*x4^1*x5^1) + (-123*x3^2*x4^1*x5^1) + (78*x1^1*x4^2*x5^1) + (19*x2^1*x4^2*x5^1) + (9*x3^1*x4^2*x5^1) + (99*x4^3*x5^1) + (45*x1^1*x2^1*x5^2) + (78*x2^2*x5^2) + (59*x1^1*x3^1*x5^2) + (-6*x2^1*x3^1*x5^2) + (107*x3^2*x5^2) + (79*x1^1*x4^1*x5^2) + (-3*x2^1*x4^1*x5^2) + (-100*x3^1*x4^1*x5^2) + (-58*x4^2*x5^2) + (-44*x1^1*x5^3) + (-88*x2^1*x5^3) + (104*x3^1*x5^3) + (45*x4^1*x5^3) + (113*x5^4)");
groebnerBasisCyclic6Short.push_back("(1*x1^1*x3^1*x4^2) + (70*x4^4) + (-68*x2^1*x3^2*x5^1) + (-53*x3^3*x5^1) + (81*x1^1*x2^1*x4^1*x5^1) + (66*x2^2*x4^1*x5^1) + (83*x1^1*x3^1*x4^1*x5^1) + (-70*x2^1*x3^1*x4^1*x5^1) + (-52*x3^2*x4^1*x5^1) + (-55*x1^1*x4^2*x5^1) + (110*x2^1*x4^2*x5^1) + (72*x3^1*x4^2*x5^1) + (-97*x4^3*x5^1) + (81*x1^1*x2^1*x5^2) + (96*x2^2*x5^2) + (-63*x1^1*x3^1*x5^2) + (38*x2^1*x3^1*x5^2) + (-118*x3^2*x5^2) + (14*x1^1*x4^1*x5^2) + (55*x2^1*x4^1*x5^2) + (33*x3^1*x4^1*x5^2) + (67*x4^2*x5^2) + (109*x1^1*x5^3) + (-81*x2^1*x5^3) + (-94*x3^1*x5^3) + (81*x4^1*x5^3) + (-55*x5^4)");
groebnerBasisCyclic6Short.push_back("(1*x2^1*x3^1*x4^2) + (70*x4^4) + (-105*x2^1*x3^2*x5^1) + (-89*x3^3*x5^1) + (75*x1^1*x2^1*x4^1*x5^1) + (-77*x2^2*x4^1*x5^1) + (29*x1^1*x3^1*x4^1*x5^1) + (50*x2^1*x3^1*x4^1*x5^1) + (-101*x3^2*x4^1*x5^1) + (-61*x1^1*x4^2*x5^1) + (93*x2^1*x4^2*x5^1) + (-41*x3^1*x4^2*x5^1) + (-7*x4^3*x5^1) + (57*x1^1*x2^1*x5^2) + (-42*x2^2*x5^2) + (-38*x1^1*x3^1*x5^2) + (79*x2^1*x3^1*x5^2) + (-22*x3^2*x5^2) + (44*x1^1*x4^1*x5^2) + (-125*x2^1*x4^1*x5^2) + (57*x3^1*x4^1*x5^2) + (-58*x4^2*x5^2) + (-106*x1^1*x5^3) + (-99*x2^1*x5^3) + (-88*x3^1*x5^3) + (57*x4^1*x5^3) + (-55*x5^4)");
groebnerBasisCyclic6Short.push_back("(1*x4^5) + (-98*x4^4*x5^1) + (106*x2^1*x3^2*x5^2) + (47*x3^3*x5^2) + (-95*x1^1*x2^1*x4^1*x5^2) + (90*x2^2*x4^1*x5^2) + (-68*x1^1*x3^1*x4^1*x5^2) + (85*x2^1*x3^1*x4^1*x5^2) + (66*x3^2*x4^1*x5^2) + (-98*x1^1*x4^2*x5^2) + (-62*x2^1*x4^2*x5^2) + (18*x3^1*x4^2*x5^2) + (68*x4^3*x5^2) + (62*x1^1*x2^1*x5^3) + (-123*x2^2*x5^3) + (108*x1^1*x3^1*x5^3) + (5*x2^1*x3^1*x5^3) + (53*x3^2*x5^3) + (-94*x1^1*x4^1*x5^3) + (-106*x2^1*x4^1*x5^3) + (65*x3^1*x4^1*x5^3) + (-36*x4^2*x5^3) + (-66*x1^1*x5^4) + (124*x2^1*x5^4) + (99*x3^1*x5^4) + (61*x4^1*x5^4) + (39*x5^5)");
groebnerBasisCyclic6Short.push_back("(1*x2^1*x3^2*x5^3) + (56*x3^3*x5^3) + (54*x1^1*x2^1*x4^1*x5^3) + (-125*x2^2*x4^1*x5^3) + (10*x1^1*x3^1*x4^1*x5^3) + (-20*x2^1*x3^1*x4^1*x5^3) + (-44*x3^2*x4^1*x5^3) + (85*x1^1*x4^2*x5^3) + (-125*x2^1*x4^2*x5^3) + (105*x3^1*x4^2*x5^3) + (56*x4^3*x5^3) + (101*x1^1*x2^1*x5^4) + (29*x2^2*x5^4) + (40*x1^1*x3^1*x5^4) + (-122*x2^1*x3^1*x5^4) + (-84*x3^2*x5^4) + (-38*x1^1*x4^1*x5^4) + (115*x2^1*x4^1*x5^4) + (-27*x3^1*x4^1*x5^4) + (-1*x1^1*x5^5) + (114*x2^1*x5^5) + (-85*x3^1*x5^5) + (101*x4^1*x5^5) + (-98*x5^6) + (-98*1)");
groebnerBasisCyclic6Short.push_back("(1*x4^4*x5^3) + (-51*x1^1*x3^1*x4^1*x5^4) + (-34*x2^1*x3^1*x4^1*x5^4) + (65*x3^2*x4^1*x5^4) + (-33*x1^1*x4^2*x5^4) + (-56*x2^1*x4^2*x5^4) + (35*x3^1*x4^2*x5^4) + (-58*x4^3*x5^4) + (18*x1^1*x2^1*x5^5) + (18*x2^2*x5^5) + (-50*x1^1*x3^1*x5^5) + (21*x2^1*x3^1*x5^5) + (-96*x3^2*x5^5) + (29*x1^1*x4^1*x5^5) + (24*x2^1*x4^1*x5^5) + (19*x3^1*x4^1*x5^5) + (-106*x4^2*x5^5) + (-60*x1^1*x5^6) + (91*x2^1*x5^6) + (-48*x3^1*x5^6) + (75*x4^1*x5^6) + (83*x5^7) + (-104*x1^1) + (8*x2^1) + (-16*x3^1) + (88*x4^1) + (-114*x5^1)");
groebnerBasisCyclic6Short.push_back("(1*x3^3*x5^4) + (85*x1^1*x3^1*x4^1*x5^4) + (-85*x2^1*x3^1*x4^1*x5^4) + (9*x3^2*x4^1*x5^4) + (-80*x1^1*x4^2*x5^4) + (-89*x2^1*x4^2*x5^4) + (-71*x3^1*x4^2*x5^4) + (107*x4^3*x5^4) + (-45*x1^1*x2^1*x5^5) + (-45*x2^2*x5^5) + (-10*x1^1*x3^1*x5^5) + (22*x2^1*x3^1*x5^5) + (-24*x3^2*x5^5) + (14*x1^1*x4^1*x5^5) + (55*x2^1*x4^1*x5^5) + (-6*x3^1*x4^1*x5^5) + (-107*x4^2*x5^5) + (28*x1^1*x5^6) + (86*x2^1*x5^6) + (-34*x3^1*x5^6) + (-7*x4^1*x5^6) + (6*x5^7) + (8*x1^1) + (-124*x2^1) + (24*x3^1) + (-68*x4^1) + (99*x5^1)");
groebnerBasisCyclic6Short.push_back("(1*x1^1*x2^1*x4^1*x5^4) + (106*x1^1*x3^1*x4^1*x5^4) + (-33*x2^1*x3^1*x4^1*x5^4) + (-19*x3^2*x4^1*x5^4) + (98*x1^1*x4^2*x5^4) + (-27*x2^1*x4^2*x5^4) + (-119*x3^1*x4^2*x5^4) + (66*x4^3*x5^4) + (116*x1^1*x2^1*x5^5) + (117*x2^2*x5^5) + (-10*x1^1*x3^1*x5^5) + (10*x2^1*x3^1*x5^5) + (-121*x3^2*x5^5) + (-11*x1^1*x4^1*x5^5) + (-120*x2^1*x4^1*x5^5) + (-13*x3^1*x4^1*x5^5) + (33*x4^2*x5^5) + (76*x1^1*x5^6) + (117*x2^1*x5^6) + (45*x3^1*x5^6) + (46*x4^1*x5^6) + (40*x5^7) + (-125*x1^1) + (-98*x2^1) + (-44*x3^1) + (95*x4^1) + (25*x5^1)");
groebnerBasisCyclic6Short.push_back("(1*x2^2*x4^1*x5^4) + (41*x1^1*x3^1*x4^1*x5^4) + (54*x2^1*x3^1*x4^1*x5^4) + (125*x3^2*x4^1*x5^4) + (16*x1^1*x4^2*x5^4) + (-70*x2^1*x4^2*x5^4) + (-43*x3^1*x4^2*x5^4) + (62*x4^3*x5^4) + (-107*x1^1*x2^1*x5^5) + (-108*x2^2*x5^5) + (-28*x1^1*x3^1*x5^5) + (-66*x2^1*x3^1*x5^5) + (-30*x3^2*x5^5) + (-83*x1^1*x4^1*x5^5) + (-32*x2^1*x4^1*x5^5) + (-75*x3^1*x4^1*x5^5) + (124*x4^2*x5^5) + (-88*x1^1*x5^6) + (-43*x2^1*x5^6) + (35*x3^1*x5^6) + (119*x4^1*x5^6) + (40*x5^7) + (-2*x1^1) + (87*x2^1) + (-40*x3^1) + (36*x4^1) + (75*x5^1)");
groebnerBasisCyclic6Short.push_back("(1*x1^1*x3^1*x4^1*x5^5) + (-51*x4^3*x5^5) + (58*x2^1*x3^1*x5^6) + (62*x3^2*x5^6) + (-42*x1^1*x4^1*x5^6) + (-36*x2^1*x4^1*x5^6) + (39*x3^1*x4^1*x5^6) + (-48*x4^2*x5^6) + (103*x1^1*x5^7) + (121*x2^1*x5^7) + (42*x3^1*x5^7) + (-29*x4^1*x5^7) + (23*x5^8) + (-87*x1^1*x2^1) + (-87*x2^2) + (-30*x1^1*x3^1) + (-43*x2^1*x3^1) + (40*x3^2) + (90*x1^1*x4^1) + (-23*x2^1*x4^1) + (120*x3^1*x4^1) + (-47*x4^2) + (-35*x1^1*x5^1) + (-87*x2^1*x5^1) + (-30*x3^1*x5^1) + (14*x4^1*x5^1) + (-38*x5^2)");
groebnerBasisCyclic6Short.push_back("(1*x2^1*x3^1*x4^1*x5^5) + (48*x4^3*x5^5) + (-106*x2^1*x3^1*x5^6) + (-21*x3^2*x5^6) + (116*x1^1*x4^1*x5^6) + (-120*x2^1*x4^1*x5^6) + (20*x3^1*x4^1*x5^6) + (65*x4^2*x5^6) + (9*x1^1*x5^7) + (-81*x2^1*x5^7) + (-83*x3^1*x5^7) + (38*x4^1*x5^7) + (4*x5^8) + (114*x1^1*x2^1) + (114*x2^2) + (-64*x1^1*x3^1) + (47*x2^1*x3^1) + (100*x3^2) + (-95*x1^1*x4^1) + (-123*x2^1*x4^1) + (107*x3^1*x4^1) + (-123*x4^2) + (-80*x1^1*x5^1) + (-29*x2^1*x5^1) + (-108*x3^1*x5^1) + (108*x4^1*x5^1) + (-109*x5^2)");
groebnerBasisCyclic6Short.push_back("(1*x3^2*x4^1*x5^5) + (38*x4^3*x5^5) + (-101*x2^1*x3^1*x5^6) + (-41*x3^2*x5^6) + (34*x1^1*x4^1*x5^6) + (-43*x2^1*x4^1*x5^6) + (-86*x3^1*x4^1*x5^6) + (96*x4^2*x5^6) + (-36*x1^1*x5^7) + (-99*x2^1*x5^7) + (61*x3^1*x5^7) + (105*x4^1*x5^7) + (63*x5^8) + (-43*x1^1*x2^1) + (-43*x2^2) + (5*x1^1*x3^1) + (4*x2^1*x3^1) + (-14*x3^2) + (80*x1^1*x4^1) + (-117*x2^1*x4^1) + (-2*x3^1*x4^1) + (-20*x4^2) + (-40*x1^1*x5^1) + (-24*x2^1*x5^1) + (-97*x3^1*x5^1) + (19*x4^1*x5^1) + (49*x5^2)");
groebnerBasisCyclic6Short.push_back("(1*x1^1*x4^2*x5^5) + (27*x4^3*x5^5) + (-81*x2^1*x3^1*x5^6) + (-97*x3^2*x5^6) + (-65*x1^1*x4^1*x5^6) + (107*x2^1*x4^1*x5^6) + (65*x3^1*x4^1*x5^6) + (-76*x4^2*x5^6) + (48*x1^1*x5^7) + (-106*x2^1*x5^7) + (-24*x3^1*x5^7) + (114*x4^1*x5^7) + (-55*x5^8) + (42*x1^1*x2^1) + (42*x2^2) + (-16*x1^1*x3^1) + (65*x2^1*x3^1) + (39*x3^2) + (124*x1^1*x4^1) + (-107*x2^1*x4^1) + (29*x3^1*x4^1) + (57*x4^2) + (117*x1^1*x5^1) + (-3*x2^1*x5^1) + (-19*x3^1*x5^1) + (9*x4^1*x5^1) + (14*x5^2)");
groebnerBasisCyclic6Short.push_back("(1*x2^1*x4^2*x5^5) + (3*x4^3*x5^5) + (-6*x2^1*x3^1*x5^6) + (-66*x3^2*x5^6) + (23*x1^1*x4^1*x5^6) + (-69*x2^1*x4^1*x5^6) + (80*x3^1*x4^1*x5^6) + (22*x4^2*x5^6) + (-118*x1^1*x5^7) + (-50*x2^1*x5^7) + (-94*x3^1*x5^7) + (-37*x4^1*x5^7) + (9*x5^8) + (-122*x1^1*x2^1) + (-122*x2^2) + (4*x1^1*x3^1) + (-64*x2^1*x3^1) + (118*x3^2) + (-52*x1^1*x4^1) + (110*x2^1*x4^1) + (8*x3^1*x4^1) + (22*x4^2) + (14*x1^1*x5^1) + (-37*x2^1*x5^1) + (29*x3^1*x5^1) + (72*x4^1*x5^1) + (71*x5^2)");
groebnerBasisCyclic6Short.push_back("(1*x3^1*x4^2*x5^5) + (-106*x4^3*x5^5) + (62*x2^1*x3^1*x5^6) + (17*x3^2*x5^6) + (-22*x1^1*x4^1*x5^6) + (-44*x2^1*x4^1*x5^6) + (-32*x3^1*x4^1*x5^6) + (25*x4^2*x5^6) + (-82*x1^1*x5^7) + (67*x2^1*x5^7) + (37*x3^1*x5^7) + (-57*x4^1*x5^7) + (95*x5^8) + (47*x1^1*x2^1) + (47*x2^2) + (-81*x1^1*x3^1) + (-98*x2^1*x3^1) + (-100*x3^2) + (29*x1^1*x4^1) + (81*x2^1*x4^1) + (-87*x3^1*x4^1) + (124*x4^2) + (109*x1^1*x5^1) + (73*x2^1*x5^1) + (117*x3^1*x5^1) + (57*x4^1*x5^1) + (-28*x5^2)");
groebnerBasisCyclic6Short.push_back("(1*x1^1*x2^1*x5^6) + (17*x2^1*x3^1*x5^6) + (16*x3^2*x5^6) + (6*x1^1*x4^1*x5^6) + (22*x2^1*x4^1*x5^6) + (38*x3^1*x4^1*x5^6) + (22*x4^2*x5^6) + (-80*x1^1*x5^7) + (-53*x2^1*x5^7) + (-64*x3^1*x5^7) + (22*x4^1*x5^7) + (22*x5^8) + (-88*x1^1*x2^1) + (-87*x2^2) + (22*x1^1*x3^1) + (-72*x2^1*x3^1) + (16*x3^2) + (57*x1^1*x4^1) + (73*x2^1*x4^1) + (89*x3^1*x4^1) + (73*x4^2) + (82*x1^1*x5^1) + (3*x2^1*x5^1) + (98*x3^1*x5^1) + (73*x4^1*x5^1) + (-57*x5^2)");
groebnerBasisCyclic6Short.push_back("(1*x2^2*x5^6) + (-82*x2^1*x3^1*x5^6) + (-82*x3^2*x5^6) + (-103*x1^1*x4^1*x5^6) + (66*x2^1*x4^1*x5^6) + (-16*x3^1*x4^1*x5^6) + (66*x4^2*x5^6) + (69*x1^1*x5^7) + (85*x2^1*x5^7) + (-13*x3^1*x5^7) + (66*x4^1*x5^7) + (85*x5^8) + (-63*x1^1*x2^1) + (-64*x2^2) + (70*x1^1*x3^1) + (106*x2^1*x3^1) + (-82*x3^2) + (21*x1^1*x4^1) + (-61*x2^1*x4^1) + (108*x3^1*x4^1) + (-61*x4^2) + (6*x1^1*x5^1) + (-52*x2^1*x5^1) + (-76*x3^1*x5^1) + (-61*x4^1*x5^1) + (67*x5^2)");
groebnerBasisCyclic6Short.push_back("(1*x1^1*x3^1*x5^6) + (120*x2^1*x3^1*x5^6) + (120*x3^2*x5^6) + (8*x1^1*x4^1*x5^6) + (-123*x2^1*x4^1*x5^6) + (-3*x3^1*x4^1*x5^6) + (-123*x4^2*x5^6) + (-86*x1^1*x5^7) + (-120*x2^1*x5^7) + (34*x3^1*x5^7) + (-123*x4^1*x5^7) + (16*x5^8) + (-41*x1^1*x2^1) + (-41*x2^2) + (13*x1^1*x3^1) + (79*x2^1*x3^1) + (120*x3^2) + (-19*x1^1*x4^1) + (101*x2^1*x4^1) + (-30*x3^1*x4^1) + (101*x4^2) + (124*x1^1*x5^1) + (71*x2^1*x5^1) + (-7*x3^1*x5^1) + (101*x4^1*x5^1) + (-42*x5^2)");
groebnerBasisCyclic6Short.push_back("(1*x4^3*x5^6) + (44*x4^1*x5^8) + (7*x2^1*x3^2) + (22*x3^3) + (-99*x1^1*x2^1*x4^1) + (86*x2^2*x4^1) + (-13*x1^1*x3^1*x4^1) + (-114*x2^1*x3^1*x4^1) + (-65*x3^2*x4^1) + (63*x1^1*x4^2) + (-88*x2^1*x4^2) + (-63*x3^1*x4^2) + (14*x4^3) + (14*x1^1*x2^1*x5^1) + (80*x2^2*x5^1) + (7*x1^1*x3^1*x5^1) + (10*x2^1*x3^1*x5^1) + (119*x3^2*x5^1) + (3*x1^1*x4^1*x5^1) + (-28*x2^1*x4^1*x5^1) + (60*x3^1*x4^1*x5^1) + (-4*x4^2*x5^1) + (25*x1^1*x5^2) + (-42*x2^1*x5^2) + (-15*x3^1*x5^2) + (-19*x4^1*x5^2) + (-5*x5^3)");
groebnerBasisCyclic6Short.push_back("(1*x2^1*x3^1*x5^7) + (110*x4^1*x5^8) + (-86*x2^1*x3^2) + (12*x3^3) + (103*x1^1*x2^1*x4^1) + (52*x2^2*x4^1) + (80*x1^1*x3^1*x4^1) + (4*x2^1*x3^1*x4^1) + (15*x3^2*x4^1) + (19*x1^1*x4^2) + (72*x2^1*x4^2) + (49*x3^1*x4^2) + (50*x4^3) + (-92*x1^1*x2^1*x5^1) + (-41*x2^2*x5^1) + (26*x1^1*x3^1*x5^1) + (31*x2^1*x3^1*x5^1) + (-40*x3^2*x5^1) + (-40*x1^1*x4^1*x5^1) + (28*x2^1*x4^1*x5^1) + (93*x3^1*x4^1*x5^1) + (107*x4^2*x5^1) + (-96*x1^1*x5^2) + (-17*x2^1*x5^2) + (110*x3^1*x5^2) + (105*x4^1*x5^2) + (98*x5^3)");
groebnerBasisCyclic6Short.push_back("(1*x3^2*x5^7) + (-2*x4^1*x5^8) + (-43*x2^1*x3^2) + (-13*x3^3) + (-86*x1^1*x2^1*x4^1) + (74*x2^2*x4^1) + (9*x1^1*x3^1*x4^1) + (5*x2^1*x3^1*x4^1) + (-46*x3^2*x4^1) + (74*x1^1*x4^2) + (9*x2^1*x4^2) + (-70*x3^1*x4^2) + (-90*x4^3) + (-1*x1^1*x2^1*x5^1) + (90*x2^2*x5^1) + (47*x1^1*x3^1*x5^1) + (-32*x2^1*x3^1*x5^1) + (23*x3^2*x5^1) + (-95*x1^1*x4^1*x5^1) + (-26*x2^1*x4^1*x5^1) + (-104*x3^1*x4^1*x5^1) + (-59*x4^2*x5^1) + (52*x1^1*x5^2) + (77*x2^1*x5^2) + (87*x3^1*x5^2) + (82*x4^1*x5^2) + (37*x5^3)");
groebnerBasisCyclic6Short.push_back("(1*x1^1*x4^1*x5^7) + (-53*x4^1*x5^8) + (96*x2^1*x3^2) + (-58*x3^3) + (-64*x1^1*x2^1*x4^1) + (-1*x2^2*x4^1) + (-6*x1^1*x3^1*x4^1) + (-50*x2^1*x3^1*x4^1) + (-71*x3^2*x4^1) + (13*x1^1*x4^2) + (-50*x2^1*x4^2) + (70*x3^1*x4^2) + (-90*x4^3) + (-37*x1^1*x2^1*x5^1) + (-100*x2^2*x5^1) + (-62*x1^1*x3^1*x5^1) + (44*x2^1*x3^1*x5^1) + (88*x3^2*x5^1) + (19*x1^1*x4^1*x5^1) + (-85*x2^1*x4^1*x5^1) + (77*x3^1*x4^1*x5^1) + (-71*x4^2*x5^1) + (-115*x1^1*x5^2) + (-7*x2^1*x5^2) + (-80*x3^1*x5^2) + (9*x4^1*x5^2) + (81*x5^3)");
groebnerBasisCyclic6Short.push_back("(1*x2^1*x4^1*x5^7) + (55*x4^1*x5^8) + (-38*x2^1*x3^2) + (-125*x3^3) + (-70*x1^1*x2^1*x4^1) + (56*x2^2*x4^1) + (87*x1^1*x3^1*x4^1) + (77*x2^1*x3^1*x4^1) + (-16*x3^2*x4^1) + (-114*x1^1*x4^2) + (-39*x2^1*x4^2) + (-13*x3^1*x4^2) + (57*x4^3) + (90*x1^1*x2^1*x5^1) + (-36*x2^2*x5^1) + (-80*x1^1*x3^1*x5^1) + (51*x2^1*x3^1*x5^1) + (-38*x3^2*x5^1) + (-75*x1^1*x4^1*x5^1) + (99*x2^1*x4^1*x5^1) + (27*x3^1*x4^1*x5^1) + (55*x4^2*x5^1) + (-89*x1^1*x5^2) + (-91*x2^1*x5^2) + (80*x3^1*x5^2) + (-75*x4^1*x5^2) + (-87*x5^3)");
groebnerBasisCyclic6Short.push_back("(1*x3^1*x4^1*x5^7) + (82*x4^1*x5^8) + (-72*x2^1*x3^2) + (113*x3^3) + (-5*x1^1*x2^1*x4^1) + (97*x2^2*x4^1) + (98*x1^1*x3^1*x4^1) + (75*x2^1*x3^1*x4^1) + (103*x3^2*x4^1) + (-67*x1^1*x4^2) + (-43*x2^1*x4^2) + (-125*x3^1*x4^2) + (-59*x4^3) + (12*x1^1*x2^1*x5^1) + (-90*x2^2*x5^1) + (-76*x1^1*x3^1*x5^1) + (1*x2^1*x3^1*x5^1) + (-18*x3^2*x5^1) + (82*x1^1*x4^1*x5^1) + (17*x3^1*x4^1*x5^1) + (-17*x4^2*x5^1) + (-44*x1^1*x5^2) + (60*x2^1*x5^2) + (53*x3^1*x5^2) + (123*x4^1*x5^2) + (-50*x5^3)");
groebnerBasisCyclic6Short.push_back("(1*x4^2*x5^7) + (-83*x4^1*x5^8) + (-94*x2^1*x3^2) + (-111*x3^3) + (96*x1^1*x2^1*x4^1) + (24*x2^2*x4^1) + (-59*x1^1*x3^1*x4^1) + (-51*x2^1*x3^1*x4^1) + (-78*x3^2*x4^1) + (86*x1^1*x4^2) + (57*x2^1*x4^2) + (-57*x3^1*x4^2) + (-89*x4^3) + (86*x1^1*x2^1*x5^1) + (-93*x2^2*x5^1) + (42*x1^1*x3^1*x5^1) + (115*x2^1*x3^1*x5^1) + (35*x3^2*x5^1) + (-85*x1^1*x4^1*x5^1) + (117*x2^1*x4^1*x5^1) + (83*x3^1*x4^1*x5^1) + (61*x4^2*x5^1) + (85*x1^1*x5^2) + (-100*x2^1*x5^2) + (102*x3^1*x5^2) + (-109*x4^1*x5^2) + (19*x5^3)");
groebnerBasisCyclic6Short.push_back("(1*x1^1*x5^8) + (-8*x4^1*x5^8) + (12*x2^1*x3^2) + (8*x3^3) + (26*x1^1*x2^1*x4^1) + (-61*x2^2*x4^1) + (57*x1^1*x3^1*x4^1) + (-26*x2^1*x3^1*x4^1) + (-118*x3^2*x4^1) + (45*x1^1*x4^2) + (54*x2^1*x4^2) + (-91*x3^1*x4^2) + (80*x4^3) + (47*x1^1*x2^1*x5^1) + (-117*x2^2*x5^1) + (102*x1^1*x3^1*x5^1) + (30*x2^1*x3^1*x5^1) + (85*x3^2*x5^1) + (-30*x1^1*x4^1*x5^1) + (42*x2^1*x4^1*x5^1) + (-109*x3^1*x4^1*x5^1) + (59*x4^2*x5^1) + (3*x1^1*x5^2) + (107*x2^1*x5^2) + (12*x3^1*x5^2) + (65*x4^1*x5^2) + (-24*x5^3)");
groebnerBasisCyclic6Short.push_back("(1*x2^1*x5^8) + (114*x2^1*x3^2) + (-118*x3^3) + (4*x1^1*x2^1*x4^1) + (92*x2^2*x4^1) + (105*x1^1*x3^1*x4^1) + (-73*x2^1*x3^1*x4^1) + (-119*x3^2*x4^1) + (45*x1^1*x4^2) + (92*x2^1*x4^2) + (86*x3^1*x4^2) + (-118*x4^3) + (-56*x1^1*x2^1*x5^1) + (107*x2^2*x5^1) + (-118*x1^1*x3^1*x5^1) + (-75*x2^1*x3^1*x5^1) + (34*x3^2*x5^1) + (122*x1^1*x4^1*x5^1) + (69*x2^1*x4^1*x5^1) + (90*x3^1*x4^1*x5^1) + (-8*x4^2*x5^1) + (-102*x1^1*x5^2) + (-33*x2^1*x5^2) + (-68*x3^1*x5^2) + (-76*x4^1*x5^2) + (3*x5^3)");
groebnerBasisCyclic6Short.push_back("(1*x3^1*x5^8) + (8*x4^1*x5^8) + (124*x2^1*x3^2) + (47*x3^3) + (-97*x1^1*x2^1*x4^1) + (-81*x2^2*x4^1) + (-29*x1^1*x3^1*x4^1) + (40*x2^1*x3^1*x4^1) + (26*x3^2*x4^1) + (34*x1^1*x4^2) + (55*x2^1*x4^2) + (-4*x3^1*x4^2) + (-25*x4^3) + (5*x1^1*x2^1*x5^1) + (-11*x2^2*x5^1) + (-39*x1^1*x3^1*x5^1) + (75*x2^1*x3^1*x5^1) + (-56*x3^2*x5^1) + (79*x1^1*x4^1*x5^1) + (68*x2^1*x4^1*x5^1) + (71*x3^1*x4^1*x5^1) + (99*x4^2*x5^1) + (47*x1^1*x5^2) + (115*x2^1*x5^2) + (67*x3^1*x5^2) + (-40*x4^1*x5^2) + (-77*x5^3)");
groebnerBasisCyclic6Short.push_back("(1*x5^9) + (87*x2^1*x3^2) + (102*x3^3) + (-28*x1^1*x2^1*x4^1) + (52*x2^2*x4^1) + (-79*x1^1*x3^1*x4^1) + (121*x2^1*x3^1*x4^1) + (29*x3^2*x4^1) + (110*x1^1*x4^2) + (52*x2^1*x4^2) + (69*x3^1*x4^2) + (102*x4^3) + (99*x1^1*x2^1*x5^1) + (19*x2^2*x5^1) + (65*x1^1*x3^1*x5^1) + (56*x2^1*x3^1*x5^1) + (-32*x3^2*x5^1) + (-55*x1^1*x4^1*x5^1) + (19*x2^1*x4^1*x5^1) + (-47*x3^1*x4^1*x5^1) + (83*x4^2*x5^1) + (-112*x1^1*x5^2) + (-122*x2^1*x5^2) + (107*x3^1*x5^2) + (-44*x4^1*x5^2) + (99*x5^3)");
groebnerBasisCyclic6Short.push_back("(1*x3^2*x4^2) + (70*x4^4) + (109*x2^1*x3^2*x5^1) + (125*x3^3*x5^1) + (29*x1^1*x2^1*x4^1*x5^1) + (31*x2^2*x4^1*x5^1) + (99*x1^1*x3^1*x4^1*x5^1) + (5*x2^1*x3^1*x4^1*x5^1) + (16*x3^2*x4^1*x5^1) + (-112*x1^1*x4^2*x5^1) + (-49*x2^1*x4^2*x5^1) + (57*x3^1*x4^2*x5^1) + (-43*x4^3*x5^1) + (116*x1^1*x2^1*x5^2) + (114*x2^2*x5^2) + (-95*x1^1*x3^1*x5^2) + (-89*x2^1*x3^1*x5^2) + (-13*x3^2*x5^2) + (31*x1^1*x4^1*x5^2) + (-52*x2^1*x4^1*x5^2) + (-7*x3^1*x4^1*x5^2) + (-56*x4^2*x5^2) + (-68*x1^1*x5^3) + (9*x2^1*x5^3) + (-39*x3^1*x5^3) + (116*x4^1*x5^3) + (-54*x5^4)");
groebnerBasisCyclic6Short.push_back("(1*x1^1*x4^3) + (82*x4^4) + (-53*x2^1*x3^2*x5^1) + (105*x3^3*x5^1) + (19*x1^1*x2^1*x4^1*x5^1) + (-6*x2^2*x4^1*x5^1) + (62*x1^1*x3^1*x4^1*x5^1) + (47*x2^1*x3^1*x4^1*x5^1) + (119*x3^2*x4^1*x5^1) + (93*x1^1*x4^2*x5^1) + (108*x2^1*x4^2*x5^1) + (-61*x3^1*x4^2*x5^1) + (-9*x4^3*x5^1) + (38*x1^1*x2^1*x5^2) + (63*x2^2*x5^2) + (96*x1^1*x3^1*x5^2) + (-20*x2^1*x3^1*x5^2) + (113*x3^2*x5^2) + (-117*x1^1*x4^1*x5^2) + (93*x2^1*x4^1*x5^2) + (36*x3^1*x4^1*x5^2) + (-26*x4^2*x5^2) + (59*x1^1*x5^3) + (-4*x2^1*x5^3) + (52*x3^1*x5^3) + (38*x4^1*x5^3) + (76*x5^4)");
groebnerBasisCyclic6Short.push_back("(1*x2^1*x4^3) + (117*x4^4) + (31*x2^1*x3^2*x5^1) + (114*x3^3*x5^1) + (89*x1^1*x2^1*x4^1*x5^1) + (47*x2^2*x4^1*x5^1) + (50*x1^1*x3^1*x4^1*x5^1) + (-107*x2^1*x3^1*x4^1*x5^1) + (-72*x3^2*x4^1*x5^1) + (49*x1^1*x4^2*x5^1) + (121*x2^1*x4^2*x5^1) + (-101*x3^1*x4^2*x5^1) + (-84*x4^3*x5^1) + (59*x1^1*x2^1*x5^2) + (101*x2^2*x5^2) + (-81*x1^1*x3^1*x5^2) + (21*x2^1*x3^1*x5^2) + (-40*x3^2*x5^2) + (90*x1^1*x4^1*x5^2) + (-121*x2^1*x4^1*x5^2) + (25*x3^1*x4^1*x5^2) + (-55*x4^2*x5^2) + (-5*x1^1*x5^3) + (-4*x2^1*x5^3) + (-19*x3^1*x5^3) + (59*x4^1*x5^3) + (-34*x5^4)");
groebnerBasisCyclic6Short.push_back("(1*x3^1*x4^3) + (-64*x4^4) + (-13*x2^1*x3^2*x5^1) + (-83*x3^3*x5^1) + (103*x1^1*x2^1*x4^1*x5^1) + (-85*x2^2*x4^1*x5^1) + (-37*x1^1*x3^1*x4^1*x5^1) + (94*x2^1*x3^1*x4^1*x5^1) + (105*x3^2*x4^1*x5^1) + (92*x1^1*x4^2*x5^1) + (30*x2^1*x4^2*x5^1) + (61*x3^1*x4^2*x5^1) + (51*x4^3*x5^1) + (4*x1^1*x2^1*x5^2) + (-59*x2^2*x5^2) + (-91*x1^1*x3^1*x5^2) + (-68*x2^1*x3^1*x5^2) + (54*x3^2*x5^2) + (-27*x1^1*x4^1*x5^2) + (-109*x2^1*x4^1*x5^2) + (-13*x3^1*x4^1*x5^2) + (11*x4^2*x5^2) + (-44*x1^1*x5^3) + (-115*x2^1*x5^3) + (-48*x3^1*x5^3) + (4*x4^1*x5^3) + (-5*x5^4)");
/* 16 bits */
bool testCyclic6 = true;
size_t i = 0;
while(i < basisShort.size() && testCyclic6 == true )
{
testCyclic6 = testCyclic6 && (groebnerBasisCyclic6Short[i].compare(basisShort[i])==0);
i++;
}
if(testCyclic6==true)
{
cout << "Test cyclic6 16 bits pass" << endl;
return 0;
}
else
{
cout << "Test cyclic6 16 bits failed" << endl;
return -1;
}
}