Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Fonctions logp1, logp1f, logp1llog1p, log1pf et log1pl

Entête à inclure

#include <math.h>  // <cmath> en C++

Fonctions logp1, logp1f, logp1llog1p, log1pf et log1pl

double log1p( double x );                     // C99
double logp1( double x );                     // C2x
float log1pf( float x );                      // C99
float logp1f( float x );                      // C2x
long double log1pl( long double x );          // C99
long double logp1l( long double x );          // C2x

Ces six fonctions permettent de calculer le logarithme naturel (ou népérien) de 1 plus la valeur passée en paramètre : logp1(x) équivaut à log(1+x).

en mathématiques, le logarithme de base b d'un nombre réel strictement positif est la puissance à laquelle il faut élever la base b pour obtenir ce nombre. Ainsi log(e) == 1.

Les trois fonctions commençant par log1p existent depuis C99. Pour plus de cohérence avec des nouvelles fonctions introduitent par la version C2x du standard, on vous propose des alias commençant par logp1 : elles sont équivalentes aux fonctions d'origines. Pour chaque triplet, la différence entre ces fonctions réside dans le type de données utilisé pour le paramètre et la valeur de retour (double, float ou long double).

Paramètre

Valeur de retour

Exemple de code

L'exemple de code suivant permet de calculer le nombre de chiffres utilisés pour exprimer un entier positif.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
#include <errno.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>

int main() {

    double lg = log1p( M_E - 1 );
    printf( "log1p(e-1) == %g\n", lg );

    return EXIT_SUCCESS;
}
Exemple d'utilisation des fonctions log.

Il est à noter que la librairie mathématique doit être ajoutée durant l'étape de "link" (édition des liens) de votre exécutable. Cela se réalise en ajoutant l'option -lm à votre compilateur GCC. En cas d'utilisation d'un autre compilateur, je vous renvoie vers la documentation de ce dernier.

$> gcc -o sample sample.c -lm
$> ./sample
log1p(e-1) == 1
$>

Sujets connexes

La macro M_E

Les fonctions exp, expf et expl
Les fonctions exp2, exp2f et exp2l
Les fonctions exp10, exp10f et exp10l
Les fonctions expm1, expm1f et expm1l

Les fonctions log, logf et logl
Les fonctions log2, log2f et log2l
Les fonctions log10, log10f et log10l
Les fonctions log10p1, log10p1f et log10p1l