Namespaces
Variants

clogf, clog, clogl

From cppreference.net
Definido en el encabezado <complex.h>
float complex clogf ( float complex z ) ;
(1) (desde C99)
double complex clog ( double complex z ) ;
(2) (desde C99)
long double complex clogl ( long double complex z ) ;
(3) (desde C99)
Definido en el encabezado <tgmath.h>
#define log( z )
(4) (desde C99)
1-3) Calcula el logaritmo natural complejo (base- e ) de z con corte de rama a lo largo del eje real negativo.
4) Macro genérico de tipos: Si z tiene tipo long double complex , clogl es llamado. Si z tiene tipo double complex , clog es llamado. Si z tiene tipo float complex , clogf es llamado. Si z es real o entero, entonces el macro invoca la función real correspondiente ( logf , log , logl ). Si z es imaginario, se llama la versión correspondiente de número complejo.

Contenidos

Parámetros

z - argumento complejo

Valor de retorno

Si no ocurren 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 no acotado a lo largo del eje real.

Manejo de errores y valores especiales

Los errores se reportan de manera consistente con math_errhandling

Si la implementación admite aritmética de punto flotante IEEE,

  • La función es continua sobre el corte de rama teniendo en cuenta el signo de la parte imaginaria
  • clog ( conj ( z ) ) == conj ( clog ( z ) )
  • Si z es -0+0i , el resultado es -∞+πi y se genera FE_DIVBYZERO
  • Si z es +0+0i , el resultado es -∞+0i y se genera FE_DIVBYZERO
  • Si z es x+∞i (para cualquier x finito), el resultado es +∞+πi/2
  • Si z es x+NaNi (para cualquier x finito), el resultado es NaN+NaNi y puede generarse FE_INVALID
  • Si z es -∞+yi (para cualquier y positivo finito), el resultado es +∞+πi
  • Si z es +∞+yi (para cualquier y positivo finito), el resultado es +∞+0i
  • Si z es -∞+∞i , el resultado es +∞+3πi/4
  • Si z es +∞+∞i , el resultado es +∞+πi/4
  • Si z es ±∞+NaNi , el resultado es +∞+NaNi
  • Si z es NaN+yi (para cualquier y finito), el resultado es NaN+NaNi y puede generarse FE_INVALID
  • Si z es NaN+∞i , el resultado es +∞+NaNi
  • Si z es NaN+NaNi , el resultado es NaN+NaNi

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θ

Ejemplo

#include <stdio.h>
#include <math.h>
#include <complex.h>
int main(void)
{
    double complex z = clog(I); // r = 1, θ = pi/2
    printf("2*log(i) = %.1f%+fi\n", creal(2*z), cimag(2*z));
    double complex z2 = clog(sqrt(2)/2 + sqrt(2)/2*I); // r = 1, θ = pi/4
    printf("4*log(sqrt(2)/2+sqrt(2)i/2) = %.1f%+fi\n", creal(4*z2), cimag(4*z2));
    double complex z3 = clog(-1); // r = 1, θ = pi
    printf("log(-1+0i) = %.1f%+fi\n", creal(z3), cimag(z3));
    double complex z4 = clog(conj(-1)); // or clog(CMPLX(-1, -0.0)) in C11
    printf("log(-1-0i) (the other side of the cut) = %.1f%+fi\n", creal(z4), cimag(z4));
}

Salida:

2*log(i) = 0.0+3.141593i
4*log(sqrt(2)/2+sqrt(2)i/2) = 0.0+3.141593i
log(-1+0i) = 0.0+3.141593i
log(-1-0i) (the other side of the cut) = 0.0-3.141593i

Referencias

  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.3.7.2 The clog functions (p: 195)
  • 7.25 Type-generic math <tgmath.h> (p: 373-375)
  • G.6.3.2 The clog functions (p: 543-544)
  • G.7 Type-generic math <tgmath.h> (p: 545)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.3.7.2 The clog functions (p: 176-177)
  • 7.22 Type-generic math <tgmath.h> (p: 335-337)
  • G.6.3.2 The clog functions (p: 478-479)
  • G.7 Type-generic math <tgmath.h> (p: 480)

Véase también

(C99) (C99) (C99)
calcula la exponencial compleja base e
(función)
(C99) (C99)
calcula el logaritmo natural (base- e ) ( ln(x) )
(función)