Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
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

call mkl_simatcopy_batch_strided(layout, trans, row, col, alpha, ab, lda, ldb, stride, batch_size)

call mkl_dimatcopy_batch_strided(layout, trans, row, col, alpha, ab, lda, ldb, stride, batch_size)

call mkl_cimatcopy_batch_strided(layout, trans, row, col, alpha, ab, lda, ldb, stride, batch_size)

call mkl_zimatcopy_batch_strided(layout, trans, row, col, alpha, ab, lda, ldb, stride, 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

CHARACTER*1.

Specifies whether two-dimensional array storage is row-major or column-major

trans

CHARACTER*1. 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

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

col

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

alpha

REAL for mkl_simatcopy_batch_strided.

DOUBLE PRECISION for mkl_dimatcopy_batch_strided.

COMPLEX for mkl_cimatcopy_batch_strided.

DOUBLE COMPLEX for mkl_zimatcopy_batch_strided.

Specifies the scalar alpha.

ab

REAL for mkl_simatcopy_batch_strided.

DOUBLE PRECISION for mkl_dimatcopy_batch_strided.

COMPLEX for mkl_cimatcopy_batch_strided.

DOUBLE COMPLEX for mkl_zimatcopy_batch_strided.

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

lda

INTEGER. 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

INTEGER. 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

INTEGER. 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

INTEGER. 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.