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

◆ rawProductMonomialOrdering()

MonomialOrdering * rawProductMonomialOrdering ( engine_RawMonomialOrderingArray mo)

Definition at line 687 of file monomial-ordering.cpp.

688{
690 int i, j, sum, next, offset;
691 sum = 0;
692 for (i = 0; i < M->len; i++) sum += M->array[i]->len;
693
694 result = make_mon_order(sum);
695 next = 0;
696 offset = 0;
697 for (i = 0; i < M->len; i++)
698 {
699 int nvars = rawNumberOfVariables(M->array[i]);
700 MonomialOrdering *mo = M2_mo_offset(M->array[i], offset);
701 for (j = 0; j < mo->len; j++) result->array[next++] = mo->array[j];
702 offset += nvars;
703 }
704 return result;
705}
VALGRIND_MAKE_MEM_DEFINED & result(result)
static MonomialOrdering * M2_mo_offset(const MonomialOrdering *mo, int offset)
static MonomialOrdering * make_mon_order(int n)
int rawNumberOfVariables(const MonomialOrdering *mo)
const mpreal sum(const mpreal tab[], const unsigned long int n, int &status, mp_rnd_t mode=mpreal::get_default_rnd())
Definition mpreal.h:2600
Front-end-side description of a monomial ordering as a list of mon_part blocks.

References MonomialOrdering::array, MonomialOrdering::len, M2_mo_offset(), make_mon_order(), mon_part::nvars, rawNumberOfVariables(), and result().