summaryrefslogtreecommitdiff
path: root/cryptominisat5/cryptominisat-5.6.3/src/boundedqueue.h
diff options
context:
space:
mode:
Diffstat (limited to 'cryptominisat5/cryptominisat-5.6.3/src/boundedqueue.h')
-rw-r--r--cryptominisat5/cryptominisat-5.6.3/src/boundedqueue.h190
1 files changed, 0 insertions, 190 deletions
diff --git a/cryptominisat5/cryptominisat-5.6.3/src/boundedqueue.h b/cryptominisat5/cryptominisat-5.6.3/src/boundedqueue.h
deleted file mode 100644
index 041f42896..000000000
--- a/cryptominisat5/cryptominisat-5.6.3/src/boundedqueue.h
+++ /dev/null
@@ -1,190 +0,0 @@
-/***************************************************************************
-MiniSat -- Copyright (c) 2003-2006, Niklas Een, Niklas Sorensson
-2008 - Gilles Audemard, Laurent Simon
-CryptoMiniSat -- Copyright (c) 2009 Mate Soos
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-****************************************************************************/
-
-#ifndef BOUNDEDQUEUE_H
-#define BOUNDEDQUEUE_H
-
-#include "constants.h"
-#include "avgcalc.h"
-#include <cassert>
-#include <vector>
-#include <cstring>
-#include <sstream>
-#include <iomanip>
-
-namespace CMSat {
-using std::vector;
-
-template <class T, class T2 = uint64_t>
-class bqueue {
- //Only stores info for N elements
- vector<T> elems;
- uint32_t first;
- uint32_t last;
- uint32_t maxsize; //max number of history elements
- uint32_t queuesize; // Number of current elements (must be < maxsize !)
- T2 sumofqueue;
- #ifdef STATS_NEEDED
- AvgCalc<T, T2> longTermAvg;
- #endif
-
-public:
- bqueue(void) :
- first(0)
- , last(0)
- , maxsize(0)
- , queuesize(0)
- , sumofqueue(0)
- {}
-
- size_t usedMem() const
- {
- return sizeof(size_t)*4 + elems.capacity()*sizeof(T) + sizeof(T2) + sizeof(AvgCalc<T,T2>);
- }
-
- void push(const T x) {
- if (queuesize == maxsize) {
- // The queue is full, next value to enter will replace oldest one
-
- assert(last == first);
- sumofqueue -= elems[last];
-
- last++;
- if (last == maxsize)
- last = 0;
-
- } else {
- queuesize++;
- }
-
- sumofqueue += x;
-
- #ifdef STATS_NEEDED
- longTermAvg.push(x);
- #endif
- elems[first] = x;
-
- first++;
- if (first == maxsize)
- first = 0;
- }
-
- double avg() const
- {
- if (queuesize == 0)
- return 0;
-
- assert(isvalid());
- return (double)sumofqueue/(double)queuesize;
- }
-
- double avg_nocheck() const
- {
- if (queuesize == 0)
- return 0;
-
- return (double)sumofqueue/(double)queuesize;
- }
-
- #ifdef STATS_NEEDED
- const AvgCalc<T,T2>& getLongtTerm() const
- {
- return longTermAvg;
- }
-
- T prev(int32_t p) const
- {
- if (p > (int32_t)queuesize)
- return 0;
-
- uint32_t e;
- if (first > 0) {
- e = first-1;
- } else {
- e = maxsize-1;
- }
-
- while(p-- > 0) {
- if (e == 0) {
- e = maxsize-1;
- } else {
- e--;
- }
- }
- return elems[e];
- }
- #endif
-
- std::string getAvgPrint(size_t prec, size_t w) const
- {
- std::stringstream ss;
- if (isvalid()) {
- ss
- << std::fixed << std::setprecision(prec) << std::setw(w) << std::right
- << avg();
- } else {
- ss << std::setw(5) << "?";
- }
-
- return ss.str();
- }
-
- bool isvalid() const
- {
- return (queuesize == maxsize);
- }
-
- void clearAndResize(const size_t size)
- {
- clear();
- elems.resize(size);
- maxsize = size;
- }
-
- void clear()
- {
- first = 0;
- last = 0;
- queuesize = 0;
- sumofqueue = 0;
-
- #ifdef STATS_NEEDED
- longTermAvg.clear();
- #endif
- }
-
- size_t get_size() const
- {
- return queuesize;
- }
-
- size_t get_maxsize() const
- {
- return maxsize;
- }
-};
-
-} //end namespace
-
-#endif //BOUNDEDQUEUE_H
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback