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

◆ concatenateSubsets()

int Subsets::concatenateSubsets ( const Subset & s,
const Subset & t,
Subset & result )
static

Definition at line 163 of file comb.cpp.

166{
167 size_t p = s.size();
168 size_t q = t.size();
169 assert(p + q == result.size());
170 size_t a = 0;
171 size_t b = 0;
172 size_t c = 0;
173 size_t sign = 0;
174 if (p == 0 && q == 0) return 1;
175 for (;;)
176 {
177 if (a >= p)
178 {
179 while (b < q) result[c++] = t[b++];
180 break;
181 }
182 else if (b >= q)
183 {
184 while (a < p) result[c++] = s[a++];
185 break;
186 }
187 if (s[a] > t[b])
188 {
189 sign += p - a;
190 result[c++] = t[b++];
191 }
192 else if (s[a] < t[b])
193 {
194 result[c++] = s[a++];
195 }
196 else
197 return 0;
198 }
199 if ((sign % 2) == 0) return 1;
200 return -1;
201}
int p
void size_t s
Definition m2-mem.cpp:271
VALGRIND_MAKE_MEM_DEFINED & result(result)

References p, result(), and s.

Referenced by TEST(), and Matrix::wedge_product().