imatcopy#

一般的な行列を使用して、インプレースでスケールされた行列の転置またはコピー操作を計算します。

説明#

imatcopy ルーチンは、一連のアウトオブプレースでスケールされた行列のコピーまたは転置を実行します。操作はのように定義されています。

\[AB \leftarrow alpha*op(AB)\]

説明:

  • op(X) は、op(X) = X、op(X) = XT、または op(X) = XH のいずれかです

  • alpha はスカラーです

  • AB は行列

  • AB は入力時に m x n になります。

imatcopy は次の精度をサポートします。

T

float

double

std::complex<float>

std::complex<double>

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

構文#

namespace oneapi::mkl::blas::column_major { 
    void imatcopy(sycl::queue &queue, 
                  oneapi::mkl::transpose trans, 
                  std::int64_t m, 
                  std::int64_t n, 
                  T alpha, 
                  sycl::buffer<T, 1> &ab, 
                  std::int64_t lda, 
                  std::int64_t ldb); 
}
namespace oneapi::mkl::blas::row_major { 
    void imatcopy(sycl::queue &queue, 
                  oneapi::mkl::transpose trans, 
                  std::int64_t m, 
                  std::int64_t n, 
                  T alpha, 
                  sycl::buffer<T, 1> &ab, 
                  std::int64_t lda, 
                  std::int64_t ldb); 
}

入力パラメーター#

queue

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

trans

行列 AB に適用される転置演算 op(AB) を指定します。詳細はデータタイプを参照してください。

m

入力行列 AB の行数。最小値は 0 です。

n

入力行列 AB の列数。最小値は 0 です。

alpha

行列の転置またはコピーのスケーリング係数。

ab

入力/出力行列 AB を保持するバッファー。次のサイズである必要があります。

trans = transpose::nontrans

trans = transpose::trans または trans = transpose::conjtrans

列優先

配列 ab のサイズはmax(lda, ldb) * n 以上でなければなりません

配列 ab のサイズは max(lda, ldb) * max(m, n) 以上でなければなりません

行優先

配列 ab のサイズは max(lda, ldb) * m 以上でなければなりません

配列 ab のサイズは max(lda, ldb) * max(m, n) 以上でなければなりません

lda

入力時の行列 AB の先頭次元。行列が列優先レイアウトで保存される場合、ldam 以上である必要があります。行列が行優先レイアウトで保存される場合、ldan 以上である必要があります。正である必要があります。

ldb

出力行列 AB の先頭次元。正である必要があります。

trans = transpose::nontrans

trans = transpose::trans または trans = transpose::conjtrans

列優先

m 以上である必要があります

n 以上である必要があります

行優先

n 以上である必要があります

m 以上である必要があります

出力パラメーター#

ab

出力バッファーは alpha * op(AB) で、上書きされます。

imatcopy (USM バージョン)#

構文#

namespace oneapi::mkl::blas::column_major { 
    sycl::event imatcopy(sycl::queue &queue, 
                         oneapi::mkl::transpose trans, 
                         std::int64_t m, 
                         std::int64_t n, 
                         oneapi::mkl::value_or_pointer<T> alpha, 
                         T *ab, 
                         std::int64_t lda, 
                         std::int64_t ldb, 
                         const std::vector<sycl::event> &dependencies = {}); 
}
namespace oneapi::mkl::blas::row_major { 
    sycl::event imatcopy(sycl::queue &queue, 
                         oneapi::mkl::transpose trans, std::int64_t m, 
                         std::int64_t n, 
                         oneapi::mkl::value_or_pointer<T> alpha, 
                         T *ab, 
                         std::int64_t lda, 
                         std::int64_t ldb, 
                         const std::vector<sycl::event> &dependencies = {}); 
}

入力パラメーター#

queue

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

trans

行列 AB に適用される転置演算 op(AB) を指定します。詳細はデータタイプを参照してください。

m

入力行列 AB の行数。最小値は 0 です。

n

入力行列 AB の列数。最小値は 0 です。

alpha

行列の転置またはコピーのスケーリング係数。value_or_pointer データタイプの詳細については、スカラー引数を参照してください。

ab

入力/出力行列 AB へのポインター。次のサイズである必要があります。

trans = transpose::nontrans

trans = transpose::trans または trans = transpose::conjtrans

列優先

配列 ab のサイズは max(lda, ldb) * n 以上でなければなりません

配列 ab のサイズは max(lda, ldb) * max(m, n) 以上でなければなりません

行優先

配列 ab のサイズは max(lda, ldb) * m 以上でなければなりません

配列 ab のサイズは max(lda, ldb) * max(m, n) 以上でなければなりません

lda

入力時の行列 AB の先頭次元。行列が列優先レイアウトで保存される場合、ldam 以上である必要があります。行列が行優先レイアウトで保存される場合、ldan 以上である必要があります。正である必要があります。

ldb

出力行列 AB の先頭次元。正である必要があります。

trans = transpose::nontrans

trans = transpose::trans または trans = transpose::conjtrans

列優先

m 以上である必要があります

n 以上である必要があります

行優先

n 以上である必要があります

m 以上である必要があります

dependencies

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

出力パラメーター#

ab

alpha * op(AB) で上書きされた出力行列 AB へのポインター。

戻り値#

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