• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

COrderProperties.h

Go to the documentation of this file.
00001 // -*- c++ -*-
00002 //*****************************************************************************
00057 //*****************************************************************************
00058 
00059 // include basic definitions
00060 #include "pbori_defs.h"
00061 
00062 // include ordering tags
00063 #include "pbori_tags.h"
00064 
00065 // include polybori functionals
00066 #include "pbori_func.h"
00067 
00068 #ifndef COrderProperties_h_
00069 #define COrderProperties_h_
00070 
00071 BEGIN_NAMESPACE_PBORI
00072 
00077 template <class OrderType>
00078 class COrderProperties {
00079 
00080  public:
00082   typedef OrderType order_type;
00083 
00085 
00086   typedef typename order_type::lex_property lex_property; 
00087   typedef typename order_type::ordered_property ordered_property;
00088   typedef typename order_type::symmetry_property symmetry_property;
00089   typedef typename order_type::degorder_property degorder_property;
00090   typedef typename order_type::blockorder_property blockorder_property;
00091   typedef typename order_type::totaldegorder_property totaldegorder_property;
00092   typedef typename order_type::ascending_property ascending_property;
00093   typedef typename order_type::descending_property descending_property;
00094   typedef typename order_type::degrevlexorder_property degrevlexorder_property;
00096 
00098 
00099   typedef typename order_type::size_type size_type;
00100   typedef typename order_type::idx_type idx_type;
00101   typedef typename order_type::bool_type bool_type;
00102   typedef typename order_type::ostream_type ostream_type;
00103   typedef typename order_type::hash_type hash_type;
00105 
00107   enum { order_code = order_type::order_code };
00108 
00110   typedef typename order_type::idx_comparer_type idx_comparer_type;
00111   
00113   is_same_type<ordered_property, valid_tag> orderedStandardIteration;
00114 
00116   is_same_type<lex_property, valid_tag> isLexicographical;
00117 
00119   is_same_type<symmetry_property, valid_tag> isSymmetric;
00120 
00122   is_same_type<degorder_property, valid_tag> isDegreeOrder;
00123 
00125   is_same_type<blockorder_property, valid_tag> isBlockOrder;
00126 
00128   is_same_type<totaldegorder_property, valid_tag> isTotalDegreeOrder;
00129 
00131   is_same_type<ascending_property, valid_tag> ascendingVariables;
00132 
00134   is_same_type<descending_property, valid_tag> descendingVariables;
00135 
00137   is_same_type<degrevlexorder_property, valid_tag> 
00138   isDegreeReverseLexicograpical;
00139 };
00140 
00141 
00142 END_NAMESPACE_PBORI
00143 
00144 #endif

Generated on Tue Sep 14 2010 for PolyBoRi by  doxygen 1.7.1