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> |
atan Macros , 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