log
, , logf
, log10
logl
, , log10f
log10l
Calcule le logarithme.
Syntaxe
double log(double x);
float logf(float x);
long double logl(double x);
double log10(double x);
float log10f (float x);
long double log10l(double x);
#define log(X) // Requires C11 or higher
#define log10(X) // Requires C11 or higher
float log(float x); // C++ only
long double log(long double x); // C++ only
float log10(float x); // C++ only
long double log10(long double x); // C++ only
Paramètres
x
Valeur dont le logarithme doit être recherché.
Valeur retournée
Les log
fonctions retournent le logarithme naturel (base e
) du x
cas échéant. Les log10
fonctions retournent le logarithme de base 10. Si x
elle est négative, ces fonctions retournent une valeur indéfinie (IND
) par défaut. Si x
c’est 0, ils retournent l’infini (INF
).
Input | Exception SEH | Exception _matherr |
---|---|---|
± QNaN, IND | Aucune | _DOMAIN |
± 0 | ZERODIVIDE |
_SING |
x < 0 |
INVALID |
_DOMAIN |
log
et log10
ont une implémentation qui utilise streaming SIMD Extensions 2 (SSE2). Pour _set_SSE2_enable
plus d’informations et de restrictions sur l’utilisation de l’implémentation SSE2.
Notes
C++ permet de surcharger, de sorte que vous pouvez appeler des surcharges et log
log10
qui prennent et retournent float
ou long double
valeurs. Dans un programme C, sauf si vous utilisez la <tgmath.h>
macro pour appeler cette fonction, log
et log10
toujours prendre et retourner un double
.
Si vous utilisez la <tgmath.h> log()
macro, le type de l’argument détermine la version de la fonction sélectionnée. Pour plus d’informations, consultez les mathématiques génériques de type.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Spécifications
Routine | En-tête requis |
---|---|
log , , logf , log10 logl , , log10f log10l |
<math.h> |
Macro log |
<tgmath.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// crt_log.c
/* This program uses log and log10
* to calculate the natural logarithm and
* the base-10 logarithm of 9,000.
*/
#include <math.h>
#include <stdio.h>
int main( void )
{
double x = 9000.0;
double y;
y = log( x );
printf( "log( %.2f ) = %f\n", x, y );
y = log10( x );
printf( "log10( %.2f ) = %f\n", x, y );
}
log( 9000.00 ) = 9.104980
log10( 9000.00 ) = 3.954243
Pour générer le logarithme pour d’autres bases, utilisez la relation mathématique : log base b de a == logarithme népérien (a) / logarithme népérien (b).
// logbase.cpp
#include <math.h>
#include <stdio.h>
double logbase(double a, double base)
{
return log(a) / log(base);
}
int main()
{
double x = 65536;
double result;
result = logbase(x, 2);
printf("Log base 2 of %lf is %lf\n", x, result);
}
Log base 2 of 65536.000000 is 16.000000
Voir aussi
Prise en charge des fonctions mathématiques et à virgule flottante
exp
, , expf
expl
_matherr
pow
, , powf
powl
_CIlog
_CIlog10
\