Computes size of scratchpad memory required for sygvd function.

Description

sygvd_scratchpad_size supports the following precisions.

T

float

double

Computes the number of elements of type T the scratchpad memory to be passed to sygvd function should be able to hold. Calls to this routine must specify the template parameter explicitly.

Syntax

namespace oneapi::mkl::lapack {
template <typename T>
std::int64_t sygvd_scratchpad_size(sycl::queue &queue, std::int64_t itype, oneapi::mkl::job jobz, oneapi::mkl::uplo upper_lower, std::int64_t n, std::int64_t lda, std::int64_t ldb)
}


Input Parameters

queue

Device queue where calculations by sygvd function will be performed.

itype

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

if $$\text{itype} = 1$$, the problem type is $$Ax = \lambda Bx$$;

if $$\text{itype} = 2$$, the problem type is $$ABx = \lambda x$$;

if $$\text{itype} = 3$$, the problem type is $$BAx = \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.

upper_lower

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

If upper_lower = job::upper, a and b store the upper triangular part of $$A$$ and $$B$$.

If upper_lower = job::lower, a and b stores the lower triangular part of $$A$$ and $$B$$.

n

The order of the matrices $$A$$ and $$B$$ $$(0 \le n)$$.

lda

The leading dimension of a.

ldb

The leading dimension of b.

Return Value

The number of elements of type T` the scratchpad memory to be passed to sygvd function should be able to hold.