| Index | index by Group | index by Distribution | index by Vendor | index by creation date | index by Name | Mirrors | Help | Search |
| Name: primecount-libs | Distribution: Fedora Project |
| Version: 9.0 | Vendor: Fedora Project |
| Release: 1.fc46 | Build date: Sat Nov 7 17:54:10 2026 |
| Group: Unspecified | Build host: buildvm-s390x-08.s390.fedoraproject.org |
| Size: 593861 | Source RPM: primecount-9.0-1.fc46.src.rpm |
| Packager: Fedora Project | |
| Url: https://github.com/kimwalisch/primecount/ | |
| Summary: C++ library for fast prime counting | |
This package contains a C++ library for counting primes below an integer. See the primecount package for a command line interface.
BSD-2-Clause
* Sat Nov 07 2026 Kim Walisch <walki@fedoraproject.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
* Mon Sep 28 2026 Kim Walisch <walki@fedoraproject.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
* Sun Aug 16 2026 Kim Walisch <walki@fedoraproject.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
* Thu Jul 16 2026 Kim Walisch <walki@fedoraproject.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
* Tue May 19 2026 Jerry James <loganjerry@gmail.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
* Sun May 10 2026 Kim Walisch <walki@fedoraproject.org> - 8.5-3
- OpenMP.cmake: Fix LLVM OpenMP detection
* Sun May 10 2026 Kim Walisch <walki@fedoraproject.org> - 8.5-2
- main.cpp: Fix MSVC getenv deprecation warning
- ci.yml: Add Windows/Clang GitHub Actions CI tests
* Sun May 10 2026 Kim Walisch <walki@fedoraproject.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
* Sun Apr 05 2026 Kim Walisch <walki@fedoraproject.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
* Tue Mar 17 2026 Kim Walisch <walki@fedoraproject.org> - 8.3-2
- Fix invalid changelog formatting in 8.3-1
* Tue Mar 17 2026 Kim Walisch <walki@fedoraproject.org> - 8.3-1
- fast_div.hpp: Improve x64 assembly
- S2_easy.cpp: Bidirectional clustered easy leaves optimization
- AC.cpp: Bidirectional clustered easy leaves optimization
- AC.cpp: Cast to smaller type optimization
- SegmentedPiTable.hpp: Use faster lightweight compression
- SegmentedPiTable.cpp: Use faster lightweight compression
- SegmentedPiTable.cpp: Do not interleave pi and bits lookup tables
- SegmentedPiTable.cpp: Reuse primesieve::iterator object when initializing multiple segments
- LoadBalancerAC.cpp: Tune single thread performance
- Sieve.cpp: Optimize cross_off() and cross_off_count()
- Sieve.cpp: Tune minimum counter distance
- nth_prime_sieve.hpp: Optimize 128-bit division on x64 CPUs
- util.hpp: Tune alpha_z for new AC algorithm
- README.md: Update benchmark timings
* Fri Feb 06 2026 Kim Walisch <walki@fedoraproject.org> - 8.2-1
- Fix missing version in .pc file
* Mon Jan 26 2026 Kim Walisch <walki@fedoraproject.org> - 8.1-9
- S2_easy.cpp: Fix "#pragma omp master" deprecated in OpenMP 5.1
- Fix incorrect release number in previous changelog entry
* Mon Jan 26 2026 Kim Walisch <walki@fedoraproject.org> - 8.1-0
- CMakeLists.txt: Fix CMAKE_PROJECT_VERSION not defined
- AC.cpp: Up to 15% faster due to improved instruction level parallelism
- Sieve_count*.hpp: Improve GCC conditional move code gen
- Automated building Windows binaries using GitHub Actions CI
* Sat Jan 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 8.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Wed Dec 17 2025 Kim Walisch <walki@fedoraproject.org> - 8.0-7
- Yet another rebuild due to automated test network timeout
* Wed Dec 17 2025 Kim Walisch <walki@fedoraproject.org> - 8.0-6
- Rebuild due to Fedora Automated tests timeout
* Tue Dec 16 2025 Kim Walisch <walki@fedoraproject.org> - 8.0-5
- Use ANSI escape sequence to clear terminal text line
* Mon Dec 15 2025 Kim Walisch <walki@fedoraproject.org> - 8.0-4
- Fix status output in --AC option
* Mon Dec 15 2025 Kim Walisch <walki@fedoraproject.org> - 8.0-3
- Rebuild due to bodhi automated test failure (Fedora network down)
* Sun Dec 14 2025 Kim Walisch <walki@fedoraproject.org> - 8.0-2
- Fix flickering when using --status option
* Sun Dec 14 2025 Kim Walisch <walki@fedoraproject.org> - 8.0-1
- api.cpp: Fix broken 128-bit nth prime function
- util.cpp: Fix undefined behavior in to_string()
- calculator.hpp: Add code to detect integer overflows
- LoadBalancerP2.cpp: Faster critical section
- LoadBalancerS2.cpp: Faster critical section
- LoadBalancerAC.cpp: Faster critical section
- nth_prime.cpp: Improve status output
- AC.cpp: Improved instruction level parallelism
- AC_libdivide.cpp: Improved instruction level parallelism
- D.cpp: Refactor runtime dispatch to optimized SIMD algorithm
- S2_hard.cpp: Refactor runtime dispatch to optimized SIMD algorithm
- pi_lmo_parallel.cpp: Add support for runtime dispatch to optimized SIMD algorithm
- Move S2_easy_libdivide.cpp code into S2_easy.cpp
- Move AC_libdivide.cpp code into AC.cpp
- src/app/test.cpp: Speed up tests
- CMakeLists.txt: Set CMAKE_VISIBILITY_INLINES_HIDDEN = ON by default
* Tue Nov 04 2025 Kim Walisch <walki@fedoraproject.org> - 7.20-1
- pi_gourdon.cpp: Quickly verify pi(x) results
- pi_deleglise_rivat.cpp: Quickly verify pi(x) results
- pi_lmo_parallel.cpp: Quickly verify pi(x) results
- CmdOptions.cpp: Add --double-check option
- build_mingw64_arm64.sh: Enable ARM SVE for Mingw-w64 on ARM64
- doc/Easy-Special-Leaves.pdf: Converted Markdown to LaTeX
- doc/Hard-Special-Leaves.pdf: Converted Markdown to LaTeX
- doc/Partial-Sieve-Function.pdf: Converted Markdown to LaTeX
- ci.yml: Add WebAssembly/Emscripten test
- BUILD.md: Add WebAssembly/Emscripten build instructions
- README.md: Updated Algorithms section
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 7.19-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Wed Jun 04 2025 Kim Walisch <walki@fedoraproject.org> - 7.19-2
- nth_prime_sieve.hpp: Add missing include guards
- Update ChangeLog
* Wed Jun 04 2025 Kim Walisch <walki@fedoraproject.org> - 7.19-1
- 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/CPI API functions
* Sat May 17 2025 Kim Walisch <walki@fedoraproject.org> - 7.18-1
- 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 2025 Kim Walisch <walki@fedoraproject.org> - 7.17-2
- Sieve_pre_sieve.hpp: Improved pre-sieving using primes ≤ 71
* Mon Apr 28 2025 Kim Walisch <walki@fedoraproject.org> - 7.17-1
- Sieve_pre_sieve.hpp: Improved pre-sieving using primes ≤ 37
- 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
* Tue Apr 01 2025 Kim Walisch <walki@fedoraproject.org> - 7.16-1
- 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-internal.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 2025 Kim Walisch <walki@fedoraproject.org> - 7.15-2
- multiarch_arm_sve.cmake: Update to latest ARM SVE code
* Mon Mar 03 2025 Kim Walisch <walki@fedoraproject.org> - 7.15-1
- 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
* Sat Jan 18 2025 Fedora Release Engineering <releng@fedoraproject.org> - 7.14-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
/usr/lib/.build-id /usr/lib/.build-id/c4 /usr/lib/.build-id/c4/669e41c157389b02021a2952af6bab66adacc1 /usr/lib64/libprimecount.so.9 /usr/lib64/libprimecount.so.9.0 /usr/share/licenses/primecount-libs /usr/share/licenses/primecount-libs/COPYING
Generated by rpm2html 1.8.1
Fabrice Bellet, Sat Nov 14 05:06:46 2026