Definition at line 42 of file freemodule.cpp.
44{
45 try
46 {
48 unsigned int eachdeg = D->
n_vars();
49 if (eachdeg == 0)
50 {
51 ERROR(
"rawFreeModule: degree rank 0, but sequence of degrees given");
52 return nullptr;
53 }
54 unsigned int rank = degs->len / eachdeg;
55 if (rank * eachdeg != degs->len)
56 {
57 ERROR(
"inappropriate number of degrees");
58 return nullptr;
59 }
62 for (
unsigned int i = 0; i <
rank; i++)
63 {
64 D->from_expvector(degs->array + i * eachdeg, deg);
66 }
67 return F;
69 {
71 return nullptr;
72 }
73}
void append(const_monomial d)
Engine-side free module R^n over a Ring.
virtual FreeModule * make_FreeModule() const
const Monoid * degree_monoid() const
size_t rank(const DMatZZpFFPACK &A)
References FreeModule::append(), Ring::degree_monoid(), ERROR, Ring::make_FreeModule(), monomial, and Monoid::n_vars().