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

#include "oct-fftw.h"

Collaboration diagram for octave::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 (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 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 bool instance_ok (void)
 
static FftwMethod method (void)
 
static FftwMethod method (FftwMethod _meth)
 
static void threads (int nt)
 
static int threads (void)
 

Protected Member Functions

 float_fftw_planner (void)
 

Private Member Functions

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)
 
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)
 
FftwMethod do_method (void)
 
FftwMethod do_method (FftwMethod _meth)
 

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 float_fftw_plannerinstance = nullptr
 

Detailed Description

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

Member Enumeration Documentation

◆ FftwMethod

Enumerator
UNKNOWN 
ESTIMATE 
MEASURE 
PATIENT 
EXHAUSTIVE 
HYBRID 

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

Constructor & Destructor Documentation

◆ float_fftw_planner() [1/2]

octave::float_fftw_planner::float_fftw_planner ( void  )
protected

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

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

Referenced by instance_ok().

◆ float_fftw_planner() [2/2]

octave::float_fftw_planner::float_fftw_planner ( const float_fftw_planner )
delete

◆ ~float_fftw_planner()

octave::float_fftw_planner::~float_fftw_planner ( void  )

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

References plan, and rplan.

Member Function Documentation

◆ cleanup_instance()

static void octave::float_fftw_planner::cleanup_instance ( void  )
inlinestaticprivate

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

Referenced by instance_ok().

◆ create_plan() [1/2]

static void* octave::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 214 of file oct-fftw.h.

References dims.

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

◆ create_plan() [2/2]

static void* octave::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 226 of file oct-fftw.h.

References dims.

◆ do_create_plan() [1/2]

void * octave::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_create_plan() [2/2]

void * octave::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_method() [1/2]

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

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

References meth.

◆ do_method() [2/2]

float_fftw_planner::FftwMethod octave::float_fftw_planner::do_method ( FftwMethod  _meth)
private

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

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

◆ instance_ok()

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

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

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

Referenced by threads().

◆ method() [1/2]

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

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

Referenced by Gfftw().

◆ method() [2/2]

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

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

◆ operator=()

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

◆ threads() [1/2]

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

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

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

◆ threads() [2/2]

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

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

Referenced by Gfftw(), and threads().

Member Data Documentation

◆ d

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

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

Referenced by do_create_plan(), and float_fftw_planner().

◆ h

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

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

Referenced by do_create_plan(), and float_fftw_planner().

◆ inplace

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

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

Referenced by do_create_plan(), and float_fftw_planner().

◆ instance

float_fftw_planner * octave::float_fftw_planner::instance = nullptr
staticprivate

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

Referenced by instance_ok(), and threads().

◆ meth

FftwMethod octave::float_fftw_planner::meth
private

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

Referenced by do_create_plan(), and do_method().

◆ n

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

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

Referenced by do_create_plan(), and float_fftw_planner().

◆ nthreads

int octave::float_fftw_planner::nthreads
private

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

Referenced by float_fftw_planner(), and threads().

◆ plan

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

◆ r

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

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

Referenced by do_create_plan(), and float_fftw_planner().

◆ rd

octave_idx_type octave::float_fftw_planner::rd
private

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

Referenced by do_create_plan().

◆ rh

octave_idx_type octave::float_fftw_planner::rh
private

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

Referenced by do_create_plan().

◆ rn

dim_vector octave::float_fftw_planner::rn
private

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

Referenced by do_create_plan().

◆ rplan

void* octave::float_fftw_planner::rplan
private

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

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

◆ rr

int octave::float_fftw_planner::rr
private

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

Referenced by do_create_plan().

◆ rs

octave_idx_type octave::float_fftw_planner::rs
private

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

Referenced by do_create_plan().

◆ rsimd_align

bool octave::float_fftw_planner::rsimd_align
private

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

Referenced by do_create_plan().

◆ s

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

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

Referenced by do_create_plan(), and float_fftw_planner().

◆ simd_align

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

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

Referenced by do_create_plan(), and float_fftw_planner().


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