Performs modified Givens rotation of points in the plane.
void rotm(queue &exec_queue, std::int64_t n, buffer<T,1> &x, std::int64_t incx, buffer<T,1> &y, std::int64_t incy, buffer<T,1> ¶m);
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.
Buffer holding input vector x. The buffer must be of size at least (1 + (n - 1)*abs(incx)). See Matrix and Vector Storage for more details.
Stride of vector x.
Buffer holding input vector x. The buffer must be of size at least (1 + (n - 1)*abs(incy)). See Matrix and Vector Storage for more details.
Stride of vector y.
Buffer holding 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.
Buffer holding updated buffer x.
Buffer holding updated buffer y.