This page contains proposed changes for a future release of ROCm. Read the latest Linux release of ROCm documentation for your production environments.

rocsolver_ssygs2_batched Interface Reference

rocsolver_ssygs2_batched Interface Reference#

HIPFORT API Reference: hipfort_rocsolver::rocsolver_ssygs2_batched Interface Reference
hipfort_rocsolver::rocsolver_ssygs2_batched Interface Reference

SYGS2_BATCHED reduces a batch of real symmetric-definite generalized eigenproblems to standard form. More...

Public Member Functions

integer(kind(rocblas_status_success)) function rocsolver_ssygs2_batched_ (handle, itype, uplo, n, A, lda, B, ldb, batch_count)
 
integer(kind(rocblas_status_success)) function rocsolver_ssygs2_batched_full_rank (handle, itype, uplo, n, A, lda, B, ldb, batch_count)
 
integer(kind(rocblas_status_success)) function rocsolver_ssygs2_batched_rank_0 (handle, itype, uplo, n, A, lda, B, ldb, batch_count)
 
integer(kind(rocblas_status_success)) function rocsolver_ssygs2_batched_rank_1 (handle, itype, uplo, n, A, lda, B, ldb, batch_count)
 

Detailed Description

SYGS2_BATCHED reduces a batch of real symmetric-definite generalized eigenproblems to standard form.

(This is the unblocked version of the algorithm).

For each instance in the batch, the problem solved by this function is either of the form

\[ \begin{array}{cl} A_i X_i = \lambda B_i X_i & \: \text{1st form,}\newline A_i B_i X_i = \lambda X_i & \: \text{2nd form, or}\newline B_i A_i X_i = \lambda X_i & \: \text{3rd form,} \end{array} \]

depending on the value of itype.

If the problem is of the 1st form, then \(A_i\) is overwritten with

\[ \begin{array}{cl} U_i^{-T} A_i U_i^{-1}, & \: \text{or}\newline L_i^{-1} A_i L_i^{-T}, \end{array} \]

where the symmetric-definite matrix \(B_i\) has been factorized as either \(U_i^T U_i\) or \(L_i L_i^T\) as returned by POTRF, depending on the value of uplo.

If the problem is of the 2nd or 3rd form, then A is overwritten with

\[ \begin{array}{cl} U_i A_i U_i^T, & \: \text{or}\newline L_i^T A_i L_i, \end{array} \]

also depending on the value of uplo.

Parameters
[in]handlerocblas_handle.
[in]ityperocblas_eform.
Specifies the form of the generalized eigenproblems.
[in]uplorocblas_fill.
Specifies whether the upper or lower part of the matrices A_i are stored, and whether the factorization applied to B_i was upper or lower triangular. If uplo indicates lower (or upper), then the upper (or lower) parts of A_i and B_i are not used.
[in]nrocblas_int. n >= 0.
The matrix dimensions.
[in,out]Aarray of pointers to type. Each pointer points to an array on the GPU of dimension lda*n.
On entry, the matrices A_i. On exit, the transformed matrices associated with the equivalent standard eigenvalue problems.
[in]ldarocblas_int. lda >= n.
Specifies the leading dimension of A_i.
[out]Barray of pointers to type. Each pointer points to an array on the GPU of dimension ldb*n.
The triangular factors of the matrices B_i, as returned by POTRF_BATCHED.
[in]ldbrocblas_int. ldb >= n.
Specifies the leading dimension of B_i.
[in]batch_countrocblas_int. batch_count >= 0.
Number of matrices in the batch.

Member Function/Subroutine Documentation

◆ rocsolver_ssygs2_batched_()

integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_ssygs2_batched::rocsolver_ssygs2_batched_ ( type(c_ptr), value  handle,
integer(kind(rocblas_eform_ax)), value  itype,
integer(kind(rocblas_fill_upper)), value  uplo,
integer(c_int), value  n,
type(c_ptr)  A,
integer(c_int), value  lda,
type(c_ptr)  B,
integer(c_int), value  ldb,
integer(c_int), value  batch_count 
)

◆ rocsolver_ssygs2_batched_full_rank()

integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_ssygs2_batched::rocsolver_ssygs2_batched_full_rank ( type(c_ptr)  handle,
integer(kind(rocblas_eform_ax))  itype,
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  B,
integer(c_int)  ldb,
integer(c_int)  batch_count 
)

◆ rocsolver_ssygs2_batched_rank_0()

integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_ssygs2_batched::rocsolver_ssygs2_batched_rank_0 ( type(c_ptr)  handle,
integer(kind(rocblas_eform_ax))  itype,
integer(kind(rocblas_fill_upper))  uplo,
integer(c_int)  n,
real(c_float), target  A,
integer(c_int)  lda,
real(c_float), target  B,
integer(c_int)  ldb,
integer(c_int)  batch_count 
)

◆ rocsolver_ssygs2_batched_rank_1()

integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_ssygs2_batched::rocsolver_ssygs2_batched_rank_1 ( type(c_ptr)  handle,
integer(kind(rocblas_eform_ax))  itype,
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  B,
integer(c_int)  ldb,
integer(c_int)  batch_count 
)

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