rocsolver_ssytd2 Interface Reference#
SYTD2 computes 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_full_rank (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) |
Detailed Description
SYTD2 computes 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' 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_1H_2\cdots H_{n-1} & \: \text{if uplo indicates lower, or}\newline 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' \]
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; 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; 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, | ||
real(c_float) | 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) | 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) | 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) | tau | ||
) |
The documentation for this interface was generated from the following file: