Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 11/07/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

mkl_?omatcopy_batch_strided

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

Syntax

call mkl_somatcopy_batch_strided(layout, trans, row, col, alpha, a, lda, stridea, b, ldb, strideb, batch_size)

call mkl_domatcopy_batch_strided(layout, trans, row, col, alpha, a, lda, stridea, b, ldb, strideb, batch_size)

call mkl_comatcopy_batch_strided(layout, trans, row, col, alpha, a, lda, stridea, b, ldb, strideb, batch_size)

call mkl_zomatcopy_batch_strided(layout, trans, row, col, alpha, a, lda, stridea, b, ldb, strideb, batch_size)

Description

The mkl_?omatcopy_batch_strided routine performs a series of out-of-place scaled matrix copy or transposition. They are similar to the mkl_?omatcopy routine counterparts, but the mkl_?omatcopy_batch_strided routine performs matrix operations with group of matrices.

All matrices a and b have the same parameters (size, transposition operation…) and are stored at constant stride from each other respectively given by stridea and strideb. The operation is defined as

for i = 0 … batch_size – 1
    A and B are matrices at offset i * stridea in a and I * strideb in b
    B = alpha * op(A)
end for

Input Parameters

layout

CHARACTER*1. Specifies whether two-dimensional array storage is row-major or column-major .

trans

CHARACTER*1. Specifies op(A), the transposition operation applied to the AB matrices.

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

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

If trans = 'C' or 'c', op(A)=conig(A')

If trans = 'R' or 'r', op(A)=conig(A)

row

INTEGER. Specifies the number of rows of the matrices A and B. The value of row must be at least zero.

col

INTEGER. Specifies the number of columns of the matrices A and B. The value of col must be at least zero.

alpha

REAL for mkl_somatcopy_batch_strided.

DOUBLE PRECISION for mkl_domatcopy_batch_strided.

COMPLEX for mkl_comatcopy_batch_strided.

DOUBLE COMPLEX for mkl_zomatcopy_batch_strided.

Specifies the scalar alpha.

a

REAL for mkl_somatcopy_batch_strided.

DOUBLE PRECISION for mkl_domatcopy_batch_strided.

COMPLEX for mkl_comatcopy_batch_strided.

DOUBLE COMPLEX for mkl_zomatcopy_batch_strided.

Array holding all the input matrices A. Must be of size at least lda * k + stridea * (batch_size - 1) * stridea where k is col if column major is used and row otherwise.

lda

INTEGER.

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

stridea

INTEGER. Stride between two consecutive A matrices, must be at least 0.

b

REAL for mkl_somatcopy_batch_strided.

DOUBLE PRECISION for mkl_domatcopy_batch_strided.

COMPLEX for mkl_comatcopy_batch_strided.

DOUBLE COMPLEX for mkl_zomatcopy_batch_strided.

Array holding all the output matrices B. Must be of size at least batch_size * strideb. The b array must be independent from the a array.

ldb

INTEGER.

The leading dimension of the output matrix B. It must be positive and at least:

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

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

  • col otherwise

strideb

INTEGER.

Stride between two consecutive B matrices. It must be positive and at least:

  • ldb* col if column major layout is used and op(A) = A or conjg(A)

  • ldb* col if row major layout is used and op(A) = A' or conjg(A')

  • ldb*row otherwise

batch_size

Output Parameters

b

Array holding the batch_size updated matrices B.