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