C library functions -log()

C standard library - <math.h>

Description

C Library Functionsdouble log(double x)returnxThe natural logarithm (logarithm to the base e).

log()is the C standard library<math.h>A function that calculates the natural logarithm (base e) of a floating-point number. It is a commonly used mathematical function, widely applied in fields such as scientific computing, finance, and engineering.

Declaration

The following is the declaration of the log() function.

#include <math.h>

double log(double x);
float logf(float x);
long double logl(long double x);

Parameter

  • x: the input floating-point number, which must be positive (greater than 0).

Return Value

  • returnxthe natural logarithm of, ifxIf it is negative or zero, it will cause a math domain error or range error.

Error Handling

  • ifxis negative,log()the function will return NaN and seterrnoisEDOM。
  • ifxis zero,log()the function will return-HUGE_VAL(negative infinity), and seterrnoisERANGE。

Example

The following example demonstrates the use of the log() function.

Example

#include <stdio.h>
#include <math.h>

int main ()
{
   double x, ret;
   x = 2.7;

   /* Calculate log(2.7) */
   ret = log(x);
   printf("log(%lf) = %lf", x, ret);
   
   return(0);
}

Let us compile and run the above program, which will produce the following result:

log(2.700000) = 0.993252

Handling logarithms of multiple values

The following example demonstrates how to handle the logarithm of multiple values:

Example

#include <stdio.h>
#include <math.h>
#include <errno.h>

int main() {
    double values[] = {1.0, 2.718281828, 10.0, -1.0, 0.0};
    int num_values = sizeof(values) / sizeof(values[0]);

    for (int i = 0; i < num_values; i++) {
        double x = values[i];
        errno = 0;  // Reset errno
        double result = log(x);

        if (errno == EDOM) {
            printf("Domain error: log(%f) is not defined\n", x);
        } else if (errno == ERANGE) {
            printf("Range error: log(%f) results in an overflow or underflow\n", x);
        } else {
            printf("log(%f) = %f\n", x, result);
        }
    }

    return 0;
}

Code explanation

  • Define an array containing multiple floating-point numbersvalues。
  • UsageforLoop through each value and calllog(x)perform the calculation.
  • reseterrnoto 0 and check for possible errors.
  • Print the logarithm calculation result for each value, or an error message.

Let us compile and run the above program, which will produce the following result:

log(1.000000) = 0.000000
log(2.718282) = 1.000000
log(10.000000) = 2.302585
log(-1.000000) = nan
log(0.000000) = -inf

Use Case

log()The function has a wide range of applications in many fields, including but not limited to:

  • Calculate exponential growth or decay.
  • Handle log probabilities in probability and statistics.
  • Solve mathematical problems involving logarithmic equations.
  • Calculate logarithmic returns in finance.

Summary

log()The function is used to calculate the natural logarithm of floating-point numbers and is an important tool for handling logarithmic operations. By properly usinglog(), logarithmic operations can be implemented in scientific computing, finance, and engineering applications, and possible error conditions can be properly handled.

C standard library - <math.h>

other extensions