跳到内容

发布:kimwalisch/primecount

素数-7.14

8月2日11:54
比较
选择要比较的标记

这是一个维护版本,C/C++API和ABI与primecount-7完全向后兼容*

  • 修复利比迪尔。小时GCC 15问题#76.
  • 从中移动x86 cpuid代码cpuid.马力src/x86/cpuid.cpp.
  • 移动生成.hpp代码到src/generate_primes.cpp.
  • 移动generate_phi.hpp(发电_菲律宾.hpp)代码到src/phi_vector.cpp.
  • 整数128_t.hpp:将命名空间端口重命名为pstd(可移植的std命名空间)。
  • 筛子.hpp:调整AVX512和ARM SVE simd代码。
  • 筛子.hpp:无分支位掩码计算。
  • cpu支持popcnt.hpp:简化,将预处理器检查移到新的多架构_x86_popcnt.cmake.
  • 多架构avx512_vpopcnt.cmake:调整AVX512代码。
  • 多架构_x86_popcnt.cmake:检测x86 POPCNT。
  • CMakeLists.txt文件:对所有编译时定义使用CMake列表。

素数-7.13

4月18日17:57
比较
选择要比较的标记

此版本为支持它的CPU向AVX512和ARM SVE添加了运行时调度。在所有操作系统上使用GCC和Clang进行编译时,默认情况下会启用向AVX512(x64 CPU)的运行时调度功能。

  • CMakeLists.txt文件:新建带MULTIARCH选项(默认为ON)。
  • 筛子.hpp:用于x86 CPU的新AVX512 popcount算法。
  • 筛子.hpp:新的ARM SVE popcount算法。
  • int128.制造:改进对Windows的int128_t支持。
  • OpenMP.cmake(OpenMP.cmake):改进LLVM/Clang OpenMP检测。
  • 添加初步MSVC 128位支持。
  • 删除ci-sage.yml公司,3年内未更新。

素数-7.12

4月2日19:31
比较
选择要比较的标记

这是一个bug-fix版本,以前的primecount-7.11在i386 CPU架构(使用Linux和GNU glibc的x86 32位CPU)上计算对数积分时可能会导致无限循环。此版本的C/C++API和ABI与前一版本向后兼容。

  • 对数积分.cpp:修复Linux i386上的无限循环#66.
  • 黎曼R.cpp:修复Linux i386上的无限循环#66.
  • CMakeLists.txt文件:删除WITH_POPCT=关闭用于构建可移植primecount二进制文件的选项。primecount现在默认是可移植的(在x86 CPU上,primecoount现在使用CPUID检查CPU是否支持POPCNT指令,然后再使用它)。
  • 流行音乐:在x86和x64 CPU上,默认情况下启用CPUID POPCNT运行时检查(除非用户使用-mpopcnt公司).
  • 负载平衡AC.cpp:新的动态自适应负载平衡#67.
  • 黎曼R.cpp:更快更简单黎曼R_反向(x).
  • 测试/Li.cpp:添加更多测试。
  • 测试/黎曼_R.cpp:添加更多测试。
  • 快速div.hpp:摆脱make_smaller<T>::类型乱劈。

素数-7.11

3月12日13:46
比较
选择要比较的标记

这是一个新的维护版本,C/C++API和ABI与以前的版本完全向后兼容。

  • CMakeLists.txt文件:在构建时检测Apple Silicon CPU(仅在Apples OS上)并禁用libdivide,因为Apple Siricon CPU具有非常快的整数除法指令,通常比libdivider更快。这加快了简单特殊叶算法的计算速度(--S2-容易&--交流)高达10%。
  • 更快黎曼R(x)黎曼R_反向(x)实现:kimwalisch/primesiew#144.
  • 测试/iroot.cpp:修复musl-libc问题:kimwalisch/primesiew#147.
  • 测试/Li.cpp:加速测试。
  • 命令选项.cpp:检测不兼容的选项。
  • 数据表.cpp:将缓存大小增加到2 KiB。
  • 重命名的命令行选项--Ri公司-R(右)--黎曼R.
  • 重命名的命令行选项--Ri逆--黎曼R逆.
  • 改进Windows上的状态输出。
  • 更新至最新的primesieve-12.1库。

素数-7.10

1月10日21:13
比较
选择要比较的标记

这是一个新的维护版本,它与以前的版本完全向后兼容。此版本包含CMake错误修复,测试已移植到GitHub Actions,第n个主代码已清理。

  • cmake/OPMP.cmake:改进libatomic检测:kimwalisch/141号筛
  • .github/工作流/ci.yml:将AppVeyor CI测试移植到GitHub操作。
  • 黎曼R.cpp:修复中潜在的整数溢出横向(x)(_I)&反向(x)(_I).
  • 第n个prime.cpp:使用新第n素数近似值(n).
  • 矢量.hpp:重命名吊舱(_V)矢量播客阵列(_A)阵列.
  • 自述.md:添加C&C++API徽章。
  • 更新至最新的primesieve-11.2库。

多亏了@sethtroisi公司以及Sven S.成为本次发布周期的赞助商!

素数-7.9

7月3日19:19
785立方厘米
比较
选择要比较的标记

本版本的重点是改进primecount的测试套件。在此版本之前,没有对中使用的大多数算法进行单元测试馅饼(x)素数计数功能。现在几乎所有东西都经过了单元测试!

  • 测试/README.md:添加调试模式+GCC/Clang消毒剂文档。
  • doc/BUILD.md文件:添加详细测试信息的链接。
  • 测试/pi_lehmer.cpp:添加新测试。
  • 测试/pi_*.cpp:添加大型pi(x)计算测试。
  • test/gourdon/AC.cpp测试:添加新测试。
  • test/gourdon/B.cpp测试:添加新测试。
  • test/gourdon/D.cpp测试:添加新测试。
  • test/gourdon/Phi0.cpp测试:添加新测试。
  • test/gourdon/Siga.cpp测试:添加新测试。
  • 测试/葫芦/字母y.cpp:添加128位测试。
  • test/gourdon/alpha_z.cpp:添加128位测试。
  • 测试/deleglise-rivat/S2_trivial.cpp:添加大型计算测试。
  • 测试/deleglise-rivat/S2_easy.cpp:添加大型计算测试。
  • 测试/删除rivat/S2_hard.cpp:添加大型计算测试。
  • 测试/删除rivat/alpha_deleglise_rivat.cpp:添加128位测试。
  • 测试/lmo/alpha.cpp:添加更多测试。
  • 测试/api/nth_prime.cpp:添加大型计算测试。

多亏了@entersoftone公司感谢您成为本发行周期的赞助商!

素数-7.8

3月28日09:19
比较
选择要比较的标记

两天前,我修复了64位整数的pi(-n)崩溃问题。不幸的是,我忘记修复128位整数的相同问题。因此,此版本修复了128位整数的相同问题。

  • api.cpp应用程序:在中添加缺少的负数检查π(整数128_t x),pi_deleglise_rivat(整数128_t x),pi_gourdon(内部128_t x).
  • 测试/api.cpp:添加更多pi(-n)测试。
  • 测试/api_ccpp:添加更多primecount_pi(-n)测试。
  • 测试/pi_cache.cpp:添加新测试。
  • 测试/pi_deleglise_rivat.cpp:添加新测试。
  • 测试/pi_ourdon.cpp:添加新测试。
  • 测试/pi_legendre.cpp:添加新测试。
  • 测试/pi_lmo5.cpp:添加新测试。
  • 测试/pi_lmo_parallel.cpp:添加新测试。
  • 测试/pi_meisel.cpp:添加新测试。
  • CMakeLists.txt文件:禁用生成libprimesieve示例。

素数-7.7

3月26日16:46
比较
选择要比较的标记

这是一个错误修复版本。

  • api.cpp应用程序:修复pi(-1)崩溃#64。现在pi(-1)返回0而不报告任何错误。(所有其他负数的行为相同,即pi(-n)=0)
  • 测试/api.cpp:添加pi(-1)测试。
  • 测试/api_c.c:添加primecount_pi(-1)测试。转换api(c).cppapi_c.c公司.
  • 测试/nthprime.cpp:添加新测试。
  • 素数。小时:修复-Wstrict原型警告。

素数-7.6

12月7日15:47
比较
选择要比较的标记

这是一个错误修复版本。

素数-7.5(in打印.hpp)这可能会导致在使用C++17或更高版本编译时生成失败。例如,这导致Fedora-39 i686上的primecount-7.5构建失败。此问题已在primecount-7.6中修复,没有其他更改。primecount-7.6的API和ABI与primecoount-7向后兼容*

更改日志

  • print.hpp:添加缺少的<string_view>标题。

素数-7.5

12月6日18:08
比较
选择要比较的标记

primecount-7.5的C/C++API和ABI向后兼容,但primecoount-7.5现在需要≥libprimesieve.so.11。前一个素数-7.4要求≥libprimesieve.so.10。

更改日志

  • 更新至最新的libprimesieve-11.0。
  • phi.cpp公司:10%phi(x,a)加速。
  • 馅饼.cpp:将上下文切换和cpu迁移最多减少2倍。
  • 负载平衡P2.cpp:改进高CPU核心数服务器的负载平衡。
  • S2_硬.cpp:改进高CPU核心数服务器的负载平衡。
  • S2_轻松.cpp:改进高CPU核心数服务器的负载平衡。
  • AC.cpp公司:改进高CPU核心数服务器的负载平衡。
  • D.cpp公司:改进高CPU核心数服务器的负载平衡。
  • P3.cpp页:改进高CPU核心数服务器的负载平衡。
  • 筛.cpp:简化COUNT_UNSET_BIT()宏。
  • 吊舱_推进器.hpp:添加了对带析构函数的类型的支持。
  • CMakeLists.txt文件:使用WITH_DIV32=关闭使用Clang编译器时。
  • 硬特产.md:将公式转换为MathJax。
  • Easy-Special-Lowes.md简易特制屋檐:将公式转换为MathJax。
  • 部分筛功能.md:将公式转换为MathJax。