F4
Library for Gröebner basis computation in finite field.
 All Classes Namespaces Files Functions Variables Friends Pages
benchmark-gf2.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2015 Antoine Joux, Vanessa Vitse and Titouan Coladon
3  *
4  * This file is part of F4.
5  *
6  * F4 is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * F4 is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with F4. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
28 #include <iostream>
29 #include <f4.h>
30 
31 using namespace F4;
32 using namespace std;
33 
34 // Global variable
35 int F4::VERBOSE=0;
36 #ifdef USE_OPENMP
37 int F4::NB_THREAD=min(8, omp_get_num_procs());
38 #else
39 int F4::NB_THREAD=1;
40 #endif
41 
42 
43 // Init element-gf2 tools
44 typedef ElementGF2 eltType;
45 int modulo=2;
46 
47 int cyclic6F4(bool magma)
48 {
49  cout << "#########################################################" << endl;
50  cout << "# CYCLIC 6 #" << endl;
51  cout << "#########################################################" << endl << endl;
52 
53  // Number of generator
54  int nbGen;
55 
56  // Init monomial tools
58 
59  // Create polynomial array
60  vector<Polynomial<eltType>> polCyclic6;
61 
62  // Fill the polynomial array
63  polCyclic6.emplace_back("x0+x1+x2+x3+x4+x5");
64  polCyclic6.emplace_back("x0*x1+x1*x2+x2*x3+x3*x4+x0*x5+x4*x5");
65  polCyclic6.emplace_back("x0*x1*x2+x1*x2*x3+x2*x3*x4+x0*x1*x5+x0*x4*x5+x3*x4*x5");
66  polCyclic6.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");
67  polCyclic6.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");
68  polCyclic6.emplace_back("x0*x1*x2*x3*x4*x5-1");
69 
70  // Create cyclic6 ideal;
71  Ideal<eltType> cyclic6(polCyclic6, 6, 100000);
72 
73  // Compute a reduced groebner basis;
74  nbGen=cyclic6.f4();
75 
76  // Print the reduced groebner basis into a file
77  if(magma)
78  {
79  cyclic6.printReducedGroebnerBasis("cyclic6", modulo);
80  }
81 
82  return nbGen;
83 }
84 
85 int cyclic7F4(bool magma)
86 {
87  cout << "#########################################################" << endl;
88  cout << "# CYCLIC 7 #" << endl;
89  cout << "#########################################################" << endl << endl;
90 
91  // Number of generator
92  int nbGen;
93 
94  // Init monomial tools
96 
97  // Create polynomial array
98  vector<Polynomial<eltType>> polCyclic7;
99 
100  // Fill the polynomial array
101  polCyclic7.emplace_back("x0+x1+x2+x3+x4+x5+x6");
102  polCyclic7.emplace_back("x0*x1+x1*x2+x2*x3+x3*x4+x4*x5+x0*x6+x5*x6");
103  polCyclic7.emplace_back("x0*x1*x2+x1*x2*x3+x2*x3*x4+x3*x4*x5+x0*x1*x6+x0*x5*x6+x4*x5*x6");
104  polCyclic7.emplace_back("x0*x1*x2*x3+x1*x2*x3*x4+x2*x3*x4*x5+x0*x1*x2*x6+x0*x1*x5*x6+x0*x4*x5*x6+x3*x4*x5*x6");
105  polCyclic7.emplace_back("x0*x1*x2*x3*x4+x1*x2*x3*x4*x5+x0*x1*x2*x3*x6+x0*x1*x2*x5*x6+x0*x1*x4*x5*x6+x0*x3*x4*x5*x6+x2*x3*x4*x5*x6");
106  polCyclic7.emplace_back("x0*x1*x2*x3*x4*x5+x0*x1*x2*x3*x4*x6+x0*x1*x2*x3*x5*x6+x0*x1*x2*x4*x5*x6+x0*x1*x3*x4*x5*x6+x0*x2*x3*x4*x5*x6+x1*x2*x3*x4*x5*x6");
107  polCyclic7.emplace_back("x0*x1*x2*x3*x4*x5*x6-1");
108 
109  // Create cyclic7 ideal;
110  Ideal<eltType> cyclic7(polCyclic7, 7 , 1000000);
111 
112  // Compute a reduced groebner basis;
113  nbGen=cyclic7.f4();
114 
115  // Print the reduced groebner basis into a file
116  if(magma)
117  {
118  cyclic7.printReducedGroebnerBasis("cyclic7", modulo);
119  }
120 
121  return nbGen;
122 }
123 
124 int cyclic8F4(bool magma)
125 {
126 
127  cout << "#########################################################" << endl;
128  cout << "# CYCLIC 8 #" << endl;
129  cout << "#########################################################" << endl << endl;
130 
131  // Number of generator
132  int nbGen;
133 
134  // Init monomial tools
136 
137  // Create polynomial array
138  vector<Polynomial<eltType>> polCyclic8;
139 
140  // Fill the polynomial array
141  polCyclic8.emplace_back("x0+x1+x2+x3+x4+x5+x6+x7");
142  polCyclic8.emplace_back("x0*x1+x1*x2+x2*x3+x3*x4+x4*x5+x5*x6+x0*x7+x6*x7");
143  polCyclic8.emplace_back("x0*x1*x2+x1*x2*x3+x2*x3*x4+x3*x4*x5+x4*x5*x6+x0*x1*x7+x0*x6*x7+x5*x6*x7");
144  polCyclic8.emplace_back("x0*x1*x2*x3+x1*x2*x3*x4+x2*x3*x4*x5+x3*x4*x5*x6+x0*x1*x2*x7+x0*x1*x6*x7+x0*x5*x6*x7+x4*x5*x6*x7");
145  polCyclic8.emplace_back("x0*x1*x2*x3*x4+x1*x2*x3*x4*x5+x2*x3*x4*x5*x6+x0*x1*x2*x3*x7+x0*x1*x2*x6*x7+x0*x1*x5*x6*x7+x0*x4*x5*x6*x7+x3*x4*x5*x6*x7");
146  polCyclic8.emplace_back("x0*x1*x2*x3*x4*x5+x1*x2*x3*x4*x5*x6+x0*x1*x2*x3*x4*x7+x0*x1*x2*x3*x6*x7+x0*x1*x2*x5*x6*x7+x0*x1*x4*x5*x6*x7+x0*x3*x4*x5*x6*x7+x2*x3*x4*x5*x6*x7");
147  polCyclic8.emplace_back("x0*x1*x2*x3*x4*x5*x6+x0*x1*x2*x3*x4*x5*x7+x0*x1*x2*x3*x4*x6*x7+x0*x1*x2*x3*x5*x6*x7+x0*x1*x2*x4*x5*x6*x7+x0*x1*x3*x4*x5*x6*x7+x0*x2*x3*x4*x5*x6*x7+x1*x2*x3*x4*x5*x6*x7");
148  polCyclic8.emplace_back("x0*x1*x2*x3*x4*x5*x6*x7-1");
149 
150  // Create cyclic8 ideal;
151  Ideal<eltType> cyclic8(polCyclic8, 8, 1000000);
152 
153  // Compute a reduced groebner basis;
154  nbGen=cyclic8.f4();
155 
156  // Print the reduced groebner basis into a file
157  if(magma)
158  {
159  cyclic8.printReducedGroebnerBasis("cyclic8", modulo);
160  }
161 
162  return nbGen;
163 }
164 
165 int cyclic9F4(bool magma)
166 {
167 
168  cout << "#########################################################" << endl;
169  cout << "# CYCLIC 9 #" << endl;
170  cout << "#########################################################" << endl << endl;
171 
172  // Number of generator
173  int nbGen;
174 
175  // Init monomial tools
177 
178  // Create polynomial array
179  vector<Polynomial<eltType>> polCyclic9;
180 
181  // Fill the polynomial array
182  polCyclic9.emplace_back("x0+x1+x2+x3+x4+x5+x6+x7+x8");
183  polCyclic9.emplace_back("x0*x1+x1*x2+x2*x3+x3*x4+x4*x5+x5*x6+x6*x7+x0*x8+x7*x8");
184  polCyclic9.emplace_back("x0*x1*x2+x1*x2*x3+x2*x3*x4+x3*x4*x5+x4*x5*x6+x5*x6*x7+x0*x1*x8+x0*x7*x8+x6*x7*x8");
185  polCyclic9.emplace_back("x0*x1*x2*x3+x1*x2*x3*x4+x2*x3*x4*x5+x3*x4*x5*x6+x4*x5*x6*x7+x0*x1*x2*x8+x0*x1*x7*x8+x0*x6*x7*x8+x5*x6*x7*x8");
186  polCyclic9.emplace_back("x0*x1*x2*x3*x4+x1*x2*x3*x4*x5+x2*x3*x4*x5*x6+x3*x4*x5*x6*x7+x0*x1*x2*x3*x8+x0*x1*x2*x7*x8+x0*x1*x6*x7*x8+x0*x5*x6*x7*x8+x4*x5*x6*x7*x8");
187  polCyclic9.emplace_back("x0*x1*x2*x3*x4*x5+x1*x2*x3*x4*x5*x6+x2*x3*x4*x5*x6*x7+x0*x1*x2*x3*x4*x8+x0*x1*x2*x3*x7*x8+x0*x1*x2*x6*x7*x8+x0*x1*x5*x6*x7*x8+x0*x4*x5*x6*x7*x8+x3*x4*x5*x6*x7*x8");
188  polCyclic9.emplace_back("x0*x1*x2*x3*x4*x5*x6+x1*x2*x3*x4*x5*x6*x7+x0*x1*x2*x3*x4*x5*x8+x0*x1*x2*x3*x4*x7*x8+x0*x1*x2*x3*x6*x7*x8+x0*x1*x2*x5*x6*x7*x8+x0*x1*x4*x5*x6*x7*x8+x0*x3*x4*x5*x6*x7*x8+x2*x3*x4*x5*x6*x7*x8");
189  polCyclic9.emplace_back("x0*x1*x2*x3*x4*x5*x6*x7+x0*x1*x2*x3*x4*x5*x6*x8+x0*x1*x2*x3*x4*x5*x7*x8+x0*x1*x2*x3*x4*x6*x7*x8+x0*x1*x2*x3*x5*x6*x7*x8+x0*x1*x2*x4*x5*x6*x7*x8+x0*x1*x3*x4*x5*x6*x7*x8+x0*x2*x3*x4*x5*x6*x7*x8+x1*x2*x3*x4*x5*x6*x7*x8");
190  polCyclic9.emplace_back("x0*x1*x2*x3*x4*x5*x6*x7*x8-1");
191 
192  // Create cyclic9 ideal;
193  Ideal<eltType> cyclic9(polCyclic9, 9, 20000000);
194 
195  // Compute a reduced groebner basis;
196  nbGen=cyclic9.f4();
197 
198  // Print the reduced groebner basis into a file
199  if(magma)
200  {
201  cyclic9.printReducedGroebnerBasis("cyclic9", modulo);
202  }
203 
204  return nbGen;
205 }
206 
207 int HFE_25_96_F4(bool magma)
208 {
209  cout << "#########################################################" << endl;
210  cout << "# HFE 25 96 #" << endl;
211  cout << "#########################################################" << endl << endl;
212 
213  // Number of generator
214  int nbGen;
215 
216  // Init monomial tools
218 
219  string * vars = new string[25];
220  for(int i=0; i<25; i++)
221  {
222  vars[i]=string(string("x")+to_string(i+1));
223  }
224  Monomial::setVariable(vars);
225 
226  // Create polynomial array
227  vector<Polynomial<eltType>> polHFE_25_96;
228 
229  polHFE_25_96.emplace_back("x1^2+x1");
230  polHFE_25_96.emplace_back("x2^2+x2");
231  polHFE_25_96.emplace_back("x3^2+x3");
232  polHFE_25_96.emplace_back("x4^2+x4");
233  polHFE_25_96.emplace_back("x5^2+x5");
234  polHFE_25_96.emplace_back("x6^2+x6");
235  polHFE_25_96.emplace_back("x7^2+x7");
236  polHFE_25_96.emplace_back("x8^2+x8");
237  polHFE_25_96.emplace_back("x9^2+x9");
238  polHFE_25_96.emplace_back("x10^2+x10");
239  polHFE_25_96.emplace_back("x11^2+x11");
240  polHFE_25_96.emplace_back("x12^2+x12");
241  polHFE_25_96.emplace_back("x13^2+x13");
242  polHFE_25_96.emplace_back("x14^2+x14");
243  polHFE_25_96.emplace_back("x15^2+x15");
244  polHFE_25_96.emplace_back("x16^2+x16");
245  polHFE_25_96.emplace_back("x17^2+x17");
246  polHFE_25_96.emplace_back("x18^2+x18");
247  polHFE_25_96.emplace_back("x19^2+x19");
248  polHFE_25_96.emplace_back("x20^2+x20");
249  polHFE_25_96.emplace_back("x21^2+x21");
250  polHFE_25_96.emplace_back("x22^2+x22");
251  polHFE_25_96.emplace_back("x23^2+x23");
252  polHFE_25_96.emplace_back("x24^2+x24");
253  polHFE_25_96.emplace_back("x25^2+x25");
254  polHFE_25_96.emplace_back("x2*x3 + x1*x4 + x2*x4 + x2*x5 + x1*x6 + x3*x6 + x4*x6 + x5*x6 + x2*x7 + x4*x7 + x6*x8 + x7*x8 + x1*x9 + x2*x9 + x3*x9 + x4*x9 + x7*x9 + x2*x10 + x4*x10 + x7*x10 + x8*x10 + x3*x11 + x4*x11 + x6*x11 + x7*x11 + x8*x11 + x9*x11 + x10*x11 + x4*x12 + x5*x12 + x6*x12 + x7*x12 + x9*x12 + x10*x12 + x11*x12 + x1*x13 + x2*x13 + x5*x13 + x6*x13 + x9*x13 + x11*x13 + x12*x13 + x5*x14 + x6*x14 + x11*x14 + x13*x14 + x6*x15 + x7*x15 + x8*x15 + x9*x15 + x10*x15 + x12*x15 + x13*x15 + x1*x16 + x2*x16 + x3*x16 + x4*x16 + x7*x16 + x9*x16 + x10*x16 + x12*x16 + x13*x16 + x14*x16 + x15*x16 + x2*x17 + x4*x17 + x6*x17 + x9*x17 + x10*x17 + x11*x17 + x15*x17 + x16*x17 + x2*x18 + x4*x18 + x5*x18 + x7*x18 + x10*x18 + x13*x18 + x14*x18 + x16*x18 + x17*x18 + x2*x19 + x3*x19 + x4*x19 + x6*x19 + x7*x19 + x8*x19 + x10*x19 + x12*x19 + x13*x19 + x15*x19 + x16*x19 + x17*x19 + x18*x19 + x2*x20 + x3*x20 + x5*x20 + x6*x20 + x11*x20 + x12*x20 + x13*x20 + x14*x20 + x17*x20 + x19*x20 + x1*x21 + x5*x21 + x7*x21 + x9*x21 + x10*x21 + x16*x21 + x17*x21 + x19*x21 + x3*x22 + x4*x22 + x6*x22 + x7*x22 + x9*x22 + x10*x22 + x12*x22 + x14*x22 + x15*x22 + x17*x22 + x18*x22 + x19*x22 + x20*x22 + x21*x22 + x1*x23 + x2*x23 + x5*x23 + x6*x23 + x8*x23 + x10*x23 + x12*x23 + x17*x23 + x18*x23 + x19*x23 + x4*x24 + x7*x24 + x8*x24 + x9*x24 + x10*x24 + x12*x24 + x13*x24 + x14*x24 + x19*x24 + x21*x24 + x3*x25 + x5*x25 + x8*x25 + x9*x25 + x11*x25 + x12*x25 + x13*x25 + x14*x25 + x15*x25 + x20*x25 + x21*x25 + x22*x25 + x23*x25 + x1 + x2 + x7 + x9 + x11 + x12 + x19 + x20 + x21 + x25");
255  polHFE_25_96.emplace_back("x1*x3 + x3*x4 + x1*x5 + x3*x5 + x4*x5 + x1*x6 + x4*x6 + x1*x7 + x2*x7 + x3*x7 + x1*x8 + x5*x8 + x1*x9 + x2*x9 + x3*x9 + x6*x9 + x4*x10 + x6*x10 + x1*x11 + x2*x11 + x3*x11 + x5*x11 + x7*x11 + x8*x11 + x10*x11 + x8*x12 + x10*x12 + x11*x12 + x1*x13 + x3*x13 + x5*x13 + x6*x13 + x9*x13 + x11*x13 + x12*x13 + x1*x14 + x4*x14 + x5*x14 + x6*x14 + x9*x14 + x13*x14 + x1*x15 + x2*x15 + x5*x15 + x7*x15 + x10*x15 + x13*x15 + x2*x16 + x3*x16 + x4*x16 + x8*x16 + x9*x16 + x11*x16 + x12*x16 + x1*x17 + x2*x17 + x3*x17 + x6*x17 + x7*x17 + x9*x17 + x10*x17 + x11*x17 + x13*x17 + x15*x17 + x16*x17 + x2*x18 + x4*x18 + x5*x18 + x6*x18 + x7*x18 + x10*x18 + x11*x18 + x14*x18 + x15*x18 + x1*x19 + x3*x19 + x4*x19 + x7*x19 + x8*x19 + x11*x19 + x12*x19 + x13*x19 + x15*x19 + x16*x19 + x17*x19 + x18*x19 + x1*x20 + x5*x20 + x6*x20 + x7*x20 + x13*x20 + x15*x20 + x17*x20 + x19*x20 + x1*x21 + x2*x21 + x5*x21 + x7*x21 + x8*x21 + x13*x21 + x15*x21 + x17*x21 + x18*x21 + x19*x21 + x3*x22 + x8*x22 + x9*x22 + x10*x22+ x11*x22 + x16*x22 + x17*x22 + x20*x22 + x3*x23 + x4*x23 + x5*x23 + x6*x23 + x8*x23 + x17*x23 + x19*x23 + x1*x24 + x4*x24 + x5*x24 + x7*x24 + x9*x24 + x10*x24 + x12*x24 + x13*x24 + x15*x24 + x19*x24 + x22*x24 + x23*x24 + x1*x25 + x3*x25 + x4*x25 + x5*x25 + x7*x25 + x10*x25 + x11*x25 + x14*x25 + x15*x25 + x16*x25 + x17*x25 + x19*x25 + x1 + x7 + x11 + x15 + x16 + x22 + x23 + x24");
256  polHFE_25_96.emplace_back("x1*x3 + x2*x3 + x1*x4 + x2*x4 + x1*x5 + x2*x5 + x3*x7 + x6*x7 + x2*x8 + x4*x8 + x1*x9 + x3*x9 + x6*x9 + x3*x10 + x4*x10 + x6*x10 + x8*x10 + x9*x10 + x1*x11 + x5*x11 + x9*x11 + x2*x12 + x3*x12 + x5*x12 +x8*x12 + x10*x12 + x11*x12 + x1*x13 + x2*x13 + x3*x13 + x6*x13 + x7*x13 + x8*x13 + x2*x14 + x3*x14 + x6*x14 + x7*x14 + x8*x14 + x9*x14 + x10*x14 + x11*x14 + x12*x14 + x13*x14 + x1*x15 + x3*x15 + x6*x15 + x7*x15 + x8*x15 + x9*x15 + x13*x15 + x1*x16 + x2*x16 + x3*x16 + x5*x16 + x9*x16 + x10*x16 + x13*x16 + x15*x16 + x1*x17 + x4*x17 + x5*x17 + x6*x17 + x9*x17 + x10*x17 + x11*x17 + x12*x17 + x13*x17 + x15*x17 + x2*x18 + x3*x18 + x4*x18 + x5*x18 + x6*x18 + x11*x18 + x12*x18 + x13*x18 + x15*x18 + x3*x19 + x4*x19 + x5*x19 + x6*x19 + x9*x19 + x10*x19 + x13*x19 + x16*x19 + x17*x19 + x3*x20 +x4*x20 + x6*x20 + x11*x20 + x13*x20 + x17*x20 + x19*x20 + x1*x21 + x3*x21 + x4*x21 + x7*x21 + x9*x21 + x11*x21 + x12*x21 + x14*x21 + x16*x21 + x17*x21 + x18*x21 + x19*x21 + x3*x22 + x4*x22 + x9*x22 + x10*x22 + x11*x22 + x18*x22 + x21*x22 + x3*x23 + x4*x23 + x5*x23 + x9*x23 + x10*x23 + x12*x23 + x13*x23 + x15*x23 + x16*x23 + x17*x23 + x21*x23 + x22*x23 + x2*x24 + x3*x24 + x4*x24 + x5*x24 + x6*x24 + x8*x24 + x11*x24 + x12*x24 + x20*x24 + x21*x24 + x22*x24 + x1*x25 + x4*x25 + x5*x25 + x6*x25 + x8*x25 + x9*x25 + x12*x25 + x13*x25 + x14*x25 + x17*x25 + x21*x25 + x22*x25 + x1 + x2 + x6 + x7 + x8 + x10 + x11 + x13 + x15 + x16 + x17 + x19 + x22 + x23 + x25");
257  polHFE_25_96.emplace_back("x2*x3 + x2*x4 + x1*x5 + x2*x5 + x2*x7 + x6*x7 + x1*x8 + x2*x8 + x3*x8 + x4*x8 + x5*x8 + x6*x8 + x3*x9 + x4*x9 + x5*x9 + x6*x9 + x7*x9 + x1*x10 + x2*x10 + x7*x10 + x9*x10 + x1*x11 + x3*x11 + x4*x11 + x10*x11 + x2*x12 + x3*x12 + x5*x12 + x6*x12 + x9*x12 + x11*x12 + x1*x13 + x3*x13 + x7*x13 + x1*x14 + x2*x14 + x4*x14 + x5*x14 + x9*x14 + x10*x14 + x13*x14 + x2*x15 + x3*x15 + x6*x15 + x7*x15 + x9*x15 + x13*x15 + x2*x16 + x3*x16 + x5*x16 + x10*x16 + x11*x16 + x12*x16 + x14*x16 + x15*x16 + x1*x17 + x4*x17 + x8*x17 + x9*x17 + x10*x17 + x14*x17 + x15*x17 + x16*x17 + x1*x18 + x3*x18 + x4*x18 +x6*x18 + x7*x18 + x8*x18 + x10*x18 + x11*x18 + x12*x18 + x15*x18 + x1*x19 + x7*x19 + x8*x19 + x12*x19 + x14*x19 + x17*x19 + x3*x20 + x5*x20 + x6*x20 + x7*x20 + x8*x20 + x10*x20 + x12*x20 + x13*x20 +x14*x20 + x15*x20 + x19*x20 + x3*x21 + x4*x21 + x5*x21 + x7*x21 + x9*x21 + x11*x21 + x13*x21 + x16*x21 + x17*x21 + x20*x21 + x1*x22 + x2*x22 + x3*x22 + x4*x22 + x5*x22 + x7*x22 + x8*x22 + x9*x22 + x12*x22 + x13*x22 + x15*x22 + x16*x22 + x18*x22 + x20*x22 + x21*x22 + x2*x23 + x4*x23 + x5*x23 + x7*x23 + x8*x23 + x11*x23 + x12*x23 + x15*x23 + x3*x24 + x4*x24 + x7*x24 + x9*x24 + x12*x24 + x13*x24+ x14*x24 + x15*x24 + x16*x24 + x18*x24 + x20*x24 + x2*x25 + x3*x25 + x4*x25 + x5*x25 + x10*x25 + x11*x25 + x12*x25 + x15*x25 + x17*x25 + x21*x25 + x23*x25 + x2 + x4 + x5 + x6 + x9 + x10 + x11 + x12+ x13 + x15 + x17 + x18 + x19 + x20 + x21 + x22 + x24 + x25 + 1");
258  polHFE_25_96.emplace_back("x1*x2 + x3*x4 + x3*x5 + x4*x6 + x1*x7 + x2*x7 + x4*x7 + x5*x7 + x6*x7 + x1*x8 + x3*x8 + x4*x8 + x6*x8 + x1*x9 + x4*x9 + x5*x9 + x6*x9 + x7*x9 + x3*x10 + x6*x10 + x9*x10 + x1*x11 + x2*x11 + x3*x11 + x4*x11 + x7*x11 + x8*x11 + x10*x11 + x5*x12 + x11*x12 + x1*x13 + x2*x13 + x3*x13 + x4*x13 + x5*x13 + x6*x13 + x7*x13 + x9*x13 + x12*x13 + x2*x14 + x3*x14 + x4*x14 + x5*x14 + x8*x14 + x10*x14 + x13*x14 + x1*x15 + x2*x15 + x3*x15 + x5*x15 + x6*x15 + x7*x15 + x13*x15 + x1*x16 + x2*x16 + x4*x16 + x10*x16 + x11*x16 + x12*x16 + x13*x16 + x14*x16 + x3*x17 + x4*x17 + x6*x17 + x7*x17 + x9*x17 + x10*x17 + x12*x17 + x13*x17 + x15*x17 + x3*x18 + x8*x18 + x17*x18 + x1*x19 + x3*x19 + x5*x19 + x8*x19 + x11*x19 + x12*x19 + x13*x19 + x14*x19 + x18*x19 + x1*x20 + x4*x20 + x5*x20 + x9*x20 + x12*x20 + x13*x20 + x14*x20 + x18*x20 + x1*x21 + x2*x21 + x3*x21 + x4*x21 + x6*x21 + x7*x21 + x9*x21 + x10*x21 + x11*x21 + x13*x21 + x17*x21 + x19*x21 + x3*x22 + x5*x22 + x8*x22 + x9*x22 + x13*x22 + x14*x22+ x16*x22 + x17*x22 + x18*x22 + x21*x22 + x2*x23 + x3*x23 + x5*x23 + x7*x23 + x9*x23 + x11*x23 + x15*x23 + x17*x23 + x18*x23 + x20*x23 + x21*x23 + x22*x23 + x2*x24 + x3*x24 + x8*x24 + x9*x24 + x10*x24 + x13*x24 + x14*x24 + x15*x24 + x16*x24 + x17*x24 + x21*x24 + x2*x25 + x3*x25 + x4*x25 + x6*x25 + x7*x25 + x8*x25 + x9*x25 + x10*x25 + x11*x25 + x17*x25 + x19*x25 + x1 + x3 + x5 + x13 + x14 + x16 + x17 + x18 + x19 + x20 + x22 + x23 + 1");
259  polHFE_25_96.emplace_back("x1*x2 + x2*x3 + x1*x5 + x4*x5 + x1*x6 + x2*x6 + x4*x6 + x2*x7 + x1*x8 + x4*x8 + x6*x8 + x1*x9 + x2*x9 + x4*x9 + x6*x9 + x8*x9 + x2*x10 + x4*x10 + x6*x10 + x8*x10 + x4*x11 + x1*x12 + x2*x12 + x3*x12 + x5*x12 + x10*x12 + x11*x12 + x2*x13 + x3*x13 + x6*x13 + x7*x13 + x12*x13 + x1*x14 + x6*x14 + x7*x14 + x10*x14 + x12*x14 + x2*x15 + x4*x15 + x6*x15 + x7*x15 + x11*x15 + x13*x15 + x14*x15 + x2*x16 + x3*x16 + x6*x16 + x7*x16 + x9*x16 + x15*x16 + x2*x17 + x3*x17 + x5*x17 + x8*x17 + x9*x17 + x10*x17 + x15*x17 + x2*x18 + x6*x18 + x9*x18 + x13*x18 + x15*x18 + x16*x18 + x17*x18 + x3*x19 + x4*x19 + x6*x19 + x7*x19 + x8*x19 + x9*x19 + x10*x19 + x11*x19 + x12*x19 + x13*x19 + x14*x19 + x1*x20 + x2*x20 + x6*x20 + x7*x20 + x8*x20 + x10*x20 + x11*x20 + x12*x20 + x13*x20 + x17*x20 + x18*x20 + x19*x20+ x1*x21 + x2*x21 + x5*x21 + x6*x21 + x7*x21 + x8*x21 + x9*x21 + x10*x21 + x11*x21 + x12*x21 + x14*x21 + x2*x22 + x3*x22 + x5*x22 + x9*x22 + x10*x22 + x11*x22 + x13*x22 + x15*x22 + x17*x22 + x18*x22+ x19*x22 + x21*x22 + x1*x23 + x4*x23 + x5*x23 + x6*x23 + x7*x23 + x8*x23 + x10*x23 + x13*x23 + x16*x23 + x17*x23 + x1*x24 + x2*x24 + x3*x24 + x4*x24 + x6*x24 + x8*x24 + x10*x24 + x13*x24 + x17*x24 + x20*x24 + x21*x24 + x22*x24 + x23*x24 + x1*x25 + x2*x25 + x5*x25 + x6*x25 + x7*x25 + x8*x25 + x9*x25 + x10*x25 + x11*x25 + x12*x25 + x15*x25 + x16*x25 + x17*x25 + x19*x25 + x22*x25 + x24*x25 + x1 + x2 + x3 + x4 + x6 + x8 + x9 + x10 + x12 + x13 + x15 + x17 + x20 + x22 + x25 + 1");
260  polHFE_25_96.emplace_back("x1*x2 + x1*x4 + x3*x4 + x1*x6 + x3*x6 + x4*x6 + x1*x7 + x4*x7 + x5*x7 + x6*x7 + x1*x8 + x3*x8 + x4*x8 + x7*x8 + x1*x9 + x2*x9 + x4*x9 + x6*x9 + x3*x10 + x4*x10 + x6*x10 + x1*x11 + x2*x11 + x4*x11 + x8*x11 + x9*x11 + x10*x11 + x1*x12 + x4*x12 + x7*x12 + x9*x12 + x11*x12 + x4*x13 + x5*x13 + x9*x13 + x11*x13 + x12*x13 + x3*x14 + x5*x14 + x6*x14 + x10*x14 + x2*x15 + x3*x15 + x6*x15 + x13*x15 + x14*x15 + x1*x16 + x6*x16 + x7*x16 + x8*x16 + x12*x16 + x13*x16 + x15*x16 + x2*x17 + x3*x17 + x4*x17 + x7*x17 + x9*x17 + x11*x17 + x14*x17 + x15*x17 + x3*x18 + x10*x18 + x12*x18 + x15*x18 + x16*x18 + x2*x19 + x3*x19 + x4*x19 + x8*x19 + x13*x19 + x14*x19 + x16*x19 + x1*x20 + x5*x20 + x7*x20 + x8*x20 + x10*x20 + x11*x20 + x12*x20 + x16*x20 + x18*x20 + x3*x21 + x5*x21 + x7*x21 + x10*x21 + x11*x21+ x14*x21 + x15*x21 + x16*x21 + x19*x21 + x2*x22 + x3*x22 + x4*x22 + x7*x22 + x9*x22 + x10*x22 + x11*x22 + x12*x22 + x14*x22 + x17*x22 + x1*x23 + x2*x23 + x3*x23 + x5*x23 + x8*x23 + x10*x23 + x11*x23 + x13*x23 + x17*x23 + x19*x23 + x1*x24 + x2*x24 + x3*x24 + x4*x24 + x5*x24 + x6*x24 + x7*x24 + x8*x24 + x16*x24 + x17*x24 + x18*x24 + x19*x24 + x20*x24 + x22*x24 + x1*x25 + x3*x25 + x4*x25 +x7*x25 + x9*x25 + x11*x25 + x15*x25 + x17*x25 + x19*x25 + x21*x25 + x1 + x5 + x8 + x9 + x12 + x13 + x14 + x16 + x18 + x19 + x20 + x22 + x23 + x24");
261  polHFE_25_96.emplace_back("x1*x2 + x1*x3 + x2*x4 + x3*x4 + x2*x5 + x4*x5 + x1*x6 + x2*x6 + x2*x7 + x3*x7 + x4*x7 + x5*x7 + x1*x8 + x6*x8 + x1*x9 + x2*x9 + x3*x9 + x2*x10 + x3*x10 + x4*x10 + x8*x10 + x2*x11 + x3*x11 + x4*x11 + x5*x11 + x6*x11 + x7*x11 + x2*x12 + x4*x12 + x9*x12 + x11*x12 + x1*x13 + x2*x13 + x3*x13 + x5*x13 + x6*x13 + x10*x13 + x1*x14 + x4*x14 + x5*x14 + x7*x14 + x11*x14 + x12*x14 + x1*x15 + x4*x15 + x5*x15 + x6*x15 + x7*x15 + x10*x15 + x12*x15 + x13*x15 + x14*x15 + x1*x16 + x4*x16 + x5*x16 + x7*x16 + x8*x16 + x9*x16 + x12*x16 + x15*x16 + x1*x17 + x3*x17 + x4*x17 + x6*x17 + x8*x17 + x1*x18 + x3*x18 + x5*x18 + x7*x18 + x8*x18 + x10*x18 + x12*x18 + x14*x18 + x17*x18 + x1*x19 + x8*x19 + x12*x19 + x17*x19 + x1*x20 + x2*x20 + x3*x20 + x8*x20 + x13*x20 + x15*x20 + x16*x20 + x18*x20 + x3*x21 +x11*x21 + x12*x21 + x14*x21 + x15*x21 + x17*x21 + x18*x21 + x4*x22 + x5*x22 + x6*x22 + x10*x22 + x14*x22 + x15*x22 + x20*x22 + x1*x23 + x2*x23 + x4*x23 + x6*x23 + x7*x23 + x8*x23 + x10*x23 + x11*x23+ x12*x23 + x13*x23 + x15*x23 + x17*x23 + x20*x23 + x2*x24 + x3*x24 + x4*x24 + x6*x24 + x7*x24 + x8*x24 + x12*x24 + x17*x24 + x22*x24 + x3*x25 + x5*x25 + x7*x25 + x9*x25 + x11*x25 + x20*x25 + x22*x25 + x23*x25 + x24*x25 + x1 + x3 + x8 + x11 + x12 + x13 + x14 + x16 + x18 + x20 + x21 + x23 + 1");
262  polHFE_25_96.emplace_back("x1*x4 + x3*x4 + x1*x5 + x2*x5 + x4*x5 + x3*x6 + x4*x6 + x1*x7 + x2*x7 + x4*x7 + x5*x7 + x6*x7 + x1*x8 + x2*x8 + x4*x8 + x5*x8 + x7*x8 + x1*x9 + x5*x9 + x6*x9 + x7*x9 + x8*x9 + x1*x10 + x3*x10 + x7*x10 +x8*x10 + x4*x11 + x7*x11 + x9*x11 + x3*x12 + x7*x12 + x9*x12 + x11*x12 + x1*x13 + x2*x13 + x5*x13 + x6*x13 + x7*x13 + x8*x13 + x9*x13 + x11*x13 + x12*x13 + x4*x14 + x9*x14 + x11*x14 + x12*x14 + x1*x15 + x2*x15 + x3*x15 + x5*x15 + x6*x15 + x7*x15 + x8*x15 + x9*x15 + x10*x15 + x1*x16 + x3*x16 + x6*x16 + x7*x16 + x9*x16 + x10*x16 + x12*x16 + x13*x16 + x14*x16 + x15*x16 + x2*x17 + x6*x17 + x9*x17 + x11*x17 + x14*x17 + x16*x17 + x2*x18 + x3*x18 + x4*x18 + x7*x18 + x8*x18 + x9*x18 + x14*x18 + x15*x18 + x1*x19 + x2*x19 + x4*x19 + x5*x19 + x8*x19 + x9*x19 + x15*x19 + x1*x20 + x2*x20 + x3*x20 + x9*x20 + x10*x20 + x12*x20 + x13*x20 + x14*x20 + x18*x20 + x1*x21 + x2*x21 + x3*x21 + x6*x21 + x8*x21 + x10*x21 + x11*x21 + x13*x21 + x18*x21 + x20*x21 + x1*x22 + x7*x22 + x9*x22 + x13*x22 + x1*x23 + x3*x23 + x4*x23 + x5*x23 + x8*x23 + x9*x23 + x10*x23 + x11*x23 + x12*x23 + x14*x23 + x15*x23 + x16*x23 + x17*x23 + x18*x23 + x19*x23 + x2*x24 + x3*x24 + x6*x24 + x7*x24 + x8*x24 + x16*x24+ x19*x24 + x4*x25 + x6*x25 + x8*x25 + x10*x25 + x15*x25 + x17*x25 + x21*x25 + x22*x25 + x23*x25 + x1 + x2 + x3 + x4 + x5 + x8 + x9 + x10 + x11 + x19 + x22 + x25 + 1");
263  polHFE_25_96.emplace_back("x1*x3 + x1*x4 + x2*x5 + x1*x6 + x4*x6 + x5*x6 + x5*x7 + x6*x7 + x2*x8 + x3*x8 + x4*x8 + x5*x8 + x1*x10 + x4*x10 + x5*x10 + x7*x10 + x1*x11 + x2*x11 + x3*x11 + x4*x11 + x5*x11 + x7*x11 + x8*x11 + x9*x11 + x10*x11 + x2*x12 + x5*x12 + x6*x12 + x8*x12 + x9*x12 + x10*x12 + x11*x12 + x1*x13 + x6*x13 + x8*x13 + x10*x13 + x11*x13 + x12*x13 + x1*x14 + x2*x14 + x3*x14 + x6*x14 + x9*x14 + x11*x14 + x2*x15 + x4*x15 + x5*x15 + x7*x15 + x8*x15 + x11*x15 + x12*x15 + x13*x15 + x3*x16 + x5*x16 + x8*x16 + x9*x16 + x11*x16 + x12*x16 + x13*x16 + x15*x16 + x2*x17 + x3*x17 + x5*x17 + x6*x17 + x7*x17 + x8*x17 + x10*x17 + x11*x17 + x12*x17 + x13*x17 + x14*x17 + x15*x17 + x6*x18 + x7*x18 + x9*x18 + x10*x18 + x12*x18 + x13*x18 + x14*x18 + x15*x18 + x16*x18 + x17*x18 + x1*x19 + x7*x19 + x9*x19 + x10*x19 + x11*x19 + x14*x19 + x1*x20 + x2*x20 + x4*x20 + x6*x20 + x9*x20 + x10*x20 + x13*x20 + x16*x20 + x17*x20 + x18*x20 + x19*x20 + x2*x21 + x3*x21 + x4*x21 + x5*x21 + x9*x21 + x10*x21 + x14*x21 + x15*x21 + x1*x22 + x3*x22 + x6*x22 + x7*x22 + x9*x22 + x10*x22 + x11*x22 + x12*x22 + x14*x22 + x17*x22 + x18*x22 + x19*x22 + x21*x22 + x1*x23 + x2*x23 + x6*x23 + x9*x23 + x11*x23 + x12*x23 + x14*x23 + x15*x23 + x16*x23 + x19*x23 + x20*x23 + x22*x23 + x1*x24 + x4*x24 + x5*x24 + x10*x24 + x11*x24 + x12*x24 + x15*x24 + x17*x24 + x18*x24 + x20*x24 + x23*x24 + x1*x25 + x2*x25 + x3*x25 + x5*x25 + x9*x25 + x10*x25 + x15*x25 + x17*x25 + x18*x25 + x19*x25 + x20*x25 + x21*x25 + x22*x25 + x24*x25 + x2 + x6 + x7 + x10 + x11 + x14 + x16 + x17 + x18 + x19 + x24 + 1");
264  polHFE_25_96.emplace_back("x1*x4 + x1*x5 + x4*x5 + x1*x6 + x3*x7 + x5*x7 + x2*x8 + x4*x8 + x5*x8 + x7*x8 + x1*x9 + x2*x9 + x6*x9 + x2*x10 + x4*x10 + x7*x10 + x8*x10 + x2*x11 + x3*x11 + x5*x11 + x9*x11 + x6*x12 + x7*x12 + x8*x12 +x9*x12 + x10*x12 + x1*x13 + x4*x13 + x5*x13 + x9*x13 + x11*x13 + x12*x13 + x1*x14 + x10*x14 + x2*x15 + x7*x15 + x8*x15 + x9*x15 + x10*x15 + x11*x15 + x12*x15 + x13*x15 + x14*x15 + x2*x16 + x4*x16 + x6*x16 + x7*x16 + x10*x16 + x13*x16 + x15*x16 + x1*x17 + x4*x17 + x7*x17 + x9*x17 + x10*x17 + x14*x17 + x15*x17 + x16*x17 + x1*x18 + x2*x18 + x3*x18 + x5*x18 + x6*x18 + x8*x18 + x9*x18 + x11*x18 + x14*x18 + x15*x18 + x17*x18 + x1*x19 + x3*x19 + x4*x19 + x5*x19 + x6*x19 + x8*x19 + x10*x19 + x15*x19 + x18*x19 + x1*x20 + x2*x20 + x3*x20 + x6*x20 + x8*x20 + x10*x20 + x13*x20 + x16*x20 + x19*x20 +x4*x21 + x5*x21 + x6*x21 + x7*x21 + x8*x21 + x10*x21 + x11*x21 + x14*x21 + x15*x21 + x16*x21 + x18*x21 + x20*x21 + x1*x22 + x7*x22 + x9*x22 + x14*x22 + x15*x22 + x16*x22 + x17*x22 + x19*x22 + x1*x23+ x4*x23 + x5*x23 + x8*x23 + x10*x23 + x11*x23 + x13*x23 + x16*x23 + x17*x23 + x22*x23 + x2*x24 + x4*x24 + x5*x24 + x6*x24 + x7*x24 + x9*x24 + x13*x24 + x17*x24 + x18*x24 + x19*x24 + x20*x24 + x21*x24 + x3*x25 + x4*x25 + x6*x25 + x13*x25 + x14*x25 + x15*x25 + x17*x25 + x23*x25 + x1 + x6 + x9 + x10 + x13 + x14 + x15 + x19 + x21 + x24 + x25 + 1");
265  polHFE_25_96.emplace_back("x1*x2 + x1*x4 + x3*x4 + x3*x5 + x1*x6 + x3*x6 + x4*x6 + x5*x7 + x2*x8 + x5*x8 + x7*x8 + x1*x10 + x2*x10 + x7*x10 + x9*x10 + x2*x11 + x3*x11 + x4*x11 + x5*x11 + x7*x11 + x9*x11 + x1*x12 + x2*x12 + x3*x12+ x4*x12 + x5*x12 + x10*x12 + x1*x13 + x5*x13 + x6*x13 + x7*x13 + x10*x13 + x3*x14 + x4*x14 + x5*x14 + x6*x14 + x8*x14 + x10*x14 + x12*x14 + x13*x14 + x1*x15 + x3*x15 + x4*x15 + x7*x15 + x9*x15 + x11*x15 + x14*x15 + x2*x16 + x3*x16 + x4*x16 + x5*x16 + x7*x16 + x8*x16 + x9*x16 + x10*x16 + x11*x16 + x13*x16 + x1*x17 + x2*x17 + x3*x17 + x4*x17 + x7*x17 + x8*x17 + x13*x17 + x1*x18 + x2*x18 + x3*x18 + x5*x18 + x6*x18 + x10*x18 + x11*x18 + x12*x18 + x16*x18 + x17*x18 + x2*x19 + x4*x19 + x7*x19 + x9*x19 + x11*x19 + x12*x19 + x13*x19 + x14*x19 + x15*x19 + x16*x19 + x17*x19 + x18*x19 + x4*x20 + x6*x20 + x7*x20 + x10*x20 + x12*x20 + x14*x20 + x16*x20 + x19*x20 + x2*x21 + x5*x21 + x7*x21 + x8*x21 + x13*x21 + x15*x21 + x18*x21 + x19*x21 + x20*x21 + x2*x22 + x3*x22 + x5*x22 + x8*x22 +x10*x22 + x12*x22 + x14*x22 + x15*x22 + x16*x22 + x19*x22 + x20*x22 + x21*x22 + x2*x23 + x6*x23 + x7*x23 + x9*x23 + x10*x23 + x11*x23 + x15*x23 + x17*x23 + x19*x23 + x20*x23 + x3*x24 + x7*x24 + x8*x24 + x9*x24 + x10*x24 + x11*x24 + x13*x24 + x15*x24 + x18*x24 + x20*x24 + x2*x25 + x3*x25 + x5*x25 + x6*x25 + x7*x25 + x9*x25 + x13*x25 + x14*x25 + x15*x25 + x17*x25 + x19*x25 + x20*x25 + x21*x25 + x24*x25 + x1 + x2 + x3 + x7 + x9 + x10 + x11 + x15 + x16 + x17 + x18 + x19 + x20 + x21 + x22 + x23 + x25");
266  polHFE_25_96.emplace_back("x1*x3 + x2*x4 + x3*x4 + x2*x5 + x3*x5 + x2*x6 + x3*x6 + x1*x7 + x3*x7 + x4*x7 + x5*x7 + x3*x8 + x4*x8 + x5*x8 + x6*x8 + x5*x9 + x6*x9 + x7*x9 + x1*x10 + x4*x10 + x9*x10 + x1*x11 + x3*x11 + x4*x11 + x6*x11 + x8*x11 + x4*x12 + x5*x12 + x8*x12 + x9*x12 + x10*x12 + x11*x12 + x1*x13 + x4*x13 + x6*x13 + x7*x13 + x8*x13 + x9*x13 + x11*x13 + x1*x14 + x4*x14 + x6*x14 + x7*x14 + x8*x14 + x10*x14 + x13*x14 + x1*x15 + x4*x15 + x5*x15 + x10*x15 + x11*x15 + x14*x15 + x2*x16 + x4*x16 + x7*x16 + x10*x16 + x1*x17 + x3*x17 + x4*x17 + x6*x17 + x7*x17 + x8*x17 + x9*x17 + x10*x17 + x13*x17 + x15*x17 + x16*x17 + x3*x18 + x6*x18 + x9*x18 + x10*x18 + x11*x18 + x12*x18 + x14*x18 + x16*x18 + x1*x19 + x6*x19 + x7*x19 + x8*x19 + x10*x19 + x11*x19 + x14*x19 + x1*x20 + x2*x20 + x4*x20 + x5*x20 + x7*x20 + x8*x20 + x9*x20 + x11*x20 + x13*x20 + x16*x20 + x18*x20 + x19*x20 + x5*x21 + x8*x21 + x11*x21 + x14*x21 + x16*x21 + x17*x21 + x20*x21 + x1*x22 + x3*x22 + x6*x22 + x7*x22 + x9*x22 + x10*x22 + x12*x22+ x13*x22 + x14*x22 + x16*x22 + x17*x22 + x18*x22 + x20*x22 + x21*x22 + x1*x23 + x2*x23 + x3*x23 + x5*x23 + x11*x23 + x13*x23 + x14*x23 + x15*x23 + x16*x23 + x17*x23 + x18*x23 + x20*x23 + x21*x23 + x2*x24 + x6*x24 + x7*x24 + x9*x24 + x12*x24 + x16*x24 + x18*x24 + x19*x24 + x20*x24 + x2*x25 + x6*x25 + x12*x25 + x13*x25 + x15*x25 + x17*x25 + x18*x25 + x21*x25 + x22*x25 + x23*x25 + x1 + x2 + x3 +x4 + x5 + x6 + x7 + x9 + x11 + x13 + x14 + x17 + x18 + x20 + x22 + x24 + x25");
267  polHFE_25_96.emplace_back("x1*x3 + x2*x3 + x1*x4 + x1*x5 + x3*x5 + x3*x6 + x4*x6 + x5*x6 + x2*x7 + x3*x7 + x2*x8 + x3*x8 + x5*x8 + x6*x8 + x7*x8 + x1*x9 + x3*x9 + x5*x9 + x8*x9 + x2*x10 + x3*x10 + x4*x10 + x5*x10 + x7*x10 + x8*x10 + x9*x10 + x1*x11 + x3*x11 + x6*x11 + x7*x11 + x8*x11 + x10*x11 + x1*x12 + x2*x12 + x5*x12 + x9*x12 + x11*x12 + x4*x13 + x6*x13 + x7*x13 + x9*x13 + x10*x13 + x12*x13 + x3*x14 + x5*x14 + x6*x14 + x8*x14 + x11*x14 + x12*x14 + x13*x14 + x1*x15 + x2*x15 + x5*x15 + x10*x15 + x11*x15 + x1*x16 + x3*x16 + x4*x16 + x6*x16 + x8*x16 + x9*x16 + x10*x16 + x11*x16 + x12*x16 + x14*x16 + x15*x16 +x2*x17 + x4*x17 + x6*x17 + x8*x17 + x13*x17 + x14*x17 + x15*x17 + x1*x18 + x5*x18 + x9*x18 + x10*x18 + x11*x18 + x13*x18 + x17*x18 + x1*x19 + x6*x19 + x10*x19 + x11*x19 + x12*x19 + x15*x19 + x16*x19+ x17*x19 + x18*x19 + x1*x20 + x2*x20 + x4*x20 + x5*x20 + x12*x20 + x19*x20 + x4*x21 + x5*x21 + x6*x21 + x7*x21 + x8*x21 + x12*x21 + x16*x21 + x17*x21 + x18*x21 + x19*x21 + x2*x22 + x3*x22 + x7*x22 + x8*x22 + x9*x22 + x10*x22 + x12*x22 + x13*x22 + x14*x22 + x17*x22 + x21*x22 + x1*x23 + x3*x23 + x4*x23 + x8*x23 + x12*x23 + x13*x23 + x14*x23 + x15*x23 + x16*x23 + x17*x23 + x18*x23 + x19*x23 + x22*x23 + x1*x24 + x2*x24 + x3*x24 + x4*x24 + x7*x24 + x12*x24 + x14*x24 + x15*x24 + x18*x24 + x19*x24 + x21*x24 + x22*x24 + x1*x25 + x2*x25 + x3*x25 + x4*x25 + x5*x25 + x6*x25 + x10*x25 + x12*x25 +x14*x25 + x15*x25 + x17*x25 + x21*x25 + x22*x25 + x24*x25 + x2 + x3 + x5 + x11 + x14 + x16 + x24 + x25");
268  polHFE_25_96.emplace_back("x2*x3 + x1*x4 + x2*x5 + x4*x5 + x1*x7 + x5*x7 + x1*x8 + x2*x8 + x1*x9 + x4*x9 + x6*x9 + x7*x9 + x1*x10 + x2*x10 + x4*x10 + x6*x10 + x8*x10 + x9*x10 + x2*x11 + x5*x11 + x6*x11 + x8*x11 + x10*x11 + x1*x12+ x2*x12 + x3*x12 + x4*x12 + x5*x12 + x6*x12 + x7*x12 + x8*x12 + x9*x12 + x11*x12 + x1*x13 + x6*x13 + x8*x13 + x11*x13 + x2*x14 + x3*x14 + x5*x14 + x10*x14 + x2*x15 + x4*x15 + x7*x15 + x8*x15 + x9*x15 + x10*x15 + x12*x15 + x13*x15 + x1*x16 + x2*x16 + x4*x16 + x9*x16 + x10*x16 + x11*x16 + x1*x17 + x2*x17 + x4*x17 + x5*x17 + x9*x17 + x10*x17 + x11*x17 + x12*x17 + x13*x17 + x14*x17 + x2*x18 +x3*x18 + x4*x18 + x5*x18 + x6*x18 + x7*x18 + x8*x18 + x12*x18 + x16*x18 + x3*x19 + x5*x19 + x6*x19 + x8*x19 + x9*x19 + x10*x19 + x13*x19 + x15*x19 + x17*x19 + x1*x20 + x3*x20 + x4*x20 + x14*x20 + x15*x20 + x16*x20 + x17*x20 + x18*x20 + x2*x21 + x4*x21 + x6*x21 + x7*x21 + x10*x21 + x13*x21 + x14*x21 + x18*x21 + x19*x21 + x1*x22 + x2*x22 + x3*x22 + x5*x22 + x12*x22 + x15*x22 + x16*x22 + x18*x22 + x21*x22 + x1*x23 + x4*x23 + x7*x23 + x10*x23 + x16*x23 + x19*x23 + x20*x23 + x1*x24 + x4*x24 + x10*x24 + x11*x24 + x15*x24 + x16*x24 + x19*x24 + x20*x24 + x21*x24 + x23*x24 + x4*x25 + x6*x25 + x10*x25 + x12*x25 + x13*x25 + x15*x25 + x21*x25 + x22*x25 + x24*x25 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x10 + x11 + x15 + x16 + x22 + x24");
269  polHFE_25_96.emplace_back("x1*x2 + x2*x3 + x1*x4 + x2*x4 + x3*x4 + x3*x5 + x1*x6 + x5*x6 + x1*x7 + x3*x7 + x4*x7 + x6*x7 + x1*x8 + x2*x8 + x3*x8 + x4*x8 + x2*x9 + x4*x9 + x5*x9 + x7*x9 + x4*x10 + x5*x10 + x6*x10 + x1*x11 + x2*x11+ x3*x11 + x4*x11 + x6*x11 + x7*x11 + x9*x11 + x2*x12 + x4*x12 + x6*x12 + x7*x12 + x8*x12 + x9*x12 + x10*x12 + x11*x12 + x2*x13 + x4*x13 + x5*x13 + x6*x13 + x7*x13 + x9*x13 + x11*x13 + x1*x14 + x3*x14 + x6*x14 + x8*x14 + x12*x14 + x13*x14 + x3*x15 + x5*x15 + x6*x15 + x8*x15 + x11*x15 + x12*x15 + x14*x15 + x1*x16 + x2*x16 + x3*x16 + x6*x16 + x7*x16 + x12*x16 + x1*x17 + x3*x17 + x5*x17 + x7*x17 + x11*x17 + x13*x17 + x1*x18 + x2*x18 + x4*x18 + x5*x18 + x6*x18 + x8*x18 + x10*x18 + x12*x18 + x16*x18 + x3*x19 + x4*x19 + x7*x19 + x12*x19 + x13*x19 + x18*x19 + x4*x20 + x5*x20 + x6*x20 + x7*x20 + x10*x20 + x11*x20 + x12*x20 + x14*x20 + x17*x20 + x18*x20 + x19*x20 + x3*x21 + x6*x21 + x9*x21 + x10*x21 + x11*x21 + x16*x21 + x19*x21 + x20*x21 + x5*x22 + x8*x22 + x10*x22 + x11*x22 + x12*x22 + x15*x22 + x16*x22 + x17*x22 + x19*x22 + x21*x22 + x1*x23 + x2*x23 + x3*x23 + x5*x23 + x6*x23 + x11*x23 + x13*x23 + x14*x23 + x17*x23 + x19*x23 + x22*x23 + x6*x24 + x7*x24 + x9*x24 + x11*x24 + x12*x24 + x15*x24 + x17*x24 + x19*x24 + x2*x25 + x5*x25 + x8*x25 + x11*x25 + x13*x25 + x15*x25 + x16*x25 + x17*x25 + x19*x25 + x22*x25 + x1 + x2 + x3 + x4 + x5 + x6 + x9 + x10 + x13 + x16 + x20 + x21 + x25");
270  polHFE_25_96.emplace_back("x1*x4 + x1*x5 + x2*x5 + x2*x6 + x3*x6 + x4*x6 + x1*x7 + x2*x7 + x3*x7 + x4*x7 + x5*x7 + x2*x8 + x4*x8 + x5*x8 + x1*x9 + x2*x9 + x3*x9 + x5*x9 + x7*x9 + x8*x9 + x3*x10 + x4*x10 + x5*x10 + x6*x10 + x8*x10+ x9*x10 + x4*x11 + x7*x11 + x9*x11 + x10*x11 + x4*x12 + x5*x12 + x8*x12 + x10*x12 + x11*x12 + x1*x13 + x4*x13 + x6*x13 + x7*x13 + x8*x13 + x9*x13 + x10*x13 + x11*x13 + x12*x13 + x1*x14 + x2*x14 + x3*x14 + x4*x14 + x5*x14 + x6*x14 + x7*x14 + x8*x14 + x9*x14 + x10*x14 + x11*x14 + x3*x15 + x5*x15 + x6*x15 + x9*x15 + x10*x15 + x11*x15 + x12*x15 + x2*x16 + x5*x16 + x6*x16 + x7*x16 + x8*x16 + x9*x16 + x11*x16 + x12*x16 + x13*x16 + x14*x16 + x3*x17 + x9*x17 + x13*x17 + x15*x17 + x2*x18 + x7*x18 + x8*x18 + x16*x18 + x17*x18 + x4*x19 + x7*x19 + x10*x19 + x11*x19 + x14*x19 + x15*x19 + x16*x19 + x17*x19 + x2*x20 + x5*x20 + x8*x20 + x9*x20 + x12*x20 + x13*x20 + x18*x20 + x1*x21 + x3*x21 + x6*x21 + x8*x21 + x9*x21 + x11*x21 + x12*x21 + x14*x21 + x16*x21 + x17*x21 + x19*x21 + x2*x22 + x3*x22 + x4*x22 + x7*x22 + x10*x22 + x11*x22 + x13*x22 + x14*x22 + x16*x22 + x19*x22 + x21*x22 + x2*x23 + x3*x23 + x4*x23 + x5*x23 + x8*x23 + x9*x23 + x11*x23 + x14*x23 + x15*x23 + x16*x23 + x17*x23 + x19*x23 + x1*x24 + x2*x24 + x3*x24 + x4*x24 + x6*x24 + x7*x24 + x10*x24 + x16*x24 + x17*x24 + x19*x24 + x1*x25 + x3*x25 + x7*x25 + x9*x25 + x12*x25 + x14*x25 + x15*x25 + x22*x25 + x24*x25 + x1 + x5 + x9 + x10 + x11 + x14 + x15 + x18 + x19 + x23 + x24 + x25");
271  polHFE_25_96.emplace_back("x1*x3 + x3*x4 + x1*x5 + x2*x5 + x3*x5 + x4*x6 + x5*x6 + x1*x7 + x3*x7 + x5*x7 + x3*x8 + x4*x8 + x1*x9 + x3*x9 + x5*x9 + x6*x9 + x7*x10 + x8*x10 + x9*x10 + x1*x11 + x3*x11 + x4*x11 + x7*x11 + x9*x11 + x4*x12 + x10*x12 + x1*x13 + x2*x13 + x6*x13 + x7*x13 + x11*x13 + x12*x13 + x3*x14 + x4*x14 + x7*x14 + x8*x14 + x10*x14 + x11*x14 + x2*x15 + x3*x15 + x6*x15 + x12*x15 + x13*x15 + x5*x16 + x6*x16 + x7*x16 + x8*x16 + x9*x16 + x10*x16 + x13*x16 + x14*x16 + x1*x17 + x2*x17 + x4*x17 + x6*x17 + x9*x17 + x10*x17 + x13*x17 + x14*x17 + x16*x17 + x1*x18 + x2*x18 + x5*x18 + x6*x18 + x8*x18 + x12*x18 + x14*x18 + x15*x18 + x16*x18 + x17*x18 + x1*x19 + x2*x19 + x4*x19 + x5*x19 + x6*x19 + x7*x19 + x9*x19 + x10*x19 + x12*x19 + x13*x19 + x14*x19 + x16*x19 + x18*x19 + x1*x20 + x7*x20 + x8*x20 + x10*x20 + x15*x20 + x16*x20 + x1*x21 + x5*x21 + x6*x21 + x10*x21 + x12*x21 + x13*x21 + x14*x21 + x15*x21 + x16*x21 + x17*x21 + x18*x21 + x1*x22 + x3*x22 + x4*x22 + x6*x22 + x7*x22 + x8*x22 + x9*x22 + x11*x22 + x12*x22 + x13*x22 + x15*x22 + x18*x22 + x2*x23 + x3*x23 + x6*x23 + x7*x23 + x8*x23 + x9*x23 + x10*x23 + x11*x23 + x12*x23 + x13*x23 + x15*x23 + x16*x23 + x18*x23 + x19*x23 + x22*x23 + x2*x24 + x3*x24 + x4*x24 + x5*x24 + x6*x24 + x7*x24 + x13*x24 + x14*x24 + x18*x24 + x23*x24 + x1*x25 + x2*x25 + x4*x25 + x6*x25 + x9*x25 + x11*x25 + x13*x25 + x15*x25 + x17*x25 + x19*x25 + x20*x25 + x21*x25 + x23*x25 + x24*x25 + x2 + x5 + x12 + x13 + x14 + x16 + x18 + x19 + x24 + 1");
272  polHFE_25_96.emplace_back("x1*x3 + x3*x4 + x2*x5 + x3*x5 + x4*x5 + x2*x6 + x3*x6 + x4*x6 + x5*x6 + x1*x7 + x3*x7 + x5*x7 + x6*x7 + x2*x8 + x4*x8 + x6*x8 + x7*x8 + x5*x9 + x8*x9 + x2*x10 + x3*x10 + x4*x10 + x5*x10 + x7*x10 + x1*x11 + x4*x11 + x5*x11 + x6*x11 + x10*x11 + x1*x12 + x2*x12 + x5*x12 + x6*x12 + x9*x12 + x2*x13 + x5*x13 + x7*x13 + x9*x13 + x12*x13 + x1*x14 + x4*x14 + x8*x14 + x10*x14 + x11*x14 + x13*x14 + x5*x15 + x10*x15 + x12*x15 + x13*x15 + x14*x15 + x1*x16 + x6*x16 + x7*x16 + x9*x16 + x10*x16 + x13*x16 + x15*x16 + x1*x17 + x2*x17 + x3*x17 + x4*x17 + x7*x17 + x12*x17 + x14*x17 + x16*x17 + x2*x18 +x4*x18 + x7*x18 + x15*x18 + x16*x18 + x2*x19 + x3*x19 + x6*x19 + x12*x19 + x14*x19 + x17*x19 + x1*x20 + x4*x20 + x9*x20 + x13*x20 + x14*x20 + x15*x20 + x16*x20 + x3*x21 + x10*x21 + x12*x21 + x13*x21+ x14*x21 + x15*x21 + x16*x21 + x19*x21 + x20*x21 + x2*x22 + x3*x22 + x5*x22 + x6*x22 + x8*x22 + x9*x22 + x10*x22 + x11*x22 + x12*x22 + x13*x22 + x14*x22 + x17*x22 + x18*x22 + x4*x23 + x5*x23 + x6*x23 + x12*x23 + x18*x23 + x19*x23 + x20*x23 + x21*x23 + x22*x23 + x1*x24 + x2*x24 + x4*x24 + x7*x24 + x8*x24 + x9*x24 + x10*x24 + x11*x24 + x12*x24 + x13*x24 + x16*x24 + x17*x24 + x21*x24 + x22*x24 + x2*x25 + x3*x25 + x4*x25 + x5*x25 + x8*x25 + x12*x25 + x15*x25 + x20*x25 + x22*x25 + x4 + x6 + x8 + x10 + x12 + x13 + x15 + x16 + x21 + x22 + x23 + x24 + x25 + 1");
273  polHFE_25_96.emplace_back("x1*x2 + x1*x3 + x2*x3 + x3*x4 + x3*x6 + x4*x6 + x1*x7 + x2*x7 + x4*x7 + x5*x7 + x1*x8 + x5*x8 + x6*x8 + x1*x9 + x3*x9 + x5*x9 + x6*x9 + x7*x9 + x2*x10 + x7*x10 + x9*x10 + x1*x11 + x5*x11 + x8*x11 + x9*x11 + x10*x11 + x1*x12 + x3*x12 + x4*x12 + x8*x12 + x9*x12 + x2*x13 + x3*x13 + x4*x13 + x5*x13 + x6*x13 + x11*x13 + x1*x14 + x2*x14 + x3*x14 + x4*x14 + x5*x14 + x8*x14 + x9*x14 + x10*x14 + x11*x14 + x13*x14 + x2*x15 + x4*x15 + x5*x15 + x6*x15 + x8*x15 + x12*x15 + x13*x15 + x14*x15 + x2*x16 + x4*x16 + x6*x16 + x8*x16 + x11*x16 + x12*x16 + x15*x16 + x3*x17 + x4*x17 + x8*x17 + x10*x17 + x12*x17 + x13*x17 + x16*x17 + x5*x18 + x6*x18 + x7*x18 + x8*x18 + x9*x18 + x12*x18 + x14*x18 + x17*x18 + x3*x19 + x4*x19 + x5*x19 + x7*x19 + x9*x19 + x12*x19 + x14*x19 + x15*x19 + x17*x19 + x4*x20 +x5*x20 + x6*x20 + x7*x20 + x14*x20 + x15*x20 + x16*x20 + x17*x20 + x18*x20 + x4*x21 + x6*x21 + x7*x21 + x11*x21 + x12*x21 + x15*x21 + x17*x21 + x18*x21 + x19*x21 + x20*x21 + x3*x22 + x4*x22 + x7*x22 + x10*x22 + x11*x22 + x13*x22 + x14*x22 + x18*x22 + x20*x22 + x21*x22 + x1*x23 + x3*x23 + x7*x23 + x9*x23 + x10*x23 + x13*x23 + x15*x23 + x16*x23 + x17*x23 + x19*x23 + x20*x23 + x21*x23 + x1*x24 + x3*x24 + x5*x24 + x7*x24 + x9*x24 + x10*x24 + x12*x24 + x14*x24 + x16*x24 + x20*x24 + x22*x24 + x1*x25 + x2*x25 + x3*x25 + x4*x25 + x5*x25 + x11*x25 + x14*x25 + x19*x25 + x21*x25 + x24*x25 + x2 + x6+ x7 + x8 + x9 + x14 + x15 + x18 + x19 + x24");
274  polHFE_25_96.emplace_back("x2*x4 + x1*x5 + x3*x5 + x4*x5 + x3*x6 + x4*x6 + x5*x6 + x1*x7 + x2*x7 + x3*x7 + x4*x8 + x5*x8 + x7*x8 + x3*x9 + x5*x9 + x6*x9 + x5*x10 + x7*x10 + x1*x11 + x5*x11 + x8*x11 + x1*x12 + x2*x12 + x3*x12 + x5*x12 + x6*x12 + x7*x12 + x9*x12 + x11*x12 + x4*x13 + x5*x13 + x7*x13 + x9*x13 + x10*x13 + x12*x13 + x2*x14 + x4*x14 + x5*x14 + x7*x14 + x8*x14 + x9*x14 + x10*x14 + x13*x14 + x3*x15 + x4*x15 + x5*x15 + x6*x15 + x7*x15 + x1*x16 + x2*x16 + x5*x16 + x6*x16 + x8*x16 + x9*x16 + x11*x16 + x13*x16 + x14*x16 + x15*x16 + x1*x17 + x3*x17 + x13*x17 + x16*x17 + x3*x18 + x5*x18 + x6*x18 + x9*x18 + x12*x18 + x15*x18 + x16*x18 + x1*x19 + x2*x19 + x3*x19 + x4*x19 + x6*x19 + x7*x19 + x9*x19 + x10*x19 + x11*x19 + x12*x19 + x14*x19 + x1*x20 + x2*x20 + x4*x20 + x8*x20 + x10*x20 + x12*x20 + x14*x20 +x15*x20 + x18*x20 + x19*x20 + x1*x21 + x7*x21 + x8*x21 + x9*x21 + x10*x21 + x11*x21 + x12*x21 + x14*x21 + x17*x21 + x18*x21 + x1*x22 + x5*x22 + x7*x22 + x8*x22 + x9*x22 + x10*x22 + x15*x22 + x18*x22+ x19*x22 + x20*x22 + x1*x23 + x2*x23 + x4*x23 + x5*x23 + x10*x23 + x14*x23 + x15*x23 + x18*x23 + x19*x23 + x21*x23 + x4*x24 + x5*x24 + x12*x24 + x13*x24 + x14*x24 + x18*x24 + x21*x24 + x23*x24 + x2*x25 + x3*x25 + x7*x25 + x8*x25 + x9*x25 + x13*x25 + x16*x25 + x18*x25 + x22*x25 + x23*x25 + x1 + x2 + x4 + x5 + x8 + x10 + x13 + x15 + x16 + x18 + x21 + x23 + x25 + 1");
275  polHFE_25_96.emplace_back("x1*x3 + x1*x4 + x2*x4 + x3*x5 + x4*x5 + x3*x6 + x4*x6 + x4*x7 + x5*x7 + x1*x8 + x2*x8 + x3*x8 + x4*x8 + x5*x8 + x7*x8 + x4*x9 + x6*x9 + x8*x9 + x1*x10 + x3*x10 + x4*x10 + x5*x10 + x6*x10 + x8*x10 + x9*x10 + x1*x11 + x6*x11 + x9*x11 + x10*x11 + x3*x12 + x5*x12 + x6*x12 + x4*x13 + x5*x13 + x7*x13 + x9*x13 + x10*x13 + x11*x13 + x2*x14 + x3*x14 + x6*x14 + x7*x14 + x8*x14 + x10*x14 + x11*x14 + x12*x14 + x1*x15 + x2*x15 + x3*x15 + x5*x15 + x8*x15 + x9*x15 + x1*x16 + x4*x16 + x7*x16 + x8*x16 + x10*x16 + x13*x16 + x15*x16 + x1*x17 + x3*x17 + x5*x17 + x7*x17 + x10*x17 + x11*x17 + x13*x17 + x15*x17 + x16*x17 + x3*x18 + x4*x18 + x5*x18 + x7*x18 + x8*x18 + x9*x18 + x10*x18 + x11*x18 + x12*x18 + x15*x18 + x2*x19 + x5*x19 + x6*x19 + x7*x19 + x9*x19 + x11*x19 + x13*x19 + x18*x19 + x2*x20 + x4*x20 + x5*x20 + x6*x20 + x8*x20 + x15*x20 + x19*x20 + x2*x21 + x3*x21 + x10*x21 + x11*x21 + x14*x21 + x15*x21 + x18*x21 + x19*x21 + x20*x21 + x2*x22 + x3*x22 + x4*x22 + x5*x22 + x6*x22 + x7*x22 + x9*x22 + x15*x22 + x16*x22 + x18*x22 + x3*x23 + x4*x23 + x5*x23 + x7*x23 + x8*x23 + x10*x23 + x11*x23 + x12*x23 + x13*x23 + x14*x23 + x22*x23 + x5*x24 + x6*x24 + x8*x24 + x12*x24 + x13*x24 + x15*x24+ x16*x24 + x18*x24 + x21*x24 + x23*x24 + x2*x25 + x4*x25 + x5*x25 + x6*x25 + x7*x25 + x8*x25 + x10*x25 + x12*x25 + x13*x25 + x20*x25 + x1 + x2 + x6 + x7 + x8 + x12 + x13 + x14 + x15 + x16 + x22 + x23 + 1");
276  polHFE_25_96.emplace_back("x1*x3 + x2*x3 + x2*x4 + x1*x5 + x2*x5 + x4*x5 + x1*x6 + x3*x6 + x4*x6 + x3*x7 + x5*x7 + x6*x7 + x1*x8 + x2*x8 + x7*x8 + x1*x9 + x3*x9 + x4*x9 + x5*x9 + x6*x9 + x8*x9 + x2*x10 + x3*x10 + x6*x10 + x8*x10 + x9*x10 + x1*x11 + x3*x11 + x4*x11 + x6*x11 + x8*x11 + x9*x11 + x10*x11 + x1*x12 + x3*x12 + x4*x12 + x8*x12 + x9*x12 + x11*x12 + x1*x13 + x3*x13 + x10*x13 + x11*x13 + x12*x13 + x4*x14 + x5*x14 + x6*x14 + x9*x14 + x10*x14 + x11*x14 + x13*x14 + x1*x15 + x2*x15 + x5*x15 + x7*x15 + x9*x15 + x10*x15 + x11*x15 + x13*x15 + x14*x15 + x1*x16 + x8*x16 + x12*x16 + x14*x16 + x15*x16 + x3*x17 + x7*x17 +x9*x17 + x10*x17 + x11*x17 + x12*x17 + x13*x17 + x16*x17 + x1*x18 + x3*x18 + x5*x18 + x6*x18 + x7*x18 + x10*x18 + x11*x18 + x12*x18 + x14*x18 + x15*x18 + x16*x18 + x1*x19 + x2*x19 + x3*x19 + x6*x19 + x7*x19 + x8*x19 + x9*x19 + x10*x19 + x17*x19 + x18*x19 + x2*x20 + x4*x20 + x5*x20 + x7*x20 + x8*x20 + x9*x20 + x12*x20 + x13*x20 + x15*x20 + x16*x20 + x18*x20 + x4*x21 + x6*x21 + x12*x21 + x14*x21+ x16*x21 + x17*x21 + x18*x21 + x19*x21 + x20*x21 + x1*x22 + x2*x22 + x3*x22 + x5*x22 + x6*x22 + x8*x22 + x9*x22 + x10*x22 + x13*x22 + x14*x22 + x15*x22 + x16*x22 + x19*x22 + x20*x22 + x3*x23 + x5*x23 + x6*x23 + x7*x23 + x9*x23 + x10*x23 + x11*x23 + x14*x23 + x15*x23 + x16*x23 + x19*x23 + x21*x23 + x22*x23 + x4*x24 + x5*x24 + x7*x24 + x8*x24 + x10*x24 + x13*x24 + x14*x24 + x15*x24 + x16*x24 + x17*x24 + x19*x24 + x20*x24 + x22*x24 + x23*x24 + x1*x25 + x2*x25 + x3*x25 + x5*x25 + x11*x25 + x13*x25 + x15*x25 + x16*x25 + x17*x25 + x18*x25 + x19*x25 + x20*x25 + x21*x25 + x23*x25 + x24*x25 + x1 + x2 + x3 + x4 + x5 + x6 + x8 + x9 + x10 + x11 + x12 + x16 + x19 + x21 + x22 + x24");
277  polHFE_25_96.emplace_back("x1*x2 + x1*x4 + x2*x4 + x2*x6 + x4*x6 + x5*x6 + x2*x7 + x5*x7 + x6*x7 + x1*x8 + x4*x8 + x6*x8 + x5*x9 + x7*x9 + x1*x10 + x2*x10 + x4*x10 + x5*x10 + x6*x10 + x8*x10 + x9*x10 + x3*x11 + x4*x11 + x5*x11 + x6*x11 + x7*x11 + x9*x11 + x1*x12 + x3*x12 + x4*x12 + x5*x12 + x6*x12 + x7*x12 + x10*x12 + x1*x13 + x3*x13 + x4*x13 + x5*x13 + x8*x13 + x9*x13 + x10*x13 + x11*x13 + x2*x14 + x5*x14 + x9*x14 + x11*x14 + x12*x14 + x4*x15 + x5*x15 + x6*x15 + x8*x15 + x9*x15 + x12*x15 + x14*x15 + x1*x16 + x6*x16 + x8*x16 + x9*x16 + x1*x17 + x3*x17 + x5*x17 + x6*x17 + x7*x17 + x9*x17 + x10*x17 + x12*x17 + x13*x17 + x15*x17 + x3*x18 + x5*x18 + x7*x18 + x9*x18 + x12*x18 + x15*x18 + x17*x18 + x1*x19 + x2*x19 + x3*x19 + x7*x19 + x8*x19 + x10*x19 + x12*x19 + x14*x19 + x16*x19 + x1*x20 + x2*x20 + x8*x20 + x11*x20 + x12*x20 + x15*x20 + x17*x20 + x19*x20 + x2*x21 + x6*x21 + x13*x21 + x16*x21 + x17*x21 + x18*x21 + x20*x21 + x1*x22 + x2*x22 + x4*x22 + x7*x22 + x10*x22 + x14*x22 + x16*x22 + x18*x22 + x19*x22 + x21*x22 + x2*x23 + x3*x23 + x5*x23 + x7*x23 + x11*x23 + x15*x23 + x17*x23 + x20*x23 + x21*x23 + x22*x23 + x1*x24 + x2*x24 + x6*x24 + x7*x24 + x8*x24 + x9*x24 + x10*x24 + x11*x24 + x12*x24 + x14*x24 + x20*x24 + x21*x24 + x22*x24 + x1*x25 + x2*x25 + x8*x25 + x9*x25 + x10*x25 + x11*x25 + x14*x25 + x16*x25 + x17*x25 + x18*x25 + x20*x25 + x21*x25 + x23*x25 + x1 + x3 + x5 + x6 + x9 + x11 +x12 + x15 + x16 + x17 + x21 + x22 + x23 + x25");
278  polHFE_25_96.emplace_back("x1*x2 + x2*x3 + x1*x4 + x3*x4 + x1*x5 + x1*x6 + x1*x7 + x4*x7 + x5*x7 + x6*x7 + x1*x8 + x2*x8 + x6*x8 + x5*x9 + x6*x9 + x2*x10 + x6*x10 + x7*x10 + x9*x10 + x1*x11 + x3*x11 + x4*x11 + x6*x11 + x8*x11 + x3*x12 + x5*x12 + x7*x12 + x8*x12 + x10*x12 + x2*x13 + x3*x13 + x4*x13 + x6*x13 + x8*x13 + x10*x13 + x3*x14 + x5*x14 + x11*x14 + x1*x15 + x2*x15 + x6*x15 + x7*x15 + x9*x15 + x13*x15 + x14*x15 + x1*x16 + x3*x16 + x7*x16 + x8*x16 + x9*x16 + x10*x16 + x15*x16 + x1*x17 + x2*x17 + x5*x17 + x8*x17 + x13*x17 + x15*x17 + x16*x17 + x3*x18 + x4*x18 + x7*x18 + x12*x18 + x13*x18 + x1*x19 + x8*x19 + x10*x19 + x15*x19 + x16*x19 + x1*x20 + x3*x20 + x4*x20 + x6*x20 + x7*x20 + x9*x20 + x10*x20 + x11*x20 + x13*x20 + x15*x20 + x19*x20 + x2*x21 + x3*x21 + x6*x21 + x8*x21 + x11*x21 + x13*x21 + x14*x21 + x15*x21 + x17*x21 + x18*x21 + x2*x22 + x3*x22 + x4*x22 + x6*x22 + x7*x22 + x10*x22 + x11*x22 + x12*x22 + x15*x22 + x16*x22 + x17*x22 + x19*x22 + x20*x22 + x1*x23 + x2*x23 + x7*x23 + x9*x23 + x10*x23 + x11*x23 + x12*x23 + x13*x23 + x14*x23 + x15*x23 + x16*x23 + x17*x23 + x20*x23 + x22*x23 + x4*x24 + x6*x24 + x10*x24 + x11*x24 + x13*x24 + x16*x24 + x17*x24 + x19*x24 + x20*x24 + x21*x24 + x22*x24 + x23*x24 + x2*x25 + x3*x25 + x4*x25 + x7*x25 + x11*x25 + x13*x25 + x14*x25 + x20*x25 + x22*x25 + x23*x25 + x1 + x2 + x5 + x6 + x8 + x9 + x10 + x16 + x19 + x21 + x22 + x23 + x24 + x25 ");
279 
280  // Create HFE_25_96 ideal;
281  Ideal<eltType> HFE_25_96(polHFE_25_96, 25 ,1000000);
282 
283  // Compute a reduced groebner basis;
284  nbGen=HFE_25_96.f4();
285 
286  // Print the reduced groebner basis into a file
287  if(magma)
288  {
289  HFE_25_96.printReducedGroebnerBasis("HFE_25_96", modulo);
290  }
291 
292  return nbGen;
293 }
294 
295 int HFE_30_96_F4(bool magma)
296 {
297  cout << "#########################################################" << endl;
298  cout << "# HFE 30 96 #" << endl;
299  cout << "#########################################################" << endl << endl;
300 
301  // Number of generator
302  int nbGen;
303 
304  // Init monomial tools
306 
307  string * vars = new string[30];
308  for(int i=0; i<30; i++)
309  {
310  vars[i]=string(string("x")+to_string(i+1));
311  }
312  Monomial::setVariable(vars);
313 
314  // Create polynomial array
315  vector<Polynomial<eltType>> polHFE_30_96;
316 
317 
318  polHFE_30_96.emplace_back("x1^2+x1");
319  polHFE_30_96.emplace_back("x2^2+x2");
320  polHFE_30_96.emplace_back("x3^2+x3");
321  polHFE_30_96.emplace_back("x4^2+x4");
322  polHFE_30_96.emplace_back("x5^2+x5");
323  polHFE_30_96.emplace_back("x6^2+x6");
324  polHFE_30_96.emplace_back("x7^2+x7");
325  polHFE_30_96.emplace_back("x8^2+x8");
326  polHFE_30_96.emplace_back("x9^2+x9");
327  polHFE_30_96.emplace_back("x10^2+x10");
328  polHFE_30_96.emplace_back("x11^2+x11");
329  polHFE_30_96.emplace_back("x12^2+x12");
330  polHFE_30_96.emplace_back("x13^2+x13");
331  polHFE_30_96.emplace_back("x14^2+x14");
332  polHFE_30_96.emplace_back("x15^2+x15");
333  polHFE_30_96.emplace_back("x16^2+x16");
334  polHFE_30_96.emplace_back("x17^2+x17");
335  polHFE_30_96.emplace_back("x18^2+x18");
336  polHFE_30_96.emplace_back("x19^2+x19");
337  polHFE_30_96.emplace_back("x20^2+x20");
338  polHFE_30_96.emplace_back("x21^2+x21");
339  polHFE_30_96.emplace_back("x22^2+x22");
340  polHFE_30_96.emplace_back("x23^2+x23");
341  polHFE_30_96.emplace_back("x24^2+x24");
342  polHFE_30_96.emplace_back("x25^2+x25");
343  polHFE_30_96.emplace_back("x26^2+x26");
344  polHFE_30_96.emplace_back("x27^2+x27");
345  polHFE_30_96.emplace_back("x28^2+x28");
346  polHFE_30_96.emplace_back("x29^2+x29");
347  polHFE_30_96.emplace_back("x30^2+x30");
348  polHFE_30_96.emplace_back("x2+x4+x5+x9+x11+x12+x14+x18+x19+x24+x25+x26+x28+x29+x1*x2+x1*x3+x1*x7+x1*x8+x1*x9+x1*x11+x1*x12+x1*x15+x1*x16+x1*x21+x1*x25+x1*x27+x1*x28+x1*x29+x1*x30+x2*x3+x2*x7+x2*x8+x2*x11+x2*x12+x2*x14+x2*x17+x2*x18+x2*x19+x2*x20+x2*x21+x2*x22+x2*x24+x2*x27+x2*x28+x2*x30+x3*x4+x3*x5+x3*x9+x3*x12+x3*x14+x3*x16+x3*x17+x3*x18+x3*x19+x3*x21+x3*x24+x3*x29+x3*x30+x4*x5+x4*x6+x4*x16+x4*x19+x4*x20+x4*x21+x4*x22+x4*x23+x4*x24+x4*x28+x4*x30+x5*x9+x5*x11+x5*x15+x5*x17+x5*x18+x5*x19+x5*x20+x5*x22+x5*x23+x5*x24+x5*x25+x5*x29+x5*x30+x6*x9+x6*x10+x6*x12+x6*x13+x6*x15+x6*x18+x6*x19+x6*x20+x6*x21+x6*x24+x6*x26+x6*x28+x6*x29+x6*x30+x7*x10+x7*x12+x7*x13+x7*x15+x7*x17+x7*x18+x7*x19+x7*x21+x7*x22+x7*x26+x7*x28+x7*x30+x8*x9+x8*x12+x8*x13+x8*x14+x8*x17+x8*x18+x8*x19+x8*x21+x8*x22+x8*x27+x8*x28+x9*x11+x9*x14+x9*x15+x9*x18+x9*x19+x9*x24+x9*x26+x9*x28+x9*x29+x10*x14+x10*x15+x10*x16+x10*x18+x10*x19+x10*x21+x10*x23+x10*x24+x10*x28+x10*x30+x11*x12+x11*x13+x11*x14+x11*x15+x11*x16+x11*x18+x11*x20+x11*x22+x11*x25+x11*x26+x11*x27+x11*x29+x11*x30+x12*x16+x12*x19+x12*x20+x12*x22+x12*x24+x12*x25+x12*x26+x12*x28+x13*x17+x13*x18+x13*x19+x13*x21+x13*x26+x13*x27+x13*x28+x13*x29+x14*x16+x14*x17+x14*x18+x14*x20+x14*x23+x14*x25+x14*x26+x14*x30+x15*x16+x15*x19+x15*x21+x15*x22+x15*x24+x15*x26+x15*x28+x15*x30+x16*x17+x16*x19+x16*x20+x16*x21+x16*x24+x16*x26+x16*x27+x16*x30+x17*x18+x17*x21+x17*x22+x17*x24+x17*x26+x17*x28+x17*x29+x17*x30+x18*x19+x18*x20+x18*x21+x18*x24+x18*x25+x18*x27+x18*x29+x19*x20+x19*x21+x19*x22+x19*x23+x19*x27+x19*x29+x19*x30+x20*x21+x20*x22+x20*x23+x20*x27+x20*x28+x20*x29+x21*x22+x21*x27+x21*x28+x21*x30+x22*x25+x22*x28+x22*x29+x22*x30+x23*x24+x23*x26+x23*x27+x23*x28+x24*x29+x25*x26+x25*x27+x25*x28+x26*x30+x27*x30+x28*x29+x29*x30");
349  polHFE_30_96.emplace_back("x3+x5+x7+x9+x10+x12+x13+x18+x19+x20+x21+x22+x23+x28+x29+x1*x4+x1*x5+x1*x6+x1*x8+x1*x9+x1*x11+x1*x12+x1*x13+x1*x14+x1*x15+x1*x16+x1*x19+x1*x22+x1*x24+x1*x25+x1*x26+x1*x27+x1*x28+x1*x29+x1*x30+x2*x13+x2*x14+x2*x16+x2*x17+x2*x19+x2*x21+x2*x22+x2*x26+x2*x27+x2*x28+x2*x29+x3*x4+x3*x5+x3*x6+x3*x7+x3*x8+x3*x9+x3*x14+x3*x15+x3*x17+x3*x21+x3*x22+x3*x25+x3*x29+x4*x5+x4*x10+x4*x11+x4*x14+x4*x17+x4*x20+x5*x6+x5*x8+x5*x10+x5*x13+x5*x14+x5*x17+x5*x19+x5*x20+x5*x21+x5*x22+x5*x26+x5*x27+x6*x8+x6*x12+x6*x13+x6*x14+x6*x15+x6*x17+x6*x20+x6*x23+x6*x24+x6*x25+x6*x26+x6*x27+x6*x29+x6*x30+x7*x8+x7*x10+x7*x11+x7*x12+x7*x13+x7*x15+x7*x16+x7*x21+x7*x23+x7*x24+x7*x26+x7*x27+x7*x28+x7*x29+x7*x30+x8*x14+x8*x16+x8*x17+x8*x18+x8*x21+x8*x23+x8*x24+x8*x25+x8*x26+x8*x27+x8*x30+x9*x11+x9*x12+x9*x13+x9*x14+x9*x17+x9*x19+x9*x23+x9*x24+x9*x26+x10*x11+x10*x13+x10*x15+x10*x16+x10*x17+x10*x18+x10*x19+x10*x20+x10*x21+x10*x22+x10*x25+x10*x26+x11*x13+x11*x15+x11*x16+x11*x17+x11*x20+x11*x21+x11*x22+x11*x23+x11*x24+x11*x25+x11*x27+x11*x28+x11*x29+x12*x17+x12*x22+x12*x23+x12*x24+x12*x26+x12*x27+x12*x28+x12*x30+x13*x14+x13*x15+x13*x20+x13*x22+x13*x23+x13*x24+x13*x25+x13*x28+x14*x15+x14*x19+x14*x23+x14*x27+x14*x29+x15*x17+x15*x20+x15*x22+x15*x23+x15*x25+x16*x17+x16*x23+x16*x24+x16*x26+x16*x27+x16*x28+x16*x29+x16*x30+x17*x18+x17*x20+x17*x22+x17*x23+x17*x24+x17*x25+x17*x26+x17*x28+x17*x30+x18*x19+x18*x20+x18*x21+x18*x22+x18*x24+x18*x25+x18*x26+x18*x28+x19*x20+x19*x23+x19*x25+x20*x23+x20*x26+x20*x27+x21*x24+x21*x25+x21*x26+x21*x27+x21*x28+x21*x29+x21*x30+x22*x24+x22*x25+x23*x24+x23*x25+x23*x28+x24*x28+x24*x29+x24*x30+x25*x28+x26*x30+x27*x29+x27*x30");
350  polHFE_30_96.emplace_back("x3+x4+x5+x6+x9+x10+x13+x16+x21+x22+x23+x24+x26+x27+x28+x30+x1*x5+x1*x8+x1*x10+x1*x11+x1*x15+x1*x17+x1*x19+x1*x23+x1*x30+x2*x3+x2*x7+x2*x8+x2*x9+x2*x11+x2*x12+x2*x15+x2*x16+x2*x17+x2*x18+x2*x19+x2*x20+x2*x21+x2*x22+x2*x25+x2*x27+x2*x28+x2*x29+x3*x4+x3*x5+x3*x7+x3*x9+x3*x12+x3*x15+x3*x16+x3*x17+x3*x19+x3*x23+x3*x25+x3*x27+x3*x29+x4*x6+x4*x8+x4*x9+x4*x11+x4*x13+x4*x14+x4*x16+x4*x20+x4*x22+x4*x25+x4*x27+x4*x29+x4*x30+x5*x6+x5*x11+x5*x14+x5*x16+x5*x19+x5*x20+x5*x21+x5*x23+x5*x27+x5*x28+x6*x7+x6*x8+x6*x9+x6*x12+x6*x13+x6*x15+x6*x17+x6*x18+x6*x23+x6*x25+x7*x9+x7*x11+x7*x13+x7*x20+x7*x21+x7*x22+x7*x23+x7*x24+x7*x25+x7*x26+x7*x27+x7*x28+x7*x29+x7*x30+x8*x9+x8*x10+x8*x12+x8*x13+x8*x14+x8*x15+x8*x18+x8*x19+x8*x20+x8*x21+x8*x22+x8*x25+x8*x27+x8*x28+x8*x29+x8*x30+x9*x10+x9*x13+x9*x15+x9*x16+x9*x19+x9*x20+x9*x22+x9*x23+x9*x29+x10*x11+x10*x13+x10*x16+x10*x20+x10*x22+x10*x23+x10*x24+x10*x26+x10*x29+x10*x30+x11*x12+x11*x13+x11*x14+x11*x15+x11*x16+x11*x17+x11*x18+x11*x19+x11*x22+x11*x25+x11*x26+x11*x30+x12*x14+x12*x16+x12*x17+x12*x19+x12*x21+x12*x22+x12*x23+x12*x24+x12*x25+x12*x27+x12*x29+x13*x14+x13*x16+x13*x19+x13*x21+x13*x23+x13*x29+x13*x30+x14*x17+x14*x18+x14*x19+x14*x20+x14*x21+x14*x22+x14*x24+x14*x25+x14*x26+x14*x29+x14*x30+x15*x16+x15*x17+x15*x20+x15*x23+x15*x26+x15*x27+x15*x30+x16*x18+x16*x20+x16*x21+x16*x22+x16*x25+x16*x28+x16*x29+x17*x18+x17*x19+x17*x21+x17*x22+x17*x26+x17*x27+x17*x28+x17*x29+x18*x23+x18*x25+x18*x26+x18*x29+x19*x24+x19*x25+x19*x26+x19*x27+x19*x30+x20*x21+x20*x23+x20*x26+x20*x27+x20*x28+x20*x29+x21*x22+x21*x24+x21*x26+x21*x28+x21*x29+x22*x23+x22*x24+x22*x25+x22*x26+x22*x27+x22*x28+x22*x29+x22*x30+x23*x24+x23*x25+x23*x27+x23*x29+x23*x30+x24*x25+x25*x26+x25*x29+x26*x28+x26*x29+x26*x30+x27*x28+x27*x29+x28*x29+x28*x30");
351  polHFE_30_96.emplace_back("1+x1+x2+x4+x8+x10+x13+x16+x20+x21+x22+x24+x29+x30+x1*x2+x1*x3+x1*x4+x1*x5+x1*x6+x1*x7+x1*x8+x1*x9+x1*x12+x1*x13+x1*x14+x1*x17+x1*x19+x1*x20+x1*x21+x1*x22+x1*x24+x1*x26+x1*x27+x1*x28+x1*x30+x2*x8+x2*x9+x2*x10+x2*x11+x2*x14+x2*x15+x2*x16+x2*x18+x2*x19+x2*x21+x2*x25+x2*x27+x2*x30+x3*x4+x3*x5+x3*x6+x3*x7+x3*x8+x3*x11+x3*x12+x3*x13+x3*x16+x3*x18+x3*x20+x3*x21+x3*x22+x3*x25+x3*x28+x3*x29+x4*x5+x4*x6+x4*x7+x4*x8+x4*x9+x4*x14+x4*x15+x4*x17+x4*x18+x4*x24+x4*x25+x4*x28+x4*x29+x4*x30+x5*x6+x5*x7+x5*x8+x5*x11+x5*x13+x5*x15+x5*x16+x5*x20+x5*x21+x5*x22+x5*x23+x5*x24+x5*x25+x5*x26+x6*x8+x6*x9+x6*x10+x6*x12+x6*x16+x6*x17+x6*x18+x6*x19+x6*x20+x6*x21+x6*x23+x6*x25+x6*x28+x6*x30+x7*x8+x7*x9+x7*x12+x7*x14+x7*x16+x7*x19+x7*x25+x7*x27+x7*x28+x8*x9+x8*x10+x8*x14+x8*x16+x8*x17+x8*x21+x8*x22+x8*x23+x8*x24+x8*x25+x8*x26+x8*x27+x9*x10+x9*x11+x9*x13+x9*x14+x9*x15+x9*x16+x9*x26+x9*x27+x9*x29+x10*x11+x10*x13+x10*x15+x10*x16+x10*x17+x10*x20+x10*x21+x10*x22+x10*x24+x10*x25+x10*x29+x11*x13+x11*x14+x11*x15+x11*x17+x11*x20+x11*x22+x11*x25+x11*x28+x11*x29+x11*x30+x12*x13+x12*x14+x12*x15+x12*x16+x12*x17+x12*x20+x12*x21+x12*x22+x12*x23+x12*x24+x12*x27+x12*x28+x12*x30+x13*x17+x13*x18+x13*x20+x13*x25+x13*x26+x13*x28+x13*x30+x14*x15+x14*x16+x14*x17+x14*x18+x14*x20+x14*x22+x14*x23+x14*x25+x14*x28+x14*x29+x15*x21+x15*x24+x15*x25+x15*x27+x15*x28+x15*x29+x15*x30+x16*x17+x16*x22+x16*x26+x16*x28+x16*x30+x17*x18+x17*x20+x17*x23+x17*x24+x17*x25+x17*x26+x17*x27+x17*x30+x18*x19+x18*x20+x18*x23+x18*x26+x18*x30+x19*x20+x19*x24+x19*x26+x19*x27+x19*x28+x19*x30+x20*x25+x20*x27+x20*x30+x21*x22+x21*x24+x21*x25+x21*x30+x22*x24+x22*x26+x22*x27+x22*x28+x23*x26+x23*x27+x24*x25+x24*x27+x24*x29+x25*x26+x25*x27+x25*x28+x27*x29+x28*x29+x28*x30");
352  polHFE_30_96.emplace_back("1+x1+x2+x4+x12+x14+x15+x17+x18+x20+x21+x22+x25+x26+x1*x3+x1*x4+x1*x5+x1*x10+x1*x11+x1*x13+x1*x14+x1*x15+x1*x16+x1*x21+x1*x24+x1*x26+x1*x27+x2*x5+x2*x6+x2*x7+x2*x8+x2*x9+x2*x14+x2*x19+x2*x20+x2*x21+x2*x23+x2*x24+x2*x27+x2*x28+x2*x29+x2*x30+x3*x5+x3*x6+x3*x10+x3*x11+x3*x12+x3*x15+x3*x16+x3*x17+x3*x21+x3*x22+x3*x23+x3*x24+x3*x26+x3*x27+x3*x28+x4*x6+x4*x8+x4*x11+x4*x12+x4*x13+x4*x17+x4*x18+x4*x21+x4*x25+x4*x27+x4*x28+x5*x6+x5*x7+x5*x13+x5*x14+x5*x15+x5*x16+x5*x18+x5*x20+x5*x21+x5*x22+x5*x23+x5*x24+x5*x26+x5*x27+x5*x30+x6*x9+x6*x11+x6*x13+x6*x16+x6*x17+x6*x20+x6*x24+x6*x25+x6*x29+x7*x8+x7*x15+x7*x16+x7*x17+x7*x20+x7*x21+x7*x22+x7*x24+x7*x25+x7*x27+x7*x28+x8*x9+x8*x10+x8*x12+x8*x13+x8*x16+x8*x17+x8*x19+x8*x23+x8*x27+x8*x30+x9*x10+x9*x11+x9*x12+x9*x14+x9*x15+x9*x16+x9*x20+x9*x23+x9*x24+x9*x25+x9*x27+x9*x28+x10*x13+x10*x15+x10*x18+x10*x21+x10*x22+x10*x24+x10*x28+x10*x29+x11*x15+x11*x16+x11*x17+x11*x18+x11*x20+x11*x23+x11*x24+x11*x25+x11*x26+x11*x27+x11*x28+x11*x30+x12*x13+x12*x14+x12*x18+x12*x19+x12*x20+x12*x23+x12*x25+x12*x28+x12*x29+x12*x30+x13*x14+x13*x15+x13*x17+x13*x20+x13*x21+x14*x16+x14*x17+x14*x18+x14*x19+x14*x20+x14*x26+x14*x27+x14*x28+x15*x16+x15*x17+x15*x20+x15*x21+x15*x22+x15*x24+x15*x25+x15*x30+x16*x17+x16*x19+x16*x20+x16*x21+x16*x22+x16*x23+x16*x25+x16*x26+x16*x27+x16*x28+x16*x30+x17*x18+x17*x19+x17*x23+x17*x28+x17*x30+x18*x19+x18*x20+x18*x23+x18*x24+x18*x25+x18*x27+x18*x29+x18*x30+x19*x21+x19*x23+x19*x24+x19*x25+x19*x26+x19*x28+x19*x29+x20*x21+x20*x22+x20*x23+x20*x24+x20*x26+x20*x27+x20*x28+x20*x29+x21*x23+x21*x24+x21*x25+x21*x26+x22*x23+x22*x25+x22*x27+x22*x30+x23*x26+x23*x28+x23*x30+x24*x26+x24*x27+x24*x28+x24*x29+x25*x26+x25*x28+x25*x29+x26*x27+x26*x28+x27*x28+x28*x30");
353  polHFE_30_96.emplace_back("1+x1+x3+x5+x6+x7+x8+x9+x13+x16+x17+x18+x19+x21+x23+x27+x28+x29+x1*x2+x1*x3+x1*x4+x1*x5+x1*x6+x1*x7+x1*x9+x1*x12+x1*x13+x1*x14+x1*x15+x1*x16+x1*x18+x1*x19+x1*x20+x1*x22+x1*x25+x1*x27+x1*x28+x1*x29+x2*x4+x2*x6+x2*x7+x2*x8+x2*x9+x2*x11+x2*x12+x2*x15+x2*x16+x2*x18+x2*x19+x2*x20+x2*x21+x2*x22+x2*x26+x2*x27+x2*x28+x3*x4+x3*x12+x3*x13+x3*x14+x3*x18+x3*x20+x3*x21+x3*x26+x3*x28+x4*x5+x4*x6+x4*x8+x4*x9+x4*x11+x4*x12+x4*x13+x4*x14+x4*x16+x4*x17+x4*x19+x4*x20+x4*x21+x4*x23+x4*x24+x4*x27+x5*x7+x5*x8+x5*x10+x5*x11+x5*x13+x5*x15+x5*x17+x5*x18+x5*x20+x5*x21+x5*x22+x5*x24+x5*x25+x5*x28+x5*x29+x6*x7+x6*x9+x6*x11+x6*x12+x6*x13+x6*x16+x6*x18+x6*x21+x6*x23+x6*x28+x6*x29+x7*x8+x7*x9+x7*x12+x7*x14+x7*x16+x7*x18+x7*x19+x7*x20+x7*x21+x7*x24+x7*x25+x7*x26+x7*x27+x8*x14+x8*x15+x8*x17+x8*x22+x8*x25+x8*x27+x8*x28+x9*x11+x9*x12+x9*x13+x9*x16+x9*x18+x9*x23+x9*x24+x9*x26+x9*x30+x10*x13+x10*x14+x10*x15+x10*x16+x10*x19+x10*x20+x10*x25+x10*x26+x10*x28+x10*x30+x11*x13+x11*x19+x11*x21+x11*x23+x11*x24+x11*x25+x11*x26+x11*x27+x11*x28+x11*x29+x12*x15+x12*x20+x12*x21+x12*x26+x12*x28+x13*x14+x13*x17+x13*x20+x13*x21+x13*x23+x13*x25+x13*x28+x13*x29+x13*x30+x14*x15+x14*x16+x14*x17+x14*x18+x14*x22+x14*x23+x14*x28+x14*x29+x15*x16+x15*x17+x15*x18+x15*x21+x15*x22+x15*x23+x15*x27+x15*x29+x16*x17+x16*x23+x16*x24+x16*x25+x16*x27+x16*x28+x17*x22+x17*x23+x17*x26+x17*x29+x18*x19+x18*x20+x18*x22+x18*x23+x18*x24+x18*x25+x18*x27+x18*x30+x19*x22+x19*x23+x19*x24+x19*x28+x19*x29+x20*x23+x20*x24+x20*x25+x20*x27+x21*x24+x21*x25+x21*x27+x21*x28+x21*x29+x21*x30+x22*x27+x22*x28+x22*x29+x23*x24+x23*x27+x23*x28+x24*x25+x24*x27+x24*x30+x25*x28+x25*x29+x25*x30+x26*x27+x27*x30+x28*x30");
354  polHFE_30_96.emplace_back("x7+x9+x10+x12+x13+x14+x18+x19+x20+x27+x28+x29+x30+x1*x4+x1*x6+x1*x7+x1*x8+x1*x9+x1*x17+x1*x19+x1*x20+x1*x22+x1*x25+x1*x26+x1*x27+x2*x3+x2*x6+x2*x8+x2*x9+x2*x10+x2*x14+x2*x15+x2*x16+x2*x17+x2*x18+x2*x19+x2*x20+x2*x21+x2*x23+x2*x25+x2*x30+x3*x5+x3*x6+x3*x10+x3*x12+x3*x13+x3*x17+x3*x18+x3*x23+x3*x25+x3*x26+x3*x28+x3*x29+x3*x30+x4*x8+x4*x9+x4*x12+x4*x15+x4*x16+x4*x17+x4*x19+x4*x21+x4*x25+x4*x27+x4*x28+x4*x29+x4*x30+x5*x6+x5*x8+x5*x9+x5*x15+x5*x16+x5*x17+x5*x19+x5*x21+x5*x25+x5*x26+x5*x27+x5*x28+x6*x7+x6*x8+x6*x9+x6*x11+x6*x12+x6*x18+x6*x20+x6*x21+x6*x22+x6*x24+x6*x25+x6*x26+x6*x28+x7*x10+x7*x12+x7*x13+x7*x15+x7*x18+x7*x19+x7*x20+x7*x22+x7*x23+x7*x24+x7*x25+x7*x26+x7*x27+x7*x28+x7*x29+x8*x10+x8*x20+x8*x21+x8*x28+x9*x10+x9*x11+x9*x16+x9*x17+x9*x18+x9*x22+x9*x25+x9*x29+x10*x12+x10*x14+x10*x16+x10*x17+x10*x20+x10*x22+x10*x23+x10*x25+x10*x26+x10*x30+x11*x12+x11*x15+x11*x16+x11*x20+x11*x21+x11*x23+x11*x25+x11*x26+x11*x30+x12*x14+x12*x15+x12*x19+x12*x22+x12*x24+x12*x26+x12*x27+x12*x29+x13*x14+x13*x15+x13*x18+x13*x20+x13*x21+x13*x23+x13*x26+x13*x27+x13*x29+x14*x20+x14*x21+x14*x24+x14*x26+x14*x27+x14*x29+x15*x20+x15*x21+x15*x22+x15*x23+x15*x26+x15*x27+x15*x29+x15*x30+x16*x17+x16*x20+x16*x21+x16*x22+x16*x23+x16*x26+x16*x27+x16*x29+x16*x30+x17*x18+x17*x21+x17*x26+x17*x27+x17*x28+x18*x19+x18*x21+x18*x22+x18*x23+x18*x25+x18*x26+x18*x27+x18*x28+x18*x29+x19*x20+x19*x21+x19*x23+x19*x24+x19*x25+x20*x23+x20*x24+x20*x25+x20*x26+x21*x22+x21*x24+x21*x25+x21*x26+x22*x25+x22*x26+x22*x27+x22*x28+x23*x26+x23*x28+x23*x29+x23*x30+x24*x25+x24*x26+x24*x27+x25*x26+x25*x28+x25*x29+x25*x30+x27*x28+x27*x30+x29*x30");
355  polHFE_30_96.emplace_back("x1+x2+x6+x7+x8+x11+x15+x17+x18+x19+x20+x21+x25+x28+x30+x1*x2+x1*x3+x1*x4+x1*x5+x1*x9+x1*x11+x1*x12+x1*x13+x1*x15+x1*x16+x1*x17+x1*x18+x1*x19+x1*x20+x1*x22+x1*x25+x1*x26+x1*x29+x1*x30+x2*x5+x2*x7+x2*x14+x2*x15+x2*x17+x2*x18+x2*x20+x2*x22+x2*x24+x2*x25+x2*x29+x2*x30+x3*x6+x3*x7+x3*x8+x3*x9+x3*x13+x3*x14+x3*x15+x3*x19+x3*x20+x3*x21+x3*x22+x3*x23+x3*x24+x3*x28+x3*x29+x4*x11+x4*x15+x4*x18+x4*x19+x4*x20+x4*x21+x4*x22+x4*x23+x4*x26+x4*x28+x4*x30+x5*x8+x5*x9+x5*x12+x5*x15+x5*x18+x5*x20+x5*x24+x5*x25+x5*x26+x5*x28+x5*x30+x6*x8+x6*x9+x6*x10+x6*x12+x6*x13+x6*x18+x6*x21+x6*x23+x6*x24+x6*x25+x6*x27+x6*x29+x7*x9+x7*x11+x7*x12+x7*x15+x7*x16+x7*x19+x7*x24+x7*x25+x7*x28+x8*x9+x8*x11+x8*x16+x8*x18+x8*x19+x8*x20+x8*x23+x8*x24+x8*x27+x8*x30+x9*x14+x9*x16+x9*x17+x9*x18+x9*x22+x9*x23+x9*x24+x9*x25+x9*x26+x9*x27+x9*x30+x10*x11+x10*x13+x10*x14+x10*x17+x10*x19+x10*x22+x10*x23+x10*x24+x10*x26+x10*x29+x10*x30+x11*x12+x11*x15+x11*x16+x11*x17+x11*x22+x11*x27+x12*x13+x12*x14+x12*x15+x12*x16+x12*x17+x12*x18+x12*x22+x12*x23+x12*x24+x12*x25+x12*x26+x12*x28+x12*x29+x12*x30+x13*x14+x13*x15+x13*x18+x13*x22+x13*x25+x13*x26+x13*x29+x13*x30+x14*x16+x14*x21+x14*x24+x14*x26+x14*x30+x15*x17+x15*x22+x15*x24+x15*x25+x16*x19+x16*x20+x16*x24+x16*x26+x16*x28+x16*x29+x16*x30+x17*x18+x17*x19+x17*x23+x17*x24+x17*x29+x17*x30+x18*x20+x18*x22+x18*x28+x18*x30+x19*x21+x19*x22+x19*x28+x19*x30+x20*x23+x20*x25+x20*x26+x20*x27+x20*x30+x21*x24+x21*x28+x21*x29+x22*x23+x22*x24+x22*x25+x22*x26+x22*x27+x22*x28+x22*x30+x23*x24+x23*x25+x23*x27+x23*x28+x23*x29+x24*x28+x24*x29+x25*x26+x25*x29+x26*x28+x26*x29+x27*x28+x27*x29+x28*x30");
356  polHFE_30_96.emplace_back("x2+x3+x4+x5+x6+x9+x10+x17+x18+x19+x20+x23+x24+x25+x28+x29+x1*x2+x1*x3+x1*x6+x1*x9+x1*x13+x1*x14+x1*x15+x1*x18+x1*x20+x1*x21+x1*x22+x1*x23+x1*x25+x1*x26+x1*x29+x1*x30+x2*x3+x2*x4+x2*x5+x2*x6+x2*x11+x2*x13+x2*x18+x2*x20+x2*x22+x2*x24+x2*x25+x2*x28+x2*x30+x3*x6+x3*x8+x3*x9+x3*x11+x3*x13+x3*x19+x3*x23+x3*x26+x3*x27+x3*x28+x3*x29+x4*x6+x4*x10+x4*x12+x4*x13+x4*x14+x4*x17+x4*x19+x4*x20+x4*x21+x4*x22+x4*x23+x4*x24+x4*x25+x4*x26+x4*x27+x4*x28+x4*x30+x5*x7+x5*x8+x5*x11+x5*x13+x5*x14+x5*x15+x5*x16+x5*x17+x5*x21+x5*x26+x5*x27+x5*x29+x6*x7+x6*x8+x6*x9+x6*x10+x6*x14+x6*x15+x6*x17+x6*x19+x6*x20+x6*x24+x6*x26+x7*x9+x7*x11+x7*x13+x7*x15+x7*x18+x7*x19+x7*x20+x7*x21+x7*x22+x7*x24+x7*x26+x8*x11+x8*x13+x8*x15+x8*x16+x8*x17+x8*x18+x8*x19+x8*x21+x8*x23+x8*x26+x8*x29+x8*x30+x9*x10+x9*x13+x9*x15+x9*x16+x9*x17+x9*x18+x9*x22+x9*x23+x9*x24+x9*x25+x9*x30+x10*x12+x10*x13+x10*x15+x10*x17+x10*x18+x10*x20+x10*x22+x10*x27+x10*x30+x11*x12+x11*x13+x11*x14+x11*x15+x11*x17+x11*x18+x11*x21+x11*x25+x11*x27+x11*x29+x12*x14+x12*x18+x12*x20+x12*x21+x12*x23+x12*x24+x12*x26+x12*x27+x12*x28+x12*x30+x13*x14+x13*x21+x13*x23+x13*x24+x13*x25+x13*x27+x13*x30+x14*x16+x14*x17+x14*x19+x14*x25+x14*x27+x14*x28+x14*x29+x15*x16+x15*x17+x15*x18+x15*x19+x15*x24+x15*x25+x15*x29+x16*x17+x16*x19+x16*x20+x16*x22+x16*x23+x16*x24+x16*x25+x16*x28+x16*x29+x16*x30+x17*x20+x17*x21+x17*x22+x17*x23+x17*x24+x17*x28+x17*x29+x18*x19+x18*x20+x18*x24+x18*x26+x18*x28+x18*x29+x19*x20+x19*x21+x19*x22+x19*x23+x19*x25+x19*x28+x19*x30+x20*x23+x20*x25+x20*x27+x20*x28+x21*x22+x21*x23+x21*x25+x21*x26+x21*x29+x21*x30+x22*x23+x22*x28+x23*x24+x23*x26+x23*x30+x24*x25+x25*x27+x25*x28+x27*x28+x27*x29+x28*x29+x28*x30+x29*x30");
357  polHFE_30_96.emplace_back("1+x1+x2+x4+x5+x8+x9+x12+x13+x15+x16+x20+x21+x22+x23+x24+x25+x26+x28+x1*x2+x1*x3+x1*x6+x1*x7+x1*x8+x1*x9+x1*x12+x1*x13+x1*x14+x1*x15+x1*x18+x1*x19+x1*x20+x1*x23+x1*x27+x1*x29+x1*x30+x2*x3+x2*x5+x2*x9+x2*x12+x2*x15+x2*x17+x2*x18+x2*x19+x2*x21+x2*x22+x2*x23+x2*x27+x2*x29+x2*x30+x3*x4+x3*x5+x3*x6+x3*x7+x3*x8+x3*x9+x3*x10+x3*x11+x3*x12+x3*x14+x3*x15+x3*x16+x3*x19+x3*x20+x3*x23+x3*x24+x3*x25+x3*x26+x3*x28+x3*x29+x3*x30+x4*x5+x4*x6+x4*x9+x4*x12+x4*x13+x4*x14+x4*x17+x4*x18+x4*x19+x4*x22+x4*x26+x4*x27+x4*x28+x4*x29+x5*x6+x5*x7+x5*x9+x5*x10+x5*x15+x5*x16+x5*x20+x5*x21+x5*x23+x5*x28+x5*x29+x6*x10+x6*x11+x6*x12+x6*x13+x6*x15+x6*x16+x6*x21+x6*x22+x6*x23+x6*x25+x6*x26+x6*x27+x7*x13+x7*x14+x7*x15+x7*x16+x7*x18+x7*x19+x7*x21+x7*x25+x7*x28+x7*x29+x8*x10+x8*x11+x8*x12+x8*x19+x8*x20+x8*x22+x8*x23+x8*x25+x8*x28+x8*x30+x9*x10+x9*x11+x9*x13+x9*x14+x9*x17+x9*x18+x9*x20+x9*x22+x9*x24+x9*x28+x9*x30+x10*x14+x10*x15+x10*x24+x10*x26+x10*x27+x10*x28+x10*x30+x11*x18+x11*x20+x11*x22+x11*x24+x11*x25+x11*x26+x11*x28+x11*x29+x12*x13+x12*x15+x12*x17+x12*x18+x12*x19+x12*x21+x12*x22+x12*x23+x12*x25+x12*x27+x12*x30+x13*x15+x13*x16+x13*x18+x13*x20+x13*x21+x13*x23+x13*x24+x13*x26+x13*x27+x13*x28+x14*x16+x14*x17+x14*x19+x14*x20+x14*x21+x14*x24+x14*x25+x14*x26+x14*x28+x14*x30+x15*x17+x15*x18+x15*x20+x15*x24+x15*x25+x15*x26+x15*x27+x15*x28+x15*x30+x16*x18+x16*x20+x16*x21+x16*x24+x16*x25+x16*x26+x16*x28+x16*x30+x17*x20+x17*x21+x17*x24+x17*x25+x17*x26+x17*x27+x18*x20+x18*x21+x18*x23+x18*x25+x18*x26+x18*x28+x19*x20+x19*x21+x19*x23+x19*x25+x19*x26+x20*x21+x20*x22+x20*x23+x20*x24+x20*x25+x20*x26+x20*x27+x20*x29+x21*x25+x21*x30+x22*x24+x22*x26+x22*x27+x22*x28+x23*x28+x24*x26+x24*x27+x24*x30+x25*x28+x25*x29+x26*x27+x26*x30");
358  polHFE_30_96.emplace_back("1+x2+x3+x4+x13+x14+x15+x16+x20+x22+x24+x27+x28+x1*x3+x1*x4+x1*x10+x1*x11+x1*x12+x1*x17+x1*x19+x1*x24+x1*x26+x1*x28+x1*x29+x1*x30+x2*x3+x2*x4+x2*x5+x2*x6+x2*x8+x2*x9+x2*x11+x2*x12+x2*x13+x2*x14+x2*x16+x2*x17+x2*x22+x2*x23+x2*x27+x2*x28+x2*x30+x3*x4+x3*x5+x3*x8+x3*x9+x3*x13+x3*x14+x3*x15+x3*x16+x3*x17+x3*x22+x3*x23+x3*x24+x3*x27+x3*x28+x4*x6+x4*x8+x4*x9+x4*x15+x4*x17+x4*x18+x4*x19+x4*x20+x4*x21+x4*x27+x4*x29+x5*x6+x5*x8+x5*x10+x5*x14+x5*x17+x5*x19+x5*x21+x5*x24+x5*x26+x5*x27+x5*x30+x6*x7+x6*x10+x6*x12+x6*x15+x6*x19+x6*x21+x6*x22+x6*x23+x6*x24+x6*x25+x6*x28+x6*x30+x7*x9+x7*x12+x7*x16+x7*x18+x7*x19+x7*x25+x8*x10+x8*x11+x8*x12+x8*x14+x8*x15+x8*x17+x8*x18+x8*x19+x8*x20+x8*x23+x8*x24+x8*x26+x8*x27+x8*x30+x9*x11+x9*x12+x9*x13+x9*x14+x9*x16+x9*x17+x9*x19+x9*x21+x9*x22+x9*x23+x9*x25+x9*x28+x9*x30+x10*x12+x10*x15+x10*x16+x10*x17+x10*x22+x10*x25+x10*x29+x10*x30+x11*x13+x11*x14+x11*x15+x11*x16+x11*x17+x11*x19+x11*x20+x11*x22+x11*x23+x11*x24+x11*x25+x11*x26+x11*x27+x11*x28+x11*x30+x12*x15+x12*x20+x12*x21+x12*x24+x12*x25+x12*x28+x12*x29+x12*x30+x13*x14+x13*x15+x13*x16+x13*x17+x13*x18+x13*x23+x13*x24+x13*x27+x14*x16+x14*x17+x14*x20+x14*x21+x14*x23+x14*x25+x14*x29+x14*x30+x15*x17+x15*x20+x15*x21+x15*x24+x15*x25+x15*x26+x15*x29+x16*x17+x16*x18+x16*x19+x16*x20+x16*x23+x16*x28+x16*x29+x16*x30+x17*x18+x17*x20+x17*x21+x17*x23+x17*x27+x18*x23+x18*x25+x18*x27+x18*x28+x18*x29+x19*x20+x19*x21+x19*x24+x19*x28+x20*x21+x20*x22+x20*x23+x20*x24+x20*x25+x20*x27+x20*x30+x21*x24+x21*x25+x21*x29+x22*x23+x22*x27+x22*x29+x22*x30+x23*x25+x23*x26+x23*x29+x23*x30+x24*x26+x24*x30+x25*x27+x25*x28+x25*x29+x25*x30+x26*x27+x26*x28+x26*x29+x26*x30+x28*x29+x28*x30+x29*x30");
359  polHFE_30_96.emplace_back("x1+x6+x9+x10+x12+x14+x16+x17+x18+x19+x21+x26+x27+x1*x7+x1*x8+x1*x20+x1*x22+x1*x24+x1*x26+x1*x27+x1*x28+x1*x30+x2*x3+x2*x5+x2*x7+x2*x8+x2*x11+x2*x15+x2*x16+x2*x17+x2*x18+x2*x19+x2*x20+x2*x21+x2*x24+x2*x25+x2*x27+x2*x28+x2*x30+x3*x6+x3*x7+x3*x8+x3*x12+x3*x13+x3*x14+x3*x15+x3*x16+x3*x18+x3*x20+x3*x21+x3*x22+x3*x25+x3*x26+x3*x28+x3*x29+x4*x7+x4*x8+x4*x10+x4*x13+x4*x16+x4*x18+x4*x20+x4*x21+x4*x22+x4*x23+x4*x25+x4*x27+x5*x7+x5*x9+x5*x12+x5*x14+x5*x18+x5*x19+x5*x20+x5*x23+x5*x28+x5*x30+x6*x7+x6*x10+x6*x12+x6*x17+x6*x21+x6*x22+x6*x24+x6*x25+x6*x26+x7*x8+x7*x10+x7*x12+x7*x14+x7*x18+x7*x20+x7*x22+x7*x23+x7*x24+x7*x26+x7*x29+x7*x30+x8*x12+x8*x14+x8*x16+x8*x17+x8*x18+x8*x19+x8*x21+x8*x22+x8*x23+x8*x24+x8*x26+x8*x27+x8*x28+x8*x29+x8*x30+x9*x14+x9*x15+x9*x16+x9*x22+x9*x25+x9*x27+x9*x29+x9*x30+x10*x11+x10*x12+x10*x13+x10*x17+x10*x21+x10*x23+x10*x24+x10*x26+x10*x27+x10*x28+x11*x12+x11*x14+x11*x15+x11*x17+x11*x21+x11*x22+x11*x23+x11*x25+x11*x26+x11*x28+x12*x14+x12*x18+x12*x20+x12*x21+x12*x22+x12*x23+x12*x27+x12*x28+x12*x29+x13*x15+x13*x16+x13*x17+x13*x20+x13*x23+x13*x25+x13*x27+x13*x28+x13*x30+x14*x15+x14*x16+x14*x17+x14*x18+x14*x20+x14*x22+x14*x24+x14*x30+x15*x17+x15*x19+x15*x21+x15*x22+x15*x23+x15*x24+x15*x25+x15*x26+x15*x27+x15*x28+x16*x19+x16*x20+x16*x21+x16*x24+x16*x26+x16*x27+x16*x29+x17*x18+x17*x21+x17*x23+x17*x25+x17*x30+x18*x20+x18*x21+x18*x25+x18*x26+x18*x29+x19*x21+x19*x24+x19*x25+x19*x26+x19*x28+x19*x30+x20*x22+x20*x24+x20*x27+x20*x28+x20*x29+x20*x30+x21*x22+x21*x27+x22*x23+x22*x24+x22*x25+x22*x28+x23*x26+x23*x27+x24*x26+x24*x27+x24*x28+x24*x29+x24*x30+x25*x26+x25*x28+x25*x30+x26*x27+x27*x28");
360  polHFE_30_96.emplace_back("1+x2+x4+x5+x6+x7+x8+x9+x13+x15+x16+x21+x23+x24+x25+x29+x30+x1*x2+x1*x3+x1*x4+x1*x6+x1*x9+x1*x10+x1*x11+x1*x12+x1*x16+x1*x18+x1*x21+x1*x22+x1*x24+x1*x25+x1*x26+x1*x29+x1*x30+x2*x3+x2*x4+x2*x5+x2*x6+x2*x7+x2*x8+x2*x10+x2*x11+x2*x12+x2*x14+x2*x15+x2*x18+x2*x22+x3*x6+x3*x7+x3*x8+x3*x12+x3*x13+x3*x14+x3*x15+x3*x18+x3*x21+x3*x22+x3*x23+x3*x24+x3*x25+x4*x8+x4*x9+x4*x10+x4*x11+x4*x12+x4*x14+x4*x16+x4*x18+x4*x19+x4*x24+x4*x25+x4*x30+x5*x8+x5*x10+x5*x11+x5*x12+x5*x15+x5*x18+x5*x20+x5*x22+x5*x23+x5*x25+x5*x26+x5*x27+x5*x28+x6*x9+x6*x10+x6*x11+x6*x12+x6*x14+x6*x15+x6*x17+x6*x19+x6*x20+x6*x23+x6*x24+x6*x25+x7*x8+x7*x9+x7*x10+x7*x17+x7*x19+x7*x21+x7*x25+x7*x27+x7*x30+x8*x9+x8*x15+x8*x16+x8*x17+x8*x19+x8*x27+x8*x28+x8*x30+x9*x12+x9*x14+x9*x15+x9*x17+x9*x18+x9*x19+x9*x24+x9*x26+x9*x27+x9*x28+x10*x11+x10*x12+x10*x13+x10*x15+x10*x16+x10*x18+x10*x19+x10*x21+x10*x22+x10*x25+x10*x27+x10*x28+x11*x13+x11*x14+x11*x15+x11*x16+x11*x17+x11*x18+x11*x19+x11*x20+x11*x25+x11*x26+x11*x27+x11*x30+x12*x13+x12*x23+x12*x24+x12*x25+x12*x29+x13*x17+x13*x19+x13*x24+x13*x25+x13*x26+x13*x27+x13*x29+x13*x30+x14*x18+x14*x19+x14*x21+x14*x24+x14*x27+x14*x29+x14*x30+x15*x16+x15*x18+x15*x20+x15*x21+x15*x24+x15*x25+x15*x26+x15*x28+x16*x17+x16*x18+x16*x22+x16*x24+x16*x25+x16*x27+x16*x28+x16*x29+x17*x19+x17*x21+x17*x24+x17*x27+x17*x28+x18*x20+x18*x26+x18*x28+x18*x30+x19*x22+x19*x23+x19*x26+x19*x30+x20*x22+x20*x23+x20*x24+x20*x25+x20*x27+x21*x22+x21*x30+x22*x24+x22*x26+x22*x28+x23*x24+x23*x29+x23*x30+x24*x26+x24*x27+x24*x29+x25*x26+x25*x27+x26*x27+x26*x28+x26*x30+x27*x28+x27*x30");
361  polHFE_30_96.emplace_back("1+x1+x4+x5+x6+x8+x9+x11+x12+x16+x20+x23+x24+x28+x29+x30+x1*x4+x1*x6+x1*x7+x1*x13+x1*x15+x1*x16+x1*x17+x1*x19+x1*x23+x1*x26+x1*x27+x1*x28+x1*x29+x1*x30+x2*x3+x2*x4+x2*x9+x2*x10+x2*x11+x2*x13+x2*x14+x2*x18+x2*x28+x2*x30+x3*x5+x3*x13+x3*x14+x3*x17+x3*x19+x3*x20+x3*x21+x3*x22+x3*x28+x3*x30+x4*x7+x4*x9+x4*x12+x4*x16+x4*x19+x4*x20+x4*x22+x4*x23+x4*x24+x4*x28+x4*x29+x4*x30+x5*x6+x5*x7+x5*x10+x5*x13+x5*x14+x5*x16+x5*x18+x5*x20+x5*x22+x5*x24+x5*x28+x5*x29+x5*x30+x6*x7+x6*x8+x6*x11+x6*x15+x6*x16+x6*x17+x6*x18+x6*x19+x6*x22+x6*x23+x6*x24+x6*x28+x6*x29+x7*x9+x7*x11+x7*x13+x7*x14+x7*x20+x7*x21+x7*x24+x7*x26+x7*x28+x7*x29+x7*x30+x8*x9+x8*x10+x8*x11+x8*x12+x8*x13+x8*x17+x8*x18+x8*x21+x8*x22+x8*x24+x8*x30+x9*x10+x9*x16+x9*x17+x9*x19+x9*x23+x9*x25+x9*x28+x9*x29+x9*x30+x10*x11+x10*x14+x10*x17+x10*x19+x10*x20+x10*x21+x10*x23+x10*x24+x10*x27+x10*x30+x11*x14+x11*x17+x11*x18+x11*x20+x11*x26+x11*x28+x11*x29+x11*x30+x12*x15+x12*x18+x12*x19+x12*x21+x12*x22+x12*x24+x12*x26+x12*x29+x13*x14+x13*x15+x13*x16+x13*x19+x13*x20+x13*x23+x13*x25+x13*x29+x14*x15+x14*x16+x14*x19+x14*x20+x14*x22+x14*x23+x14*x24+x14*x25+x14*x28+x14*x29+x15*x17+x15*x19+x15*x20+x15*x23+x15*x26+x15*x27+x15*x28+x15*x30+x16*x17+x16*x18+x16*x19+x16*x21+x16*x22+x16*x27+x17*x20+x17*x21+x17*x23+x17*x26+x17*x28+x17*x30+x18*x22+x18*x25+x18*x26+x18*x27+x18*x28+x18*x29+x18*x30+x19*x22+x19*x25+x19*x26+x19*x28+x19*x29+x19*x30+x20*x21+x20*x23+x20*x24+x20*x27+x20*x28+x20*x29+x20*x30+x21*x22+x21*x28+x21*x30+x22*x24+x22*x28+x22*x30+x23*x24+x23*x25+x23*x29+x24*x26+x25*x26+x25*x27+x25*x28+x25*x29+x26*x27+x26*x29+x27*x28");
362  polHFE_30_96.emplace_back("x2+x4+x6+x8+x12+x14+x15+x16+x17+x20+x21+x23+x25+x28+x30+x1*x2+x1*x3+x1*x4+x1*x5+x1*x8+x1*x10+x1*x11+x1*x17+x1*x19+x1*x21+x1*x22+x1*x23+x1*x24+x1*x27+x1*x28+x1*x29+x1*x30+x2*x6+x2*x7+x2*x8+x2*x11+x2*x12+x2*x13+x2*x14+x2*x16+x2*x22+x2*x23+x2*x24+x2*x25+x2*x30+x3*x4+x3*x5+x3*x6+x3*x7+x3*x8+x3*x9+x3*x10+x3*x12+x3*x13+x3*x14+x3*x15+x3*x16+x3*x17+x3*x18+x3*x19+x3*x20+x3*x21+x3*x22+x3*x24+x3*x26+x3*x28+x3*x29+x3*x30+x4*x6+x4*x9+x4*x10+x4*x11+x4*x20+x4*x23+x4*x24+x4*x26+x4*x27+x4*x29+x4*x30+x5*x9+x5*x10+x5*x11+x5*x12+x5*x15+x5*x17+x5*x19+x5*x20+x5*x21+x5*x22+x5*x24+x5*x27+x5*x28+x5*x30+x6*x8+x6*x9+x6*x12+x6*x13+x6*x15+x6*x17+x6*x18+x6*x19+x6*x21+x6*x22+x6*x26+x6*x29+x7*x11+x7*x16+x7*x17+x7*x19+x7*x20+x7*x22+x7*x23+x7*x25+x7*x27+x7*x28+x7*x29+x8*x9+x8*x10+x8*x12+x8*x15+x8*x16+x8*x21+x8*x23+x8*x24+x8*x28+x8*x30+x9*x10+x9*x11+x9*x12+x9*x13+x9*x16+x9*x19+x9*x22+x9*x23+x9*x24+x9*x27+x9*x28+x9*x30+x10*x11+x10*x12+x10*x13+x10*x14+x10*x17+x10*x20+x10*x25+x10*x28+x11*x13+x11*x14+x11*x15+x11*x17+x11*x20+x11*x22+x11*x23+x11*x24+x11*x25+x11*x26+x11*x27+x11*x29+x12*x13+x12*x14+x12*x15+x12*x16+x12*x18+x12*x28+x12*x29+x13*x14+x13*x15+x13*x16+x13*x17+x13*x18+x13*x19+x13*x22+x13*x24+x13*x29+x14*x15+x14*x16+x14*x17+x14*x18+x14*x19+x14*x20+x14*x24+x14*x25+x14*x29+x14*x30+x15*x16+x15*x17+x15*x19+x15*x20+x15*x21+x15*x22+x15*x24+x15*x30+x16*x18+x16*x19+x16*x20+x16*x22+x16*x24+x16*x26+x16*x27+x16*x28+x16*x29+x17*x21+x17*x23+x17*x25+x17*x27+x17*x28+x18*x22+x18*x25+x18*x26+x18*x28+x18*x29+x18*x30+x19*x20+x19*x23+x19*x25+x19*x27+x19*x28+x20*x21+x20*x22+x20*x23+x20*x24+x20*x25+x20*x26+x21*x22+x21*x25+x21*x26+x21*x27+x21*x28+x21*x30+x22*x24+x22*x25+x22*x26+x22*x27+x22*x28+x22*x29+x22*x30+x23*x24+x23*x28+x24*x25+x24*x26+x24*x27+x24*x29+x24*x30+x25*x29+x26*x27+x26*x28+x27*x28+x27*x30+x28*x30+x29*x30");
363  polHFE_30_96.emplace_back("1+x1+x3+x5+x6+x7+x10+x11+x20+x21+x22+x24+x25+x26+x27+x28+x1*x2+x1*x4+x1*x7+x1*x9+x1*x10+x1*x11+x1*x12+x1*x13+x1*x14+x1*x15+x1*x21+x1*x22+x1*x24+x1*x27+x1*x28+x2*x3+x2*x5+x2*x7+x2*x8+x2*x11+x2*x12+x2*x14+x2*x17+x2*x18+x2*x20+x2*x24+x2*x26+x2*x27+x2*x28+x2*x30+x3*x4+x3*x7+x3*x8+x3*x9+x3*x11+x3*x12+x3*x19+x3*x21+x3*x23+x3*x29+x4*x5+x4*x6+x4*x8+x4*x9+x4*x10+x4*x11+x4*x12+x4*x15+x4*x17+x4*x19+x4*x23+x4*x24+x4*x25+x4*x26+x4*x27+x4*x28+x4*x29+x5*x8+x5*x10+x5*x11+x5*x12+x5*x13+x5*x14+x5*x15+x5*x20+x5*x24+x5*x25+x5*x28+x5*x29+x5*x30+x6*x7+x6*x9+x6*x14+x6*x15+x6*x16+x6*x18+x6*x19+x6*x20+x6*x22+x6*x23+x6*x25+x6*x27+x6*x28+x6*x30+x7*x8+x7*x11+x7*x14+x7*x15+x7*x21+x7*x23+x7*x24+x7*x25+x7*x27+x7*x28+x7*x29+x7*x30+x8*x9+x8*x11+x8*x17+x8*x18+x8*x19+x8*x22+x8*x23+x8*x25+x8*x27+x9*x10+x9*x11+x9*x13+x9*x16+x9*x19+x9*x24+x9*x25+x9*x26+x9*x27+x9*x29+x10*x12+x10*x13+x10*x14+x10*x16+x10*x18+x10*x20+x10*x21+x10*x22+x10*x23+x10*x24+x10*x26+x10*x28+x10*x29+x10*x30+x11*x13+x11*x14+x11*x15+x11*x16+x11*x17+x11*x19+x11*x22+x11*x26+x11*x28+x11*x29+x11*x30+x12*x15+x12*x18+x12*x19+x12*x21+x12*x27+x12*x28+x12*x29+x13*x15+x13*x16+x13*x17+x13*x18+x13*x21+x13*x22+x13*x23+x13*x24+x13*x25+x13*x26+x13*x27+x13*x28+x13*x30+x14*x16+x14*x18+x14*x19+x14*x23+x14*x24+x14*x27+x14*x30+x15*x16+x15*x17+x15*x18+x15*x19+x15*x20+x15*x21+x15*x22+x15*x26+x15*x28+x15*x29+x15*x30+x16*x17+x16*x19+x16*x21+x16*x23+x16*x26+x16*x27+x16*x29+x17*x18+x17*x20+x17*x22+x17*x27+x18*x19+x18*x20+x18*x21+x18*x25+x18*x27+x18*x28+x19*x20+x19*x21+x19*x24+x19*x25+x19*x26+x19*x27+x19*x29+x20*x21+x20*x23+x20*x25+x20*x26+x20*x28+x20*x29+x20*x30+x21*x24+x21*x26+x21*x28+x21*x29+x22*x24+x22*x28+x22*x29+x22*x30+x23*x24+x23*x25+x23*x26+x23*x28+x23*x29+x23*x30+x24*x27+x24*x28+x24*x29+x25*x29+x25*x30+x26*x27+x26*x28+x26*x30+x27*x28+x27*x29+x27*x30+x28*x29+x28*x30");
364  polHFE_30_96.emplace_back("x3+x4+x6+x7+x9+x11+x13+x14+x15+x18+x19+x23+x26+x27+x28+x29+x30+x1*x2+x1*x4+x1*x8+x1*x10+x1*x11+x1*x13+x1*x15+x1*x19+x1*x20+x1*x24+x1*x25+x2*x3+x2*x4+x2*x6+x2*x9+x2*x11+x2*x12+x2*x13+x2*x14+x2*x17+x2*x18+x2*x19+x2*x20+x2*x25+x2*x28+x2*x29+x2*x30+x3*x5+x3*x8+x3*x9+x3*x11+x3*x12+x3*x13+x3*x14+x3*x16+x3*x17+x3*x20+x3*x21+x3*x22+x3*x23+x3*x24+x4*x7+x4*x8+x4*x9+x4*x11+x4*x15+x4*x16+x4*x18+x4*x22+x4*x25+x4*x27+x4*x28+x4*x29+x5*x9+x5*x11+x5*x12+x5*x14+x5*x16+x5*x18+x5*x19+x5*x20+x5*x21+x5*x25+x5*x27+x5*x28+x5*x29+x5*x30+x6*x11+x6*x12+x6*x15+x6*x16+x6*x18+x6*x21+x6*x27+x6*x28+x6*x29+x6*x30+x7*x8+x7*x9+x7*x11+x7*x12+x7*x13+x7*x15+x7*x16+x7*x18+x7*x20+x7*x27+x7*x28+x7*x29+x8*x9+x8*x10+x8*x14+x8*x17+x8*x20+x8*x22+x8*x23+x8*x25+x8*x28+x8*x29+x8*x30+x9*x14+x9*x15+x9*x19+x9*x20+x9*x21+x9*x23+x9*x24+x9*x25+x9*x26+x9*x27+x9*x28+x9*x29+x10*x11+x10*x13+x10*x14+x10*x17+x10*x20+x10*x23+x10*x24+x10*x27+x10*x28+x11*x12+x11*x13+x11*x14+x11*x16+x11*x17+x11*x19+x11*x20+x11*x21+x11*x22+x11*x23+x11*x25+x11*x26+x11*x28+x11*x30+x12*x13+x12*x19+x12*x26+x12*x27+x12*x28+x12*x29+x13*x14+x13*x16+x13*x18+x13*x20+x13*x21+x13*x22+x13*x26+x13*x27+x13*x28+x14*x19+x14*x21+x14*x23+x14*x24+x14*x25+x14*x27+x14*x28+x14*x29+x15*x20+x15*x21+x15*x22+x15*x23+x15*x25+x15*x27+x15*x28+x16*x20+x16*x25+x16*x26+x16*x29+x17*x20+x17*x21+x17*x22+x17*x27+x17*x30+x18*x20+x18*x24+x18*x25+x18*x26+x18*x29+x18*x30+x19*x22+x19*x25+x19*x26+x19*x27+x19*x28+x20*x26+x20*x29+x21*x22+x21*x23+x21*x28+x21*x30+x22*x24+x22*x27+x22*x28+x23*x25+x23*x26+x23*x29+x23*x30+x24*x25+x24*x26+x24*x27+x24*x28+x24*x30+x25*x26+x25*x27+x25*x28+x25*x30+x26*x27+x26*x28+x26*x30+x27*x29+x28*x30");
365  polHFE_30_96.emplace_back("1+x3+x5+x6+x11+x12+x13+x15+x16+x17+x21+x22+x23+x25+x27+x29+x30+x1*x3+x1*x5+x1*x10+x1*x11+x1*x12+x1*x13+x1*x14+x1*x15+x1*x17+x1*x19+x1*x20+x1*x21+x1*x22+x1*x25+x1*x28+x2*x6+x2*x12+x2*x14+x2*x17+x2*x18+x2*x20+x2*x23+x2*x25+x2*x26+x2*x27+x2*x28+x2*x29+x2*x30+x3*x4+x3*x6+x3*x8+x3*x9+x3*x10+x3*x11+x3*x13+x3*x16+x3*x19+x3*x20+x3*x21+x3*x22+x3*x23+x3*x28+x3*x29+x3*x30+x4*x6+x4*x7+x4*x8+x4*x9+x4*x13+x4*x15+x4*x20+x4*x25+x4*x26+x4*x29+x4*x30+x5*x7+x5*x8+x5*x11+x5*x12+x5*x14+x5*x16+x5*x18+x5*x19+x5*x23+x5*x24+x5*x25+x5*x28+x5*x29+x5*x30+x6*x7+x6*x8+x6*x15+x6*x16+x6*x20+x6*x22+x6*x24+x6*x25+x6*x26+x6*x28+x6*x29+x7*x8+x7*x12+x7*x13+x7*x14+x7*x15+x7*x16+x7*x17+x7*x19+x7*x20+x7*x21+x7*x22+x7*x24+x7*x25+x7*x29+x8*x9+x8*x11+x8*x12+x8*x17+x8*x18+x8*x21+x8*x22+x8*x25+x8*x26+x8*x27+x8*x28+x8*x29+x9*x10+x9*x12+x9*x13+x9*x17+x9*x19+x9*x20+x9*x22+x9*x24+x9*x26+x9*x28+x9*x30+x10*x13+x10*x14+x10*x16+x10*x18+x10*x19+x10*x20+x10*x22+x10*x24+x10*x25+x10*x29+x10*x30+x11*x12+x11*x14+x11*x15+x11*x18+x11*x20+x11*x27+x11*x28+x11*x29+x11*x30+x12*x14+x12*x15+x12*x17+x12*x18+x12*x20+x12*x22+x12*x25+x12*x28+x12*x29+x12*x30+x13*x14+x13*x15+x13*x17+x13*x18+x13*x21+x13*x22+x13*x23+x13*x25+x13*x26+x13*x27+x13*x28+x13*x29+x14*x15+x14*x20+x14*x21+x14*x26+x14*x28+x14*x30+x15*x17+x15*x18+x15*x19+x15*x20+x15*x26+x15*x27+x15*x28+x15*x30+x16*x22+x16*x23+x16*x25+x16*x26+x16*x28+x16*x29+x16*x30+x17*x18+x17*x20+x17*x23+x17*x25+x17*x27+x17*x28+x18*x20+x18*x22+x18*x26+x18*x28+x18*x30+x19*x22+x19*x23+x19*x24+x19*x29+x20*x21+x20*x23+x20*x24+x20*x25+x20*x27+x20*x28+x20*x29+x20*x30+x21*x24+x21*x25+x21*x29+x22*x24+x22*x25+x22*x26+x22*x27+x22*x28+x23*x25+x23*x26+x23*x27+x24*x26+x24*x27+x24*x28+x24*x30+x25*x26+x25*x28+x25*x30+x26*x27+x26*x29+x26*x30");
366  polHFE_30_96.emplace_back("x1+x2+x4+x5+x6+x9+x10+x11+x12+x13+x14+x20+x24+x25+x26+x27+x1*x3+x1*x4+x1*x5+x1*x7+x1*x8+x1*x10+x1*x15+x1*x20+x1*x21+x1*x22+x1*x25+x1*x26+x1*x27+x1*x28+x1*x30+x2*x3+x2*x4+x2*x5+x2*x6+x2*x8+x2*x9+x2*x12+x2*x16+x2*x18+x2*x19+x2*x20+x2*x21+x2*x22+x2*x24+x2*x25+x2*x26+x2*x27+x2*x30+x3*x5+x3*x7+x3*x8+x3*x9+x3*x12+x3*x15+x3*x16+x3*x18+x3*x20+x3*x25+x3*x27+x3*x28+x3*x29+x4*x8+x4*x9+x4*x11+x4*x12+x4*x13+x4*x14+x4*x15+x4*x17+x4*x19+x4*x20+x4*x23+x4*x25+x4*x28+x4*x29+x5*x7+x5*x8+x5*x11+x5*x12+x5*x13+x5*x14+x5*x15+x5*x16+x5*x17+x5*x20+x5*x21+x5*x24+x5*x26+x5*x27+x5*x28+x5*x29+x5*x30+x6*x9+x6*x10+x6*x12+x6*x13+x6*x19+x6*x20+x6*x21+x6*x22+x6*x24+x6*x26+x6*x27+x7*x8+x7*x10+x7*x11+x7*x14+x7*x15+x7*x16+x7*x17+x7*x20+x7*x21+x7*x26+x7*x28+x7*x29+x8*x11+x8*x14+x8*x16+x8*x17+x8*x19+x8*x20+x8*x22+x8*x24+x8*x25+x8*x27+x8*x28+x8*x29+x8*x30+x9*x10+x9*x11+x9*x12+x9*x13+x9*x14+x9*x15+x9*x17+x9*x19+x9*x20+x9*x23+x9*x25+x9*x26+x9*x27+x9*x28+x9*x29+x9*x30+x10*x11+x10*x12+x10*x15+x10*x17+x10*x18+x10*x21+x10*x22+x10*x23+x10*x24+x10*x25+x10*x30+x11*x15+x11*x16+x11*x18+x11*x20+x11*x21+x11*x22+x11*x23+x11*x25+x11*x27+x11*x28+x11*x30+x12*x14+x12*x15+x12*x16+x12*x18+x12*x20+x12*x22+x12*x24+x12*x25+x12*x27+x13*x14+x13*x16+x13*x18+x13*x24+x13*x25+x13*x26+x13*x27+x13*x28+x13*x29+x14*x15+x14*x16+x14*x18+x14*x23+x14*x24+x14*x25+x15*x16+x15*x18+x15*x21+x15*x23+x15*x28+x15*x30+x16*x18+x16*x19+x16*x20+x16*x21+x16*x22+x16*x27+x16*x29+x17*x19+x17*x23+x17*x25+x18*x19+x18*x26+x19*x20+x19*x21+x19*x23+x19*x26+x19*x28+x19*x29+x20*x21+x20*x24+x21*x22+x21*x24+x21*x25+x21*x26+x21*x27+x21*x28+x21*x29+x22*x23+x22*x26+x22*x27+x22*x29+x22*x30+x23*x27+x23*x28+x23*x30+x24*x26+x24*x28+x24*x30+x25*x27+x25*x28+x25*x30+x26*x27+x26*x29+x27*x28+x28*x29+x29*x30");
367  polHFE_30_96.emplace_back("1+x2+x3+x6+x7+x8+x9+x12+x14+x15+x17+x19+x20+x24+x27+x29+x1*x4+x1*x6+x1*x10+x1*x12+x1*x15+x1*x16+x1*x18+x1*x22+x1*x27+x1*x29+x2*x3+x2*x6+x2*x7+x2*x10+x2*x11+x2*x13+x2*x15+x2*x20+x2*x26+x2*x28+x2*x30+x3*x8+x3*x11+x3*x16+x3*x18+x3*x19+x3*x23+x3*x25+x3*x26+x3*x30+x4*x5+x4*x7+x4*x10+x4*x12+x4*x13+x4*x14+x4*x17+x4*x18+x4*x23+x4*x24+x4*x25+x4*x26+x4*x27+x4*x28+x4*x29+x5*x7+x5*x9+x5*x10+x5*x11+x5*x12+x5*x14+x5*x16+x5*x18+x5*x19+x5*x20+x5*x24+x5*x28+x5*x30+x6*x8+x6*x9+x6*x10+x6*x11+x6*x12+x6*x13+x6*x14+x6*x15+x6*x16+x6*x19+x6*x20+x6*x21+x6*x23+x6*x26+x6*x30+x7*x10+x7*x12+x7*x16+x7*x18+x7*x20+x7*x25+x7*x26+x7*x27+x7*x29+x8*x9+x8*x10+x8*x11+x8*x12+x8*x16+x8*x19+x8*x21+x8*x22+x8*x23+x8*x24+x8*x25+x8*x27+x8*x28+x8*x29+x9*x10+x9*x12+x9*x13+x9*x17+x9*x19+x9*x22+x9*x24+x9*x26+x9*x28+x9*x29+x10*x12+x10*x15+x10*x17+x10*x18+x10*x19+x10*x21+x10*x23+x10*x24+x10*x25+x10*x26+x10*x28+x10*x29+x11*x12+x11*x13+x11*x15+x11*x17+x11*x18+x11*x20+x11*x21+x11*x22+x11*x23+x11*x25+x11*x27+x11*x29+x12*x15+x12*x17+x12*x18+x12*x20+x12*x21+x12*x24+x12*x30+x13*x16+x13*x18+x13*x20+x13*x23+x13*x30+x14*x16+x14*x18+x14*x19+x14*x26+x14*x27+x14*x28+x14*x30+x15*x17+x15*x19+x15*x22+x15*x24+x15*x25+x15*x28+x16*x17+x16*x19+x16*x23+x16*x24+x16*x25+x16*x27+x16*x29+x17*x18+x17*x20+x17*x22+x17*x23+x17*x26+x17*x27+x17*x28+x17*x30+x18*x19+x18*x20+x18*x22+x18*x23+x18*x24+x18*x27+x18*x28+x18*x30+x19*x20+x19*x22+x19*x23+x19*x25+x19*x26+x19*x29+x19*x30+x20*x21+x20*x23+x20*x26+x20*x27+x20*x30+x21*x24+x21*x25+x21*x27+x21*x28+x21*x30+x22*x23+x22*x27+x22*x28+x22*x29+x23*x24+x23*x25+x23*x26+x23*x27+x23*x29+x23*x30+x24*x25+x24*x27+x24*x29+x24*x30+x25*x26+x25*x27+x25*x29+x26*x27+x26*x28+x26*x29+x27*x30+x28*x30");
368  polHFE_30_96.emplace_back("1+x1+x3+x4+x6+x9+x10+x11+x15+x16+x20+x21+x22+x25+x28+x29+x1*x2+x1*x6+x1*x7+x1*x8+x1*x11+x1*x12+x1*x15+x1*x20+x1*x22+x1*x23+x1*x26+x1*x27+x1*x28+x1*x29+x1*x30+x2*x3+x2*x4+x2*x6+x2*x9+x2*x11+x2*x12+x2*x14+x2*x20+x2*x21+x2*x22+x2*x24+x2*x25+x2*x26+x2*x29+x3*x4+x3*x5+x3*x7+x3*x11+x3*x14+x3*x16+x3*x18+x3*x20+x3*x23+x3*x25+x3*x28+x3*x30+x4*x5+x4*x7+x4*x8+x4*x9+x4*x16+x4*x17+x4*x19+x4*x20+x4*x21+x4*x23+x4*x28+x4*x29+x4*x30+x5*x6+x5*x7+x5*x8+x5*x10+x5*x11+x5*x12+x5*x14+x5*x16+x5*x17+x5*x18+x5*x19+x5*x23+x5*x29+x6*x8+x6*x10+x6*x15+x6*x18+x6*x19+x6*x21+x6*x24+x6*x26+x6*x27+x6*x29+x6*x30+x7*x10+x7*x11+x7*x13+x7*x14+x7*x15+x7*x17+x7*x20+x7*x21+x7*x25+x7*x27+x7*x28+x8*x11+x8*x12+x8*x13+x8*x15+x8*x24+x8*x26+x8*x29+x8*x30+x9*x11+x9*x13+x9*x16+x9*x17+x9*x18+x9*x20+x9*x24+x9*x26+x9*x27+x9*x28+x10*x12+x10*x15+x10*x17+x10*x20+x10*x21+x10*x22+x10*x23+x10*x25+x10*x28+x11*x12+x11*x13+x11*x14+x11*x22+x11*x25+x11*x26+x11*x27+x11*x28+x11*x29+x11*x30+x12*x13+x12*x15+x12*x17+x12*x20+x12*x21+x12*x22+x12*x23+x12*x25+x12*x27+x12*x28+x12*x29+x12*x30+x13*x14+x13*x15+x13*x17+x13*x20+x13*x22+x13*x24+x13*x25+x13*x26+x13*x27+x13*x28+x13*x29+x14*x16+x14*x18+x14*x19+x14*x20+x14*x21+x14*x22+x14*x24+x14*x26+x15*x17+x15*x19+x15*x21+x15*x22+x15*x26+x15*x29+x15*x30+x16*x20+x16*x22+x16*x23+x16*x24+x16*x26+x17*x19+x17*x20+x17*x21+x17*x23+x17*x24+x17*x26+x17*x29+x18*x22+x18*x23+x18*x26+x18*x27+x18*x28+x18*x30+x19*x20+x19*x21+x19*x22+x19*x23+x19*x24+x19*x26+x19*x28+x19*x29+x19*x30+x20*x21+x20*x26+x20*x28+x20*x29+x21*x22+x21*x24+x21*x29+x22*x23+x22*x26+x22*x29+x22*x30+x23*x27+x23*x28+x23*x29+x23*x30+x24*x26+x24*x27+x24*x28+x25*x27+x25*x29+x26*x30+x27*x28+x27*x29+x27*x30+x28*x30+x29*x30");
369  polHFE_30_96.emplace_back("1+x2+x4+x7+x9+x10+x11+x12+x15+x18+x22+x23+x25+x26+x1*x4+x1*x5+x1*x9+x1*x10+x1*x11+x1*x14+x1*x15+x1*x17+x1*x19+x1*x22+x1*x23+x1*x25+x1*x26+x1*x27+x1*x29+x1*x30+x2*x3+x2*x4+x2*x9+x2*x10+x2*x12+x2*x14+x2*x15+x2*x19+x2*x20+x2*x21+x2*x22+x2*x23+x2*x24+x2*x27+x2*x30+x3*x6+x3*x7+x3*x8+x3*x9+x3*x10+x3*x11+x3*x13+x3*x15+x3*x16+x3*x17+x3*x23+x3*x26+x3*x27+x3*x29+x3*x30+x4*x5+x4*x6+x4*x7+x4*x8+x4*x10+x4*x11+x4*x15+x4*x16+x4*x17+x4*x19+x4*x20+x4*x24+x4*x26+x4*x27+x4*x28+x4*x29+x5*x8+x5*x10+x5*x11+x5*x12+x5*x14+x5*x16+x5*x17+x5*x18+x5*x23+x5*x24+x5*x25+x5*x26+x5*x28+x5*x29+x6*x7+x6*x12+x6*x13+x6*x15+x6*x18+x6*x20+x6*x21+x6*x22+x6*x24+x6*x25+x6*x27+x7*x8+x7*x12+x7*x16+x7*x17+x7*x21+x7*x23+x7*x24+x7*x25+x7*x26+x8*x10+x8*x15+x8*x18+x8*x22+x8*x23+x8*x25+x8*x30+x9*x11+x9*x12+x9*x14+x9*x17+x9*x18+x9*x20+x9*x22+x9*x23+x9*x24+x9*x25+x9*x26+x9*x27+x9*x29+x10*x13+x10*x19+x10*x21+x10*x25+x10*x26+x10*x27+x10*x28+x10*x30+x11*x12+x11*x14+x11*x18+x11*x22+x11*x26+x11*x27+x11*x28+x11*x29+x11*x30+x12*x14+x12*x18+x12*x19+x12*x20+x12*x22+x12*x23+x12*x24+x12*x29+x13*x14+x13*x16+x13*x18+x13*x19+x13*x23+x13*x24+x13*x25+x13*x30+x14*x15+x14*x17+x14*x19+x14*x21+x14*x22+x14*x23+x14*x28+x15*x17+x15*x18+x15*x19+x15*x20+x15*x24+x15*x26+x15*x29+x15*x30+x16*x21+x16*x22+x16*x23+x16*x27+x16*x28+x16*x30+x17*x19+x17*x20+x17*x23+x17*x24+x17*x25+x17*x26+x17*x29+x18*x23+x18*x24+x18*x26+x18*x29+x18*x30+x19*x20+x19*x23+x19*x24+x19*x29+x20*x24+x20*x25+x21*x22+x21*x24+x21*x26+x21*x28+x21*x29+x21*x30+x22*x23+x22*x24+x22*x25+x22*x29+x23*x24+x23*x25+x23*x26+x23*x27+x23*x29+x24*x26+x24*x27+x24*x29+x25*x26+x25*x30+x26*x27+x27*x28+x27*x29+x27*x30+x28*x29+x28*x30");
370  polHFE_30_96.emplace_back("1+x6+x7+x9+x10+x12+x13+x14+x16+x17+x18+x23+x28+x1*x2+x1*x3+x1*x8+x1*x9+x1*x10+x1*x12+x1*x13+x1*x15+x1*x16+x1*x21+x1*x22+x1*x23+x1*x25+x1*x26+x1*x28+x1*x29+x1*x30+x2*x3+x2*x5+x2*x7+x2*x9+x2*x11+x2*x12+x2*x14+x2*x15+x2*x16+x2*x17+x2*x20+x2*x23+x2*x25+x2*x26+x2*x28+x3*x5+x3*x6+x3*x7+x3*x9+x3*x10+x3*x11+x3*x12+x3*x15+x3*x16+x3*x17+x3*x18+x3*x19+x3*x22+x3*x23+x3*x25+x3*x28+x4*x5+x4*x7+x4*x8+x4*x9+x4*x14+x4*x15+x4*x17+x4*x22+x4*x23+x4*x27+x4*x28+x5*x6+x5*x7+x5*x8+x5*x9+x5*x12+x5*x13+x5*x14+x5*x18+x5*x19+x5*x20+x5*x21+x5*x22+x5*x23+x5*x28+x6*x7+x6*x11+x6*x12+x6*x14+x6*x15+x6*x17+x6*x19+x6*x21+x6*x22+x6*x23+x6*x24+x6*x25+x6*x27+x6*x28+x6*x29+x6*x30+x7*x9+x7*x11+x7*x12+x7*x13+x7*x15+x7*x17+x7*x18+x7*x20+x7*x21+x7*x22+x7*x23+x7*x27+x7*x28+x8*x9+x8*x11+x8*x12+x8*x16+x8*x17+x8*x21+x8*x22+x8*x23+x8*x24+x8*x25+x8*x26+x8*x29+x9*x10+x9*x11+x9*x13+x9*x16+x9*x21+x9*x22+x9*x23+x9*x26+x9*x30+x10*x12+x10*x15+x10*x17+x10*x20+x10*x25+x10*x27+x10*x29+x11*x12+x11*x16+x11*x18+x11*x22+x11*x24+x11*x25+x11*x27+x11*x28+x12*x15+x12*x16+x12*x21+x12*x22+x12*x25+x12*x26+x12*x28+x13*x14+x13*x15+x13*x16+x13*x17+x13*x25+x13*x26+x13*x27+x13*x30+x14*x22+x14*x23+x14*x24+x14*x27+x14*x28+x14*x30+x15*x16+x15*x18+x15*x20+x15*x21+x15*x22+x15*x24+x15*x25+x15*x27+x15*x28+x16*x17+x16*x18+x16*x19+x16*x20+x16*x21+x16*x23+x16*x24+x16*x26+x16*x30+x17*x18+x17*x20+x17*x21+x17*x23+x17*x25+x17*x26+x17*x28+x17*x30+x18*x19+x18*x20+x18*x24+x18*x25+x18*x27+x18*x28+x18*x29+x19*x20+x19*x21+x19*x23+x19*x24+x19*x26+x19*x27+x19*x28+x20*x22+x20*x23+x20*x24+x20*x28+x20*x30+x21*x23+x21*x28+x21*x30+x22*x23+x22*x24+x22*x25+x22*x27+x22*x28+x23*x24+x23*x26+x23*x28+x24*x25+x24*x26+x24*x30+x25*x27+x25*x29+x25*x30+x26*x28+x27*x30+x28*x29+x28*x30+x29*x30");
371  polHFE_30_96.emplace_back("1+x2+x6+x8+x9+x14+x22+x23+x25+x28+x29+x1*x2+x1*x3+x1*x4+x1*x5+x1*x6+x1*x8+x1*x9+x1*x11+x1*x12+x1*x15+x1*x18+x1*x19+x1*x26+x1*x30+x2*x4+x2*x9+x2*x10+x2*x14+x2*x17+x2*x18+x2*x19+x2*x22+x2*x24+x2*x25+x2*x26+x2*x27+x2*x28+x2*x29+x3*x5+x3*x6+x3*x7+x3*x9+x3*x13+x3*x15+x3*x16+x3*x17+x3*x19+x3*x20+x3*x21+x3*x22+x3*x23+x3*x27+x4*x5+x4*x6+x4*x16+x4*x18+x4*x19+x4*x20+x4*x21+x4*x23+x4*x26+x4*x27+x4*x29+x5*x6+x5*x7+x5*x9+x5*x10+x5*x17+x5*x18+x5*x22+x5*x27+x5*x29+x6*x7+x6*x9+x6*x13+x6*x14+x6*x18+x6*x20+x6*x27+x6*x28+x6*x30+x7*x11+x7*x13+x7*x14+x7*x15+x7*x21+x7*x22+x7*x23+x7*x24+x7*x26+x7*x27+x8*x9+x8*x10+x8*x11+x8*x12+x8*x13+x8*x15+x8*x16+x8*x19+x8*x21+x8*x26+x8*x27+x8*x29+x9*x10+x9*x11+x9*x12+x9*x15+x9*x16+x9*x17+x9*x24+x9*x26+x9*x27+x9*x28+x9*x29+x10*x11+x10*x12+x10*x15+x10*x20+x10*x21+x11*x12+x11*x14+x11*x15+x11*x17+x11*x24+x11*x26+x11*x27+x11*x28+x11*x29+x12*x14+x12*x18+x12*x19+x12*x20+x12*x24+x12*x25+x12*x26+x12*x27+x12*x28+x13*x18+x13*x20+x13*x22+x13*x23+x13*x26+x13*x27+x13*x29+x14*x17+x14*x18+x14*x23+x14*x25+x14*x26+x14*x28+x15*x16+x15*x17+x15*x21+x15*x23+x15*x24+x15*x26+x15*x28+x15*x30+x16*x19+x16*x20+x16*x21+x16*x25+x16*x26+x16*x30+x17*x23+x17*x25+x17*x26+x17*x27+x17*x28+x17*x29+x18*x19+x18*x25+x18*x27+x19*x20+x19*x21+x19*x22+x19*x25+x19*x26+x19*x28+x19*x29+x20*x22+x20*x23+x20*x25+x20*x30+x21*x25+x21*x26+x21*x27+x22*x24+x22*x25+x22*x27+x22*x28+x23*x28+x23*x29+x24*x28+x24*x29+x24*x30+x25*x28+x26*x29+x27*x29+x28*x30+x29*x30");
372  polHFE_30_96.emplace_back("x1+x5+x6+x9+x10+x13+x14+x15+x16+x17+x18+x19+x20+x28+x29+x30+x1*x2+x1*x3+x1*x5+x1*x7+x1*x9+x1*x10+x1*x15+x1*x16+x1*x18+x1*x20+x1*x24+x1*x25+x1*x27+x1*x28+x1*x29+x2*x3+x2*x7+x2*x8+x2*x10+x2*x11+x2*x12+x2*x14+x2*x15+x2*x17+x2*x18+x2*x21+x2*x22+x2*x24+x2*x26+x2*x27+x2*x28+x2*x29+x2*x30+x3*x4+x3*x7+x3*x9+x3*x11+x3*x15+x3*x16+x3*x17+x3*x19+x3*x21+x3*x22+x3*x23+x3*x25+x4*x5+x4*x7+x4*x8+x4*x9+x4*x10+x4*x11+x4*x18+x4*x19+x4*x20+x4*x23+x4*x24+x4*x26+x4*x28+x5*x9+x5*x11+x5*x13+x5*x14+x5*x16+x5*x19+x5*x20+x5*x23+x5*x24+x5*x25+x5*x26+x5*x28+x5*x29+x5*x30+x6*x8+x6*x10+x6*x11+x6*x12+x6*x13+x6*x16+x6*x17+x6*x20+x6*x22+x6*x23+x6*x27+x6*x28+x6*x30+x7*x12+x7*x14+x7*x15+x7*x17+x7*x19+x7*x22+x7*x23+x7*x25+x7*x26+x7*x28+x7*x30+x8*x9+x8*x10+x8*x11+x8*x12+x8*x13+x8*x17+x8*x20+x8*x22+x8*x27+x8*x28+x8*x29+x8*x30+x9*x11+x9*x16+x9*x18+x9*x19+x9*x23+x9*x25+x9*x26+x9*x28+x9*x30+x10*x11+x10*x12+x10*x13+x10*x14+x10*x15+x10*x18+x10*x23+x10*x26+x10*x27+x10*x29+x11*x13+x11*x15+x11*x16+x11*x18+x11*x19+x11*x25+x11*x27+x12*x13+x12*x15+x12*x17+x12*x18+x12*x20+x12*x21+x12*x25+x12*x27+x13*x14+x13*x15+x13*x20+x13*x21+x13*x22+x13*x25+x13*x26+x13*x29+x14*x15+x14*x17+x14*x19+x14*x20+x14*x21+x14*x22+x14*x27+x14*x29+x15*x17+x15*x20+x15*x21+x15*x23+x15*x24+x15*x25+x15*x28+x15*x29+x15*x30+x16*x18+x16*x20+x16*x22+x16*x23+x16*x24+x16*x26+x16*x27+x16*x28+x16*x29+x16*x30+x17*x21+x17*x24+x17*x25+x17*x26+x17*x27+x17*x28+x18*x19+x18*x20+x18*x21+x18*x22+x18*x23+x18*x24+x18*x27+x18*x30+x19*x20+x19*x22+x19*x24+x19*x25+x19*x26+x19*x28+x20*x21+x20*x26+x20*x27+x20*x28+x20*x30+x21*x25+x21*x27+x21*x28+x21*x30+x22*x26+x22*x28+x23*x24+x23*x27+x23*x28+x24*x25+x24*x26+x24*x30+x25*x27+x25*x30+x26*x27+x26*x28+x26*x29+x26*x30+x27*x28+x27*x29+x28*x30");
373  polHFE_30_96.emplace_back("x2+x3+x9+x10+x11+x15+x17+x18+x19+x21+x22+x24+x25+x28+x1*x7+x1*x10+x1*x13+x1*x16+x1*x17+x1*x20+x1*x21+x1*x23+x1*x24+x1*x25+x1*x28+x1*x29+x1*x30+x2*x4+x2*x5+x2*x6+x2*x7+x2*x9+x2*x10+x2*x11+x2*x12+x2*x13+x2*x14+x2*x17+x2*x18+x2*x21+x2*x22+x2*x26+x2*x27+x2*x28+x3*x5+x3*x6+x3*x8+x3*x9+x3*x12+x3*x13+x3*x15+x3*x16+x3*x17+x3*x18+x3*x20+x3*x21+x3*x22+x3*x23+x3*x25+x3*x26+x3*x28+x3*x29+x3*x30+x4*x7+x4*x11+x4*x14+x4*x17+x4*x19+x4*x20+x4*x21+x4*x25+x4*x26+x4*x28+x4*x29+x5*x6+x5*x7+x5*x9+x5*x12+x5*x13+x5*x14+x5*x17+x5*x18+x5*x19+x5*x21+x5*x22+x5*x23+x5*x24+x5*x26+x5*x27+x5*x29+x6*x11+x6*x12+x6*x15+x6*x17+x6*x18+x6*x20+x6*x24+x6*x26+x6*x27+x6*x30+x7*x8+x7*x10+x7*x12+x7*x15+x7*x16+x7*x17+x7*x20+x7*x21+x7*x23+x7*x24+x7*x25+x7*x28+x7*x30+x8*x10+x8*x14+x8*x15+x8*x18+x8*x24+x8*x26+x9*x11+x9*x12+x9*x13+x9*x14+x9*x16+x9*x19+x9*x21+x9*x22+x9*x24+x9*x26+x9*x29+x10*x11+x10*x12+x10*x13+x10*x17+x10*x20+x10*x23+x10*x24+x10*x25+x10*x26+x11*x12+x11*x14+x11*x15+x11*x17+x11*x18+x11*x19+x11*x21+x11*x23+x11*x24+x11*x26+x11*x27+x11*x30+x12*x14+x12*x15+x12*x17+x12*x20+x12*x21+x12*x22+x12*x25+x12*x28+x12*x29+x13*x17+x13*x18+x13*x21+x13*x24+x13*x27+x13*x28+x13*x29+x13*x30+x14*x17+x14*x20+x14*x24+x14*x25+x14*x26+x15*x20+x15*x21+x15*x22+x15*x25+x15*x27+x15*x29+x15*x30+x16*x18+x16*x19+x16*x20+x16*x26+x16*x27+x16*x29+x17*x20+x17*x26+x17*x27+x17*x29+x18*x20+x18*x25+x18*x26+x18*x27+x18*x30+x19*x20+x19*x24+x19*x25+x19*x29+x20*x25+x20*x27+x20*x28+x21*x23+x21*x24+x21*x29+x21*x30+x22*x24+x22*x27+x22*x29+x23*x24+x23*x25+x23*x29+x24*x25+x24*x26+x24*x29+x24*x30+x25*x26+x25*x27+x25*x28+x25*x29+x25*x30+x26*x28+x27*x28+x27*x30+x28*x29+x28*x30");
374  polHFE_30_96.emplace_back("1+x1+x3+x7+x11+x12+x14+x15+x17+x21+x25+x27+x28+x30+x1*x3+x1*x7+x1*x12+x1*x16+x1*x18+x1*x19+x1*x20+x1*x22+x1*x24+x1*x25+x1*x26+x1*x27+x1*x30+x2*x3+x2*x6+x2*x7+x2*x8+x2*x9+x2*x10+x2*x11+x2*x13+x2*x14+x2*x16+x2*x19+x2*x20+x2*x22+x2*x25+x2*x26+x2*x27+x3*x6+x3*x9+x3*x12+x3*x14+x3*x19+x3*x22+x3*x24+x3*x25+x3*x27+x4*x7+x4*x10+x4*x13+x4*x16+x4*x18+x4*x20+x4*x23+x4*x26+x4*x27+x4*x28+x4*x30+x5*x8+x5*x10+x5*x13+x5*x14+x5*x18+x5*x19+x5*x20+x5*x22+x5*x26+x5*x28+x5*x29+x5*x30+x6*x11+x6*x12+x6*x13+x6*x15+x6*x17+x6*x19+x6*x21+x6*x23+x6*x25+x6*x27+x6*x30+x7*x8+x7*x9+x7*x10+x7*x14+x7*x15+x7*x16+x7*x20+x7*x21+x7*x22+x7*x25+x7*x28+x7*x29+x8*x11+x8*x12+x8*x13+x8*x14+x8*x15+x8*x16+x8*x18+x8*x19+x8*x20+x8*x23+x8*x25+x8*x29+x9*x10+x9*x14+x9*x15+x9*x17+x9*x18+x9*x19+x9*x21+x9*x22+x9*x23+x9*x24+x9*x25+x9*x27+x9*x28+x9*x30+x10*x13+x10*x15+x10*x17+x10*x18+x10*x19+x10*x20+x10*x21+x10*x23+x10*x25+x10*x28+x10*x29+x10*x30+x11*x13+x11*x14+x11*x19+x11*x20+x11*x22+x11*x25+x12*x15+x12*x17+x12*x18+x12*x19+x12*x22+x12*x24+x12*x29+x13*x14+x13*x15+x13*x18+x13*x19+x13*x20+x13*x23+x13*x24+x13*x26+x13*x27+x13*x28+x13*x29+x14*x16+x14*x17+x14*x19+x14*x22+x14*x23+x14*x29+x15*x16+x15*x17+x15*x19+x15*x20+x15*x21+x15*x22+x15*x23+x15*x26+x15*x27+x15*x28+x15*x30+x16*x19+x16*x23+x16*x24+x16*x25+x16*x27+x16*x29+x17*x19+x17*x20+x17*x21+x17*x22+x17*x23+x17*x24+x17*x25+x17*x27+x17*x30+x18*x19+x18*x21+x18*x24+x18*x25+x18*x27+x19*x23+x19*x25+x19*x26+x19*x29+x20*x21+x20*x26+x20*x30+x21*x23+x21*x24+x21*x25+x21*x26+x21*x27+x21*x28+x22*x23+x22*x24+x23*x25+x24*x25+x24*x29+x24*x30+x25*x27+x25*x30+x26*x27+x26*x29+x27*x28+x27*x30+x28*x29+x28*x30");
375  polHFE_30_96.emplace_back("x1+x2+x3+x4+x5+x6+x8+x10+x11+x12+x13+x14+x15+x20+x22+x24+x25+x29+x1*x3+x1*x4+x1*x7+x1*x8+x1*x11+x1*x12+x1*x13+x1*x14+x1*x16+x1*x17+x1*x18+x1*x20+x1*x24+x1*x25+x1*x26+x1*x27+x1*x28+x1*x29+x1*x30+x2*x4+x2*x8+x2*x9+x2*x11+x2*x13+x2*x18+x2*x20+x2*x23+x2*x25+x2*x27+x2*x28+x3*x7+x3*x8+x3*x12+x3*x14+x3*x15+x3*x16+x3*x17+x3*x18+x3*x19+x3*x21+x3*x22+x3*x23+x3*x25+x3*x26+x3*x27+x3*x28+x3*x29+x3*x30+x4*x7+x4*x10+x4*x11+x4*x14+x4*x15+x4*x16+x4*x18+x4*x20+x4*x21+x4*x22+x4*x25+x4*x28+x5*x6+x5*x7+x5*x8+x5*x10+x5*x11+x5*x19+x5*x20+x5*x21+x5*x22+x5*x25+x5*x26+x5*x27+x5*x28+x5*x29+x6*x8+x6*x9+x6*x11+x6*x12+x6*x14+x6*x15+x6*x17+x6*x18+x6*x28+x7*x8+x7*x13+x7*x14+x7*x16+x7*x19+x7*x24+x7*x26+x7*x27+x7*x29+x8*x12+x8*x13+x8*x14+x8*x15+x8*x16+x8*x17+x8*x18+x8*x19+x8*x21+x8*x22+x8*x25+x8*x27+x8*x30+x9*x10+x9*x13+x9*x20+x9*x23+x9*x24+x9*x26+x10*x12+x10*x13+x10*x15+x10*x17+x10*x19+x10*x20+x10*x21+x10*x22+x10*x23+x10*x25+x10*x26+x10*x27+x10*x29+x11*x12+x11*x13+x11*x14+x11*x16+x11*x17+x11*x21+x11*x22+x11*x23+x11*x26+x11*x27+x11*x28+x12*x13+x12*x14+x12*x15+x12*x16+x12*x17+x12*x23+x12*x24+x12*x28+x12*x29+x13*x17+x13*x18+x13*x19+x13*x23+x13*x24+x13*x26+x13*x29+x14*x15+x14*x16+x14*x18+x14*x19+x14*x21+x14*x23+x14*x28+x14*x29+x14*x30+x15*x16+x15*x19+x15*x21+x15*x22+x15*x23+x15*x24+x15*x25+x15*x27+x15*x28+x16*x17+x16*x20+x16*x22+x16*x23+x16*x24+x16*x25+x16*x26+x16*x30+x17*x19+x17*x20+x17*x22+x17*x23+x17*x25+x17*x27+x17*x29+x17*x30+x18*x19+x18*x25+x18*x27+x18*x28+x18*x29+x19*x20+x19*x24+x19*x25+x19*x29+x20*x21+x20*x23+x20*x25+x20*x28+x20*x29+x20*x30+x21*x24+x21*x25+x21*x28+x21*x30+x22*x25+x22*x26+x22*x30+x23*x24+x23*x27+x23*x28+x23*x29+x24*x27+x24*x29+x25*x26+x25*x27+x25*x28+x26*x27+x26*x28+x26*x30+x27*x28+x27*x30+x28*x30");
376  polHFE_30_96.emplace_back("1+x1+x5+x7+x8+x9+x10+x13+x15+x17+x18+x21+x22+x24+x25+x29+x1*x2+x1*x3+x1*x6+x1*x9+x1*x11+x1*x12+x1*x13+x1*x17+x1*x20+x1*x23+x1*x24+x1*x25+x1*x27+x1*x28+x2*x3+x2*x6+x2*x8+x2*x9+x2*x11+x2*x12+x2*x15+x2*x19+x2*x22+x2*x25+x2*x29+x3*x5+x3*x6+x3*x8+x3*x11+x3*x13+x3*x21+x3*x23+x3*x24+x3*x26+x3*x27+x3*x29+x3*x30+x4*x6+x4*x7+x4*x8+x4*x9+x4*x10+x4*x13+x4*x20+x4*x21+x4*x23+x4*x24+x4*x26+x4*x27+x4*x28+x4*x30+x5*x6+x5*x9+x5*x10+x5*x13+x5*x14+x5*x15+x5*x16+x5*x19+x5*x20+x5*x23+x5*x24+x5*x29+x5*x30+x6*x8+x6*x10+x6*x11+x6*x14+x6*x15+x6*x16+x6*x17+x6*x21+x6*x22+x6*x23+x6*x25+x6*x26+x7*x9+x7*x10+x7*x15+x7*x16+x7*x19+x7*x20+x7*x25+x7*x29+x7*x30+x8*x10+x8*x11+x8*x12+x8*x13+x8*x16+x8*x19+x8*x20+x8*x22+x8*x25+x8*x27+x8*x30+x9*x10+x9*x12+x9*x16+x9*x18+x9*x19+x9*x21+x9*x22+x9*x24+x9*x28+x9*x29+x10*x11+x10*x13+x10*x17+x10*x19+x10*x21+x10*x22+x10*x23+x10*x24+x10*x28+x11*x12+x11*x13+x11*x14+x11*x21+x11*x23+x11*x24+x11*x25+x11*x28+x11*x30+x12*x13+x12*x15+x12*x16+x12*x21+x12*x22+x12*x23+x12*x24+x12*x29+x12*x30+x13*x16+x13*x18+x13*x19+x13*x20+x13*x22+x13*x23+x13*x26+x13*x27+x13*x30+x14*x16+x14*x18+x14*x19+x14*x20+x14*x22+x14*x24+x14*x25+x14*x27+x14*x28+x14*x29+x14*x30+x15*x16+x15*x17+x15*x18+x15*x19+x15*x21+x15*x24+x16*x19+x16*x20+x16*x21+x16*x22+x16*x23+x16*x27+x16*x30+x17*x18+x17*x21+x17*x22+x17*x23+x17*x25+x17*x26+x17*x27+x17*x28+x17*x29+x17*x30+x18*x19+x18*x23+x18*x24+x18*x25+x18*x26+x18*x28+x18*x30+x19*x21+x19*x22+x19*x24+x19*x25+x19*x27+x19*x28+x20*x22+x20*x23+x20*x28+x21*x26+x21*x30+x22*x23+x22*x26+x22*x28+x22*x29+x23*x24+x23*x26+x23*x27+x23*x28+x23*x29+x23*x30+x24*x25+x24*x26+x25*x28+x25*x29+x25*x30+x26*x27+x26*x28+x26*x29+x27*x29+x27*x30+x29*x30");
377  polHFE_30_96.emplace_back("x2+x4+x5+x6+x8+x9+x10+x14+x15+x16+x17+x19+x20+x22+x24+x25+x26+x27+x28+x1*x2+x1*x3+x1*x4+x1*x6+x1*x8+x1*x9+x1*x10+x1*x12+x1*x13+x1*x14+x1*x20+x1*x21+x1*x23+x1*x26+x1*x27+x1*x29+x1*x30+x2*x3+x2*x5+x2*x6+x2*x9+x2*x12+x2*x14+x2*x15+x2*x16+x2*x17+x2*x19+x2*x20+x2*x21+x2*x22+x2*x28+x2*x30+x3*x4+x3*x5+x3*x6+x3*x8+x3*x10+x3*x13+x3*x15+x3*x17+x3*x18+x3*x22+x3*x23+x3*x24+x3*x25+x3*x26+x3*x27+x3*x29+x4*x5+x4*x7+x4*x8+x4*x13+x4*x15+x4*x17+x4*x19+x4*x24+x4*x29+x5*x6+x5*x9+x5*x11+x5*x15+x5*x16+x5*x19+x5*x20+x5*x22+x5*x23+x5*x25+x5*x26+x5*x29+x5*x30+x6*x8+x6*x9+x6*x10+x6*x12+x6*x13+x6*x14+x6*x15+x6*x16+x6*x17+x6*x19+x6*x20+x6*x21+x6*x22+x6*x25+x6*x26+x7*x8+x7*x11+x7*x12+x7*x13+x7*x15+x7*x16+x7*x19+x7*x20+x7*x21+x7*x22+x7*x23+x7*x24+x7*x27+x7*x28+x7*x30+x8*x10+x8*x14+x8*x15+x8*x16+x8*x17+x8*x19+x8*x21+x8*x22+x8*x23+x8*x27+x8*x28+x8*x29+x9*x10+x9*x13+x9*x14+x9*x15+x9*x16+x9*x17+x9*x18+x9*x20+x9*x21+x9*x22+x9*x27+x10*x11+x10*x13+x10*x14+x10*x16+x10*x17+x10*x18+x10*x19+x10*x20+x10*x21+x10*x23+x10*x24+x10*x26+x10*x28+x11*x12+x11*x13+x11*x15+x11*x16+x11*x17+x11*x19+x11*x21+x11*x24+x11*x28+x11*x29+x12*x13+x12*x15+x12*x16+x12*x17+x12*x18+x12*x19+x12*x21+x12*x24+x12*x25+x12*x26+x12*x27+x12*x30+x13*x15+x13*x17+x13*x19+x13*x25+x13*x29+x14*x19+x14*x20+x14*x21+x14*x23+x14*x24+x14*x26+x14*x27+x14*x29+x14*x30+x15*x18+x15*x20+x15*x22+x15*x23+x15*x24+x15*x25+x15*x27+x15*x28+x15*x30+x16*x17+x16*x18+x16*x19+x16*x22+x16*x23+x16*x25+x16*x29+x16*x30+x17*x18+x17*x21+x17*x22+x17*x23+x17*x24+x17*x26+x17*x28+x17*x29+x18*x19+x18*x21+x18*x25+x18*x28+x18*x30+x19*x23+x19*x24+x19*x27+x19*x28+x19*x30+x20*x21+x20*x23+x20*x24+x20*x25+x20*x26+x20*x27+x20*x28+x20*x29+x20*x30+x21*x23+x22*x24+x22*x25+x22*x26+x22*x28+x23*x24+x23*x26+x23*x27+x23*x28+x24*x29+x25*x26+x25*x27+x25*x28+x26*x27+x26*x28+x26*x29+x27*x28+x29*x30");
378 
379  // Create HFE_30_96 ideal;
380  Ideal<eltType> HFE_30_96(polHFE_30_96, 30 ,1000000);
381 
382  // Compute a reduced groebner basis;
383  nbGen=HFE_30_96.f4();
384 
385  // Print the reduced groebner basis into a file
386  if(magma)
387  {
388  HFE_30_96.printReducedGroebnerBasis("HFE_30_96", modulo);
389  }
390 
391  return nbGen;
392 }
393 
394 int randomIdealF4(bool magma)
395 {
396  cout << "#########################################################" << endl;
397  cout << "# RANDOM 10 #" << endl;
398  cout << "#########################################################" << endl << endl;
399 
400  // Number of generator
401  int nbGen;
402 
403  // Init monomial tools
405 
406  // Create polynomial array
407  vector<Polynomial<eltType>> polRandomIdeal;
408 
409  // Fill the polynomial array
410  polRandomIdeal.emplace_back("x0*x2^2*x3*x4 + x2^2*x5^3 + x1*x2*x4^2 + x1*x2^2 + x0");
411  polRandomIdeal.emplace_back("x2*x4*x5^3 + x1^3 + x1*x5");
412  polRandomIdeal.emplace_back("x3*x4^3");
413  polRandomIdeal.emplace_back("x0*x1^4 + x1*x2*x3*x4 + x1^2*x3*x5");
414  polRandomIdeal.emplace_back("x0^3*x3^2 + x0^3*x2*x5 + x0*x2^2*x3*x5 + x2^3*x4 + x1*x3*x5^2 + x1^2*x3");
415  polRandomIdeal.emplace_back("x0^3*x3*x4 + x2^3*x4^2 + x0*x1^2*x3 + x0*x3");
416  polRandomIdeal.emplace_back("x0*x1^3*x5 + x1^3*x3*x5 + x1^2*x4^2*x5 + x1*x4*x5^2");
417  polRandomIdeal.emplace_back("x1*x2^3*x3 + x0^2*x1*x3*x4 + x1^2*x3^2*x4 + x1^2*x3*x4^2 + x0*x1*x2^2*x5 + x0^2*x5 + x0*x3*x5 + x1*x4*x5");
418  polRandomIdeal.emplace_back("x0*x1^2*x4*x5");
419  polRandomIdeal.emplace_back("x1*x2*x3^3 + x1^3*x2*x4 + x1^2*x4*x5^2 + x0^3*x5 + x2*x5^3 + x1^2*x2");
420 
421  // Create katsura12 ideal;
422  Ideal<eltType> randomIdeal(polRandomIdeal, 6);
423 
424  // Compute a reduced groebner basis;
425  nbGen=randomIdeal.f4();
426 
427  // Print the reduced groebner basis into a file
428  if(magma)
429  {
430  randomIdeal.printReducedGroebnerBasis("randomIdeal", modulo);
431  }
432 
433  return nbGen;
434 }
435 
436 
437 int main (int argc, char **argv)
438 {
439  cout << "#########################################################" << endl;
440  cout << "# BENCHMARK GF(2) #" << endl;
441  cout << "#########################################################" << endl << endl;
442 
443  // Time
444  chrono::steady_clock::time_point start;
445  typedef chrono::duration<int,milli> millisecs_t;
446 
447  // Number of threads
448  cout << NB_THREAD << " threads used " << endl << endl;
449 
450  // Magma output
451  bool magma = false;
452 
453  // Number of generator
454  int nbGen;
455 
456  // File
457  ofstream file("benchmark-gf2.txt");
458  if (file)
459  {
460  file << "Benchmark for ideal with bool type coefficient." << endl << endl << endl;
461  }
462 
463  start=chrono::steady_clock::now();
464  nbGen=randomIdealF4(magma);
465  if (file)
466  {
467  file << "Random 10 : " << chrono::duration_cast<millisecs_t>(chrono::steady_clock::now()-start).count() << " ms (" << nbGen << " generators)" << endl << endl;
468  }
469 
470  //start=chrono::steady_clock::now();
471  //nbGen=cyclic6F4(magma);
472  //if (file)
473  //{
474  //file << "Cyclic 6 : " << chrono::duration_cast<millisecs_t>(chrono::steady_clock::now()-start).count() << " ms (" << nbGen << " generators)" << endl << endl;
475  //}
476 
477  //start=chrono::steady_clock::now();
478  //nbGen=cyclic7F4(magma);
479  //if (file)
480  //{
481  //file << "Cyclic 7 : " << chrono::duration_cast<millisecs_t>(chrono::steady_clock::now()-start).count() << " ms (" << nbGen << " generators)" << endl << endl;
482  //}
483 
484  start=chrono::steady_clock::now();
485  nbGen=cyclic8F4(magma);
486  if (file)
487  {
488  file << "Cyclic 8 : " << chrono::duration_cast<millisecs_t>(chrono::steady_clock::now()-start).count() << " ms (" << nbGen << " generators)" << endl << endl;
489  }
490 
491  //start=chrono::steady_clock::now();
492  //nbGen=cyclic9F4(magma);
493  //if (file)
494  //{
495  //file << "Cyclic 9 : " << chrono::duration_cast<millisecs_t>(chrono::steady_clock::now()-start).count() << " ms (" << nbGen << " generators)" << endl << endl;
496  //}
497 
498  start=chrono::steady_clock::now();
499  nbGen=HFE_25_96_F4(magma);
500  if (file)
501  {
502  file << "HFE 25 96 : " << chrono::duration_cast<millisecs_t>(chrono::steady_clock::now()-start).count() << " ms (" << nbGen << " generators)" << endl << endl;
503  }
504 
505  //start=chrono::steady_clock::now();
506  //nbGen=HFE_30_96_F4(magma);
507  //if (file)
508  //{
509  //file << "HFE 30 96 : " << chrono::duration_cast<millisecs_t>(chrono::steady_clock::now()-start).count() << " ms (" << nbGen << " generators)" << endl << endl;
510  //}
511 
512  return 0;
513 }
514 
Represent an ideal.
Definition: ideal.h:68
static void initMonomial(int nbVariable, short degree=0)
Initialise the static parameters of Monomial.
Represent an element of an extension of GF2, this class is a POD (Plain Old Data) because of the alig...
static void setVariable(std::string const *vars)
Modify the static variable VARS.
Represent an element of the field GF(2), this class is a POD (Plain Old Data) because of the aligneme...
Definition: element-gf2.h:46
Declaration of class F4 methods.