26 #if ! defined (octave_oct_fftw_h)
27 #define octave_oct_fftw_h 1
29 #include "octave-config.h"
64 static bool instance_ok ();
73 ? s_instance->do_create_plan (dir, rank, dims, howmany, stride,
84 ? s_instance->do_create_plan (rank, dims, howmany, stride, dist,
93 return instance_ok () ? s_instance->do_method () : dummy;
100 return instance_ok () ? s_instance->do_method (meth) : dummy;
103 static void threads (
int nt);
107 return instance_ok () ? s_instance->m_nthreads : 0;
114 static void cleanup_instance ()
115 {
delete s_instance; s_instance =
nullptr; }
118 do_create_plan (
int dir,
const int rank,
const dim_vector& dims,
124 do_create_plan (
const int rank,
const dim_vector& dims,
128 FftwMethod do_method ();
130 FftwMethod do_method (FftwMethod meth);
154 bool m_simd_align[2];
206 static bool instance_ok ();
214 return instance_ok ()
215 ? s_instance->do_create_plan (dir, rank, dims, howmany, stride,
225 return instance_ok ()
226 ? s_instance->do_create_plan (rank, dims, howmany, stride, dist,
235 return instance_ok () ? s_instance->do_method () : dummy;
242 return instance_ok () ? s_instance->do_method (meth) : dummy;
245 static void threads (
int nt);
249 return instance_ok () ? s_instance->m_nthreads : 0;
256 static void cleanup_instance ()
257 {
delete s_instance; s_instance =
nullptr; }
260 do_create_plan (
int dir,
const int rank,
const dim_vector& dims,
266 do_create_plan (
const int rank,
const dim_vector& dims,
270 FftwMethod do_method ();
272 FftwMethod do_method (FftwMethod meth);
296 bool m_simd_align[2];
330 OCTAVE_DISABLE_CONSTRUCT_COPY_MOVE_DELETE (
fftw)
332 static int fft (
const double *in,
Complex *out, std::size_t npts,
335 static int fft (
const Complex *in,
Complex *out, std::size_t npts,
338 static int ifft (
const Complex *in,
Complex *out, std::size_t npts,
348 static int fft (
const float *in,
FloatComplex *out, std::size_t npts,
358 static int fftNd (
const float *,
FloatComplex *,
const int,
369 OCTAVE_END_NAMESPACE(
octave)
Vector representing the dimensions (size) of an Array.
static FftwMethod method(FftwMethod meth)
static FftwMethod method()
static void * create_plan(const int rank, const dim_vector &dims, octave_idx_type howmany, octave_idx_type stride, octave_idx_type dist, const double *in, Complex *out)
static void * create_plan(int dir, const int rank, const dim_vector &dims, octave_idx_type howmany, octave_idx_type stride, octave_idx_type dist, const Complex *in, Complex *out)
static void * create_plan(const int rank, const dim_vector &dims, octave_idx_type howmany, octave_idx_type stride, octave_idx_type dist, const float *in, FloatComplex *out)
static void * create_plan(int dir, const int rank, const dim_vector &dims, octave_idx_type howmany, octave_idx_type stride, octave_idx_type dist, const FloatComplex *in, FloatComplex *out)
static FftwMethod method(FftwMethod meth)
static FftwMethod method()
OCTAVE_BEGIN_NAMESPACE(octave) static octave_value daspk_fcn
std::complex< double > Complex
std::complex< float > FloatComplex
std::string fftwf_version()
std::string fftw_version()