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"
64 #define FFTWPathSep "\\"
66 #define FFTWPathSep "/"
73 virtual std::string GenerateWisdomFilename(
const std::string &baseCacheDirectory)
const = 0;
84 void SetWisdomFilename(
const std::string &wfn);
85 virtual std::string GenerateWisdomFilename(
const std::string &baseCacheDirectory )
const ITK_OVERRIDE;
93 virtual std::string GenerateWisdomFilename(
const std::string &baseCacheDirectory)
const ITK_OVERRIDE;
99 virtual std::string GenerateWisdomFilename(
const std::string &baseCacheDirectory)
const ITK_OVERRIDE;
107 virtual std::string GenerateWisdomFilename(
const std::string &baseCacheDirectory)
const ITK_OVERRIDE;
109 void SetUseOSName(
const bool flag);
110 void SetUseOSRelease(
const bool flag);
111 void SetUseOSVersion(
const bool flag);
112 void SetUseOSPlatform(
const bool flag);
113 void SetUseOSBitSize(
const bool flag);
114 void SetUseNumberOfProcessors(
const bool flag);
115 void SetUseVendorString(
const bool flag);
116 void SetUseTypeID(
const bool flag);
117 void SetUseFamilyID(
const bool flag);
118 void SetUseModelID(
const bool flag);
119 void SetUseSteppingCode(
const bool flag);
121 bool GetUseOSName()
const;
122 bool GetUseOSRelease()
const;
123 bool GetUseOSVersion()
const;
124 bool GetUseOSPlatform()
const;
125 bool GetUseOSBitSize()
const;
126 bool GetUseNumberOfProcessors()
const;
127 bool GetUseVendorString()
const;
128 bool GetUseTypeID()
const;
129 bool GetUseFamilyID()
const;
130 bool GetUseModelID()
const;
131 bool GetUseSteppingCode()
const;
188 static void SetNewWisdomAvailable(
const bool & v );
189 static bool GetNewWisdomAvailable();
200 static void SetPlanRigor(
const int & v );
202 static int GetPlanRigor();
203 static void SetPlanRigor(
const std::string & name );
206 static int GetPlanRigorValue(
const std::string & name );
209 static std::string GetPlanRigorName(
const int & value );
218 static void SetReadWisdomCache(
const bool & v );
219 static bool GetReadWisdomCache();
229 static void SetWriteWisdomCache(
const bool & v );
230 static bool GetWriteWisdomCache();
239 static void SetWisdomCacheBase(
const std::string & v );
240 static std::string GetWisdomCacheBase();
270 static std::string GetWisdomFileDefaultBaseName();
273 static bool ImportWisdomFileDouble(
const std::string &fname );
274 static bool ExportWisdomFileDouble(
const std::string &fname );
278 static bool ImportWisdomFileFloat(
const std::string &fname );
279 static bool ExportWisdomFileFloat(
const std::string &fname );
283 static bool ImportDefaultWisdomFileDouble();
284 static bool ExportDefaultWisdomFileDouble();
288 static bool ImportDefaultWisdomFileFloat();
289 static bool ExportDefaultWisdomFileFloat();
303 itkFactorylessNewMacro(
Self);
306 void operator=(
const Self &);
Critical section locking class that can be allocated on the stack.
WisdomFilenameGeneratorBase * m_WisdomFilenameGenerator
Light weight base class for most itk classes.
SimpleFastMutexLock m_Lock
FFTWGlobalConfiguration Self
bool m_UseNumberOfProcessors
std::string m_WisdomFilename
static Pointer m_Instance
static SimpleFastMutexLock m_CreationLock
SimpleFastMutexLock MutexType
std::string m_WisdomCacheBase
SmartPointer< const Self > ConstPointer
Base class for most ITK classes.
bool m_NewWisdomAvailable
SmartPointer< Self > Pointer