Namespaces
Variants

cacosf, cacos, cacosl

From cppreference.net
Défini dans l'en-tête <complex.h>
float complex cacosf ( float complex z ) ;
(1) (depuis C99)
double complex cacos ( double complex z ) ;
(2) (depuis C99)
long double complex cacosl ( long double complex z ) ;
(3) (depuis C99)
Défini dans l'en-tête <tgmath.h>
#define acos( z )
(4) (depuis C99)
1-3) Calcule l'arc cosinus complexe de z avec des coupures de branche en dehors de l'intervalle [−1,+1] le long de l'axe réel.
4) Macro générique de type : Si z est de type long double complex , cacosl est appelé. Si z est de type double complex , cacos est appelé. Si z est de type float complex , cacosf est appelé. Si z est réel ou entier, alors la macro appelle la fonction réelle correspondante ( acosf , acos , acosl ). Si z est imaginaire, alors la macro appelle la version complexe correspondante.

Table des matières

Paramètres

z - argument complexe

Valeur de retour

Si aucune erreur ne se produit, l'arc cosinus complexe de z est retourné, dans une bande non bornée le long de l'axe imaginaire et dans l'intervalle [0; π] 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,

  • cacos ( conj ( z ) ) == conj ( cacos ( z ) )
  • Si z est ±0+0i , le résultat est π/2-0i
  • Si z est ±0+NaNi , le résultat est π/2+NaNi
  • Si z est x+∞i (pour tout x fini), le résultat est π/2-∞i
  • Si z est x+NaNi (pour tout x fini non nul), le résultat est NaN+NaNi et FE_INVALID peut être déclenché.
  • Si z est -∞+yi (pour tout y fini positif), le résultat est π-∞i
  • Si z est +∞+yi (pour tout y fini positif), le résultat est +0-∞i
  • Si z est -∞+∞i , le résultat est 3π/4-∞i
  • Si z est +∞+∞i , le résultat est π/4-∞i
  • Si z est ±∞+NaNi , le résultat est NaN±∞i (le signe de la partie imaginaire n'est pas spécifié)
  • 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 NaN-∞i
  • Si z est NaN+NaNi , le résultat est NaN+NaNi

Notes

L'arc cosinus (ou cosinus inverse) est une fonction multivalue et nécessite une coupure de branche sur le plan complexe. La coupure de branche est conventionnellement placée sur les segments de ligne (-∞,-1) et (1,∞) de l'axe réel.

The mathematical definition of the principal value of arc cosine is acos z =
1
2
π + i ln( i z + 1-z 2
)

Pour tout z, acos(z) = π - acos(-z)

Exemple

#include <stdio.h>
#include <math.h>
#include <complex.h>
int main(void)
{
    double complex z = cacos(-2);
    printf("cacos(-2+0i) = %f%+fi\n", creal(z), cimag(z));
    double complex z2 = cacos(conj(-2)); // or CMPLX(-2, -0.0)
    printf("cacos(-2-0i) (the other side of the cut) = %f%+fi\n", creal(z2), cimag(z2));
    // for any z, acos(z) = pi - acos(-z)
    double pi = acos(-1);
    double complex z3 = ccos(pi-z2);
    printf("ccos(pi - cacos(-2-0i) = %f%+fi\n", creal(z3), cimag(z3));
}

Sortie :

cacos(-2+0i) = 3.141593-1.316958i
cacos(-2-0i) (the other side of the cut) = 3.141593+1.316958i
ccos(pi - cacos(-2-0i) = 2.000000+0.000000i

Références

  • Norme C11 (ISO/IEC 9899:2011) :
  • 7.3.5.1 Les fonctions cacos (p: 190)
  • 7.25 Mathématiques génériques de type <tgmath.h> (p: 373-375)
  • G.6.1.1 Les fonctions cacos (p: 539)
  • G.7 Mathématiques génériques de type <tgmath.h> (p: 545)
  • Norme C99 (ISO/IEC 9899:1999) :
  • 7.3.5.1 Les fonctions cacos (p: 172)
  • 7.22 Mathématiques génériques de type <tgmath.h> (p: 335-337)
  • G.6.1.1 Les fonctions cacos (p: 474)
  • G.7 Mathématiques génériques de type <tgmath.h> (p: 480)

Voir aussi

(C99) (C99) (C99)
calcule l'arc sinus complexe
(fonction)
(C99) (C99) (C99)
calcule l'arc tangente complexe
(fonction)
(C99) (C99) (C99)
calcule le cosinus complexe
(fonction)
(C99) (C99)
calcule l'arc cosinus ( arccos(x) )
(fonction)