Computes the parameters for a modified Givens rotation.
void rotmg(queue &exec_queue, buffer<T,1> &d1, buffer<T,1> &d2, buffer<T,1> &x1, buffer<T,1> &y1, buffer<T,1> ¶m);
rotmg supports the following precisions and devices.
T | Devices Supported |
---|---|
float | Host, CPU, and GPU |
double | Host, CPU, and GPU |
Given Cartesian coordinates (x1, y1) of an input vector, the rotmg routines compute the components of a modified Givens transformation matrix H that zeros the y-component of the resulting vector:
The queue where the routine should be executed.
Buffer holding the scaling factor for the x-coordinate of the input vector.
Buffer holding the scaling factor for the y-coordinate of the input vector.
Buffer holding the x-coordinate of the input vector.
Scalar specifying the y-coordinate of the input vector.
Buffer holding the first diagonal element of the updated matrix.
Buffer holding the second diagonal element of the updated matrix.
Buffer holding the x-coordinate of the rotated vector before scaling
Buffer holding an array of size 5.
The elements of the param array are:
param[0] contains a switch, flag. the other array elements param[1-4] contain the components of the array H: h11, h21, h12, and h22, respectively.
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, and 0.0 are assumed based on the value of flag and are not required to be set in the param vector.