Skip to content

primecount-7.3

Compare
Choose a tag to compare
@kimwalisch kimwalisch released this 03 May 15:54
· 802 commits to master since this release

This is a new minor release, the API and ABI of primecount are backwards compatible. This release improves primecount's CMake build system (.e.g. improved OpenMP detection on macOS, build time POPCNT detection & new warning messages) and improves primecount's performance on big.LITTLE CPUs due to an update to the latest libprimesieve version.

ChangeLog

  • util.cpp: Tuned gourdon alpha factors for primecount-7.3.
  • nth_prime.cpp: Improved performance for small n.
  • FactorTable.hpp: Reduced memory allocations.
  • DFactorTable.hpp: Reduced memory allocations.
  • S2_trivial.cpp: Reduced memory allocations.
  • SegmentedPiTable.cpp: Reduced memory allocations.
  • CMakeLists.txt: Detect at build time if the C++ compiler and the C++ Standard Library support int128_t. If not, int128_t will be disabled. The -std=c++* option usually disables int128_t, use -std=gnu++* instead (or omit both -std=c++* and -std=gnu++*).
  • CMakeLists.txt: Detect at build time if the host CPU (x86) supports the POPCNT instruction. If not, disable the POPCNT instruction.
  • CMakeLists.txt: Fix AppleClang OpenMP detection.
  • CMakeLists.txt: Print warning message if OpenMP library is missing.
  • CMakeLists.txt: Add option STATICALLY_LINK_LIBPRIMECOUNT=ON/OFF.
  • appveyor.yml: Test primecount using many different C++ compilers: GCC-5, GCC-7, GCC-8, GCC-9, Clang-9, AppleClang 13, MSVC 2019.
  • ci.yml: New Github Actions tests: Windows/MinGW-w64 and Linux with Valgrind and PrimePi(10^20) 128-bit test.
  • Update to latest libprimesieve-7.9.