C++数学运算函数使用笔记

zxl19 2023-01-03

我的C++数学运算函数使用笔记。

常用数学运算

使用时需要包含头文件:

#include <cmath>

三角函数

调用 函数 备注
cos(x) $\cos\left(x\right)$ 输入$x$为弧度值
sin(x) $\sin\left(x\right)$ 输入$x$为弧度值
tan(x) $\tan\left(x\right)$ 输入$x$为弧度值
acos(x) $\arccos\left(x\right)$ 返回$\left[0, \pi\right]$的弧度值
asin(x) $\arcsin\left(x\right)$ 返回$\left[-\frac{\pi}{2}, \frac{\pi}{2}\right]$的弧度值
atan(x) $\arctan\left(x\right)$ 返回$\left[-\frac{\pi}{2}, \frac{\pi}{2}\right]$的弧度值
atan2(x, y) $\arctan(\frac{y}{x})$ 返回$\left[-\pi, \pi\right]$的弧度值,输入同时为0时会报错

双曲函数

TODO

指数、对数函数

调用 函数 备注
exp(x) $\exp\left(x\right)$ 返回值范围溢出时会报错
log(x) $\ln\left(x\right)$ 输入$x \leq 0$时会报错
log10(x) $\lg\left(x\right)$ 输入$x \leq 0$时会报错

幂函数

调用 函数 备注
pow(x, y) $x^{y}$ 输入$x < 0$且$y$为非整型时会报错,输入$x = 0$且$y = 0$时会报错,输入$x = 0$且$y < 0$时会报错,返回值范围溢出时会报错
sqrt(x) $\sqrt{x}$ 输入$x < 0$时会报错
cbrt(x) $\sqrt[3]{x}$
hypot(x, y) $\sqrt{x^{2} + y^{2}}$

误差、伽马函数

TODO

取整、取余函数

调用 函数 备注
ceil(x) $\left\lceil x \right\rceil$ 向上取整(数轴右侧)
floor(x) $\left\lfloor x \right\rfloor$ 向下取整(数轴左侧)
round(x) $\left[x\right]$ 四舍五入

浮点数操作函数

调用 函数 备注
copysign(x, y) $\textrm{sgn}\left(y\right)\left|x\right|$ 返回一个大小为$x$,符号为$y$的值
nan(x) $\textrm{NaN}$ 返回double类型的静默NaN值,不会触发浮点异常信号
nanf(x) $\textrm{NaN}$ 返回float类型的静默NaN值,不会触发浮点异常信号
nanl(x) $\textrm{NaN}$ 返回long double类型的静默NaN值,不会触发浮点异常信号

最小值、最大值、差分函数

TODO

其他函数

调用 函数 备注
fabs(x) $\left|x\right|$ 返回浮点型的绝对值
abs(x) $\left|x\right|$ C中返回整型的绝对值(定义在stdlib.h头文件中),C++中进行了函数重载,返回浮点型的绝对值

分类函数

在C中作为宏实现,在C++中作为函数实现。

调用 函数 备注
isfinite(x)   是否为有限值
isinf(x)   是否为无穷大
isnan(x)   是否为非数值

参考

  1. cplusplus