25 template <
class Record>
27 { recSize =
sizeof(Record);
28 SizeSSE = ((2*n+1)*recSize/16+1)*16;
33 template <
class Record>
39 template <
class Record>
43 for(
int i=0;
i<SizeSSE/recSize; ++
i)rec[
i] = other.
rec[
i];
47 template <
class Record>
52 template <
class Record>
55 int newSizeSSE = ((2*nn+1)*recSize/16+1)*16;
56 if(newSizeSSE==SizeSSE)
return;
63 template <
class Record>
66 if(posix_memalign((
void**)&rec, 16, SizeSSE))
67 printf(
"SymmArraySSE::SymmArraySSE : memory not allocated\n");
68 zero = rec + SizeSSE/(2*recSize);
73 template <
class Record>
75 {
int n = SizeSSE/recSize;
76 for(
int i=-n/2;
i<-last; ++
i)zero[
i] = 0;
77 for(
int i=last+1;
i<n/2; ++
i)zero[
i] = 0;
81 template <
class Record>
83 { fwrite(&last,
sizeof(
int), 1, f);
84 fwrite(&recSize,
sizeof(
int), 1, f);
85 fwrite(rec, recSize, 2*last+1, f);
88 template <
class Record>
91 fread(&n,
sizeof(
int), 1, f);
92 fread(&newRecSz,
sizeof(
int), 1, f);
94 if(newRecSz!=recSize){
95 printf(
"Array::Read abort b/c different record size: %d vs %d\n", newRecSz,recSize);
99 int newSizeSSE = ((2*n+1)*recSize/16+1)*16;
102 if(newSizeSSE != SizeSSE){
103 if(SizeSSE)free(rec);
104 SizeSSE = newSizeSSE;
107 fread(rec, recSize, 2*n+1, f);
110 template <
class Record>
112 {
for(
int i=0;
i<2*last+1; ++
i)rec[
i] = x;
SymmArraySSE(unsigned int n=0)
wavearray< double > a(hp.size())
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<< "\ layers : "<< nLAYERS<< "\ dF(hz) : "<< dF<< "\ 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
cout<< "SNR "<< xsnr<< endl;wavearray< double > f
int recSize
always in the middle of the allocated space
printf("total live time: non-zero lags = %10.1f \, liveTot)
SymmArraySSE & operator=(const SymmArraySSE &other)