rocsolver_slarfb Interface Reference#
The LARFB functions apply a block reflector H to a general m -by-n matrix A.
More...
Public Member Functions | |
| integer(kind(rocblas_status_success)) function | rocsolver_slarfb_ (handle, side, trans, mydirect, storev, m, n, k, v, ldv, t, ldt, a, lda) |
| integer(kind(rocblas_status_success)) function | rocsolver_slarfb_rank_0 (handle, side, trans, mydirect, storev, m, n, k, v, ldv, t, ldt, a, lda) |
| integer(kind(rocblas_status_success)) function | rocsolver_slarfb_rank_1 (handle, side, trans, mydirect, storev, m, n, k, v, ldv, t, ldt, a, lda) |
| integer(kind(rocblas_status_success)) function | rocsolver_slarfb_full_rank (handle, side, trans, mydirect, storev, m, n, k, v, ldv, t, ldt, a, lda) |
Detailed Description
The LARFB functions apply a block reflector H to a general m -by-n matrix A.
The block reflector H is applied in one of the following forms, depending on the values of side and trans:
\[ \begin{array}{cl} HA & \: \text{(No transpose from the left),}\\% H^H A & \: \text{(Transpose or conjugate transpose from the left),}\\% AH & \: \text{(No transpose from the right), or}\\% AH^H & \: \text{(Transpose or conjugate transpose from the right).} \end{array} \]
The block reflector H is defined as the product of k Householder matrices as
\[ \begin{array}{cl} H = H(1)H(2)\cdots H(k) & \: \text{if direct indicates forward direction, or} \\% H = H(k)\cdots H(2)H(1) & \: \text{if direct indicates backward direction} \end{array} \]
H is never stored. It is calculated as
\[ H = I - VTV^H \]
where the \(j\)th column of matrix V contains the Householder vector associated with \(H(j)\), if storev is column-wise, or
\[ H = I - V^H T V \]
where the \(i\)th row of matrix V contains the Householder vector associated with \(H(i)\), if storev is row-wise. T is the associated triangular factor as computed by LARFT.
- Parameters
-
[in] handle - rocblas_handle. [in] side - rocblas_side. Specifies from which side to apply H. [in] trans - rocblas_operation. Specifies whether the block reflector or its transpose/conjugate transpose is to be applied. [in] myDirect - rocblas_direct. Specifies the direction in which the Householder matrices are to be applied to generate H.[in] storev - rocblas_storev. Specifies how the Householder vectors are stored in matrix V.[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] k - rocblas_int. k >= 1. The number of Householder matrices. [in] V - pointer to type. Array on the GPU of size ldv*k if column-wise, ldv*n if row-wise and applying from the right, or ldv*m if row-wise and applying from the left. The matrix of Householder vectors. [in] ldv - rocblas_int. ldv >= k if row-wise, ldv >= m if column-wise and applying from the left, or ldv >= n if column-wise and applying from the right. The leading dimension of V. [in] T - pointer to type. Array on the GPU of dimension ldt*k. The triangular factor of the block reflector. [in] ldt - rocblas_int. ldt >= k. The leading dimension of T. [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 \(HA\), \(AH\), \(H^H A\), or \(AH^H\). [in] lda - rocblas_int. lda >= m. The leading dimension of A.
Member Function/Subroutine Documentation
◆ rocsolver_slarfb_()
| integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_slarfb::rocsolver_slarfb_ | ( | type(c_ptr), value | handle, |
| integer(kind(rocblas_side_left)), value | side, | ||
| integer(kind(rocblas_operation_none)), value | trans, | ||
| integer(kind(rocblas_forward_direction)), value | mydirect, | ||
| integer(kind(rocblas_column_wise)), value | storev, | ||
| integer(c_int), value | m, | ||
| integer(c_int), value | n, | ||
| integer(c_int), value | k, | ||
| type(c_ptr), value | v, | ||
| integer(c_int), value | ldv, | ||
| type(c_ptr), value | t, | ||
| integer(c_int), value | ldt, | ||
| type(c_ptr), value | a, | ||
| integer(c_int), value | lda | ||
| ) |
◆ rocsolver_slarfb_full_rank()
| integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_slarfb::rocsolver_slarfb_full_rank | ( | type(c_ptr) | handle, |
| integer(kind(rocblas_side_left)) | side, | ||
| integer(kind(rocblas_operation_none)) | trans, | ||
| integer(kind(rocblas_forward_direction)) | mydirect, | ||
| integer(kind(rocblas_column_wise)) | storev, | ||
| integer(c_int) | m, | ||
| integer(c_int) | n, | ||
| integer(c_int) | k, | ||
| real(c_float), dimension(:,:), target | v, | ||
| integer(c_int) | ldv, | ||
| real(c_float), dimension(:,:), target | t, | ||
| integer(c_int) | ldt, | ||
| real(c_float), dimension(:,:), target | a, | ||
| integer(c_int) | lda | ||
| ) |
◆ rocsolver_slarfb_rank_0()
| integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_slarfb::rocsolver_slarfb_rank_0 | ( | type(c_ptr) | handle, |
| integer(kind(rocblas_side_left)) | side, | ||
| integer(kind(rocblas_operation_none)) | trans, | ||
| integer(kind(rocblas_forward_direction)) | mydirect, | ||
| integer(kind(rocblas_column_wise)) | storev, | ||
| integer(c_int) | m, | ||
| integer(c_int) | n, | ||
| integer(c_int) | k, | ||
| real(c_float), target | v, | ||
| integer(c_int) | ldv, | ||
| real(c_float), target | t, | ||
| integer(c_int) | ldt, | ||
| real(c_float), target | a, | ||
| integer(c_int) | lda | ||
| ) |
◆ rocsolver_slarfb_rank_1()
| integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_slarfb::rocsolver_slarfb_rank_1 | ( | type(c_ptr) | handle, |
| integer(kind(rocblas_side_left)) | side, | ||
| integer(kind(rocblas_operation_none)) | trans, | ||
| integer(kind(rocblas_forward_direction)) | mydirect, | ||
| integer(kind(rocblas_column_wise)) | storev, | ||
| integer(c_int) | m, | ||
| integer(c_int) | n, | ||
| integer(c_int) | k, | ||
| real(c_float), dimension(:), target | v, | ||
| integer(c_int) | ldv, | ||
| real(c_float), dimension(:), target | t, | ||
| integer(c_int) | ldt, | ||
| real(c_float), dimension(:), target | a, | ||
| integer(c_int) | lda | ||
| ) |
The documentation for this interface was generated from the following file: