# 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] handle rocblas_handle. [in] itype rocblas_eform. Specifies the form of the generalized eigenproblems. [in] uplo rocblas_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] n rocblas_int. n >= 0. The matrix dimensions. [in,out] A array 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] lda rocblas_int. lda >= n. Specifies the leading dimension of A_i. [out] B array 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] ldb rocblas_int. ldb >= n. Specifies the leading dimension of B_i. [in] batch_count rocblas_int. batch_count >= 0. Number of matrices in the batch.

## ◆ 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: