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 "/"
83 GenerateWisdomFilename(
const std::string & baseCacheDirectory)
const = 0;
95 SetWisdomFilename(
const std::string & wfn);
97 GenerateWisdomFilename(
const std::string & baseCacheDirectory)
const override;
100 std::string m_WisdomFilename{};
107 GenerateWisdomFilename(
const std::string & baseCacheDirectory)
const override;
114 GenerateWisdomFilename(
const std::string & baseCacheDirectory)
const override;
123 GenerateWisdomFilename(
const std::string & baseCacheDirectory)
const override;
126 SetUseOSName(
const bool flag);
128 SetUseOSRelease(
const bool flag);
130 SetUseOSVersion(
const bool flag);
132 SetUseOSPlatform(
const bool flag);
134 SetUseOSBitSize(
const bool flag);
136 SetUseNumberOfProcessors(
const bool flag);
138 SetUseVendorString(
const bool flag);
140 SetUseTypeID(
const bool flag);
142 SetUseFamilyID(
const bool flag);
144 SetUseModelID(
const bool flag);
146 SetUseSteppingCode(
const bool flag);
149 GetUseOSName()
const;
151 GetUseOSRelease()
const;
153 GetUseOSVersion()
const;
155 GetUseOSPlatform()
const;
157 GetUseOSBitSize()
const;
159 GetUseNumberOfProcessors()
const;
161 GetUseVendorString()
const;
163 GetUseTypeID()
const;
165 GetUseFamilyID()
const;
167 GetUseModelID()
const;
169 GetUseSteppingCode()
const;
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 };
227 SetNewWisdomAvailable(
const bool v);
229 GetNewWisdomAvailable();
241 SetPlanRigor(
const int v);
246 SetPlanRigor(
const std::string & name);
250 GetPlanRigorValue(
const std::string & name);
254 GetPlanRigorName(
const int value);
264 SetReadWisdomCache(
const bool v);
266 GetReadWisdomCache();
277 SetWriteWisdomCache(
const bool v);
279 GetWriteWisdomCache();
289 SetWisdomCacheBase(
const std::string & v);
291 GetWisdomCacheBase();
323 GetWisdomFileDefaultBaseName();
327 ImportWisdomFileDouble(
const std::string & fname);
329 ExportWisdomFileDouble(
const std::string & fname);
334 ImportWisdomFileFloat(
const std::string & fname);
336 ExportWisdomFileFloat(
const std::string & fname);
341 ImportDefaultWisdomFileDouble();
343 ExportDefaultWisdomFileDouble();
348 ImportDefaultWisdomFileFloat();
350 ExportDefaultWisdomFileFloat();
355 ImportDefaultWisdomFile();
357 ExportDefaultWisdomFile();
375 itkFactorylessNewMacro(
Self);
380 bool m_NewWisdomAvailable{
false };
381 int m_PlanRigor{ 0 };
382 bool m_WriteWisdomCache{
false };
383 bool m_ReadWisdomCache{
true };