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

◆ MultiplyBy()

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

Implements BIBasis::Monom.

Definition at line 234 of file monomLex.hpp.

235 {
236 //inserted variable is the only one
237 if (!ListHead)
238 {
239 ListHead = new VarsListNode();
240 ListHead->Value = var;
241 ++TotalDegree;
242 }
243 else
244 {
245 VarsListNode* position = Find(var);
246 //inserted variable is the eldest one
247 if (!position)
248 {
249 position = new VarsListNode();
250 position->Value = var;
251 position->Next = ListHead;
252 ListHead = position;
253 ++TotalDegree;
254 }
255 //all other cases
256 else if(position->Value != var)
257 {
258 VarsListNode* newNode = new VarsListNode();
259 newNode->Value = var;
260 newNode->Next = position->Next;
261 position->Next = newNode;
262 ++TotalDegree;
263 }
264 }
265 }
Integer TotalDegree
Definition monom.hpp:106
VarsListNode * ListHead
Definition monom.hpp:105
VarsListNode * Find(const Integer var) const
Definition monomLex.hpp:151
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*=().