ITK
6.0.0
Insight Toolkit
|
#include <itkFFTWGlobalConfiguration.h>
A class to contain all the global configuration options for FFTW.
A simple global lock is included that must be called before calling FFTW unsafe functions. It also handle cleanly the initialization and cleanup of FFTW.
This implementation was taken from the Insight Journal paper: https://doi.org/10.54294/0iky0u
Definition at line 203 of file itkFFTWGlobalConfiguration.h.
Public Types | |
using | ConstPointer = SmartPointer< const Self > |
using | MutexType = std::mutex |
using | Pointer = SmartPointer< Self > |
using | Self = FFTWGlobalConfiguration |
using | Superclass = Object |
Public Types inherited from itk::Object | |
using | ConstPointer = SmartPointer< const Self > |
using | Pointer = SmartPointer< Self > |
using | Self = Object |
using | Superclass = LightObject |
Public Types inherited from itk::LightObject | |
using | ConstPointer = SmartPointer< const Self > |
using | Pointer = SmartPointer< Self > |
using | Self = LightObject |
Public Member Functions | |
const char * | GetNameOfClass () const override |
Public Member Functions inherited from itk::Object | |
unsigned long | AddObserver (const EventObject &event, Command *cmd) const |
unsigned long | AddObserver (const EventObject &event, std::function< void(const EventObject &)> function) const |
LightObject::Pointer | CreateAnother () const override |
virtual void | DebugOff () const |
virtual void | DebugOn () const |
Command * | GetCommand (unsigned long tag) |
bool | GetDebug () const |
MetaDataDictionary & | GetMetaDataDictionary () |
const MetaDataDictionary & | GetMetaDataDictionary () const |
virtual ModifiedTimeType | GetMTime () const |
const char * | GetNameOfClass () const override |
virtual const TimeStamp & | GetTimeStamp () const |
bool | HasObserver (const EventObject &event) const |
void | InvokeEvent (const EventObject &) |
void | InvokeEvent (const EventObject &) const |
virtual void | Modified () const |
void | Register () const override |
void | RemoveAllObservers () |
void | RemoveObserver (unsigned long tag) const |
void | SetDebug (bool debugFlag) const |
void | SetReferenceCount (int) override |
void | UnRegister () const noexcept override |
void | SetMetaDataDictionary (const MetaDataDictionary &rhs) |
void | SetMetaDataDictionary (MetaDataDictionary &&rrhs) |
virtual void | SetObjectName (std::string _arg) |
virtual const std::string & | GetObjectName () const |
Public Member Functions inherited from itk::LightObject | |
Pointer | Clone () const |
virtual Pointer | CreateAnother () const |
virtual void | Delete () |
virtual const char * | GetNameOfClass () const |
virtual int | GetReferenceCount () const |
void | Print (std::ostream &os, Indent indent=0) const |
virtual void | Register () const |
virtual void | SetReferenceCount (int) |
virtual void | UnRegister () const noexcept |
Static Public Member Functions | |
static std::mutex & | GetLockMutex () |
static int | GetPlanRigor () |
static std::string | GetPlanRigorName (const int value) |
static int | GetPlanRigorValue (const std::string &name) |
static std::string | GetWisdomFileDefaultBaseName () |
static void | SetPlanRigor (const int v) |
static void | SetPlanRigor (const std::string &name) |
static void | SetWisdomFilenameGenerator (WisdomFilenameGeneratorBase *wfg) |
static void | SetNewWisdomAvailable (const bool v) |
static bool | GetNewWisdomAvailable () |
static void | SetReadWisdomCache (const bool v) |
static bool | GetReadWisdomCache () |
static void | SetWriteWisdomCache (const bool v) |
static bool | GetWriteWisdomCache () |
static void | SetWisdomCacheBase (const std::string &v) |
static std::string | GetWisdomCacheBase () |
static bool | ImportWisdomFileDouble (const std::string &fname) |
static bool | ExportWisdomFileDouble (const std::string &fname) |
static bool | ImportWisdomFileFloat (const std::string &fname) |
static bool | ExportWisdomFileFloat (const std::string &fname) |
static bool | ImportDefaultWisdomFileDouble () |
static bool | ExportDefaultWisdomFileDouble () |
static bool | ImportDefaultWisdomFileFloat () |
static bool | ExportDefaultWisdomFileFloat () |
static bool | ImportDefaultWisdomFile () |
static bool | ExportDefaultWisdomFile () |
Static Public Member Functions inherited from itk::Object | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool val) |
Static Public Member Functions inherited from itk::LightObject | |
static void | BreakOnError () |
static Pointer | New () |
Private Member Functions | |
FFTWGlobalConfiguration () | |
itkGetGlobalDeclarationMacro (FFTWGlobalConfigurationGlobals, PimplGlobals) | |
~FFTWGlobalConfiguration () override | |
Static Private Member Functions | |
static Pointer | GetInstance () |
static Pointer | New () |
Private Attributes | |
std::mutex | m_Mutex |
bool | m_NewWisdomAvailable { false } |
int | m_PlanRigor { 0 } |
bool | m_ReadWisdomCache { true } |
std::string | m_WisdomCacheBase |
WisdomFilenameGeneratorBase * | m_WisdomFilenameGenerator |
bool | m_WriteWisdomCache { false } |
Static Private Attributes | |
static FFTWGlobalConfigurationGlobals * | m_PimplGlobals |
Additional Inherited Members | |
Protected Member Functions inherited from itk::Object | |
Object () | |
bool | PrintObservers (std::ostream &os, Indent indent) const |
void | PrintSelf (std::ostream &os, Indent indent) const override |
virtual void | SetTimeStamp (const TimeStamp &timeStamp) |
~Object () override | |
Protected Member Functions inherited from itk::LightObject | |
virtual LightObject::Pointer | InternalClone () const |
LightObject () | |
virtual void | PrintHeader (std::ostream &os, Indent indent) const |
virtual void | PrintSelf (std::ostream &os, Indent indent) const |
virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
virtual | ~LightObject () |
Protected Attributes inherited from itk::LightObject | |
std::atomic< int > | m_ReferenceCount {} |
using itk::FFTWGlobalConfiguration::ConstPointer = SmartPointer<const Self> |
Definition at line 212 of file itkFFTWGlobalConfiguration.h.
using itk::FFTWGlobalConfiguration::MutexType = std::mutex |
Definition at line 213 of file itkFFTWGlobalConfiguration.h.
Definition at line 211 of file itkFFTWGlobalConfiguration.h.
Standard class type aliases.
Definition at line 209 of file itkFFTWGlobalConfiguration.h.
Definition at line 210 of file itkFFTWGlobalConfiguration.h.
|
private |
|
overrideprivate |
|
static |
Convenience functions to Import/Export both double and float default wisdom files
|
static |
Import or export some wisdom for the type double to/from the default file
|
static |
Import or export some wisdom for the type float to/from the default file
|
static |
Import or export some wisdom for the type double to/from a file
|
static |
Import or export some wisdom for the type float to/from a file
|
staticprivate |
Return the singleton instance with no reference counting.
|
static |
Get the mutex that protects calls to FFTW functions.
Referenced by itk::fftw::Proxy< float >::DestroyPlan(), itk::fftw::Proxy< double >::DestroyPlan(), itk::fftw::Proxy< float >::Plan_dft(), itk::fftw::Proxy< double >::Plan_dft(), itk::fftw::ComplexToComplexProxy< float >::Plan_dft_1d(), itk::fftw::ComplexToComplexProxy< double >::Plan_dft_1d(), itk::fftw::ComplexToComplexProxy< float >::Plan_dft_c2r(), itk::fftw::ComplexToComplexProxy< double >::Plan_dft_c2r(), itk::fftw::Proxy< float >::Plan_dft_c2r(), itk::fftw::Proxy< double >::Plan_dft_c2r(), itk::fftw::ComplexToComplexProxy< float >::Plan_dft_c2r_1d(), itk::fftw::ComplexToComplexProxy< double >::Plan_dft_c2r_1d(), itk::fftw::ComplexToComplexProxy< float >::Plan_dft_c2r_2d(), itk::fftw::ComplexToComplexProxy< double >::Plan_dft_c2r_2d(), itk::fftw::ComplexToComplexProxy< float >::Plan_dft_c2r_3d(), itk::fftw::ComplexToComplexProxy< double >::Plan_dft_c2r_3d(), itk::fftw::ComplexToComplexProxy< float >::Plan_dft_r2c(), itk::fftw::ComplexToComplexProxy< double >::Plan_dft_r2c(), itk::fftw::Proxy< float >::Plan_dft_r2c(), itk::fftw::Proxy< double >::Plan_dft_r2c(), itk::fftw::ComplexToComplexProxy< float >::Plan_dft_r2c_1d(), itk::fftw::ComplexToComplexProxy< double >::Plan_dft_r2c_1d(), itk::fftw::ComplexToComplexProxy< float >::Plan_dft_r2c_2d(), itk::fftw::ComplexToComplexProxy< double >::Plan_dft_r2c_2d(), itk::fftw::ComplexToComplexProxy< float >::Plan_dft_r2c_3d(), and itk::fftw::ComplexToComplexProxy< double >::Plan_dft_r2c_3d().
|
overridevirtual |
Reimplemented from itk::Object.
|
static |
Set/Get whether a new wisdom is available compared to the initial state. If a new wisdom is available, the wisdoms may be written to the cache file
|
static |
|
static |
Translate plan rigor value to name. An exception is sent if the value is not valid.
Referenced by itk::FFTWComplexToComplexFFTImageFilter< TInputImage, TOutputImage >::SetPlanRigor(), itk::FFTWForwardFFTImageFilter< TInputImage, TOutputImage >::SetPlanRigor(), itk::FFTWHalfHermitianToRealInverseFFTImageFilter< TInputImage, TOutputImage >::SetPlanRigor(), itk::FFTWInverseFFTImageFilter< TInputImage, TOutputImage >::SetPlanRigor(), and itk::FFTWRealToHalfHermitianForwardFFTImageFilter< TInputImage, TOutputImage >::SetPlanRigor().
|
static |
Translate plan rigor name to value. An exception is sent if the name is not valid.
Referenced by itk::FFTWComplexToComplexFFTImageFilter< TInputImage, TOutputImage >::SetPlanRigor(), itk::FFTWHalfHermitianToRealInverseFFTImageFilter< TInputImage, TOutputImage >::SetPlanRigor(), and itk::FFTWInverseFFTImageFilter< TInputImage, TOutputImage >::SetPlanRigor().
|
static |
Set/Get the behavior of wisdom file caching.
If the environmental variable "ITK_FFTW_WRITE_WISDOM_CACHE", is set, then the environmental setting overrides default settings. If true, will create a wisdom file in the location
|
static |
Define the directory where the wisdom cache will be placed. The environmental variable ITK_FFTW_WISDOM_CACHE_BASE will override the default behavior.
|
static |
|
static |
Set/Get the behavior of wisdom file caching.
If the environmental variable "ITK_FFTW_WRITE_WISDOM_CACHE", is set, then the environmental setting overrides default settings. If true, will create a wisdom file in the location
|
static |
Convenience functions to Import/Export both double and float default wisdom files
|
static |
Import or export some wisdom for the type double to/from the default file
|
static |
Import or export some wisdom for the type float to/from the default file
|
static |
Import or export some wisdom for the type double to/from a file
|
static |
Import or export some wisdom for the type float to/from a file
|
private |
|
staticprivate |
This is a singleton pattern New. There will only be ONE reference to a FFTWGlobalConfiguration object per process. The single instance will be unreferenced when the program exits.
|
static |
Set/Get whether a new wisdom is available compared to the initial state. If a new wisdom is available, the wisdoms may be written to the cache file
Referenced by itk::fftw::Proxy< float >::Plan_dft(), itk::fftw::Proxy< double >::Plan_dft(), itk::fftw::Proxy< float >::Plan_dft_c2r(), itk::fftw::Proxy< double >::Plan_dft_c2r(), itk::fftw::Proxy< float >::Plan_dft_r2c(), and itk::fftw::Proxy< double >::Plan_dft_r2c().
|
static |
Set the behavior of wisdom plan creation.
If the environmental variable "ITK_FFTW_PLAN_RIGOR", is set, then the environmental setting overrides default settings.
v | One of the FFTW planner rigor flags FFTW_ESTIMATE, FFTW_MEASURE, FFTW_PATIENT, FFTW_EXHAUSTIVE |
|
static |
|
static |
Set/Get the behavior of wisdom file caching.
If the environmental variable "ITK_FFTW_WRITE_WISDOM_CACHE", is set, then the environmental setting overrides default settings. If true, will create a wisdom file in the location
|
static |
Define the directory where the wisdom cache will be placed. The environmental variable ITK_FFTW_WISDOM_CACHE_BASE will override the default behavior.
|
static |
allows application developers to create arbitrary rules for auto-generating cache file names. A default cache strategy is set to generate separate cache files for each unique operating system and hardware permutation. Alternate representative strategies are available to meet common use cases.
|
static |
Set/Get the behavior of wisdom file caching.
If the environmental variable "ITK_FFTW_WRITE_WISDOM_CACHE", is set, then the environmental setting overrides default settings. If true, will create a wisdom file in the location
|
private |
Definition at line 379 of file itkFFTWGlobalConfiguration.h.
|
private |
Definition at line 380 of file itkFFTWGlobalConfiguration.h.
|
staticprivate |
Definition at line 377 of file itkFFTWGlobalConfiguration.h.
|
private |
Definition at line 381 of file itkFFTWGlobalConfiguration.h.
|
private |
Definition at line 383 of file itkFFTWGlobalConfiguration.h.
|
private |
Definition at line 384 of file itkFFTWGlobalConfiguration.h.
|
private |
Definition at line 387 of file itkFFTWGlobalConfiguration.h.
|
private |
Definition at line 382 of file itkFFTWGlobalConfiguration.h.