From: Kevin M. Rosenberg Date: Sun, 5 Oct 2003 07:09:40 +0000 (+0000) Subject: r7944: add saving of wisdom for ctsimtext X-Git-Tag: debian-4.5.3-3~54 X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=commitdiff_plain;h=d6553a81511f34757633399daec36cbe6ebd86ba r7944: add saving of wisdom for ctsimtext --- 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; }