Newer
Older
## 3.8 - 2025-01-27
The focus of this release has been to facilitate benchmarking in SLEEF.
It does so by providing a benchmarking tool and a plotting tool to postprocess
the results.
AArch64 self-hosted runners have been added to CI. Following this, the Linux and
compiler version have been updated.
Fix inaccuracy issues in a few functions, failures with cpp checks and a few
bugs.
Finally, the project has been extended with a blog section and its first blog
[post](https://sleef.org/2024/10/02/new-pulse.html).
### Added
- Add benchmark and plotting tool by @joanaxcruz in #589, #597, #608 and #609
- Use Arm-hosted runners by @blapie in #581
- Add blog section and first post. by @blapie in #582
### Changed
- Update GH runners to Ubuntu 24.04 and GCC14 by @blapie in #598, #599 and #601
### Fixed
- Fix cbrt on AArch32, and atanf(+-0) with gcc-13 by @shibatch in #592
- Fix oflow bound in log1p(f), exp and pow by @blapie in #604 and #606
- Work around removal of some PowerPC intrinsics in GCC 15 by @musicinmybrain in #612
- Fix errors reported by cppcheck by @blapie in #595
## 3.7 - 2024-09-17
The focus of this release has been to meet open-source community standards. It
does so by providing Contributing Guidelines, Issues and Pull-Requests
templates. Additionally, the documentation has been reworked to improve
navigation (via search bar, side menu/panel, eased navigation on GitHub, ...)
and maintainability (reduced line count, mostly markdown sources, ...). The
website rendering is now delegated to a template customisable theme. See the
new website at [sleef.org](https://sleef.org/), and [docs/](./docs) for the
GitHub-rendered documentation. The release also provides various bug fixes on
several targets, for CPU detection and in the benchmark infrastructure.
### Added
- Add issue and PR templates. by @blapie in https://github.com/shibatch/sleef/pull/565
### Changed
- Adjust scheduling of GHA workflows by @blapie in https://github.com/shibatch/sleef/pull/553
- Port documentation from html to markdown by @blapie in https://github.com/shibatch/sleef/pull/564
- Update acosh documentation by @joanaxcruz in https://github.com/shibatch/sleef/pull/572
### Fixed
- S/390: Use getauxval for detecting VXE2 to fix #560 by @Andreas-Krebbel in https://github.com/shibatch/sleef/pull/561
- Revive micro-benchmarks for vector functions by @joanaxcruz in https://github.com/shibatch/sleef/pull/571
## 3.6.1 - 2024-06-10
This patch release provides important bug fixes, including a fix
for API compatibility with 3.5 (#534).
The support and test for some features is still limited, as
documented in [README](./README.md), however significant progress
was made in order to test on Linux, macOS and Windows.
### Added
- Add support for RISC-V in DFT, QUAD and inline headers (#503,
#522).
- Add GHA workflow to run CI tests on Windows x86 (#540) and macOS
x86/aarch64 (#543). And update test matrix.
- Add GHA workflows to run examples in CI (#550).
### Changed
- Cleanup/Improve support for RISC-V in LIBM (#520, #521).
- Update supported environment in documentation (#529, #549),
including website and test matrix from README.
### Fixed
- Major fix and cleanup of CMakeLists.txt (#531).
- Fix compatibility issue after removal of quad and long double
sincospi (#545). Restores functions that are missing in 3.6.
- Various bug fixes (#528, #533, #536, #537).
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
## 3.6 - 2024-02-14
This release follows a long period of inactivity. The library is now
being actively maintained. However, the support and test for some
features is currently limited, as documented in [README](./README.md).
### Added
- Add documentation for the quad precision math library
- Enable generation of inline header file for CUDA (PR #337)
- Add support for System/390 z15 support (PR #343)
- Add support for POWER 9 (PR #360)
- Add quad-precision functions (PR #375, #377, #380, #381, #382, #383,
#385, #386, #387)
- Add preliminary support for iOS and Android (PR #388, #389)
- Add OpenMP pragmas to the function declarations in sleef.h to enable
auto-vectorization by GCC (PR #404, #406)
- Add new public CI test infrastructure using GitHub Actions (PR #476)
- Add support for RISC-V in libm (PR #477)
### Removed
- Remove old CI scripts based on Travis/Jenkins/Appveyor (PR #502)
### Changed
- Optimise error functions (PR #370)
- Update CMake package config (PR #412)
- Update documentation and move doc/website to main repository (PR #504,
#513)
- Add SLEEF_ prefix to user-facing CMake options (PR #509)
- Disable SVE on Darwin (PR #512)
### Fixed
- Fix parallel builds with GNU make (PR #491)
- Various bug fixes (PR #492, #499, #508)
## 3.5.1 - 2020-09-15
### Changed
- Fixed a bug in handling compiler options
## 3.5 - 2020-09-01
- IBM System/390 support is added.
- The library can be built with Clang on Windows.
- Static libraries with LTO can be generated.
- Alternative division and sqrt methods can be chosen with AArch64.
- Header files for inlining the whole SLEEF functions can be generated.
- IEEE remainder function is added.
- GCC-10 can now build SLEEF with SVE support.
## 3.4.1 - 2019-10-01
### Changed
- Fixed accuracy problem with tan_u35, atan_u10, log2f_u35 and exp10f_u10.
https://github.com/shibatch/sleef/pull/260
https://github.com/shibatch/sleef/pull/265
https://github.com/shibatch/sleef/pull/267
- SVE intrinsics that are not supported in newer ACLE are replaced.
https://github.com/shibatch/sleef/pull/268
- FMA4 detection problem is fixed.
https://github.com/shibatch/sleef/pull/262
- Compilation problem under Windows with MinGW is fixed.
https://github.com/shibatch/sleef/pull/266
- Faster and low precision functions are added.
https://github.com/shibatch/sleef/pull/229
- Functions that return consistent results across platforms are
added
https://github.com/shibatch/sleef/pull/216
https://github.com/shibatch/sleef/pull/224
- Quad precision math library(libsleefquad) is added
https://github.com/shibatch/sleef/pull/235
https://github.com/shibatch/sleef/pull/237
https://github.com/shibatch/sleef/pull/240
- AArch64 Vector Procedure Call Standard (AAVPCS) support.
### Changed
- Many functions are now faster
- Testers are now faster
## 3.3.1 - 2018-08-20
### Added
- FreeBSD support is added
### Changed
- i386 build problem is fixed
- Trigonometric functions now evaluate correctly with full FP
domain.
https://github.com/shibatch/sleef/pull/180
- SVE target support is added to DFT. With this patch, DFT operations
can be carried out using 256, 512, 1024 and 2048-bit wide vectors
according to runtime availability of vector registers and operators.
https://github.com/shibatch/sleef/pull/182
- 3.5-ULP versions of sinh, cosh, tanh, sinhf, coshf, tanhf, and the
corresponding testing functionalities are added.
https://github.com/shibatch/sleef/pull/192
- Power VSX target support is added to libsleef.
https://github.com/shibatch/sleef/pull/195
- Payne-Hanek like argument reduction is added to libsleef.
https://github.com/shibatch/sleef/pull/197
- The whole build system of the project migrated from makefiles to
cmake. In particualr this includes `libsleef`, `libsleefgnuabi`,
`libdft` and all the tests.
- Benchmarks that compare `libsleef` vs `SVML` on X86 Linux are
available in the project tree under src/libm-benchmarks directory.
- Extensive upstream testing via Travis CI and Appveyor, on the
following systems:
* Compilers: gcc / clang / MSVC.
* Targets: X86 (SSE/AVX/AVX2/AVX512F), AArch64 (Advanced SIMD), ARM
(NEON). Emulators like QEMU or SDE can be used to run the tests.
- Added the following new vector functions (with relative testing):
* `log2`
- New compatibility tests have been added to check that
`libsleefgnuabi` exports the GNUABI symbols correctly.
- Added masked interface to the library to support AVX512F masked
vectorization.
### Changed
- Use native instructions if available for `sqrt`.
- Fixed fmax and fmin behavior on AArch64:
https://github.com/shibatch/sleef/pull/140
- Speed improvements for `asin`, `acos`, `fmod` and `log`. Computation
speed of other functions are also improved by general optimization.
https://github.com/shibatch/sleef/pull/97
- Removed `libm` dependency.
### Removed
- Makefile build system
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
## 3.1 - 2017-07-19
- 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.0 - 2017-02-07
- 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.120 - 2017-01-30
- Relicensed to Boost Software License Version 1.0
## 2.110 - 2016-12-11
- 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)
## 2.100 - 2016-12-04
- Added support for AVX-512F and Clang Extended Vectors.
## 2.90 - 2016-11-27
- Added ilogbf. All the reported bugs(listed below) are fixed.
- Log function returned incorrect values when the argument is very small.
- Signs of returned values were incorrect when the argument is signed zero.
- Tester incorrectly counted ULP in some cases.
- ilogb function returned incorrect values in some cases.
## 2.80 - 2013-05-18
- Added support for ARM NEON. Added higher accuracy single
precision functions : sinf_u1, cosf_u1, sincosf_u1, tanf_u1, asinf_u1,
acosf_u1, atanf_u1, atan2f_u1, logf_u1, and cbrtf_u1.
## 2.70 - 2013-04-30
- Added higher accuracy functions : sin_u1, cos_u1, sincos_u1,
tan_u1, asin_u1, acos_u1, atan_u1, atan2_u1, log_u1, and
cbrt_u1. These functions evaluate the corresponding function with at
most 1 ulp of error.
## 2.60 - 2013-03-26
- Added the remaining single precision functions : powf, sinhf,
coshf, tanhf, exp2f, exp10f, log10f, log1pf. Added support for FMA4
(for AMD Bulldozer). Added more test cases. Fixed minor bugs (which
degraded accuracy in some rare cases).
## 2.50 - 2013-03-12
- Added support for AVX2. SLEEF now compiles with ICC.
## 2.40 - 2013-03-07
- Fixed incorrect denormal/nonnumber handling in ldexp, ldexpf,
sinf and cosf. Removed support for Go language.
## 2.31 - 2012-07-05
- Added sincosf.
## 2.30 - 2012-01-20
- Added single precision functions : sinf, cosf, tanf, asinf,
acosf, atanf, logf, expf, atan2f and cbrtf.
## 2.20 - 2012-01-09
- Added exp2, exp10, expm1, log10, log1p, and cbrt.
## 2.10 - 2012-01-05
- asin() and acos() are back.
- Added ilogb() and ldexp().
- Added hyperbolic functions.
- Eliminated dependency on frexp, ldexp, fabs, isnan and isinf.
## 2.00 - 2011-12-30
- All of the algorithm has been updated.
- Both accuracy and speed are improved since version 1.10.
- Denormal number handling is also improved.
## 1.10 - 2010-06-22
- AVX support is added. Accuracy tester is added.
## 1.00 - 2010-05-15
- Initial release