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

◆ recurse()

void hilb_comp::recurse ( MonomialIdeal *& I,
const_varpower pivot_vp )
private

Definition at line 500 of file hilb.cpp.

501{
502 depth++;
503 if (depth > maxdepth) maxdepth = depth;
504 nrecurse++;
505 if (current->down == nullptr)
506 {
507 current->down = new hilb_step; // MES: is this ok?
508 current->down->up = current;
509 current->down->down = nullptr;
510 }
511 current = current->down;
512 current->h0 = R->from_long(0);
513 M->degree_of_varpower(pivot_vp, LOCAL_deg1);
514 current->h1 = R->make_flat_term(one, LOCAL_deg1); // t^(deg vp)
515 MonomialIdeal *quot, *sum;
516 iquotient_and_sum(*I, pivot_vp, quot, sum, mi_stash);
517 delete I;
518 part_table.partition(sum, current->monids);
519 current->first_sum = current->monids.size() - 1;
520 part_table.partition(quot, current->monids);
521 current->i = current->monids.size() - 1;
522}
int nrecurse
Definition hilb.hpp:117
const PolynomialRing * R
Definition hilb.hpp:95
monomial LOCAL_deg1
Definition hilb.hpp:125
hilb_step * current
Definition hilb.hpp:110
partition_table part_table
Definition hilb.hpp:127
int depth
Definition hilb.hpp:114
int maxdepth
Definition hilb.hpp:115
const Monoid * M
Definition hilb.hpp:96
ring_elem one
Definition hilb.hpp:120
stash * mi_stash
Definition hilb.hpp:99
static void iquotient_and_sum(MonomialIdeal &I, const_varpower m, MonomialIdeal *&quot, MonomialIdeal *&sum, stash *mi_stash)
Definition hilb.cpp:267
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

References current, depth, iquotient_and_sum(), LOCAL_deg1, M, maxdepth, mi_stash, nrecurse, one, part_table, and R.

Referenced by do_ideal().