Поделиться через


atan, atanf, atanl, atan2, atan2f, atan2l

Вычисляет арктангенс x (atan, atanf и atanl) или арктангенс y/x (atan2, atan2f и atan2l).

double atan( 
   double x 
);
float atan(
   float x 
);  // C++ only
long double atan(
   long double x
);  // C++ only
double atan2( 
   double y, 
   double x 
);
float atan2(
   float y,
   float x
);  // C++ only
long double atan2(
   long double y,
   long double x
);  // C++ only
float atanf( 
   float x 
);
long double atanl(
   long double x
);
float atan2f(
   float y,
   float x
);
long double atan2l(
   long double y,
   long double x
);

Параметры

  • x, y
    Любые числа.

Возвращаемое значение

atan возвращает арктангенс от x диапазоне от -π/2 до π/2 радиан. atan2 возвращает арктангенс от y/x диапазоне от –π до π радиан. Если x равен 0, то atan возвращает 0. Если оба параметра atan2 равны 0, функция возвращает 0. Все результаты в радианах.

atan2 использует знаки обоих параметров, чтобы определить квадрант возвращаемого значения.

Ввод

Исключение SEH

Исключение Matherr

± QNAN,IND

Нет

_DOMAIN

Заметки

Функция atan вычисляет арктангенс (обратную функцию тангенса) от x. atan2 вычисляет арктангенс от y/x (если x равно 0, то atan2 возвращает π/2, если y положительно, π/2, если y отрицательно или равно 0, если y равно 0).

atan имеет реализацию, которая использует набор инструкций SSE2. Дополнительные сведения и ограничения по использованию реализации с SSE2 см. в разделе _set_SSE2_enable.

Поскольку C++ допускает перегрузки, можно вызывать перегрузки atan и atan2. В программе на языке C atan и atan2 всегда принимают и возвращают значения типа double.

Требования

Подпрограмма

Обязательный заголовок

atan, atan2, atanf, atan2f, atanl, atan2l

<math.h>

Пример

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

Эквивалент в .NET Framework

См. также

Ссылки

Поддержка чисел с плавающей запятой

acos, acosf, acosl

asin, asinf, asinl

cos, cosf, cosl, cosh, coshf, coshl

_matherr

sin, sinf, sinl, sinh, sinhf, sinhl

tan, tanf, tanl, tanh, tanhf, tanhl

_CIatan

_CIatan2