clogf, clog, clogl
|
Definido en el encabezado
<complex.h>
|
||
| (1) | (desde C99) | |
| (2) | (desde C99) | |
| (3) | (desde C99) | |
|
Definido en el encabezado
<tgmath.h>
|
||
|
#define log( z )
|
(4) | (desde C99) |
z
con corte de rama a lo largo del eje real negativo.
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
zes-0+0i, el resultado es-∞+πiy se genera FE_DIVBYZERO -
Si
zes+0+0i, el resultado es-∞+0iy se genera FE_DIVBYZERO -
Si
zesx+∞i(para cualquier x finito), el resultado es+∞+πi/2 -
Si
zesx+NaNi(para cualquier x finito), el resultado esNaN+NaNiy puede generarse FE_INVALID -
Si
zes-∞+yi(para cualquier y positivo finito), el resultado es+∞+πi -
Si
zes+∞+yi(para cualquier y positivo finito), el resultado es+∞+0i -
Si
zes-∞+∞i, el resultado es+∞+3πi/4 -
Si
zes+∞+∞i, el resultado es+∞+πi/4 -
Si
zes±∞+NaNi, el resultado es+∞+NaNi -
Si
zesNaN+yi(para cualquier y finito), el resultado esNaN+NaNiy puede generarse FE_INVALID -
Si
zesNaN+∞i, el resultado es+∞+NaNi -
Si
zesNaN+NaNi, el resultado esNaN+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) |
|
Documentación para C++
para
log
|
|