gesvd_scratchpad_size

gesvd_scratchpad_size#

gesvd (USM バージョン) 関数に必要なスクラッチ・パッド・メモリーのサイズを計算します。このルーチンは、oneapi::mkl::lapack 名前空間に属します。

説明#

gesvd (バッファーまたは USM バージョン) 関数に渡されるスクラッチパッド・メモリーが保持する T タイプの要素数を計算します。

API#

構文#

namespace oneapi::mkl::lapack { 
  template<typename T> 
  int64_t gesvd_scratchpad_size(sycl::queue &queue, 
  mkl::jobsvd jobu, 
  mkl::jobsvd jobvt, 
  int64_t m, 
  int64_t n, 
  int64_t lda, 
  int64_t ldu, 
  int64_t ldvt) 
}

入力パラメーター#

queue

gesvd (バッファーまたは USM バージョン) 関数の計算が実行されるデバイスキュー。

jobu

jobsvd::vectorsjobsvd::somevecjobsvd::vectorsina、または jobsvd::novec である必要があります。行列 U のすべてまたは一部を計算するオプションを指定します。

jobu = jobsvd::vectors の場合、U のすべての m 列が配列 u に返されます;

jobu = jobsvd::somevec の場合、U の最初の min(m, n) 列 (左特異ベクトル) が配列 u に返されます;

jobu = jobsvd::vectorsina の場合、U の最初の min(m, n) 列 (左特異ベクトル) が配列 u に上書きされます;

jobu = jobsvd::novec の場合、U の列 (左特異ベクトルがない) は計算されません 。

jobvt

jobsvd::vectors, jobsvd::somevecjobsvd::vectorsina、または jobsvd::novec である必要があります。行列 VT/VH のすべてまたは一部を計算するオプションを指定します。

jobvt = jobsvd::vectors の場合、VT/VH のすべての n 列が配列 vt に返されます;

jobvt = jobsvd::somevec の場合、VT/VH (左特異ベクトル) の最初の min(m, n) 列が配列 vt に返されます;

jobvt = jobsvd::vectorsina の場合、VT/VH (左特異ベクトル) の最初の min(m, n) 列 が配列 a に上書きされます;

jobvt = jobsvd::novec の場合、VT/VH (左特異ベクトルがない) の列は計算されません 。

jobvt と jobu の両方を job::overwritevec にすることはできません。

m

行列 A の行数 (0 m)。

n

行列 A の列数 (0 n)。

lda

a の先頭次元。

ldu

u の先頭次元。

ldvt

vt の先頭次元。

例外#

例外

説明

mkl::lapack::exception

不正な引数値が指定されると、この例外がスローされます。例外オブジェクトの get_info() メソッドによって、不正な引数の位置を特定できます。

戻り値#

gesvd (バッファーまたは USM バージョン) 関数に渡されるスクラッチパッド・メモリーが保持する T タイプの要素数。