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

◆ GBDeclared() [1/2]

GBDeclared::GBDeclared ( const Matrix * m0,
const Matrix * gb,
const Matrix * change,
const Matrix * syz0 )

Definition at line 7 of file comp-gb-declared.cpp.

11 : trimmed_gens(m0), syz(syz0)
12{
14 const Ring *R = gb->get_ring();
15 const PolynomialRing *P = R->cast_to_PolynomialRing();
16 GBRing *GR = P->get_gb_ring();
17 const Ring *K = GR->get_flattened_coefficients();
18
19 const FreeModule *F = m0->rows();
20 const FreeModule *Fsyz = change->rows();
21
22 G = ReducedGB::create(P, F, Fsyz);
23
24 // Now add in the elements
25 VECTOR(POLY) elems;
26 for (int i = 0; i < gb->n_cols(); i++)
27 {
28 POLY g;
29 ring_elem denom1, denom2, u, v;
30
31 if (gb->elem(i) == nullptr)
32 continue; // Do not even consider including 0 elements.
33 g.f = P->translate_gbvector_from_vec(F, gb->elem(i), denom1);
34 g.fsyz = P->translate_gbvector_from_vec(Fsyz, change->elem(i), denom2);
35
36 K->syzygy(denom1, denom2, u, v);
38 K->negate_to(v);
40
41 elems.push_back(g);
42 }
43 G->minimalize(elems);
44}
enum ComputationStatusCode set_status(enum ComputationStatusCode)
Definition comp.cpp:66
const Matrix * trimmed_gens
ReducedGB * G
const Matrix * syz
void gbvector_mult_by_coeff_to(gbvector *f, ring_elem u)
Definition gbring.cpp:557
const Ring * get_flattened_coefficients() const
Definition gbring.hpp:231
ring_elem elem(int i, int j) const
Definition matrix.cpp:307
const FreeModule * rows() const
Definition matrix.hpp:144
virtual GBRing * get_gb_ring() const
Definition polyring.hpp:276
virtual gbvector * translate_gbvector_from_vec(const FreeModule *F, const vec v, ring_elem &result_denominator) const =0
static ReducedGB * create(const PolynomialRing *originalR0, const FreeModule *F0, const FreeModule *Fsyz0, const GBWeight *wt0=nullptr)
Definition reducedgb.cpp:11
void negate_to(ring_elem &f) const
Definition ring.cpp:210
virtual const PolynomialRing * cast_to_PolynomialRing() const
Definition ring.hpp:243
virtual void syzygy(const ring_elem a, const ring_elem b, ring_elem &x, ring_elem &y) const =0
@ COMP_DONE
Definition computation.h:60
void gb(IntermediateBasis &F, int n)
#define VECTOR(T)
Definition newdelete.hpp:78
#define POLY(q)
Definition poly.cpp:23
gbvector * fsyz
Definition gbring.hpp:99
gbvector * f
Definition gbring.hpp:98

References Ring::cast_to_PolynomialRing(), COMP_DONE, ReducedGB::create(), Matrix::elem(), POLY::f, POLY::fsyz, G, gb(), GBRing::gbvector_mult_by_coeff_to(), GBRing::get_flattened_coefficients(), PolynomialRing::get_gb_ring(), Matrix, Ring::negate_to(), POLY, Matrix::rows(), Computation::set_status(), syz, Ring::syzygy(), PolynomialRing::translate_gbvector_from_vec(), trimmed_gens, and VECTOR.

Referenced by create(), and create().