#include <math.h> // <cmath> en C++
double exp2m1( double x ); // C2x
float exp2m1f( float x ); // C2x
long double exp2m1l( long double x ); // C2x
Ces trois fonctions permettent de calculer 2x-1.
La différence entre ces trois fonctions réside dans le type de données utilisé pour le paramètre et la valeur de retour (double, float ou long double).
Ces fonctions renvoient 2x-1, si la magnitude de x est raisonnable (en fonction du type considéré).
Si la magnitude de x est trop grande (en fonction du type considéré) une valeur HUGE_VAL
sera produite
et la variable errno
sera initialisée à la valeur ERANGE
.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include <math.h> #include <stdio.h> #include <stdlib.h> int main() { printf( "exp2m1(0) == %g\n", exp2m1(0) ); printf( "exp2m1(1) == %g\n", exp2m1(1) ); printf( "exp2m1(8) == %g\n", exp2m1(8) ); printf( "exp2m1(10) == %g\n", exp2m1(10) ); return EXIT_SUCCESS; } |
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 -std=c2x $> ./sample exp2m1(0) == 0 exp2m1(1) == 1 exp2m1(8) == 255 exp2m1(10) == 1023 $>
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 :