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: