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;
77 ring_with_ordering_type from;
78 ring_with_ordering_type to;
82 IndexVector ring2Index;
83 IndexVector index2Ring;
84 IndexVector rowStartingWithIndex;
87 std::vector<IndexVector> tableXRowYIsMonomialFromWithIndex;
91 MatrixVector multiplicationTables;
95 IndexVector rowIsStandardMonomialToWithIndex;
98 IndexVector rowVectorIsLinearCombinationOfRows(mzd_t* mat, mzd_t* v);
Monomial::idx_map_type lm2Index_map_type
Definition: PolyEntryIndices.h:25
BoolePolyRing ring_with_ordering_type
Definition: FGLMStrategy.h:34
#define END_NAMESPACE_PBORIGB
Definition: groebner_defs.h:16
~FGLMStrategy()
Definition: FGLMStrategy.h:52
This class reinterprets decicion diagram managers as Boolean polynomial rings, adds an ordering and v...
Definition: BoolePolyRing.h:40
#define BEGIN_NAMESPACE_PBORIGB
Definition: groebner_defs.h:15
mzd_t * multiplicationTableForVariable(const Variable &v)
Definition: FGLMStrategy.h:49
idx_type index() const
Get index of the variable.
Definition: BooleVariable.h:74
This class wraps the underlying decicion diagram type and defines the necessary operations.
Definition: BoolePolynomial.h:85
generate_index_map< self >::type idx_map_type
Type for index maps.
Definition: BooleExponent.h:76
Definition: FGLMStrategy.h:23
std::vector< Polynomial > PolynomialVector
Definition: groebner_defs.h:34
std::size_t size_type
Type for lengths, dimensions, etc.
Definition: pbori_defs.h:219
Definition: BooleSet.h:57
This class defines ReductionStrategy.
Definition: ReductionStrategy.h:34
This class is just a wrapper for using variables from cudd's decicion diagram.
Definition: BooleMonomial.h:50
std::vector< idx_type > IndexVector
Definition: FGLMStrategy.h:57
std::vector< Polynomial > poly_vec
Definition: FGLMStrategy.h:21
This class is just a wrapper for using variables from cudd's decicion diagram.
Definition: BooleVariable.h:39