rotm (USM Version)

Performs modified Givens rotation of points in the plane.

Syntax

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

Description

Given two vectors x and y, each vector element of these vectors is replaced as follows:


image0

for i from 1 to n, where H is a modified Givens transformation matrix.

Input Parameters

exec_queue

The queue where the routine should be executed.

n

Number of elements in vector x.

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.

incx

Stride of vector x.

yparam

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.

incy

Stride of vector y.

param

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 ofthe modified Givens transformation matrix H.

Depending on the values of flag, thecomponents of H are set as follows:

flag = -1.0:
image1
flag = 0.0:
image2
flag = 1.0:
image3
flag = -2.0:
image4

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.

dependencies

List of events to wait for before starting computation, if any. If omitted, defaults to no dependencies.

Output Parameters

x

Pointer to the updated array x.

y

Pointer to the updated array y.

Return Values

Output event to wait on to ensure computation is complete.