erf, erff, erfl
Определено в заголовочном файле <math.h> | ||
|---|---|---|
float erff( float arg ); | (1) | (с C99) |
double erf( double arg ); | (2) | (с C99) |
long double erfl( long double arg ); | (3) | (с C99) |
Определено в заголовочном файле <tgmath.h> | ||
#define erf( arg ) | (4) | (с C99) |
1-3) Вычисляет функцию ошибки
arg.
4) Универсальный макрос: Если
arg имеет тип long double, вызывается erfl. В противном случае, если arg имеет целочисленный тип или тип double, вызывается erf. В противном случае, вызывается erff. Параметры
| arg | - | значение с плавающей точкой |
Возвращаемое значение
Если ошибок не произошло, возвращается значение функции ошибки отarg, т.е. \(\frac{2}{\sqrt{\pi} }\int_{0}^{arg}{e^{-{t^2} }\mathsf{d}t}\)2/√π∫arg0e-t2dt. Если возникает ошибка диапазона из-за переполнения, возвращается правильный результат (после округления), т.е. \(\frac{2\cdot arg}{\sqrt{\pi} }\)2*arg/√π. Обработка ошибок
Ошибки сообщаются в соответствии с math_errhandling.
Если реализация поддерживает арифметику с плавающей точкой IEEE (IEC 60559),
- Если аргумент равен ±0, возвращается ±0
- Если аргумент равен ±∞, возвращается ±1
- Если аргумент равен NaN, возвращается NaN
Примечания
Переполнение гарантируется, если |arg| < DBL_MIN*(sqrt(π)/2). \(\operatorname{erf}(\frac{x}{\sigma \sqrt{2} })\)erf(
Пример
#include <math.h>
#include <stdio.h>
double phi(double x1, double x2)
{
return (erf(x2 / sqrt(2)) - erf(x1 / sqrt(2))) / 2;
}
int main(void)
{
puts("normal variate probabilities:");
for (int n = -4; n < 4; ++n)
printf("[%2d:%2d]: %5.2f%%\n", n, n + 1, 100 * phi(n, n + 1));
puts("special values:");
printf("erf(-0) = %f\n", erf(-0.0));
printf("erf(Inf) = %f\n", erf(INFINITY));
}Вывод:
normal variate probabilities: [-4:-3]: 0.13% [-3:-2]: 2.14% [-2:-1]: 13.59% [-1: 0]: 34.13% [ 0: 1]: 34.13% [ 1: 2]: 13.59% [ 2: 3]: 2.14% [ 3: 4]: 0.13% special values: erf(-0) = -0.000000 erf(Inf) = 1.000000
Ссылки
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.12.8.1 Функции erf (стр. 249)
- 7.25 Универсальные математические функции <tgmath.h> (стр. 373-375)
- F.10.5.1 Функции erf (стр. 525)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.12.8.1 Функции erf (стр. 230)
- 7.22 Универсальные математические функции <tgmath.h> (стр. 335-337)
- F.9.5.1 Функции erf (стр. 462)
См. также
|
(C99)(C99)(C99) | вычисляет дополнительную функцию ошибки (функция) |
Документация C++ для erf |
|
Внешние ссылки
| Weisstein, Eric W. "Erf." Из MathWorld — Wolfram Web Resource. |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/numeric/math/erf