powd32(), powd64(), powd128() — Raise to power

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  powd32(_Decimal32 x, _Decimal32 y); 
_Decimal64  powd64(_Decimal64 x, _Decimal64 y);
_Decimal128 powd128(_Decimal128 x, _Decimal128 y);

_Decimal32  pow(_Decimal32 x, _Decimal32 y);   /* C++ only */
_Decimal64  pow(_Decimal64 x, _Decimal64 y);   /* C++ only */
_Decimal128 pow(_Decimal128 x, _Decimal128 y); /* C++ only */

General description

The powd32(), powd64(), and powd128() functions calculate the value of x to the power of y.
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 successful, the powd32(), powd64(), and powd128() functions return the value of x to the power of y.

If x is negative or 0, then the y parameter must be an integer. If y is 0, the function returns 1.0 for all x parameters.

If an overflow occurs, the function returns HUGE_VAL_D32, HUGE_VAL_D64, or HUGE_VAL_D128 and sets errno to ERANGE.

If x is negative and y is not an integer, the function returns NaNQ and sets errno to EDOM.

If x is 0 and y is negative, the function returns HUGE_VAL_D32, HUGE_VAL_D64, or HUGE_VAL_D128 but does not modify errno.

Example

⁄* CELEBP59

   This example illustrates the powd64() function

*⁄

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

int main(void)
{
   _Decimal64 x, y, z;

   x = 2.0DD;
   y = 3.0DD;
   z = powd64(x, y);

   printf("%Df to the power of %Df is %Df\n", x, y, z);
}

Related information