Performs modified Givens rotation of points in the plane.
event rotm(queue &exec_queue, std::int64_t n, T *x, std::int64_t incx, T *y, std::int64_t incy, T *param, const vector_class<event> &dependencies = {});
The USM version of rotm supports the following precisions and devices.
T | Devices Supported |
---|---|
float | Host, CPU, and GPU |
double | Host, CPU, and GPU |
Given two vectors x and y, each vector element of these vectors is replaced as follows:
for i from 1 to n, where H is a modified Givens transformation matrix.
The queue where the routine should be executed.
Number of elements in vector x.
Pointer to the input vector x. The array holding the vector x must be of size at least (1 + (n - 1)*abs(incx)). See Matrix and Vector Storage for more details.
Stride of vector x.
Pointer to the input vector y. The array holding the vector y must be of size at least (1 + (n - 1)*abs(incy)). See Matrix and Vector Storage for more details.
Stride of vector y.
Pointer to an array of size 5. The elements of the param array are:
param[0] contains a switch, flag,
param[1-4] contain h11, h21, h12, h22 respectively, the components of the modified Givens transformation matrix H.
Depending on the values of flag, the components of H are set as follows:
flag = -1.0:
flag = 0.0:
flag = 1.0:
flag = -2.0:
In the last three cases, the matrix entries of 1.0, -1.0, 0.0 are assumed based on the value of flag and are not required to be set in the param vector.
List of events to wait for before starting computation, if any. If omitted, defaults to no dependencies.
Pointer to the updated array x.
Pointer to the updated array y.
Output event to wait on to ensure computation is complete.