Partilhar via


atan, atanf, atanl, atan2, atan2f, , atan2l

Calcula o arco tangente x (atan, atanf e atanl) ou o arco tangente de y/x (atan2, atan2f e atan2l).

Sintaxe

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

Parâmetros

x, y
Quaisquer números.

Valor retornado

atan retorna o arco tangente de x no intervalo de -π/2 a π/2 radianos. atan2 retorna o arco tangente de y/x no intervalo de -π a π radianos. Se x for 0, atan retornará 0. Se ambos os parâmetros de atan2 forem 0, a função retornará 0. Todos os resultados estão em radianos.

atan2 usa os sinais de ambos os parâmetros para determinar o quadrante do valor retornado.

Entrada Exceção SEH Exceção _matherr
± QNaN, IND nenhum _DOMAIN

Comentários

A função atan calcula o arco tangente (a função inversa da tangente) de x. atan2 calcula o arco tangente de y/x (se x for igual a 0, atan2 retornará π/2 se y for positivo, -π/2 se y for negativo ou 0 se y for 0.)

Se você usar a atan macro ou atan2 de <tgmath.h>, o tipo do argumento determinará qual versão da função será selecionada. Confira Matemática do tipo genérico para obter detalhes.

atan tem uma implementação que usa SSE2 (Extensões SIMD de Streaming 2). Para obter informações e restrições relativas ao uso da implementação de SSE2, confira _set_SSE2_enable.

Como C++ permite a sobrecarga, você pode chamar sobrecargas de atan e atan2 que usam os argumentos float ou long double. Em um programa C, a menos que você esteja usando a macro <tgmath.h> para chamar essa função, atan e atan2 sempre usam argumentos double e retornam um double.

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.

Requisitos

Rotina Cabeçalho necessário (C) Cabeçalho necessário (C++)
atan, atan2, atanf, atan2f, atanl, , atan2l <math.h> <cmath> ou <math.h>
atanMacros , atan2 <tgmath.h>

Exemplo

// 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

Confira também

Suporte matemático e de ponto flutuante
acos, acosf, acosl
asin, asinf, asinl
cos, cosf, cosl
_matherr
sin, sinf, sinl
tan, tanf, tanl
_CIatan
_CIatan2