10#ifndef BIBASIS_TRIPLE_HPP
11#define BIBASIS_TRIPLE_HPP
54 template <
typename MonomType>
62 std::set<typename MonomType::Integer>
Nmp;
69 ,
const Triple* initialAncestor
70 ,
const std::set<typename MonomType::Integer>& initialNmp
71 ,
const Triple* weakAncestor
72 ,
typename MonomType::Integer nmVar);
81 const std::set<typename MonomType::Integer>&
GetNmp()
const;
83 void SetNmp(
const std::set<typename MonomType::Integer>& newNmp);
84 void SetNmp(
typename MonomType::Integer variable);
85 bool TestNmp(
typename MonomType::Integer variable)
const;
90 template <
typename MonomType>
103 Nmp = std::set<typename MonomType::Integer>();
107 template <
typename MonomType>
110 ,
const std::set<typename MonomType::Integer>& initialNmp
112 ,
typename MonomType::Integer nmVar)
137 (*Polynomial) += initialPolynom->
Lm();
148 template <
typename MonomType>
154 template <
typename MonomType>
160 template <
typename MonomType>
166 template <
typename MonomType>
172 template <
typename MonomType>
178 template <
typename MonomType>
184 template <
typename MonomType>
190 template <
typename MonomType>
196 template <
typename MonomType>
202 template <
typename MonomType>
205 return Nmp.count(var);
208 template <
typename MonomType>
211 if (!tripleA || !tripleB)
213 throw std::string(
"BIBasis::Triple::Compare(): at least one argument is NULL.");
215 return *tripleA->
Lm > *tripleB->
Lm;
BIBasis::FastAllocator — per-size-class slab allocator for BIBasis's small objects.
const MonomType & Lm() const
const Triple * GetWeakAncestor() const
const Polynom< MonomType > * GetPolynom() const
bool TestNmp(typename MonomType::Integer variable) const
Triple(Polynom< MonomType > *initialPolynom)
std::set< typename MonomType::Integer > Nmp
void SetNmp(const std::set< typename MonomType::Integer > &newNmp)
const MonomType::Integer Variable
const Triple * WeakAncestor
const std::set< typename MonomType::Integer > & GetNmp() const
MonomType::Integer GetVariable() const
const Triple * GetAncestor() const
Polynom< MonomType > * Polynomial
static bool Compare(const Triple *tripleA, const Triple *tripleB)
const MonomType & GetPolynomLm() const
Engine error-reporting primitives: ERROR, INTERNAL_ERROR, error, error_message.
BIBasis::Polynom<MonomType> — linked-list F_2[x] polynomial with symmetric-difference arithmetic.