Namespaces
Variants

clogf, clog, clogl

From cppreference.net
Défini dans l'en-tête <complex.h>
float complex clogf ( float complex z ) ;
(1) (depuis C99)
double complex clog ( double complex z ) ;
(2) (depuis C99)
long double complex clogl ( long double complex z ) ;
(3) (depuis C99)
Défini dans l'en-tête <tgmath.h>
#define log( z )
(4) (depuis C99)
1-3) Calcule le logarithme naturel (base- e ) complexe de z avec une coupure de branche le long de l'axe réel négatif.
4) Macro générique de type : Si z est de type long double complex , clogl est appelé. Si z est de type double complex , clog est appelé. Si z est de type float complex , clogf est appelé. Si z est réel ou entier, alors la macro appelle la fonction réelle correspondante ( logf , log , logl ). Si z est imaginaire, la version complexe correspondante est appelée.

Table des matières

Paramètres

z - argument complexe

Valeur de retour

Si aucune erreur ne se produit, le logarithme naturel complexe de z est retourné, dans la plage d'une bande dans l'intervalle [−iπ, +iπ] le long de l'axe imaginaire et mathématiquement non borné le long de l'axe réel.

Gestion des erreurs et valeurs spéciales

Les erreurs sont signalées conformément à math_errhandling

Si l'implémentation prend en charge l'arithmétique à virgule flottante IEEE,

  • La fonction est continue sur la coupure de branche en tenant compte du signe de la partie imaginaire
  • clog ( conj ( z ) ) == conj ( clog ( z ) )
  • Si z est -0+0i , le résultat est -∞+πi et FE_DIVBYZERO est déclenché
  • Si z est +0+0i , le résultat est -∞+0i et FE_DIVBYZERO est déclenché
  • Si z est x+∞i (pour tout x fini), le résultat est +∞+πi/2
  • Si z est x+NaNi (pour tout x fini), le résultat est NaN+NaNi et FE_INVALID peut être déclenché
  • Si z est -∞+yi (pour tout y positif fini), le résultat est +∞+πi
  • Si z est +∞+yi (pour tout y positif fini), le résultat est +∞+0i
  • Si z est -∞+∞i , le résultat est +∞+3πi/4
  • Si z est +∞+∞i , le résultat est +∞+πi/4
  • Si z est ±∞+NaNi , le résultat est +∞+NaNi
  • Si z est NaN+yi (pour tout y fini), le résultat est NaN+NaNi et FE_INVALID peut être déclenché
  • Si z est NaN+∞i , le résultat est +∞+NaNi
  • Si z est NaN+NaNi , le résultat est NaN+NaNi

Notes

Le logarithme naturel d'un nombre complexe z avec des composantes de coordonnées polaires (r,θ) est égal à ln r + i(θ+2nπ) , avec la valeur principale ln r + iθ

Exemple

#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));
}

Sortie :

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

Références

  • Norme C11 (ISO/IEC 9899:2011) :
  • 7.3.7.2 Les fonctions clog (p: 195)
  • 7.25 Mathématiques génériques de type <tgmath.h> (p: 373-375)
  • G.6.3.2 Les fonctions clog (p: 543-544)
  • G.7 Mathématiques génériques de type <tgmath.h> (p: 545)
  • Norme C99 (ISO/IEC 9899:1999) :
  • 7.3.7.2 Les fonctions clog (p: 176-177)
  • 7.22 Mathématiques génériques de type <tgmath.h> (p: 335-337)
  • G.6.3.2 Les fonctions clog (p: 478-479)
  • G.7 Mathématiques génériques de type <tgmath.h> (p: 480)

Voir aussi

(C99) (C99) (C99)
calcule l'exponentielle complexe en base e
(fonction)
(C99) (C99)
calcule le logarithme naturel (base- e ) ( ln(x) )
(fonction)