|
Macaulay2 Engine
|
Implementation of GBMatrix and GBKernelComputation — the polynomial-at-a-time syzygy engine. More...
#include "Eschreyer.hpp"#include "matrix.hpp"#include "monoid.hpp"#include "text-io.hpp"#include "gbring.hpp"#include "matrix-con.hpp"Go to the source code of this file.
Implementation of GBMatrix and GBKernelComputation — the polynomial-at-a-time syzygy engine.
Two halves: the GBMatrix constructors and to_matrix conversion that wrap a column collection of gbvector*s (translating to and from the engine's standard Matrix / FreeModule pair via R->translate_gbvector_from_vec); and the GBKernelComputation driver that walks each input column through a head-reduction loop (subtracting (lt(f)/lt(g_i)) * g_i and tracking the multiplier as a syzygy basis element) followed by an optional tail-reduction pass. The output gbvector syzygies form the kernel of the input matrix modulo the supplied Gröbner basis.
Walks polynomials term-by-term through the gbvector linked- list representation; the newer schreyer-resolution/ family batches the same work into Macaulay matrices and wins on large inputs. This file stays in the engine for paths that have not yet migrated; new resolution work targets the matrix-based engine.
Definition in file Eschreyer.cpp.