|
Macaulay2 Engine
|
BIBasis::Triple<MonomType> — (polynomial, ancestors, non-multiplicative variables) record driving Janet division. More...
Go to the source code of this file.
Classes | |
| class | BIBasis::Triple< MonomType > |
Namespaces | |
| namespace | BIBasis |
BIBasis::Triple<MonomType> — (polynomial, ancestors, non-multiplicative variables) record driving Janet division.
Declares and defines the bundle the involutive engine carries around: a Polynom<MonomType> together with a cached pointer to its leading monomial, the strong and weak Ancestor / WeakAncestor links that record how this triple was derived from earlier basis elements, the Variable index that generated the prolongation (or -1 for an initial input), and the Nmp set of non-multiplicative variables Janet division forbids multiplying by. Two constructors cover the two lifecycle states — an initial triple seeded from an input polynomial vs. a derived triple created by a non- multiplicative prolongation — and the destructor owns the polynomial pointer.
Compare(a, b) returns true when a's leading monomial is greater than b's, so QSet sorts triples by leading monomial and the algorithm's back()-popping loop processes the lightest pending prolongation first; SetNmp / TestNmp are the bookkeeping the algorithm uses to remember which variables are still eligible for prolongation at each step.
Definition in file triple.hpp.