1 // -*- c++ -*-
2 //*****************************************************************************
3 /** @file order_tags.h
4  *
5  * @author Alexander Dreyer
6  * @date 2006-07-20
7  *
8  * Decribes properties of polybori ordering classes
9  *
10  * @par Copyright:
11  *   (c) 2006 by The PolyBoRi Team
12 **/
13 //*****************************************************************************
14 
15 #ifndef polybori_orderings_order_tags_h_
16 #define polybori_orderings_order_tags_h_
17 
18 // include basic definitions
19 #include <polybori/pbori_defs.h>
20 
21 
22 BEGIN_NAMESPACE_PBORI
23 
24 /**@class lex_tag
25  * @brief Marker for lex ordering.
26  **/
27 struct lex_tag {};
28 
29 /**@class dlex_tag
30  * @brief Marker for deg-lex ordering.
31  **/
32 struct dlex_tag {};
33 
34 /**@class dp_asc_tag
35  * @brief Marker for ascending deg-rev-lex ordering.
36  **/
37 struct dp_asc_tag {};
38 
39 /**@class block_tag
40  * @brief Marker for block orderings.
41  **/
42 template <class TagType>
43 struct block_tag {};
44 
45 /// Marker for block deg-lex ordering.
46 typedef block_tag<dlex_tag> block_dlex_tag;
47 
48 /// Marker for ascending block deg-rev-lex ordering.
49 typedef block_tag<dp_asc_tag> block_dp_asc_tag;
50 
51 END_NAMESPACE_PBORI
52 
53 #endif // order_tags_h_
54