常用数学函数
函数
定义于头文件 <cstdlib>
pub | abs labs llabs | 计算整数的绝对值 (|x|) |
pub | div ldiv lldiv | 计算整数除法的商和余数 |
定义于头文件 <cinttypes>
pub | abs imaxabs | 计算整数的绝对值 (|x|) |
pub | div imaxdiv | 计算整数除法的商和余数 |
定义于头文件 <cmath>
基本操作
pub | abs fabs fabsf fabsl | 浮点数的绝对值 (|x|) |
pub | fmod fmodf fmodl | 浮点除法操作的余数 |
pub | remainder remainderf remainderl | 除法操作的带符号余数 |
pub | remquo remquof remquol | 带符号余数以及除法操作的最后三位 |
pub | fma fmaf fmal | 融合乘加操作 |
pub | fmax fmaxf fmaxl | 两个浮点值中较大的一个 |
pub | fmin fminf fminl | 两个浮点值中较小的一个 |
pub | fdim fdimf fdiml | 两个浮点值的正差值 (max(0, x - y)) |
pub | nan nanf nanl | 非数字 (NaN) |
指数函数
pub | exp expf expl | 返回 e 的给定幂次方 (ex) |
pub | exp2 exp2f exp2l | 返回 2 的给定幂次方 (2x) |
pub | expm1 expm1f expm1l | 返回 e 的给定幂次方减一 (ex - 1) |
pub | log logf logl | 计算自然对数 (以 e 为底) (ln x) |
pub | log10 log10f log10l | 计算常用对数 (以 10 为底) (log10x) |
pub | log2 log2f log2l | 给定数字的以 2 为底的对数 (log2x) |
pub | log1p log1pf log1pl | 1 加上给定数字的自然对数 (以 e 为底) (ln(1 + x)) |
幂函数
pub | pow powf powl | 将一个数提升到给定幂 (xy) |
pub | sqrt sqrtf sqrtl | 计算平方根 (√x) |
pub | cbrt cbrtf cbrtl | 计算立方根 (∛x) |
pub | hypot hypotf hypotl | 计算两个或三个给定数的平方和的平方根 (√x2+y2) |
三角函数
pub | sin sinf sinl | 计算正弦 (sin x) |
pub | cos cosf cosl | 计算余弦 (cos x) |
pub | tan tanf tanl | 计算正切 (tan x) |
pub | asin asinf asinl | 计算反正弦 (arcsin x) |
pub | acos acosf acosl | 计算反余弦 (arccos x) |
pub | atan atanf atanl | 计算反正切 (arctan x) |
pub | atan2 atan2f atan2l | 反正切,使用符号确定象限 |
双曲函数
pub | sinh sinhf sinhl | 计算双曲正弦 (sinh x) |
pub | cosh coshf coshl | 计算双曲余弦 (cosh x) |
pub | tanh tanhf tanhl | 计算双曲正切 (tanh x) |
pub | asinh asinhf asinhl | 计算反双曲正弦 (arsinh x) |
pub | acosh acoshf acoshl | 计算反双曲余弦 (arcosh x) |
pub | atanh atanhf atanhl | 计算反双曲正切 (artanh x) |
误差函数和 Gamma 函数
pub | erf erff erfl | 误差函数 |
pub | erfc erfcf erfcl | 互补误差函数 |
pub | tgamma tgammaf tgammal | Gamma 函数 |
pub | lgamma lgammaf lgammal | Gamma 函数的自然对数 |
最近整数浮点运算
pub | ceil ceilf ceill | 不小于给定值的最近整数 |
pub | floor floorf floorl | 不大于给定值的最近整数 |
pub | trunc truncf truncl | 幅度不大于给定值的最近整数 |
pub | round roundf roundl lround lroundf lroundl llround llroundf llroundl | 最近整数,半数情况下远离零舍入 |
pub | nearbyint nearbyintf nearbyintl | 使用当前舍入模式的最近整数 |
pub | rint rintf rintl lrint lrintf lrintl llrint llrintf llrintl | 使用当前舍入模式的最近整数,如果结果不同则抛出异常 |
浮点操作函数
pub | frexp frexpf frexpl | 将数字分解为有效数和 2 的幂 |
pub | ldexp ldexpf ldexpl | 将数字乘以 2 的幂次方 |
pub | modf modff modfl | 将数字分解为整数和小数部分 |
pub | scalbn scalbnf scalbnl scalbln scalblnf scalblnl | 将数字乘以 FLT_RADIX 的幂次方 |
pub | ilogb ilogbf ilogbl | 提取数字的指数 |
pub | logb logbf logbl | 提取数字的指数 |
pub | nextafter nextafterf nextafterl nexttoward nexttowardf nexttowardl | 朝给定值方向的下一个可表示浮点值 |
pub | copysign copysignf copysignl | 复制浮点值的符号 |
分类和比较
pub | fpclassify | 对给定浮点值进行分类 |
pub | isfinite | 检查给定数字是否具有有限值 |
pub | isinf | 检查给定数字是否为无穷大 |
pub | isnan | 检查给定数字是否为 NaN |
pub | isnormal | 检查给定数字是否为正常数 |
pub | signbit | 检查给定数字是否为负数 |
pub | isgreater | 检查第一个浮点参数是否大于第二个 |
pub | isgreaterequal | 检查第一个浮点参数是否大于或等于第二个 |
pub | isless | 检查第一个浮点参数是否小于第二个 |
pub | islessequal | 检查第一个浮点参数是否小于或等于第二个 |
pub | islessgreater | 检查第一个浮点参数是否小于或大于第二个 |
pub | isunordered | 检查两个浮点值是否无序 |
类型
定义于头文件 <cstdlib>
pub | div_t | 结构类型,std::div 函数的返回值 |
pub | ldiv_t | 结构类型,std::ldiv 函数的返回值 |
pub | lldiv_t | 结构类型,std::lldiv 函数的返回值 |
pub | imaxdiv_t | 结构类型,std::imaxdiv 函数的返回值 |
pub | float_t | 至少与 float 一样宽的最有效的浮点类型 |
pub | double_t | 至少与 double 一样宽的最有效的浮点类型 |
宏常量
定义于头文件 <cmath>
pub | HUGE_VALF HUGE_VAL HUGE_VALL | 分别表示 float 、double 和 long double 的溢出值 |
pub | INFINITY | 评估为正无穷大或保证使 float 溢出的值 |
pub | NAN | 评估为类型为 float 的静默 NaN |
pub | math_errhandling MATH_ERRNO MATH_ERREXCEPT | 定义常用数学函数使用的错误处理机制 |
分类
pub | FP_NORMAL FP_SUBNORMAL FP_ZERO FP_INFINITE FP_NAN | 指示浮点类别 |