Releases: shibatch/sleef
March 2025 Release
Summary
The most significant change in this release is the rewriting of the DFT library in C++. This has made the code simpler, cleaner, and more stable.
Next, tester4 has been introduced, which uses TLFloat instead of MPFR for testing. This allows for post-build testing in a wider range of environments than before.
Various other changes were made to reduce project maintenance costs. For more information, see the list below.
What's Changed
- Change templates for pull requests and submitting issues. by @shibatch in #617
- Add jenkinsfile by @shibatch in #619
- Fix cuda by @shibatch in #620
- Add tester4 second attempt by @shibatch in #622
- fix xexpfrexp by @longbiao7498 in #627
- Port Sleef to AIX by @KamathForAIX in #629
- Change CI settings by @shibatch in #630
- Add QNX SDP 8.0, 7.1 Support by @eleir9268 in #631
- Change hash algorithm from md5 to sha256 by @shibatch in #634
- Change tester3printf algo by @shibatch in #635
- Code cleanup by @shibatch in #637
- Add qtester4 by @shibatch in #639
- Update qtester4simd.cpp by @shibatch in #640
- Make tester4 default by @shibatch in #642
- Robust ieee128 detection by @shibatch in #643
- Convert dft to cpp by @shibatch in #644
- Update copyright years. by @shibatch in #646
- Various updates to DFT by @shibatch in #652
- Add DFT planner testing. by @shibatch in #653
- Update DFT benchmark tool by @shibatch in #655
- Add 2D DFT benchmark tool by @shibatch in #656
- Add DFT benchmark results to the web page by @shibatch in #657
- Improve dft performance by @shibatch in #658
- Add missing exe suffix for host executables by @daschuer in #660
- New dft planner by @shibatch in #662
- Better 2D DFT planner by @shibatch in #663
- Better logic for saving dft plans by @shibatch in #665
- Add LTO testing by @shibatch in #666
- Add comparison results of DFT performance on macbook pro. by @shibatch in #668
- This patch enables testing with tester4 on windows with clang. by @shibatch in #669
- Revert the entire web page to the HTML version by @shibatch in #674
New Contributors
- @longbiao7498 made their first contribution in #627
- @KamathForAIX made their first contribution in #629
- @eleir9268 made their first contribution in #631
- @daschuer made their first contribution in #660
Full Changelog: 3.8...3.9.0
SLEEF 3.8
What's Changed
The focus of this release has been to facilitate benchmarking. It does so by providing a new benchmarking tool and a plotting tool to post-process the results. AArch64 self-hosted runners have been added to CI, and the Linux and compiler versions have been updated too. Inaccuracy issues were fixed in a few functions, failures with cpp-checks and a few other bugs. Finally, the project has been extended with a blog section and its first blog post.
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
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
All Contributors
Thank you to all contributors: @joanaxcruz, @shibatch , @blapie, @xuhancn, @zhangfeiv0, @orlitzky, @winspool, and @musicinmybrain.
New Contributors
- @orlitzky made their first contribution in #602
- @winspool made their first contribution in #605
- @zhangfeiv0 made their first contribution in #607
Full Changelog: 3.7...3.8
SLEEF 3.7
What's Changed
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, and docs/ for the GitHub-rendered documentation.
The release also provides various bug fixes on several targets, in CPU detection and in the benchmark infrastructure.
Added
Changed
- Adjust scheduling of GHA workflows by @blapie in #553
- Port documentation from html to markdown by @blapie in #564
- Update acosh documentation by @joanaxcruz in #572
Fixed
- S/390: Use getauxval for detecting VXE2 to fix #560 by @Andreas-Krebbel in #561
- Revive micro-benchmarks for vector functions by @joanaxcruz in #571
All Contributors
Thank you @joanaxcruz, @Andreas-Krebbel and @blapie.
New Contributors
- @Andreas-Krebbel made their first contribution in #561
Full Changelog: 3.6.1...3.7.0
SLEEF 3.6.1
What's Changed
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,
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 on x86 and 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 (#534). - Various bug fixes (#528, #533, #536, #537).
All Contributors
Thank you @musicinmybrain, @sh1boot, @joanaxcruz, @blapie, @xuhancn, @alexreinking, @yuyichao, @luhenry, and @Andarwinux.
New Contributors
- @sh1boot made their first contribution in #520
- @alexreinking made their first contribution in #531
- @Andarwinux made their first contribution in #540
Full Changelog: 3.6...3.6.1
SLEEF 3.6
This new release of SLEEF contains numerous important updates such as
- 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)
- Optimise error functions (PR #370)
- Add quad-precision functions (PR #375, #377, #380, #381, #382, #383, #385, #386, #387) and documentation
- 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)
- Improve CMake package config (PR #412)
- Remove old CI scripts (PR #502) and add new public CI test infrastructure using GitHub Actions (PR #476)
- Add support for RISC-V in libm (PR #477)
- Support parallel builds with GNU make (PR #491)
- Add SLEEF_ prefix to user-facing CMake options. (PR #509)
- Various bug fixes (PR #492, #499, #508)
- Update documentation and move doc/website to repo (PR #504, #513)
This release comes after a long period of inactivity and might suffer from limited test coverage. We made sure to document supported environments on the README and issue #481. Known issues are documented in GitHub issues.
Fixed a bug in handling compiler options
Add System/390 support, etc.
- IBM System/390 support is added (PR #291)
- The library can be built with Clang on Windows (PR #300)
- Static libraries with LTO can be generated (PR #290)
- Alternative division and sqrt methods can be chosen with AArch64 (PR #289)
- Header files for inlining the whole SLEEF functions can be generated (PR #283)
- IEEE remainder function is added (PR #271)
- GCC-10 can now build SLEEF with SVE support (PR #310)
Fix small problems
Functions that return consistent results across platforms are added
- Faster and low precision functions are added(PR #229)
- Functions that return consistent results across platforms are added (PR #216, #224)
- Many functions are now faster (PR #239)
- Quad precision math library(libsleefquad) is added (PR #235, #237, #240)
- Testers are now faster (PR #223)
- AArch64 Vector Procedure Call Standard (AAVPCS) support