https://github.com/mikeswang/fftw-age
FFTW wisdom generation
https://github.com/mikeswang/fftw-age
cpp fftw
Last synced: 3 months ago
JSON representation
FFTW wisdom generation
- Host: GitHub
- URL: https://github.com/mikeswang/fftw-age
- Owner: MikeSWang
- License: gpl-3.0
- Created: 2024-05-07T22:57:38.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-04T11:02:50.000Z (8 months ago)
- Last Synced: 2025-04-12T01:14:27.958Z (6 months ago)
- Topics: cpp, fftw
- Language: C++
- Homepage:
- Size: 104 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Citation: CITATION.cff
- Security: .github/SECURITY.md
- Support: .github/SUPPORT.md
Awesome Lists containing this project
README
# ``FFTW-Age``: FFTW Wisdom Generation
[](https://github.com/MikeSWang/FFTW-Age/releases/latest)
[](https://github.com/MikeSWang/FFTW-Age/actions/workflows/ci.yml)
[](https://results.pre-commit.ci/latest/github/MikeSWang/FFTW-Age/main)
[](https://app.codacy.com/gh/MikeSWang/FFTW-Age/dashboard?utm_source=gh&utm_campaign=Badge_grade)> "_With age comes wisdom, but sometimes age comes alone._"
> — Oscar Wilde``FFTW-Age`` is a lightweight C++ utility for generating FFTW wisdom files
for OpenMP-multithreaded 3‑d FFT transforms as a replacement for
[`fftw-wisdom`]( https://www.fftw.org/fftw-wisdom.1.html).For background information, please refer to
[FFTW Wisdom](https://www.fftw.org/fftw3_doc/Wisdom.html).## Installation
The C++ program can built with `make`, provided that dependency
requirements (FFTW3 and OpenMP libraries) are satisfied.> [!IMPORTANT]
> Ensure the C++ compiler used supports OpenMP and the FFTW3 library is
> installed/configured accordingly. The default [``Makefile``](Makefile)
> (located at the repository directory root) assumes the GCC compiler and
> OpenMP library.First `git clone` the desired branch/release from the GitHub repository
and change into the repository directory path:```sh
git clone git@github.com:MikeSWang/FFTW-Age.git --branch
cd FFTW-Age
```Then, execute in shell:
```sh
make clean
make install
```## Usage
Once installed, the FFTW-Age utility can be called from the command line:
```sh
fftw-age [--rigour=] [--outdir=] -xx
```where
- `fftw-age` is assumed to be executable (include the path if it is not
in the current working directory);
- ```` is the transform direction,
either ``"f"`` for ``FFTW_FORWARD`` and ``"b"`` for ``FFTW_BACKWARD``;
- ````, ```` and ```` are the dimensions of the 3-d transform;
- ```` corresponds to the FFTW planner flag/rigour level,
with ``"m"`` (measured; default) for ``FFTW_MEASURE``
and ``"p"`` (patient) for ``FFTW_PATIENT``;
- ```` is the output wisdom file directory
(absolute or relative to the current working directory).The output wisdom file will have the filename
``fftw_omp__xx_.wisdom``.> [!NOTE]
> Only complex-to-complex, in-place transforms are currently supported. Hence
> ```` is fixed to ``"c"`` (complex-to-complex) and
> ```` is fixed to ``"i"`` (in-place) for now.See also the help message generated by ``fftw-age --help``.
For more information about FFTW planner flags, please refer to
[FFTW Planner Flags](https://www.fftw.org/fftw3_doc/Planner-Flags.html).## Attribution
To acknowledge the use of ``FFTW-Age`` in your published research, please
cite this repository; you can refer to the file [``CITATION.cff``](CITATION.cff)
for the relevant information.## Acknowledgement
This C++ utility makes use of the [``argparse``](
https://github.com/p-ranav/argparse) library.## Contributing/Development

[](https://github.com/MikeSWang/FFTW-Age/releases/latest)
[](https://github.com/MikeSWang/FFTW-Age/issues?q=is%3Aopen+is%3Aissue+label%3Abuild)
[](https://github.com/MikeSWang/FFTW-Age/issues?q=is%3Aopen+is%3Aissue+label%3Abug)
[](https://github.com/MikeSWang/FFTW-Age/issues?q=is%3Aopen+is%3Aissue+label%3Afeature)
[](https://github.com/MikeSWang/FFTW-Age/pulls)[](https://github.com/pre-commit/pre-commit)
[](https://codespaces.new/MikeSWang/FFTW-Age?hide_repo_select=true&ref=main)
User feedback and contributions are very welcome. Please refer to the
[contribution guidelines](.github/CONTRIBUTING.md).## Discussions & Wiki
[](https://github.com/MikeSWang/FFTW-Age/discussions)
A [community forum](https://github.com/MikeSWang/FFTW-Age/discussions)
for users and developers exists, where you can receive
announcements, post questions, share ideas and get updates.A [wiki site](https://github.com/MikeSWang/FFTW-Age/wiki) collects wisdoms
for specific use cases and user environments.## Releases
Release notes are included in the [change log](CHANGELOG.md).
## Licence
[](https://github.com/MikeSWang/FFTW-Age/blob/main/LICENCE)
``FFTW-Age`` is made freely available under the [GPL-3.0 licence](
https://www.gnu.org/licenses/gpl-3.0.en.html) (or any later version).
Please see [``LICENCE``](./LICENCE) (located at the repository directory root)
for full terms and conditions.© 2024 Mike S Wang