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

◆ minimal_free_of()

const FreeModule * res_comp::minimal_free_of ( int i) const

Definition at line 1363 of file res-a1.cpp.

1364{
1365 FreeModule *result;
1366 if (i == 0) return generator_matrix->rows();
1367 result = P->make_FreeModule();
1368 if (i < 0 || i > length_limit) return result;
1369 monomial deg = P->degree_monoid()->make_one();
1370 int nminimals = 0;
1371 res_level *lev = resn[i];
1372 for (int j = 0; j < lev->bin.size(); j++)
1373 {
1374 res_degree *mypairs = lev->bin[j];
1375 for (res_pair *p = mypairs->first; p != nullptr; p = p->next)
1376 if (p->syz_type == SYZ_MINIMAL)
1377 {
1378 multi_degree(p, deg);
1379 result->append(deg);
1380 p->minimal_me = nminimals++;
1381 }
1382 }
1383 P->degree_monoid()->remove(deg);
1384
1385 return result;
1386}
const Matrix * generator_matrix
Definition res-a1.hpp:82
void multi_degree(const res_pair *q, monomial result) const
Definition res-a1.cpp:280
int length_limit
Definition res-a1.hpp:99
const PolynomialRing * P
Definition res-a1.hpp:78
res_pair * first
Definition res-a1.hpp:25
#define monomial
Definition gb-toric.cpp:11
int p
VALGRIND_MAKE_MEM_DEFINED & result(result)
@ SYZ_MINIMAL

References res_degree::first, generator_matrix, length_limit, monomial, multi_degree(), P, p, result(), and SYZ_MINIMAL.

Referenced by get_free(), and make_minimal().