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

◆ interreduction()

void interreduction ( IntermediateBasis & F)

Definition at line 401 of file franzi-gb.cpp.

402{
403 bool changesHappened = true;
404 IntermediateBasis::iterator end = F.end();
405 unsigned long numChanged = 0;
406 while (changesHappened)
407 {
408 changesHappened = false;
409 for (IntermediateBasis::iterator it = F.begin(); it != end;)
410 {
411 if (reduce(it->second, F, it))
412 {
413 // we changed it
414 numChanged++;
415 if (it->second.isZero())
416 { // reduced an element to 0, remove it from F
417 F.erase(it++);
418 }
419 else
420 {
421 ++it;
422 }
423 changesHappened = true;
424 }
425 else
426 {
427 ++it;
428 }
429 }
430 }
431}
bool reduce(BRP &f, const IntermediateBasis &F, const IntermediateBasis::const_iterator itF)
TermIterator< Nterm > end(Nterm *)
Definition ringelem.cpp:5

References end(), and reduce().

Referenced by gb().