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

◆ operator=()

const MonomLex & BIBasis::MonomLex::operator= ( const MonomLex & anotherMonom)
inline

Definition at line 187 of file monomLex.hpp.

188 {
189 if (this == &anotherMonom)
190 {
191 return *this;
192 }
193
194 if (!anotherMonom.ListHead)
195 {
196 SetOne();
197 }
198 else
199 {
200 TotalDegree = anotherMonom.TotalDegree;
201
202 VarsListNode *iteratorAnother = anotherMonom.ListHead,
203 **iterator = &ListHead;
204 while (*iterator && iteratorAnother)
205 {
206 (*iterator)->Value = iteratorAnother->Value;
207 iterator = &((*iterator)->Next);
208 iteratorAnother = iteratorAnother->Next;
209 }
210
211 if (*iterator)
212 {
213 VarsListNode *nodeToDelete = (*iterator)->Next;
214 *iterator = nullptr;
215 while (nodeToDelete)
216 {
217 iteratorAnother = nodeToDelete;
218 nodeToDelete = nodeToDelete->Next;
219 delete iteratorAnother;
220 }
221 }
222 else while (iteratorAnother)
223 {
224 *iterator = new VarsListNode();
225 (*iterator)->Value = iteratorAnother->Value;
226
227 iterator = &((*iterator)->Next);
228 iteratorAnother = iteratorAnother->Next;
229 }
230 }
231 return *this;
232 }
Integer TotalDegree
Definition monom.hpp:106
VarsListNode * ListHead
Definition monom.hpp:105
Singly linked-list node of a Monom's variable list, with a per-class slab allocator.
Definition monom.hpp:94

References BIBasis::Monom::ListHead, MonomLex(), BIBasis::Monom::VarsListNode::Next, operator=(), SetOne(), BIBasis::Monom::TotalDegree, and BIBasis::Monom::VarsListNode::Value.

Referenced by operator=().