Skip to content
  1. Dec 06, 2024
    • Xu Han's avatar
      add a switch for libm. · 56e1f79c
      Xu Han authored
      56e1f79c
    • Pierre Blanchard's avatar
      Update overflow bound in log1p(f) · ccd4fd4f
      Pierre Blanchard authored
      And add tests in this region.
      
      Fix functions in region between previous
      overflow bound and maximum float.
      
      Accuracy is maintained by relying on high
      accuracy log (in branch), however performance
      drops slightly. Ideally the core approximation
      should also work above threshold.
      ccd4fd4f
  2. Dec 03, 2024
    • Pierre Blanchard's avatar
      Fix oflow bound in exp and pow. · b997b2f8
      Pierre Blanchard authored
      Issue #600 highlighted a limit of current
      implementation where early overflow is noticed,
      which diverges from the C99 standard.
      
      This patch adds test to catch this type of cases.
      
      It only checks a few points therefore we don't
      know for sure if overflow occurs at the right time
      but we know if something is wrong in the overflow
      region.
      
      Fix both scalar and simd implementation (double precision)
      
      Fixes #523.
      b997b2f8
  3. Nov 29, 2024
  4. Nov 11, 2024
    • Michael Orlitzky's avatar
      Configure.cmake: improve and unify RISC-V vector extension checks · 87e73dc7
      Michael Orlitzky authored
      To test for the RISC-V vector extension (RVV), we currently run two
      small programs -- one for each value of LMUL=1,2 -- that use some
      vector intrinsics from the v0.11.x draft of the intrinsics spec. The
      library itself however needs newer intrinsics than the ones that we
      test for. This can lead to a problem because GCC 13 supports the
      intrinsics that we test for, but not (all of) the ones we intend to
      use. In short, the build can fail with GCC 13:
      
        https://github.com/shibatch/sleef/issues/579
      
      This commit changes the detection mechanism. Instead of compiling a
      program that makes use of the intrinsics, we now just check the two
      values, __riscv_v and __riscv_v_intrinsic, to ensure that we have
      version 1.0 of the vector extension and version 0.12 of the
      intrinsics. These should be the stable versions of each.
      
      Note: the "m1" and "m2" checks are now identical because they are both
      covered by the official spec.
      
      Fixes #579
      87e73dc7
  5. Nov 01, 2024
  6. Oct 28, 2024
  7. Oct 24, 2024
    • Pierre Blanchard's avatar
      Update GH runners to Ubuntu 24.04 · 6abb7d92
      Pierre Blanchard authored
      This will ultimately unlock the use of latest versions of
      gcc 12, then gcc 13, and finally gcc 14.
      Gcc 14 will unlock more testing.
      This PR does not update version of gcc yet, just to make sure
      old version still pass tests.
      Remove some expensive tests.
      6abb7d92
  8. Oct 18, 2024
  9. Oct 16, 2024
    • Naoki Shibata's avatar
      This patch fixes two problems (#592) · f95a6c86
      Naoki Shibata authored
      
      
      This patch fixes the following two problems:
      
      * On aarch32, cbrt(4) was returned instead of M_PI/2 when +-INFINITY is given to atanf.
      * Due to a bug in gcc-13, sign of tanf(+-0) was wrong on PUREC_SCALAR and VXE.
      
      This patch also adds testing for the first problem.
      The second problem is detected by the existing tester.
      
      ---------
      
      Co-authored-by: default avatarNaoki Shibata <shibatch.sf.net@gmail.com>
      f95a6c86
  10. Oct 15, 2024
    • Joana Cruz's avatar
      Integrate Google benchmarks into SLEEF · bbdf0e2d
      Joana Cruz authored
      Added new benchmark tool to SLEEF project using googlebench
      framework.
      In theory this tool can benchmark any unary and binary function
      in SLEEF.
      Benchmark is enabled in all functions listed in benchsleef.cpp.
      This list uses macros in benchmark_callers.cpp, so that we can
      enable benchmarking in multiple precisions using single lines
      of code. It is also possible to list the exact function we want,
      as each of the macros in benchmark_callers.cpp can be called
      independently and connected like building blocks.
      The tool is integrated with SLEEF via CMake, meaning it can
      be built automatically when SLEEF is built. To enable that,
      pass CMake argument -DSLEEF_BUILD_BENCH=ON.
      
      This tool depends on C++17 standard.
      Tested on aarch64 for scalar, vector and SVE routines
      Tested on x86 for different vector length extensions.
      Tested for llvm-17, gcc-11 and gcc-14.
      bbdf0e2d
  11. Oct 14, 2024
  12. Oct 10, 2024
  13. Oct 09, 2024
    • Pierre Blanchard's avatar
      Add checks for incompatible changes in GHA · 695e734c
      Pierre Blanchard authored
      Add a new workflow to detect unexpected backward-incompatible
      changes at precommit, by comparing current version against a
      reference version, both generated on Linux with gcc.
      It uses abidiff to compare ELF-format shared libraries.
      This is the tool used by Fedora to report a recent breach in
      API #534. Test should fail until it is fixed by #545.
      695e734c
  14. Oct 04, 2024
    • Pierre Blanchard's avatar
      Use Arm-hosted runners (#581) · 8373ab19
      Pierre Blanchard authored
      Documentation for these runners here https://gitlab.arm.com/tooling/gha-runner-docs
      Note that only SLEEF upstream repo is allowed to use these runners.
      
      Integrate runners via strategy.matrix.os, in order to facilitate customisation
      of step (e.g. config) based on runner label.
      
      Install OpenSSL since tester3 is enforced.
      New runners do not seem to come with openssl or cmake pre-installed.
      
      Use SVE enabled instances (c7g)
      Use 2xlarge instances so tests run slightly faster without compromising on availability.
      
      Remove aarch64 from cross build and tests (on Linux).
      And update documentation/README.
      8373ab19
  15. Oct 02, 2024
  16. Sep 17, 2024
  17. Sep 16, 2024
  18. Sep 09, 2024
    • Joana Cruz's avatar
      Update documents for acosh · 68f5497a
      Joana Cruz authored
      The acosh function is only defined for values greater or
      equal to 1. Documentation was updated according to this.
      Also, rephrased a confusing sentence.
      68f5497a
  19. Aug 29, 2024
Loading