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

◆ GBDeclared() [2/2]

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

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

51 : trimmed_gens(m0), syz(syz0)
52{
54 const Ring *R = gb->get_ring();
55 const PolynomialRing *P = R->cast_to_PolynomialRing();
56 GBRing *GR = P->get_gb_ring();
57 const Ring *K = GR->get_flattened_coefficients();
58
59 const FreeModule *F = m0->rows();
60 const FreeModule *Fsyz = change->rows();
61
62 MarkedGB *G0 = MarkedGB::create(P, F, Fsyz);
63 G = G0;
64
65 // Now add in the elements
66 VECTOR(POLY) elems;
67 VECTOR(gbvector *) leads;
68 for (int i = 0; i < gb->n_cols(); i++)
69 {
70 POLY g;
71 gbvector *lead;
72 ring_elem denom1, denom2, denom3, u, v;
73
74 if (gb->elem(i) == nullptr)
75 continue; // Do not even consider including 0 elements.
76 g.f = P->translate_gbvector_from_vec(F, gb->elem(i), denom1);
77 g.fsyz = P->translate_gbvector_from_vec(Fsyz, change->elem(i), denom2);
78 lead = P->translate_gbvector_from_vec(F, leadterms->elem(i), denom3);
79 K->syzygy(denom1, denom2, u, v);
81 K->negate_to(v);
83
84 elems.push_back(g);
85 leads.push_back(lead);
86 }
87 G0->add_marked_elems(leads, elems, true);
88}
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
virtual void add_marked_elems(const VECTOR(gbvector *) &leadterms, const VECTOR(POLY) &polys0, bool auto_reduced)
friend ReducedGB * ReducedGB::create(const PolynomialRing *originalR0, const FreeModule *F0, const FreeModule *Fsyz0, const GBWeight *wt0)
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
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 MarkedGB::add_marked_elems(), Ring::cast_to_PolynomialRing(), COMP_DONE, 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, MarkedGB::ReducedGB::create, Matrix::rows(), Computation::set_status(), syz, Ring::syzygy(), PolynomialRing::translate_gbvector_from_vec(), trimmed_gens, and VECTOR.