Knowledge

C mathematical functions

Source 📝

3208: 1207:
adds several functions and types for fine-grained control of floating-point environment. These functions can be used to control a variety of settings that affect floating-point computations, for example, the rounding mode, on what conditions exceptions occur, when numbers are flushed to zero, etc.
2030:
of the mathematical functions: the same function name can be used with different types of parameters; the actual function will be selected at compile time according to the types of the parameters.
1435:, and is then defined as a pair of floating-point numbers. Note that C99 and C++ do not implement complex numbers in a code-compatible way – the latter instead provides the class 199:
numbers in one manner or another. Different C standards provide different, albeit backwards-compatible, sets of functions. Most of these functions are also available in the
2735: 2553:,3) to compute squares or cubes. However, this is not advisable in time-critical code. Unless an implementation takes special care of these cases at compile time, 1949:
A few more complex functions are "reserved for future use in C99". Implementations are provided by open-source projects that are not part of the standard library.
171: 2033:
Each type-generic macro that corresponds to a function that is defined for both real and complex numbers encapsulates a total of 6 different functions:
2049:
variants. The type-generic macros that correspond to a function that is defined for only real numbers encapsulates a total of 3 different functions:
2728: 2285: 3048: 3212: 2530: 2502: 2426: 1751: 164: 2212:
are usually too weak to be even considered statistically random, and it requires explicit seeding. It is usually advised to use
3029: 2938: 2721: 760: 745: 730: 3147: 2245: 2172: 2122: 3119: 3167: 2335: 889: 3234: 3177: 3162: 2868: 1519: 157: 83: 261:
for the floating-point arguments, leading to expensive type conversions in code that otherwise used single-precision
2369: 203:, though in different headers (the C headers are included as well, but only as a deprecated compatibility feature). 3124: 2853: 1936: 53: 3172: 2878: 2775: 2770: 2765: 2699: 1916: 73: 3152: 2811: 2744: 78: 3015: 2990: 1896: 1431:
header is included) that provides support for complex numbers. Any floating-point type can be modified with
3033: 2361:'s libm, which is correctly rounded (i.e. errors from the mathematically correct result are lower than 0.5 200: 2975: 2362: 192: 2693: 2995: 2295: 2276: 1573: 2612: 2027: 1626: 98: 3010: 3005: 2967: 2858: 68: 2373: 3076: 2841: 2185:
family of random number functions are not defined in POSIX standard, but is found in some common
1876: 409: 359: 188: 33: 2064:
The C++ language includes native support for function overloading and thus does not provide the
2084:
in C++) defines several functions that can be used for statistically random number generation.
2909: 2904: 2873: 2816: 2806: 2526: 2498: 1856: 1581: 534: 494: 93: 88: 58: 2474: 1025:
returns the nearest integer using current rounding mode with exception if the result differs
265:
values. In C99, this shortcoming was fixed by introducing new sets of functions that work on
2311: 1315: 1235: 566: 550: 1379: 1347: 1299: 1267: 3020: 2980: 2888: 2497:. Sams Publishing. Appendix B, Section V: The Standard ANSI C Library with C99 Additions. 2377: 2331: 1836: 1811: 1395: 254: 1127: 1100: 3038: 2260:. Therefore, if any of those functions are used, the linker must be given the directive 1929: 1909: 1889: 1094: 995: 379: 3193: 3000: 2926: 2826: 2703: 1996: 1976: 1869: 1849: 1829: 1804: 1791: 1784: 1764: 1686: 1659: 1601: 1594: 1552: 1539: 1532: 1499: 1175: 1139: 1112: 904: 874: 319: 196: 2115: 1744: 1724: 1704: 1679: 1639: 1619: 1512: 1492: 1363: 1283: 1187: 1082: 983: 3228: 3096: 3086: 3025: 2525:. Sams Publishing. Appendix B, Section VIII: C99 Numeric Computational Enhancements. 2405: 2401: 2272: 2099: 1076: 1019: 977: 912: 897: 391: 2652:"RLibm: Rutgers Architecture and Programming Languages Lab's Correctly Rounded Libm" 2348: 2189:
implementations. It used to refer to the keystream generator of a leaked version of
1331: 1251: 1163: 1151: 1052: 1040: 1013: 971: 959: 947: 848: 836: 824: 768: 646: 587: 575: 559: 515: 352: 312: 3066: 2831: 1771: 1064: 1007: 935: 882: 812: 800: 788: 753: 738: 723: 631: 616: 599: 543: 503: 466: 460: 442: 430: 418: 367: 346: 328: 306: 48: 867: 708: 693: 678: 661: 527: 487: 454: 403: 340: 300: 2323: 3157: 1666: 623: 2708: 2383:
Rutger's RLIBM, which provides correctly rounded functions in single precision.
2801: 2780: 2651: 638: 2698:: mathematical declarations – Base Definitions Reference, 2438: 1646: 1559: 257:
version of the standard. For those that are, the functions accept only type
2420: 2305: 965:
returns the nearest integer not greater in magnitude than the given value
397:
signed remainder as well as the three last bits of the division operation
3101: 3091: 3071: 2916: 2883: 2821: 2713: 2388: 2202: 1989: 1969: 143: 134: 116: 2633: 1106:
returns next representable floating-point value towards the given value
17: 2785: 2670: 2327: 2319: 2301: 2018:
defines a type-generic macro for each mathematical function defined in
715: 125: 2434: 989:
returns the nearest integer, rounding away from zero in halfway cases
3056: 2953: 2948: 2755: 1731: 700: 247: 1305:
saves current floating-point environment and clears all exceptions (
3142: 2599: 2315: 1401:
restores floating-point environment, but keeps current exceptions (
1217: 3081: 3061: 2985: 2933: 2921: 2380:
to automatically generate approximations that are formally proven.
2289: 2241: 2237: 1208:
The floating-point environment functions and types are defined in
775: 653: 581:
computes natural logarithm (to base e) of 1 plus the given number
2410: 2943: 2441:'s VCL, plus a few closed-source ones like SVML and DirectXMath. 2358: 2344: 2151:
generates a pseudo-random number between 0 and a maximum value.
1711: 685: 219:
header in C++). The functions that operate on integers, such as
2717: 27:
C standard library header file providing mathematical functions
2760: 2451: 2281: 2201:"), but different algorithms, usually from other ciphers like 2190: 2000: 1980: 1940: 1920: 1900: 1880: 1860: 1840: 1815: 1795: 1775: 1755: 1735: 1715: 1690: 1670: 1650: 1630: 1605: 1585: 1563: 1543: 1523: 1503: 1416: 1402: 1386: 1370: 1354: 1338: 1322: 1306: 1290: 1274: 1258: 1242: 1204: 473: 953:
returns the nearest integer not greater than the given value
195:
implementing basic mathematical functions. All functions use
941:
returns the nearest integer not less than the given value
654:
square root of the sum of the squares of two given numbers
2339: 1001:
returns the nearest integer using current rounding mode
903:
computes natural logarithm of the absolute value of the
1070:
decomposes a number into integer and fractional parts
1046:
decomposes a number into significand and a power of 2
2671:"intel - Where is Clang's '_mm256_pow_ps' intrinsic?" 2430: 2413:
is a version of C/C++ math functions written for C++
2252:) are bundled separately in the mathematical library 1450:
All operations on complex numbers are defined in the
2423:, correctly rounded for single and double precision. 3186: 3133: 3110: 3047: 2966: 2897: 2840: 2794: 2414: 2394: 2205:, have been implemented since using the same name. 1436: 1385:
tests whether certain exceptions have been raised (
1088:multiplies a number by FLT_RADIX raised to a power 373:remainder of the floating-point division operation 334:computes absolute value of a floating-point value 211:Most of the mathematical functions are defined in 448:positive difference of two floating-point values 2545:Notationally, it may seem convenient to use pow( 2393:Implementations not necessarily under a name of 253:Not all of these functions are available in the 2134:generates a pseudo-random number between 0 and 2105:generates a pseudo-random number between 0 and 1193:checks if the sign of the argument is negative 776:arc tangent, using signs to determine quadrants 521:returns e raised to the given power, minus one 2516: 2514: 2161:fill a buffer with a pseudo-random bitstream. 1454:header. As with the real-valued functions, an 2729: 2248:, the mathematical functions (as declared in 273:arguments. Those functions are identified by 165: 8: 2372:(correctly rounded libm), and its successor 1257:stores current floating-point environment ( 1133:categorizes the given floating-point value 1058:multiplies a number by 2 raised to a power 385:signed remainder of the division operation 2846: 2736: 2722: 2714: 2334:, both of which in turn were the basis of 2220:when possible. Some C libraries implement 1118:copies the sign of a floating-point value 172: 158: 29: 1427:convenience macro; only available if the 1337:sets current floating-point environment ( 246:Any functions that operate on angles use 2138:, usually using a better algorithm than 2086: 2068:header even as a compatibility feature. 1951: 1472: 1222: 1145:checks if the argument has finite value 283: 2463: 358:computes the quotient and remainder of 106: 40: 32: 1289:retrieves current rounding direction ( 2634:"Math Functions — The LLVM C Library" 2573:will execute much faster. Also, sqrt( 2469: 2467: 2389:Rounding § Table-maker's dilemma 1600:computes complex projection into the 436:smaller of two floating-point values 7: 2598:man cerf(3), man cerfc(3), see e.g. 2429:(vectorized) math libraries include 509:returns 2 raised to the given power 424:larger of two floating-point values 1995:computes the complex complementary 1321:raises a floating-point exception ( 1157:checks if the argument is infinite 667:raises a number to the given power 2318:, which was used as the basis for 2026:. This adds a limited support for 25: 1369:sets current rounding direction ( 1181:checks if the argument is normal 3207: 3206: 2613:"The GNU C Library – ISO Random" 2600:https://linux.die.net/man/3/cerf 854:computes hyperbolic arc tangent 605:extracts exponent of the number 593:extracts exponent of the number 187:are a group of functions in the 2581:) should be preferred over pow( 2476:ISO/IEC 9899:1999 specification 2208:The quality of randomness from 842:computes hyperbolic arc cosine 2709:C reference for math functions 2292:, used almost as is by Windows 2173:pseudo-random number generator 2123:pseudo-random number generator 1169:checks if the argument is NaN 1: 2700:The Single UNIX Specification 1273:stores current status flags ( 830:computes hyperbolic arc sine 235:, are instead defined in the 2268:implementations, including: 1520:argument of a complex number 890:complementary error function 818:computes hyperbolic tangent 2355:and other projects like Arm 1353:sets current status flags ( 806:computes hyperbolic cosine 3251: 3120:Compatibility of C and C++ 2452:C99 floating-point support 2417:(compile-time calculation) 2386: 2061:variants of the function. 1200:Floating-point environment 497:raised to the given power 296: 3202: 2849: 2751: 1964: 1822: 1697: 1612: 1485: 1470:variant of the function. 1122: 1029: 922: 858: 794:computes hyperbolic sine 781: 671: 609: 480: 185:C mathematical operations 2072:Random-number generation 918:computes gamma function 54:Character classification 2521:Prata, Stephen (2004). 2493:Prata, Stephen (2004). 2406:optimized math routines 281:suffixes respectively. 3125:Comparison with Pascal 2745:C programming language 2363:unit in the last place 2010:Type-generic functions 1937:hyperbolic arc tangent 250:as the unit of angle. 193:C programming language 2656:people.cs.rutgers.edu 1975:computes the complex 1917:hyperbolic arc cosine 1562:of a complex number ( 1542:of a complex number ( 207:Overview of functions 107:Miscellaneous headers 2264:. There are various 2028:function overloading 322:of an integer value 201:C++ standard library 2368:Arénaire project's 2351:, based on the BSD 1897:hyperbolic arc sine 1468:long double complex 1462:suffix denotes the 1241:clears exceptions ( 3235:C standard library 2296:Intel C++ Compiler 2226:arc4random_uniform 2147:arc4random_uniform 1877:hyperbolic tangent 410:fused multiply-add 99:Alternative tokens 34:C standard library 3222: 3221: 2962: 2961: 2702:, Version 4 from 2482:. p. 212, § 7.12. 2179: 2178: 2024:<complex.h> 2007: 2006: 1947: 1946: 1935:computes complex 1915:computes complex 1895:computes complex 1875:computes complex 1857:hyperbolic cosine 1855:computes complex 1835:computes complex 1810:computes complex 1790:computes complex 1770:computes complex 1750:computes complex 1730:computes complex 1710:computes complex 1685:computes complex 1665:computes complex 1645:computes complex 1625:computes complex 1582:complex conjugate 1452:<complex.h> 1429:<complex.h> 1409: 1408: 1197: 1196: 535:natural logarithm 182: 181: 84:Memory allocation 69:File input/output 16:(Redirected from 3242: 3210: 3209: 2847: 2842:Standard library 2738: 2731: 2724: 2715: 2697: 2696: 2679: 2678: 2666: 2660: 2659: 2648: 2642: 2641: 2630: 2624: 2623: 2621: 2619: 2609: 2603: 2596: 2590: 2543: 2537: 2536: 2518: 2509: 2508: 2490: 2484: 2483: 2481: 2471: 2416: 2396: 2354: 2267: 2263: 2259: 2258: 2257: 2251: 2227: 2223: 2219: 2215: 2211: 2188: 2184: 2168: 2158: 2148: 2141: 2137: 2131: 2118: 2108: 2102: 2087: 2083: 2079: 2078:<stdlib.h> 2067: 2066:<tgmath.h> 2060: 2056: 2052: 2048: 2044: 2040: 2036: 2025: 2021: 2017: 2016:<tgmath.h> 1992: 1972: 1965:Error functions 1952: 1932: 1912: 1892: 1872: 1852: 1832: 1807: 1787: 1767: 1747: 1727: 1707: 1682: 1662: 1642: 1622: 1597: 1577: 1576: 1555: 1535: 1515: 1495: 1473: 1469: 1465: 1461: 1457: 1453: 1446: 1445: 1442: 1439: 1434: 1430: 1426: 1422: 1398: 1382: 1366: 1350: 1334: 1318: 1302: 1286: 1270: 1254: 1238: 1223: 1215: 1211: 1190: 1178: 1166: 1154: 1142: 1130: 1115: 1103: 1097: 1085: 1079: 1067: 1055: 1043: 1022: 1016: 1010: 998: 986: 980: 974: 962: 950: 938: 915: 900: 885: 870: 851: 839: 827: 815: 803: 791: 771: 756: 741: 726: 711: 696: 681: 664: 649: 634: 619: 602: 590: 578: 567:common logarithm 562: 551:binary logarithm 546: 530: 518: 506: 490: 469: 463: 457: 445: 433: 421: 406: 394: 382: 370: 360:integer division 355: 349: 343: 331: 315: 309: 303: 284: 280: 276: 272: 268: 264: 260: 243:header in C++). 242: 238: 237:<stdlib.h> 234: 230: 226: 222: 218: 214: 189:standard library 174: 167: 160: 147: 138: 129: 120: 30: 21: 3250: 3249: 3245: 3244: 3243: 3241: 3240: 3239: 3225: 3224: 3223: 3218: 3198: 3182: 3135: 3129: 3113:other languages 3112: 3111:Comparison with 3106: 3043: 2981:Borland Turbo C 2958: 2898:Implementations 2893: 2836: 2790: 2747: 2742: 2692: 2691: 2688: 2683: 2682: 2669:Cordes, Peter. 2668: 2667: 2663: 2650: 2649: 2645: 2632: 2631: 2627: 2617: 2615: 2611: 2610: 2606: 2597: 2593: 2544: 2540: 2533: 2520: 2519: 2512: 2505: 2492: 2491: 2487: 2479: 2473: 2472: 2465: 2460: 2448: 2391: 2378:Remez algorithm 2352: 2265: 2261: 2255: 2254: 2253: 2249: 2234: 2232:Implementations 2225: 2221: 2217: 2213: 2209: 2193:cipher (hence " 2186: 2182: 2167:arc4random_stir 2166: 2156: 2146: 2139: 2135: 2129: 2114: 2106: 2098: 2082:<cstdlib> 2081: 2077: 2074: 2065: 2058: 2054: 2050: 2046: 2042: 2038: 2034: 2023: 2019: 2015: 2012: 1988: 1968: 1928: 1908: 1888: 1868: 1848: 1837:hyperbolic sine 1828: 1824: 1803: 1783: 1763: 1743: 1723: 1703: 1699: 1678: 1658: 1638: 1618: 1614: 1593: 1572: 1571: 1551: 1531: 1511: 1491: 1487: 1467: 1463: 1459: 1455: 1451: 1443: 1440: 1437: 1432: 1428: 1424: 1420: 1414: 1412:Complex numbers 1394: 1378: 1362: 1348:fesetexceptflag 1346: 1330: 1314: 1298: 1282: 1268:fegetexceptflag 1266: 1250: 1234: 1213: 1209: 1202: 1186: 1174: 1162: 1150: 1138: 1126: 1123:Classification 1111: 1099: 1098: 1093: 1081: 1080: 1075: 1063: 1051: 1039: 1035: 1033: 1031: 1018: 1017: 1012: 1011: 1006: 994: 982: 981: 976: 975: 970: 958: 946: 934: 930: 928: 926: 924: 911: 896: 881: 866: 862: 860: 847: 835: 823: 811: 799: 787: 783: 767: 752: 737: 722: 707: 692: 677: 673: 660: 645: 630: 615: 611: 598: 586: 574: 558: 542: 526: 514: 502: 486: 482: 476:(not-a-number) 465: 464: 459: 458: 453: 441: 429: 417: 402: 390: 378: 366: 351: 350: 345: 344: 339: 327: 311: 310: 305: 304: 299: 278: 274: 270: 266: 262: 258: 241:<cstdlib> 240: 236: 232: 228: 224: 220: 216: 212: 209: 178: 141: 132: 123: 114: 89:Process control 28: 23: 22: 15: 12: 11: 5: 3248: 3246: 3238: 3237: 3227: 3226: 3220: 3219: 3217: 3216: 3203: 3200: 3199: 3197: 3196: 3194:Dennis Ritchie 3190: 3188: 3184: 3183: 3181: 3180: 3175: 3170: 3165: 3160: 3155: 3150: 3145: 3139: 3137: 3131: 3130: 3128: 3127: 3122: 3116: 3114: 3108: 3107: 3105: 3104: 3099: 3094: 3089: 3084: 3079: 3074: 3069: 3064: 3059: 3053: 3051: 3045: 3044: 3042: 3041: 3036: 3023: 3018: 3013: 3008: 3003: 2998: 2993: 2988: 2983: 2978: 2972: 2970: 2964: 2963: 2960: 2959: 2957: 2956: 2951: 2946: 2941: 2936: 2931: 2930: 2929: 2919: 2914: 2913: 2912: 2901: 2899: 2895: 2894: 2892: 2891: 2886: 2881: 2876: 2871: 2869:Dynamic memory 2866: 2861: 2856: 2850: 2844: 2838: 2837: 2835: 2834: 2829: 2824: 2819: 2814: 2809: 2804: 2798: 2796: 2792: 2791: 2789: 2788: 2783: 2778: 2773: 2768: 2763: 2758: 2752: 2749: 2748: 2743: 2741: 2740: 2733: 2726: 2718: 2712: 2711: 2706: 2704:The Open Group 2687: 2686:External links 2684: 2681: 2680: 2675:Stack Overflow 2661: 2643: 2625: 2604: 2591: 2538: 2531: 2510: 2503: 2485: 2462: 2461: 2459: 2456: 2455: 2454: 2447: 2444: 2443: 2442: 2424: 2418: 2408: 2385: 2384: 2381: 2366: 2356: 2342: 2309: 2299: 2293: 2279: 2250:<math.h> 2233: 2230: 2177: 2176: 2171:initializes a 2169: 2163: 2162: 2159: 2157:arc4random_buf 2153: 2152: 2149: 2143: 2142: 2132: 2126: 2125: 2121:initializes a 2119: 2111: 2110: 2103: 2095: 2094: 2091: 2073: 2070: 2020:<math.h> 2011: 2008: 2005: 2004: 1997:error function 1993: 1985: 1984: 1977:error function 1973: 1966: 1962: 1961: 1958: 1955: 1945: 1944: 1933: 1925: 1924: 1913: 1905: 1904: 1893: 1885: 1884: 1873: 1865: 1864: 1853: 1845: 1844: 1833: 1826: 1820: 1819: 1808: 1800: 1799: 1788: 1780: 1779: 1768: 1760: 1759: 1748: 1740: 1739: 1728: 1720: 1719: 1708: 1701: 1695: 1694: 1683: 1675: 1674: 1663: 1655: 1654: 1643: 1635: 1634: 1623: 1616: 1613:Exponentiation 1610: 1609: 1602:Riemann sphere 1598: 1590: 1589: 1578: 1568: 1567: 1556: 1548: 1547: 1540:imaginary part 1536: 1528: 1527: 1516: 1508: 1507: 1500:absolute value 1496: 1489: 1483: 1482: 1479: 1476: 1413: 1410: 1407: 1406: 1399: 1391: 1390: 1383: 1375: 1374: 1367: 1359: 1358: 1351: 1343: 1342: 1335: 1327: 1326: 1319: 1311: 1310: 1303: 1295: 1294: 1287: 1279: 1278: 1271: 1263: 1262: 1255: 1247: 1246: 1239: 1231: 1230: 1227: 1210:<fenv.h> 1201: 1198: 1195: 1194: 1191: 1183: 1182: 1179: 1171: 1170: 1167: 1159: 1158: 1155: 1147: 1146: 1143: 1135: 1134: 1131: 1124: 1120: 1119: 1116: 1108: 1107: 1104: 1090: 1089: 1086: 1072: 1071: 1068: 1060: 1059: 1056: 1048: 1047: 1044: 1037: 1027: 1026: 1023: 1003: 1002: 999: 991: 990: 987: 967: 966: 963: 955: 954: 951: 943: 942: 939: 932: 920: 919: 916: 908: 907: 905:gamma function 901: 893: 892: 886: 878: 877: 875:error function 871: 864: 856: 855: 852: 844: 843: 840: 832: 831: 828: 820: 819: 816: 808: 807: 804: 796: 795: 792: 785: 779: 778: 772: 764: 763: 757: 749: 748: 742: 734: 733: 727: 719: 718: 712: 704: 703: 697: 689: 688: 682: 675: 669: 668: 665: 657: 656: 650: 642: 641: 635: 627: 626: 620: 613: 607: 606: 603: 595: 594: 591: 583: 582: 579: 571: 570: 563: 555: 554: 547: 539: 538: 531: 523: 522: 519: 511: 510: 507: 499: 498: 491: 484: 478: 477: 470: 450: 449: 446: 438: 437: 434: 426: 425: 422: 414: 413: 407: 399: 398: 395: 387: 386: 383: 375: 374: 371: 363: 362: 356: 336: 335: 332: 324: 323: 320:absolute value 316: 297: 294: 293: 290: 287: 213:<math.h> 208: 205: 197:floating-point 180: 179: 177: 176: 169: 162: 154: 151: 150: 149: 148: 139: 130: 121: 109: 108: 104: 103: 102: 101: 96: 91: 86: 81: 76: 71: 66: 61: 56: 51: 43: 42: 41:General topics 38: 37: 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 3247: 3236: 3233: 3232: 3230: 3215: 3214: 3205: 3204: 3201: 3195: 3192: 3191: 3189: 3185: 3179: 3176: 3174: 3171: 3169: 3166: 3164: 3161: 3159: 3156: 3154: 3151: 3149: 3146: 3144: 3141: 3140: 3138: 3132: 3126: 3123: 3121: 3118: 3117: 3115: 3109: 3103: 3100: 3098: 3097:Visual Studio 3095: 3093: 3090: 3088: 3087:GNOME Builder 3085: 3083: 3080: 3078: 3075: 3073: 3070: 3068: 3065: 3063: 3060: 3058: 3055: 3054: 3052: 3050: 3046: 3040: 3037: 3035: 3031: 3027: 3026:Visual Studio 3024: 3022: 3019: 3017: 3014: 3012: 3009: 3007: 3004: 3002: 2999: 2997: 2994: 2992: 2989: 2987: 2984: 2982: 2979: 2977: 2974: 2973: 2971: 2969: 2965: 2955: 2952: 2950: 2947: 2945: 2942: 2940: 2937: 2935: 2932: 2928: 2925: 2924: 2923: 2920: 2918: 2915: 2911: 2908: 2907: 2906: 2903: 2902: 2900: 2896: 2890: 2887: 2885: 2882: 2880: 2877: 2875: 2872: 2870: 2867: 2865: 2862: 2860: 2857: 2855: 2852: 2851: 2848: 2845: 2843: 2839: 2833: 2830: 2828: 2825: 2823: 2820: 2818: 2815: 2813: 2810: 2808: 2805: 2803: 2800: 2799: 2797: 2793: 2787: 2784: 2782: 2779: 2777: 2774: 2772: 2769: 2767: 2764: 2762: 2759: 2757: 2754: 2753: 2750: 2746: 2739: 2734: 2732: 2727: 2725: 2720: 2719: 2716: 2710: 2707: 2705: 2701: 2695: 2690: 2689: 2685: 2676: 2672: 2665: 2662: 2657: 2653: 2647: 2644: 2639: 2638:libc.llvm.org 2635: 2629: 2626: 2614: 2608: 2605: 2601: 2595: 2592: 2588: 2584: 2580: 2576: 2572: 2568: 2564: 2560: 2556: 2552: 2548: 2542: 2539: 2534: 2532:0-672-32696-5 2528: 2524: 2523:C primer plus 2517: 2515: 2511: 2506: 2504:0-672-32696-5 2500: 2496: 2495:C primer plus 2489: 2486: 2478: 2477: 2470: 2468: 2464: 2457: 2453: 2450: 2449: 2445: 2440: 2436: 2432: 2428: 2425: 2422: 2419: 2412: 2409: 2407: 2403: 2400: 2399: 2398: 2390: 2382: 2379: 2376:, which uses 2375: 2371: 2367: 2364: 2360: 2357: 2350: 2346: 2343: 2341: 2337: 2333: 2329: 2325: 2321: 2317: 2313: 2310: 2307: 2303: 2300: 2297: 2294: 2291: 2287: 2283: 2280: 2278: 2274: 2271: 2270: 2269: 2247: 2243: 2240:systems like 2239: 2231: 2229: 2206: 2204: 2200: 2196: 2192: 2174: 2170: 2165: 2164: 2160: 2155: 2154: 2150: 2145: 2144: 2133: 2128: 2127: 2124: 2120: 2117: 2113: 2112: 2109:, inclusive. 2104: 2101: 2097: 2096: 2092: 2089: 2088: 2085: 2071: 2069: 2062: 2031: 2029: 2009: 2002: 1998: 1994: 1991: 1987: 1986: 1982: 1978: 1974: 1971: 1967: 1963: 1959: 1956: 1954: 1953: 1950: 1942: 1938: 1934: 1931: 1927: 1926: 1922: 1918: 1914: 1911: 1907: 1906: 1902: 1898: 1894: 1891: 1887: 1886: 1882: 1878: 1874: 1871: 1867: 1866: 1862: 1858: 1854: 1851: 1847: 1846: 1842: 1838: 1834: 1831: 1827: 1821: 1817: 1813: 1809: 1806: 1802: 1801: 1797: 1793: 1789: 1786: 1782: 1781: 1777: 1773: 1769: 1766: 1762: 1761: 1757: 1753: 1749: 1746: 1742: 1741: 1737: 1733: 1729: 1726: 1722: 1721: 1717: 1713: 1709: 1706: 1702: 1698:Trigonometric 1696: 1692: 1688: 1684: 1681: 1677: 1676: 1672: 1668: 1664: 1661: 1657: 1656: 1652: 1648: 1644: 1641: 1637: 1636: 1632: 1628: 1624: 1621: 1617: 1611: 1607: 1603: 1599: 1596: 1592: 1591: 1587: 1583: 1579: 1575: 1570: 1569: 1565: 1561: 1557: 1554: 1550: 1549: 1545: 1541: 1537: 1534: 1530: 1529: 1525: 1521: 1517: 1514: 1510: 1509: 1505: 1501: 1497: 1494: 1490: 1484: 1480: 1477: 1475: 1474: 1471: 1464:float complex 1448: 1423:keyword (and 1418: 1411: 1404: 1400: 1397: 1393: 1392: 1388: 1384: 1381: 1377: 1376: 1372: 1368: 1365: 1361: 1360: 1356: 1352: 1349: 1345: 1344: 1340: 1336: 1333: 1329: 1328: 1324: 1320: 1317: 1316:feraiseexcept 1313: 1312: 1308: 1304: 1301: 1297: 1296: 1292: 1288: 1285: 1281: 1280: 1276: 1272: 1269: 1265: 1264: 1260: 1256: 1253: 1249: 1248: 1244: 1240: 1237: 1236:feclearexcept 1233: 1232: 1228: 1225: 1224: 1221: 1219: 1214:<cfenv> 1206: 1199: 1192: 1189: 1185: 1184: 1180: 1177: 1173: 1172: 1168: 1165: 1161: 1160: 1156: 1153: 1149: 1148: 1144: 1141: 1137: 1136: 1132: 1129: 1125: 1121: 1117: 1114: 1110: 1109: 1105: 1102: 1096: 1092: 1091: 1087: 1084: 1078: 1074: 1073: 1069: 1066: 1062: 1061: 1057: 1054: 1050: 1049: 1045: 1042: 1038: 1028: 1024: 1021: 1015: 1009: 1005: 1004: 1000: 997: 993: 992: 988: 985: 979: 973: 969: 968: 964: 961: 957: 956: 952: 949: 945: 944: 940: 937: 933: 921: 917: 914: 910: 909: 906: 902: 899: 895: 894: 891: 887: 884: 880: 879: 876: 872: 869: 865: 857: 853: 850: 846: 845: 841: 838: 834: 833: 829: 826: 822: 821: 817: 814: 810: 809: 805: 802: 798: 797: 793: 790: 786: 780: 777: 773: 770: 766: 765: 762: 758: 755: 751: 750: 747: 743: 740: 736: 735: 732: 728: 725: 721: 720: 717: 713: 710: 706: 705: 702: 698: 695: 691: 690: 687: 683: 680: 676: 672:Trigonometric 670: 666: 663: 659: 658: 655: 651: 648: 644: 643: 640: 636: 633: 629: 628: 625: 621: 618: 614: 608: 604: 601: 597: 596: 592: 589: 585: 584: 580: 577: 573: 572: 569:(to base 10) 568: 564: 561: 557: 556: 552: 548: 545: 541: 540: 536: 532: 529: 525: 524: 520: 517: 513: 512: 508: 505: 501: 500: 496: 492: 489: 485: 479: 475: 471: 468: 462: 456: 452: 451: 447: 444: 440: 439: 435: 432: 428: 427: 423: 420: 416: 415: 411: 408: 405: 401: 400: 396: 393: 389: 388: 384: 381: 377: 376: 372: 369: 365: 364: 361: 357: 354: 348: 342: 338: 337: 333: 330: 326: 325: 321: 317: 314: 308: 302: 298: 295: 291: 288: 286: 285: 282: 256: 251: 249: 244: 217:<cmath> 206: 204: 202: 198: 194: 190: 186: 175: 170: 168: 163: 161: 156: 155: 153: 152: 145: 140: 136: 131: 127: 122: 118: 113: 112: 111: 110: 105: 100: 97: 95: 92: 90: 87: 85: 82: 80: 77: 75: 72: 70: 67: 65: 62: 60: 57: 55: 52: 50: 47: 46: 45: 44: 39: 35: 31: 19: 3211: 3067:Code::Blocks 3039:Watcom C/C++ 2863: 2827:Preprocessor 2807:Header files 2674: 2664: 2655: 2646: 2637: 2628: 2616:. Retrieved 2607: 2594: 2586: 2585:,.5) or pow( 2582: 2578: 2574: 2570: 2566: 2562: 2558: 2554: 2550: 2546: 2541: 2522: 2494: 2488: 2475: 2392: 2235: 2228:internally. 2207: 2198: 2194: 2180: 2093:Description 2075: 2063: 2045:, and their 2032: 2013: 1960:Description 1948: 1481:Description 1449: 1415: 1380:fetestexcept 1300:feholdexcept 1229:Description 1203: 1034:manipulation 553:(to base 2) 537:(to base e) 292:Description 252: 245: 210: 184: 183: 79:Localization 63: 3158:Objective-C 2939:Windows CRT 2577:) and cbrt( 2549:,2) or pow( 2216:instead of 2076:The header 2059:long double 2043:long double 2014:The header 1825:operations 1812:arc tangent 1700:operations 1667:square root 1627:exponential 1615:operations 1488:operations 1419:adds a new 1396:feupdateenv 931:operations 761:arc tangent 624:square root 481:Exponential 271:long double 64:Mathematics 3134:Descendant 3006:Norcroft C 2832:Data types 2781:Embedded C 2458:References 2387:See also: 2214:arc4random 2183:arc4random 2136:UINT32_MAX 2130:arc4random 1823:Hyperbolic 1792:arc cosine 1364:fesetround 1284:fegetround 1128:fpclassify 1101:nexttoward 1036:functions 863:functions 784:functions 782:Hyperbolic 746:arc cosine 674:functions 639:cubic root 612:functions 483:functions 472:returns a 412:operation 49:Data types 3136:languages 2968:Compilers 2910:libhybris 2812:Operators 2802:Functions 2439:Agner Fog 2421:CORE-MATH 2415:constexpr 2397:include: 2090:Function 1957:Function 1647:logarithm 1580:computes 1560:real part 1558:computes 1538:computes 1518:computes 1498:computes 1478:Function 1226:Function 1095:nextafter 1030:Floating- 996:nearbyint 927:floating- 888:computes 873:computes 859:Error and 774:computes 759:computes 744:computes 729:computes 714:computes 699:computes 684:computes 652:computes 637:computes 622:computes 565:computes 549:computes 533:computes 380:remainder 318:computes 289:Function 74:Date/time 3229:Category 3213:Category 3187:Designer 3102:NetBeans 3092:KDevelop 3072:CodeLite 2917:dietlibc 2884:Variadic 2859:File I/O 2795:Features 2446:See also 2411:GCE-Math 2374:MetaLibm 2340:OpenLibm 2308:(Newlib) 2273:GNU libc 2203:ChaCha20 2107:RAND_MAX 1772:arc sine 1421:_Complex 1332:fesetenv 1252:fegetenv 1212:header ( 1176:isnormal 1140:isfinite 1113:copysign 731:arc sine 493:returns 239:header ( 144:stdarg.h 135:setjmp.h 117:assert.h 18:Tgmath.h 3077:Eclipse 3030:Express 2786:MISRA C 2618:18 July 2589:,1./3). 2328:OpenBSD 2320:FreeBSD 2302:Red Hat 2197:lleged 2047:complex 1752:tangent 1444:complex 1433:complex 1425:complex 1188:signbit 1083:scalbln 984:llround 925:integer 923:Nearest 716:tangent 248:radians 191:of the 126:errno.h 94:Signals 59:Strings 3057:Anjuta 2954:uClibc 2949:Newlib 2927:EGLIBC 2905:Bionic 2874:String 2822:Syntax 2817:String 2756:ANSI C 2694:math.h 2529:  2501:  2437:, and 2435:Yeppp! 2370:CRlibm 2316:FDLIBM 2290:github 2236:Under 2224:using 2055:double 2039:double 1930:catanh 1910:cacosh 1890:casinh 1732:cosine 1077:scalbn 1020:llrint 978:lround 913:tgamma 898:lgamma 701:cosine 392:remquo 259:double 231:, and 36:(libc) 3168:Limbo 3082:Geany 3062:CLion 2986:Clang 2934:klibc 2922:glibc 2889:POSIX 2480:(PDF) 2431:SLEEF 2353:libms 2336:Julia 2242:Linux 2238:POSIX 2116:srand 2051:float 2035:float 1990:cerfc 1870:ctanh 1850:ccosh 1830:csinh 1805:catan 1785:cacos 1765:casin 1687:power 1660:csqrt 1595:cproj 1553:creal 1533:cimag 1486:Basic 1164:isnan 1152:isinf 1053:ldexp 1041:frexp 1032:point 1014:lrint 972:round 960:trunc 948:floor 929:point 861:gamma 849:atanh 837:acosh 825:asinh 769:atan2 647:hypot 610:Power 588:ilogb 576:log1p 560:log10 516:expm1 353:lldiv 313:llabs 267:float 263:float 3178:Vala 3163:Alef 3049:IDEs 3016:SDCC 2944:musl 2879:Time 2864:Math 2854:Char 2620:2018 2527:ISBN 2499:ISBN 2427:SIMD 2395:libm 2359:LLVM 2349:libm 2345:musl 2332:libm 2326:and 2324:msun 2306:libm 2298:libm 2286:libm 2277:libm 2266:libm 2256:libm 2244:and 2222:rand 2218:rand 2210:rand 2187:libc 2181:The 2140:rand 2100:rand 2057:and 2041:and 2022:and 1970:cerf 1745:ctan 1725:ccos 1712:sine 1705:csin 1680:cpow 1640:clog 1620:cexp 1574:conj 1513:carg 1493:cabs 1065:modf 1008:rint 936:ceil 883:erfc 813:tanh 801:cosh 789:sinh 754:atan 739:acos 724:asin 686:sine 632:cbrt 617:sqrt 600:logb 544:log2 504:exp2 467:nanl 461:nanf 443:fdim 431:fmin 419:fmax 368:fmod 347:ldiv 329:fabs 307:labs 277:and 269:and 233:ldiv 225:labs 146:> 142:< 137:> 133:< 128:> 124:< 119:> 115:< 3143:C++ 3034:C++ 3021:TCC 3011:PCC 3001:LCC 2996:ICC 2991:GCC 2976:ACK 2776:C23 2771:C17 2766:C11 2761:C99 2561:or 2404:'s 2402:Arm 2347:'s 2338:'s 2330:'s 2322:'s 2314:'s 2312:Sun 2304:'s 2284:'s 2282:AMD 2275:'s 2262:-lm 2246:BSD 2199:RC4 2191:RC4 2001:C99 1981:C99 1941:C99 1921:C99 1901:C99 1881:C99 1861:C99 1841:C99 1816:C99 1796:C99 1776:C99 1756:C99 1736:C99 1716:C99 1691:C99 1671:C99 1651:C99 1631:C99 1606:C99 1586:C99 1564:C99 1544:C99 1524:C99 1504:C99 1466:or 1458:or 1438:std 1417:C99 1403:C99 1387:C99 1371:C99 1355:C99 1339:C99 1323:C99 1307:C99 1291:C99 1275:C99 1259:C99 1243:C99 1220:). 1218:C++ 1216:in 1205:C99 868:erf 709:tan 694:cos 679:sin 662:pow 528:log 488:exp 474:NaN 455:nan 404:fma 341:div 301:abs 255:C89 229:div 221:abs 3231:: 3173:Go 3148:C# 3032:, 3028:, 2673:. 2654:. 2636:. 2513:^ 2466:^ 2433:, 2288:, 2175:. 2053:, 2037:, 2003:) 1983:) 1943:) 1923:) 1903:) 1883:) 1863:) 1843:) 1818:) 1798:) 1778:) 1758:) 1738:) 1718:) 1693:) 1673:) 1653:) 1633:) 1608:) 1588:) 1566:) 1546:) 1526:) 1506:) 1447:. 1441::: 1405:) 1389:) 1373:) 1357:) 1341:) 1325:) 1309:) 1293:) 1277:) 1261:) 1245:) 227:, 223:, 3153:D 2737:e 2730:t 2723:v 2677:. 2658:. 2640:. 2622:. 2602:. 2587:x 2583:x 2579:x 2575:x 2571:x 2569:* 2567:x 2565:* 2563:x 2559:x 2557:* 2555:x 2551:x 2547:x 2535:. 2507:. 2365:) 2195:a 2080:( 1999:( 1979:( 1939:( 1919:( 1899:( 1879:( 1859:( 1839:( 1814:( 1794:( 1774:( 1754:( 1734:( 1714:( 1689:( 1669:( 1649:( 1629:( 1604:( 1584:( 1522:( 1502:( 1460:l 1456:f 495:e 279:l 275:f 215:( 173:e 166:t 159:v 20:)

Index

Tgmath.h
C standard library
Data types
Character classification
Strings
Mathematics
File input/output
Date/time
Localization
Memory allocation
Process control
Signals
Alternative tokens
assert.h
errno.h
setjmp.h
stdarg.h
v
t
e
standard library
C programming language
floating-point
C++ standard library
radians
C89
abs
labs
llabs
absolute value

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.