|
Macaulay2 Engine
|
Interreduces a list of gbvector*s in place so that no element's leading term divides any other element's terms. More...
#include <interreduce.hpp>
Public Member Functions | |
| Interreducer (GBRing *R, FreeModule *F, VECTOR(gbvector *) &elems0) | |
| void | showElem (int i, int nterms) |
| void | show (int nterms) |
| int | cancelLT (gbvector *&f, const gbvector *g) |
| int | reduceTail (gbvector *&f, const gbvector *g) |
| bool | reduceLT (gbvector *&f, int i) |
| bool | reduceTail (gbvector *&f, int i) |
Private Member Functions | |
| VECTOR (gbvector *) G | |
Private Attributes | |
| GBRing * | R |
| FreeModule * | F |
Interreduces a list of gbvector*s in place so that no element's leading term divides any other element's terms.
Owns a GBRing* and a target FreeModule* plus the working set G (a vector of gbvector*). cancelLT(f, g) reduces the leading term of f by g until they no longer divide; reduceTail(f, g) does the same to tail terms; the public driver iterates these calls across the whole list. Used as the cleanup pass after a GB computation finishes, before the result is handed back to the front end.
Definition at line 54 of file interreduce.hpp.