Developer Reference

Contents

rotmg

Computes the parameters for a modified Givens rotation.

Description

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:
LaTex Math image.
rotmg
supports the following precisions:
T
float
double

rotmg (Buffer Version)

Syntax
namespace oneapi::mkl::blas::column_major { void rotmg(sycl::queue &queue, sycl::buffer<T,1> &d1, sycl::buffer<T,1> &d2, sycl::buffer<T,1> &x1, sycl::buffer<T,1> &y1, sycl::buffer<T,1> &param) }
namespace oneapi::mkl::blas::row_major { void rotmg(sycl::queue &queue, sycl::buffer<T,1> &d1, sycl::buffer<T,1> &d2, sycl::buffer<T,1> &x1, sycl::buffer<T,1> &y1, sycl::buffer<T,1> &param) }
Input Parameters
queue
The queue where the routine should be executed.
d1
Buffer holding the scaling factor for
x
-coordinate of the input vector.
d2
Buffer holding the scaling factor for
y
-coordinate of the input vector.
x1
Buffer holding
x
-coordinate of the input vector.
y1
Scalar specifying
y
-coordinate of the input vector.
Output Parameters
d1
Buffer holding the first diagonal element of the updated matrix.
d2
Buffer holding the second diagonal element of the updated matrix.
x1
Buffer holding
x
-coordinate of the rotated vector before scaling
param
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
: h
11
, h
21
, h
12
, and h
22
, respectively.
Depending on the values of
flag
, the components of
H
are set as follows:
flag = -1.0
:
LaTex Math image.
flag = 0.0
:
LaTex Math image.
flag = 1.0
:
LaTex Math image.
flag = -2.0
:
LaTex Math image.
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.

rotmg (USM Version)

Syntax
namespace oneapi::mkl::blas::column_major { sycl::event rotmg(sycl::queue &queue, T *d1, T *d2, T *x1, T *y1, T *param, const std::vector<sycl::event> &dependencies = {}) }
namespace oneapi::mkl::blas::row_major { sycl::event rotmg(sycl::queue &queue, T *d1, T *d2, T *x1, T *y1, T *param, const std::vector<sycl::event> &dependencies = {}) }
Input Parameters
queue
The queue where the routine should be executed.
d1
Pointer to the scaling factor for
x
-coordinate of the input vector.
d2
Pointer to the scaling factor for
y
-coordinate of the input vector.
x1
Pointer to
x
-coordinate of the input vector.
y1
Scalar specifying
y
-coordinate of the input vector.
dependencies
List of events to wait for before starting computation, if any. If omitted, defaults to no dependencies.
Output Parameters
d1
Pointer to the first diagonal element of the updated matrix.
d2
Pointer to the second diagonal element of the updated matrix.
x1
Pointer to
x
-coordinate of the rotated vector before scaling
param
Pointer to 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
: h
11
, h
21
, h
12
, and h
22
, respectively.
Depending on the values of
flag
, the components of
H
are set as follows:
flag = -1.0
:
LaTex Math image.
flag = 0.0
:
LaTex Math image.
flag = 1.0
:
LaTex Math image.
flag = -2.0
:
LaTex Math image.
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.
Return Values
Output event to wait on to ensure computation is complete.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.