log() : logarithme naturel ou népérien
log10() : logarithme décimal
exp() : fonction exponentielle
M_E : approximation de e (base des logaritmes népériens)
Prototype:
- double log( double x);
- double log10( double x);
- double exp( double a);
dans: <math.h>
Code objet:
dans libm.a (généralement dans le répertoire /usr/lib)
à l'édition de liens sur UNIX, précisez l'option -lm pour faire référence à la bibliothhèque /usr/lib/libm.a
exemples:
- xlc source.c -lm # système AIX.
- cc source.c -lm
Description:
Calcul de e**x pour la fonction exp(x).
Calcul du logarithme décimal pour log(x), et du logarithme décimal pour log10(x).
Remarque: log10(x) = log(x) / log(10).
Les fonctions log() et log10() ne sont défnies que si x est strictement positif.
Un appel à la fonction exp() peut fournir un résultat plus grand que le plus grand réel représentable sur un double.
M_E est l'approximation de la base des logarithmes népériens; cette constante, définie dans <math.h>, vaut approximativement 2.7182818284590452
Valeur renvoyée:
- en cas de succès l'approximation calculée est renvoyée
- pour log() ou log10():
- si x < 0, log() ou log10() renvoient NaN et positionnent la variable errno à EDOM
- si x == 0, log() ou log10() renvoient -HUGE_VAL, mais ne modifient pas errno.
- pour exp():
en cas de dépassement de capacité, la valeur renvoyée est HUGE_VAL, et la variable errno est positionnée à ERANGE.
Voir aussi:
Portabilité:
Exemple:
#include
#include
#include
void main(void) {
double a;
printf("M_E: %lf\n", M_E);
printf("log(10) : %lf\n", log(10));
printf("log10(10) : %lf\n", log10(10));
printf("log10(10)-1: %lf\n", log10(10)-1);
/*
Le plus grand réel dont on peut évaluer l'exponentielle,
sans débordement est approximativement égal à 700.
*/
a=log(MAXDOUBLE);
printf("a=log(MAXDOUBLE) : %lf\n", a);
printf("exp(a) : %lf\n", exp(a));
/* Pour
}