FFTSS Version 1.0(2005/09/20) [Introduction] This software is a part of the result of the project 'Scalable Software Infrastructure(SSI)' supported by Core Research for Evolutional Science and Technology(CREST) at Japan Science and Technology Agency(JST). FFTSS is an open source library for computing the Fast Fourier Transform. Since FFTW is already de facto standard FFT library, we made the interfaces of this library almost compatible with those of FFTW. This makes it easy to run your applications coded for FFTW. FFTSS library includes many various FFT kernel routines. In each computing envirionment, the best set of the kernels is selected by trial runs of them. This is because it is difficult to detemine which source program generates the fastest code. [Limitations] Although the interfaces of this library are compatible with those of FFTW3, not all functions are implemented. Currently, input data must be an array of double precision complex numbers, which length is powers of two. Only one-dimensional transform is available. [List of library functions] fftss_plan fftss_plan_dft_1d(long n, double *in, double *out, int sign, int flags); n : length of the input/output array. in : pointer or address of input array. out : pointer or address of output array. sign : direction of transform. flags : various flags(see supported flags). This function creates plan for one dimentional transform. The following flags are available in current version. FFTSS_ESTIMATE: No trial runs. FFTSS_MEASURE: Use trial runs(default). FFTSS_PATIENT: Same as FFTSS_MEASURE. FFTSS_EXHAUSTIVE: Same as FFTSS_MEASURE. FFTSS_PRESERVE_INPUT: Do not override the input array. If this flag is not set, the input data will be destroyed. FFTSS_VERBOSE: Print debug informations to standard output. FFTSS_INOUT: The outputs of transform will be stored in input array. fftss_destroy_plan(fftss_plan plan); plan : plan to destroy. Destroy plan and free memory allocated for it. int fftss_test_dft_1d(long n, double *in, double *out, int sign, int flags); For debug. Test all FFT kernels, and check the outputs of them. void *fftss_malloc(long size); This function allocates memory, usually for input/output arrays. The address will be aligned to 16 byte if possible. int fftss_free(void *ptr); This function deallocate the memory. This is same as free(). void fftss_set(fftss_plan plan, double *in, double *out); This function sets the addresses of input/output arrays of the plan. The addresses specified in creating plan will be overwritten. FFTW library does not have the function that corresponds to this. [Header files] fftss.h You have to include this header file to use FFTSS library calls. fftw3compat.h If you have a program written for FFTW3, replace fftw3.h into this. [Library files] libfftss.a Static link library. libfftss.so.1.0.0 Dynamic link library(Example). [Links] SSI Project http://ssi.is.s.u-tokyo.ac.jp/ FFTW http://www.fftw.org/ FFTSS http://ssi.is.s.u-tokyo.ac.jp/fftss/