atan, atanf, atan2, atan2f
Вычисляет арктангенс x (atan OR atanf) или арктангенс y/x (atan2 OR atan2f).
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
);
float atan2f(
float y,
float x
);
Параметры
- x, y
Все числа.
Возвращаемое значение
atan возвращает арктангенс x в диапазоне от - π/2 к радианам π/2.atan2 возвращает арктангенс y/x в диапазоне от - π к радианам π.If x 0 atan возвращает 0.Если оба параметра atan2 0, функция возвращает 0.Все результаты в радианах.
atan2 использует символы обоих параметров определить quadrant возвращаемого значения.
Ввод |
ЭТО исключение |
Исключение Matherr |
---|---|---|
± QNAN,IND |
нет |
_DOMAIN |
Заметки
atan функция вычисляет арктангенс x.atan2 вычисляет арктангенс y/x (если x равно 0, atan2 возвращает π/2 если y положительно, если - π/2 y отрицательное или 0, если y 0).
atan содержит реализацию потоковой передачи, которая использует расширения SIMD (SSE2 2).См. _set_SSE2_enable дополнительные сведения и ограничения в пользовании реализация SSE2.
C++ позволяет перегружать, поэтому можно вызвать перегрузки atan и atan2.В программе c atan и atan2 всегда принимайте и возвращайте аналогом.
Требования
Процедура |
Обязательный заголовок |
---|---|
atan, atan2, atanf, atan2f |
<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;
}