Fix up README.md

This commit is contained in:
Martin Rys
2025-11-28 20:24:49 +01:00
committed by Martin
parent 3573584192
commit e47824731e

View File

@ -53,14 +53,14 @@ There are two functionally-equivalent build systems supported by kissfft:
To build kissfft, the following build environment can be used: To build kissfft, the following build environment can be used:
- GNU build environment with GCC, Clang and GNU Make or CMake (>= 3.6) - GNU build environment with GCC, Clang and GNU Make or CMake (>= 3.10)
- Microsoft Visual C++ (MSVC) with CMake (>= 3.6) - Microsoft Visual C++ (MSVC) with CMake (>= 3.10)
Additional libraries required to build and test kissfft include: Additional libraries required to build and test kissfft include:
- libpng for psdpng tool, - libpng for psdpng tool,
- libfftw3 to validate kissfft results against it, - libfftw3 to validate kissfft results against it,
- python 2/3 with Numpy to validate kissfft results against it. - Python 3 with Numpy to validate kissfft results against it.
- OpenMP supported by GCC, Clang or MSVC for multi-core FFT transformations - OpenMP supported by GCC, Clang or MSVC for multi-core FFT transformations
While no tests have been performed to date, kissfft can likely be built using While no tests have been performed to date, kissfft can likely be built using
@ -104,13 +104,13 @@ Both Make and CMake builds are easily configurable:
For example, to build kissfft as a static library with 'int16_t' datatype and For example, to build kissfft as a static library with 'int16_t' datatype and
OpenMP support using Make, run the command from kissfft source tree: OpenMP support using Make, run the command from kissfft source tree:
``` ```bash
make KISSFFT_DATATYPE=int16_t KISSFFT_STATIC=1 KISSFFT_OPENMP=1 all make KISSFFT_DATATYPE=int16_t KISSFFT_STATIC=1 KISSFFT_OPENMP=1 all
``` ```
The same configuration for CMake is: The same configuration for CMake is:
``` ```bash
mkdir build && cd build mkdir build && cd build
cmake -DKISSFFT_DATATYPE=int16_t -DKISSFFT_STATIC=ON -DKISSFFT_OPENMP=ON .. cmake -DKISSFFT_DATATYPE=int16_t -DKISSFFT_STATIC=ON -DKISSFFT_OPENMP=ON ..
make all make all
@ -119,13 +119,13 @@ make all
To specify '/tmp/1234' as installation prefix directory, run: To specify '/tmp/1234' as installation prefix directory, run:
``` ```bash
make PREFIX=/tmp/1234 KISSFFT_DATATYPE=int16_t KISSFFT_STATIC=1 KISSFFT_OPENMP=1 install make PREFIX=/tmp/1234 KISSFFT_DATATYPE=int16_t KISSFFT_STATIC=1 KISSFFT_OPENMP=1 install
``` ```
or or
``` ```bash
mkdir build && cd build mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/tmp/1234 -DKISSFFT_DATATYPE=int16_t -DKISSFFT_STATIC=ON -DKISSFFT_OPENMP=ON .. cmake -DCMAKE_INSTALL_PREFIX=/tmp/1234 -DKISSFFT_DATATYPE=int16_t -DKISSFFT_STATIC=ON -DKISSFFT_OPENMP=ON ..
make all make all
@ -137,13 +137,13 @@ make install
To validate the build configured as an example above, run the following command from To validate the build configured as an example above, run the following command from
kissfft source tree: kissfft source tree:
``` ```bash
make KISSFFT_DATATYPE=int16_t KISSFFT_STATIC=1 KISSFFT_OPENMP=1 testsingle make KISSFFT_DATATYPE=int16_t KISSFFT_STATIC=1 KISSFFT_OPENMP=1 testsingle
``` ```
if using Make, or: if using Make, or:
``` ```bash
make test make test
``` ```
@ -152,7 +152,7 @@ if using CMake.
To test all possible build configurations, please run an extended testsuite from To test all possible build configurations, please run an extended testsuite from
kissfft source tree: kissfft source tree:
``` ```bash
sh test/kissfft-testsuite.sh sh test/kissfft-testsuite.sh
``` ```
@ -211,12 +211,12 @@ Transforming 5 minutes of CD quality audio takes less than a second (nfft=1024).
## UNDER THE HOOD ## UNDER THE HOOD
Kiss FFT uses a time decimation, mixed-radix, out-of-place FFT. If you give it an input buffer Kiss FFT uses a time decimation, mixed-radix, out-of-place FFT. If you give it an input buffer<br>
and output buffer that are the same, a temporary buffer will be created to hold the data. and output buffer that are the same, a temporary buffer will be created to hold the data.
No static data is used. The core routines of kiss_fft are thread-safe (but not all of the tools directory).[ No static data is used. The core routines of kiss_fft are thread-safe (but not all of the tools directory).
No scaling is done for the floating point version (for speed). No scaling is done for the floating point version (for speed).<br>
Scaling is done both ways for the fixed-point version (for overflow prevention). Scaling is done both ways for the fixed-point version (for overflow prevention).
Optimized butterflies are used for factors 2,3,4, and 5. Optimized butterflies are used for factors 2,3,4, and 5.