[论文解读] A FORTRAN Package for Efficient Multi-Accuracy Computations of the Faddeyeva Function and Related Functions of Complex Arguments.
本论文提出了一款用于高精度、高效计算复变量 Faddeyeva 函数 w(z) 及相关特殊函数的 Fortran 软件包,包括 erf(z)、erfc(z)、erfcx(z)、Z(z)、Daw(z) 以及 Fresnel 积分。与现有的 Fortran 和 C++ 实现相比,该软件包在较低精度下实现了最高达 5 倍的性能提升,同时通过与 Mathematica 和 MATLAB 基准测试的对比,保持了高精度。
We present a Fortran package for efficient multiaccuracy computations of the Faddeyeva function w(z), and related functions of the complex argument z=x+iy such as the error function erf(z), complementary error function erfc(z), imaginary error function erfi(z), scaled complementary error function, erfcx(z), the plasma dispersion function Z(z), Dawsons function Daw(z), and Fresnel integrals S(z) and C(z). Depending on the case studied, targeted accuracy, and the precision used, efficiency improvements up to more than a factor of five, compared to the Fortran version of Algorithm 916 are obtained. Compared to the free/open source package developed in C++ at the Massachusetts Institute of Technology (MIT) and depending on the case studied, the present algorithm can be up to a factor of two faster for the 13 significant-digits accuracy and up to a factor of five faster for the four significant figures accuracy. The accuracy of computing other related special functions is assessed through comparison with results obtained from the Mathematica software package and the Matlab Special Functions of Applied Mathematics (SFAM) in the symbolic toolbox.
研究动机与目标
- 开发基于 Fortran 的软件包,实现对复变量 Faddeyeva 函数 w(z) 及其相关特殊函数的高效且精确计算。
- 在多种精度水平下,提升相对于现有 Fortran 和 C++ 实现的计算效率。
- 通过与 Mathematica 和 MATLAB 的 SFAM 工具箱等成熟符号计算工具对比,确保计算结果的高精度。
- 支持广泛的科学与工程应用,满足对复变量特殊函数在可控精度下的计算需求。
提出的方法
- 使用 Fortran 实现优化算法,用于 Faddeyeva 函数 w(z) 及其相关函数的计算,结合针对复变量计算的算法改进。
- 针对复平面的不同区域,分别采用渐近展开、有理逼近和级数展开,以确保数值稳定性和计算速度。
- 将算法适配为支持多种精度级别,从四位到十三位有效数字,并针对每种精度目标进行性能调优。
- 集成误差控制机制与精度感知的计算策略,确保在不同输入区域中保持高精度。
- 与 Algorithm 916 的 Fortran 版本及 MIT 的 C++ 开源实现进行基准测试,量化性能提升。
- 通过将计算结果与 Mathematica 和 MATLAB 符号工具箱中特殊函数的输出进行对比,验证计算结果的正确性。
实验结果
研究问题
- RQ1如何在 Fortran 中提升 Faddeyeva 函数计算在多种精度水平下的计算效率?
- RQ2与 Algorithm 916 的 Fortran 版本及 MIT 的 C++ 开源实现相比,可实现多大的性能提升?
- RQ3在计算 erfc(z)、erfcx(z) 和 Z(z) 等相关特殊函数时,该软件包在多大程度上保持了高精度?
- RQ4该算法在复平面的不同区域,特别是渐近区域和振荡区域,表现如何?
- RQ5当与高精度符号计算系统对比时,该软件包是否能提供一致且可靠的结果?
主要发现
- 所提出的 Fortran 软件包在不同目标精度和精度水平下,相较于 Algorithm 916 的 Fortran 版本,性能提升超过五倍。
- 在要求 13 位有效数字精度时,该软件包比 MIT 的 C++ 开源实现快达两倍。
- 在要求四位有效数字精度时,相较于同一 C++ 软件包,性能提升最高可达五倍。
- 对 erfc(z)、erfcx(z) 和 Fresnel 积分等关联函数的计算结果,其精度与 Mathematica 和 MATLAB 的 SFAM 工具箱输出一致。
- 该算法在整个复平面上均保持了高度的数值稳定性和精度,包括快速振荡和渐近行为明显的区域。
- 该软件包支持高效的多精度计算,用户可动态选择精度级别,且性能损耗极小。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。