mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-12 03:39:01 +08:00
updated comments and played around with Map
This commit is contained in:
parent
7a6cb2a39c
commit
a30d42354f
@ -38,16 +38,16 @@
|
|||||||
* #include <unsupported/Eigen/FFT>
|
* #include <unsupported/Eigen/FFT>
|
||||||
* \endcode
|
* \endcode
|
||||||
*
|
*
|
||||||
* This module provides Fast Fourier transformation, either using a built-in implementation
|
* This module provides Fast Fourier transformation, with a configurable backend
|
||||||
* or as a frontend to various FFT libraries.
|
* implementation.
|
||||||
*
|
*
|
||||||
* The build-in implementation is based on kissfft. It is a small, free, and
|
* The default implementation is based on kissfft. It is a small, free, and
|
||||||
* reasonably efficient default.
|
* reasonably efficient default.
|
||||||
*
|
*
|
||||||
* There are currently two frontends:
|
* There are currently two implementation backend:
|
||||||
*
|
*
|
||||||
* - fftw (http://www.fftw.org) : faster, GPL -- incompatible with Eigen in LGPL form, bigger code size.
|
* - fftw (http://www.fftw.org) : faster, GPL -- incompatible with Eigen in LGPL form, bigger code size.
|
||||||
* - MLK (http://en.wikipedia.org/wiki/Math_Kernel_Library) : fastest, commercial -- may be incompatible with Eigen in GPL form.
|
* - MKL (http://en.wikipedia.org/wiki/Math_Kernel_Library) : fastest, commercial -- may be incompatible with Eigen in GPL form.
|
||||||
*
|
*
|
||||||
* \section FFTDesign Design
|
* \section FFTDesign Design
|
||||||
*
|
*
|
||||||
@ -228,20 +228,25 @@ class FFT
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: multi-dimensional FFTs
|
// TODO: multi-dimensional FFTs
|
||||||
|
|
||||||
// TODO: handle Eigen MatrixBase
|
|
||||||
// ---> i added fwd and inv specializations above + unit test, is this enough? (bjacob)
|
|
||||||
|
|
||||||
inline
|
inline
|
||||||
impl_type & impl() {return m_impl;}
|
impl_type & impl() {return m_impl;}
|
||||||
private:
|
private:
|
||||||
|
|
||||||
template <typename _It,typename _Val>
|
template <typename T_Data>
|
||||||
inline
|
inline
|
||||||
void scale(_It x,_Val s,int nx)
|
void scale(T_Data * x,Scalar s,int nx)
|
||||||
{
|
{
|
||||||
|
#if 1
|
||||||
for (int k=0;k<nx;++k)
|
for (int k=0;k<nx;++k)
|
||||||
*x++ *= s;
|
*x++ *= s;
|
||||||
|
#else
|
||||||
|
if ( ((ptrdiff_t)x) & 15 )
|
||||||
|
Matrix<T_Data, Dynamic, 1>::Map(x,nx) *= s;
|
||||||
|
else
|
||||||
|
Matrix<T_Data, Dynamic, 1>::MapAligned(x,nx) *= s;
|
||||||
|
//Matrix<T_Data, Dynamic, Dynamic>::Map(x,nx) * s;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
inline
|
inline
|
||||||
|
Loading…
x
Reference in New Issue
Block a user