Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 10/31/2024
Public
Document Table of Contents

mkl_?imatcopy_batch_strided

Computes a group of in-place scaled matrix copy or transposition using general matrices.

Syntax

void mkl_simatcopy_batch_strided (const char layout, const char trans, size_t row, size_t col, const float alpha, float * ab, size_t lda, size_t ldb, size_t stride, size_t batch_size);

void mkl_dimatcopy_batch_strided (const char layout, const char trans, size_t row, size_t col, const double alpha, double * ab, size_t lda, size_t ldb, size_t stride, size_t batch_size);

void mkl_cimatcopy_batch_strided (const char layout, const char trans, size_t row, size_t col, MKL_complex8 alpha, MKL_complex8 * ab, size_t lda, size_t ldb, size_t stride, size_t batch_size);

void mkl_zimatcopy_batch_strided (const char layout, const char trans, size_t row, size_t col, MKL_complex16 alpha, MKL_complex16 * ab, size_t lda, size_t ldb, size_t stride, size_t batch_size);

Description

The mkl_?imatcopy_batch_strided routine performs a series of scaled matrix copy or transposition. They are similar to the mkl_?imatcopy routine counterparts, but the mkl_?imatcopy_batch_strided routine performs matrix operations with a group of matrices.

All matrices ab have the same parameters (size, transposition operation…) and are stored at constant stride from each other. The operation is defined as

for i = 0 … batch_size – 1
    AB is a matrix at offset i * stride in ab
    AB = alpha * op(AB)
end for

Input Parameters

layout

Specifies whether two-dimensional array storage is row-major (CblasRowMajor) or column-major (CblasColMajor)

trans

Specifies op(AB), the transposition operation applied to the AB matrices.

If trans = 'N' or 'n', op(AB)=AB.

If trans = 'T' or 't', op(AB)=AB'

If trans = 'C' or 'c', op(AB)=conjg(AB')

If trans = 'R' or 'r', op(AB)=conjg(AB)

row

Specifies the number of rows of the matrices AB. The value of row must be at least zero.

col

Specifies the number of columns of the matrices AB. The value of col must be at least zero.

alpha

Specifies the scalar alpha.

ab

Array holding all the input matrix AB. Must be of size at least batch_size * stride.

lda

The leading dimension of the matrix input AB. It must be positive and at least row if column major layout is used or at least col if row major layout is used.

ldb

The leading dimension of the matrix input AB. It must be positive and at least

row if column major layout is used and op(AB) = AB or conjg(AB)

row if row major layout is used and op(AB) = AB' or conjg(AB')

col otherwise

stride

Stride between two consecutive AB matrices, must be at least max(ldb,lda)*max(ka, kb) where

  • ka is row if column major layout is used or col if row major layout is used

  • kb is col if column major layout is used and op(AB) = AB or conjg(AB) or row major layout is used and op(AB) = AB' or conjg(AB'); kb is row otherwise.

batch_size

Number of imatcopy computations to perform and AB matrices. Must be at least 0.

Output Parameters

ab

Array holding the batch_size updated matrices AB.