26#if ! defined (octave_oct_fftw_h)
27#define octave_oct_fftw_h 1
29#include "octave-config.h"
62 static bool instance_ok ();
71 ? s_instance->do_create_plan (dir, rank, dims, howmany, stride,
82 ? s_instance->do_create_plan (rank, dims, howmany, stride, dist,
91 return instance_ok () ? s_instance->do_method () : dummy;
98 return instance_ok () ? s_instance->do_method (meth) : dummy;
101 static void threads (
int nt);
105 return instance_ok () ? s_instance->m_nthreads : 0;
112 static void cleanup_instance ()
113 {
delete s_instance; s_instance =
nullptr; }
116 do_create_plan (
int dir,
const int rank,
const dim_vector& dims,
122 do_create_plan (
const int rank,
const dim_vector& dims,
126 FftwMethod do_method ();
128 FftwMethod do_method (FftwMethod meth);
152 bool m_simd_align[2];
202 static bool instance_ok ();
210 return instance_ok ()
211 ? s_instance->do_create_plan (dir, rank, dims, howmany, stride,
221 return instance_ok ()
222 ? s_instance->do_create_plan (rank, dims, howmany, stride, dist,
231 return instance_ok () ? s_instance->do_method () : dummy;
238 return instance_ok () ? s_instance->do_method (meth) : dummy;
241 static void threads (
int nt);
245 return instance_ok () ? s_instance->m_nthreads : 0;
252 static void cleanup_instance ()
253 {
delete s_instance; s_instance =
nullptr; }
256 do_create_plan (
int dir,
const int rank,
const dim_vector& dims,
262 do_create_plan (
const int rank,
const dim_vector& dims,
266 FftwMethod do_method ();
268 FftwMethod do_method (FftwMethod meth);
292 bool m_simd_align[2];
324 OCTAVE_DISABLE_CONSTRUCT_COPY_MOVE_DELETE (
fftw)
326 static int fft (
const double *in,
Complex *out, std::size_t npts,
329 static int fft (
const Complex *in,
Complex *out, std::size_t npts,
332 static int ifft (
const Complex *in,
Complex *out, std::size_t npts,
342 static int fft (
const float *in,
FloatComplex *out, std::size_t npts,
352 static int fftNd (
const float *,
FloatComplex *,
const int,
363OCTAVE_END_NAMESPACE(octave)
Vector representing the dimensions (size) of an Array.
static FftwMethod method(FftwMethod meth)
static FftwMethod method()
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 double *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 FftwMethod method(FftwMethod meth)
static FftwMethod method()
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)
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()