rotg

Computes the parameters for a Givens rotation.

Description

Given the Cartesian coordinates (a, b) of a point, the rotg routines return the parameters c, s, r, and z associated with the Givens rotation. The parameters c and s define a unitary matrix such that:

\[\begin{split}\begin{bmatrix}c & s \\ -s & c\end{bmatrix}. \begin{bmatrix}a \\ b\end{bmatrix} =\begin{bmatrix}r \\ 0\end{bmatrix}\end{split}\]

The parameter z is defined such that if |a| > |b|, z is s; otherwise if c is not 0 z is 1/c; otherwise z is 1.

rotg supports the following precisions.

T

T_res

float

float

double

double

std::complex<float>

float

std::complex<double>

double

rotg (Buffer Version)

Syntax

namespace oneapi::mkl::blas::column_major {
    void rotg(sycl::queue &queue,
              sycl::buffer<T,1> &a,
              sycl::buffer<T,1> &b,
              sycl::buffer<T_real,1> &c,
              sycl::buffer<T,1> &s)
}
namespace oneapi::mkl::blas::row_major {
    void rotg(sycl::queue &queue,
              sycl::buffer<T,1> &a,
              sycl::buffer<T,1> &b,
              sycl::buffer<T_real,1> &c,
              sycl::buffer<T,1> &s)
}

Input Parameters

queue

The queue where the routine should be executed

a

Buffer holding the x-coordinate of the point.

b

Buffer holding the y-coordinate of the point.

Output Parameters

a

Buffer holding the parameter r associated with the Givens rotation.

b

Buffer holding the parameter z associated with the Givens rotation.

c

Buffer holding the parameter c associated with the Givens rotation.

s

Buffer holding the parameter s associated with the Givens rotation.

Throws

This routine shall throw the following exceptions if the associated condition is detected. An implementation may throw additional implementation-specific exception(s) in case of error conditions not covered here.

oneapi::mkl::invalid_argument

oneapi::mkl::unsupported_device

oneapi::mkl::host_bad_alloc

oneapi::mkl::device_bad_alloc

oneapi::mkl::unimplemented

rotg (USM Version)

Syntax

namespace oneapi::mkl::blas::column_major {
    sycl::event rotg(sycl::queue &queue,
                     T *a,
                     T *b,
                     T_real *c,
                     T *s,
                     const std::vector<sycl::event> &dependencies = {})
}
namespace oneapi::mkl::blas::row_major {
    sycl::event rotg(sycl::queue &queue,
                     T *a,
                     T *b,
                     T_real *c,
                     T *s,
                     const std::vector<sycl::event> &dependencies = {})
}

Input Parameters

queue

The queue where the routine should be executed

a

Pointer to the x-coordinate of the point.

b

Pointer to the y-coordinate of the point.

dependencies

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

Output Parameters

a

Pointer to the parameter r associated with the Givens rotation.

b

Pointer to the parameter z associated with the Givens rotation.

c

Pointer to the parameter c associated with the Givens rotation.

s

Pointer to the parameter s associated with the Givens rotation.

Return Values

Output event to wait on to ensure computation is complete.

Throws

This routine shall throw the following exceptions if the associated condition is detected. An implementation may throw additional implementation-specific exception(s) in case of error conditions not covered here.

oneapi::mkl::invalid_argument

oneapi::mkl::unsupported_device

oneapi::mkl::host_bad_alloc

oneapi::mkl::device_bad_alloc

oneapi::mkl::unimplemented

Parent topic: BLAS Level 1 Routines