imatcopy#
Computes an in-place scaled matrix transpose or copy operation using a general dense 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) = XH,
alpha is a scalar,
C is a matrix to be transformed in place,
and C 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::math::blas::column_major {
void imatcopy(sycl::queue &queue,
oneapi::math::transpose trans,
std::int64_t m,
std::int64_t n,
T alpha,
sycl::buffer<T, 1> &matrix_in_out,
std::int64_t ld_in,
std::int64_t ld_out);
}
namespace oneapi::math::blas::row_major {
void imatcopy(sycl::queue &queue,
oneapi::math::transpose trans,
std::int64_t m,
std::int64_t n,
T alpha,
sycl::buffer<T, 1> &matrix_in_out,
std::int64_t ld_in,
std::int64_t ld_out);
}
Input Parameters
- queue
The queue where the routine should be executed.
- trans
Specifies op(
C), the transposition operation applied to the matrixC. See oneMath defined datatypes for more details.- m
Number of rows of
Con input. Must be at least zero.- n
Number of columns of
Con input. Must be at least zero.- alpha
Scaling factor for the matrix transposition or copy.
- matrix_in_out
Buffer holding the input/output matrix
C. Must have size as follows:trans=transpose::nontranstrans=transpose::transortrans=transpose::conjtransColumn major
Size of array
matrix_in_outmust be at least max(ld_in,ld_out) *nSize of array
matrix_in_outmust be at least max(ld_in``*``n,ld_out``*``m)Row major
Size of array
matrix_in_outmust be at least max(ld_in,ld_out) *mSize of array
matrix_in_outmust be at least max(ld_in``*``m,ld_out``*``n)- ld_in
The leading dimension of the matrix
Con input. It must be positive, and must be at leastmif column major layout is used, and at leastnif row-major layout is used.- ld_out
The leading dimension of the matrix
Con output. It must be positive.trans=transpose::nontranstrans=transpose::transortrans=transpose::conjtransColumn major
ld_outmust be at leastm.ld_outmust be at leastn.Row major
ld_outmust be at leastn.ld_outmust be at leastm.
Output Parameters
- matrix_in_out
Output buffer, overwritten by
alpha* op(C).
Throws
This routine shall throw the following exceptions if the associated condition is detected. An implementation may throw additional implementation-specific exception(s) in case of error conditions not covered here.
oneapi::math::invalid_argument
oneapi::math::unsupported_device
imatcopy (USM Version)#
Syntax
namespace oneapi::math::blas::column_major {
sycl::event imatcopy(sycl::queue &queue,
oneapi::math::transpose trans,
std::int64_t m,
std::int64_t n,
value_or_pointer<T> alpha,
T *matrix_in_out,
std::int64_t ld_in,
std::int64_t ld_out,
const std::vector<sycl::event> &dependencies = {});
namespace oneapi::math::blas::row_major {
sycl::event imatcopy(sycl::queue &queue,
oneapi::math::transpose trans,
std::int64_t m,
std::int64_t n,
value_or_pointer<T> alpha,
T *matrix_in_out,
std::int64_t ld_in,
std::int64_t ld_out,
const std::vector<sycl::event> &dependencies = {});
Input Parameters
- queue
The queue where the routine will be executed.
- trans
Specifies op(
C), the transposition operation applied to the matrixC. See oneMath defined datatypes for more details.- m
Number of rows for the matrix
Con input. Must be at least zero.- n
Number of columns for the matrix
Con input. Must be at least zero.- alpha
Scaling factor for the matrix transpose or copy operation. See Scalar Arguments in BLAS for more details.
- matrix_in_out
Pointer to input/output matrix
C. Must have size as follows:trans=transpose::nontranstrans=transpose::transortrans=transpose::conjtransColumn major
Size of array
matrix_in_outmust be at least max(ld_in,ld_out) *nSize of array
matrix_in_outmust be at least max(ld_in``*``n,ld_out``*``m)Row major
Size of array
matrix_in_outmust be at least max(ld_in,ld_out) *mSize of array
matrix_in_outmust be at least max(ld_in``*``m,ld_out``*``n)- ld_in
Leading dimension of the matrix
Con input. If matrices are stored using column major layout,ld_inmust be at leastm. If matrices are stored using row major layout,ld_inmust be at leastn. Must be positive.- ld_out
Leading dimension of the matrix
Con output. Must be positive.trans=transpose::nontranstrans=transpose::transortrans=transpose::conjtransColumn major
ld_outmust be at leastm.ld_outmust be at leastn.Row major
ld_outmust be at leastn.ld_outmust be at leastm.- dependencies
List of events to wait for before starting computation, if any. If omitted, defaults to no dependencies.
Output Parameters
- matrix_in_out
Pointer to output matrix
Coverwritten byalpha* op(C).
Return Values
Output event to wait on to ensure computation is complete.
Throws
This routine shall throw the following exceptions if the associated condition is detected. An implementation may throw additional implementation-specific exception(s) in case of error conditions not covered here.
oneapi::math::invalid_argument
oneapi::math::unsupported_device
oneapi::math::device_bad_alloc
Parent topic: BLAS-like Extensions