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

#include "oct-fftw.h"

Collaboration diagram for octave::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 d [2]
 
octave_idx_type h [2]
 
bool inplace [2]
 
FftwMethod meth
 
dim_vector n [2]
 
int nthreads
 
void * plan [2]
 
int r [2]
 
octave_idx_type rd
 
octave_idx_type rh
 
dim_vector rn
 
void * rplan
 
int rr
 
octave_idx_type rs
 
bool rsimd_align
 
octave_idx_type s [2]
 
bool simd_align [2]
 

Static Private Attributes

static fftw_plannerinstance = 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]

octave::fftw_planner::fftw_planner ( void  )
protected

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

References d, h, inplace, n, nthreads, OCTAVE_NPROC_CURRENT_OVERRIDABLE, octave_num_processors_wrapper(), plan, r, s, and simd_align.

Referenced by instance_ok().

◆ fftw_planner() [2/2]

octave::fftw_planner::fftw_planner ( const fftw_planner )
delete

◆ ~fftw_planner()

octave::fftw_planner::~fftw_planner ( void  )

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

References plan, and rplan.

Member Function Documentation

◆ cleanup_instance()

static void octave::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* octave::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* octave::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

◆ do_create_plan() [1/2]

void * octave::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 * octave::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 octave::fftw_planner::do_method ( FftwMethod  _meth)
private

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

References ESTIMATE, EXHAUSTIVE, HYBRID, MEASURE, meth, PATIENT, plan, rplan, and UNKNOWN.

◆ do_method() [2/2]

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

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

References meth.

◆ instance_ok()

bool octave::fftw_planner::instance_ok ( void  )
static

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

References fftw_planner(), singleton_cleanup_list::add(), cleanup_instance(), instance, and retval.

Referenced by threads().

◆ method() [1/2]

static FftwMethod octave::fftw_planner::method ( FftwMethod  _meth)
inlinestatic

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

◆ method() [2/2]

static FftwMethod octave::fftw_planner::method ( void  )
inlinestatic

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

Referenced by Ffftw().

◆ operator=()

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

◆ threads() [1/2]

void octave::fftw_planner::threads ( int  nt)
static

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

References instance, instance_ok(), nthreads, plan, rplan, and threads().

◆ threads() [2/2]

static int octave::fftw_planner::threads ( void  )
inlinestatic

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

Referenced by Ffftw(), and threads().

Member Data Documentation

◆ d

octave_idx_type octave::fftw_planner::d[2]
private

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

Referenced by fftw_planner(), and do_create_plan().

◆ h

octave_idx_type octave::fftw_planner::h[2]
private

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

Referenced by fftw_planner(), and do_create_plan().

◆ inplace

bool octave::fftw_planner::inplace[2]
private

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

Referenced by fftw_planner(), and do_create_plan().

◆ instance

fftw_planner * octave::fftw_planner::instance = nullptr
staticprivate

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

Referenced by instance_ok(), and threads().

◆ meth

FftwMethod octave::fftw_planner::meth
private

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

Referenced by do_create_plan(), and do_method().

◆ n

dim_vector octave::fftw_planner::n[2]
private

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

Referenced by fftw_planner(), and do_create_plan().

◆ nthreads

int octave::fftw_planner::nthreads
private

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

Referenced by fftw_planner(), and threads().

◆ plan

void* octave::fftw_planner::plan[2]
private

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

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

◆ r

int octave::fftw_planner::r[2]
private

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

Referenced by fftw_planner(), and do_create_plan().

◆ rd

octave_idx_type octave::fftw_planner::rd
private

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

Referenced by do_create_plan().

◆ rh

octave_idx_type octave::fftw_planner::rh
private

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

Referenced by do_create_plan().

◆ rn

dim_vector octave::fftw_planner::rn
private

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

Referenced by do_create_plan().

◆ rplan

void* octave::fftw_planner::rplan
private

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

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

◆ rr

int octave::fftw_planner::rr
private

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

Referenced by do_create_plan().

◆ rs

octave_idx_type octave::fftw_planner::rs
private

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

Referenced by do_create_plan().

◆ rsimd_align

bool octave::fftw_planner::rsimd_align
private

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

Referenced by do_create_plan().

◆ s

octave_idx_type octave::fftw_planner::s[2]
private

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

Referenced by fftw_planner(), and do_create_plan().

◆ simd_align

bool octave::fftw_planner::simd_align[2]
private

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

Referenced by fftw_planner(), and do_create_plan().


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