# Math.h

math.h é um arquivo cabeçalho que fornece protótipos para funções, macros e definição de tipos da biblioteca padrão da linguagem de programação C para funções matemáticas básicas. São disponibilizadas, por exemplo, funções trigonométricas como o cosseno cos que opera com ângulos medidos em radianos, função para cálculo de raiz quadrada sqrtf desde que o resultado seja um número real, logaritmo com base 2 log2, entre outras.

## Funções pré-C99

É importante lembrar que as funções que envolvem ângulos devem receber valores em radianos e não em graus.
| Nome | Descrição |
| acos | arco-coseno |
| asin | arco-seno |
| atan | arco-tangente |
| atan2 | arco-tangente (círculo cheio) |
| ceil | Arredonda para cima |
| cos | co-seno |
| cosh | co-seno hiperbólico |
| exp | exponencial |
| fabs | valor absoluto (módulo de) |
| floor | Arredonda para baixo |
| fmod | resto de uma divisão |
| frexp | fracção norm./parte exp |
| ldexp | inverso de frexp |
| log | logaritmo natural |
| log10 | logaritmo base 10 |
| modf(x,p) | retorna a parte fraccionária de x e guarda a parte inteira para onde o apontador p aponta |
| pow(x,y) | retorna o resultado de x elevado a y |
| sin | seno |
| sinh | seno hiperbólico |
| sqrt | raiz quadrada |
| tan | tangente |
| tanh | tangente hiperbólica |

## Funções C99

| Nome | Descrição |
| acosh | arco-coseno hiperbólico |
| asinh | arco-seno hiperbólico |
| atanh | arco-tangente hiperbólica |
| cbrt | raiz cúbica |
| copysign(x,y) | retorna o valor de x com o sinal de y |
| erf | função erro |
| erfc | função erro complementar |
| exp2(x) | calcula 2 elevado à x, 2$^x$ |
| expm1(x) | subtrai da exponenciação x, e$^x$ − 1 |
| fdim(x,y) | diferença positiva entre x e y, fmax(x−y, 0) |
| fma(x,y,z) | multiplica e soma, (x * y) + z |
| fmax(x,y) | maior valor de x e y |
| fmin(x,y) | menor valor de x e y |
| hypot(x,y) | hipotenusa, sqrt(x$^2$ + y$^2$) |
| ilogb | o expoente de uma dízima, convertido num int |
| lgamma | logaritmo natural do valor absoluto da função gamma |
| llrint | arredonda para inteiro (retorna long long) usando o modo de arredondamento currente |
| lrint | arredonda para inteiro (retorna long) usando o modo de arredondamento currente |
| llround | arredonda para inteiro (retorna long long) |
| lround | arredonda para inteiro (retorna long) |
| log1p(x) | logaritmo natural de 1 + x |
| log2 | logaritmo binário |
| logb | extrai o expoente da dízima infinita não periódica |
| nan(s) | retorna NaN, possivelmente usando um argumento "string" |
| nearbyint | arredonda uma dízima para o inteiro mais próximo |
| nextafter(x,y) | retorna o próximo valor representável depois de x (towards y) |
| nexttoward(x,y) | o mesmo que nextafter, excepto que y é sempre um long double |
| remainder(x,y) | calcula o resto como exigido pelo IEC 60559 |
| remquo(x,y,p) | o mesmo que remainder, mas guarda o quociente (como int) no alvo do apontador p |
| rint | arredonda para inteiro (retorna double) usando o modo de arredondamento currente |
| round | arredonda para inteiro (retorna double), arredonda casa mais distante de zero |
| scalbln(x,n) | x * FLT_RADIX$^n$ (n é long) |
| scalbn(x,n) | x * FLT_RADIX$^n$ (n é int) |
| tgamma | função gamma |
| trunc | trunca uma dízima |

## Extensões XSI

Funções extra devem ser avaliadas como X/Open System Interfaces Extensions. Isto não está presente em nenhum padrão C ANSI ou ISO.
| Nome | Descrição |
| j0(x) | Bessel function of x of the first kind of order 0 |
| j1(x) | Bessel function of x of the first kind of order 1 |
| jn(n,x) | Bessel function of x of the first kind of order n |
| scalb(x,y) | x * FLT_RADIX$^y$ (x and y are doubles) |
| y0(x) | Bessel function of x of the second kind of order 0 |
| y1(x) | Bessel function of x of the second kind of order 1 |
| yn(n,x) | Bessel function of x of the second kind of order n |
As funções conversoras double-para-string ecvt, fcvt e gcvt têm sido preteridas em favor de sprintf.