Fedora Packages

primecount-libs-9.0-1.fc46 in Fedora Rawhide

↵ Return to the main page of primecount-libs
View build
Search for updates

Package Info (Data from x86_64 build)
🠗 Changelog
🠗 Dependencies
🠗 Provides
🠗 Files

Changelog

Date Author Change
2026-11-07 Kim Walisch <walki at fedoraproject dot org> - 9.0-1 - main.cpp: Avoid KMP_BLOCKTIME warnings with LLVM OpenMP before version 18 - StatusS2.cpp: Tune the work model of D, S2_hard and LMO separately - LoadBalancerS2.cpp: Limit segment size growth to avoid huge workloads - LoadBalancerS2.cpp: Increase per-thread segment size, improves scaling - LoadBalancerS2.cpp: Remove lazy initialization of workload finish times - D.cpp: Limit threads to sqrt(x / y) / 150, up to 1.3x faster for x < 1e16 - pi_lmo_parallel.cpp: Limit threads to sqrt(x / y) / 300, up to 2x faster - S2_hard.cpp: Limit threads to sqrt(x / y) / 250, up to 1.7x faster - AC_*.hpp: Limit threads to x^(1/6) / 4, up to 1.5x faster for x < 1e17 - LoadBalancerP2.cpp: Tune threads and chunk sizes, up to 2x faster B and P2 - Choose default status precision using estimated runtime and thread count - LoadBalancerP2, LoadBalancerAC: Throttle status printing in C++14 builds - StatusS2.cpp: Smoother status for D, S2_hard and LMO using a model of the special leaves' work distribution - FastDivider.hpp: New faster multiply-shift division by precomputed reciprocals, replaces libdivide in AC and S2_easy - CMake: Rename WITH_LIBDIVIDE option to WITH_FASTDIVIDER - CMake: Disable FastDivider if not supported by the compiler (32-bit) - Remove libdivide.h, rename AC_libdivide.hpp to AC_fastdivider.hpp - Gourdon: Compute part of D and the former C1 easy leaves using a weighted Dirichlet hyperbola algorithm, cancelling prime-leaf sieve queries - AC_*.hpp: New C1_hyperbola formula computes the hyperbola terms at positions < p^2 using the segmented pi(x) lookup table - D: Bound the outer prime loops by x^(1/4) and skip factor-table scans when the remaining cofactors must be prime - Gourdon: Share one PiTable between Sigma, Phi0, AC and D, and extract Phi0's primes from it instead of sieving them again - AC.cpp: Reduce memory usage by limiting the primes vector to the range required by the A, C1 and C2 formulas - Gourdon: Remove the z parameter and --alpha-y/--alpha-z options; use --alpha to tune y - Gourdon: Allow y = sqrt(x) and simplify algorithm bounds - Apply --alpha only to the requested computation, without affecting nested pi(x) calls - test.cpp: Support --alpha with --test and parse all options before testing - FactorTable.hpp: Reduce Deleglise-Rivat S2_hard memory using 16-bit prime factor ordinals; share the implementation with Gourdon D - D, S2_hard, LMO: Reduce integer divisions in the cofactor bounds - D_avx2.hpp: Add AVX2 filtering and runtime dispatch for Gourdon D - D_arm_sve.hpp: Fix ambiguous svwhilelt_b64() call on macOS - PhiTiny.cpp: Use static lookup tables instead of initializing them at startup - CMake: Avoid internal variable name collisions with parent projects - CMake: Fix C++14 compiler mode for the executable and tests, including Emscripten builds - Build Windows x64 binaries and run Windows GCC CI using UCRT64 - Add SIMD runtime dispatching support for the MSVC compiler - popcnt.hpp: Use ARM NEON population count with the MSVC ARM64 compiler - Remove libdivide BuildRequires, unbundling and CFLAGS, no longer used - Update License to BSD-2-Clause, libdivide.h is no longer included
2026-09-28 Kim Walisch <walki at fedoraproject dot org> - 8.8-1 - D_arm_neon.hpp: ARM NEON filtering for Gourdon's D algorithm - D.cpp: Refactor runtime SIMD dispatching - AC.cpp: Refactor runtime SIMD dispatching - Fix potential MinGW GCC 16 assertion warning in debug mode - AC_libdivide.hpp: Factor out inner-loop arithmetic using sum_pi_libdivide() - AC_default.hpp: Factor out inner-loop arithmetic using sum_pi() - Remove unnecessary integer literal suffixes - sieve/count_simd.hpp: New ARM NEON sieve count kernel, for ARM CPUs without ARM SVE - D_arm_sve.hpp: Use manual ARM SVE vectorization instead of relying on auto-vectorization - D_arm_sve.hpp: Improve CPU pipelining - D_avx512.hpp: Improve CPU pipelining - D_default.hpp: Improve CPU pipelining - AC_arm_sve.hpp: Add ARM SVE implementation of AC algorithm - AC.cpp: Add ARM SVE runtime dispatch - fast_div.hpp: Add ARM SVE integer division functions - test/fast_div.cpp: Add ARM SVE tests - Add AGENTS.md file for AI agents - Update to libprimesieve 12.16
2026-08-16 Kim Walisch <walki at fedoraproject dot org> - 8.7-0 - primecount now requires C++14 or later (only for building, linking still works with C++11) - nth_prime_sieve.cpp: Fix rare OpenMP multi-threading bug - Fix GCC/Clang -Wundef warnings - PiTable.cpp: Add multi-threaded primes vector initialization - FactorTableD.hpp: Reduce Gourdon D memory using 16-bit prime factor ordinals - primecount.pc.in: Add missing libatomic and libquadmath dependencies - primecountConfig.cmake.in: Only find OpenMP when required - ci.yml: Add pkg-config and CMake find_package() CI tests - D_arm_sve.hpp: Fix GCC ARM SVE failed auto-vectorization - Fix get_max_x() for x > 10^31 - CmdOptions.cpp: Detect too many input numbers - P2.cpp: Fix potential 64-bit integer overflow - phi.cpp: Fix phi(x, a) for x >= 4611686065672028281 which requires primes > INT32_MAX - lmo/*.cpp: Fix int32_t primes overflow - api.cpp: Fix nth_prime() error message - api.cpp: Fix 128-bit nth_prime() for negative inputs - main.cpp: Validate 128-bit to 64-bit integer conversions - LoadBalancerS2.cpp: Fix Clang scaling issue - AC.cpp: Improve clustered easy leaves algorithm using Gourdon's inversion equality - AC.cpp: Implement segmented C1 algorithm to improve cache efficiency - AC.cpp: Use multi-threading to initialize the libdivide vector - util.cpp: Retune Gourdon alpha factors due to improved C algorithm - test.cpp: Improve test coverage using alternate alpha_z values - doc/Easy-Special-Leaves.pdf: Add description of new C algorithm - doc/alpha-factor-gourdon.pdf: Retune Gourdon alpha factors
2026-07-16 Kim Walisch <walki at fedoraproject dot org> - 8.6-1 - count_simd.hpp: Prevent loop unrolling to reduce branch mispredictions - Sieve.cpp: New sieving algorithm for small primes - Sieve_count_simd.hpp: Fix undefined behavior - Sieve.hpp: Use Vector<uint64_t> sieve to fix undefined behavior - Move the sieve source files into the new src/sieve directory - Fix LLVM/Clang -Wunused-template warning - Improve ARM SVE runtime dispatch - multiarch_arm_sve.cmake: Update the ARM SVE compiler support check to match
2026-05-19 Jerry James <loganjerry at gmail dot com> - 8.5-4 - Stop building for 32-bit x86 - Remove obsolete ldconfig_scriptlets macro - Use macros for architecture families - Enable future use of AVX2/AVX512 with libdivide
2026-05-10 Kim Walisch <walki at fedoraproject dot org> - 8.5-3 - OpenMP.cmake: Fix LLVM OpenMP detection
2026-05-10 Kim Walisch <walki at fedoraproject dot org> - 8.5-2 - main.cpp: Fix MSVC getenv deprecation warning - ci.yml: Add Windows/Clang GitHub Actions CI tests
2026-05-10 Kim Walisch <walki at fedoraproject dot org> - 8.5-1 - ci.yml: Add FreeBSD GitHub Actions CI tests - PiTable.cpp: Annotate OpenMP barrier with nowait - main.cpp: Set LLVM OpenMP environment variables to tune performance - CMakeLists.txt: Set WITH_DIV32=OFF by default to fix Clang-22 performance regression in the D algorithm - CMakeLists.txt: Add support for building primecount as a shared library (primecount.dll) on Windows using MSVC - CMakeLists.txt: Remove WITH_MSVC_CRT_STATIC option - FactorTable.hpp: Fix 64-bit integer overflow - CmdOptions.cpp: Validate alpha tuning factor command-line options - calculator.hpp: Fix std::tolower() undefined behavior - util.cpp: Improve get_time() precision - StatusS2.cpp: Support use in lockfree code - LoadBalancerS2.cpp: Use lockfree implementation, get rid of mutex - LoadBalancerAC.cpp: Use lockfree implementation, get rid of mutex - LoadBalancerP2.cpp: Use lockfree implementation, get rid of mutex - nth_prime.cpp: Use new nth_prime_sieve() implementation - nth_prime_sieve.cpp: Improved multi-threading - RiemannR.cpp: Add RiemannR(psi(x)) implementation - CmdOptions.cpp: Add --RiemannR-psi & --RiemannR-psi-inverse - README.md: Document --RiemannR-psi & --RiemannR-psi-inverse - doc/primecount.txt: Add --RiemannR-psi & --RiemannR-psi-inverse - doc/primecount.1: Add --RiemannR-psi & --RiemannR-psi-inverse - test/nth_prime_sieve.cpp: Update nth_prime_sieve() test - test/RiemannR_psi.cpp: New test for RiemannR(psi(x)) implementation
2026-04-05 Kim Walisch <walki at fedoraproject dot org> - 8.4-1 - test/codegen: Add assembly code generation tests - doc/Hard-Special-Leaves-SIMD-Filtering.pdf: New math paper about the branchfree SIMD hard special leaves algorithm - Vector.hpp: Improve Vector exception safety - Sieve_count_simd.hpp: Tune AVX512 and ARM SVE kernels - D_avx512.hpp: Implement new branchfree AVX512 algorithm - D_arm_sve.hpp: Implement new branchfree ARM SVE algorithm - D.cpp: Implement new branchfree portable D algorithm - FactorTableD.hpp: Add direct data() access and improve 32-bit/64-bit support for the new D algorithms - popcnt.hpp: Add popcnt64_native() to bypass POPCNT runtime checks - multiarch_avx512_vpopcnt.cmake: Require AVX512BW and AVX512VL - cpu_arch_macros.hpp: Require AVX512BW and AVX512VL - cpu_supports_avx512_vpopcnt.hpp: Detect AVX512BW and AVX512VL - cpuid.cpp: Detect AVX512BW and AVX512VL - multiarch_arm_sve.cmake: Improve ARM SVE compile test for svcompact() - sve.cpp: Clarify ARM SVE detection requirements - Sieve.hpp: Update AVX512 attributes to use AVX512BW and AVX512VL - Sieve_count_start_stop.hpp: Remove count_algo_name() and update AVX512 attributes - Sieve_count_stop.hpp: Simplify count() algorithm selection - S2_hard.cpp: Remove obsolete SIMD-specialized thread code - pi_lmo_parallel.cpp: Remove obsolete SIMD-specialized thread code - pi_lmo5.cpp: Remove bit counting algorithm status output
2026-03-17 Kim Walisch <walki at fedoraproject dot org> - 8.3-2 - Fix invalid changelog formatting in 8.3-1

Provides

  • libprimecount.so.9()(64bit)
  • primecount-libs
  • primecount-libs(x86-64)

Files


Sources on Pagure