sinh, sinhf, sinhl
From cppreference.net
Common mathematical functions
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
定义于头文件
<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 起) |
1-3)
计算
arg
的双曲正弦值。
4)
类型泛型宏:若参数类型为
long
double
,则调用
sinhl
。否则,若参数为整数类型或
double
类型,则调用
sinh
。否则调用
sinhf
。若参数为复数,则宏调用对应的复数函数(
csinhf
、
csinh
、
csinhl
)。
目录 |
参数
| arg | - | 表示双曲角的浮点值 |
返回值
If no errors occur, the hyperbolic sine of arg ( sinh(arg) , or|
e
arg
-e -arg |
| 2 |
如果发生因上溢导致的范围错误,将返回
±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))); // 特殊值 printf("sinh(+0) = %f\nsinh(-0)=%f\n", sinh(0.0), sinh(-0.0)); // 错误处理 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 函数 (p: TBD)
-
- 7.25 类型泛型数学 <tgmath.h> (p: TBD)
-
- F.10.2.5 sinh 函数 (p: TBD)
- C17 标准 (ISO/IEC 9899:2018):
-
- 7.12.5.5 sinh 函数 (p: 176)
-
- 7.25 泛型数学 <tgmath.h> (p: 272-273)
-
- F.10.2.5 sinh 函数 (p: 379)
- C11 标准 (ISO/IEC 9899:2011):
-
- 7.12.5.5 sinh 函数 (p: 241-242)
-
- 7.25 泛型数学 <tgmath.h> (p: 373-375)
-
- F.10.2.5 sinh 函数 (p: 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
|
|