SLEEF implements vectorized versions of all C99 real floating point math functions. It can utilize SIMD instructions of modern processors. SLEEF is designed to fully utilize SIMD computation by reducing the use of conditional branches and scatter/gather memory access. Our benchmarks show that the performance of SLEEF is comparable to that of the best commercial library.

Tags mathematics c developers science-research simd sse avx aarch64 sve
License BSL
State stable

Recent Releases

3.309 Jul 2018 02:52 major feature: * AArch64 SVE target support is added * PowerPC VSX target support is added * Modified Payne-Hanek argument reduction is added * 3.5-ULP hyperbolic functions are added * DFT is now faster
3.226 Feb 2018 10:31 major feature: * The whole build system of the project migrated from makefiles to cmake. * GNUABI version of the library with compatibility tests is added. * Extensive upstream testing via Travis CI and Appveyor log2 is added. * The library can be compiled to an LLVM bitcode object * Added masked interface to the library to support AVX512F masked vectorization. * Use native instructions if available for sqrt. * Removed libm dependency.
3.119 Jul 2017 09:55 major feature: * Added AArch64 support * Implemented the remaining C99 math functions : lgamma, tgamma, erf, erfc, fabs, copysign, fmax, fmin, fdim, trunc, floor, ceil, round, rint, modf, ldexp, nextafter, frexp, hypot, and fmod. * Added dispatcher for x86 functions * Improved reduction of trigonometric functions * Added support for 32-bit x86, Cygwin, etc. * Improved tester
3.006 Feb 2017 05:51 major feature: * New API is defined * Functions for DFT are added * sincospi functions are added * gencoef now supports single, extended and quad precision in addition to double precision * Linux, Windows and Mac OS X are supported * GCC, Clang, Intel Compiler, Microsoft Visual C++ are supported * The library can be compiled as DLLs * Files needed for creating a debian package are now included
2.11011 Dec 2016 08:41 major feature: * The valid range of argument is extended for trig functions * Specification of each functions regarding to the domain and accuracy is added * A coefficient generation tool is added * New testing tools are introduced * Following functions returned incorrect values when the argument is very large or small : exp, pow, asinh, acosh * SIMD xsin and xcos returned values more than 1 when FMA is enabled * Pure C cbrt returned incorrect values when the argument is negative * tan_u1 returned values with more than 1 ulp of error on rare occasions * Removed support for Java language(because no one seems using this)