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 )
39 struct FFTWGlobalConfigurationGlobals;
70 struct FFTWGlobalConfigurationGlobals;
73 #define FFTWPathSep "\\"
75 #define FFTWPathSep "/"
82 virtual std::string GenerateWisdomFilename(
const std::string &baseCacheDirectory)
const = 0;
93 void SetWisdomFilename(
const std::string &wfn);
94 std::string GenerateWisdomFilename(
const std::string &baseCacheDirectory )
const override;
102 std::string GenerateWisdomFilename(
const std::string &baseCacheDirectory)
const override;
108 std::string GenerateWisdomFilename(
const std::string &baseCacheDirectory)
const override;
116 std::string GenerateWisdomFilename(
const std::string &baseCacheDirectory)
const override;
118 void SetUseOSName(
const bool flag);
119 void SetUseOSRelease(
const bool flag);
120 void SetUseOSVersion(
const bool flag);
121 void SetUseOSPlatform(
const bool flag);
122 void SetUseOSBitSize(
const bool flag);
123 void SetUseNumberOfProcessors(
const bool flag);
124 void SetUseVendorString(
const bool flag);
125 void SetUseTypeID(
const bool flag);
126 void SetUseFamilyID(
const bool flag);
127 void SetUseModelID(
const bool flag);
128 void SetUseSteppingCode(
const bool flag);
130 bool GetUseOSName()
const;
131 bool GetUseOSRelease()
const;
132 bool GetUseOSVersion()
const;
133 bool GetUseOSPlatform()
const;
134 bool GetUseOSBitSize()
const;
135 bool GetUseNumberOfProcessors()
const;
136 bool GetUseVendorString()
const;
137 bool GetUseTypeID()
const;
138 bool GetUseFamilyID()
const;
139 bool GetUseModelID()
const;
140 bool GetUseSteppingCode()
const;
192 static std::mutex & GetLockMutex();
198 static void SetNewWisdomAvailable(
const bool & v );
199 static bool GetNewWisdomAvailable();
210 static void SetPlanRigor(
const int & v );
212 static int GetPlanRigor();
213 static void SetPlanRigor(
const std::string & name );
216 static int GetPlanRigorValue(
const std::string & name );
219 static std::string GetPlanRigorName(
const int & value );
228 static void SetReadWisdomCache(
const bool & v );
229 static bool GetReadWisdomCache();
239 static void SetWriteWisdomCache(
const bool & v );
240 static bool GetWriteWisdomCache();
249 static void SetWisdomCacheBase(
const std::string & v );
250 static std::string GetWisdomCacheBase();
280 static std::string GetWisdomFileDefaultBaseName();
283 static bool ImportWisdomFileDouble(
const std::string &fname );
284 static bool ExportWisdomFileDouble(
const std::string &fname );
288 static bool ImportWisdomFileFloat(
const std::string &fname );
289 static bool ExportWisdomFileFloat(
const std::string &fname );
293 static bool ImportDefaultWisdomFileDouble();
294 static bool ExportDefaultWisdomFileDouble();
298 static bool ImportDefaultWisdomFileFloat();
299 static bool ExportDefaultWisdomFileFloat();
303 static bool ImportDefaultWisdomFile();
304 static bool ExportDefaultWisdomFile();
WisdomFilenameGeneratorBase * m_WisdomFilenameGenerator
Light weight base class for most itk classes.
bool m_UseNumberOfProcessors
std::string m_WisdomFilename
#define itkGetGlobalDeclarationMacro(Type, VarName)
static FFTWGlobalConfigurationGlobals * m_PimplGlobals
std::string m_WisdomCacheBase
Base class for most ITK classes.
bool m_NewWisdomAvailable