甲鱼和乌龟有什么区别| 脾不统血吃什么中成药| 嘴苦是什么原因| 复合维生素b什么时候吃最好| 紫苏是什么东西| 核心抗体阳性是什么意思| 雷替斯是什么药| 恋童癖是什么意思| 基药是什么意思| 宛如是什么意思| 杀马特是什么| 儿童腮腺炎吃什么药| 八字比肩是什么意思| 基因突变是什么意思| 鹅吃什么食物| 低血糖看什么科室| 鲅鱼是什么鱼| 肺结节吃什么食物好| 代谢慢的人吃什么有助于新陈代谢| 黄体可能是什么意思啊| 狗奴是什么意思| 细胞是什么| 母婴传播是什么意思| 小腿浮肿吃什么药最好| 孕妇做春梦是什么意思| 瀹是什么意思| 有眼不识泰山是什么意思| 广州的市花是什么| 东倒西歪是什么意思| 野生葛根粉有什么功效| 羊齿状结晶代表什么| 古筝是什么乐器| 象是什么结构| 属蛇适合佩戴什么饰品| 拉肚子吃什么食物| 什么是爱呢| cartier什么牌子| 命宫是什么意思| 早期唐筛是检查什么| 塞浦路斯说什么语言| 为什么会落枕| 什么是答题卡| 钠对人体有什么作用| 什么是心肌缺血| ch发什么音| 般若波罗蜜是什么意思| 小孩经常口腔溃疡是什么原因| 四川的耗儿鱼是什么鱼| 胰腺炎不能吃什么食物| 如来佛祖和释迦牟尼是什么关系| 经常流鼻血是什么原因引起的| 婴儿为什么老吐奶| 妊娠试验阴性是什么意思| 淼淼是什么意思| 生意盎然什么意思| 灰水是什么| 孕囊小是什么原因| 开髓引流是什么| 布洛芬不能和什么药一起吃| 后脑两侧痛是什么原因| 什么是跨域| 2016年属猴是什么命| 高血糖是什么原因引起的| 晕车药吃多了有什么副作用| 槟榔为什么会上瘾| sap是做什么的| 头疼是什么原因导致的| 一个田一个比念什么| 肝火旺失眠吃什么药| 颈椎生理曲度变直是什么意思| 金标是什么意思| 脑梗什么意思| 云南古代叫什么| 县宣传部长是什么级别| 什么含维生素d| 驰字五行属什么| 拔完牙后能吃什么| 遗精是什么| 咕咕咕咕叫是什么鸟| 肝转氨酶高有什么危害| 入宅是什么意思| 胰岛素是干什么的| 龙筋是什么| 什么是代孕| 祛湿气喝什么茶| 法大大是什么| 中药学是干什么的| 绿豆和什么一起煮好| 常喝枸杞泡水有什么好处| 反乌托邦是什么意思| 胪是什么意思| 尿失禁吃什么药| 耳耵聍是什么东西| 深圳市长是什么级别| 冰心原名什么| 什么不什么干| fev1是什么意思| 蒙脱石是什么东西| 鸡米头是什么| 东方明珠什么时候亮灯| 名字五行属什么| 怀孕掉头发厉害是什么原因| 牛黄是什么| 仓鼠怀孕有什么特征| 双向情感障碍吃什么药| 什么是水中毒| 脾肾阳虚是什么意思| 宫颈阳性是什么意思| 什么的雄鸡| 好文采是什么意思| 原配是什么意思| 屁多是什么原因造成的| 眼睛屈光不正是什么意思| 移徒什么意思| 肝脏钙化灶什么意思| 脊椎和脊柱有什么区别| 丝瓜什么人不能吃| 鱼翅是什么东西| cav是什么意思| 什么东西吃了壮阳| 柠檬水喝多了有什么坏处| 尿路感染检查什么项目| 晚上睡觉经常醒是什么原因| screenx影厅是什么| 肺肿了是什么病严重吗| 曲拉是什么| 宰相是什么意思| 抖腿是什么毛病| 八月份是什么星座| 攻击是什么意思| 如梦初醒是什么意思| 吃什么补锌| 子宫肌层回声欠均匀是什么意思| 扌字旁的字和什么有关| 消融术是什么手术| 拍档是什么意思| 窦性心动过缓吃什么药| 985和211有什么区别| 左眼皮肿是什么原因引起的| 亚甲减是什么意思| 虾黄是虾的什么部位| 泌尿系彩超主要是检查什么| 0604是什么日子| 世界上最贵的车是什么车| 甲辰年五行属什么| 功能是什么意思| 甲状腺钙化是什么意思| 黑户是什么| 木属于五行属什么| 他达拉非是什么药| 五月是什么月| 肌酐高说明什么问题| 芝士是什么做的| 错过是什么意思| 唐僧真名叫什么| 女性喝什么利尿最快| 骨质欠规整是什么意思| 右眼皮跳代表什么| 由来是什么意思| 年薪10万算什么水平| 7月7日是什么日子| 海马是什么类动物| 蘑菇和什么不能一起吃| 吃什么对眼睛好| 兄弟是什么生肖| lof是什么基金| 抑郁症的表现是什么| 脱线是什么意思| 血管痉挛吃什么药| review是什么意思| emg是什么意思| 什么的帽子| 资讯是什么意思| 艾灸后皮肤痒出红疙瘩是什么原因| 养胃吃什么最好| 猫的眼睛晚上为什么会发光| 梦见花开是什么预兆| 什么叫种水| 肠澼是什么意思| 迁坟有什么讲究和忌讳| kr是什么货币| 减肥期间可以吃什么| 呆若木鸡的意思是什么| 2020属什么生肖| 快乐是什么意思| 玳瑁是什么| 半什么三什么| 全身浮肿是什么病| m指的是什么| 尿液发绿是什么原因| 比利时用什么货币| 夏天吃什么汤| 骁字五行属什么| 缅铃是什么| 月经前便秘是什么原因| 塑料袋属于什么垃圾| 榴莲什么人不适合吃| vane是什么意思| 星辰大海什么意思| 女性为什么会肾结石| 为什么老是说梦话| 什么是PC出轨| 8月7日什么星座| 探望病人买什么水果| 油麦菜不能和什么一起吃| 头麻是什么病的前兆| 气血虚吃什么药| 坯子是什么意思| 窒息是什么意思| 天秤座男生和什么星座最配| 包皮炎是什么症状| beer是什么意思| 子宫肌瘤钙化是什么意思| 女人缺少雌激素吃什么| 肚子特别疼是什么原因| 湖南简称什么| 拉红色的屎是什么原因| 命里缺什么怎么看| 月子期间可以吃什么水果| 吃什么回奶| 什么什么一笑| 乌克兰和俄罗斯为什么打仗| 花胶有什么功效| 屎壳郎是什么意思| 260是什么意思| pop什么意思| suki什么意思| 人工流产后可以吃什么| 欧芹在中国叫什么| 甄嬛传什么时候拍的| 扁肉是什么| 胆囊炎有什么症状| 检查胰腺挂什么科| 许愿是什么意思| 鱼腥草有什么用处| 露怯是什么意思| 淫秽是什么意思| 青口是什么东西| 庸俗是什么意思| 本番是什么意思| 从容面对是什么意思| 射手座是什么星座| 异常心电图是什么意思| 肚子痛去医院挂什么科| 才高八斗什么意思| 北瓜是什么| rps是什么| 三虫念什么| 酸奶有什么营养价值| 多吃玉米有什么好处和坏处| 水平是什么意思| 什么时候开放二胎| 赟读什么| 做梦和别人吵架意味着什么| 叶酸有什么好处| 宝宝照蓝光有什么副作用| 赤脚走路有什么好处| 屁股有痣代表什么| 医保自费是什么意思| 茭白是什么植物| 签证是什么| 信保是什么| 客厅钟表挂在什么地方合适| 诅咒是什么意思| 百度
The Open Group Base Specifications Issue 8
IEEE Std 1003.1-2024
Copyright ? 2001-2024 The IEEE and The Open Group

NAME

math.h — mathematical declarations

SYNOPSIS

#include <math.h>

DESCRIPTION

[CX] [Option Start] Some of the functionality described on this reference page extends the ISO C standard. Applications shall define the appropriate feature test macro (see XSH 2.2 The Compilation Environment) to enable the visibility of these symbols in this header. [Option End]

The <math.h> header shall define at least the following types:

float_t
A real-floating type at least as wide as float.
double_t
A real-floating type at least as wide as double, and at least as wide as float_t.

If FLT_EVAL_METHOD equals 0, float_t and double_t shall be float and double, respectively; if FLT_EVAL_METHOD equals 1, they shall both be double; if FLT_EVAL_METHOD equals 2, they shall both be long double; for other values of FLT_EVAL_METHOD, they are otherwise implementation-defined.

The <math.h> header shall define the following macros, where real-floating indicates that the argument shall be an expression of real-floating type:

int fpclassify(real-floating x);
int isfinite(real-floating x);
int isgreater(real-floating x, real-floating y);
int isgreaterequal(real-floating x, real-floating y);
int isinf(real-floating x);
int isless(real-floating x, real-floating y);
int islessequal(real-floating x, real-floating y);
int islessgreater(real-floating x, real-floating y);
int isnan(real-floating x);
int isnormal(real-floating x);
int isunordered(real-floating x, real-floating y);
int signbit(real-floating x);

[XSI] [Option Start] The <math.h> header shall define the following symbolic constants. Where the constant name ends in 'l' (lower case ell), the values shall have type long double; otherwise the values shall have type double. The values shall be accurate to the precision of their type. If the implementation supports FLT_EVAL_METHOD values other than 0 or 1, the values shall either include an explicit cast for that type, or be expressed as hexadecimal floating constants.

Double

Long Double

Value

M_E

M_El

Value of \(e\)

M_EGAMMA

M_EGAMMAl

Value of \(\gamma\), Euler-Mascheroni constant

M_LOG2E

M_LOG2El

Value of \(\log _2 e\)

M_LOG10E

M_LOG10El

Value of \(log _{10} e\)

M_LN2

M_LN2l

Value of \(log _e 2\)

M_LN10

M_LN10l

Value of \(log _e 10\)

M_PHI

M_PHIl

Value of \(\phi,(1+\sqrt{5}) / 2\) golden ratio constant, golden ratio constant

M_PI

M_PIl

Value of \(\pi\)

M_PI_2

M_PI_2l

Value of \(\pi /2\)

M_PI_4

M_PI_4l

Value of \(\pi /4\)

M_1_PI

M_1_PIl

Value of \(1/ \pi\)

M_1_SQRTPI

M_1_SQRTPIl

Value of \(1/ \sqrt \pi\)

M_2_PI

M_2_PIl

Value of \(2/ \pi\)

M_2_SQRTPI

M_2_SQRTPIl

Value of \(2/ \sqrt \pi\)

M_SQRT2

M_SQRT2l

Value of \(\sqrt 2\)

M_SQRT3

M_SQRT3l

Value of \(\sqrt 3\)

M_SQRT1_2

M_SQRT1_2l

Value of \(1/ \sqrt 2\)

M_SQRT1_3

M_SQRT1_3l

Value of \(1/ \sqrt 3\)

[Option End]

The <math.h> header shall define the following macros:

HUGE_VAL
A positive double constant expression, not necessarily representable as a float. Used as an error value returned by the mathematics library. HUGE_VAL evaluates to +infinity on systems supporting IEEE Std 754-1985.
HUGE_VALF
A positive float constant expression. Used as an error value returned by the mathematics library. HUGE_VALF evaluates to +infinity on systems supporting IEEE Std 754-1985.
HUGE_VALL
A positive long double constant expression. Used as an error value returned by the mathematics library. HUGE_VALL evaluates to +infinity on systems supporting IEEE Std 754-1985.
INFINITY
A constant expression of type float representing positive or unsigned infinity, if available; else a positive constant of type float that overflows at translation time.
NAN
A constant expression of type float representing a quiet NaN. This macro is only defined if the implementation supports quiet NaNs for the float type.

The following macros shall be defined for number classification. They represent the mutually-exclusive kinds of floating-point values. They expand to integer constant expressions with distinct values. Additional implementation-defined floating-point classifications, with macro definitions beginning with FP_ and an uppercase letter, may also be specified by the implementation.

FP_INFINITE
FP_NAN
FP_NORMAL
FP_SUBNORMAL
FP_ZERO

The following optional macros indicate whether the fma() family of functions are fast compared with direct code:

FP_FAST_FMA
FP_FAST_FMAF
FP_FAST_FMAL

If defined, the FP_FAST_FMA macro shall expand to the integer constant 1 and shall indicate that the fma() function generally executes about as fast as, or faster than, a multiply and an add of double operands. If undefined, the speed of execution is unspecified. The other macros have the equivalent meaning for the float and long double versions.

The following macros shall expand to integer constant expressions whose values are returned by ilogb( x) if x is zero or NaN, respectively. The value of FP_ILOGB0 shall be either {INT_MIN} or - {INT_MAX}. The value of FP_ILOGBNAN shall be either {INT_MAX} or {INT_MIN}.

FP_ILOGB0
FP_ILOGBNAN

The following macros shall expand to the integer constants 1 and 2, respectively;

MATH_ERRNO
MATH_ERREXCEPT

The following macro shall expand to an expression that has type int and the value MATH_ERRNO, MATH_ERREXCEPT, or the bitwise-inclusive OR of both:

math_errhandling

The value of math_errhandling is constant for the duration of the program. It is unspecified whether math_errhandling is a macro or an identifier with external linkage. If a macro definition is suppressed or a program defines an identifier with the name math_errhandling , the behavior is undefined. If the expression (math_errhandling & MATH_ERREXCEPT) can be non-zero, the implementation shall define the macros FE_DIVBYZERO, FE_INVALID, and FE_OVERFLOW in <fenv.h>.

The following shall be declared as functions and may also be defined as macros. Function prototypes shall be provided.

double      acos(double);
float       acosf(float);
double      acosh(double);
float       acoshf(float);
long double acoshl(long double);
long double acosl(long double);
double      asin(double);
float       asinf(float);
double      asinh(double);
float       asinhf(float);
long double asinhl(long double);
long double asinl(long double);
double      atan(double);
double      atan2(double, double);
float       atan2f(float, float);
long double atan2l(long double, long double);
float       atanf(float);
double      atanh(double);
float       atanhf(float);
long double atanhl(long double);
long double atanl(long double);
double      cbrt(double);
float       cbrtf(float);
long double cbrtl(long double);
double      ceil(double);
float       ceilf(float);
long double ceill(long double);
double      copysign(double, double);
float       copysignf(float, float);
long double copysignl(long double, long double);
double      cos(double);
float       cosf(float);
double      cosh(double);
float       coshf(float);
long double coshl(long double);
long double cosl(long double);
double      erf(double);
double      erfc(double);
float       erfcf(float);
long double erfcl(long double);
float       erff(float);
long double erfl(long double);
double      exp(double);
double      exp2(double);
float       exp2f(float);
long double exp2l(long double);
float       expf(float);
long double expl(long double);
double      expm1(double);
float       expm1f(float);
long double expm1l(long double);
double      fabs(double);
float       fabsf(float);
long double fabsl(long double);
double      fdim(double, double);
float       fdimf(float, float);
long double fdiml(long double, long double);
double      floor(double);
float       floorf(float);
long double floorl(long double);
double      fma(double, double, double);
float       fmaf(float, float, float);
long double fmal(long double, long double, long double);
double      fmax(double, double);
float       fmaxf(float, float);
long double fmaxl(long double, long double);
double      fmin(double, double);
float       fminf(float, float);
long double fminl(long double, long double);
double      fmod(double, double);
float       fmodf(float, float);
long double fmodl(long double, long double);
double      frexp(double, int *);
float       frexpf(float, int *);
long double frexpl(long double, int *);
double      hypot(double, double);
float       hypotf(float, float);
long double hypotl(long double, long double);
int         ilogb(double);
int         ilogbf(float);
int         ilogbl(long double);
[XSI][Option Start]
double      j0(double);
double      j1(double);
double      jn(int, double);
[Option End]
double      ldexp(double, int);
float       ldexpf(float, int);
long double ldexpl(long double, int);
double      lgamma(double);
float       lgammaf(float);
long double lgammal(long double);
long long   llrint(double);
long long   llrintf(float);
long long   llrintl(long double);
long long   llround(double);
long long   llroundf(float);
long long   llroundl(long double);
double      log(double);
double      log10(double);
float       log10f(float);
long double log10l(long double);
double      log1p(double);
float       log1pf(float);
long double log1pl(long double);
double      log2(double);
float       log2f(float);
long double log2l(long double);
double      logb(double);
float       logbf(float);
long double logbl(long double);
float       logf(float);
long double logl(long double);
long        lrint(double);
long        lrintf(float);
long        lrintl(long double);
long        lround(double);
long        lroundf(float);
long        lroundl(long double);
double      modf(double, double *);
float       modff(float, float *);
long double modfl(long double, long double *);
double      nan(const char *);
float       nanf(const char *);
long double nanl(const char *);
double      nearbyint(double);
float       nearbyintf(float);
long double nearbyintl(long double);
double      nextafter(double, double);
float       nextafterf(float, float);
long double nextafterl(long double, long double);
double      nexttoward(double, long double);
float       nexttowardf(float, long double);
long double nexttowardl(long double, long double);
double      pow(double, double);
float       powf(float, float);
long double powl(long double, long double);
double      remainder(double, double);
float       remainderf(float, float);
long double remainderl(long double, long double);
double      remquo(double, double, int *);
float       remquof(float, float, int *);
long double remquol(long double, long double, int *);
double      rint(double);
float       rintf(float);
long double rintl(long double);
double      round(double);
float       roundf(float);
long double roundl(long double);
double      scalbln(double, long);
float       scalblnf(float, long);
long double scalblnl(long double, long);
double      scalbn(double, int);
float       scalbnf(float, int);
long double scalbnl(long double, int);
double      sin(double);
float       sinf(float);
double      sinh(double);
float       sinhf(float);
long double sinhl(long double);
long double sinl(long double);
double      sqrt(double);
float       sqrtf(float);
long double sqrtl(long double);
double      tan(double);
float       tanf(float);
double      tanh(double);
float       tanhf(float);
long double tanhl(long double);
long double tanl(long double);
double      tgamma(double);
float       tgammaf(float);
long double tgammal(long double);
double      trunc(double);
float       truncf(float);
long double truncl(long double);
[XSI][Option Start]
double      y0(double);
double      y1(double);
double      yn(int, double);
[Option End]

The following external variable shall be defined:

[XSI][Option Start]
extern int signgam;
[Option End]

The behavior of each of the functions defined in <math.h> is specified in the System Interfaces volume of POSIX.1-2024 for all representable values of its input arguments, except where stated otherwise. Each function shall execute as if it were a single operation without generating any externally visible exceptional conditions.


The following sections are informative.

APPLICATION USAGE

The FP_CONTRACT pragma can be used to allow (if the state is on) or disallow (if the state is off) the implementation to contract expressions. Each pragma can occur either outside external declarations or preceding all explicit declarations and statements inside a compound statement. When outside external declarations, the pragma takes effect from its occurrence until another FP_CONTRACT pragma is encountered, or until the end of the translation unit. When inside a compound statement, the pragma takes effect from its occurrence until another FP_CONTRACT pragma is encountered (including within a nested compound statement), or until the end of the compound statement; at the end of a compound statement the state for the pragma is restored to its condition just before the compound statement. If this pragma is used in any other context, the behavior is undefined. The default state (on or off) for the pragma is implementation-defined.

RATIONALE

Before the ISO/IEC 9899:1999 standard, the math library was defined only for the floating type double. All the names formed by appending 'f' or 'l' to a name in <math.h> were reserved to allow for the definition of float and long double libraries; and the ISO/IEC 9899:1999 standard provided for all three versions of math functions.

The functions ecvt(), fcvt(), and gcvt() have been dropped from the ISO C standard since their capability is available through sprintf().

The requirement for an explicit cast or representation via hexadecimal floating constants is to guarantee that even when FLT_EVAL_METHOD is neither 0 nor 1, the expression (double)M_PI == M_PI will always hold true. Earlier versions of this standard did not make this requirement, because they lacked the 'l' (lower case ell) versions of the constants and were allowed to provide M_PI with long double precision depending on FLT_EVAL_METHOD.

FUTURE DIRECTIONS

None.

SEE ALSO

<float.h>, <stddef.h> , <sys/types.h>

XSH 2.2 The Compilation Environment, acos, acosh, asin, asinh, atan, atan2, atanh, cbrt, ceil, copysign, cos, cosh, erf, erfc, exp, exp2, expm1, fabs, fdim, floor, fma, fmax, fmin, fmod, fpclassify, frexp, hypot, ilogb, isfinite, isgreater, isinf, isnan, isnormal, isunordered, j0, ldexp, lgamma, llrint, llround, log, log10, log1p, log2, logb, lrint, lround, modf, nan, nearbyint, nextafter, pow, remainder, remquo, rint, round, scalbln, signbit, sin, sinh, sqrt, tan, tanh, tgamma, trunc, y0

CHANGE HISTORY

First released in Issue 1.

Issue 6

This reference page is updated to align with the ISO/IEC 9899:1999 standard.

IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/21 is applied, making it clear that the meaning of the FP_FAST_FMA macro is unspecified if the macro is undefined.

Issue 7

ISO/IEC 9899:1999 standard, Technical Corrigendum 2 #47 (SD5-XBD-ERN-52) is applied, clarifying the wording of the FP_FAST_FMA macro.

The MAXFLOAT constant is marked obsolescent.

This reference page is clarified with respect to macros and symbolic constants.

POSIX.1-2008, Technical Corrigendum 2, XBD/TC2-2008/0063 [801] and XBD/TC2-2008/0064 [801] are applied.

Issue 8

Austin Group Defect 828 is applied, adding long double counterparts with names ending in 'l' to the double constants whose names begin with "M_" , and changing the representation requirements for those constants.

Austin Group Defect 1302 is applied, changing "provides" to "provided".

Austin Group Defect 1330 is applied, removing the obsolescent MAXFLOAT.

Austin Group Defect 1503 is applied, adding M_1_SQRTPI, M_EGAMMA, M_PHI, M_SQRT1_3, and M_SQRT3.

End of informative text.

 

return to top of page

UNIX? is a registered Trademark of The Open Group.
POSIX? is a Trademark of The IEEE.
Copyright ? 2001-2024 The IEEE and The Open Group, All Rights Reserved
[ Main Index | XBD | XSH | XCU | XRAT ]

为什么下巴经常长痘痘 一直很困想睡觉是什么原因 述求是什么意思 银色五行属什么 血糖吃什么食物好
核磁共振什么时候出结果 尿道口红肿是什么原因 物竞天择什么意思 泉中水命是什么意思 肝功能不全是什么意思
肾阴虚火旺吃什么药 喝什么提神 mac是什么 两个禾念什么 什么看果园越看越少
牙龈一直肿不消什么原因 大什么一什么 美尼尔综合症吃什么药 鳑鲏吃什么 三维彩超和四维彩超有什么区别
梦见好多人是什么意思hcv9jop4ns1r.cn 剖腹产后可以吃什么食物hcv8jop3ns2r.cn 什么叫前列腺xinjiangjialails.com 胃息肉是什么原因造成的hcv9jop2ns0r.cn 正师级相当于地方什么级别hcv9jop4ns5r.cn
盗汗什么意思xinmaowt.com 女生为什么会痛经hcv7jop4ns8r.cn 乳腺导管局限性扩张是什么意思hcv8jop6ns0r.cn 什么是hpv感染hcv9jop2ns8r.cn 意大利买什么包便宜hcv9jop0ns4r.cn
月经一直不干净是什么原因引起的jiuxinfghf.com 身体素质是什么意思hcv8jop2ns2r.cn 玄女是什么意思hcv8jop2ns2r.cn 陆勤合格什么意思hcv9jop3ns4r.cn 胸片可以检查出什么hcv9jop8ns2r.cn
马牙是什么原因引起的sscsqa.com 塔罗牌是什么意思wzqsfys.com 属马的生什么属相的宝宝好hcv8jop3ns7r.cn 品牌是什么hcv9jop0ns6r.cn ph值偏高是什么意思hcv7jop5ns5r.cn
百度