数学特殊函数
来自cppreference.com
数学特殊函数库原是库 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) |
beta 函数 (函数) |
(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) |
黎曼 zeta 函数 (函数) |
(C++17)(C++17)(C++17) |
(第一类)球面贝塞尔函数 (函数) |
(C++17)(C++17)(C++17) |
球面连带勒让德函数 (函数) |
(C++17)(C++17)(C++17) |
球面诺依曼函数 (函数) |
注解
不带 "f
" 或 "l
" 后缀的数学特殊函数的 float 和 double 重载在 ISO/IEC 29124:2010 的最终草案(N3060)中存在,但在出版的 C++17/20 标准中缺失(见 LWG 问题 3234)。MSVC STL 在 VS 2022 17.3 前未提供这些重载。
这些函数与类类型的特殊成员函数无关。
功能特性测试宏 | 值 | 标准 | 备注 |
---|---|---|---|
__cpp_lib_math_special_functions |
201603L | (C++17) | Mathematical special functions |
缺陷报告
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。
缺陷报告 | 应用于 | 出版时的行为 | 正确行为 |
---|---|---|---|
LWG 3234 (P1467R9) |
C++17 | 数学特殊函数的额外重载缺失 | 要求有这些重载 |
引用
- C++23 标准(ISO/IEC 14882:2023):
- 28.7.6 Mathematical special functions [sf.cmath]
- C++20 标准(ISO/IEC 14882:2020):
- 26.8.6 Mathematical special functions [sf.cmath]
- C++17 标准(ISO/IEC 14882:2017):
- 29.9.5 Mathematical special functions [sf.cmath]