cosh, coshf, coshl
Определено в заголовке <math.h> | ||
|---|---|---|
float coshf( float arg ); | (1) | (с C99) |
double cosh( double arg ); | (2) | |
long double coshl( long double arg ); | (3) | (с C99) |
Определено в заголовке <tgmath.h> | ||
#define cosh( arg ) | (4) | (с C99) |
1-3) Вычисляет гиперболический косинус
arg.
4) Универсальный макрос для типов: Если аргумент имеет тип
long double, вызывается coshl. В противном случае, если аргумент имеет целочисленный тип или тип double, вызывается cosh. В противном случае, вызывается coshf. Если аргумент комплексный, то макрос вызывает соответствующую комплексную функцию (ccoshf, ccosh, ccoshl).Параметры
| arg | - | значение с плавающей точкой, представляющее гиперболический угол |
Возвращаемое значение
Если ошибки не произошло, возвращается гиперболический косинусarg (cosh(arg), или earg+e-arg/2). Если произошла ошибка переполнения, возвращается +HUGE_VAL, +HUGE_VALF, или +HUGE_VALL.
Обработка ошибок
Ошибки сообщаются в соответствии со спецификацией в math_errhandling.
Если реализация поддерживает арифметику с плавающей точкой IEEE (IEC 60559),
- если аргумент равен ±0, возвращается 1
- если аргумент равен ±∞, возвращается +∞
- если аргумент равен NaN, возвращается NaN
Примечания
Для типа IEEE-совместимого типа double, если |arg| > 710.5, происходит переполнение cosh(arg).
Пример
#include <stdio.h>
#include <math.h>
#include <errno.h>
#include <fenv.h>
// #pragma STDC FENV_ACCESS ON
int main(void)
{
printf("cosh(1) = %f\ncosh(-1)= %f\n", cosh(1), cosh(-1));
printf("log(sinh(1) + cosh(1))=%f\n", log(sinh(1)+cosh(1)));
// special values
printf("cosh(+0) = %f\ncosh(-0) = %f\n", cosh(0.0), cosh(-0.0));
// error handling
errno=0; feclearexcept(FE_ALL_EXCEPT);
printf("cosh(710.5) = %f\n", cosh(710.5));
if(errno == ERANGE) perror(" errno == ERANGE");
if(fetestexcept(FE_OVERFLOW)) puts(" FE_OVERFLOW raised");
}Возможный вывод:
cosh(1) = 1.543081
cosh(-1)= 1.543081
log(sinh(1) + cosh(1))=1.000000
cosh(+0) = 1.000000
cosh(-0) = 1.000000
cosh(710.5) = inf
errno == ERANGE: Numerical result out of range
FE_OVERFLOW raisedСсылки
- Стандарт C17 (ISO/IEC 9899:2018):
- 7.12.5.4 Функции cosh (стр: 176)
- 7.25 Универсальные математические функции <tgmath.h> (стр: 272-273)
- F.10.2.4 Функции cosh (стр: 379)
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.12.5.4 Функции cosh (стр: 241)
- 7.25 Универсальные математические функции <tgmath.h> (стр: 373-375)
- F.10.2.4 Функции cosh (стр: 520)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.12.5.4 Функции cosh (стр: 222)
- 7.22 Универсальные математические функции <tgmath.h> (стр: 335-337)
- F.9.2.4 Функции cosh (стр: 457)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
- 4.5.3.1 Функция cosh
См. также
|
(C99)(C99) | вычисляет гиперболический синус (\({\small\sinh{x} }\)sinh(x)) (функция) |
|
(C99)(C99) | вычисляет гиперболическую тангенс (\({\small\tanh{x} }\)tanh(x)) (функция) |
|
(C99)(C99)(C99) | вычисляет обратный гиперболический косинус (\({\small\operatorname{arcosh}{x} }\)arcosh(x)) (функция) |
|
(C99)(C99)(C99) | вычисляет комплексный гиперболический косинус (функция) |
Документация C++ для cosh |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/numeric/math/cosh