# rocsolver_slarft Interface Reference#

HIPFORT API Reference: hipfort_rocsolver::rocsolver_slarft Interface Reference
hipfort_rocsolver::rocsolver_slarft Interface Reference

LARFT generates the triangular factor T of a block reflector H of order n. More...

## Public Member Functions

integer(kind(rocblas_status_success)) function rocsolver_slarft_ (handle, myDirect, storev, n, k, V, ldv, tau, T, ldt)

integer(kind(rocblas_status_success)) function rocsolver_slarft_full_rank (handle, myDirect, storev, n, k, V, ldv, tau, T, ldt)

integer(kind(rocblas_status_success)) function rocsolver_slarft_rank_0 (handle, myDirect, storev, n, k, V, ldv, tau, T, ldt)

integer(kind(rocblas_status_success)) function rocsolver_slarft_rank_1 (handle, myDirect, storev, n, k, V, ldv, tau, T, ldt)

## Detailed Description

LARFT generates the triangular factor T of a block reflector H of order n.

The block reflector H is defined as the product of k Householder matrices

$\begin{array}{cl} H = H_1H_2\cdots H_k & \: \text{if direct indicates forward direction, or} \newline H = H_k\cdots H_2H_1 & \: \text{if direct indicates backward direction} \end{array}$

The triangular factor T is upper triangular in the forward direction and lower triangular in the backward direction. If storev is column-wise, then

$H = I - VTV'$

where the i-th column of matrix V contains the Householder vector associated with $$H_i$$. If storev is row-wise, then

$H = I - V'TV$

where the i-th row of matrix V contains the Householder vector associated with $$H_i$$.

Parameters
 [in] handle rocblas_handle. [in] direct rocblas_direct. Specifies the direction in which the Householder matrices are applied. [in] storev rocblas_storev. Specifies how the Householder vectors are stored in matrix V. [in] n rocblas_int. n >= 0. The order (size) of the block reflector. [in] k rocblas_int. k >= 1. The number of Householder matrices forming H. [in] V pointer to type. Array on the GPU of size ldv*k if column-wise, or ldv*n if row-wise. The matrix of Householder vectors. [in] ldv rocblas_int. ldv >= n if column-wise, or ldv >= k if row-wise. Leading dimension of V. [in] tau pointer to type. Array of k scalars on the GPU. The vector of all the Householder scalars. [out] T pointer to type. Array on the GPU of dimension ldt*k. The triangular factor. T is upper triangular if direct indicates forward direction, otherwise it is lower triangular. The rest of the array is not used. [in] ldt rocblas_int. ldt >= k. The leading dimension of T.

## ◆ rocsolver_slarft_()

 integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_slarft::rocsolver_slarft_ ( type(c_ptr), value handle, integer(kind(rocblas_forward_direction)), value myDirect, integer(kind(rocblas_column_wise)), value storev, integer(c_int), value n, integer(c_int), value k, type(c_ptr), value V, integer(c_int), value ldv, real(c_float) tau, type(c_ptr), value T, integer(c_int), value ldt )

## ◆ rocsolver_slarft_full_rank()

 integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_slarft::rocsolver_slarft_full_rank ( type(c_ptr) handle, integer(kind(rocblas_forward_direction)) myDirect, integer(kind(rocblas_column_wise)) storev, integer(c_int) n, integer(c_int) k, real(c_float), dimension(:,:), target V, integer(c_int) ldv, real(c_float) tau, real(c_float), dimension(:,:), target T, integer(c_int) ldt )

## ◆ rocsolver_slarft_rank_0()

 integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_slarft::rocsolver_slarft_rank_0 ( type(c_ptr) handle, integer(kind(rocblas_forward_direction)) myDirect, integer(kind(rocblas_column_wise)) storev, integer(c_int) n, integer(c_int) k, real(c_float), target V, integer(c_int) ldv, real(c_float) tau, real(c_float), target T, integer(c_int) ldt )

## ◆ rocsolver_slarft_rank_1()

 integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_slarft::rocsolver_slarft_rank_1 ( type(c_ptr) handle, integer(kind(rocblas_forward_direction)) myDirect, integer(kind(rocblas_column_wise)) storev, integer(c_int) n, integer(c_int) k, real(c_float), dimension(:), target V, integer(c_int) ldv, real(c_float) tau, real(c_float), dimension(:), target T, integer(c_int) ldt )

The documentation for this interface was generated from the following file: