Developer Reference for Intel® oneAPI Math Kernel Library for C
v?Powr
Computes a to the power b for elements of two vectors, where the elements of vector argument a are all non-negative.
Syntax
vhPowr (n, a, b, y);
vhPowrI(n, a, inca, b, incb, y, incy);
vmhPowr (n, a, b, y, mode);
vmhPowrI(n, a, inca, b, incb, y, incy, mode);
vsPowr (n, a, b, y);
vsPowrI(n, a, inca, b, incb, y, incy);
vmsPowr (n, a, b, y, mode);
vmsPowrI(n, a, inca, b, incb, y, incy, mode);
vdPowr (n, a, b, y);
vdPowrI(n, a, inca, b, incb, y, incy);
vmdPowr (n, a, b, y, mode);
vmdPowrI(n, a, inca, b, incb, y, incy, mode);
Include Files
- mkl.h
Input Parameters
Name |
Type |
Description |
|---|---|---|
n |
const MKL_INT |
Specifies the number of elements to be calculated. |
a, b |
const _Float16* for vhPowr const float* for vsPowr const _Float16* for vmhPowr const float* for vmsPowr const double* for vdPowr const double* for vmdPowr |
Pointers to arrays containing the input vectors a and b. |
inca, incb, incy |
const MKL_INT |
Specifies increments for the elements of a, b, and y. |
mode |
const MKL_INT64 |
Overrides the global VM mode setting for this function call. See vmlSetMode for possible values and their description. |
Output Parameters
Name |
Type |
Description |
|---|---|---|
y |
_Float16* for vhPowr float* for vsPowr _Float16* for vmhPowr float* for vmsPowr double* for vdPowr double* for vmdPowr |
Pointer to an array containing the output vector y. |
Description
The v?Powr function raises each element of vector a by the corresponding element of vector b. The elements of a are all nonnegative (ai≥ 0).
| Data Type | Threshold Limitations on Input Parameters |
|---|---|
| single precision | ai < (FLT_MAX)1/bi |
| double precision | ai < (DBL_MAX)1/bi |
Special values and VM Error Status treatment for v?Powr function are the same as for v?Pow, unless otherwise indicated in this table:
| Argument 1 | Argument 2 | Result | VM Error Status | Exception |
|---|---|---|---|---|
| x < 0 | any value y | NAN | VML_STATUS_ERRDOM | INVALID |
| 0 < x < ∞ | ±0 | 1 | ||
| ±0 | -∞ < y < 0 | +∞ | ||
| ±0 | -∞ | +∞ | ||
| ±0 | y > 0 | +0 | ||
| 1 | -∞ < y < ∞ | 1 | ||
| ±0 | ±0 | NAN | ||
| +∞ | ±0 | NAN | ||
| 1 | +∞ | NAN | ||
| x≥ 0 | NAN | NAN | ||
| NAN | any value y | NAN | ||
| 0 < x <1 | -∞ | +∞ | ||
| x > 1 | -∞ | +0 | ||
| 0 ≤x < 1 | +∞ | +0 | ||
| x > 1 | +∞ | +∞ | ||
| +∞ | x < +0 | +0 | ||
| +∞ | x > +0 | +∞ | ||
| QNAN | QNAN | QNAN | VML_STATUS_ERRDOM | |
| QNAN | SNAN | QNAN | VML_STATUS_ERRDOM | INVALID |
| SNAN | QNAN | QNAN | VML_STATUS_ERRDOM | INVALID |
| SNAN | SNAN | QNAN | VML_STATUS_ERRDOM | INVALID |