imatcopy#
Computes an in-place scaled matrix transpose or copy operation using a general matrix.
Description#
The imatcopy routine performs an in-place scaled
matrix copy or transposition.
The operation is defined as:
where:
op(
X) is one of op(X) =X, or op(X) =XT, or op(X) =XHalphais a scalarABis a matrixABismxnon input.
imatcopy supports the following precisions:
T |
|---|
|
|
|
|
imatcopy (Buffer Version)#
Syntax#
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);
}
Input Parameters#
- queue
The queue where the routine will be executed.
- trans
Specifies op(
AB), the transposition operation applied to the matrixAB. See Data Types for more details.- m
Number of rows for the matrix
ABon input. Must be at least zero.- n
Number of columns for the matrix
ABon input. Must be at least zero.- alpha
Scaling factor for the matrix transposition or copy.
- ab
Buffer holding the input/output matrix
AB. Must have size as follows:trans=transpose::nontranstrans=transpose::transortrans=transpose::conjtransColumn major
Size of array
abmust be at least max(lda,ldb) *nSize of array
abmust be at least max(lda,ldb) * max(m,n)Row major
Size of array
abmust be at least max(lda,ldb) *mSize of array
abmust be at least max(lda,ldb) * max(m,n)- lda
Leading dimension of the matrix
ABon input. If matrices are stored using column major layout,ldamust be at leastm. If matrices are stored using row major layout,ldamust be at leastn. Must be positive.- ldb
Leading dimension of the matrix
ABon output. Must be positive.trans=transpose::nontranstrans=transpose::transortrans=transpose::conjtransColumn major
Must be at least
mMust be at least
nRow major
Must be at least
nMust be at least
m
Output Parameters#
- ab
Output buffer, overwritten by
alpha* op(AB).
imatcopy (USM Version)#
Syntax#
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 = {});
}
Input Parameters#
- queue
The queue where the routine will be executed.
- trans
Specifies op(
AB), the transposition operation applied to the matrixAB. See Data Types for more details.- m
Number of rows for the matrix
ABon input. Must be at least zero.- n
Number of columns for the matrix
ABon input. Must be at least zero.- alpha
Scaling factor for the matrix transposition or copy. See Scalar Arguments for more information on the
value_or_pointerdata type.- ab
Pointer to input/output matrix
AB. Must have size as follows:trans=transpose::nontranstrans=transpose::transortrans=transpose::conjtransColumn major
Size of array
abmust be at least max(lda,ldb) *nSize of array
abmust be at least max(lda,ldb) * max(m,n)Row major
Size of array
abmust be at least max(lda,ldb) *mSize of array
abmust be at least max(lda,ldb) * max(m,n)- lda
Leading dimension of the matrix
ABon input. If matrices are stored using column major layout,ldamust be at leastm. If matrices are stored using row major layout,ldamust be at leastn. Must be positive.- ldb
Leading dimension of the matrix
ABon output. Must be positive.trans=transpose::nontranstrans=transpose::transortrans=transpose::conjtransColumn major
Must be at least
mMust be at least
nRow major
Must be at least
nMust be at least
m- dependencies
List of events to wait for before starting computation, if any. If omitted, defaults to no dependencies.
Output Parameters#
- ab
Pointer to output matrix
ABoverwritten byalpha* op(AB).
Return Values#
Output event to wait for to ensure computation is complete.