atanh, atanhf, atanhl
Defined in header <math.h> |
||
|---|---|---|
float atanhf( float arg ); |
(1) | (since C99) |
double atanh( double arg ); |
(2) | (since C99) |
long double atanhl( long double arg ); |
(3) | (since C99) |
Defined in header <tgmath.h> |
||
#define atanh( arg ) |
(4) | (since C99) |
arg.long double, вызывается atanhl. В противном случае, если аргумент имеет целочисленный тип или тип double, вызывается atanh. В противном случае вызывается atanhf. Если аргумент комплексный, то макрос вызывает соответствующую комплексную функцию (catanhf, catanh, catanhl).Параметры
| arg | - | значение с плавающей точкой, представляющее площадь гиперболического сектора |
Возвращаемое значение
Если ошибок не произошло, возвращается обратная гиперболическая тангенс arg (tanh-1(arg), или artanh(arg)).
Если произошла ошибка области значений, возвращается значение, определяемое реализацией (NaN, где поддерживается).
Если произошла ошибка полюса, возвращается ±HUGE_VAL, ±HUGE_VALF, или ±HUGE_VALL (с правильным знаком).
Если произошла ошибка диапазона из-за недолива, возвращается правильный результат (после округления).
Обработка ошибок
Ошибки сообщаются так, как указано в math_errhandling.
Если аргумент не находится в интервале [-1, +1], возникает ошибка диапазона.
Если аргумент равен ±1, возникает ошибка полюса.
Если реализация поддерживает арифметику с плавающей точкой IEEE (IEC 60559),
- если аргумент равен ±0, он возвращается без изменений
- если аргумент равен ±1, возвращается ±∞, и поднимается
FE_DIVBYZERO - если |arg|>1, возвращается NaN и поднимается
FE_INVALID - если аргумент равен NaN, возвращается NaN.
Примечания
Хотя C стандарт называет эту функцию «дуга гиперболической тангенса», обратные функции гиперболических функций являются функциями площади. Их аргумент представляет собой площадь гиперболического сектора, а не дугу. Правильное название — «обратная гиперболическая тангенс» (используется в POSIX) или «площадь гиперболической тангенса».
POSIX определяет, что в случае недолива возвращается arg без изменений, и если это не поддерживается, возвращается значение, определяемое реализацией, не больше DBL_MIN, FLT_MIN, и LDBL_MIN.
Пример
#include <stdio.h>
#include <math.h>
#include <float.h>
#include <errno.h>
#include <fenv.h>
// #pragma STDC FENV_ACCESS ON
int main(void)
{
printf("atanh(0) = %f\natanh(-0) = %f\n", atanh(0), atanh(-0.0));
printf("atanh(0.9) = %f\n", atanh(0.9));
//error handling
errno = 0; feclearexcept(FE_ALL_EXCEPT);
printf("atanh(-1) = %f\n", atanh(-1));
if (errno == ERANGE)
perror(" errno == ERANGE");
if (fetestexcept(FE_DIVBYZERO))
puts(" FE_DIVBYZERO raised");
}Возможный вывод:
atanh(0) = 0.000000
atanh(-0) = -0.000000
atanh(0.9) = 1.472219
atanh(-1) = -inf
errno == ERANGE: Numerical result out of range
FE_DIVBYZERO raisedСсылки
- Стандарт C17 (ISO/IEC 9899:2018):
- 7.12.5.3 Функции atanh (p: TBD)
- 7.25 Универсальные математические функции <tgmath.h> (p: TBD)
- F.10.2.3 Функции atanh (p: TBD)
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.12.5.3 Функции atanh (p: 241)
- 7.25 Универсальные математические функции <tgmath.h> (p: 373-375)
- F.10.2.3 Функции atanh (p: 520)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.12.5.3 Функции atanh (p: 221-222)
- 7.22 Универсальные математические функции <tgmath.h> (p: 335-337)
- F.9.2.3 Функции atanh (p: 457)
См. также
|
(C99)(C99)(C99) |
вычисляет обратный гиперболический синус (\({\small\operatorname{arsinh}{x} }\)arsinh(x)) (функция) |
|
(C99)(C99)(C99) |
вычисляет обратный гиперболический косинус (\({\small\operatorname{arcosh}{x} }\)arcosh(x)) (функция) |
|
(C99)(C99) |
вычисляет гиперболический тангенс (\({\small\tanh{x} }\)tanh(x)) (функция) |
|
(C99)(C99)(C99) |
вычисляет комплексный обратный гиперболический тангенс (функция) |
Документация C++ для atanh |
|
Внешние ссылки
| Weisstein, Eric W. "Обратная гиперболическая тангенс." Из MathWorld — Wolfram Web Resource. |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/numeric/math/atanh