std::acos(std::complex)
| Definido en el archivo de encabezado <complex>
|
||
template< class T > complex<T> acos( const complex<T>& z ); |
(desde C++11) | |
Calcula el arco coseno complejo de un valor complejo z. El punto de ramificación existe fuera del intervalo [−1 ; +1] a lo largo del eje real.
Parámetros
| z | - | El valor complejo. |
Valor de retorno
Si no se producen errores, se devuelve el arco coseno complejo de z, en el rango de una franja ilimitada a lo largo del eje imaginario y en el intervalo [0; +π] a lo largo del eje real.
Manejo de errores y valores especiales
Los errores se informan de acuerdo con math_errhandling.
Si la implementación es compatible con la aritmética de punto flotante IEEE,
std::acos(std::conj(z)) == std::conj(std::acos(z)).- Si
zes(±0,+0), el resultado es(π/2,-0). - Si
zes(±0,NaN), el resultado es(π/2,NaN). - Si
zes(x,+∞)(para cualquierxfinita), el resultado es(π/2,-∞). - Si
zes(x,NaN)(para cualquierxfinita distinta de cero), el resultado es(NaN,NaN)y se puede generar FE_INVALID. - Si
zes(-∞,y)(para cualquieryfinita positiva), el resultado es(π,-∞). - Si
zes(+∞,y)(para cualquieryfinita positiva), el resultado es(+0,-∞). - Si
zes(-∞,+∞), el resultado es(3π/4,-∞). - Si
zes(+∞,+∞), el resultado es(π/4,-∞). - Si
zes(±∞,NaN), el resultado es(NaN,±∞)(el signo de la parte imaginaria no está especificado). - Si
zes(NaN,y)(para cualquieryfinita), el resultado es(NaN,NaN)y se puede generar FE_INVALID. - Si
zes(NaN,+∞), el resultado es(NaN,-∞). - Si
zes(NaN,NaN), el resultado es(NaN,NaN).
Notas
El coseno inverso (o arco coseno) es una función multivaluada y requiere un punto de ramificación en el plano complejo. El punto de ramificación se coloca convencionalmente en los segmentos de línea (-∞,-1) y (1,∞) del eje real.
La definición matemática del valor principal del arco coseno es
acos z =| 1 |
| 2 |
)
.
Para cualquier z, acos(z) = π - acos(-z).
Ejemplo
#include <iostream>
#include <cmath>
#include <complex>
int main()
{
std::cout << std::fixed;
std::complex<double> z1(-2, 0);
std::cout << "acos" << z1 << " = " << std::acos(z1) << '\n';
std::complex<double> z2(-2, -0.0);
std::cout << "acos" << z2 << " (el otro lado de la ramificación) = "
<< std::acos(z2) << '\n';
// para cualquier z, acos(z) = pi - acos(-z)
const double pi = std::acos(-1);
std::complex<double> z3 = pi - std::acos(z2);
std::cout << "cos(pi - acos" << z2 << ") = " << std::cos(z3) << '\n';
}
Salida:
acos(-2.000000,0.000000) = (3.141593,-1.316958)
acos(-2.000000,-0.000000) (el otro lado de la ramificación) = (3.141593,1.316958)
cos(pi - acos(-2.000000,-0.000000)) = (2.000000,0.000000)
Véase también
(C++11) |
Calcula el arco seno de un número complejo (arcsin(z)). (plantilla de función) |
(C++11) |
Calcula la arco tangente de un número complejo (arctan(z)). (plantilla de función) |
| Calcula el coseno de un número complejo (cos(z)). (plantilla de función) | |
(C++11)(C++11) |
Calcula el arco coseno (arccos(x)) (función) |
| Se aplica la función std::acos a cada elemento de valarray. (plantilla de función) | |
Documentación de C para cacos
| |