Computes the four-quadrant inverse tangent of the ratios of the
corresponding elements of two vectors divided by π
.
Syntax
Buffer API:
namespace oneapi::mkl::vm {
sycl::event atan2pi(
sycl::queue& exec_queue,
std::int64_t n,
sycl::buffer<T,1>& a,
sycl::buffer<T,1>& b,
sycl::buffer<T,1>& y,
oneapi::mkl::vm::mode mode = oneapi::mkl::vm::mode::not_defined);
} // namespace oneapi::mkl::vm
USM API:
namespace oneapi::mkl::vm {
sycl::event atan2pi(
sycl::queue& exec_queue,
std::int64_t n,
const T *a,
const T *b,
T* y,
std::vector<sycl::event> const & depends = {},
oneapi::mkl::vm::mode mode = oneapi::mkl::vm::mode::not_defined);
} // namespace oneapi::mkl::vm
atan2pi
supports the following precisions.
T |
---|
float |
double |
Description
The atan2pi(a, b) function computes the four-quadrant inverse tangent
of the ratios of the corresponding elements of two vectors divided by
π
.
For the elements of the output vector y
, the function computers
the four-quadrant arctangent of a
i/b
i, with
the result divided by π
.
Argument 1 | Argument 2 | Result | Status code |
---|---|---|---|
-∞ | -∞ | -3/4 | |
-∞ | b < +0 |
-1/2 | |
-∞ | -0 | +1/2 | |
-∞ | +0 | -1/2 | |
-∞ | x > +0 |
-1/2 | |
-∞ | +∞ | -1/4 | |
a < +0 |
-∞ | -1 | |
a < +0 |
-0 | -1/2 | |
a < +0 |
+0 | -1/2 | |
a < +0 |
+∞ | -0 | |
-0 | -∞ | -1 | |
-0 | b < +0 |
-1 | |
-0 | -0 | -1 | |
-0 | +0 | -0 | |
-0 | b > +0 |
-0 | |
-0 | +∞ | -0 | |
+0 | -∞ | +1 | |
+0 | b < +0 |
+1 | |
+0 | -0 | +1 | |
+0 | +0 | +0 | |
+0 | b > +0 |
+0 | |
+0 | +∞ | +0 | |
a > +0 |
-∞ | +1 | |
a > +0 |
-0 | +1/2 | |
x > +0 |
+0 | +1/2 | |
a > +0 |
+∞ | +1/4 | |
+∞ | -∞ | +3/4 | |
+∞ | b < +0 |
+1/2 | |
+∞ | -0 | +1/2 | |
+∞ | +0 | +1/2 | |
+∞ | b > +0 |
+1/2 | |
+∞ | +∞ | +1/4 | |
a > +0 |
QNAN | QNAN | |
a > +0 |
SNAN | QNAN | |
QNAN | b > +0 |
QNAN | |
SNAN | x > +0 |
QNAN | |
QNAN | QNAN | QNAN | |
QNAN | SNAN | QNAN | |
SNAN | QNAN | QNAN | |
SNAN | SNAN | QNAN |
The atan2pi(a, b) function does not generate any errors.
Input Parameters
Buffer API:
- exec_queue
- The queue where the routine should be executed.
- n
- Specifies the number of elements to be calculated.
- a
- The buffer
a
containing 1st input vector of sizen
. - b
- The buffer
b
containing 2nd input vector of sizen
. - mode
- Overrides the global VM mode setting for this function call. See
:ref:`onemkl_vm_setmode`
function for possible values and their description. This is an
optional parameter. The default value is
oneapi::mkl::vm::mode::not_defined
.
USM API:
- exec_queue
- The queue where the routine should be executed.
- n
- Specifies the number of elements to be calculated.
- a
- Pointer
a
to the 1st input vector of sizen
. - b
- Pointer
b
to the 2nd input vector of sizen
. - depends
- Vector of dependent events (to wait for input data to be ready).
- mode
- Overrides the global VM mode setting for this function call. See
the :ref:`onemkl_vm_setmode`
function for possible values and their description. This is an
optional parameter. The default value is
oneapi::mkl::vm::mode::not_defined
.
Output Parameters
Buffer API:
- y
- The buffer
y
containing the output vector of sizen
.
USM API:
- y
- Pointer
y
to the output vector of sizen
. - return value (event)
- Event, signifying availability of computed output and status code(s).
Exceptions
For list of generated exceptions please refer to :ref:`onemkl_vm_exceptions`
Parent topic: :ref:`onemkl_vm_mathematical_functions`