Changeset 3912 in Sophya for trunk/AddOn
- Timestamp:
- Nov 22, 2010, 10:01:12 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/AddOn/TAcq/tmtfft.cc
r3623 r3912 4 4 // R. Ansari - C. Magneville , Decembre 2007 5 5 // Exemples de commandes pour test (dans l'ordre ci-dessous : 6 // csh> tmtfft OCG 1000000 XXX7 // csh> tmtfft STG 1000000 10248 // csh> tmtfft RDG 1000000 rg1.ppf9 // csh> tmtfft MTG 3000000 46 // csh> tmtfft VSZ NTH NbFFT [PaqSz=4096] 7 // csh> tmtfft 1310720 1 10000 16384 8 // csh> tmtfft 1310720 1 10000 8192 9 // csh> tmtfft 1310720 2 10000 8192 10 10 //-------------------------------------------------------------------------------- 11 11 … … 37 37 // Definition d'une classe heritant de ZThread, pour remplir un vecteur avec 38 38 // des aleatoires 39 39 40 class MTDoFFT : public ZThread { 40 41 public: … … 53 54 54 55 static int mtrandId = 0; // Pour donner un identificateur a chaque thread 56 ZMutex* pmtx_=NULL; // pour synchroniser creation de plan_fftw; 55 57 56 58 MTDoFFT::MTDoFFT(TVector<r_4>& v, sa_size_t nfft, sa_size_t paqsz) … … 58 60 nbfft_(nfft), paqsz_(paqsz), ffts_(true) // preserve input=true 59 61 { 62 if (pmtx_==NULL) pmtx_ = new ZMutex; 60 63 char buff[32]; 61 64 sprintf(buff, "MTDoFFT-Id=%d", mtrandId); … … 63 66 nom_ = buff; 64 67 // Initialisation taille vecteurs 65 TVector<r_4> vx(paqsz );68 TVector<r_4> vx(paqsz_); 66 69 vx = RegularSequence(); 67 70 ffts_.FFTForward(vx, cfour_); 68 71 spectre_.ReSize(cfour_.Size()); 69 cout << " Thread MTDoFFT(" << nom_ << " ) Created ... " << endl;72 cout << " Thread MTDoFFT(" << nom_ << ", PaqSz=" << paqsz_ << " ) Created ... " << endl; 70 73 } 71 74 … … 81 84 FMTRandGen rgen; 82 85 TVector<r_4> vx(paqsz_); 86 87 pmtx_->lock(); 83 88 fftwf_plan plan = fftwf_plan_dft_r2c_1d(paqsz_, vx.Data(), 84 (fftwf_complex *)cfour_.Data(), FFTW_ESTIMATE); 89 (fftwf_complex *)cfour_.Data(), FFTW_ESTIMATE); 90 pmtx_->unlock(); 85 91 86 92 sa_size_t prm = nbfft_/10; … … 161 167 sa_size_t nfft = atoi(arg[3]); 162 168 sa_size_t paqsz = 4096; 163 if (narg > 4) paqsz = atoi(arg[ 3]);169 if (narg > 4) paqsz = atoi(arg[4]); 164 170 try { 165 171 f3_tmtfft(VSZ, NTH, nfft, paqsz);
Note:
See TracChangeset
for help on using the changeset viewer.