fftw3: Wisdom Export
4.7.1 Wisdom Export
-------------------
int fftw_export_wisdom_to_filename(const char *filename);
void fftw_export_wisdom_to_file(FILE *output_file);
char *fftw_export_wisdom_to_string(void);
void fftw_export_wisdom(void (*write_char)(char c, void *), void *data);
These functions allow you to export all currently accumulated wisdom
in a form from which it can be later imported and restored, even during
a separate run of the program. (Words of Wisdom-Saving Plans.)
The current store of wisdom is not affected by calling any of these
routines.
'fftw_export_wisdom' exports the wisdom to any output medium, as
specified by the callback function 'write_char'. 'write_char' is a
'putc'-like function that writes the character 'c' to some output; its
second parameter is the 'data' pointer passed to 'fftw_export_wisdom'.
For convenience, the following three "wrapper" routines are provided:
'fftw_export_wisdom_to_filename' writes wisdom to a file named
'filename' (which is created or overwritten), returning '1' on success
and '0' on failure. A lower-level function, which requires you to open
and close the file yourself (e.g. if you want to write wisdom to a
portion of a larger file) is 'fftw_export_wisdom_to_file'. This writes
the wisdom to the current position in 'output_file', which should be
open with write permission; upon exit, the file remains open and is
positioned at the end of the wisdom data.
'fftw_export_wisdom_to_string' returns a pointer to a
'NULL'-terminated string holding the wisdom data. This string is
dynamically allocated, and it is the responsibility of the caller to
deallocate it with 'free' when it is no longer needed.
All of these routines export the wisdom in the same format, which we
will not document here except to say that it is LISP-like ASCII text
that is insensitive to white space.