diff --git a/unsupported/Eigen/FFT b/unsupported/Eigen/FFT index 6c8cf7fdd..97b1b2cdf 100644 --- a/unsupported/Eigen/FFT +++ b/unsupported/Eigen/FFT @@ -160,18 +160,18 @@ class FFT template inline - void fwd( std::vector * dst, const std::vector<_Input> & src) + void fwd( std::vector & dst, const std::vector<_Input> & src) { if ( NumTraits<_Input>::IsComplex == 0 && HasFlag(HalfSpectrum) ) - dst->resize( (src.size()>>1)+1); + dst.resize( (src.size()>>1)+1); else - dst->resize(src.size()); - fwd(&(*dst)[0],&src[0],static_cast(src.size())); + dst.resize(src.size()); + fwd(&dst[0],&src[0],static_cast(src.size())); } template inline - void fwd( MatrixBase * dst, const MatrixBase & src) + void fwd( MatrixBase & dst, const MatrixBase & src) { EIGEN_STATIC_ASSERT_VECTOR_ONLY(InputDerived) EIGEN_STATIC_ASSERT_VECTOR_ONLY(ComplexDerived) @@ -182,15 +182,15 @@ class FFT THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_WITH_DIRECT_MEMORY_ACCESS_SUCH_AS_MAP_OR_PLAIN_MATRICES) if ( NumTraits< typename InputDerived::Scalar >::IsComplex == 0 && HasFlag(HalfSpectrum) ) - dst->derived().resize( (src.size()>>1)+1); + dst.derived().resize( (src.size()>>1)+1); else - dst->derived().resize(src.size()); + dst.derived().resize(src.size()); if (src.stride() != 1) { Matrix tmp = src; - fwd( &(*dst)[0],&tmp[0],src.size() ); + fwd( &dst[0],&tmp[0],src.size() ); }else{ - fwd( &(*dst)[0],&src[0],src.size() ); + fwd( &dst[0],&src[0],src.size() ); } } @@ -212,7 +212,7 @@ class FFT template inline - void inv( MatrixBase * dst, const MatrixBase & src) + void inv( MatrixBase & dst, const MatrixBase & src) { EIGEN_STATIC_ASSERT_VECTOR_ONLY(OutputDerived) EIGEN_STATIC_ASSERT_VECTOR_ONLY(ComplexDerived) @@ -224,24 +224,24 @@ class FFT int nfft = src.size(); int nout = HasFlag(HalfSpectrum) ? ((nfft>>1)+1) : nfft; - dst->derived().resize( nout ); + dst.derived().resize( nout ); if (src.stride() != 1) { Matrix tmp = src; - inv( &(*dst)[0],&tmp[0], nfft); + inv( &dst[0],&tmp[0], nfft); }else{ - inv( &(*dst)[0],&src[0], nfft); + inv( &dst[0],&src[0], nfft); } } template inline - void inv( std::vector<_Output> * dst, const std::vector & src) + void inv( std::vector<_Output> & dst, const std::vector & src) { if ( NumTraits<_Output>::IsComplex == 0 && HasFlag(HalfSpectrum) ) - dst->resize( 2*(src.size()-1) ); + dst.resize( 2*(src.size()-1) ); else - dst->resize( src.size() ); - inv( &(*dst)[0],&src[0],static_cast(dst->size()) ); + dst.resize( src.size() ); + inv( &dst[0],&src[0],static_cast(dst.size()) ); } diff --git a/unsupported/test/FFT.cpp b/unsupported/test/FFT.cpp index a2f1d9201..056be2ef3 100644 --- a/unsupported/test/FFT.cpp +++ b/unsupported/test/FFT.cpp @@ -106,29 +106,29 @@ void test_scalar_generic(int nfft) // make sure it DOESN'T give the right full spectrum answer // if we've asked for half-spectrum fft.SetFlag(fft.HalfSpectrum ); - fft.fwd( &outbuf,inbuf); + fft.fwd( outbuf,inbuf); VERIFY(outbuf.size() == (size_t)( (nfft>>1)+1) ); VERIFY( fft_rmse(outbuf,inbuf) < test_precision() );// gross check fft.ClearFlag(fft.HalfSpectrum ); - fft.fwd( &outbuf,inbuf); + fft.fwd( outbuf,inbuf); VERIFY( fft_rmse(outbuf,inbuf) < test_precision() );// gross check ScalarVector buf3; - fft.inv( &buf3 , outbuf); + fft.inv( buf3 , outbuf); VERIFY( dif_rmse(inbuf,buf3) < test_precision() );// gross check // verify that the Unscaled flag takes effect ComplexVector buf4; fft.SetFlag(fft.Unscaled); - fft.inv( &buf4 , outbuf); + fft.inv( buf4 , outbuf); for (int k=0;k() );// gross check // verify that ClearFlag works fft.ClearFlag(fft.Unscaled); - fft.inv( &buf3 , outbuf); + fft.inv( buf3 , outbuf); VERIFY( dif_rmse(inbuf,buf3) < test_precision() );// gross check } @@ -152,25 +152,25 @@ void test_complex_generic(int nfft) ComplexVector buf3; for (int k=0;k() );// gross check - fft.inv( &buf3 , outbuf); + fft.inv( buf3 , outbuf); VERIFY( dif_rmse(inbuf,buf3) < test_precision() );// gross check // verify that the Unscaled flag takes effect ComplexVector buf4; fft.SetFlag(fft.Unscaled); - fft.inv( &buf4 , outbuf); + fft.inv( buf4 , outbuf); for (int k=0;k() );// gross check // verify that ClearFlag works fft.ClearFlag(fft.Unscaled); - fft.inv( &buf3 , outbuf); + fft.inv( buf3 , outbuf); VERIFY( dif_rmse(inbuf,buf3) < test_precision() );// gross check } diff --git a/unsupported/test/FFTW.cpp b/unsupported/test/FFTW.cpp index 47ef5de97..6f1f2ec44 100644 --- a/unsupported/test/FFTW.cpp +++ b/unsupported/test/FFTW.cpp @@ -91,11 +91,11 @@ void test_scalar(int nfft) vector outbuf; for (int k=0;k() );// gross check vector buf3; - fft.inv( &buf3 , outbuf); + fft.inv( buf3 , outbuf); VERIFY( dif_rmse(inbuf,buf3) < test_precision() );// gross check } @@ -111,11 +111,11 @@ void test_complex(int nfft) vector buf3; for (int k=0;k(); - fft.fwd( &outbuf , inbuf); + fft.fwd( outbuf , inbuf); VERIFY( fft_rmse(outbuf,inbuf) < test_precision() );// gross check - fft.inv( &buf3 , outbuf); + fft.inv( buf3 , outbuf); VERIFY( dif_rmse(inbuf,buf3) < test_precision() );// gross check } @@ -132,13 +132,13 @@ void test_complex2d() for (int k=0;k tmpOut; - fft.fwd( &tmpOut,src.col(k) ); + fft.fwd( tmpOut,src.col(k) ); dst2.col(k) = tmpOut; } for (int k=0;k tmpOut; - fft.fwd( &tmpOut, dst2.row(k) ); + fft.fwd( tmpOut, dst2.row(k) ); dst2.row(k) = tmpOut; }