Computes size of scratchpad memory required for sygvd (USM Version) function. This routine belongs to the mkl::lapack namespace.
template<typename T>
std::int64_t sygvd_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);
Computes the number of elements of type T the scratchpad memory to be passed to the sygvd (buffer or USM version) function should be able to hold.
Device queue where calculations by the sygvd (buffer or USM version) function will be performed.
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.
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.
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.
The order of the matrices A and B (0≤n).
The leading dimension of a; at least max(1,n).
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. |
The number of elements of type T the scratchpad memory to be passed to the sygvd (buffer or USM version) function should be able to hold.