18#ifndef itkFFTWGlobalConfiguration_h
19#define itkFFTWGlobalConfiguration_h
24#if defined(ITK_USE_FFTWF) || defined(ITK_USE_FFTWD)
26# include "ITKFFTExport.h"
29# include "itksys/SystemTools.hxx"
30# include "itksys/SystemInformation.hxx"
31# if defined(ITK_USE_CUFFTW)
39struct FFTWGlobalConfigurationGlobals;
70struct FFTWGlobalConfigurationGlobals;
73# define FFTWPathSep "\\"
75# define FFTWPathSep "/"
100 std::string m_WisdomFilename{};
172 bool m_UseOSName{
true };
173 bool m_UseOSRelease{
false };
174 bool m_UseOSVersion{
false };
175 bool m_UseOSPlatform{
true };
176 bool m_UseOSBitSize{
true };
177 bool m_UseNumberOfProcessors{
true };
178 bool m_UseVendorString{
true };
179 bool m_UseVendorID{
false };
180 bool m_UseTypeID{
true };
181 bool m_UseFamilyID{
true };
182 bool m_UseModelID{
true };
183 bool m_UseSteppingCode{
true };
380 bool m_NewWisdomAvailable{
false };
381 int m_PlanRigor{ 0 };
382 bool m_WriteWisdomCache{
false };
383 bool m_ReadWisdomCache{
true };
static bool ExportWisdomFileDouble(const std::string &fname)
static bool ExportDefaultWisdomFileDouble()
FFTWGlobalConfiguration()
static void SetPlanRigor(const int v)
Set the behavior of wisdom plan creation.
static bool ExportWisdomFileFloat(const std::string &fname)
static int GetPlanRigorValue(const std::string &name)
static FFTWGlobalConfigurationGlobals * m_PimplGlobals
static bool ImportDefaultWisdomFile()
static bool GetReadWisdomCache()
Set/Get the behavior of wisdom file caching.
std::string m_WisdomCacheBase
static std::string GetWisdomCacheBase()
Define the directory where the wisdom cache will be placed. The environmental variable ITK_FFTW_WISDO...
static bool ImportDefaultWisdomFileFloat()
static std::string GetWisdomFileDefaultBaseName()
static bool ImportWisdomFileDouble(const std::string &fname)
static void SetWriteWisdomCache(const bool v)
Set/Get the behavior of wisdom file caching.
~FFTWGlobalConfiguration() override
itkGetGlobalDeclarationMacro(FFTWGlobalConfigurationGlobals, PimplGlobals)
static std::string GetPlanRigorName(const int value)
static bool GetWriteWisdomCache()
Set/Get the behavior of wisdom file caching.
static Pointer GetInstance()
static bool ImportDefaultWisdomFileDouble()
static std::mutex & GetLockMutex()
static void SetNewWisdomAvailable(const bool v)
static void SetReadWisdomCache(const bool v)
Set/Get the behavior of wisdom file caching.
static int GetPlanRigor()
static bool ExportDefaultWisdomFileFloat()
static bool ImportWisdomFileFloat(const std::string &fname)
static bool ExportDefaultWisdomFile()
static void SetPlanRigor(const std::string &name)
static void SetWisdomCacheBase(const std::string &v)
Define the directory where the wisdom cache will be placed. The environmental variable ITK_FFTW_WISDO...
WisdomFilenameGeneratorBase * m_WisdomFilenameGenerator
static bool GetNewWisdomAvailable()
static void SetWisdomFilenameGenerator(WisdomFilenameGeneratorBase *wfg)
allows application developers to create arbitrary rules for auto-generating cache file names....
void SetUseFamilyID(const bool flag)
void SetUseOSVersion(const bool flag)
bool GetUseOSRelease() const
void SetUseTypeID(const bool flag)
bool GetUseOSBitSize() const
void SetUseVendorString(const bool flag)
void SetUseModelID(const bool flag)
void SetUseSteppingCode(const bool flag)
void SetUseOSBitSize(const bool flag)
std::string GenerateWisdomFilename(const std::string &baseCacheDirectory) const override
void SetUseOSRelease(const bool flag)
bool GetUseOSPlatform() const
bool GetUseVendorString() const
bool GetUseFamilyID() const
bool GetUseModelID() const
bool GetUseOSVersion() const
bool GetUseSteppingCode() const
bool GetUseTypeID() const
HardwareWisdomFilenameGenerator()
void SetUseOSPlatform(const bool flag)
void SetUseNumberOfProcessors(const bool flag)
bool GetUseOSName() const
bool GetUseNumberOfProcessors() const
void SetUseOSName(const bool flag)
std::string GenerateWisdomFilename(const std::string &baseCacheDirectory) const override
Light weight base class for most itk classes.
ManualWisdomFilenameGenerator(std::string wfn)
std::string GenerateWisdomFilename(const std::string &baseCacheDirectory) const override
void SetWisdomFilename(const std::string &wfn)
Base class for most ITK classes.
std::string GenerateWisdomFilename(const std::string &baseCacheDirectory) const override
virtual ~WisdomFilenameGeneratorBase()
virtual std::string GenerateWisdomFilename(const std::string &baseCacheDirectory) const =0
WisdomFilenameGeneratorBase()
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....