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), или
).
Если возникает ошибка диапазона из-за переполнения, возвращается +HUGE_VAL, +HUGE_VALF или +HUGE_VALL.
Обработка ошибок
Об ошибках сообщается в соответствии с указаниями в math_errhandling.
Если реализация поддерживает арифметику с плавающей точкой IEEE (IEC 60559),
- если аргумент равен ±0, возвращается 1
- если аргумент равен ±∞, возвращается +∞
- если аргумент является NaN, возвращается NaN
Примечания
Для совместимого с IEEE типа double, если |arg| > 710.5, происходит переполнение cosh(arg).
Пример
#include <errno.h>
#include <fenv.h>
#include <math.h>
#include <stdio.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
Ссылки
- Стандарт C23 (ISO/IEC 9899:2024):
- 7.12.5.4 Функции cosh (стр. TBD)
- 7.25 Математические функции с обобщением типа <tgmath.h> (стр. TBD)
- F.10.2.4 Функции cosh (стр. TBD)
- Стандарт 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/c/numeric/math/cosh