iamin#

ベクトル内の絶対値が最小の要素のインデックスを検出します

説明#

iamin ルーチンは、x[i] がベクトル x 内のすべての要素の絶対値の最小値を持つインデックス i (実数バリアント)、または (|Re(x[i])| + |Im(x[i])|) が最小になるインデックス i (複素数バリアント) を返します。

iamin は、std::int32_t または std::int64_t の結果タイプ Tresult をサポートし、データタイプ T に対して次の精度をサポートします。

T

float

double

std::complex<float>

std::complex<double>

baseindex_base::zero (デフォルト) に設定されている場合、インデックスは 0 ベースになり、index_base::one に設定されている場合は 1 ベースになります。

n または incx のいずれかが正でない場合、選択されたインデックスのベースに関係なく、ルーチンは 0 を返します。

同じ最小絶対値を持つベクトル要素が複数見つかった場合、最初に見つかった要素のインデックスが返されます。

ベクトルに NaN 値が含まれている場合、ルーチンは最初の NaN のインデックスを返します。

iamin (バッファーバージョン)#

構文#

namespace oneapi::mkl::blas::column_major { 
    void iamin(sycl::queue &queue, 
               std::int64_t n, 
               sycl::buffer<T,1> &x, 
               std::int64_t incx, 
               sycl::buffer<Tresult,1> &result, 
               index_base base = index_base::zero) 
}
namespace oneapi::mkl::blas::row_major { 
    void iamin(sycl::queue &queue, 
               std::int64_t n, 
               sycl::buffer<T,1> &x, 
               std::int64_t incx, 
               sycl::buffer<Tresult,1> &result, 
               index_base base = index_base::zero) 
}

入力パラメーター#

queue

ルーチンが実行されるキュー。

n

ベクトル x 内の要素数。

x

入力ベクトル y を保持するバッファー。バッファーのサイズは (1 + (n - 1)*abs(incx) 以上である必要があります。行列ストレージを参照してください。

incx

ベクトル x のストライド。

base

出力値がどのようにインデックス付けされるかを示します。省略した場合は、デフォルトでゼロベースのインデックスになります。

oneapi::mkl::index_base::zero

ゼロベース (C スタイル) のインデックス: インデックスは 0 から始まります。

oneapi::mkl::index_base::one

1 ベース (Fortran スタイル) のインデックス: インデックスは 1 から始まります。

出力パラメーター#

result

最小要素のインデックス i が格納されるバッファー。

iamin (USM バージョン)#

構文#

namespace oneapi::mkl::blas::column_major { 
    sycl::event iamin(sycl::queue &queue, 
                      std::int64_t n, 
                      const T *x, 
                      std::int64_t incx, 
                      Tresult *result, 
                      index_base base = index_base::zero, 
                      const std::vector<sycl::event> &dependencies = {}) 
}
namespace oneapi::mkl::blas::row_major { 
    sycl::event iamin(sycl::queue &queue, 
                      std::int64_t n, 
                      const T *x, 
                      std::int64_t incx, 
                      Tresult *result, 
                      index_base base = index_base::zero, 
                      const std::vector<sycl::event> &dependencies = {}) 
}

入力パラメーター#

queue

ルーチンが実行されるキュー。

n

ベクトル x 内の要素数。

x

入力ベクトル x へのポインター。入力ベクトル x を保持する配列のサイズは、(1 + (n - 1)*abs(incx)) 以上である必要があります。行列ストレージを参照してください。

incx

ベクトル x のストライド。

base

出力値がどのようにインデックス付けされるかを示します。省略した場合は、デフォルトでゼロベースのインデックスになります。

oneapi::mkl::index_base::zero

ゼロベース (C スタイル) のインデックス: インデックスは 0 から始まります。

oneapi::mkl::index_base::one

1 ベース (Fortran スタイル) のインデックス: インデックスは 1 から始まります。

dependencies

計算を開始する前に待機するイベントのリスト (存在する場合)。省略した場合、依存関係はデフォルトでなくなります。

出力パラメーター#

result

最小要素のインデックス i が格納されている場所へのポインター。

戻り値#

計算が完了したことを確認するために待機する出力イベント。