Skip to content

Latest commit

 

History

History
279 lines (237 loc) · 10.8 KB

CHANGELOG.md

File metadata and controls

279 lines (237 loc) · 10.8 KB

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, and 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 #565

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

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, 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).

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.

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. #260 #265 #267
  • SVE intrinsics that are not supported in newer ACLE are replaced. #268
  • FMA4 detection problem is fixed. #262
  • Compilation problem under Windows with MinGW is fixed. #266

3.4 - 2019-04-28

Added

  • Faster and low precision functions are added. #229
  • Functions that return consistent results across platforms are added #216 #224
  • Quad precision math library(libsleefquad) is added #235 #237 #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. #210

3.3 - 2018-07-06

Added

  • SVE target support is added to libsleef. #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. #182
  • 3.5-ULP versions of sinh, cosh, tanh, sinhf, coshf, tanhf, and the corresponding testing functionalities are added. #192
  • Power VSX target support is added to libsleef. #195
  • Payne-Hanek like argument reduction is added to libsleef. #197

3.2 - 2018-02-26

Added

  • 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:
    • OS: Windows / Linux / OSX.
    • 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.
  • The library can be compiled to an LLVM bitcode object.
  • 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: #140
  • Speed improvements for asin, acos, fmod and log. Computation speed of other functions are also improved by general optimization. #97
  • Removed libm dependency.

Removed

  • Makefile build system

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