<math.h>头文件
<math.h>头文件声明了多个类型和数学函数,并定义了多个宏。<math.h>头文件存在多个函数组,这些函数组由一个主函数和相同函数名后缀为f或者l的函数组成。主函数存在一个或者多个double类型的参数,double类型的返回值,或者两者兼而有之;后缀为f的函数存在一个或者多个float类型的参数,float类型的返回值,或者两者兼而有之;后缀为l的函数存在一个或者多个long double类型的参数,long double类型的返回值,或者两者兼而有之。
<math.h>头文件中声明的类型、函数以及定义的宏具体如下:
编译提示(pragma):| FP_CONTRACT | 表示是否允许收缩表达式的编译提示。 |
类型(type):
| float_t | 表示至少与float类型一样宽的浮点类型。 |
| double_t | 表示至少与double类型一样宽的浮点类型。 |
| _Decimal32_t | 表示至少与_Decimal32类型一样宽的十进制浮点类型。 |
| _Decimal64_t | 表示至少与_Decimal64类型一样宽的十进制浮点类型。 |
功能测试宏(feature test macro):
| __STDC_VERSION_MATH_H__ | 表示<math.h>头文件版本的宏。 |
宏(macro):
| HUGE_VAL | 表示double类型巨大值的宏。 |
| HUGE_VALF | 表示float类型巨大值的宏。 |
| HUGE_VALL | 表示long double类型巨大值的宏。 |
| HUGE_VAL_D32 | 表示_Decimal32类型正无穷大的宏。 |
| HUGE_VAL_D64 | 表示_Decimal64类型正无穷大的宏。 |
| HUGE_VAL_D128 | 表示_Decimal128类型正无穷大的宏。 |
| INFINITY | 表示float类型无穷大的宏。 |
| DEC_INFINITY | 表示_Decimal32类型无穷大的宏。 |
| NAN | 表示非数值的宏。 |
| DEC_NAN | 表示_Decimal32类型安静非数值的宏。 |
| FP_INFINITE | 表示浮点类别无穷大的宏。 |
| FP_NAN | 表示浮点类别非数值的宏。 |
| FP_NORMAL | 表示浮点类别规格化数的宏。 |
| FP_SUBNORMAL | 表示浮点类别次规格化数的宏。 |
| FP_ZERO | 表示浮点类别0的宏。 |
| FP_INT_UPWARD | 表示向上舍入的数学舍入方向宏。 |
| FP_INT_DOWNWARD | 表示向下舍入的数学舍入方向宏。 |
| FP_INT_TOWARDZERO | 表示向0舍入的数学舍入方向宏。 |
| FP_INT_TONEARESTFROMZERO | 表示向远离0的方向就近舍入的数学舍入方向宏。 |
| FP_INT_TONEAREST | 表示向偶数方向就近舍入的数学舍入方向宏。 |
| FP_FAST_FMA | 表示fma函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_FMAF | 表示fmaf函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_FMAL | 表示fmal函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_FMAD32 | 表示fmad32函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_FMAD64 | 表示fmad64函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_FMAD128 | 表示fmad128函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_FADD | 表示fadd函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_FADDL | 表示faddl函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_DADDL | 表示daddl函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_FSUB | 表示fsub函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_FSUBL | 表示fsubl函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_DSUBL | 表示dsubl函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_FMUL | 表示fmul函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_FMULL | 表示fmull函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_DMULL | 表示dmull函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_FDIV | 表示fdiv函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_FDIVL | 表示fdivl函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_DDIVL | 表示ddivl函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_FSQRT | 表示fsqrt函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_FSQRTL | 表示fsqrtl函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_DSQRTL | 表示dsqrtl函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_FFMA | 表示ffma函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_FFMAL | 表示ffmal函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_DFMAL | 表示dfmal函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_D32ADDD64 | 表示d32addd64函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_D32ADDD128 | 表示d32addd128函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_D64ADDD128 | 表示d64addd128函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_D32SUBD64 | 表示d32subd64函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_D32SUBD128 | 表示d32subd128函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_D64SUBD128 | 表示d64subd128函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_D32MULD64 | 表示d32muld64函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_D32MULD128 | 表示d32muld128函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_D64MULD128 | 表示d64muld128函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_D32DIVD64 | 表示d32divd64函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_D32DIVD128 | 表示d32divd128函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_D64DIVD128 | 表示d64divd128函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_D32SQRTD64 | 表示d32sqrtd64函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_D32SQRTD128 | 表示d32sqrtd128函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_D64SQRTD128 | 表示d64sqrtd128函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_D32FMAD64 | 表示d32fmad64函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_D32FMAD128 | 表示d32fmad128函数执行不慢于对应类型执行相应操作的宏。 |
| FP_FAST_D64FMAD128 | 表示d64fmad128函数执行不慢于对应类型执行相应操作的宏。 |
| FP_ILOGB0 | 表示函数ilogb(0)返回值的宏。 |
| FP_ILOGBNAN | 表示函数ilogb(NaN)返回值的宏。 |
| FP_LLOGB0 | 表示函数llogb(0)返回值的宏。 |
| FP_LLOGBNAN | 表示函数llogb(NaN)返回值的宏。 |
| MATH_ERRNO | 表示通过errno报告错误的宏。 |
| MATH_ERREXCEPT | 表示通过引发浮点异常报告错误的宏。 |
| math_errhandling | 表示通过errno和引发浮点异常报告错误的宏。 |
| fpclassify | 对参数按浮点类别进行分类的宏。 |
| iscanonical | 判断参数是否具有规范表示形式的宏。 |
| isfinite | 判断参数是否为有限值的宏。 |
| isinf | 判断参数是否为无穷大的宏。 |
| isnan | 判断参数是否为非数值的宏。 |
| isnormal | 判断参数是否为规格化数的宏。 |
| signbit | 判断参数符号是否为负号的宏。 |
| issignaling | 判断参数是否为信号非数值的宏。 |
| issubnormal | 判断参数是否为次规格化数的宏。 |
| iszero | 判断参数是否为0的宏。 |
| isgreater | 判断第一个参数是否大于第二个参数的宏。 |
| isgreaterequal | 判断第一个参数是否大于等于第二个参数的宏。 |
| isless | 判断第一个参数是否小于第二个参数的宏。 |
| islessequal | 判断第一个参数是否小于等于第二个参数的宏。 |
| islessgreater | 判断第一个参数是否小于或者大于第二个参数的宏。 |
| isunordered | 判断参数是否无序的宏。 |
| iseqsig | 判断参数是否相等的宏。 |
函数(function):
三角函数:
|
acos acosf acosl acosd32 acosd64 acosd128 |
反余弦函数。 |
|
asin asinf asinl asind32 asind64 asind128 |
反正弦函数。 |
|
atan atanf atanl atand32 atand64 atand128 |
反正切函数。 |
|
atan2 atan2f atan2l atan2d32 atan2d64 atan2d128 |
的反正切函数。 |
|
cos cosf cosl cosd32 cosd64 cosd128 |
余弦函数。 |
|
sin sinf sinl sind32 sind64 sind128 |
正弦函数。 |
|
tan tanf tanl tand32 tand64 tand128 |
正切函数。 |
|
acospi acospif acospil acospid32 acospid64 acospid128 |
反余弦值除以的函数。 |
|
asinpi asinpif asinpil asinpid32 asinpid64 asinpid128 |
反正弦值除以的函数。 |
|
atanpi atanpif atanpil atanpid32 atanpid64 atanpid128 |
反正切值除以的函数。 |
|
atan2pi atan2pif atan2pil atan2pid32 atan2pid64 atan2pid128 |
的反正切值除以的函数。 |
|
cospi cospif cospil cospid32 cospid64 cospid128 |
的余弦函数。 |
|
sinpi sinpif sinpil sinpid32 sinpid64 sinpid128 |
的正弦函数。 |
|
tanpi tanpif tanpil tanpid32 tanpid64 tanpid128 |
的正切函数。 |
|
acosh acoshf acoshl acoshd32 acoshd64 acoshd128 |
反双曲余弦函数。 |
|
asinh asinhf asinhl asinhd32 asinhd64 asinhd128 |
反双曲正弦函数。 |
|
atanh atanhf atanhl atanhd32 atanhd64 atanhd128 |
反双曲正切函数。 |
|
cosh coshf coshl coshd32 coshd64 coshd128 |
双曲余弦函数。 |
|
sinh sinhf sinhl sinhd32 sinhd64 sinhd128 |
双曲正弦函数。 |
|
tanh tanhf tanhl tanhd32 tanhd64 tanhd128 |
双曲正切函数。 |
|
cbrt cbrtf cbrtl cbrtd32 cbrtd64 cbrtd128 |
立方根函数。 |
|
compoundn compoundnf compoundnl compoundnd32 compoundnd64 compoundnd128 |
返回的函数。 |
|
fabs fabsf fabsl fabsd32 fabsd64 fabsd128 |
绝对值函数。 |
|
hypot hypotf hypotl hypotd32 hypotd64 hypotd128 |
返回的函数。 |
|
pow powf powl powd32 powd64 powd128 |
幂函数。 |
|
pown pownf pownl pownd32 pownd64 pownd128 |
返回的函数。 |
|
powr powrf powrl powrd32 powrd64 powrd128 |
返回的函数。 |
|
rootn rootnf rootnl rootnd32 rootnd64 rootnd128 |
返回的函数。 |
|
rsqrt rsqrtf rsqrtl rsqrtd32 rsqrtd64 rsqrtd128 |
返回的函数。 |
|
sqrt sqrtf sqrtl sqrtd32 sqrtd64 sqrtd128 |
平方根函数。 |
|
erf erff erfl erfd32 erfd64 erfd128 |
误差函数。 |
|
erfc erfcf erfcl erfcd32 erfcd64 erfcd128 |
互补误差函数。 |
|
lgamma lgammaf lgammal lgammad32 lgammad64 lgammad128 |
计算参数伽玛绝对值的自然对数的函数。 |
|
tgamma tgammaf tgammal tgammad32 tgammad64 tgammad128 |
伽玛函数。 |
|
fmod fmodf fmodl fmodd32 fmodd64 fmodd128 |
计算余数函数。 |
|
remainder remainderf remainderl remainderd32 remainderd64 remainderd128 |
计算余数函数。 |
|
remquo remquof remquol |
计算余数函数。 |
|
copysign copysignf copysignl copysignd32 copysignd64 copysignd128 |
复制符号函数。 |
|
nan nanf nanl nand32 nand64 nand128 |
生成安静非数值的函数。 |
|
nextafter nextafterf nextafterl nextafterd32 nextafterd64 nextafterd128 |
确定下一个可表示值的函数。 |
|
nexttoward nexttowardf nexttowardl nexttowardd32 nexttowardd64 nexttowardd128 |
确定下一个可表示值的函数。 |
|
nextup nextupf nextupl nextupd32 nextupd64 nextupd128 |
确定大于参数的下一个可表示值的函数。 |
|
nextdown nextdownf nextdownl nextdownd32 nextdownd64 nextdownd128 |
确定小于参数的下一个可表示值的函数。 |
|
canonicalize canonicalizef canonicalizel canonicalized32 canonicalized64 canonicalized128 |
存储规范结果的函数。 |
|
fdim fdimf fdiml fdimd32 fdimd64 fdimd128 |
正差函数。 |
|
fmax fmaxf fmaxl fmaxd32 fmaxd64 fmaxd128 |
确定较大值函数。 |
|
fmin fminf fminl fmind32 fmind64 fmind128 |
确定较小值函数。 |
|
fmaximum fmaximumf fmaximuml fmaximumd32 fmaximumd64 fmaximumd128 |
确定较大值函数。 |
|
fminimum fminimumf fminimuml fminimumd32 fminimumd64 fminimumd128 |
确定较小值函数。 |
|
fmaximum_mag fmaximum_magf fmaximum_magl fmaximum_magd32 fmaximum_magd64 fmaximum_magd128 |
确定较大绝对值的参数的函数。 |
|
fminimum_mag fminimum_magf fminimum_magl fminimum_magd32 fminimum_magd64 fminimum_magd128 |
确定较小绝对值的参数的函数。 |
|
fmaximum_num fmaximum_numf fmaximum_numl fmaximum_numd32 fmaximum_numd64 fmaximum_numd128 |
确定数值参数较大值的函数。 |
|
fminimum_num fminimum_numf fminimum_numl fminimum_numd32 fminimum_numd64 fminimum_numd128 |
确定数值参数较小值的函数。 |
|
fmaximum_mag_num fmaximum_mag_numf fmaximum_mag_numl fmaximum_mag_numd32 fmaximum_mag_numd64 fmaximum_mag_numd128 |
确定较大绝对值的数值参数的函数。 |
|
fminimum_mag_num fminimum_mag_numf fminimum_mag_numl fminimum_mag_numd32 fminimum_mag_numd64 fminimum_mag_numd128 |
确定较小绝对值的数值参数的函数。 |
|
fma fmaf fmal fmad32 fmad64 fmad128 |
融合乘加运算函数。 |
|
fadd faddl daddl d32addd64 d32addd128 d64addd128 |
求和并且结果舍入到更窄类型的函数。 |
|
fsub fsubl dsubl d32subd64 d32subd128 d64subd128 |
求差并且结果舍入到更窄类型的函数。 |
|
fmul fmull dmull d32muld64 d32muld128 d64muld128 |
求积并且结果舍入到更窄类型的函数。 |
|
fdiv fdivl ddivl d32divd64 d32divd128 d64divd128 |
求商并且结果舍入到更窄类型的函数。 |
|
ffma ffmal dfmal d32fmad64 d32fmad128 d64fmad128 |
融合乘加运算并且结果舍入到更窄类型的函数。 |
|
fsqrt fsqrtl dsqrtl d32sqrtd64 d32sqrtd128 d64sqrtd128 |
参数平方根舍入到更窄类型的函数。 |
|
quantized32 quantized64 quantized128 |
返回值具有参数的值、参数的量子指数的函数。 |
|
samequantumd32 samequantumd64 samequantumd128 |
判断实参量子指数是否相同的函数。 |
|
quantumd32 quantumd64 quantumd128 |
计算有限实参量子的函数。 |
|
llquantexpd32 llquantexpd64 llquantexpd128 |
计算有限实参量子指数的函数。 |
|
encodedecd32 encodedecd64 encodedecd128 |
将参数指向对象转换为有效数字基于十进制编码的编码的函数。 |
|
decodedecd32 decodedecd64 decodedecd128 |
将参数指向对象解释为有效数字基于十进制编码的编码的函数。 |
|
encodebind32 encodebind64 encodebind128 |
将参数指向对象转换为有效数字基于二进制编码的编码的函数。 |
|
decodebind32 decodebind64 decodebind128 |
将参数指向对象解释为有效数字基于二进制编码的编码的函数。 |