Definition at line 411 of file imonorder.cpp.
415{
416 if (mo == nullptr) return;
417 int *tmpexp = static_cast<int *>(alloca((mo->nvars + 1) * sizeof(int)));
422 int nblocks = mo->nblocks;
423 const int *e = expon;
424 int *
p = result_psums;
425 for (i = nblocks; i > 0; --i, b++)
switch (b->
typ)
426 {
430 for (j = 0; j <
nvars; j++) *
p++ = *e++;
431 break;
436 break;
442 for (j = 1; j <
nvars; j++)
443 {
446 }
447 break;
454 for (j = 1; j <
nvars; j++)
455 {
459 }
460 break;
465 for (j = 1; j <
nvars; j++)
466 {
469 }
472 break;
478 for (j = 1; j <
nvars; j++)
479 {
483 }
486 break;
491 for (j = 1; j <
nvars; j++)
492 {
495 }
498 break;
504 for (j = 1; j <
nvars; j++)
505 {
509 }
512 break;
518 break;
524 break;
527 {
529 }
530 else
531 {
535 }
537 break;
540
541 break;
543
544 break;
545 }
546}
static void MO_pack4(int nvars, const int *expon, int *slots)
static void MO_pack2(int nvars, const int *expon, int *slots)
static int32_t mult(int32_t x, int32_t y, const char *msg)
static int32_t add(int32_t x, int32_t y, const char *msg)
static int32_t minus(int32_t x, const char *msg)
enum MonomialOrdering_type typ
References safe::add(), mo_block::first_exp, safe::minus(), MO_GREVLEX, MO_GREVLEX2, MO_GREVLEX2_WTS, MO_GREVLEX4, MO_GREVLEX4_WTS, MO_GREVLEX_WTS, MO_LAURENT, MO_LAURENT_REVLEX, MO_LEX, MO_LEX2, MO_LEX4, MO_NC_LEX, MO_pack2(), MO_pack4(), MO_POSITION_DOWN, MO_POSITION_UP, MO_REVLEX, MO_WEIGHTS, monomial, safe::mult(), mo_block::nslots, mo_block::nvars, mon_part::nvars, mo_block::nweights, p, p1, s, mo_block::typ, and mo_block::weights.
Referenced by Monoid::from_expvector().