HISTÓRIA
A biblioteca math.h é uma parte fundamental das linguagens de
programação C e C++, fornecendo um conjunto de funções matemáticas para
realizar operações complexas. Sua história remonta aos estágios iniciais do desenvolvimento
dessas linguagens.
Quando as linguagens C e C++
foram criadas, a necessidade de operações matemáticas complexas surgiu
rapidamente para suportar uma variedade de aplicações. A biblioteca math.h foi desenvolvida como uma extensão padrão para
suprir essa necessidade, fornecendo funções matemáticas como seno, cosseno,
exponenciais, logaritmos, entre outras, que seriam essenciais para uma ampla
gama de aplicações científicas e de engenharia.
A história exata por trás da
criação da biblioteca math.h está intimamente ligada ao desenvolvimento da
linguagem C. Dennis Ritchie, um dos criadores da linguagem C, juntamente com
Brian Kernighan e outros colaboradores, trabalharam
para estabelecer os fundamentos da linguagem e sua biblioteca padrão. A
primeira versão do C não possuía uma biblioteca de funções matemáticas
incorporada.
Com o tempo, a linguagem C
evoluiu e se tornou cada vez mais usada em várias aplicações, incluindo aquelas
que demandavam cálculos matemáticos avançados. Em resposta a essa demanda, a
biblioteca math.h foi padronizada para incluir várias funções
matemáticas, proporcionando aos programadores acesso a operações matemáticas
complexas.
Essa biblioteca, em conjunto
com outras bibliotecas padrão, se tornou parte integrante das linguagens C e
C++, permitindo que desenvolvedores realizem operações matemáticas avançadas
sem a necessidade de implementar essas funções do zero em seus programas.
A
história da criação da biblioteca math.h está profundamente ligada à evolução das linguagens
de programação C e C++, proporcionando aos desenvolvedores ferramentas
essenciais para lidar com cálculos matemáticos complexos em suas aplicações.
CONSTANTES
As constantes em programação são valores que não mudam durante a
execução de um programa. Na biblioteca math.h existe uma variedade delas, para deixar
o código mais legível e evitar valores “mágicos” (valores desconhecidos sem
explicação clara).
Em certos ambientes de desenvolvimento e compiladores é necessário,
além do cabeçalho ’<math.h>’,
o uso do ‘_USE_MATH_DEFINES’ para a exposição dessas constantes.
Abaixo estão as constantes mais utilizadas da biblioteca math.h:
nome |
expressão |
valor |
M_PI |
e |
2.71828182845904523536 |
M_LOG2E |
log2(e) |
1.44269504088896340736 |
M_LOG10E |
log10(e) |
0.434294481903251827651 |
M_LN2 |
ln(2) |
0.693147180559945309417 |
M_LN10 |
ln(10) |
2.30258509299404568402 |
M_PI |
π |
3.14159265358979323846 |
M_PI_2 |
π/2 |
1.57079632679489661923 |
M_PI_4 |
π/4 |
0.785398163397448309616 |
M_1_PI |
1/π |
0.318309886183790671538 |
M_2_PI |
2/π |
0.636619772367581343076 |
M_2_SQRTPI |
2/(√π) |
1.12837916709551257390 |
M_SQRT2 |
√2 |
1.41421356237309504880 |
M_SQRT1_2 |
1/(√2) |
0.707106781186547524401 |
HUGE_VAL |
x>=double |
Número
impossível de representar com tipo double. |
FUNÇÕES
As funções do cabeçalho math.h em C são usadas para realizar operações
matemáticas avançadas em programas. Elas permitem executar cálculos complexos,
incluindo operações trigonométricas, exponenciais, logarítmicas,
arredondamento, raiz quadrada, entre outras.
TRIGONOMÉTRICAS
sin(double x) |
cos(double x) |
tan(double x) |
Calcula o seno de x (em radianos). |
Calcula o cosseno de x (em radianos). |
Calcula a tangente de x (em radianos). |
|
|
|
asin(double x) |
acos(double x) |
atan(double x) |
Calcula o arco seno de x (em radianos). |
Calcula o arco cosseno de x (em radianos). |
Calcula o arco tangente de x (em radianos). |
|
|
|
atan2(double y, double x) |
Calcula o arco tangente de y / x (em radianos),
levando em consideração o sinal de x e y. |
|
HIPERBÓLICAS
sinh(double x) |
cosh(double x) |
tanh(double x) |
Calcula o seno hiperbólico de x (em radianos). |
Calcula o cosseno hiperbólico de x (em radianos). |
Calcula a tangente hiperbólica de x (em
radianos). |
|
|
|
EXPONENCIAIS E LOGARÍTMICAS
exp(double x) |
log(double x) |
log10(double x) |
Calcula o exponencial de x. |
Calcula o logaritmo natural de x. |
Calcula o logaritmo de x na base 10. |
|
|
|
pow(double x,
double y) |
sqrt(double x) |
cbrt(double x) |
Calcula x elevado a potência de y. |
Calcula a raiz quadrada de x. |
Calcula a raiz cúbica de x. |
|
|
|
ARREDONDAMENTO E TRUNCAMENTO
ceil(double x) |
floor(double x) |
round(double x) |
Arredonda x para cima. |
Arredonda x para baixo. |
Arredonda x para o inteiro mais próximo. |
|
|
|
trunc(double x) |
fmod(double x,
double y) |
Retorna a parte inteira de x sem a parte fracionária. |
Retorna o resto da divisão de x por y. |
|
|
modf(double x,
double &y) |
Retorna o componente fracionário de x e define y
como o componente integral de x |
|
OUTRAS FUNÇÕES
fabs(double x) |
fmax(double x,
double y) |
fmin(double x,
double y) |
Retorna o valor absoluto de x. |
Retorna o maior valor entre x e y. |
Retorna o menor valor entre x e y. |
|
|
|
isless(double x,
double y) |
isgreater(double x,
double y) |
Se x for menor que y retorna um inteiro 1, caso
maior 0. |
Se x for maior que y retorna um inteiro 1, caso
menor 0. |
|
|