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

◆ add()

void FreeAlgebraHeap::add ( const Poly & f)

Definition at line 40 of file FreeAlgebra.cpp.

41{
42 auto len = p.numTerms();
43 int i = 0;
44 while (len >= heap_size[i]) i++;
45
46 Poly tmp1;
47 F.init(tmp1);
48 F.add(tmp1, heap[i], p);
49 std::swap(heap[i], tmp1);
50 F.setZero(tmp1);
51
52 len = heap[i].numTerms();
53 while (len >= heap_size[i])
54 {
55 i++;
56 F.add(tmp1, heap[i], heap[i-1]);
57 std::swap(heap[i], tmp1);
58 F.setZero(tmp1);
59 F.setZero(heap[i-1]);
60
61 len = heap[i].numTerms();
62 }
63 if (i > top_of_heap) top_of_heap = i;
64}
Polynomial< CoefficientRingType > Poly
Poly heap[GEOHEAP_SIZE]
const FreeAlgebra & F
const int heap_size[GEOHEAP_SIZE]
Definition engine.cpp:53
int p
void swap(mpfr::mpreal &x, mpfr::mpreal &y)
Definition mpreal.h:3244

References F, heap, heap_size, p, std::swap(), and top_of_heap.

Referenced by FreeAlgebra::mult().