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

◆ makemonideal()

MonomialIdeal * makemonideal ( const Matrix * A)
static

Definition at line 1123 of file matrix.cpp.

1124{
1126 if (P == nullptr)
1127 {
1128 ERROR("expected polynomial ring");
1129 return nullptr;
1130 }
1131 const Monoid *M = P->getMonoid();
1132 VECTOR(Bag *) new_elems;
1133
1134 for (int i = 0; i < A->n_cols(); i++)
1135 {
1136 vec v = A->elem(i);
1137 if (v == nullptr) continue;
1138 Bag *b = new Bag(i);
1139 M->to_varpower(P->lead_flat_monomial(v->coeff), b->monom());
1140 new_elems.push_back(b);
1141 }
1142
1143 MonomialIdeal *result = new MonomialIdeal(P, new_elems);
1144 return result;
1145}
const Ring * get_ring() const
Definition matrix.hpp:134
ring_elem elem(int i, int j) const
Definition matrix.cpp:307
int n_cols() const
Definition matrix.hpp:147
void to_varpower(const_monomial m, gc_vector< int > &result_vp) const
Definition monoid.cpp:735
Engine-side commutative monomial monoid: variable names, ordering, multidegree machinery,...
Definition monoid.hpp:89
Engine-side monomial ideal: a decision tree of Nmi_nodes storing the (typically minimal) generators b...
Definition monideal.hpp:136
virtual const Monoid * getMonoid() const
Definition polyring.hpp:282
virtual const_monomial lead_flat_monomial(const ring_elem f) const =0
Abstract base for the engine's polynomial-ring hierarchy.
Definition polyring.hpp:96
virtual const PolynomialRing * cast_to_PolynomialRing() const
Definition ring.hpp:243
gc_vector< int > & monom()
Definition int-bag.hpp:60
int_bag Bag
Definition int-bag.hpp:70
const int ERROR
Definition m2-mem.cpp:55
VALGRIND_MAKE_MEM_DEFINED & result(result)
#define VECTOR(T)
Definition newdelete.hpp:78

References Ring::cast_to_PolynomialRing(), Matrix::elem(), ERROR, Matrix::get_ring(), PolynomialRing::getMonoid(), PolynomialRing::lead_flat_monomial(), Matrix, int_bag::monom(), Matrix::n_cols(), result(), Monoid::to_varpower(), and VECTOR.

Referenced by Matrix::koszul_monomials().