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

◆ compare()

int s_pair_heap::compare ( s_pair * f,
s_pair * g ) const
private

Definition at line 66 of file spair.cpp.

67{
68 int cmp = f->degree - g->degree;
69 if (cmp < 0) return -1;
70 if (cmp > 0) return 1;
71 int compare_type =
72 0; // MES: res-a2.cpp would change this globally, uugh. Doesn't seem to
73 // be used at all, so I am just commenting this out.
74 switch (compare_type)
75 {
76 case 0:
77 cmp = M->compare(f->lcm, g->lcm);
78 if (cmp != 0)
79 return cmp; // MES: changed cmp to -cmp, to try out different order
80 // 2/21/00.
81 if (f->first == nullptr || g->first == nullptr) return 0;
82 cmp = f->first->me - g->first->me;
83 if (cmp > 0) return 1;
84 if (cmp < 0) return -1;
85 break;
86 case 1:
87 cmp = M->compare(f->lcm, g->lcm);
88 if (cmp != 0)
89 return -cmp; // MES: changed cmp to -cmp, to try out different order
90 // 2/21/00.
91 if (f->first == nullptr || g->first == nullptr) return 0;
92 cmp = f->first->me - g->first->me;
93 if (cmp > 0) return 1;
94 if (cmp < 0) return -1;
95 break;
96 case 2:
97 if (f->first != nullptr && g->first != nullptr)
98 {
99 cmp = f->first->me - g->first->me;
100 if (cmp < 0) return -1;
101 if (cmp > 0) return 1;
102 }
103 if (f->second != nullptr && g->second != nullptr)
104 {
105 cmp = f->second->me - g->second->me;
106 if (cmp < 0) return -1;
107 if (cmp > 0) return 1;
108 }
109 cmp = M->compare(f->lcm, g->lcm);
110 if (cmp != 0) return cmp;
111 if (f->first == nullptr || g->first == nullptr) return 0;
112 cmp = f->first->me - g->first->me;
113 if (cmp > 0) return 1;
114 if (cmp < 0) return -1;
115 break;
116 default:
117 return -1;
118 break;
119 }
120 return 0;
121}
const Monoid * M
Definition spair.hpp:106
int me
Definition spair.hpp:62
int * lcm
Definition spair.hpp:95
int degree
Definition spair.hpp:94
gb_elem * second
Definition spair.hpp:97
gb_elem * first
Definition spair.hpp:96

References s_pair::degree, s_pair::first, s_pair::lcm, M, gb_elem::me, and s_pair::second.

Referenced by merge(), and remove().