rocsolver_chetrd Interface Reference

rocsolver_chetrd Interface Reference#

HIPFORT API Reference: hipfort_rocsolver::rocsolver_chetrd Interface Reference
hipfort_rocsolver::rocsolver_chetrd Interface Reference

The HETRD functions compute the tridiagonal form of a complex Hermitian matrix A. More...

Public Member Functions

integer(kind(rocblas_status_success)) function rocsolver_chetrd_ (handle, uplo, n, a, lda, d, e, tau)
 
integer(kind(rocblas_status_success)) function rocsolver_chetrd_rank_0 (handle, uplo, n, a, lda, d, e, tau)
 
integer(kind(rocblas_status_success)) function rocsolver_chetrd_rank_1 (handle, uplo, n, a, lda, d, e, tau)
 
integer(kind(rocblas_status_success)) function rocsolver_chetrd_full_rank (handle, uplo, n, a, lda, d, e, tau)
 

Detailed Description

The HETRD functions compute the tridiagonal form of a complex Hermitian matrix A.

(This is the blocked version of the algorithm.)

The tridiagonal form is given by:

\[ T = Q^H A Q \]

where T is Hermitian tridiagonal and Q is an unitary matrix represented as the product of Householder matrices

\[ \begin{array}{cl} Q = H(1)H(2)\cdots H(n-1) & \: \text{if uplo indicates lower, or}\\% Q = H(n-1)H(n-2)\cdots H(1) & \: \text{if uplo indicates upper.} \end{array} \]

Each Householder matrix \(H(i)\) is given by

\[ H(i) = I - \text{tau}[i] \cdot v_i^{} v_i^H \]

where tau[i] is the corresponding Householder scalar. When uplo indicates lower, the first i elements of the Householder vector \(v_i\) are zero, and \(v_i[i+1] = 1\). If uplo indicates upper, the last n-i elements of the Householder vector \(v_i\) are zero, and \(v_i[i] = 1\).

Parameters
[in]handle- rocblas_handle.
[in]uplo- rocblas_fill. Specifies whether the upper or lower part of the Hermitian matrix A is stored. If uplo indicates lower (or upper), then the upper (or lower) part of A is not used.
[in]n- rocblas_int. n >= 0. The number of rows and columns of the matrix A.
[in,out]A- pointer to type. Array on the GPU of dimension lda*n. On entry, the matrix to be factored. On exit, if upper, then the elements on the diagonal and superdiagonal contain the tridiagonal form T, and the elements above the superdiagonal contain the first i-1 elements of the Householder vectors v_i stored as columns. If lower, then the elements on the diagonal and subdiagonal contain the tridiagonal form T, and the elements below the subdiagonal contain the last n-i-1 elements of the Householder vectors v_i stored as columns.
[in]lda- rocblas_int. lda >= n. The leading dimension of A.
[out]D- pointer to real type. Array on the GPU of dimension n. The diagonal elements of T.
[out]E- pointer to real type. Array on the GPU of dimension n-1. The off-diagonal elements of T.
[out]tau- pointer to type. Array on the GPU of dimension n-1. The Householder scalars.

Member Function/Subroutine Documentation

◆ rocsolver_chetrd_()

integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_chetrd::rocsolver_chetrd_ ( type(c_ptr), value  handle,
integer(kind(rocblas_fill_upper)), value  uplo,
integer(c_int), value  n,
type(c_ptr), value  a,
integer(c_int), value  lda,
type(c_ptr), value  d,
type(c_ptr), value  e,
type(c_ptr), value  tau 
)

◆ rocsolver_chetrd_full_rank()

integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_chetrd::rocsolver_chetrd_full_rank ( type(c_ptr)  handle,
integer(kind(rocblas_fill_upper))  uplo,
integer(c_int)  n,
complex(c_float_complex), dimension(:,:), target  a,
integer(c_int)  lda,
real(c_float), dimension(:), target  d,
real(c_float), dimension(:), target  e,
complex(c_float_complex), dimension(:), target  tau 
)

◆ rocsolver_chetrd_rank_0()

integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_chetrd::rocsolver_chetrd_rank_0 ( type(c_ptr)  handle,
integer(kind(rocblas_fill_upper))  uplo,
integer(c_int)  n,
complex(c_float_complex), target  a,
integer(c_int)  lda,
real(c_float), target  d,
real(c_float), target  e,
complex(c_float_complex), target  tau 
)

◆ rocsolver_chetrd_rank_1()

integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_chetrd::rocsolver_chetrd_rank_1 ( type(c_ptr)  handle,
integer(kind(rocblas_fill_upper))  uplo,
integer(c_int)  n,
complex(c_float_complex), dimension(:), target  a,
integer(c_int)  lda,
real(c_float), dimension(:), target  d,
real(c_float), dimension(:), target  e,
complex(c_float_complex), dimension(:), target  tau 
)

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