std::log(std::complex)
Definido en el archivo de encabezado <complex> | ||
template<class T > complex<T> log(const complex<T>& z ); | ||
Calcula el logaritmo natural complejo (base e) de un valor complejo z
con un punto de ramificación a lo largo del eje real negativo.
Contenido |
[editar]Parámetros
z | - | El valor complejo. |
[editar]Valor de retorno
Si no se producen errores, se devuelve el logaritmo natural complejo de z
, en el rango de una franja en el intervalo [−iπ, +iπ] a lo largo del eje imaginario y matemáticamente ilimitado a lo largo el eje real.
[editar]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,
- La función es continua sobre el punto de ramificación teniendo en cuenta el signo de la parte imaginaria.
- std::log(std::conj(z))==std::conj(std::log(z)).
- Si
z
es(-0,+0)
, el resultado es(-∞,π)
y se produce FE_DIVBYZERO. - Si
z
es(+0,+0)
, el resultado es(-∞,+0)
y se produce FE_DIVBYZERO. - Si
z
es(x,+∞)
(para cualquierx
finita), el resultado es(+∞,π/2)
. - Si
z
es(x,NaN)
(para cualquierx
finita), el resultado es(NaN,NaN)
y puede producirse FE_INVALID. - Si
z
es(-∞,y)
(para cualquiery
finita positiva), el resultado es(+∞,π)
. - Si
z
es(+∞,y)
(para cualquiery
finita positiva), el resultado es(+∞,+0)
. - Si
z
es(-∞,+∞)
, el resultado es(+∞,3π/4)
. - Si
z
es(+∞,+∞)
, el resultado es(+∞,π/4)
. - Si
z
es(±∞,NaN)
, el resultado es(+∞,NaN)
. - Si
z
es(NaN,y)
(para cualquiery
finita), el resultado es(NaN,NaN)
y puede producirse FE_INVALID. - Si
z
es(NaN,+∞)
, el resultado es(+∞,NaN)
. - Si
z
es(NaN,NaN)
, el resultado es(NaN,NaN)
.
[editar]Notas
El logaritmo natural de un número complejo z con componentes de coordenadas polares (r,θ) es igual a ln r + i(θ+2nπ), con el valor principal ln r + iθ.
La semántica de esta función pretende ser consistente con la función C clog.
[editar]Informes de defectos
Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.
ID | Aplicado a | Comportamiento según lo publicado | Comportamiento correcto |
---|---|---|---|
LWG 2597 | C++98 | La especificación maneja mal las partes imaginarias cero con signo. | Se eliminó el requerimiento erróneo. |
[editar]Ejemplo
#include <iostream>#include <cmath>#include <complex> int main(){std::complex<double> z{0, 1};// r = 1, θ = pi/2std::cout<<"2*log"<< z <<" = "<<2.*std::log(z)<<'\n'; std::complex<double> z2{sqrt(2)/2, sqrt(2)/2};// r = 1, θ = pi/4std::cout<<"4*log"<< z2 <<" = "<<4.*std::log(z2)<<'\n'; std::complex<double> z3{-1, 0};// r = 1, θ = pistd::cout<<"log"<< z3 <<" = "<<std::log(z3)<<'\n';std::complex<double> z4{-1, -0.0};// el otro lado de la ramificaciónstd::cout<<"log"<< z4 <<" (el otro lado de la ramificación) = "<<std::log(z4)<<'\n';}
Salida:
2*log(0,1) = (0,3.14159) 4*log(0.707107,0.707107) = (0,3.14159) log(-1,0) = (0,3.14159) log(-1,-0) (el otro lado de la ramificación) = (0,-3.14159)
[editar]Véase también
Logaritmo común complejo con los cortes de ramificaciones a lo largo del eje real negativo. (plantilla de función) | |
Base e exponencial compleja. (plantilla de función) | |
(C++11)(C++11) | Calcula el logaritmo natural (base e) (ln(x)) (función) |
se aplica la std::log función a cada elemento de valarray Original: applies the function std::log to each element of valarray The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (plantilla de función) | |
Documentación de C para clog |