atan, atanf, atanl, atan2, atan2f, atan2l

Oblicza arcus tangens wartości (, , i atanl) lub arcus tangens (/xyatan2, atan2f, i ).atan2latanfatanx

Składnia

double atan( double x );
float atanf( float x );
long double atanl( long double x );
#define atan(X) // Requires C11 or higher

float atan( float x );  // C++ only
long double atan( long double x );  // C++ only

double atan2( double y, double x );
float atan2f( float y, float x );
long double atan2l( long double y, long double x );
#define atan2(Y, X) // Requires C11 or higher

float atan2( float y, float x );  // C++ only
long double atan2( long double y, long double x );  // C++ only

Parametry

x, y
Dowolna liczba.

Wartość zwracana

atan Zwraca arcus tangens x zakresu -π/2 do π/2 radianów. atan2 Zwraca arcus tangens zakresu y/x -π do π radianów. Jeśli x wartość to 0, atan zwraca wartość 0. Jeśli oba parametry atan2 mają wartość 0, funkcja zwraca wartość 0. Wszystkie wyniki są w radianach.

atan2 używa znaków obu parametrów do określenia ćwiartki wartości zwracanej.

Dane wejściowe Wyjątek SEH Wyjątek _matherr
± QNaN, IND Brak _DOMAIN

Uwagi

Funkcja atan oblicza arcus tangens (odwrotną funkcję tangensową) elementu x. atan2 oblicza arcus tangens wartości y/x (jeśli x równa się 0, zwraca wartość π/2, atan2 jeśli y jest dodatnia, -π/2, jeśli y jest ujemna, lub 0, jeśli y ma wartość 0).

Jeśli używasz makra atan lub atan2 z <tgmath.h>, typ argumentu określa, która wersja funkcji jest zaznaczona. Aby uzyskać szczegółowe informacje, zobacz Typy ogólne matematyczne .

atan ma implementację korzystającą z rozszerzeń SIMD przesyłania strumieniowego 2 (SSE2). Aby uzyskać informacje i ograniczenia dotyczące korzystania z implementacji SSE2, zobacz _set_SSE2_enable.

Ponieważ język C++ umożliwia przeciążenie, można wywołać przeciążenia elementów i atan2 , które przyjmują float argumenty atan lub long double . W programie języka C, chyba że używasz makra <tgmath.h> do wywoływania tej funkcji i atanatan2 zawsze pobieraj double argumenty i zwraca wartość double.

Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.

Wymagania

Procedura Wymagany nagłówek (C) Wymagany nagłówek (C++)
atan, atan2, atanf, atan2f, atanl, atan2l <math.h> <cmath> lub <math.h>
atan, atan2 makra <tgmath.h>

Przykład

// crt_atan.c
// arguments: 5 0.5
#include <math.h>
#include <stdio.h>
#include <errno.h>

int main( int ac, char* av[] )
{
   double x, y, theta;
   if( ac != 3 ){
      fprintf( stderr, "Usage: %s <x> <y>\n", av[0] );
      return 1;
   }
   x = atof( av[1] );
   theta = atan( x );
   printf( "Arctangent of %f: %f\n", x, theta );
   y = atof( av[2] );
   theta = atan2( y, x );
   printf( "Arctangent of %f / %f: %f\n", y, x, theta );
   return 0;
}
Arctangent of 5.000000: 1.373401
Arctangent of 0.500000 / 5.000000: 0.099669

Zobacz też

Obsługa obliczeń matematycznych i zmiennoprzecinkowych
acos, acosf, acosl
asin, asinf, asinl
cos, cosf, cosl
_matherr
sin, sinf, sinl
tan, tanf, tanl
_CIatan
_CIatan2