--- mffm-fftw-1.7.orig/realFFTData.H
+++ mffm-fftw-1.7/realFFTData.H
@@ -0,0 +1,75 @@
+/* Copyright 2001,2002 Matt Flax <flatmax@ieee.org>
+ This file is part of the MFFM FFTw Wrapper library.
+
+ MFFM MFFM FFTw Wrapper library is free software; you can
+ redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ MFFM FFTw Wrapper library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You have received a copy of the GNU General Public License
+ along with the MFFM FFTw Wrapper library
+*/
+#ifndef REALFFTDATA_H_
+#define REALFFTDATA_H_
+
+#include "realFFT.H"
+#include <fftw3.h>
+
+#include <iostream>
+using namespace std;
+
+#ifndef fftw_real
+#define fftw_real double
+#endif
+
+/// class realFFTData controls and manipulates fft data
+class realFFTData {
+ /// Var used to specify if the memory was allocated by the realFFTData class
+ int deleteInOutMemory;
+public:
+ /// Specifies the size of the data array
+ int size;
+ /// Specifies the minimum and maximum power bins as used in the methods findMaxMinPowerBins and compPowerSpec
+ int minPowerBin, maxPowerBin;
+ /// the input, output and power_spectrum arrays
+ fftw_real *in, *out, *power_spectrum; //, *powerDeriv; power deriv. removed for now
+ /// The total power (summed) of the power spectrum as used in the method compPowerSpec
+ double totalPower;
+
+ /// All memory to be allocated internally
+ realFFTData(int sz);
+ /// input and output data arrays are to be allocated by another process
+ realFFTData(int sz, fftw_real*inp, fftw_real*outp);
+ /// Deconstructor
+ ~realFFTData(void);
+
+ /// Limits the maximum to 'lim' and returns the last fft bin with max
+ int limitHalfPowerSpec(double lim);
+
+ /// Returns the number of elements in the input and output arrays
+ int getSize(void){return size;}
+ /// Returns the number of elements in the power spectrum array
+ int getHalfSize(void){ if (!(size%2)) return size/2; else return size/2+1;}
+
+ /// Returns the maximum input variable
+ fftw_real findMaxIn(void);
+ /// Fills the max and min power spectrum bins
+ void findMaxMinPowerBins(void);
+
+ /// This function computes the power spectrum and returns the max bin
+ int compPowerSpec();
+ /// This function computes the square root of the power spectrum and returns the max bin
+ int sqrtPowerSpec();
+
+ // int powerSpecDeriv(); // Find the derivative of the power spectrum
+
+ /// This function zeros the output data array (out)
+ void zeroFFTData(void);
+};
+#endif // REALFFTDATA_H_