gesvd_scratchpad_size

Computes size of scratchpad memory required for gesvd (USM Version) function. This routine belongs to the oneapi::mkl::lapacknamespace.

Syntax

template<typename T>
std::int64_t gesvd_scratchpad_size(cl::sycl::queue &queue, mkl::jobsvd jobu, mkl::jobsvd jobvt, std::int64_t m, std::int64_t n, std::int64_t lda, std::int64_t ldu, std::int64_t ldvt)

Description

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

Input Parameters

queue

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

jobu

Must be jobsvd::vectors, jobsvd::somevec, jobsvd::vectorsina, or jobsvd::novec. Specifies options for computing all or part of the matrix U.

If jobu = jobsvd::vectors, all m columns of U are returned in the array u;

if jobu = jobsvd::somevec, the first min(m, n) columns of U (the left singular vectors) are returned in the array u;

if jobu = jobsvd::vectorsina, the first min(m, n) columns of U (the left singular vectors) are overwritten on the array a;

if jobu = jobsvd::novec, no columns of U (no left singular vectors) are computed.

jobvt

Must be jobsvd::vectors, jobsvd::somevec, jobsvd::vectorsina, or jobsvd::novec. Specifies options for computing all or part of the matrix VT/VH.

If jobvt = jobsvd::vectors, all n columns of VT/VH are returned in the array vt;

if jobvt = jobsvd::somevec, the first min(m, n) columns of VT/VH (the left singular vectors) are returned in the array vt;

if jobvt = jobsvd::vectorsina, the first min(m, n) columns of VT/VH (the left singular vectors) are overwritten on the array a;

if jobvt = jobsvd::novec, no columns of VT/VH (no left singular vectors) are computed.

jobvt and jobu cannot both be job::overwritevec.

m

The number of rows in the matrix A (0≤m).

n

The number of columns in the matrix A (0≤n).

lda

The leading dimension of a.

ldu

The leading dimension of u.

ldvt

The leading dimension of vt.

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 get_info() method of the exception object.

Return Values

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