|
Macaulay2 Engine
|
BIBasis::BooleanInvolutiveBasis<MonomType> — Janet-involutive Gröbner driver for F_2[x]/(x_i^2-x_i). More...
#include <list>#include <algorithm>#include "pcomparator.hpp"#include "qset.hpp"#include "tset.hpp"#include "matrix.hpp"#include "matrix-con.hpp"Go to the source code of this file.
Classes | |
| class | BIBasis::BooleanInvolutiveBasis< MonomType > |
Namespaces | |
| namespace | BIBasis |
BIBasis::BooleanInvolutiveBasis<MonomType> — Janet-involutive Gröbner driver for F_2[x]/(x_i^2-x_i).
Declares and defines the templated class that runs Zinin's Janet-involutive basis algorithm over a boolean polynomial ring. The constructor seeds an IntermediateBasis (a TSet indexed by Janet division) and a ProlongationsSet (a QSet of pending non-multiplicative prolongations) from the input Matrix, then loops in ConstructInvolutiveBasis: pop a triple, compute its NormalForm by repeated head-reduction against the current basis, and either drop it (if it reduces to zero) or insert it and harvest its new non-multiplicative prolongations. A final ReduceSet pass collapses the result to a Pommaret-reduced involutive basis, optionally compressed further to an ordinary Gröbner basis when toGroebner is set.
Templated on MonomType (MonomLex, MonomDL, or MonomDRL) so the divisibility / comparison kernel inlines per ordering — the reduction inner loop runs billions of times on non-trivial inputs, so virtual dispatch is not an option. ToMatrix() converts the final Polynom list back into the engine's Matrix representation for return to the M2 interpreter.
Definition in file involutive.hpp.