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

◆ minimal_free_of()

FreeModule * res2_comp::minimal_free_of ( int i) const

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

2053{
2054 FreeModule *result;
2055 result = P->make_Schreyer_FreeModule();
2056 if (i < 0 || i >= resn.size() - 1) return result;
2057 if (do_by_level > 0) return free_of(i);
2058
2059 auto D = get_ring()->degree_monoid();
2060 monomial deg = D->make_one();
2061 int n = 0;
2062 for (res2_pair *p = resn[i]->pairs; p != nullptr; p = p->next)
2063 if (p->syz_type == SYZ2_MINIMAL)
2064 {
2065 multi_degree(p, deg);
2066 result->append_schreyer(deg, p->syz->monom, p->compare_num);
2067 p->me = n++;
2068 }
2069 D->remove(deg);
2070 return result;
2071}
monomial make_one() const
Definition monoid.cpp:455
const Monoid * degree_monoid() const
Definition ring.cpp:13
FreeModule * free_of(int i) const
Definition res-a0.cpp:2034
const Ring * get_ring() const
Definition res-a0.hpp:357
const PolynomialRing * P
Definition res-a0.hpp:122
unsigned char do_by_level
Definition res-a0.hpp:173
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)
@ SYZ2_MINIMAL

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

Referenced by get_free(), and make_minimal().