我的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) |
是否为非数值 |