Intel® C++ Compiler 16.0 User and Reference Guide

_mm512_atan2_pd/ _mm512_mask_atan2_pd

Calculates the arc tangent of float64 variables x and y. Vector variant of atan2(x, y) function for float64 arguments. This intrinsic only applies to Intel® Many Integrated Core Architecture (Intel® MIC Architecture).

Syntax

Without Mask

extern _m512d __cdecl _mm512_atan2_pd(_m512d v2, _m512d v3);

With Mask

extern _m512d __cdecl _mm512_mask_atan2_pd(_m512d v1_old, __mmask8 k1, _m512d v2, _m512d v3);

Parameters

v2

vector with float64 values

v3

vector with float64 values

v1_old

Source vector that retains old values of the destination vector; the resulting vector gets corresponding elements from v1_old for zero mask bits

k1

Writemask; only those elements of the source vectors with corresponding bit set to '1' in the k1 mask are computed and stored in the result; elements in the result vector corresponding to zero bit in k1 are copied from corresponding elements of vector v1_old

Description

Calculates the arc tangent (in radians) of corresponding float64 elements of vectors v2 and v3. The following is an illustration of the atan2 operation:

Res[0]   = atan2(v1[0], v2[0])
Res[1]   = atan2(v1[1], v2[1])
Res[2]   = atan2(v1[2], v2[2])
...
Res[15] = atan2(v1[15], v2[15])

Note

This calculation is similar to calculating the arc tangent of y / x, except that the signs of both arguments are used to determine the quadrant of the result.

The masked variant has two additional arguments: v1_old and k1. Those elements of v2 and v3 with the corresponding bit clear in vector mask k1 are not used in the computation. Instead, the corresponding element from v1_old is copied to the resulting vector.

Returns

Returns the result of the operation.