rocsolver_slarfg Interface Reference

rocsolver_slarfg Interface Reference#

HIPFORT API Reference: hipfort_rocsolver::rocsolver_slarfg Interface Reference
hipfort_rocsolver::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]handlerocblas_handle.
[in]nrocblas_int. n >= 0.
The order (size) of reflector H.
[in,out]alphapointer to type. A scalar on the GPU.
On entry, the scalar alpha. On exit, it is overwritten with beta.
[in,out]xpointer 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]incxrocblas_int. incx > 0.
The distance between two consecutive elements of x.
[out]taupointer 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: