Espacios de nombres
Variantes

std::log(std::complex)

De cppreference.com
 
 
 
std::complex
Funciones miembro
Funciones no miembro
Funciones exponenciales
Funciones de potencias
Funciones trigonométricas
(C++11)
(C++11)
(C++11)
Funciones hiperbólicas
(C++11)
(C++11)
(C++11)
 
<tbody> </tbody>
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.

Parámetros

z - El valor complejo.

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.

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 cualquier x finita), el resultado es (+∞,π/2).
  • Si z es (x,NaN) (para cualquier x finita), el resultado es (NaN,NaN) y puede producirse FE_INVALID.
  • Si z es (-∞,y) (para cualquier y finita positiva), el resultado es (+∞,π).
  • Si z es (+∞,y) (para cualquier y 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 cualquier y 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).

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.

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.

Ejemplo

#include <iostream>
#include <cmath>
#include <complex>

int main()
{
    std::complex<double> z{0, 1}; // r = 1, θ = pi/2
    std::cout << "2*log" << z << " = " << 2.*std::log(z) << '\n';

    std::complex<double> z2{sqrt(2)/2, sqrt(2)/2}; // r = 1, θ = pi/4
    std::cout << "4*log" << z2 << " = " << 4.*std::log(z2) << '\n';

    std::complex<double> z3{-1, 0}; // r = 1, θ = pi
    std::cout << "log" << z3 << " = " << std::log(z3) << '\n';
    std::complex<double> z4{-1, -0.0}; // el otro lado de la ramificación
    std::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)

Véase también

Logaritmo común complejo con los cortes de ramificaciones a lo largo del eje real negativo.
(plantilla de función) [editar]
Base e exponencial compleja.
(plantilla de función) [editar]
(C++11)(C++11)
Calcula el logaritmo natural (base e) (ln(x))
(función) [editar]
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) [editar]