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

◆ free_of()

FreeModule * res2_comp::free_of ( int i) const

Definition at line 2034 of file res-a0.cpp.

2035{
2036 FreeModule *result;
2037 result = P->make_Schreyer_FreeModule();
2038 if (i < 0 || i >= resn.size()) return result;
2039
2040 auto D = get_ring()->degree_monoid();
2041 monomial deg = D->make_one();
2042 int n = 0;
2043 for (res2_pair *p = resn[i]->pairs; p != nullptr; p = p->next)
2044 {
2045 multi_degree(p, deg);
2046 result->append_schreyer(deg, p->syz->monom, p->compare_num);
2047 p->me = n++;
2048 }
2049 D->remove(deg);
2050 return result;
2051}
monomial make_one() const
Definition monoid.cpp:455
const Monoid * degree_monoid() const
Definition ring.cpp:13
const Ring * get_ring() const
Definition res-a0.hpp:357
const PolynomialRing * P
Definition res-a0.hpp:122
void multi_degree(const res2_pair *q, int *result) const
Definition res-a0.cpp:701
#define monomial
Definition gb-toric.cpp:11
int p
VALGRIND_MAKE_MEM_DEFINED & result(result)

References Ring::degree_monoid(), get_ring(), monomial, multi_degree(), P, p, and result().

Referenced by make(), and minimal_free_of().