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

◆ skeleton()

enum ComputationStatusCode res2_comp::skeleton ( int level)

Definition at line 40 of file res-a0.cpp.

43{
44 res2_pair *p;
45 if (resn[level]->state != RES_SKELETON) return COMP_COMPUTING;
46 // If we are new here, next_pairs will be null, so we should sort
47 if (resn[level]->next_pair == nullptr)
48 {
49 sort_skeleton(resn[level]->pairs);
50 int n = 0;
51 for (p = resn[level]->pairs; p != nullptr; p = p->next)
52 {
53 p->me = n++;
54 p->pair_num = p->me;
55 }
56 resn[level]->next_pair = resn[level]->pairs;
57 }
58
59 // Now compute the pairs at the next level
60 for (;;)
61 {
62 p = resn[level]->next_pair;
63 if (p == nullptr) break;
64 resn[level]->next_pair = p->next;
65 // The following will only insert pairs of degree > topdegree
66 // so this routine may be used to increase the degree bound
67 // note: also need to redo monomial ideals...
68 new_pairs(p);
70 }
71 resn[level]->state = RES_MONORDER;
72 return COMP_COMPUTING;
73}
void new_pairs(res2_pair *p)
Definition res-a0.cpp:951
void sort_skeleton(res2_pair *&p)
Definition res-a0.cpp:916
@ COMP_COMPUTING
Definition computation.h:71
@ COMP_INTERRUPTED
Definition computation.h:57
int p
bool system_interrupted()
static gmp_randstate_t state
Definition random.cpp:18
@ RES_MONORDER
Definition res-a0.hpp:51
@ RES_SKELETON
Definition res-a0.hpp:49

References COMP_COMPUTING, COMP_INTERRUPTED, new_pairs(), p, RES_MONORDER, RES_SKELETON, sort_skeleton(), state, and system_interrupted().

Referenced by start_computation().