# Programar em C/Operações matemáticas (Avançado)

O cabeçalho <math.h> contém protótipos de algumas funções na área de matemática. Na versão de 1990 do padrão ISO, somente a versão double das funções foram específicadas; na versão de 1999 foram adicionadas as versões float e long double.
As funções podem ser agrupadas nas seguintes categorias:
* Funções Trigonométricas
* Funções Hiperbólicas
* Funções Exponencial e Logaritmo
* Funções pow e sqrt
* Funções de Arredondamento para Números Inteiros, Valores Absolutos e Resto da Divisão

## Funções Trigonométricas
### As funções acos e asin

A função acos retorna o arco-cosseno dos seus argumentos em radianos, e a função asin retorna o arco-seno dos seus argumentos em radianos. Todas as funções esperam por argumentos que estejam no intervalo [-1,+1]. O arco-cosseno retorna valores no intervalo [0,π]; o arco-seno retorna valores no intervalo [-π/2,+π/2].

### As funções atan e atan2

As funções atan retornam o arco-tangente dos arguments em radianos, e a função atan2 retorna o arco-tangente de y/x em radianos. As funções atan retornam o valor no intervalo [-π/2,+π/2] (a razão pelo que ±π/2 está incluido no intervalo é porque os valores decimais pode representar o infinito, e atan(±∞) = ±π/2); as funções atan2 retornam o valor no intervalo [-π,+π]. Para a função atan2, um "domain error" pode ocorrer se os dois argumentos forem zero.

### As funções cos, sin e tan

As funções cos, sin, e tan retornam o coseno, seno, e tangente do argumento, expresso em radianos.

## Funções Hiperbólicas

As funções cosh, sinh and tanh computam o coseno hiperbólico, o seno hiperbólico e a tangente hiperbólica respectivamente. Para as funções de seno e coseno hiperbólico, um erro de ...

## Funções Exponencial e Logaritmo
### A função exp

As funções exp computam a função exponencial de x (e$^x$). Um "range error" ocorre se o valor de x é muito grande.

### As funções frexp, ldexp e modf

As funções frexp dividem um número real numa fração normalizada e um número inteiro múltiplo de 2. As funções guardam o número inteiro no objeto apontado por ex.
As funções frexp retornam o valor x de forma que x tem o valor [1/2, 1) ou zero, e value é igual a x vezes 2 elevado a *ex. Se value for zero, as duas partes do resultado seram zero.
As funções ldexp multiplicam um número real por um número inteiro múltiplo de 2 e retornam o resultado. Um "range error" pode ocorrer.
As funções modf divide o argumento value entre um parte inteira e uma fração, cada uma tem o mesmo sinal do argumento. As funções guardam o parte inteira no objeto apontado por *iptr e retornam o fração.

### As funções log e log10

As funções log computam o logaritmo natural do argumento e retornam o resultado. Um "domain error" ocorre se o argumento for negativo. Um "range error" pode ocorrer se o argumento for zero.
As funçõs log10 computam o logaritmo comum (base-10) do argumento e retornam o resultado. Um "domain error" ocorre se o argumento for negativo. Um "range error" ocorre se o argumento for zero.

## Funções pow e sqrt
### As funções pow

As funções pow computam x elevado a y e retornam o resultado. Um "domain error" ocorre se x for negativo e y não for um número inteiro. Um "domain error" ocorre se o resultado não puder ser representado quando x é zero e y é menor ou igual a zero. Um "range error" pode ocorrer.

### As funções sqrt

As funções sqrt computam a raiz positiva de x e retornam o resultado. Um "domain error" ocorre se o argumento for negativo.

## Funções de Arredondamento para Números Inteiros, Valores Absolutos e Resto da Divisão
### As funções ceil e floor

As funções ceil computam o menor número inteiro que não seja menor que x e retornam o resultado; as funções floor computam o maior número inteiro que não seja maior que x e retornam o resultado.

### As funções fabs

As funções fabs computam o valor absoluto do número real x e retornam o resultado.

### As funções fmod

As funções fmod computam o resto de x/y e retornam o valor x - i * y, pra algum número inteiro i onde, se y for um número diferente de zero, o resultado tem o mesmo sinal de x e magnitude menor que a magnitude de y. Se y for zero, dependendo da implementação da função, ocorrerá um "domain error" ou a função fmod retornará zero.

## Ligações externas

Biblioteca de referência C++ (C++ Reference Library) - cmath (math.h)