rocsolver_chegst_strided_batched Interface Reference

rocsolver_chegst_strided_batched Interface Reference#

HIPFORT API Reference: hipfort_rocsolver::rocsolver_chegst_strided_batched Interface Reference
hipfort_rocsolver::rocsolver_chegst_strided_batched Interface Reference

HEGST_STRIDED_BATCHED reduces a batch of hermitian-definite generalized eigenproblems to standard form. More...

Public Member Functions

integer(kind(rocblas_status_success)) function rocsolver_chegst_strided_batched_ (handle, itype, uplo, n, A, lda, strideA, B, ldb, strideB, batch_count)
 
integer(kind(rocblas_status_success)) function rocsolver_chegst_strided_batched_full_rank (handle, itype, uplo, n, A, lda, strideA, B, ldb, strideB, batch_count)
 
integer(kind(rocblas_status_success)) function rocsolver_chegst_strided_batched_rank_0 (handle, itype, uplo, n, A, lda, strideA, B, ldb, strideB, batch_count)
 
integer(kind(rocblas_status_success)) function rocsolver_chegst_strided_batched_rank_1 (handle, itype, uplo, n, A, lda, strideA, B, ldb, strideB, batch_count)
 

Detailed Description

HEGST_STRIDED_BATCHED reduces a batch of hermitian-definite generalized eigenproblems to standard form.

(This is the blocked 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^{-H} A_i U_i^{-1}, & \: \text{or}\newline L_i^{-1} A_i L_i^{-H}, \end{array} \]

where the hermitian-definite matrix \(B_i\) has been factorized as either \(U_i^H U_i\) or \(L_i L_i^H\) 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^H, & \: \text{or}\newline L_i^H 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]Apointer to type. Array on the GPU (the size depends on the value of strideA).
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.
[in]strideArocblas_stride.
Stride from the start of one matrix A_i to the next one A_(i+1). There is no restriction for the value of strideA. Normal use case is strideA >= lda*n.
[out]Bpointer to type. Array on the GPU (the size depends on the value of strideB).
The triangular factors of the matrices B_i, as returned by POTRF_STRIDED_BATCHED.
[in]ldbrocblas_int. ldb >= n.
Specifies the leading dimension of B_i.
[in]strideBrocblas_stride.
Stride from the start of one matrix B_i to the next one B_(i+1). There is no restriction for the value of strideB. Normal use case is strideB >= ldb*n.
[in]batch_countrocblas_int. batch_count >= 0.
Number of matrices in the batch.

Member Function/Subroutine Documentation

◆ rocsolver_chegst_strided_batched_()

integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_chegst_strided_batched::rocsolver_chegst_strided_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), value  A,
integer(c_int), value  lda,
integer(c_int64_t), value  strideA,
type(c_ptr), value  B,
integer(c_int), value  ldb,
integer(c_int64_t), value  strideB,
integer(c_int), value  batch_count 
)

◆ rocsolver_chegst_strided_batched_full_rank()

integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_chegst_strided_batched::rocsolver_chegst_strided_batched_full_rank ( type(c_ptr)  handle,
integer(kind(rocblas_eform_ax))  itype,
integer(kind(rocblas_fill_upper))  uplo,
integer(c_int)  n,
complex(c_float_complex), dimension(:,:), target  A,
integer(c_int)  lda,
integer(c_int64_t)  strideA,
complex(c_float_complex), dimension(:,:), target  B,
integer(c_int)  ldb,
integer(c_int64_t)  strideB,
integer(c_int)  batch_count 
)

◆ rocsolver_chegst_strided_batched_rank_0()

integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_chegst_strided_batched::rocsolver_chegst_strided_batched_rank_0 ( type(c_ptr)  handle,
integer(kind(rocblas_eform_ax))  itype,
integer(kind(rocblas_fill_upper))  uplo,
integer(c_int)  n,
complex(c_float_complex), target  A,
integer(c_int)  lda,
integer(c_int64_t)  strideA,
complex(c_float_complex), target  B,
integer(c_int)  ldb,
integer(c_int64_t)  strideB,
integer(c_int)  batch_count 
)

◆ rocsolver_chegst_strided_batched_rank_1()

integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_chegst_strided_batched::rocsolver_chegst_strided_batched_rank_1 ( type(c_ptr)  handle,
integer(kind(rocblas_eform_ax))  itype,
integer(kind(rocblas_fill_upper))  uplo,
integer(c_int)  n,
complex(c_float_complex), dimension(:), target  A,
integer(c_int)  lda,
integer(c_int64_t)  strideA,
complex(c_float_complex), dimension(:), target  B,
integer(c_int)  ldb,
integer(c_int64_t)  strideB,
integer(c_int)  batch_count 
)

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