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:

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

where:

  • op(X) is one of op(X) = X, or op(X) = XT, or op(X) = XH

  • alpha is a scalar

  • AB is a matrix

  • AB is m x n on input.

imatcopy supports the following precisions:

T

float

double

std::complex<float>

std::complex<double>

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 matrix AB. See Data Types for more details.

m

Number of rows for the matrix AB on input. Must be at least zero.

n

Number of columns for the matrix AB on 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::nontrans

trans = transpose::trans or trans = transpose::conjtrans

Column major

Size of array ab must be at least max(lda, ldb) * n

Size of array ab must be at least max(lda, ldb) * max(m, n)

Row major

Size of array ab must be at least max(lda, ldb) * m

Size of array ab must be at least max(lda, ldb) * max(m, n)

lda

Leading dimension of the matrix AB on input. If matrices are stored using column major layout, lda must be at least m. If matrices are stored using row major layout, lda must be at least n. Must be positive.

ldb

Leading dimension of the matrix AB on output. Must be positive.

trans = transpose::nontrans

trans = transpose::trans or trans = transpose::conjtrans

Column major

Must be at least m

Must be at least n

Row major

Must be at least n

Must 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,
                         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,
                         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 matrix AB. See Data Types for more details.

m

Number of rows for the matrix AB on input. Must be at least zero.

n

Number of columns for the matrix AB on input. Must be at least zero.

alpha

Scaling factor for the matrix transposition or copy.

ab

Pointer to input/output matrix AB. Must have size as follows:

trans = transpose::nontrans

trans = transpose::trans or trans = transpose::conjtrans

Column major

Size of array ab must be at least max(lda, ldb) * n

Size of array ab must be at least max(lda, ldb) * max(m, n)

Row major

Size of array ab must be at least max(lda, ldb) * m

Size of array ab must be at least max(lda, ldb) * max(m, n)

lda

Leading dimension of the matrix AB on input. If matrices are stored using column major layout, lda must be at least m. If matrices are stored using row major layout, lda must be at least n. Must be positive.

ldb

Leading dimension of the matrix AB on output. Must be positive.

trans = transpose::nontrans

trans = transpose::trans or trans = transpose::conjtrans

Column major

Must be at least m

Must be at least n

Row major

Must be at least n

Must 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 AB overwritten by alpha * op(AB).

Return Values

Output event to wait for to ensure computation is complete.