# Intrinsics for Exponential Operations (512-bit)

The prototypes for Intel® Advanced Vector Extensions 512 (Intel® AVX-512) intrinsics are located in the zmmintrin.h header file.
To use these intrinsics, include the immintrin.h file as follows:

    #include <immintrin.h>

Intrinsic Name | Operation | Corresponding Intel® AVX-512 Instruction
--- | --- | ---
`_mm512_pow_pd`, `_mm512_mask_pow_pd` | Calculates exponential value of float64 vector elements raised to the power of other float64 vector elements. | None.
`_mm512_pow_ps`, `_mm512_mask_mm512_pow_ps` | Calculates exponential value of float32 vector elements raised to the power of other float32 vector elements. | None.
`_mm512_exp10_pd`, `_mm512_mask_mm512_exp10_pd` | Calculates base-10 exponential value of float64 vector elements. | None.
`_mm512_exp10_ps`, `_mm512_mask_mm512_exp10_ps` | Calculates base-10 exponential value of float32 vector elements. | None.
`_mm512_exp2_pd`, `_mm512_mask_mm512_exp2_pd` | Calculates base-2 exponential value of float64 vector elements. | None.
`_mm512_exp2_ps`, `_mm512_mask_mm512_exp2_ps` | Calculates base-2 exponential value of float32 vector elements. | None.
`_mm512_exp_pd`, `_mm512_mask_mm512_exp_pd` | Calculates base-e exponential value of float64 vector elements. | None.
`_mm512_exp_ps`, `_mm512_mask_mm512_exp_ps` | Calculates base-e exponential value of float32 vector elements. | None.
`_mm512_expm1_pd`, `_mm512_mask_mm512_expm1_pd` | Calculates base-e exponential value of float64 vector elements minus one. | None.
`_mm512_expm1_ps`, `_mm512_mask_mm512_expm1_ps` | Calculates base-e exponential value of float32 vector elements minus one. | None.

variable | definition
--- | ---
k | writemask used as a selector
a | first source vector element
b | second source vector element
src | source element to use based on writemask result

_mm512_pow_pd

    extern __m512d __cdecl _mm512_pow_pd(__m512d a, __m512d b);

Calculates the exponential value of each float64 vector a element raised to the power of the corresponding vector b element, and stores the result.

_mm512_mask_pow_pd

    extern __m512d __cdecl _mm512_mask_pow_pd(__m512d src, __mmask8 k, __m512d a, __m512d b);

Calculates the exponential value of each float64 vector a element raised to the power of the corresponding vector b element, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).

_mm512_pow_ps

    extern __m512 __cdecl _mm512_pow_ps(__m512 a, __m512 b);

Calculates the exponential value of each float32 vector a element raised to the power of the corresponding vector b element, and stores the result.

_mm512_mask_pow_ps

    extern __m512 __cdecl _mm512_mask_pow_ps(__m512 src, __mmask16 k, __m512 a, __m512 b);

Calculates the exponential value of each float32 vector a element raised to the power of the corresponding vector b element, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).

_mm512_exp10_pd

    extern __m512d __cdecl _mm512_exp10_pd(__m512d a);

Computes the base-10 exponent of packed float64 elements in a, and stores the result.

_mm512_mask_exp10_pd

    extern __m512d __cdecl _mm512_mask_exp10_pd(__m512d src, __mmask8 k, __m512d a);

Computes the base-10 exponent of packed float64 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).

_mm512_exp10_ps

    extern __m512 __cdecl _mm512_exp10_ps(__m512 a);

Computes the base-10 exponent of packed float32 elements in a, and stores the result.

_mm512_mask_exp10_ps

    extern __m512 __cdecl _mm512_mask_exp10_ps(__m512 src, __mmask16 k, __m512 a);

Computes the base-10 exponent of packed float32 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).

_mm512_exp2_pd

    extern __m512d __cdecl _mm512_exp2_pd(__m512d a);

Computes the base-2 exponent of packed float64 elements in a, and stores the result.

_mm512_mask_exp2_pd

    extern __m512d __cdecl _mm512_mask_exp2_pd(__m512d src, __mmask8 k, __m512d a);

Computes the base-2 exponent of packed float64 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).

_mm512_exp2_ps

    extern __m512 __cdecl _mm512_exp2_ps(__m512 a);

Computes the base-2 exponent of packed float32 elements in a, and stores the result.

_mm512_mask_exp2_ps

    extern __m512 __cdecl _mm512_mask_exp2_ps(__m512 src, __mmask16 k, __m512 a);

Computes the base-2 exponent of packed float32 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).

_mm512_exp_pd

    extern __m512d __cdecl _mm512_exp_pd(__m512d a);

Calculates the exponential value of e (base of natural logarithms) raised to the power of float64 vector a elements.

_mm512_mask_exp_pd

    extern __m512d __cdecl _mm512_mask_exp_pd(__m512d src, __mmask8 k, __m512d a);

Calculates the exponential value of e (base of natural logarithms) raised to the power of float64 vector a elements, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).

_mm512_exp_ps

    extern __m512 __cdecl _mm512_exp_ps(__m512 a);

Calculates the exponential value of e (base of natural logarithms) raised to the power of float32 vector a elements.

_mm512_mask_exp_ps

    extern __m512 __cdecl _mm512_mask_exp_ps(__m512 src, __mmask16 k, __m512 a);

Calculates the exponential value of e (base of natural logarithms) raised to the power of float32 vector a elements, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).

_mm512_expm1_pd

    extern __m512d __cdecl _mm512_expm1_pd(__m512d a);

Calculates exponential value of e (base of natural logarithms), raised to the power of float64 vector a elements minus one.

_mm512_mask_expm1_pd

    extern __m512d __cdecl _mm512_mask_expm1_pd(__m512d src, __mmask8 k, __m512d a);

Calculates exponential value of e (base of natural logarithms), raised to the power of float64 vector a elements minus one, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).

_mm512_expm1_ps

    extern __m512 __cdecl _mm512_expm1_ps(__m512 a);

Calculates exponential value of e (base of natural logarithms), raised to the power of float32 vector a elements minus one.

_mm512_mask_expm1_ps

    extern __m512 __cdecl _mm512_mask_expm1_ps(__m512 src, __mmask16 k, __m512 a);

Calculates exponential value of e (base of natural logarithms), raised to the power of float32 vector a elements minus one, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).

Parent topic: Intrinsics for Short Vector Math Library Operations (SVML)