c/numeric/math/pow

@1-3@ Computes the value of raised to the power. @4@ Type-generic macro: If any argument has type, is called. Otherwise, if any argument has integer type or has type, is called. Otherwise, is called. If at least one argument is complex or imaginary, then the macro invokes the corresponding complex function.

Return value
If no errors occur, raised to the power of  ($baseexponent$) is returned.

If a domain error occurs, an implementation-defined value is returned (NaN where supported).

If a pole error or a range error due to overflow occurs, huge_val,, or is returned.

If a range error occurs due to underflow, the correct result (after rounding) is returned.

Error handling
Errors are reported as specified in.

If is finite and negative and  is finite and non-integer, a domain error occurs and a range error may occur.

If is zero and  is zero, a domain error may occur.

If is zero and  is negative, a domain error or a pole error may occur.

If the implementation supports IEEE floating-point arithmetic (IEC 60559),
 * , where is a negative odd integer, returns  and raises fe_divbyzero
 * , where is a negative odd integer, returns  and raises fe_divbyzero
 * , where is negative, finite, and is an even integer or a non-integer, returns +∞ and raises fe_divbyzero
 * returns +∞
 * , where is a positive odd integer, returns +0
 * , where is a positive odd integer, returns -0
 * , where is positive non-integer or a positive even integer, returns +0
 * returns
 * returns for any, even when  is
 * returns for any, even when  is
 * returns and raises fe_invalid if  is finite and negative and  is finite and non-integer.
 * returns +∞ for any
 * returns +0 for any
 * returns +0 for any
 * returns +∞ for any
 * returns -0 if is a negative odd integer
 * returns +0 if is a negative non-integer or negative even integer
 * returns -∞ if is a positive odd integer
 * returns +∞ if is a positive non-integer or positive even integer
 * returns +0 for any negative
 * returns +∞ for any positive
 * except where specified above, if any argument is NaN, NaN is returned