Spec-Zone.ru › C

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)
1-3) Вычисляет обратную гиперболическую тангенс arg.
4) Универсальная макрокоманда типа: Если аргумент имеет тип 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)

См. также

asinhasinhfasinhl
(C99)(C99)(C99)
вычисляет обратный гиперболический синус (\({\small\operatorname{arsinh}{x} }\)arsinh(x))
(функция)
acoshacoshfacoshl
(C99)(C99)(C99)
вычисляет обратный гиперболический косинус (\({\small\operatorname{arcosh}{x} }\)arcosh(x))
(функция)
tanhtanhftanhl
(C99)(C99)
вычисляет гиперболический тангенс (\({\small\tanh{x} }\)tanh(x))
(функция)
catanhcatanhfcatanhl
(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

Spec-Zone.ru

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