Computes size of scratchpad memory required for hegvd (USM Version) function. This routine belongs to the `oneapi::mkl::lapack`namespace.

Syntax

`template<typename T>`
std::int64_t `hegvd_scratchpad_size`(cl::sycl::queue &queue, std::int64_t itype, mkl::job jobz, mkl::uplo uplo, std::int64_t n, std::int64_t lda, std::int64_t ldb)

Description

Computes the number of elements of type T the scratchpad memory to be passed to the hegvd (buffer or USM version) function should be able to hold.

Input Parameters

queue

Device queue where calculations by the hegvd (buffer or USM version) function will be performed.

itype

Must be 1 or 2 or 3. Specifies the problem type to be solved:

if itype`= 1`, the problem type is `A*x = lambda*B*x;`

if itype`= 2`, the problem type is `A*B*x = lambda*x;`

if itype`= 3`, the problem type is `B*A*x = lambda*x`.

jobz

Must be `job::novec` or `job::vec`.

If `jobz = job::novec`, then only eigenvalues are computed.

If `jobz = job::vec`, then eigenvalues and eigenvectors are computed.

uplo

Must be `uplo::upper` or `uplo::lower`.

If `uplo = uplo::upper`, a and b store the upper triangular part of `A` and `B`.

If `uplo = uplo::lower`, a and b stores the lower triangular part of `A` and `B`.

n

The order of the matrices `A` and `B` (`0≤n`).

lda

The leading dimension of a; at least `max(1,n)`.

ldb

The leading dimension of b; at least `max(1,n)`.

Exceptions

 mkl::lapack::exception This exception is thrown when an incorrect argument value is supplied. You can determine the position of the incorrect argument by the info() method of the exception object.

Return Values

The number of elements of type T the scratchpad memory to be passed to the hegvd (buffer or USM version) function should be able to hold.