std::erfc
科技促进发展:ERFC
Defined in header | | |
---|---|---|
float erfc( float arg | (1) | (since C++11) |
double erfc( double arg | (2) | (since C++11) |
long double erfc( long double arg | (3) | (since C++11) |
double erfc( Integral arg | (4) | (since C++11) |
1-3%29计算互补误差函数成arg
,那就是1.0-erf(arg)
,但对于大型系统来说,它的精度并没有下降。arg
4%29一组过载或接受任意参数的函数模板积分型等于2%29%28double
29%。
参数
arg | - | value of a floating-point or Integral type |
---|
返回值
如果没有错误发生,则互补错误函数的值arg
,那就是
二
*。
#number7#π
富∞
阿格e
-T2
丁T型
或1-ERF%28 arg%29,返回。
如果由于下流而发生范围错误,则返回舍入%29后的正确结果%28。
错误处理
错误按数学[医]错误处理...
如果实现支持ieee浮点算法%28IEC 60559%29,
- 如果参数为+∞,则返回+0
- 如果参数为-∞,则返回2。
- 如果参数为nan,则返回nan。
注记
适用于ieee兼容的类型。double,保证在以下情况下arg>26.55。
例
二次
#include <iostream>
#include <cmath>
#include <iomanip>
double normalCDF(double x) // Phi(-∞, x) aka N(x)
{
return std::erfc(-x/std::sqrt(2))/2;
}
int main()
{
std::cout << "normal cumulative distribution function:\n"
<< std::fixed << std::setprecision(2
for(double n=0; n<1; n+=0.1)
std::cout << "normalCDF(" << n << ") " << 100*normalCDF(n) << "%\n";
std::cout << "special values:\n"
<< "erfc(-Inf) = " << std::erfc(-INFINITY) << '\n'
<< "erfc(Inf) = " << std::erfc(INFINITY) << '\n';
}
二次
产出:
二次
normal cumulative distribution function:
normalCDF(0.00) 50.00%
normalCDF(0.10) 53.98%
normalCDF(0.20) 57.93%
normalCDF(0.30) 61.79%
normalCDF(0.40) 65.54%
normalCDF(0.50) 69.15%
normalCDF(0.60) 72.57%
normalCDF(0.70) 75.80%
normalCDF(0.80) 78.81%
normalCDF(0.90) 81.59%
normalCDF(1.00) 84.13%
special values:
erfc(-Inf) = 2.00
erfc(Inf) = 0.00
二次
另见
erf (C++11) | error function (function) |
---|
c为ERFC编写的文件
外部链接
韦斯斯坦,埃里克W.“ERFC”来自MathWorld的一个Wolfram Web资源。
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。