diff options
author | Benoit Steiner <benoit.steiner.goog@gmail.com> | 2015-10-22 16:54:21 -0700 |
---|---|---|
committer | Benoit Steiner <benoit.steiner.goog@gmail.com> | 2015-10-22 16:54:21 -0700 |
commit | ac99b4924976cb2d06a1747cd86e792de60f16c3 (patch) | |
tree | 644d8a593e931cec09cbc2fc921c34a20aaabba0 | |
parent | 2dd944661380875b5536658185041acbd459a225 (diff) |
Added missing glue logic
-rw-r--r-- | unsupported/Eigen/CXX11/Tensor | 1 | ||||
-rw-r--r-- | unsupported/Eigen/CXX11/src/Tensor/TensorBase.h | 7 | ||||
-rw-r--r-- | unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h | 13 |
3 files changed, 21 insertions, 0 deletions
diff --git a/unsupported/Eigen/CXX11/Tensor b/unsupported/Eigen/CXX11/Tensor index 3331ccb55..282ea00bb 100644 --- a/unsupported/Eigen/CXX11/Tensor +++ b/unsupported/Eigen/CXX11/Tensor @@ -81,6 +81,7 @@ #include "src/Tensor/TensorContractionCuda.h" #include "src/Tensor/TensorConversion.h" #include "src/Tensor/TensorConvolution.h" +#include "src/Tensor/TensorFFT.h" #include "src/Tensor/TensorPatch.h" #include "src/Tensor/TensorImagePatch.h" #include "src/Tensor/TensorVolumePatch.h" diff --git a/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h b/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h index 1b85f5ef5..b004fdd7d 100644 --- a/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h +++ b/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h @@ -334,6 +334,13 @@ class TensorBase<Derived, ReadOnlyAccessors> return TensorConvolutionOp<const Dimensions, const Derived, const KernelDerived>(derived(), kernel.derived(), dims); } + // Fourier transforms + template <int FFTDataType, int FFTDirection, typename FFT> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE + const TensorFFTOp<const FFT, const Derived, FFTDataType, FFTDirection> + fft(const FFT& fft) const { + return TensorFFTOp<const FFT, const Derived, FFTDataType, FFTDirection>(derived(), fft); + } + // Reductions. template <typename Dims> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorReductionOp<internal::SumReducer<CoeffReturnType>, const Dims, const Derived> diff --git a/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h b/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h index c22444e6f..fbeb9c59a 100644 --- a/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h +++ b/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h @@ -29,6 +29,7 @@ template<typename Axis, typename LeftXprType, typename RightXprType> class Tenso template<typename Dimensions, typename LeftXprType, typename RightXprType> class TensorContractionOp; template<typename TargetType, typename XprType> class TensorConversionOp; template<typename Dimensions, typename InputXprType, typename KernelXprType> class TensorConvolutionOp; +template<typename FFT, typename XprType, int FFTDataType, int FFTDirection> class TensorFFTOp; template<typename PatchDim, typename XprType> class TensorPatchOp; template<DenseIndex Rows, DenseIndex Cols, typename XprType> class TensorImagePatchOp; template<DenseIndex Planes, DenseIndex Rows, DenseIndex Cols, typename XprType> class TensorVolumePatchOp; @@ -58,6 +59,18 @@ struct DefaultDevice; struct ThreadPoolDevice; struct GpuDevice; +enum FFTResultType { + RealPart = 0, + ImagPart = 1, + BothParts = 2 +}; + +enum FFTDirection { + FFT_FORWARD = 0, + FFT_REVERSE = 1 +}; + + namespace internal { template <typename Device, typename Expression> |