PolyBoRi
MatrixMonomialOrderTables.h
Go to the documentation of this file.
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_ */