Macaulay2 Engine
Loading...
Searching...
No Matches

◆ MultiplyBy()

void BIBasis::MonomDL::MultiplyBy ( MonomDL::Integer var)
inlineprivatevirtual

Implements BIBasis::Monom.

Definition at line 232 of file monomDL.hpp.

233 {
234 //inserted variable is the only one
235 if (!ListHead)
236 {
237 ListHead = new VarsListNode();
238 ListHead->Value = var;
239 ++TotalDegree;
240 }
241 else
242 {
243 VarsListNode* position = Find(var);
244 //inserted variable is the eldest one
245 if (!position)
246 {
247 position = new VarsListNode();
248 position->Value = var;
249 position->Next = ListHead;
250 ListHead = position;
251 ++TotalDegree;
252 }
253 //all other cases
254 else if(position->Value != var)
255 {
256 VarsListNode* newNode = new VarsListNode();
257 newNode->Value = var;
258 newNode->Next = position->Next;
259 position->Next = newNode;
260 ++TotalDegree;
261 }
262 }
263 }
Integer TotalDegree
Definition monom.hpp:106
VarsListNode * ListHead
Definition monom.hpp:105
VarsListNode * Find(const Integer var) const
Definition monomDL.hpp:149
Singly linked-list node of a Monom's variable list, with a per-class slab allocator.
Definition monom.hpp:94

References Find(), BIBasis::Monom::ListHead, MultiplyBy(), BIBasis::Monom::VarsListNode::Next, BIBasis::Monom::TotalDegree, and BIBasis::Monom::VarsListNode::Value.

Referenced by MultiplyBy(), and operator*=().