aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Mark Borgerding <mark@borgerding.net>2009-05-25 20:35:24 -0400
committerGravatar Mark Borgerding <mark@borgerding.net>2009-05-25 20:35:24 -0400
commit210092d16c57ec2fd2f8f515151de284e8a737e3 (patch)
tree1037d09248290702b3bb45dd37baece58b50cf7f
parent326ea773908c2d7e46101085af8f72d20b3f8cbc (diff)
changed name from simple_fft_traits to ei_kissfft_impl
-rw-r--r--bench/benchFFT.cpp2
-rw-r--r--unsupported/Eigen/FFT (renamed from unsupported/Eigen/FFT.h)18
-rw-r--r--unsupported/Eigen/src/FFT/ei_kissfft_impl.h (renamed from unsupported/Eigen/src/FFT/simple_fft_traits.h)29
-rw-r--r--unsupported/test/FFT.cpp3
4 files changed, 37 insertions, 15 deletions
diff --git a/bench/benchFFT.cpp b/bench/benchFFT.cpp
index 84cc49fe3..ffa4ffffc 100644
--- a/bench/benchFFT.cpp
+++ b/bench/benchFFT.cpp
@@ -26,7 +26,7 @@
#include <vector>
#include <Eigen/Core>
#include <bench/BenchTimer.h>
-#include <unsupported/Eigen/FFT.h>
+#include <unsupported/Eigen/FFT>
using namespace Eigen;
using namespace std;
diff --git a/unsupported/Eigen/FFT.h b/unsupported/Eigen/FFT
index c466423b7..3d852f5a2 100644
--- a/unsupported/Eigen/FFT.h
+++ b/unsupported/Eigen/FFT
@@ -25,28 +25,28 @@
#ifndef EIGEN_FFT_H
#define EIGEN_FFT_H
-// simple_fft_traits: small, free, reasonably efficient default, derived from kissfft
-#include "src/FFT/simple_fft_traits.h"
-#define DEFAULT_FFT_TRAITS simple_fft_traits
+// ei_kissfft_impl: small, free, reasonably efficient default, derived from kissfft
+#include "src/FFT/ei_kissfft_impl.h"
+#define DEFAULT_FFT_IMPL ei_kissfft_impl
// FFTW: faster, GPL-not LGPL, bigger code size
#ifdef FFTW_PATIENT // definition of FFTW_PATIENT indicates the caller has included fftw3.h, we can use FFTW routines
// TODO
-// #include "src/FFT/fftw_traits.h"
-// #define DEFAULT_FFT_TRAITS fftw_traits
+// #include "src/FFT/ei_fftw_impl.h"
+// #define DEFAULT_FFT_IMPL ei_fftw_impl
#endif
// intel Math Kernel Library: fastest, commerical
#ifdef _MKL_DFTI_H_ // mkl_dfti.h has been included, we can use MKL FFT routines
// TODO
-// #include "src/FFT/imkl_traits.h"
-// #define DEFAULT_FFT_TRAITS imkl_traits
+// #include "src/FFT/ei_imkl_impl.h"
+// #define DEFAULT_FFT_IMPL ei_imkl_impl
#endif
namespace Eigen {
template <typename _Scalar,
- typename _Traits=DEFAULT_FFT_TRAITS<_Scalar>
+ typename _Traits=DEFAULT_FFT_IMPL<_Scalar>
>
class FFT
{
@@ -90,6 +90,6 @@ class FFT
private:
traits_type m_traits;
};
-#undef DEFAULT_FFT_TRAITS
+#undef DEFAULT_FFT_IMPL
}
#endif
diff --git a/unsupported/Eigen/src/FFT/simple_fft_traits.h b/unsupported/Eigen/src/FFT/ei_kissfft_impl.h
index 1e2be8f79..ce2c9f16e 100644
--- a/unsupported/Eigen/src/FFT/simple_fft_traits.h
+++ b/unsupported/Eigen/src/FFT/ei_kissfft_impl.h
@@ -24,16 +24,15 @@
#include <complex>
#include <vector>
-#include <iostream>
namespace Eigen {
template <typename _Scalar>
- struct simple_fft_traits
+ struct ei_kissfft_impl
{
typedef _Scalar Scalar;
typedef std::complex<Scalar> Complex;
- simple_fft_traits() : m_nfft(0) {}
+ ei_kissfft_impl() : m_nfft(0) {}
template <typename _Src>
void fwd( Complex * dst,const _Src *src,int nfft)
@@ -370,5 +369,29 @@ namespace Eigen {
std::vector<Complex> m_realTwiddles;
std::vector<int> m_stageRadix;
std::vector<int> m_stageRemainder;
+/*
+ enum {FORWARD,INVERSE,REAL,COMPLEX};
+
+ struct PlanKey
+ {
+ PlanKey(int nfft,bool isinverse,bool iscomplex)
+ {
+ _key = (nfft<<2) | (isinverse<<1) | iscomplex;
+ }
+
+ bool operator<(const PlanKey & other) const
+ {
+ return this->_key < other._key;
+ }
+ int _key;
+ };
+
+ struct PlanData
+ {
+ std::vector<Complex> m_twiddles;
+ };
+
+ std::map<PlanKey,
+*/
};
}
diff --git a/unsupported/test/FFT.cpp b/unsupported/test/FFT.cpp
index 75c33277d..daf397790 100644
--- a/unsupported/test/FFT.cpp
+++ b/unsupported/test/FFT.cpp
@@ -23,8 +23,7 @@
// Eigen. If not, see <http://www.gnu.org/licenses/>.
#include "main.h"
-#include <unsupported/Eigen/FFT.h>
-
+#include <unsupported/Eigen/FFT>
using namespace std;