gesvd_scratchpad_size

Computes size of scratchpad memory required for gesvd function.

gesvd_scratchpad_size supports the following precisions.

T

float

double

std::complex<float>

std::complex<double>

Description

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

gesvd_scratchpad_size

Syntax

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

Input Parameters

queue

Device queue where calculations by gesvd function will be performed.

jobu

Must be job::allvec, job::somevec, job::overwritevec, or job::novec. Specifies options for computing all or part of the matrix U.

If jobu = job::allvec, all m columns of U are returned in the buffer u;

if jobu = job::somevec, the first min(m, n) columns of U (the left singular vectors) are returned in the buffer v;

if jobu = job::overwritevec, the first min(m, n) columns of U (the left singular vectors) are overwritten on the buffer a;

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

jobvt

Must be job::allvec, job::somevec, job::overwritevec, or job::novec. Specifies options for computing all or part of the matrix VT/VH.

If jobvt = job::allvec, all n columns of VT/VH are returned in the buffer vt;

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

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

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

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.

Throws

onemkl::lapack::exception

Exception is thrown in case of incorrect argument value is supplied. Position of wrong argument can be determined by get_info() method of exception object.

Return Value

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