From 901b9f16494f37890be17ef4bb66e6efc6873340 Mon Sep 17 00:00:00 2001 From: Jaron Kent-Dobias Date: Fri, 10 Feb 2017 12:18:11 -0500 Subject: changed code to rely on jst --- src/spheres_poly/heap.cpp | 186 ---------------------------------------------- 1 file changed, 186 deletions(-) delete mode 100644 src/spheres_poly/heap.cpp (limited to 'src/spheres_poly/heap.cpp') diff --git a/src/spheres_poly/heap.cpp b/src/spheres_poly/heap.cpp deleted file mode 100644 index c83865c..0000000 --- a/src/spheres_poly/heap.cpp +++ /dev/null @@ -1,186 +0,0 @@ -#include "heap.h" -#include "event.h" -#include -#include "box.h" - - -//============================================================== -//============================================================== -// Class heap: Event heap used in hard spheres calculation -//============================================================== -//============================================================== - - -//============================================================== -// Constructor -//============================================================== -heap::heap(int maxsize_i): - maxsize(maxsize_i) -{ - a = new int[maxsize]; - index = new int[maxsize]; - - N = 0; // current number of events in heap -} - - -//============================================================== -// Constructor -//============================================================== -heap::heap(const heap &h) -{ - maxsize = h.maxsize; - a = h.a; - index = h.index; - N = h.N; // current number of events in heap - s = h.s; -} - - -//============================================================== -// Destructor -//============================================================== -heap::~heap() -{ - delete[] a; - delete[] index; -} - -//============================================================== -// Upheap -//============================================================== -void heap::upheap(int k) -{ - int i = a[k]; - - while ((k>1)&&(s[a[k/2]].nextevent.time > s[i].nextevent.time)) - { - a[k] = a[k/2]; - index[a[k/2]] = k; - k = k/2; - } - a[k] = i; - index[i] = k; -} - -//============================================================== -// Downheap -//============================================================== -void heap::downheap(int k) -{ - int j; - int i = a[k]; - - while(k <= N/2) - { - j = k+k; - if ((j < N)&&(s[a[j]].nextevent.time > s[a[j+1]].nextevent.time)) - j++; - if (s[i].nextevent.time <= s[a[j]].nextevent.time) - break; - a[k] = a[j]; - index[a[j]] = k; - k = j; - } - a[k] = i; - index[i] = k; -} - -//============================================================== -// Insert -//============================================================== -void heap::insert(int i) -{ - if (N >= maxsize) - std::cout << "error, N >= maxsize, cannot insert another event" << std::endl; - else - { - N++; - a[N] = i; - index[i] = N; - upheap(N); - } -} - - -//============================================================== -// Extract max -//============================================================== -int heap::extractmax() -{ - return a[1]; -} - -/* -//============================================================== -// Replace -//============================================================== -void heap::replace(int i) -{ - a[1] = i; - s[i].nextevent = t; - - if (!(e.time > s[a[1]].nextevent.time)) - { - if (!(s[a[1]].nextevent.j == INF))// must be check i'm changing to coll. at same time - std::cout << "error replaced non check with earlier time" << std::endl; - a[1] = i; - index[i] = 1; - } - else - { - a[0] = i; - downheap(0); - } -} -*/ - -//============================================================== -// Search -//============================================================== -int heap::search(int j) -{ - for (int k=1; k<=N; k++) - { - if (a[k] == j) - return k; - } - return -1; -} - -/* -//============================================================== -// Change -//============================================================== -void heap::change(int i) -{ - int iindex = index[i]; - - if (s[i].nextevent.time == s[a[iindex]].nextevent.time) - std::cout << "error changing an event to an equal time" << std::endl; - else if (s[i].nextevent.time > s[a[iindex]].nextevent.time) - std::cout << "error changing an event to a greater time" << std::endl; - - a[iindex] = i; - upheap(iindex); -} -*/ - -//============================================================== -// Print -//============================================================== -void heap::print() -{ - for (int k=1; k<=N; k++) - std::cout << k << " " << a[k] << " " << s[a[k]].nextevent.j << " " << s[a[k]].nextevent.time << std::endl; -} - - -//============================================================== -// Check index array -//============================================================== -void heap::checkindex() -{ - for (int k=1; k<=N; k++) - std::cout << k << " " << a[k] << " " << index[a[k]] << std::endl; -} -- cgit v1.2.3-70-g09d2