std::atan, std::atanf, std::atanl
Определено в заголовочном файле <cmath> | ||
|---|---|---|
float atan ( float num ); double atan ( double num ); long double atan ( long double num ); | (1) | (до C++23) |
/*floating-point-type*/
atan ( /*floating-point-type*/ num );
|
(с C++23) (constexpr с C++26) | |
float atanf( float num ); | (2) |
(с C++11) (constexpr с C++26) |
long double atanl( long double num ); | (3) |
(с C++11) (constexpr с C++26) |
| Перегрузка SIMD (с C++26) | ||
Определено в заголовочном файле <simd> | ||
template< /*math-floating-point*/ V >
constexpr /*deduced-simd-t*/<V>
atan ( const V& v_num );
| (S) | (с C++26) |
| Дополнительные перегрузки (с C++11) | ||
Определено в заголовочном файле <cmath> | ||
template< class Integer > double atan ( Integer num ); | (A) | (constexpr с C++26) |
num. Библиотека предоставляет перегрузки std::atan для всех типов с плавающей точкой, не имеющих квалификаторов cv, в качестве типа параметра.(с C++23)
S) Перегрузка SIMD выполняет поэлементное std::atan для v_num. (См. math-floating-point и deduced-simd-t для их определений.) | (с C++26) |
| A) Предоставляются дополнительные перегрузки для всех целочисленных типов, которые рассматриваются как double. | (с C++11) |
Параметры
| num | - | значение с плавающей точкой или целочисленное значение |
Возвращаемое значение
Если ошибок не возникает, возвращается арктангенс num (arctan(num)) в диапазоне [-
радиан.
Если возникает ошибка диапазона из-за антипереполнения, возвращается правильный результат (после округления).
Обработка ошибок
Об ошибках сообщается в соответствии с math_errhandling.
Если реализация поддерживает арифметику с плавающей точкой IEEE (IEC 60559),
- Если аргумент равен ±0, он возвращается без изменений.
- Если аргумент равен +∞, возвращается +π/2.
- Если аргумент равен -∞, возвращается -π/2.
- Если аргумент — NaN, возвращается NaN.
Примечания
Спецификация POSIX указывает, что в случае антипереполнения num возвращается без изменений, а если это не поддерживается, возвращается определяемое реализацией значение, не превышающее DBL_MIN, FLT_MIN и LDBL_MIN.
Необязательно предоставлять дополнительные перегрузки в точности в виде (A). Достаточно, чтобы они обеспечивали для аргумента num целочисленного типа такое же поведение std::atan(num), как у std::atan(static_cast<double>(num)).
Пример
#include <cmath>
#include <iostream>
int main()
{
std::cout << "atan(1) = " << std::atan(1) << '\n'
<< "4*atan(1) = " << 4 * std::atan(1) << '\n';
// special values
std::cout << "atan(Inf) = " << std::atan(INFINITY) << '\n'
<< "2*atan(Inf) = " << 2 * std::atan(INFINITY) << '\n'
<< "atan(-0.0) = " << std::atan(-0.0) << '\n'
<< "atan(+0.0) = " << std::atan(0) << '\n';
}
Вывод:
atan(1) = 0.785398 4*atan(1) = 3.14159 atan(Inf) = 1.5708 2*atan(Inf) = 3.14159 atan(-0.0) = -0 atan(+0.0) = 0
См. также
|
(C++11)(C++11) | вычисляет арксинус (\({\small\arcsin{x}}\)arcsin(x)) (функция) |
|
(C++11)(C++11) | вычисляет арккосинус (\({\small\arccos{x}}\)arccos(x)) (функция) |
|
(C++11)(C++11) | арктангенс с определением квадранта по знакам (функция) |
|
(C++11)(C++11) | вычисляет тангенс (\({\small\tan{x}}\)tan(x)) (функция) |
|
(C++11) | вычисляет арктангенс комплексного числа (\({\small\arctan{z}}\)arctan(z)) (шаблон функции) |
применяет функцию std::atan к каждому элементу valarray (шаблон функции) |
|
Документация C для atan |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/numeric/math/atan