NEURON
bbtqueue.h
Go to the documentation of this file.
1 //#ifndef tqueue_h
2 //#define tqueue_h
3 
4 #define COLLECT_TQueue_STATISTICS 1
5 
6 class TQItem {
7 public:
8  TQItem();
9  virtual ~TQItem();
10  bool check();
11  int wleft() { return (left_?left_->w_:0); }
12  int wright() { return (right_?right_->w_:0); }
13  void t_iterate(void (*)(const TQItem*, int), int);
14  bool unbalanced();
15  void clear(){}
16 public:
17  void* data_;
18  double t_;
22  int w_;
23 };
24 
25 class TQueue {
26 public:
27  TQueue();
28  virtual ~TQueue();
29 
30  TQItem* least(); // does not remove from TQueue
31  double least_t();
32  TQItem* insert(double t, void* data_);
33  TQItem* find(double t);
34  void remove(TQItem*);
35  void move(TQItem*, double tnew);
36  void move_least(double tnew);
37  void print();
38  void check(const char* errmess);
39  void statistics();
40  void insert1(double t, TQItem*);
41  void remove1(TQItem*);
42  void forall_callback(void (*)(const TQItem*, int));
43 private:
44  void reverse(TQItem*);
45  void new_least();
46 private:
49 #if COLLECT_TQueue_STATISTICS
50 private:
51  unsigned long ninsert, nrem, nleast, nbal, ncmplxrem;
52  unsigned long ncompare, nleastsrch, nfind, nfindsrch, nmove, nfastmove;
53 #endif
54 };
55 //#endif
TQItem()
Definition: bbtqueue.cpp:3
void clear()
Definition: bbtqueue.h:15
int wright()
Definition: bbtqueue.h:12
#define print
Definition: redef.h:109
double t_
Definition: bbtqueue.h:18
Definition: bbtqueue.h:6
bool check()
Definition: bbtqueue.cpp:30
static double statistics(void *v)
Definition: cvodeobj.cpp:115
TQItem * root_
Definition: bbtqueue.h:48
virtual ~TQItem()
Definition: bbtqueue.cpp:9
static double insert(void *v)
Definition: tqueue.cpp:22
virtual void move(const Event &e)
Definition: ocinput.h:19
unsigned long nmove
Definition: bbtqueue.h:52
TQItem * left_
Definition: bbtqueue.h:19
int w_
Definition: bbtqueue.h:22
TQItem * parent_
Definition: bbtqueue.h:21
bool unbalanced()
Definition: bbtqueue.cpp:455
static double least(void *v)
Definition: tqueue.cpp:33
int find(const int, const int, const int, const int, const int)
void * data_
Definition: bbtqueue.h:17
double t
Definition: init.cpp:123
TQItem * least_
Definition: bbtqueue.h:47
TQItem * right_
Definition: bbtqueue.h:20
unsigned long nrem
Definition: bbtqueue.h:51
void t_iterate(void(*)(const TQItem *, int), int)
Definition: bbtqueue.cpp:82
int wleft()
Definition: bbtqueue.h:11