rocsolver_ssytd2 Interface Reference

rocsolver_ssytd2 Interface Reference#

HIPFORT API Reference: hipfort_rocsolver::rocsolver_ssytd2 Interface Reference
hipfort_rocsolver::rocsolver_ssytd2 Interface Reference

The SYTD2 functions compute the tridiagonal form of a real symmetric matrix A. More...

Public Member Functions

integer(kind(rocblas_status_success)) function rocsolver_ssytd2_ (handle, uplo, n, a, lda, d, e, tau)
 
integer(kind(rocblas_status_success)) function rocsolver_ssytd2_rank_0 (handle, uplo, n, a, lda, d, e, tau)
 
integer(kind(rocblas_status_success)) function rocsolver_ssytd2_rank_1 (handle, uplo, n, a, lda, d, e, tau)
 
integer(kind(rocblas_status_success)) function rocsolver_ssytd2_full_rank (handle, uplo, n, a, lda, d, e, tau)
 

Detailed Description

The SYTD2 functions compute the tridiagonal form of a real symmetric matrix A.

(This is the unblocked version of the algorithm.)

The tridiagonal form is given by:

\[ T = Q^H A Q \]

where T is symmetric tridiagonal and Q is an orthogonal 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 symmetric 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 type. Array on the GPU of dimension n. The diagonal elements of T.
[out]E- pointer to 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_ssytd2_()

integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_ssytd2::rocsolver_ssytd2_ ( 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_ssytd2_full_rank()

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

◆ rocsolver_ssytd2_rank_0()

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

◆ rocsolver_ssytd2_rank_1()

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

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