** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: filter.h,v 1.7 2000/07/03 11:02:06 kevin Exp $
+** $Id: filter.h,v 1.8 2000/07/04 18:33:35 kevin Exp $
**
** 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
static void finiteFourierTransform (const float input[], complex<double> output[], const int n, const int direction);
+ static void finiteFourierTransform (const complex<double> input[], complex<double> output[], const int n, const int direction);
+
void finiteFourierTransform (const float input[], complex<double> output[], const int direction) const;
+ void finiteFourierTransform (const complex<double> input[], complex<double> output[], const int direction) const;
+
bool fail(void) const {return m_fail;}
const string& failMessage(void) const {return m_failMessage;}
static double spatialResponseAnalytic (FilterID fType, double bw, double x, double param);
+ static void dotProduct (const double v1[], const complex<double> v2[], complex<double> output[], const int n);
+
private:
double m_bw;
int m_nFilterPoints;
double* m_vecFilter;
double* m_vecFourierCosTable;
double* m_vecFourierSinTable;
+ complex<double>* m_complexVecFilter;
+#ifdef HAVE_FFTW
+ fftw_plan m_planForward, m_planBackward;
+#endif
bool m_fail;
string m_failMessage;