------------------------------------------------------------------- Wed Jun 04 11:58:00 UTC 2025 - Kim Walisch - Update to primecount-7.19 (API & ABI are backwards compatible). - nth_prime.cpp: Add 128-bit nth_prime function. - nth_prime_sieve.hpp: New sieving algo for nth_prime(n). - primecount.h: Improved 128-bit C API using portable pc_int128_t struct. - primecount.hpp: Improved 128-bit C++ API using portable pc_int128_t struct. - libprimecount.md: Add new 128-bit C/C++ API functions. ------------------------------------------------------------------- Sat May 17 08:50:00 UTC 2025 - Kim Walisch - Update to primecount-7.18 (API & ABI are backwards compatible). - Add CMake find_package(primecount) support. - libprimecount.md: Add CMake find_package(primecount) section. - PhiTiny.cpp: Reduce code bloat. - Move private header files from /include to /src. - src/CMakeLists.txt: Update for private header files in /src. - test/CMakeLists.txt: Update for private header files in /src. - Vector.hpp: Get rid of std::is_trivial which is deprecated in C++26. - Update to latest primesieve-12.9 library. - Update to latest libdivide-5.2.0 library. ------------------------------------------------------------------- Tue Apr 29 17:28:00 UTC 2025 - Kim Walisch - Update to primecount-7.17 (API & ABI are backwards compatible). - Sieve_pre_sieve.hpp: Improved pre-sieving using primes ≤ 71. - Pre-sieving speeds up S2_hard and D algorithms by up to 5%. - README.md: Fix Markdown math formulas. - Hard-Special-Leaves.md: Fix Markdown math formulas. - Update to primesieve-12.8 library. ------------------------------------------------------------------- Wed Apr 02 15:36:00 UTC 2025 - Kim Walisch - Update to primecount-7.16 (API & ABI are backwards compatible). - fast_div.hpp: Fix "Warning: mnemonic suffix used with `div'". - libdivide.h: Fix "Warning: mnemonic suffix used with `div'". - LoadBalancerS2.cpp: Tune load balancing. - LoadBalancerAC.cpp: Tune load balancing. - primecount-config.hpp: Update default CPU cache sizes. - Sieve.cpp: Improve count balancing. - Sieve.cpp: Add multiarch count methods. - Sieve.hpp: New multiarch count methods. - D.cpp: Runtime dispatching changes. - D_multiarch_avx512.cpp: New file. - D_multiarch_arm_sve.cpp: New file. - S2_hard.cpp: Runtime dispatching changes. - S2_hard_multiarch_avx512.cpp: New file. - S2_hard_multiarch_arm_sve.cpp: New file. ------------------------------------------------------------------- Mon Mar 03 09:50:00 UTC 2025 - Kim Walisch - Update to primecount-7.15 (API & ABI are backwards compatible). - Sieve.hpp: Improve ARM SVE bit counting algorithm. - multiarch_arm_sve.cmake: Improve ARM SVE detection. - src/arch/arm/sve.cpp: Detect ARM SVE instruction set. - Update to libprimesieve-12.7. ------------------------------------------------------------------- Thu Aug 01 15:50:00 UTC 2024 - Kim Walisch - Update to primecount-7.14 (API & ABI are backwards compatible). - Fix libdivide.h issue with GCC 15: #76. - Move x86 cpuid code from cpuid.hpp to src/x86/cpuid.cpp. - Move generate.hpp code to src/generate_primes.cpp. - Move generate_phi.hpp code to src/phi_vector.cpp. - int128_t.hpp: Rename namespace port to pstd (portable std namespace). - Sieve.hpp: Tune AVX512 code. - Sieve.hpp: Branchfree bitmask calculation. - cpu_supports_popcnt.hpp: Simplify, move preprocessor checks to new multiarch_x86_popcnt.cmake. - multiarch_avx512_vpopcnt.cmake: Tune AVX512 code. - multiarch_x86_popcnt.cmake: Detect x86 POPCNT. - CMakeLists.txt: Use CMake list for all compile time definitions. ------------------------------------------------------------------- Wed Apr 17 15:40:00 UTC 2024 - Kim Walisch - Update to primecount-7.13 (API & ABI are backwards compatible). - CMakeLists.txt: New WITH_MULTIARCH option (default ON). - Sieve.hpp: New AVX512 popcount algorithm for x86 CPUs. - Sieve.hpp: New ARM SVE popcount algorithm. - int128.cmake: Improve int128_t support for Windows. - OpenMP.cmake: Improve LLVM/Clang OpenMP detection. - Add preliminary MSVC 128-bit support. ------------------------------------------------------------------- Tue Apr 02 13:13:00 UTC 2024 - Kim Walisch - Update to primecount-7.12 (API & ABI are backwards compatible). - On x86 CPUs check using CPUID if CPU supports POPCNT. - CMakeLists.txt: Remove WITH_POPCNT=OFF option. - New dynamic/adaptive load balancing for AC algorithm. - LogarithmicIntegral.cpp: Fix infinite loop on Linux i386. - RiemannR.cpp: Fix infinite loop on Linux i386. - RiemannR.cpp: Faster and simpler RiemannR_inverse(x). ------------------------------------------------------------------- Fri Mar 15 15:05:00 UTC 2024 - Kim Walisch - Update to primecount-7.11 (API & ABI are backwards compatible). - Increase pi(x) cache size to 2 KiB. - Detect incompatible command-line options. - Faster RiemannR(x) and RiemannR_inverse(x) implementations. - test/iroot.cpp: Fix musl libc issue. - test/Li.cpp: Speed up test. - Renamed option --Ri to -R or --RiemannR. - Renamed option --Ri-inverse to --RiemannR-inverse. - Improve status output on Windows. ------------------------------------------------------------------- Thu Jan 11 17:55:00 UTC 2024 - Kim Walisch - Update to primecount-7.10 (API & ABI are backwards compatible). - Improve CMake libatomic detection. - Fix potential integer overflows in Li_inverse(x) and Ri_inverse(x). - Added new internal nth_prime_approx(n). ------------------------------------------------------------------- Tue Jul 04 07:25:00 UTC 2023 - Kim Walisch - Update to primecount-7.9 (API & ABI are backwards compatible). - Add unit tests for pi_gourdon(x) function. - Fix Appveyor CI tests. - Update to latest libprimesieve-11.1. ------------------------------------------------------------------- Mon May 22 12:25:00 UTC 2023 - Kim Walisch - Update to primecount-7.8 (API & ABI are backwards compatible). - Fix pi(-n) issue for 128-bit integers. ------------------------------------------------------------------- Sat May 13 08:30:00 UTC 2023 - Kim Walisch - Update to primecount-7.7 (API & ABI are backwards compatible). - Fix pi(-1) crash. - test/api.cpp: Add pi(-1) test. - test/api_c.c: Add primecount_pi(-1) test. - test/nthprime.cpp: Add new test. - primecount.h: Fix -Wstrict-prototypes warning. ------------------------------------------------------------------- Wed Dec 7 16:35:00 UTC 2022 - Kim Walisch - Update to primecount-7.6 (API & ABI are backwards compatible). - Requires latest primesieve-11.0 library. - Fix missing header include in print.hpp. ------------------------------------------------------------------- Fri Jul 8 18:10:00 UTC 2022 - Kim Walisch - Update to primecount-7.4 (API & ABI are backwards compatible). - Compatible with latest primesieve-8.0 library. - Sieve.cpp: Improved pre-sieving. - Sieve.cpp: Optimize COUNT_UNSET_BIT() macro. - Split up main CMakeLists.txt into multiple modules. - Reduced the number of memory allocations. ------------------------------------------------------------------- Tue May 3 16:19:00 UTC 2022 - Kim Walisch - Update to primecount-7.3 (API & ABI are backwards compatible). - Improved big.Little CPU detection. - Improved nth prime performance for small n. - Reduced the number of memory allocations. - Many CMake build system improvements. ------------------------------------------------------------------- Wed Dec 8 08:15:00 UTC 2021 - Kim Walisch - Add pkg-config/pkgconf support (primecount.pc). - Improved cache size detection on big.LITTLE CPUs. - Improved C/C++ API documentation (libprimecount.md). ------------------------------------------------------------------- Mon Aug 16 03:20:00 UTC 2021 - Kim Walisch - Update to primecount-7.1 (API & ABI are backwards compatible). - Minor pi(x) & phi(x, a) speed improvements. - PhiTiny.cpp: Use compressed phi(x, a) lookup table. - phi.cpp: More correct usage of recursive phi(x, a) formula. - PiTable.cpp: Add PrimePi(x) lookup table for x < 64 * 240. - generate_phi.hpp: More correct usage of recursive phi(x, a) formula. - nth_prime.cpp: Cache small primes <= 1009. - nth_prime.cpp: Improve error handling, n must be >= 1. - appveyor.yml: Fix debug build. ------------------------------------------------------------------- Fri Apr 30 16:52:00 UTC 2021 - Kim Walisch - Update to primecount-7.0 (API & ABI are backwards compatible). - AC.cpp: New algorithm with improved scaling. - AC_libdivide.cpp: New algorithm with improved scaling. - B.cpp: Improved scaling due to independent threads. - P2.cpp: Improved scaling due to independent threads. - LoadBalancerAC.cpp: New thread scheduler for AC algorithm. - LoadBalancerS2.cpp: Improve load balancing of S2_hard & D. - LoadBalancerP2.cpp: Rewritten, now similar to other load balancers. - SegmentedPiTable.cpp: Decrease size to x^(1/4). - util.cpp: Improve scaling using larger default alpha_z = 2. - imath.hpp: Optimize ilog2() & next_power_of_2() using __builtin_clzll(). ------------------------------------------------------------------- Mon Mar 22 16:42:00 UTC 2021 - Kim Walisch - Update to primecount-6.4. - Fixed an integer overflow in the B formula. - Reduced memory usage of SegmentedPiTable by 1.5x. ------------------------------------------------------------------- Fri Jan 8 15:14:06 UTC 2021 - Kim Walisch - Update to primecount-6.2 ------------------------------------------------------------------- Wed Sep 16 12:18:26 UTC 2020 - Kim Walisch - Update to primecount-6.1 ------------------------------------------------------------------- Fri Aug 21 14:49:36 UTC 2020 - Dirk Mueller - address review feedback ------------------------------------------------------------------- Wed Aug 19 11:04:00 UTC 2020 - Kim Walisch - Add libprimecount documentation ------------------------------------------------------------------- Fri Aug 7 10:44:04 UTC 2020 - Kim Walisch - Initial package version