16 #ifndef polybori_orderings_CBlockOrderingFacade_h_
17 #define polybori_orderings_CBlockOrderingFacade_h_
27 template <
class OrderType,
class OrderTag>
52 m_indices.push_back(0);
53 m_indices.push_back(CTypes::max_index());
72 if PBORI_UNLIKELY((idx >= CTypes::max_index()) || (idx <= *(blockEnd() - 2)))
73 throw std::runtime_error(
"Blocks must be positive and have to be "
74 "added in a strictly increasing order.");
76 m_indices.back() = idx;
77 m_indices.push_back(CTypes::max_index());
82 m_indices.push_back(0);
83 m_indices.push_back(CTypes::max_index());
107 return lead(poly).exp();
113 return leadExp(poly);
119 template <
class TermType,
class BinOpType>
120 comp_type compare_terms(
const TermType& lhs,
const TermType& rhs,
121 const BinOpType& idx_comparer)
const {
124 blockBegin(), blockEnd(), idx_comparer);
131 template <
class OrderType,
class OrderTag>