Changeset 3002 in Sophya for trunk/SophyaLib/NTools/fftpserver.cc


Ignore:
Timestamp:
Jul 3, 2006, 1:04:51 PM (19 years ago)
Author:
ansari
Message:

Suppression const des arguments FFTForward/Backward + adaptation de Toeplitz, cmv+Reza 03/07/2006

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/NTools/fftpserver.cc

    r2988 r3002  
    4040
    4141
    42 FFTPackServer::FFTPackServer()
     42//! Constructor - If preserve_input==true, input arrays will not be overwritten.
     43FFTPackServer::FFTPackServer(bool preserve_input)
    4344   : FFTServerInterface("FFTPackServer using extended FFTPack (C-version) package")
    44   , ckR4("FFTPackServer: ", true, true) , ckR8("FFTPackServer: ", true, true)
     45  , ckR4("FFTPackServer: ", true, true) , ckR8("FFTPackServer: ", true, true),
     46  _preserve_input(preserve_input)
    4547{
    4648//the working array and its size for the different
     
    6668FFTServerInterface * FFTPackServer::Clone()
    6769{
    68   return (new FFTPackServer);
    69 }
    70 
    71 
    72 void FFTPackServer::FFTForward(TArray< complex<r_8> > const & in, TArray< complex<r_8> > & out)
     70  return (new FFTPackServer(_preserve_input) );
     71}
     72
     73
     74void FFTPackServer::FFTForward(TArray< complex<r_8> > & in, TArray< complex<r_8> > & out)
    7375{
    7476  ckR8.CheckResize(in, out);
     
    7880}
    7981
    80 void FFTPackServer::FFTBackward(TArray< complex<r_8> > const & in, TArray< complex<r_8> > & out)
     82void FFTPackServer::FFTBackward(TArray< complex<r_8> > & in, TArray< complex<r_8> > & out)
    8183{
    8284  ckR8.CheckResize(in, out);
     
    8688
    8789
    88 void FFTPackServer::FFTForward(TArray< complex<r_4> > const & in, TArray< complex<r_4> > & out)
     90void FFTPackServer::FFTForward(TArray< complex<r_4> > & in, TArray< complex<r_4> > & out)
    8991{
    9092  ckR4.CheckResize(in, out); 
     
    9496}
    9597
    96 void FFTPackServer::FFTBackward(TArray< complex<r_4> > const & in, TArray< complex<r_4> > & out)
     98void FFTPackServer::FFTBackward(TArray< complex<r_4> > & in, TArray< complex<r_4> > & out)
    9799{
    98100  ckR4.CheckResize(in, out); 
     
    101103}
    102104
    103 void FFTPackServer::FFTForward(TArray< r_4 > const & in, TArray< complex<r_4> > & out)
    104 {
    105   ckR4.CheckResize(in, out); 
    106   TArray< r_4 > inout(in, false);
     105void FFTPackServer::FFTForward(TArray< r_4 > & in, TArray< complex<r_4> > & out)
     106{
     107  ckR4.CheckResize(in, out);
     108  bool share = (_preserve_input) ? false : true;
     109  TArray< r_4 > inout(in, share);
    107110  fftf(inout.Size(), inout.Data());
    108111  ReShapetoCompl(inout, out);
     
    110113}
    111114
    112 void FFTPackServer::FFTBackward(TArray< complex<r_4> > const & in, TArray< r_4 > & out,
     115void FFTPackServer::FFTBackward(TArray< complex<r_4> > & in, TArray< r_4 > & out,
    113116                                bool usoutsz)
    114117{
     
    119122
    120123
    121 void FFTPackServer::FFTForward(TArray< r_8 > const & in, TArray< complex<r_8> > & out)
     124void FFTPackServer::FFTForward(TArray< r_8 > & in, TArray< complex<r_8> > & out)
    122125{
    123126  ckR8.CheckResize(in, out); 
    124   TArray< r_8 > inout(in, false);
     127  bool share = (_preserve_input) ? false : true;
     128  TArray< r_8 > inout(in, share);
    125129  fftf(inout.Size(), inout.Data());
    126130  ReShapetoCompl(inout, out);
     
    128132}
    129133
    130 void FFTPackServer::FFTBackward(TArray< complex<r_8> > const & in, TArray< r_8 > & out,
     134void FFTPackServer::FFTBackward(TArray< complex<r_8> > & in, TArray< r_8 > & out,
    131135                                bool usoutsz)
    132136{
Note: See TracChangeset for help on using the changeset viewer.