mkl_?imatcopy

Performs scaling and in-place transposition/copying of matrices.

Syntax

Fortran:

call mkl_simatcopy(ordering, trans, rows, cols, alpha, a, src_lda, dst_lda)

call mkl_dimatcopy(ordering, trans, rows, cols, alpha, a, src_lda, dst_lda)

call mkl_cimatcopy(ordering, trans, rows, cols, alpha, a, src_lda, dst_lda)

call mkl_zimatcopy(ordering, trans, rows, cols, alpha, a, src_lda, dst_lda)

C:

mkl_simatcopy(ordering, trans, rows, cols, alpha, a, src_lda, dst_lda);

mkl_dimatcopy(ordering, trans, rows, cols, alpha, a, src_lda, dst_lda);

mkl_cimatcopy(ordering, trans, rows, cols, alpha, a, src_lda, dst_lda);

mkl_zimatcopy(ordering, trans, rows, cols, alpha, a, src_lda, dst_lda);

Include Files

The FORTRAN 77 interfaces are specified in the mkl_trans.fi include file and the C interfaces are specified in the mkl_trans.h include file. Always reference mkl_trans.h for the C interface correct resolution.

Description

The mkl_?imatcopy routine performs scaling and in-place transposition/copying of matrices. A transposition operation can be a normal matrix copy, a transposition, a conjugate transposition, or just a conjugation. The operation is defined as follows:

A := alpha*op(A).

The routine parameter descriptions are common for all implemented interfaces with the exception of data types that refer here to the FORTRAN 77 standard types. Data types specific to the different interfaces are described in the section "Interfaces" below.

Note that different arrays should not overlap.

Input Parameters

ordering

CHARACTER*1. Ordering of the matrix storage.

If ordering = 'R' or 'r', the ordering is row-major.

If ordering = 'C' or 'c', the ordering is column-major.

trans

CHARACTER*1. Parameter that specifies the operation type.

If trans = 'N' or 'n', op(A)=A and the matrix A is assumed unchanged on input.

If trans = 'T' or 't', it is assumed that A should be transposed.

If trans = 'C' or 'c', it is assumed that A should be conjugate transposed.

If trans = 'R' or 'r', it is assumed that A should be only conjugated.

If the data is real, then trans = 'R' is the same as trans = 'N', and trans = 'C' is the same as trans = 'T'.

rows

INTEGER. The number of matrix rows.

cols

INTEGER. The number of matrix columns.

a

REAL for mkl_simatcopy.

DOUBLE PRECISION for mkl_dimatcopy.

COMPLEX for mkl_cimatcopy.

DOUBLE COMPLEX for mkl_zimatcopy.

Array, DIMENSION a(scr_lda,*).

alpha

REAL for mkl_simatcopy.

DOUBLE PRECISION for mkl_dimatcopy.

COMPLEX for mkl_cimatcopy.

DOUBLE COMPLEX for mkl_zimatcopy.

This parameter scales the input matrix by alpha.

src_lda

INTEGER. Distance between the first elements in adjacent columns (in the case of the column-major order) or rows (in the case of the row-major order) in the source matrix; measured in the number of elements.

This parameter must be at least max(1,rows) if ordering = 'C' or 'c', and max(1,cols) otherwise.

dst_lda

INTEGER. Distance between the first elements in adjacent columns (in the case of the column-major order) or rows (in the case of the row-major order) in the destination matrix; measured in the number of elements.

To determine the minimum value of dst_lda on output, consider the following guideline:

If ordering = 'C' or 'c', then

  • If trans = 'T' or 't' or 'C' or 'c', this parameter must be at least max(1,rows)

  • If trans = 'N' or 'n' or 'R' or 'r', this parameter must be at least max(1,cols)

If ordering = 'R' or 'r', then

  • If trans = 'T' or 't' or 'C' or 'c', this parameter must be at least max(1,cols)

  • If trans = 'N' or 'n' or 'R' or 'r', this parameter must be at least max(1,rows)

Output Parameters

a

REAL for mkl_simatcopy.

DOUBLE PRECISION for mkl_dimatcopy.

COMPLEX for mkl_cimatcopy.

DOUBLE COMPLEX for mkl_zimatcopy.

Array, DIMENSION at least m.

Contains the matrix A.

Interfaces

FORTRAN 77:

SUBROUTINE mkl_simatcopy ( ordering, trans, rows, cols, alpha, a, src_lda, dst_lda )
   CHARACTER*1 ordering, trans
   INTEGER rows, cols, src_ld, dst_ld
   REAL a(*), alpha*

SUBROUTINE mkl_dimatcopy ( ordering, trans, rows, cols, alpha, a, src_lda, dst_lda )
   CHARACTER*1 ordering, trans
   INTEGER rows, cols, src_ld, dst_ld
   DOUBLE PRECISION a(*), alpha*

SUBROUTINE mkl_cimatcopy ( ordering, trans, rows, cols, alpha, a, src_lda, dst_lda )
   CHARACTER*1 ordering, trans
   INTEGER rows, cols, src_ld, dst_ld
   COMPLEX a(*), alpha*

SUBROUTINE mkl_zimatcopy ( ordering, trans, rows, cols, alpha, a, src_lda, dst_lda )
   CHARACTER*1 ordering, trans
   INTEGER rows, cols, src_ld, dst_ld
   DOUBLE COMPLEX a(*), alpha*

C:

void mkl_simatcopy(char ordering, char trans, size_t rows, size_t cols, float *alpha, float *a, size_t src_lda, size_t dst_lda);

void mkl_dimatcopy(char ordering, char trans, size_t rows, size_t cols, double *alpha, float *a, size_t src_lda, size_t dst_lda);

void mkl_cimatcopy(char ordering, char trans, size_t rows, size_t cols, MKL_Complex8 *alpha, MKL_Complex8 *a, size_t src_lda, size_t dst_lda);

void mkl_zimatcopy(char ordering, char trans, size_t rows, size_t cols, MKL_Complex16 *alpha, MKL_Complex16 *a, size_t src_lda, size_t dst_lda);

Submit feedback on this help topic

Copyright © 1994 - 2011, Intel Corporation. All rights reserved.