Spec-Zone.ru › C

atan, atanf, atanl

Определено в заголовочном файле <math.h>
float       atanf( float arg );
(1) (с C99)
double      atan( double arg );
(2)
long double atanl( long double arg );
(3) (с C99)
_Decimal32  atand32( _Decimal32 arg );
(4) (с C23)
_Decimal64  atand64( _Decimal64 arg );
(5) (с C23)
_Decimal128 atand128( _Decimal128 arg );
(6) (с C23)
Определено в заголовочном файле <tgmath.h>
#define atan( arg )
(7) (с C99)
1-6) Вычисляет главное значение арктангенса arg.
7) Универсальная макрокоманда типа: если аргумент имеет тип long double, вызывается (3) (atanl). В противном случае, если аргумент имеет целочисленный тип или тип double, вызывается (2) (atan). В противном случае, вызывается (1) (atanf). Если аргумент является комплексным, макрос вызывает соответствующую комплексную функцию (catanf, catan, catanl).

Функции (4-6) объявляются только в том случае, если реализация предварительно определяет __STDC_IEC_60559_DFP__ (т.е. реализация поддерживает десятичные числа с плавающей запятой).

(с C23)

Параметры

arg - значение с плавающей запятой

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

Если ошибки не возникло, возвращается арктангенс arg (arctan(arg)) в диапазоне [−π/2 ; +π/2] радиан.

Если возникает ошибка из-за подпотока, возвращается правильный результат (после округления).

Обработка ошибок

Ошибки сообщаются в соответствии с указаниями в math_errhandling.

Если реализация поддерживает арифметику с плавающей запятой IEEE (IEC 60559):

  • если аргумент равен ±0, он возвращается без изменений;
  • если аргумент равен +∞, возвращается +π/2;
  • если аргумент равен -∞, возвращается -π/2;
  • если аргумент равен NaN, возвращается NaN.

Примечания

POSIX предписывает, что в случае подпотока, arg возвращается без изменений, а если это не поддерживается, возвращается значение, определенное реализацией, не превышающее DBL_MIN, FLT_MIN, и LDBL_MIN.

Пример

#include <math.h>
#include <stdio.h>
 
int main(void)
{
    printf("atan(1) = %f, 4*atan(1)=%f\n", atan(1), 4 * atan(1));
    // special values
    printf("atan(Inf) = %f, 2*atan(Inf) = %f\n", atan(INFINITY), 2 * atan(INFINITY));
    printf("atan(-0.0) = %+f, atan(+0.0) = %+f\n", atan(-0.0), atan(0));
}

Вывод:

atan(1) = 0.785398, 4*atan(1)=3.141593
atan(Inf) = 1.570796, 2*atan(Inf) = 3.141593
atan(-0.0) = -0.000000, atan(+0.0) = +0.000000

Ссылки

  • Стандарт C23 (ISO/IEC 9899:2023):
    • 7.12.4.3 Функции atan (п: TBD)
    • 7.25 Универсальная математика типа <tgmath.h> (п: TBD)
    • F.10.1.3 Функции atan (п: TBD)
  • Стандарт C17 (ISO/IEC 9899:2018):
    • 7.12.4.3 Функции atan (п: 174)
    • 7.25 Универсальная математика типа <tgmath.h> (п: 272-273)
    • F.10.1.3 Функции atan (п: 378)
  • Стандарт C11 (ISO/IEC 9899:2011):
    • 7.12.4.3 Функции atan (п: 238-239)
    • 7.25 Универсальная математика типа <tgmath.h> (п: 373-375)
    • F.10.1.3 Функции atan (п: 519)
  • Стандарт C99 (ISO/IEC 9899:1999):
    • 7.12.4.3 Функции atan (п: 219)
    • 7.22 Универсальная математика типа <tgmath.h> (п: 335-337)
    • F.9.1.3 Функции atan (п: 456)
  • Стандарт C89/C90 (ISO/IEC 9899:1990):
    • 4.5.2.3 Функция atan

См. также

atan2atan2fatan2l
(C99)(C99)
вычисляет арктангенс, используя знаки для определения квадрантов
(функция)
asinasinfasinl
(C99)(C99)
вычисляет арксинус (\({\small\arcsin{x} }\)arcsin(x))
(функция)
acosacosfacosl
(C99)(C99)
вычисляет арккосинус (\({\small\arccos{x} }\)arccos(x))
(функция)
tantanftanl
(C99)(C99)
вычисляет тангенс (\({\small\tan{x} }\)tan(x))
(функция)
catancatanfcatanl
(C99)(C99)(C99)
вычисляет комплексный арктангенс
(функция)
Документация C++ для atan

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/numeric/math/atan

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API