Logo Coherent WaveBurst  
Reference Guide
Logo
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SymmArray.cc
Go to the documentation of this file.
1 #include "SymmArray.hh"
2 
3 
4 ClassImp(SymmArray<double>)
5 
6 
7 template <class Record>
8 SymmArray<Record>::SymmArray(unsigned int n)
9 { //printf("Hello SymmArray::SymmArray, n=%d\n", n);
10  Size = 2*n+1; //mind the plus
11  rec = new Record[Size];
12  zero = rec+n;
13  recSize = sizeof(Record);
14  if(rec ==0 )printf("SymmArray::SymmArray : memory not allocated\n");
15 }
16 
17 template <class Record>
19 { zero = rec = 0;
20  *this=a;
21 }
22 
23 template <class Record>
25 { recSize = other.recSize;
26  Resize0(other.Size);
27  for(int i=0; i<Size; ++i)rec[i] = other.rec[i];
28  zero = rec + Size/2;
29  return *this;
30 }
31 
32 template <class Record>
34 { delete [] rec;
35 }
36 
37 template <class Record>
39 { Resize0(sz = 2*sz+1);
40 }
41 
42 template <class Record>
44 { if(sz==Size)return;
45  delete [] rec;
46  Size = sz;
47  rec = new Record[Size];
48  zero = rec + Size/2;
49 }
50 
51 template <class Record>
53 { fwrite(&Size, sizeof(int), 1, f);
54  fwrite(&recSize, sizeof(int), 1, f);
55  if(Size)fwrite(rec, recSize, Size, f);
56 }
57 
58 template <class Record>
60 { int newSize, newRecSz;
61  fread(&newSize, sizeof(int), 1, f);
62  fread(&newRecSz, sizeof(int), 1, f);
63  if(newRecSz!=recSize){
64  printf("Array::Read abort b/c different record size %d %d\n", newRecSz,
65  recSize);
66  return;
67  }
68  if(newSize != Size){
69  if(Size)delete [] rec;
70  Size = newSize;
71  rec = new Record[Size];
72  zero = rec + Size/2;
73  }
74  fread(rec, recSize, Size, f);
75  //printf("cool\n");
76 }
77 
78 template <class Record>
80 { for(int i=0; i<Size; ++i)rec[i] = x;
81 }
82 
83 template class SymmArray<int>;
84 template class SymmArray<float>;
85 template class SymmArray<double>;
virtual ~SymmArray()
Definition: SymmArray.cc:33
int Size
Definition: SymmArray.hh:28
tuple f
Definition: cwb_online.py:91
printf("total live time: non-zero lags = %10.1f \n", liveTot)
wavearray< double > a(hp.size())
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
SymmArray(unsigned int n=0)
Definition: SymmArray.cc:8
i drho i
Record * rec
Definition: SymmArray.hh:29
void Resize(int sz)
Definition: SymmArray.cc:38
void Init(Record x)
Definition: SymmArray.cc:79
void Resize0(int sz)
Definition: SymmArray.cc:43
SymmArray & operator=(const SymmArray &other)
Definition: SymmArray.cc:24
void Write(FILE *f)
Definition: SymmArray.cc:52
void Read(FILE *f)
Definition: SymmArray.cc:59
int recSize
Definition: SymmArray.hh:31