rocsolver_slasr Interface Reference

rocsolver_slasr Interface Reference#

HIPFORT API Reference: hipfort_rocsolver::rocsolver_slasr Interface Reference
hipfort_rocsolver::rocsolver_slasr Interface Reference

The LASR functions apply a sequence of Givens plane rotations, represented as a transformation P, to a general m-by-n matrix A. More...

Public Member Functions

integer(kind(rocblas_status_success)) function rocsolver_slasr_ (handle, side, pivot, mydirect, m, n, c, s, a, lda)
 

Detailed Description

The LASR functions apply a sequence of Givens plane rotations, represented as a transformation P, to a general m-by-n matrix A.

The transformation P is applied in one of the following forms, depending on the value of side:

\[ \begin{array}{cl} PA & \: \text{(No transpose from the left),}\\% AP^T & \: \text{(Transpose from the right).} \end{array} \]

P is defined as the product of k plane rotations, with k = m - 1 when applied from the left, and k = n - 1 when applied from the right, as follows:

\[ \begin{array}{cl} P = P(1)P(2)\cdots P(k) & \: \text{if direct indicates backward direction, or} \\% P = P(k)\cdots P(2)P(1) & \: \text{if direct indicates forward direction} \end{array} \]

Each P(i) is defined by a Givens rotation

\[ R(i) = \left[\begin{array}{cc} c_i & s_i \\% -s_i & c_i \end{array}\right], \]

where the \(c_i\) and \(s_i\) are the corresponding cosine and sine factors.

The rotations are performed on different planes depending on the value of pivot. If pivot is variable, the rotation R(i) is performed on plane (i,i+1), that is, P(i) appears as a rank-2 modification to the identity matrix in the i-th and (i+1)-th rows and columns. If pivot is top, then the modification appears in the first and (i+1)-th rows and columns of P(i), and if pivot is bottom, then the modification appears in the i-th and last rows and columns of P(i).

All rotations are applied directly without ever forming P(i) explicitly.

Parameters
[in]handle- rocblas_handle.
[in]side- rocblas_side. Specifies from which side to apply P.
[in]pivot- rocblas_pivot. Specifies the planes on which the rotations are applied.
[in]myDirect- rocblas_direct. Specifies the direction in which the plane rotations are to be applied to generate P.
[in]m- rocblas_int. m >= 0. Number of rows of matrix A.
[in]n- rocblas_int. n >= 0. Number of columns of matrix A.
[in]C- pointer to real type. Array on the GPU of size n-1 if side is right, or m-1 if side is left. Contains the series of cosine factors defining the Givens rotations.
[in]S- pointer to real type. Array on the GPU of size n-1 if side is right, or m-1 if side is left. Contains the series of sine factors defining the Givens rotations.
[in,out]A- pointer to type. Array on the GPU of size lda*n. On entry, the matrix A. On exit, it is overwritten with \(PA\), or \(AP^T\).
[in]lda- rocblas_int. lda >= m. The leading dimension of A.

Member Function/Subroutine Documentation

◆ rocsolver_slasr_()

integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_slasr::rocsolver_slasr_ ( type(c_ptr), value  handle,
integer(kind(rocblas_side_left)), value  side,
integer(kind(rocblas_pivot_variable)), value  pivot,
integer(kind(rocblas_forward_direction)), value  mydirect,
integer(c_int), value  m,
integer(c_int), value  n,
type(c_ptr), value  c,
type(c_ptr), value  s,
type(c_ptr), value  a,
integer(c_int), value  lda 
)

The documentation for this interface was generated from the following file: