https://github.com/shibatch/sleef
SIMD Library for Evaluating Elementary Functions, vectorized libm and DFT
https://github.com/shibatch/sleef
aarch64 avx2 avx512 cuda elementary-functions fft fourier-transform fourier-transform-library math-library powerpc quadruple-precision s390x simd sse2 vector-math vectorization vsx
Last synced: 3 months ago
JSON representation
SIMD Library for Evaluating Elementary Functions, vectorized libm and DFT
- Host: GitHub
- URL: https://github.com/shibatch/sleef
- Owner: shibatch
- License: bsl-1.0
- Created: 2016-01-03T09:51:04.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2025-04-05T12:17:56.000Z (3 months ago)
- Last Synced: 2025-04-06T05:06:08.011Z (3 months ago)
- Topics: aarch64, avx2, avx512, cuda, elementary-functions, fft, fourier-transform, fourier-transform-library, math-library, powerpc, quadruple-precision, s390x, simd, sse2, vector-math, vectorization, vsx
- Language: C
- Homepage: https://sleef.org
- Size: 6.93 MB
- Stars: 710
- Watchers: 32
- Forks: 139
- Open Issues: 87
-
Metadata Files:
- Readme: README.adoc
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
README
== SLEEF - SIMD Library for Evaluating Elementary Functions
image:http://img.shields.io/badge/DOI-10.1109/TPDS.2019.2960333-blue.svg[TPDS, link=https://ieeexplore.ieee.org/document/8936472]
SLEEF is a library that implements vectorized versions of C standard
math functions. This library also includes DFT subroutines.* *Web Page:* https://sleef.org/
* *Sources:* https://github.com/shibatch/sleef== Supported environment
=== Test matrix
The following table summarizes currently supported OSes and compilers.
[cols="1,1,1,1,1,1,1,1,1"]
|===
| 2+|Linux 4+|Windows 2+|Mac
| |gcc |llvm |MSVC |Clang |MinGW |Cygwin |Clang |GCC
|x86_64 |✔ |✔ |✔ |✔ |✔ |❓ |✔ |❓
|RISC-V 64 |✔ |❓ |N/A |N/A |N/A |N/A |N/A |N/A
|AArch64 |✔ |✔ |❌ |❌ |❌ |❌ |✔ |❓
|POWER |✔ |❓ |N/A |N/A |N/A |N/A |N/A |N/A
|S390X |✔ |❓ |N/A |N/A |N/A |N/A |N/A |N/A
|===✔ : Tested on CI, ❓ : Not tested, ❌ : Not supported
== How to build SLEEF
The library itself does not have any additional dependency.
In order to build SLEEF, you need CMake 3.18+, and C and C++ compilers of the same version.
It is also recommended to have the following tools.* Ninja
* Githttps://github.com/shibatch/tlfloat[TLFloat] is automatically downloaded if no suitable version is found on your system.
Some tests require:
* libssl and libcrypto, that can be provided by installing openssl.
* libm, libgmp and libmpfr
* libfftw.The build procedure is as follows.
[arabic]
. Check out the source code from our GitHub repository....
git clone https://github.com/shibatch/sleef
....[arabic, start=2]
. Make a separate directory to create an out-of-source build....
cd sleef && mkdir build
....[arabic, start=3]
. Run cmake to configure the project....
cmake -S . -B build
....By default this will generate shared libraries. In order to generate
static libraries, pass option `-DBUILD_SHARED_LIBS=OFF`.For more verbose output add option `-DSLEEF_SHOW_CONFIG=ON`.
[arabic, start=4]
. Run make to build the project....
cmake --build build -j --clean-first
....[arabic, start=5]
. Run tests using ctests....
ctest --test-dir build -j
....For more detailed build instructions please refer to
https://sleef.org/compile.xhtml#preliminaries[our web page].== How to cross-compile SLEEF
For more detailed please refer to
https://sleef.org/compile.xhtml#cross[cross-compile SLEEF]== Install SLEEF
=== From source
Assuming following instructions were followed.
[arabic, start=6]
. Install to specified directory ``....
cmake --install build --prefix=
....=== Uninstall
In order to uninstall SLEEF library and headers run
....
sudo xargs rm -v < build/install_manifest.txt
....== License
The software is distributed under the Boost Software License, Version
1.0. See accompanying file link:./LICENSE.txt[LICENSE.txt] or copy at
http://www.boost.org/LICENSE_1_0.txt. Contributions to this project are
accepted under the same license.SLEEF project aims to serve society as a whole, not just specific
companies or organizations. We charge a fee for maintaining patches
that are convenient only for your company.The fact that our software is released under an open source license
only means that you can use the current and older versions of the
software for free. If you want us to continue maintaining our
software, you need to financially support our project. Please see
https://github.com/shibatch/nofreelunch?tab=coc-ov-file[CODE_OF_CONDUCT.md].Copyright © 2010-2025 SLEEF Project, Naoki Shibata and contributors.