00001 // -*- c++ -*- 00002 //***************************************************************************** 00014 //***************************************************************************** 00015 00016 #ifndef polybori_groebner_MatrixMonomialOrderTables_h_ 00017 #define polybori_groebner_MatrixMonomialOrderTables_h_ 00018 00019 // include basic definitions 00020 #include "groebner_defs.h" 00021 #include <vector> 00022 00023 BEGIN_NAMESPACE_PBORIGB 00024 00029 class MatrixMonomialOrderTables{ 00030 00031 public: 00032 typedef Exponent::idx_map_type from_term_map_type; 00033 00034 MatrixMonomialOrderTables(MonomialSet input_terms): 00035 terms(input_terms) { 00036 setup_order_tables(); 00037 } 00038 std::vector<Exponent> terms_as_exp; 00039 std::vector<Exponent> terms_as_exp_lex; 00040 std::vector<int> ring_order2lex; 00041 std::vector<int> lex_order2ring; 00042 from_term_map_type from_term_map; 00043 MonomialSet terms; 00044 00045 private: 00046 void setup_order_tables(); 00047 00048 }; 00049 00050 END_NAMESPACE_PBORIGB 00051 00052 #endif /* polybori_MatrixMonomialOrderTables_h_ */