数学特殊函数 (自 C++17 起)
来自 cppreference.com
数学特殊函数库最初是 Library TR1 ISO/IEC TR 19768:2007 的一部分,然后作为独立的 ISO 标准 ISO/IEC 29124:2010 发布,最后在 C++17 时合并到 ISO C++ 中。
请参阅 数学特殊函数,了解该库的 ISO/IEC 29124:2010 版本。
内容 |
[编辑] 函数
在头文件
<cmath> 中定义 | |
(C++17)(C++17)(C++17) |
缔合拉盖尔多项式 (函数) |
(C++17)(C++17)(C++17) |
缔合勒让德多项式 (函数) |
(C++17)(C++17)(C++17) |
贝塔函数 (函数) |
(C++17)(C++17)(C++17) |
(完全) 第一类椭圆积分 (函数) |
(C++17)(C++17)(C++17) |
(完全) 第二类椭圆积分 (函数) |
(C++17)(C++17)(C++17) |
(完全) 第三类椭圆积分 (函数) |
(C++17)(C++17)(C++17) |
正则修正圆柱贝塞尔函数 (函数) |
(C++17)(C++17)(C++17) |
圆柱贝塞尔函数(第一类) (函数) |
(C++17)(C++17)(C++17) |
非正则修正圆柱贝塞尔函数 (函数) |
(C++17)(C++17)(C++17) |
圆柱诺依曼函数 (函数) |
(C++17)(C++17)(C++17) |
(不完全) 第一类椭圆积分 (函数) |
(C++17)(C++17)(C++17) |
(不完全) 第二类椭圆积分 (函数) |
(C++17)(C++17)(C++17) |
(不完全) 第三类椭圆积分 (函数) |
(C++17)(C++17)(C++17) |
指数积分 (函数) |
(C++17)(C++17)(C++17) |
埃尔米特多项式 (函数) |
(C++17)(C++17)(C++17) |
勒让德多项式 (函数) |
(C++17)(C++17)(C++17) |
拉盖尔多项式 (函数) |
(C++17)(C++17)(C++17) |
黎曼ζ函数 (函数) |
(C++17)(C++17)(C++17) |
球面贝塞尔函数(第一类) (函数) |
(C++17)(C++17)(C++17) |
球面缔合勒让德函数 (函数) |
(C++17)(C++17)(C++17) |
球面诺依曼函数 (函数) |
[编辑] 注意
ISO/IEC 29124:2010 的最终草案 (N3060) 中存在没有“f
”或“l
”后缀的数学特殊函数的 float 和 long double 重载,但已发布的 C++17/20 标准中没有(请参阅 LWG 问题 3234)。这些重载在 VS 2022 17.3 之前,MSVC STL 没有提供。
这些函数与类类型的 特殊成员函数 无关。
功能测试 宏 | 值 | Std | 功能 |
---|---|---|---|
__cpp_lib_math_special_functions |
201603L | (C++17) | 数学特殊函数 |
[编辑] 缺陷报告
以下行为变更缺陷报告被追溯应用于以前发布的 C++ 标准。
DR | 应用于 | 已发布的行为 | 正确行为 |
---|---|---|---|
LWG 3234 (P1467R9) |
C++17 | 缺少数学特殊函数的附加重载 | 这些重载是必需的 |
[编辑] 参考文献
- C++23 标准 (ISO/IEC 14882:2024)
- 28.7.6 数学特殊函数 [sf.cmath]
- C++20 标准 (ISO/IEC 14882:2020)
- 26.8.6 数学特殊函数 [sf.cmath]
- C++17 标准 (ISO/IEC 14882:2017)
- 29.9.5 数学特殊函数 [sf.cmath]