Namespaces
Variants

cacosf, cacos, cacosl

From cppreference.net
Definido en el encabezado <complex.h>
float complex cacosf ( float complex z ) ;
(1) (desde C99)
double complex cacos ( double complex z ) ;
(2) (desde C99)
long double complex cacosl ( long double complex z ) ;
(3) (desde C99)
Definido en el encabezado <tgmath.h>
#define acos( z )
(4) (desde C99)
1-3) Calcula el arco coseno complejo de z con cortes de rama fuera del intervalo [−1,+1] a lo largo del eje real.
4) Macro genérico de tipos: Si z tiene tipo long double complex , cacosl es llamado. Si z tiene tipo double complex , cacos es llamado. Si z tiene tipo float complex , cacosf es llamado. Si z es real o entero, entonces el macro invoca la función real correspondiente ( acosf , acos , acosl ). Si z es imaginario, entonces el macro invoca la versión correspondiente de número complejo.

Contenidos

Parámetros

z - argumento complejo

Valor de retorno

Si no ocurren errores, se devuelve el arco coseno complejo de z , en el rango de una franja no acotada a lo largo del eje imaginario y en el intervalo [0; π] 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,

  • cacos ( conj ( z ) ) == conj ( cacos ( z ) )
  • Si z es ±0+0i , el resultado es π/2-0i
  • Si z es ±0+NaNi , el resultado es π/2+NaNi
  • Si z es x+∞i (para cualquier x finito), el resultado es π/2-∞i
  • Si z es x+NaNi (para cualquier x finito distinto de cero), el resultado es NaN+NaNi y puede generarse FE_INVALID
  • Si z es -∞+yi (para cualquier y finito positivo), el resultado es π-∞i
  • Si z es +∞+yi (para cualquier y finito positivo), el resultado es +0-∞i
  • Si z es -∞+∞i , el resultado es 3π/4-∞i
  • Si z es +∞+∞i , el resultado es π/4-∞i
  • Si z es ±∞+NaNi , el resultado es NaN±∞i (el signo de la parte imaginaria no está especificado)
  • 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 NaN-∞i
  • Si z es NaN+NaNi , el resultado es NaN+NaNi

Notas

El coseno inverso (o arco coseno) es una función multivaluada y requiere un corte de rama en el plano complejo. El corte de rama se coloca convencionalmente en los segmentos de línea (-∞,-1) y (1,∞) del eje real.

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

Para cualquier z, acos(z) = π - acos(-z)

Ejemplo

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

Salida:

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

Referencias

  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.3.5.1 The cacos functions (p: 190)
  • 7.25 Type-generic math <tgmath.h> (p: 373-375)
  • G.6.1.1 The cacos functions (p: 539)
  • G.7 Type-generic math <tgmath.h> (p: 545)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.3.5.1 The cacos functions (p: 172)
  • 7.22 Type-generic math <tgmath.h> (p: 335-337)
  • G.6.1.1 The cacos functions (p: 474)
  • G.7 Type-generic math <tgmath.h> (p: 480)

Véase también

(C99) (C99) (C99)
calcula el arco seno complejo
(función)
(C99) (C99) (C99)
calcula el arco tangente complejo
(función)
(C99) (C99) (C99)
calcula el coseno complejo
(función)
(C99) (C99)
calcula el arco coseno ( arccos(x) )
(función)