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

#include "oct-fftw.h"

Collaboration diagram for float_fftw_planner:

Public Types

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

Public Member Functions

 float_fftw_planner (const float_fftw_planner &)=delete
 
 ~float_fftw_planner (void)
 
float_fftw_planneroperator= (const float_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 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 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

 float_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 float *in, FloatComplex *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 FloatComplex *in, FloatComplex *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 float_fftw_planners_instance = nullptr
 

Detailed Description

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

Member Enumeration Documentation

◆ FftwMethod

Enumerator
UNKNOWN 
ESTIMATE 
MEASURE 
PATIENT 
EXHAUSTIVE 
HYBRID 

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

Constructor & Destructor Documentation

◆ float_fftw_planner() [1/2]

float_fftw_planner::float_fftw_planner ( void  )
protected

◆ float_fftw_planner() [2/2]

float_fftw_planner::float_fftw_planner ( const float_fftw_planner )
delete

◆ ~float_fftw_planner()

float_fftw_planner::~float_fftw_planner ( void  )

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

References m_plan, and m_rplan.

Member Function Documentation

◆ cleanup_instance()

static void float_fftw_planner::cleanup_instance ( void  )
inlinestaticprivate

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

Referenced by instance_ok().

◆ create_plan() [1/2]

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

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

◆ create_plan() [2/2]

static void* float_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 FloatComplex in,
FloatComplex out 
)
inlinestatic

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

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

◆ do_create_plan() [1/2]

void * float_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 float *  in,
FloatComplex out 
)
private

◆ do_create_plan() [2/2]

void * float_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 FloatComplex in,
FloatComplex out 
)
private

◆ do_method() [1/2]

float_fftw_planner::FftwMethod float_fftw_planner::do_method ( FftwMethod  meth)
private

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

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

◆ do_method() [2/2]

float_fftw_planner::FftwMethod float_fftw_planner::do_method ( void  )
private

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

References m_meth.

◆ instance_ok()

bool float_fftw_planner::instance_ok ( void  )
static

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

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

Referenced by threads().

◆ method() [1/2]

static FftwMethod float_fftw_planner::method ( FftwMethod  meth)
inlinestatic

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

◆ method() [2/2]

static FftwMethod float_fftw_planner::method ( void  )
inlinestatic

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

Referenced by Ffftw().

◆ operator=()

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

◆ threads() [1/2]

void float_fftw_planner::threads ( int  nt)
static

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

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

◆ threads() [2/2]

static int float_fftw_planner::threads ( void  )
inlinestatic

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

Referenced by Ffftw(), and threads().

Member Data Documentation

◆ m_d

octave_idx_type float_fftw_planner::m_d[2]
private

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

Referenced by float_fftw_planner(), and do_create_plan().

◆ m_h

octave_idx_type float_fftw_planner::m_h[2]
private

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

Referenced by float_fftw_planner(), and do_create_plan().

◆ m_inplace

bool float_fftw_planner::m_inplace[2]
private

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

Referenced by float_fftw_planner(), and do_create_plan().

◆ m_meth

FftwMethod float_fftw_planner::m_meth
private

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

Referenced by do_create_plan(), and do_method().

◆ m_n

dim_vector float_fftw_planner::m_n[2]
private

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

Referenced by float_fftw_planner(), and do_create_plan().

◆ m_nthreads

int float_fftw_planner::m_nthreads
private

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

Referenced by float_fftw_planner(), and threads().

◆ m_plan

void* float_fftw_planner::m_plan[2]
private

◆ m_r

int float_fftw_planner::m_r[2]
private

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

Referenced by float_fftw_planner(), and do_create_plan().

◆ m_rd

octave_idx_type float_fftw_planner::m_rd
private

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

Referenced by do_create_plan().

◆ m_rh

octave_idx_type float_fftw_planner::m_rh
private

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

Referenced by do_create_plan().

◆ m_rn

dim_vector float_fftw_planner::m_rn
private

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

Referenced by do_create_plan().

◆ m_rplan

void* float_fftw_planner::m_rplan
private

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

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

◆ m_rr

int float_fftw_planner::m_rr
private

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

Referenced by do_create_plan().

◆ m_rs

octave_idx_type float_fftw_planner::m_rs
private

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

Referenced by do_create_plan().

◆ m_rsimd_align

bool float_fftw_planner::m_rsimd_align
private

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

Referenced by do_create_plan().

◆ m_s

octave_idx_type float_fftw_planner::m_s[2]
private

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

Referenced by float_fftw_planner(), and do_create_plan().

◆ m_simd_align

bool float_fftw_planner::m_simd_align[2]
private

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

Referenced by float_fftw_planner(), and do_create_plan().

◆ s_instance

float_fftw_planner * float_fftw_planner::s_instance = nullptr
staticprivate

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

Referenced by instance_ok(), and threads().


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