NEURON
sptqueue.h
Go to the documentation of this file.
1 //#ifndef tqueue_h
2 //#define tqueue_h
3 
4 #define COLLECT_TQueue_STATISTICS 1
5 struct SPTREE;
6 
7 class TQItem {
8 public:
9  TQItem();
10  virtual ~TQItem();
11  bool check();
12  void clear(){};
13 public:
14  void* data_;
15  double t_;
16  TQItem* left_;
17  TQItem* right_;
18  TQItem* parent_;
19  int cnt_;
20 };
21 
22 class TQueue {
23 public:
24  TQueue();
25  virtual ~TQueue();
26 
27 #if FAST_LEAST
28  TQItem* least() {return least_;}
29  double least_t(){if (least_) { return least_->t_;}else{return 1e15;}}
30  TQItem* second_least(double t);
31 #else
32  TQItem* least(); // does not remove from TQueue
33  double least_t();
34 #endif
35  TQItem* insert(double t, void* data_);
36  TQItem* find(double t);
37  void remove(TQItem*);
38  void move(TQItem*, double tnew);
39  void move_least(double tnew);
40  void print();
41  void check(const char* errmess);
42  void statistics();
43  void spike_stat(double*);
44  void forall_callback(void (*)(const TQItem*, int));
45 private:
46  SPTREE* sptree_;
47  TQItem* least_;
48 #if COLLECT_TQueue_STATISTICS
49  unsigned long ninsert, nrem, nleast, nbal, ncmplxrem;
50  unsigned long ncompare, nleastsrch, nfind, nfindsrch, nmove, nfastmove;
51 #endif
52 };
53 //#endif
TQItem()
Definition: bbtqueue.cpp:3
void clear()
Definition: sptqueue.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
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
TQItem * left_
Definition: bbtqueue.h:19
Definition: sptbinq.h:17
TQItem * parent_
Definition: bbtqueue.h:21
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
int cnt_
Definition: spt2queue.h:23
TQItem * right_
Definition: bbtqueue.h:20
static double spike_stat(void *v)
Definition: ocbbs.cpp:693