# Intrinsics for Trigonometric 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_acos_pd`, `_mm512_mask_acos_pd` | Calculates inverse cosine value for float64 vector elements. | None.
`_mm512_acos_ps`, `_mm512_mask_acos_ps` | Calculates inverse cosine value for float32 vector elements. | None.
`_mm512_acosh_pd`, `_mm512_mask_acosh_pd` | Calculates inverse hyperbolic cosine value for float64 vector elements. | None.
`_mm512_acosh_ps`, `_mm512_mask_acosh_ps` | Calculates inverse hyperbolic cosine value for float32 vector elements. | None.
`_mm512_asin_pd`, `_mm512_mask_asin_pd` | Calculates inverse sine value for float64 vector elements. | None.
`_mm512_asin_ps`, `_mm512_mask_asin_ps` | Calculates inverse sine value for float32 vector elements. | None.
`_mm512_asinh_pd`, `_mm512_mask_asinh_pd` | Calculates inverse hyperbolic sine value for float64 vector elements. | None.
`_mm512_asinh_ps`, `_mm512_mask_asinh_ps` | Calculates inverse hyperbolic sine value for float32 vector elements. | None.
`_mm512_atan_pd`, `_mm512_mask_atan_pd` | Calculates inverse tangent value for float64 vector elements. | None.
`_mm512_atan_ps`, `_mm512_mask_atan_ps` | Calculates inverse tangent value for float32 vector elements. | None.
`_mm512_atan2_pd`, `_mm512_mask_atan2_pd` | Calculates inverse tangent value for float64 elements from multiple vectors. | None.
`_mm512_atan2_ps`, `_mm512_mask_atan2_ps` | Calculates inverse tangent value for float32 elements from multiple vectors. | None.
`_mm512_atanh_pd`, `_mm512_mask_atanh_pd` | Calculates inverse hyperbolic tangent value for float64 vector elements. | None.
`_mm512_atanh_ps`, `_mm512_mask_atanh_ps` | Calculates inverse hyperbolic tangent value for float32 vector elements. | None.
`_mm512_cos_pd`, `_mm512_mask_cos_pd` | Calculates cosine value for float64 vector elements. | None.
`_mm512_cos_ps`, `_mm512_mask_cos_ps` | Calculates cosine value for float32 vector elements. | None.
`_mm512_cosd_pd`, `_mm512_mask_cosd_pd` | Calculates cosine value (in degrees) for float64 vector elements. | None.
`_mm512_cosd_ps`, `_mm512_mask_cosd_ps` | Calculates cosine value (in degrees) for float32 vector elements. | None.
`_mm512_cosh_pd`, `_mm512_mask_cosh_pd` | Calculates hyperbolic cosine value for float64 vector elements. | None.
`_mm512_cosh_ps`, `_mm512_mask_cosh_ps` | Calculates hyperbolic cosine value for float32 vector elements. | None.
`_mm512_sin_pd`, `_mm512_mask_sin_pd` | Calculates sine value for float64 vector elements. | None.
`_mm512_sin_ps`, `_mm512_mask_sin_ps` | Calculates sine value for float32 vector elements. | None.
`_mm512_sincos_pd`, `_mm512_mask_sincos_pd` | Calculates the sine and cosine values for float64 vector elements. | None.
`_mm512_sincos_ps`, `_mm512_mask_sincos_ps` | Calculates the sine and cosine values for float32 vector elements. | None.
`_mm512_sind_pd`, `_mm512_mask_sind_pd` | Calculates sine value (in degrees) for float64 vector elements. | None.
`_mm512_sind_ps`, `_mm512_mask_sind_ps` | Calculates sine value (in degrees) for float32 vector elements. | None.
`_mm512_sinh_pd`, `_mm512_mask_sinh_pd` | Calculates hyperbolic sine value for float64 vector elements. | None.
`_mm512_sinh_ps`, `_mm512_mask_sinh_ps` | Calculates hyperbolic sine value for float32 vector elements. | None.
`_mm512_tan_pd`, `_mm512_mask_tan_pd` | Calculates tangent value for float64 vector elements. | None.
`_mm512_tan_ps`, `_mm512_mask_tan_ps` | Calculates tangent value for float32 vector elements. | None.
`_mm512_tand_pd`, `_mm512_mask_tand_pd` | Calculates tangent (in degrees) value for float64 vector elements. | None.
`_mm512_tand_ps`, `_mm512_mask_tand_ps` | Calculates tangent (in degrees) value for float32 vector elements. | None.
`_mm512_tanh_pd`, `_mm512_mask_tanh_pd` | Calculates hyperbolic tangent value for float64 vector elements. | None.
`_mm512_tanh_ps`, `_mm512_mask_tanh_ps` | Calculates hyperbolic tangent value for float32 vector elements. | 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_acos_pd

    extern __m512d __cdecl _mm512_acos_pd(__m512d a);

Computes the inverse cosine of packed float64 elements in a, and stores the result.

_mm512_mask_acos_pd

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

Computes the inverse cosine 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_acos_ps

    extern __m512 __cdecl _mm512_acos_ps(__m512 a);

Computes the inverse cosine of packed float32 elements in a, and stores the result.

_mm512_mask_acos_ps

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

Computes the inverse cosine 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_acosh_pd

    extern __m512d __cdecl _mm512_acosh_pd(__m512d a);

Computes the inverse hyperbolic cosine of packed float64 elements in a, and stores the result.

_mm512_mask_acosh_pd

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

Computes the inverse hyperbolic cosine 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_acosh_ps

    extern __m512 __cdecl _mm512_acosh_ps(__m512 a);

Computes the inverse hyperbolic cosine of packed float32 elements in a, and stores the result.

_mm512_mask_acosh_ps

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

Computes the inverse hyperbolic cosine 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_asin_pd

    extern __m512d __cdecl _mm512_asin_pd(__m512d a);

Computes the inverse sine of packed float64 elements in a, and stores the result.

_mm512_mask_asin_pd

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

Computes the inverse sine 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_asin_ps

    extern __m512 __cdecl _mm512_asin_ps(__m512 a);

Computes the inverse sine of packed float32 elements in a, and stores the result.

_mm512_mask_asin_ps

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

Computes the inverse sine 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_asinh_pd

    extern __m512d __cdecl _mm512_asinh_pd(__m512d a);

Computes the inverse hyperbolic sine of packed float64 elements in a, and stores the result.

_mm512_mask_asinh_pd

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

Computes the inverse hyperbolic sine 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_asinh_ps

    extern __m512 __cdecl _mm512_asinh_ps(__m512 a);

Computes the inverse hyperbolic sine of packed float32 elements in a, and stores the result.

_mm512_mask_asinh_ps

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

Computes the inverse hyperbolic sine 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_atan2_pd

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

Computes the inverse tangent of packed float64 elements in a and b, and stores the result.

_mm512_mask_atan2_pd

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

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

_mm512_atan2_ps

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

Computes the inverse tangent of packed float32 elements in a and b, and stores the result.

_mm512_mask_atan2_ps

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

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

_mm512_atan_pd

    extern __m512d __cdecl _mm512_atan_pd(__m512d a);

Computes the inverse tangent of packed float64 elements in a, and stores the result.

_mm512_mask_atan_pd

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

Computes the inverse tangent 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_atan_ps

    extern __m512 __cdecl _mm512_atan_ps(__m512 a);

Computes the inverse tangent of packed float32 elements in a, and stores the result.

_mm512_mask_atan_ps

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

Computes the inverse tangent 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_atanh_pd

    extern __m512d __cdecl _mm512_atanh_pd(__m512d a);

Computes the inverse hyperbolic tangent of packed float64 elements in a, and stores the result.

_mm512_mask_atanh_pd

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

Computes the inverse hyperbolic tangent 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_atanh_ps

    extern __m512 __cdecl _mm512_atanh_ps(__m512 a);

Computes the inverse hyperbolic tangent of packed float32 elements in a, and stores the result.

_mm512_mask_atanh_ps

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

Computes the inverse hyperbolic tangent 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_cos_pd

    extern __m512d __cdecl _mm512_cos_pd(__m512d a);

Computes the cosine of packed float64 elements in a, and stores the result.

_mm512_mask_cos_pd

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

Computes the cosine 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_cos_ps

    extern __m512 __cdecl _mm512_cos_ps(__m512 a);

Computes the cosine of packed float32 elements in a, and stores the result.

_mm512_mask_cos_ps

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

Computes the cosine 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_cosd_pd

    extern __m512d __cdecl _mm512_cosd_pd(__m512d a);

Computes the cosine (in degrees) of packed float64 elements in a, and stores the result.

_mm512_mask_cosd_pd

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

Computes the cosine (in degrees) 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_cosd_ps

    extern __m512 __cdecl _mm512_cosd_ps(__m512 a);

Computes the cosine (in degrees) of packed float32 elements in a, and stores the result.

_mm512_mask_cosd_ps

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

Computes the cosine (in degrees) 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_cosh_pd

    extern __m512d __cdecl _mm512_cosh_pd(__m512d a);

Computes the hyperbolic cosine of packed float64 elements in a, and stores the result.

_mm512_mask_cosh_pd

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

Computes the hyperbolic cosine 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_cosh_ps

    extern __m512 __cdecl _mm512_cosh_ps(__m512 a);

Computes the hyperbolic cosine of packed float32 elements in a, and stores the result.

_mm512_mask_cosh_ps

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

Computes the hyperbolic cosine (in degrees) 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_sin_pd

    extern __m512d __cdecl _mm512_sin_pd(__m512d a);

Computes the sine of packed float64 elements in a, and stores the result.

_mm512_mask_sin_pd

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

Computes the sine 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_sin_ps

    extern __m512 __cdecl _mm512_sin_ps(__m512 a);

Computes the sine of packed float32 elements in a, and stores the result.

_mm512_mask_sin_ps

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

Computes the sine (in degrees) 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_sincos_pd

    extern __m512d __cdecl _mm512_sincos_pd(__m512d a);

Computes the sine and cosine of packed float64 elements in a, and stores the result.

_mm512_mask_sincos_pd

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

Computes the sine and cosine 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_sincos_ps

    extern __m512 __cdecl _mm512_sincos_ps(__m512 a);

Computes the sine and cosine of packed float32 elements in a, and stores the result.

_mm512_mask_sincos_ps

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

Computes the sineand cosine 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_sind_pd

    extern __m512d __cdecl _mm512_sind_pd(__m512d a);

Computes the sine (in degrees) of packed float64 elements in a, and stores the result.

_mm512_mask_sind_pd

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

Computes the sine (in degrees) 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_sind_ps

    extern __m512 __cdecl _mm512_sind_ps(__m512 a);

Computes the sine (in degrees) of packed float32 elements in a, and stores the result.

_mm512_mask_sind_ps

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

Computes the sine (in degrees) 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_sinh_pd

    extern __m512d __cdecl _mm512_sinh_pd(__m512d a);

Computes the hyperbolic sine of packed float64 elements in a, and stores the result.

_mm512_mask_sinh_pd

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

Computes the hyperbolic sine 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_sinh_ps

    extern __m512 __cdecl _mm512_sinh_ps(__m512 a);

Computes the hyperbolic sine of packed float32 elements in a, and stores the result.

_mm512_mask_sinh_ps

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

Computes the hyperbolic cosine 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_tan_pd

    extern __m512d __cdecl _mm512_tan_pd(__m512d a);

Computes the tangent of packed float64 elements in a, and stores the result.

_mm512_mask_tan_pd

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

Computes the tangent 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_tan_ps

    extern __m512 __cdecl _mm512_tan_ps(__m512 a);

Computes the tangent of packed float32 elements in a, and stores the result.

_mm512_mask_tan_ps

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

Computes the tangent 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_tand_pd

    extern __m512d __cdecl _mm512_tand_pd(__m512d a);

Computes the tangent (in degrees) of packed float64 elements in a, and stores the result.

_mm512_mask_tand_pd

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

Computes tangent (in degrees) 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_tand_ps

    extern __m512 __cdecl _mm512_tand_ps(__m512 a);

Computes the tangent (in degrees) of packed float32 elements in a, and stores the result.

_mm512_mask_tand_ps

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

Computes the tangent (in degrees) 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_tanh_pd

    extern __m512d __cdecl _mm512_tanh_pd(__m512d a);

Computes the hyperbolic tangent of packed float64 elements in a, and stores the result.

_mm512_mask_tanh_pd

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

Computes the hyperbolic tangent 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_tanh_ps

    extern __m512 __cdecl _mm512_tanh_ps(__m512 a);

Computes the hyperbolic tangent of packed float32 elements in a, and stores the result.

_mm512_mask_tanh_ps

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

Computes the hyperbolic tangent 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).

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