r11859: Canonicalize whitespace
[ctsim.git] / include / procsignal.h
index dcb98a22b5c0b9f2e1dd24f709b6d07c82b77f84..9da33e0e09fd684e755950d45ec011c75fd1a4e8 100644 (file)
@@ -1,15 +1,15 @@
 /*****************************************************************************
 ** FILE IDENTIFICATION
 **
-**     Name:         filter.h
+**      Name:         filter.h
 **      Purpose:      Signal filter header file
-**     Programmer:   Kevin Rosenberg
-**     Date Started: June 2000
+**      Programmer:   Kevin Rosenberg
+**      Date Started: June 2000
 **
 **  This is part of the CTSim program
 **  Copyright (c) 1983-2001 Kevin Rosenberg
 **
-**  $Id: procsignal.h,v 1.15 2001/03/01 07:30:49 kevin Exp $
+**  $Id$
 **
 **  This program is free software; you can redistribute it and/or modify
 **  it under the terms of the GNU General Public License (version 2) as
@@ -33,8 +33,7 @@
 #include "config.h"
 #endif
 #ifdef HAVE_FFTW
-#include <fftw.h>
-#include <rfftw.h>
+#include <fftw3.h>
 #endif
 
 #include <complex>
@@ -66,16 +65,16 @@ class ProcessSignal {
       BACKWARD = 1,
     };
 
-    ProcessSignal (const char* szFilterName, const char* szFilterMethodName,double bw, double signalIncrement, 
-      int n, double param, const char* szDomainName, const char* szFilterGenerationName, 
-      const int zeropad, const int preinterpolationFactor, const int iTraceLevel, int iGeometry, 
+    ProcessSignal (const char* szFilterName, const char* szFilterMethodName,double bw, double signalIncrement,
+      int n, double param, const char* szDomainName, const char* szFilterGenerationName,
+      const int zeropad, const int preinterpolationFactor, const int iTraceLevel, int iGeometry,
       double dFocalLength, double dSourceDetectorLength, SGP* pSGP = NULL);
 
     ~ProcessSignal();
 
     void filterSignal (const float input[], double output[]) const;
 
-    bool fail(void) const      {return m_fail;}
+    bool fail(void) const       {return m_fail;}
     const std::string& failMessage(void) const {return m_failMessage;}
 
     void setTraceLevel (int traceLevel) {m_traceLevel = traceLevel; }
@@ -95,7 +94,7 @@ class ProcessSignal {
     static int convertFilterGenerationNameToID (const char* const fgName);
     static const char* convertFilterGenerationIDToName (const int idFG);
     static const char* convertFilterGenerationIDToTitle (const int idFG);
-  
+
     static const int getFilterMethodCount() {return s_iFilterMethodCount;}
     static const char* const* getFilterMethodNameArray() {return s_aszFilterMethodName;}
     static const char* const* getFilterMethodTitleArray() {return s_aszFilterMethodTitle;}
@@ -109,10 +108,11 @@ class ProcessSignal {
     static void finiteFourierTransform (const std::complex<double> input[], std::complex<double> output[], const int n, const int direction);
     static void finiteFourierTransform (const std::complex<double> input[], double output[], const int n, const int direction);
 
+    static int addZeropadFactor (int n, int iZeropad);
 
  private:
-        std::string m_nameFilterMethod;
-        std::string m_nameFilterGeneration;
+         std::string m_nameFilterMethod;
+         std::string m_nameFilterGeneration;
     int m_idFilterMethod;
     int m_idFilterGeneration;
     int m_nSignalPoints;
@@ -151,18 +151,18 @@ class ProcessSignal {
     static const int s_iFilterGenerationCount;
 
 #ifdef HAVE_FFTW
-    fftw_real* m_adRealFftInput, *m_adRealFftSignal;
-    rfftw_plan m_realPlanForward, m_realPlanBackward;
-    fftw_complex* m_adComplexFftInput, *m_adComplexFftSignal;
+    double *m_adRealFftInput, *m_adRealFftOutput, *m_adRealFftSignal, *m_adRealFftBackwardOutput;
+    fftw_plan m_realPlanForward, m_realPlanBackward;
+    fftw_complex *m_adComplexFftInput, *m_adComplexFftOutput, *m_adComplexFftSignal, *m_adComplexFftBackwardOutput;
     fftw_plan m_complexPlanForward, m_complexPlanBackward;
 #endif
 
-    void init (const int idFilter, int idFilterMethod, double dBandwidth, double dSignalIncrement, 
-      int nSignalPoints, double dFilterParam, const int idDomain, int idFilterGeneration, const int iZeropad, 
-      const int iPreinterpolationFactor, const int iTraceLevel, const int iGeometry, double dFocalLength, 
+    void init (const int idFilter, int idFilterMethod, double dBandwidth, double dSignalIncrement,
+      int nSignalPoints, double dFilterParam, const int idDomain, int idFilterGeneration, const int iZeropad,
+      const int iPreinterpolationFactor, const int iTraceLevel, const int iGeometry, double dFocalLength,
       double dSourceDetectorLength, SGP* pSGP);
 
-    // transforms that use precalculated trig tables, therefore don't 
+    // transforms that use precalculated trig tables, therefore don't
     // require number of data points (n) as an argument
     void finiteFourierTransform (const double input[], std::complex<double> output[], const int direction) const;
     void finiteFourierTransform (const std::complex<double> input[], std::complex<double> output[], const int direction) const;