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

◆ spair_set_next()

gbA::spair * gbA::spair_set_next ( )
private

Definition at line 1054 of file gb-default.cpp.

1057{
1058 spair *result = S->spair_list;
1059 if (result)
1060 {
1061 S->spair_list = result->next;
1062 }
1063 else
1064 {
1065 if (S->spair_deferred_list.next != nullptr)
1066 {
1067 if (M2_gbTrace >= 4)
1068 {
1069 emit_line("considering deferred pairs: ");
1070 }
1071 S->spair_list = S->spair_deferred_list.next;
1072 S->spair_deferred_list.next = nullptr;
1073 S->spair_last_deferred = &S->spair_deferred_list;
1074 result = S->spair_list;
1075 S->spair_list = result->next;
1076 }
1077 else
1078 {
1079 // Now do the same for generators
1080 result = S->gen_list;
1081 if (result)
1082 {
1083 S->gen_list = result->next;
1084 }
1085 else
1086 {
1087 if (S->gen_deferred_list.next != nullptr)
1088 {
1089 if (M2_gbTrace >= 4)
1090 {
1091 emit_line(" deferred gen pairs: ");
1092 }
1093 S->gen_list = S->gen_deferred_list.next;
1094 S->gen_deferred_list.next = nullptr;
1095 S->gen_last_deferred = &S->gen_deferred_list;
1096 result = S->gen_list;
1097 S->gen_list = result->next;
1098 }
1099 else
1100 return nullptr;
1101 }
1102 }
1103 }
1104
1105 result->next = nullptr;
1106 S->nelems--;
1107 S->n_in_degree--;
1108 S->n_computed++;
1109 if (result->type == SPAIR::SPAIR_GEN) n_gens_left--;
1110 return result;
1111}
int n_gens_left
SPairSet * S
@ SPAIR_GEN
VALGRIND_MAKE_MEM_DEFINED & result(result)
int M2_gbTrace
Definition m2-types.cpp:52
void emit_line(const char *s)
Definition text-io.cpp:47

References emit_line(), M2_gbTrace, n_gens_left, result(), S, and SPAIR_GEN.

Referenced by do_computation(), and flush_pairs().