From d6553a81511f34757633399daec36cbe6ebd86ba Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Sun, 5 Oct 2003 07:09:40 +0000 Subject: [PATCH] r7944: add saving of wisdom for ctsimtext --- ChangeLog | 1 + tools/ctsimtext.cpp | 38 +++++++++++++++++++++++++++++++++++--- 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index a8d2ba4..cff130e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,7 @@ Oct 5, 2003 Version 4.3.0 * Ported to incompatible FFTW3 library. CTSim will no longer compile or run with FFTW2. + * Save FFTW3 in $HOME/.fftw3-wisdom on platforms where getenv function is available Oct 3, 2003 Version 4.2.7 diff --git a/tools/ctsimtext.cpp b/tools/ctsimtext.cpp index ae89495..be55b6a 100644 --- a/tools/ctsimtext.cpp +++ b/tools/ctsimtext.cpp @@ -117,7 +117,7 @@ int ctsimtext_main (int argc, char * argv[]) { int iReturn = 0; - + if (argc > 1 && (strcmp(s_szProgramName, fileBasename (argv[0])) == 0 || strcmp(s_szProgramName2, fileBasename (argv[0])) == 0 || strcmp(s_szProgramName3, fileBasename (argv[0])) == 0)) { argv++; argc--; @@ -291,9 +291,41 @@ processCommand (int argc, char* const argv[]) int main (int argc, char* argv[]) { - int retval = 1; +#if defined(HAVE_FFTW) && defined(HAVE_GETENV) + const char* const pszHome = getenv("HOME"); + char* pszWisdom = NULL; + + if (pszHome) { + const char szFileBase[] = ".fftw3-wisdom"; + int nHome = strlen(pszHome); + int nBase = strlen(szFileBase); + int len = nHome + nBase + 1; + pszWisdom = new char [ len + 1 ]; + strcpy (pszWisdom, pszHome); + pszWisdom[nHome] = '/'; + strcpy(pszWisdom+nHome+1,szFileBase); + pszWisdom[nHome+nBase+2] = 0; + + FILE *wisdom = fopen(pszWisdom,"r"); + if (wisdom) { + fftw_import_wisdom_from_file(wisdom); + fclose(wisdom); + } + } +#endif + + int retval = ctsimtext_main(argc, argv); - retval = ctsimtext_main(argc, argv); +#if defined(HAVE_FFTW) && defined(HAVE_GETENV) + if (pszWisdom) { + FILE* wisdom = fopen(pszWisdom,"w+"); + if (wisdom) { + fftw_export_wisdom_to_file(wisdom); + fclose(wisdom); + delete [] pszWisdom; + } + } +#endif return retval; } -- 2.34.1