Changeset 3412 in Sophya for trunk/SophyaExt/IFFTW


Ignore:
Timestamp:
Nov 29, 2007, 10:46:59 AM (18 years ago)
Author:
ansari
Message:

Correction remplacement rank par NbDimension() lors de FFT tableaux multi-dim avec certaines tailles= 1 - Reza(+cmv) 29/11/2007

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaExt/IFFTW/fftw3server.cc

    r3359 r3412  
    5656    int sz[MAXND_FFTW];
    5757    FillSizes4FFTW(in, sz);
    58     fftw_plan p = fftw_plan_dft(rank, sz,
     58    fftw_plan p = fftw_plan_dft(in.NbDimensions(), sz,
    5959                      (fftw_complex *)in.Data(), (fftw_complex *)out.Data(),
    6060                      FFTW_FORWARD, FFTW_ESTIMATE);
     
    8686    int sz[MAXND_FFTW];
    8787    FillSizes4FFTW(in, sz);
    88     fftw_plan p = fftw_plan_dft(rank, sz,
     88    fftw_plan p = fftw_plan_dft(in.NbDimensions(), sz,
    8989                                (fftw_complex *)in.Data(), (fftw_complex *)out.Data(),
    9090                                FFTW_BACKWARD, FFTW_ESTIMATE);
     
    104104  if (rank == 1) { // One dimensional transform
    105105    fftw_plan p = fftw_plan_dft_r2c_1d(in.Size(), in.Data(),
    106                                        (fftw_complex *)out.Data(),
    107                                        FFTW_ESTIMATE); 
     106                                       (fftw_complex *)out.Data(), FFTW_ESTIMATE); 
    108107    if (p == NULL)
    109108      throw ParmError("FFTWServer::FFTForward(r_8, complex<r_8> ) Error creating fftw_plan");
     
    118117    int sz[MAXND_FFTW];
    119118    FillSizes4FFTW(in, sz);
    120     fftw_plan p = fftw_plan_dft_r2c(rank, sz, in.Data(),
    121                                       (fftw_complex *)out.Data(),
    122                                       FFTW_ESTIMATE);
     119    fftw_plan p = fftw_plan_dft_r2c(in.NbDimensions(), sz, in.Data(),
     120                                    (fftw_complex *)out.Data(), FFTW_ESTIMATE);
    123121    if (p == NULL)
    124122      throw ParmError("FFTWServer::FFTForward(r_8, complex<r_8> ) Error creating fftw_plan");
     
    143141  if (rank == 1) { // One dimensional transform
    144142    fftw_plan p = fftw_plan_dft_c2r_1d(out.Size(), (fftw_complex *)inp.Data(),
    145                              out.Data(),
    146                              FFTW_ESTIMATE); 
     143                             out.Data(), FFTW_ESTIMATE); 
    147144    if (p == NULL)
    148145      throw ParmError("FFTWServer::FFTBackward(r_8, complex<r_8> ) Error creating fftw_plan");
     
    155152    int sz[MAXND_FFTW];
    156153    FillSizes4FFTW(out, sz);
    157     fftw_plan p = fftw_plan_dft_c2r(rank, sz, (fftw_complex *)inp.Data(),
    158                           out.Data(),
    159                           FFTW_ESTIMATE); 
     154    fftw_plan p = fftw_plan_dft_c2r(out.NbDimensions(), sz, (fftw_complex *)inp.Data(),
     155                                    out.Data(), FFTW_ESTIMATE); 
    160156    if (p == NULL)
    161157      throw ParmError("FFTWServer::FFTBackward(r_8, complex<r_8> ) Error creating fftw_plan");
     
    249245    int sz[MAXND_FFTW];
    250246    FillSizes4FFTW(in, sz);
    251     fftwf_plan p = fftwf_plan_dft(rank, sz,
     247    fftwf_plan p = fftwf_plan_dft(in.NbDimensions(), sz,
    252248                      (fftwf_complex *)in.Data(), (fftwf_complex *)out.Data(),
    253249                      FFTW_FORWARD, FFTW_ESTIMATE);
     
    279275    int sz[MAXND_FFTW];
    280276    FillSizes4FFTW(in, sz);
    281     fftwf_plan p = fftwf_plan_dft(rank, sz,
     277    fftwf_plan p = fftwf_plan_dft(in.NbDimensions(), sz,
    282278                                (fftwf_complex *)in.Data(), (fftwf_complex *)out.Data(),
    283279                                FFTW_BACKWARD, FFTW_ESTIMATE);
     
    297293  if (rank == 1) { // One dimensional transform
    298294    fftwf_plan p = fftwf_plan_dft_r2c_1d(in.Size(), in.Data(),
    299                                        (fftwf_complex *)out.Data(),
    300                                        FFTW_ESTIMATE); 
     295                                         (fftwf_complex *)out.Data(), FFTW_ESTIMATE); 
    301296    if (p == NULL)
    302297      throw ParmError("FFTWServer::FFTForward(r_4, complex<r_4> ) Error creating fftwf_plan");
     
    311306    int sz[MAXND_FFTW];
    312307    FillSizes4FFTW(in, sz);
    313     fftwf_plan p = fftwf_plan_dft_r2c(rank, sz, in.Data(),
    314                                       (fftwf_complex *)out.Data(),
    315                                       FFTW_ESTIMATE);
     308    fftwf_plan p = fftwf_plan_dft_r2c(in.NbDimensions(), sz, in.Data(),
     309                                      (fftwf_complex *)out.Data(), FFTW_ESTIMATE);
    316310    if (p == NULL)
    317311      throw ParmError("FFTWServer::FFTForward(r_4, complex<r_4> ) Error creating fftwf_plan");
     
    336330  if (rank == 1) { // One dimensional transform
    337331    fftwf_plan p = fftwf_plan_dft_c2r_1d(out.Size(), (fftwf_complex *)inp.Data(),
    338                              out.Data(),
    339                              FFTW_ESTIMATE); 
     332                                         out.Data(), FFTW_ESTIMATE); 
    340333    if (p == NULL)
    341334      throw ParmError("FFTWServer::FFTBackward(r_4, complex<r_4> ) Error creating fftwf_plan");
     
    348341    int sz[MAXND_FFTW];
    349342    FillSizes4FFTW(out, sz);
    350     fftwf_plan p = fftwf_plan_dft_c2r(rank, sz, (fftwf_complex *)inp.Data(),
    351                           out.Data(),
    352                           FFTW_ESTIMATE); 
     343    fftwf_plan p = fftwf_plan_dft_c2r(out.NbDimensions(), sz, (fftwf_complex *)inp.Data(),
     344                          out.Data(), FFTW_ESTIMATE); 
    353345    if (p == NULL)
    354346      throw ParmError("FFTWServer::FFTBackward(r_4, complex<r_4> ) Error creating fftwf_plan");
Note: See TracChangeset for help on using the changeset viewer.