rocsolver_slarfg Interface Reference

rocsolver_slarfg Interface Reference#

HIPFORT API Reference: hipfort_rocsolver::rocsolver_slarfg Interface Reference
hipfort_rocsolver::rocsolver_slarfg Interface Reference

The LARFG functions generate 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

The LARFG functions generate a Householder reflector H of order n.

The reflector H is such that:

\[ H^H\left[\begin{array}{c} \text{alpha}\\% x \end{array}\right]=\left[\begin{array}{c} \text{beta}\\% 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\\% v \end{array}\right]\left[\begin{array}{cc} 1 & v^H \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\\% v \end{array}\right] \]

is the Householder vector associated with the reflection.

Note
The matrix H is orthogonal/unitary (that is, \(H^H H=H H^H=I\)). It is symmetric when real (that is, \(H^T=H\)), but not Hermitian when complex (that is, \(H^H≠ 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: