16 #include <m4ri/m4ri.h>
40 void setupMultiplicationTables();
41 void setupStandardMonomialsFromTables();
42 void writeRowToVariableDivisors(mzd_t* row,
Monomial lm);
43 void testMultiplicationTables();
44 void transposeMultiplicationTables();
48 void findVectorInMultTables(mzd_t* dst,
Monomial m);
50 return multiplicationTables[ring2Index[v.
index()]];
53 for(std::size_t i=0;i<multiplicationTables.size();i++){
54 mzd_free(multiplicationTables[i]);
64 typedef std::vector<Monomial> MonomialVector;
65 typedef std::vector<mzd_t*> MatrixVector;
66 typedef std::vector<Variable> VariableVector;
70 MonomialVector standardMonomialsFromVector;
73 VariableVector varsVector;
87 std::vector<IndexVector> tableXRowYIsMonomialFromWithIndex;
91 MatrixVector multiplicationTables;
98 IndexVector rowVectorIsLinearCombinationOfRows(mzd_t* mat, mzd_t* v);