std::erfc, std::erfcf, std::erfcl
De cppreference.com
Definido en el archivo de encabezado <cmath> | ||
float erfc (float arg ); float erfcf(float arg ); | (1) | (desde C++11) |
double erfc (double arg ); | (2) | (desde C++11) |
longdouble erfc (longdouble arg ); longdouble erfcl(longdouble arg ); | (3) | (desde C++11) |
double erfc ( TipoEntero arg ); | (4) | (desde C++11) |
1-3) Calcula la función error complementaria de
arg
, es decir, 1.0-erf(arg)
, pero sin la pérdida de precisión para un arg
muy grande.4) Un conjunto de sobrecargas o una plantilla de función que acepta un argumento de cualquier tipo entero. Equivalente a (2) (el argumento se convierte a double).
Contenido |
[editar]Parámetros
arg | - | Valor de un tipo de punto flotante o un tipo entero. |
[editar]Valor de retorno
Si no se producen errores, se devuelve el valor de la función error complementaria dearg
, es decir, 2 |
√π |
arge-t2
dt o 1-erf(arg).
Si se produce un error de rango debido a subdesbordamiento, se devuelve el resultado correcto (después del redondeo).
[editar]Manejo de errores
Los errores se informan como se especifica en math_errhandling.
Si la implementación admite la aritmética de punto flotante IEEE (IEC 60559):
- Si el argumento es +∞, se devuelve +0.
- Si el argumento es -∞, se devuelve 2.
- Si el argumento es NaN, se devuelve NaN.
[editar]Notas
Para el tipo double
compatible con IEEE, se garantiza el subdesbordamiento si arg
> 26.55.
[editar]Ejemplo
Ejecuta este código
#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<<"función de distribución acumulativa normal:\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<<"valores especiales:\n"<<"erfc(-Inf) = "<< std::erfc(-INFINITY)<<'\n'<<"erfc(Inf) = "<< std::erfc(INFINITY)<<'\n';}
Salida:
función de distribución acumulativa normal: 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% valores especiales: erfc(-Inf) = 2.00 erfc(Inf) = 0.00
[editar]Véase también
(C++11)(C++11)(C++11) | Función de error. (función) |
Documentación de C para erfc |
[editar]Enlaces externos
Weisstein, Eric W. "Erfc." De MathWorld – Un recurso web de Wolfram.