GNU Octave  8.1.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
fftw_planner Class Reference

#include "oct-fftw.h"

Collaboration diagram for fftw_planner:

Public Types

enum  FftwMethod {
  UNKNOWN = -1 , ESTIMATE , MEASURE , PATIENT ,
  EXHAUSTIVE , HYBRID
}
 

Public Member Functions

 fftw_planner (const fftw_planner &)=delete
 
 ~fftw_planner (void)
 
fftw_planneroperator= (const fftw_planner &)=delete
 

Static Public Member Functions

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 bool instance_ok (void)
 
static FftwMethod method (FftwMethod meth)
 
static FftwMethod method (void)
 
static void threads (int nt)
 
static int threads (void)
 

Protected Member Functions

 fftw_planner (void)
 

Private Member Functions

void * do_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)
 
void * do_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)
 
FftwMethod do_method (FftwMethod meth)
 
FftwMethod do_method (void)
 

Static Private Member Functions

static void cleanup_instance (void)
 

Private Attributes

octave_idx_type m_d [2]
 
octave_idx_type m_h [2]
 
bool m_inplace [2]
 
FftwMethod m_meth
 
dim_vector m_n [2]
 
int m_nthreads
 
void * m_plan [2]
 
int m_r [2]
 
octave_idx_type m_rd
 
octave_idx_type m_rh
 
dim_vector m_rn
 
void * m_rplan
 
int m_rr
 
octave_idx_type m_rs
 
bool m_rsimd_align
 
octave_idx_type m_s [2]
 
bool m_simd_align [2]
 

Static Private Attributes

static fftw_planners_instance = nullptr
 

Detailed Description

Definition at line 40 of file oct-fftw.h.

Member Enumeration Documentation

◆ FftwMethod

Enumerator
UNKNOWN 
ESTIMATE 
MEASURE 
PATIENT 
EXHAUSTIVE 
HYBRID 

Definition at line 58 of file oct-fftw.h.

Constructor & Destructor Documentation

◆ fftw_planner() [1/2]

fftw_planner::fftw_planner ( void  )
protected

◆ fftw_planner() [2/2]

fftw_planner::fftw_planner ( const fftw_planner )
delete

◆ ~fftw_planner()

fftw_planner::~fftw_planner ( void  )

Definition at line 100 of file oct-fftw.cc.

References m_plan, and m_rplan.

Member Function Documentation

◆ cleanup_instance()

static void fftw_planner::cleanup_instance ( void  )
inlinestaticprivate

Definition at line 118 of file oct-fftw.h.

Referenced by instance_ok().

◆ create_plan() [1/2]

static void* fftw_planner::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 
)
inlinestatic

Definition at line 83 of file oct-fftw.h.

◆ create_plan() [2/2]

static void* fftw_planner::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 
)
inlinestatic

Definition at line 71 of file oct-fftw.h.

Referenced by fftw::fft(), fftw::fftNd(), fftw::ifft(), and fftw::ifftNd().

◆ do_create_plan() [1/2]

void * fftw_planner::do_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 
)
private

◆ do_create_plan() [2/2]

void * fftw_planner::do_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 
)
private

◆ do_method() [1/2]

fftw_planner::FftwMethod fftw_planner::do_method ( FftwMethod  meth)
private

Definition at line 404 of file oct-fftw.cc.

References ESTIMATE, EXHAUSTIVE, HYBRID, m_meth, m_plan, m_rplan, MEASURE, PATIENT, and UNKNOWN.

◆ do_method() [2/2]

fftw_planner::FftwMethod fftw_planner::do_method ( void  )
private

Definition at line 398 of file oct-fftw.cc.

References m_meth.

◆ instance_ok()

bool fftw_planner::instance_ok ( void  )
static

Definition at line 118 of file oct-fftw.cc.

References fftw_planner(), singleton_cleanup_list::add(), cleanup_instance(), and s_instance.

Referenced by threads().

◆ method() [1/2]

static FftwMethod fftw_planner::method ( FftwMethod  meth)
inlinestatic

Definition at line 100 of file oct-fftw.h.

◆ method() [2/2]

static FftwMethod fftw_planner::method ( void  )
inlinestatic

Definition at line 93 of file oct-fftw.h.

Referenced by Ffftw().

◆ operator=()

fftw_planner& fftw_planner::operator= ( const fftw_planner )
delete

◆ threads() [1/2]

void fftw_planner::threads ( int  nt)
static

Definition at line 132 of file oct-fftw.cc.

References instance_ok(), m_nthreads, m_plan, m_rplan, s_instance, and threads().

◆ threads() [2/2]

static int fftw_planner::threads ( void  )
inlinestatic

Definition at line 109 of file oct-fftw.h.

Referenced by Ffftw(), and threads().

Member Data Documentation

◆ m_d

octave_idx_type fftw_planner::m_d[2]
private

Definition at line 144 of file oct-fftw.h.

Referenced by fftw_planner(), and do_create_plan().

◆ m_h

octave_idx_type fftw_planner::m_h[2]
private

Definition at line 153 of file oct-fftw.h.

Referenced by fftw_planner(), and do_create_plan().

◆ m_inplace

bool fftw_planner::m_inplace[2]
private

Definition at line 159 of file oct-fftw.h.

Referenced by fftw_planner(), and do_create_plan().

◆ m_meth

FftwMethod fftw_planner::m_meth
private

Definition at line 136 of file oct-fftw.h.

Referenced by do_create_plan(), and do_method().

◆ m_n

dim_vector fftw_planner::m_n[2]
private

Definition at line 156 of file oct-fftw.h.

Referenced by fftw_planner(), and do_create_plan().

◆ m_nthreads

int fftw_planner::m_nthreads
private

Definition at line 183 of file oct-fftw.h.

Referenced by fftw_planner(), and threads().

◆ m_plan

void* fftw_planner::m_plan[2]
private

Definition at line 141 of file oct-fftw.h.

Referenced by fftw_planner(), ~fftw_planner(), do_create_plan(), do_method(), and threads().

◆ m_r

int fftw_planner::m_r[2]
private

Definition at line 150 of file oct-fftw.h.

Referenced by fftw_planner(), and do_create_plan().

◆ m_rd

octave_idx_type fftw_planner::m_rd
private

Definition at line 165 of file oct-fftw.h.

Referenced by do_create_plan().

◆ m_rh

octave_idx_type fftw_planner::m_rh
private

Definition at line 174 of file oct-fftw.h.

Referenced by do_create_plan().

◆ m_rn

dim_vector fftw_planner::m_rn
private

Definition at line 177 of file oct-fftw.h.

Referenced by do_create_plan().

◆ m_rplan

void* fftw_planner::m_rplan
private

Definition at line 162 of file oct-fftw.h.

Referenced by ~fftw_planner(), do_create_plan(), do_method(), and threads().

◆ m_rr

int fftw_planner::m_rr
private

Definition at line 171 of file oct-fftw.h.

Referenced by do_create_plan().

◆ m_rs

octave_idx_type fftw_planner::m_rs
private

Definition at line 168 of file oct-fftw.h.

Referenced by do_create_plan().

◆ m_rsimd_align

bool fftw_planner::m_rsimd_align
private

Definition at line 179 of file oct-fftw.h.

Referenced by do_create_plan().

◆ m_s

octave_idx_type fftw_planner::m_s[2]
private

Definition at line 147 of file oct-fftw.h.

Referenced by fftw_planner(), and do_create_plan().

◆ m_simd_align

bool fftw_planner::m_simd_align[2]
private

Definition at line 158 of file oct-fftw.h.

Referenced by fftw_planner(), and do_create_plan().

◆ s_instance

fftw_planner * fftw_planner::s_instance = nullptr
staticprivate

Definition at line 116 of file oct-fftw.h.

Referenced by instance_ok(), and threads().


The documentation for this class was generated from the following files: