Logo Coherent WaveBurst  
Reference Guide
Logo
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SymmArraySSE.hh
Go to the documentation of this file.
1 #ifndef SYMMARRAYSSE_HH
2 #define SYMMARRAYSSE_HH
3 
4 #include "stdio.h"
5 #include "TNamed.h"
6 
7 // meant to be used with int32, int64, float, double
8 
9 // a[-n], a[-n+1] a[-n+2] ... a[0] a[1] .... a[n]
10 
11 template <class Record>
12 class SymmArraySSE : public TNamed{
13 public:
14  SymmArraySSE(unsigned int n=0);
15  SymmArraySSE(const SymmArraySSE&); //copy constructor
16  virtual ~SymmArraySSE();
17  SymmArraySSE& operator=(const SymmArraySSE& other);
18  void Init(Record x);
19  void Resize(int nn); // new n
20  void Write(FILE* f);
21  void Read(FILE* f);
22  Record& operator[](int i){ return zero[i];}
23  Record* SSEPointer(){ return rec;}
24  int SSESize(){ return SizeSSE;}
25  int Last() {return last;}
26  void ZeroExtraElements();
27 
28 protected:
29  void allocateSSE(); // aligned allocation; uses SizeSSE, last; sets rec, zero
30  int last, SizeSSE; // SizeSSE in bytes (multiple of 8)
31  Record* rec; //!
32  Record* zero; //! always in the middle of the allocated space
33  int recSize;
34 
35  ClassDef(SymmArraySSE,1)
36 };
37 
38 
39 
40 #endif
Record * zero
Definition: SymmArraySSE.hh:32
SymmArraySSE(unsigned int n=0)
Definition: SymmArraySSE.cc:8
void allocateSSE()
Definition: SymmArraySSE.cc:46
tuple f
Definition: cwb_online.py:91
int n
Definition: cwb_net.C:10
cout<< endl;cout<< "ts size = "<< ts.size()<< " ts rate = "<< ts.rate()<< endl;tf.Forward(ts, wdm);int levels=tf.getLevel();cout<< "tf size = "<< tf.size()<< endl;double dF=tf.resolution();double dT=1./(2 *dF);cout<< "rate(hz) : "<< RATE<< "\t layers : "<< nLAYERS<< "\t dF(hz) : "<< dF<< "\t dT(ms) : "<< dT *1000.<< endl;int itime=TIME_PIXEL_INDEX;int ifreq=FREQ_PIXEL_INDEX;int index=(levels+1)*itime+ifreq;double time=itime *dT;double freq=(ifreq >0)?ifreq *dF:dF/4;cout<< endl;cout<< "PIXEL TIME = "<< time<< " sec "<< endl;cout<< "PIXEL FREQ = "<< freq<< " Hz "<< endl;cout<< endl;wavearray< double > x
void Write(FILE *f)
Definition: SymmArraySSE.cc:64
Record * SSEPointer()
Definition: SymmArraySSE.hh:23
i drho i
Record * rec
Definition: SymmArraySSE.hh:31
int recSize
always in the middle of the allocated space
Definition: SymmArraySSE.hh:33
SymmArraySSE & operator=(const SymmArraySSE &other)
Definition: SymmArraySSE.cc:22
Record & operator[](int i)
Definition: SymmArraySSE.hh:22
void Resize(int nn)
Definition: SymmArraySSE.cc:35
void Read(FILE *f)
Definition: SymmArraySSE.cc:71
void Init(Record x)
Definition: SymmArraySSE.cc:93
virtual ~SymmArraySSE()
Definition: SymmArraySSE.cc:30
void ZeroExtraElements()
Definition: SymmArraySSE.cc:56