rocsolver_slarfg Interface Reference#
LARFG generates a Householder reflector H of order n. More...
Public Member Functions | |
integer(kind(rocblas_status_success)) function | rocsolver_slarfg_ (handle, n, alpha, x, incx, tau) |
integer(kind(rocblas_status_success)) function | rocsolver_slarfg_rank_0 (handle, n, alpha, x, incx, tau) |
integer(kind(rocblas_status_success)) function | rocsolver_slarfg_rank_1 (handle, n, alpha, x, incx, tau) |
Detailed Description
LARFG generates a Householder reflector H of order n.
The reflector H is such that
\[ H'\left[\begin{array}{c} \text{alpha}\newline x \end{array}\right]=\left[\begin{array}{c} \text{beta}\newline 0 \end{array}\right] \]
where x is an n-1 vector, and alpha and beta are scalars. Matrix H can be generated as
\[ H = I - \text{tau}\left[\begin{array}{c} 1\newline v \end{array}\right]\left[\begin{array}{cc} 1 & v' \end{array}\right] \]
where v is an n-1 vector, and tau is a scalar known as the Householder scalar. The vector
\[ \bar{v}=\left[\begin{array}{c} 1\newline v \end{array}\right] \]
is the Householder vector associated with the reflection.
- Note
- The matrix H is orthogonal/unitary (i.e. \(H'H=HH'=I\)). It is symmetric when real (i.e. \(H^T=H\)), but not Hermitian when complex (i.e. \(H^H\neq H\) in general).
- Parameters
-
[in] handle rocblas_handle. [in] n rocblas_int. n >= 0.
The order (size) of reflector H.[in,out] alpha pointer to type. A scalar on the GPU.
On entry, the scalar alpha. On exit, it is overwritten with beta.[in,out] x pointer to type. Array on the GPU of size at least n-1 (size depends on the value of incx).
On entry, the vector x, On exit, it is overwritten with vector v.[in] incx rocblas_int. incx > 0.
The distance between two consecutive elements of x.[out] tau pointer to type. A scalar on the GPU.
The Householder scalar tau.
Member Function/Subroutine Documentation
◆ rocsolver_slarfg_()
integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_slarfg::rocsolver_slarfg_ | ( | type(c_ptr), value | handle, |
integer(c_int), value | n, | ||
real(c_float) | alpha, | ||
type(c_ptr), value | x, | ||
integer(c_int), value | incx, | ||
real(c_float) | tau | ||
) |
◆ rocsolver_slarfg_rank_0()
integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_slarfg::rocsolver_slarfg_rank_0 | ( | type(c_ptr) | handle, |
integer(c_int) | n, | ||
real(c_float) | alpha, | ||
real(c_float), target | x, | ||
integer(c_int) | incx, | ||
real(c_float) | tau | ||
) |
◆ rocsolver_slarfg_rank_1()
integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_slarfg::rocsolver_slarfg_rank_1 | ( | type(c_ptr) | handle, |
integer(c_int) | n, | ||
real(c_float) | alpha, | ||
real(c_float), dimension(:), target | x, | ||
integer(c_int) | incx, | ||
real(c_float) | tau | ||
) |
The documentation for this interface was generated from the following file: