primecount-7.3
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 supportint128_t
. If not,int128_t
will be disabled. The-std=c++*
option usually disablesint128_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 thePOPCNT
instruction. If not, disable thePOPCNT
instruction.CMakeLists.txt
: Fix AppleClang OpenMP detection.CMakeLists.txt
: Print warning message if OpenMP library is missing.CMakeLists.txt
: Add optionSTATICALLY_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.