hegvx_scratchpad_size

hegvx_scratchpad_size#

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

説明#

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

API#

構文#

namespace oneapi::mkl::lapack { 
  template<typename T> 
  int64_t hegvx_scratchpad_size(sycl::queue &queue, 
  int64_t itype, 
  mkl::job jobz, 
  mkl::rangev range, 
  mkl::uplo uplo, 
  int64_t n, 
  int64_t lda, 
  int64_t ldb, 
  T::value_type vl, 
  T::value_type vu, 
  int64_t il, 
  int64_t iu, 
  T::value_type abstol, 
  int64_t ldz) 
}

入力パラメーター#

queue

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

itype

1、2 または 3。解決する問題の種類を指定します。

itype= 1 の場合、問題のタイプは A*x = lambda*B*x; です。

itype= 2 の場合、問題のタイプは A*B*x = lambda*x; です。

itype= 3 の場合、問題のタイプは B*A*x = lambda*x です。。

jobz

job::novec または job::vec である必要があります。

jobz = job::novec の場合、固有値のみが計算されます。

jobz = job::vec の場合、固有値と固有ベクトルが計算されます。

range

rangev::allrangev::values または rangev::indices である必要があります。

range = rangev::all の場合、すべての固有値と固有ベクトル (jobz パラメーターによって要求された場合) が計算されます。

range = rangev::values の場合、区間 (vl, vu] 内の固有値と対応する固有ベクトル (jobz パラメーターで要求された場合) が計算されます。

range = rangev::indices の場合、il 番目から iu 番目の固有値と対応する固有ベクトル (jobz パラメーターによって要求された場合) が計算されます。

uplo

uplo::upper または uplo::lower である必要があります。

uplo = uplo::upper の場合、a と b は AB の上三角部分を格納します。

uplo = uplo::lower の場合、a は AB の下三角部分を格納します。

n

行列 AB の順序 (0 n)。

lda

a の先頭次元; max(1,n) 以上である必要があります。

ldb

b の先頭次元; max(1,n) 以上。

vl

range = rangev::values の場合、固有値を検索する間隔の下限。vlvu より小さくなければなりません。range = rangev::all または range = rangev::indices の場合は参照されません。

vu

range = rangev::values の場合、固有値を検索する間隔の上限。vlvu より小さくなければなりません。range = rangev::all または range = rangev::indices の場合は参照されません。

il

range = rangev::indices の場合、返される最小固有値の 1 ベースのインデックス。n > 0 の場合は 1 il iu n で、n = 0 の場合は il = 1 および iu = 0 でなければなりません。range = rangev::all または range = rangev::values の場合は参照されません。

iu

range = rangev::indices の場合、返される最大固有値の 1 ベースのインデックス。n > 0 の場合は 1 il iu n で、n = 0 の場合は il = 1 および iu = 0 でなければなりません。range = rangev::all または range = rangev::values の場合は参照されません。

abstol

固有値の絶対誤差許容値。近似固有値は、abstol + eps *  max( |a|,|b| ) 以下の幅の区間 [a,b] 内にあると判断されたときに収束したとみなされます。ここで、eps はマシン精度です。abstol が 0 以下の場合、代わりに eps*|T| が使用されます。ここで、|T| は、A を三角形式に縮小することによって得られる三角行列の 1 ノルムです。

ldz

z の先頭次元。max(1,n) 以上である必要があります。

例外#

例外

説明

mkl::lapack::exception

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

戻り値#

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