Spec-Zone.ru › C

atanh, atanhf, atanhl

Определено в заголовочном файле <math.h>
float       atanhf( float arg );
(1) (начиная с C99)
double      atanh( double arg );
(2) (начиная с C99)
long double atanhl( long double arg );
(3) (начиная с C99)
Определено в заголовочном файле <tgmath.h>
#define atanh( arg )
(4) (начиная с C99)
1-3) Вычисляет обратный гиперболический тангенс числа arg.
4) Типобезопасный обобщённый макрос: если аргумент имеет тип longdouble, вызывается 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 <errno.h>
#include <fenv.h>
#include <float.h>
#include <math.h>
#include <stdio.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

Ссылки

  • Стандарт C23 (ISO/IEC 9899:2024):
    • 7.12.5.3 Функции atanh (стр. 241)
    • 7.25 Типобезопасная обобщённая математика <tgmath.h> (стр. 373-375)
    • F.10.2.3 Функции atanh (стр. 520)
  • Стандарт C17 (ISO/IEC 9899:2018):
    • 7.12.5.3 Функции atanh (стр. TBD)
    • 7.25 Типобезопасная обобщённая математика <tgmath.h> (стр. TBD)
    • F.10.2.3 Функции atanh (стр. TBD)
  • Стандарт C11 (ISO/IEC 9899:2011):
    • 7.12.5.3 Функции atanh (стр. 241)
    • 7.25 Типобезопасная обобщённая математика <tgmath.h> (стр. 373-375)
    • F.10.2.3 Функции atanh (стр. 520)
  • Стандарт C99 (ISO/IEC 9899:1999):
    • 7.12.5.3 Функции atanh (стр. 221-222)
    • 7.22 Типобезопасная обобщённая математика <tgmath.h> (стр. 335-337)
    • F.9.2.3 Функции atanh (стр. 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

Внешние ссылки

Вайсстайн, Эрик В. «Обратный гиперболический тангенс». Из MathWorld — веб-ресурса Wolfram.

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

Spec-Zone.ru

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