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

◆ make_schreyer() [2/2]

FreeModule * FreeModule::make_schreyer ( const Matrix * m)
static

Definition at line 53 of file freemod.cpp.

54{
55 int i;
56 const PolynomialRing *R = m->get_ring()->cast_to_PolynomialRing();
57 if (R == nullptr)
58 {
59 ERROR("expected a polynomial ring");
60 return nullptr;
61 }
62 FreeModule *F = R->make_FreeModule();
63 int rk = m->n_cols();
64 if (rk == 0) return F;
65
66 for (i = 0; i < rk; i++) F->append(m->cols()->degree(i));
67
69
70 return F;
71}
SchreyerOrder * schreyer
Definition freemod.hpp:73
const_monomial degree(int i) const
Definition freemod.hpp:104
void append(const_monomial d)
Definition freemod.cpp:130
FreeModule(const Ring *R, int n, bool has_schreyer_order)
Definition freemod.cpp:32
const Ring * R
Definition freemod.hpp:75
const Ring * get_ring() const
Definition matrix.hpp:134
int n_cols() const
Definition matrix.hpp:147
const FreeModule * cols() const
Definition matrix.hpp:145
virtual const PolynomialRing * cast_to_PolynomialRing() const
Definition ring.hpp:243
static SchreyerOrder * create(const Monoid *m)
Definition schorder.cpp:11
const int ERROR
Definition m2-mem.cpp:55

References append(), Ring::cast_to_PolynomialRing(), Matrix::cols(), SchreyerOrder::create(), degree(), ERROR, FreeModule(), Matrix::get_ring(), Matrix, Matrix::n_cols(), R, and schreyer.

Referenced by GBKernelComputation::GBKernelComputation(), IM2_FreeModule_make_schreyer(), and GBMatrix::to_matrix().