logd32(), logd64(), logd128() — Calculate natural logarithm

Standards

Standards / Extensions C or C++ Dependencies
C/C++ DFP both z/OS® V1.8

Format

#define __STDC_WANT_DEC_FP__
#include <math.h>

_Decimal32  logd32(_Decimal32 x); 
_Decimal64  logd64(_Decimal64 x);
_Decimal128 logd128(_Decimal128 x);

_Decimal32  log(_Decimal32 x);    /* C++ only */
_Decimal64  log(_Decimal64 x);    /* C++ only */
_Decimal128 log(_Decimal128 x);   /* C++ only */

General description

Calculates the natural logarithm (base e) of x, for x greater than 0.
Notes:
  1. To use IEEE decimal floating-point, the hardware must have the Decimal Floating-Point Facility installed.
  2. These functions work in IEEE decimal floating-point format. See "IEEE Decimal Floating-Point" for more information.

Returned value

If x greater than 0, the function returns the natural logarithm (base e) of x.

If x is negative, the function sets errno to EDOM and returns NaNQ.

If x is 0.0, the function returns -HUGE_VAL_D32, -HUGE_VAL_D64, or -HUGE_VAL_D128 and errno remains unchanged.

Example

⁄* CELEBL22

  This example illustrates the logd64() function.

*⁄

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

int main(void)
{
   _Decimal64 x = 1000.0DD, y;

   y = logd64(x);

   printf("The natural logarithm of %Df is %Df\n", x, y);
}

Related information