log
, logf
, logl
, log10
, , log10f
, log10l
Calcula logaritmos.
Sintaxis
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
Parámetros
x
Valor cuyo logaritmo hay que calcular.
Valor devuelto
Si se realiza correctamente, las funciones log
devuelven el logaritmo natural (base e
) de x
. Las funciones log10
devuelven el logaritmo en base 10. Si x
es negativo, estas funciones devuelven un valor indefinido (IND
) de manera predeterminada. Si x
es 0, devuelven infinito (INF
).
Entrada | Excepción SEH | Excepción de _matherr |
---|---|---|
± QNaN, IND | None | _DOMAIN |
± 0 | ZERODIVIDE |
_SING |
x < 0 |
INVALID |
_DOMAIN |
log
y log10
tienen una implementación que usa las Extensiones SIMD de streaming 2 (SSE2). Consulte _set_SSE2_enable
para obtener información y conocer las restricciones sobre el uso de la implementación de SSE2.
Comentarios
Puesto que C++ permite las sobrecargas, es posible llamar a las sobrecargas de log
y log10
que toman y devuelven los valores float
o long double
. En un programa de C, a menos que use la macro <tgmath.h>
para llamar a esta función, log
y log10
siempre toman y devuelven un valor double
.
Si usa la macro <tgmath.h> log()
, el tipo del argumento determina qué versión de la función se selecciona. Consulte Matemáticas de tipo genérico para obtener más información.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Requisitos
Routine | Encabezado necesario |
---|---|
log , logf , logl , log10 , , log10f , log10l |
<math.h> |
log Macro |
<tgmath.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
// 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
Para generar los logaritmos para otras bases, use la siguiente relación matemática: logaritmo base b de a == logaritmo natural (a) / logaritmo natural (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
Consulte también
Compatibilidad con cálculos matemáticos y el punto flotante
exp
, , expf
, expl
_matherr
pow
, , powf
, powl
_CIlog
_CIlog10
\