PLASMA
Parallel Linear Algebra Software for Multicore Architectures

\( B = \alpha \;op(A)\; B \) or \( B = \alpha B \;op(A) \) where \( A \) is triangular More...

Functions

 __attribute__ ((weak))
 

Detailed Description

\( B = \alpha \;op(A)\; B \) or \( B = \alpha B \;op(A) \) where \( A \) is triangular

Function Documentation

__attribute__ ( (weak)  )

Performs a triangular matrix-matrix multiply of the form

\[B = \alpha [op(A) \times B] \]

, if side = PlasmaLeft or

\[B = \alpha [B \times op(A)] \]

, if side = PlasmaRight

where op( X ) is one of:

    - op(A) = A   or
    - op(A) = A^T or
    - op(A) = A^H

alpha is a scalar, B is an m-by-n matrix and A is a unit or non-unit, upper or lower triangular matrix.

Parameters
[in]sideSpecifies whether op( A ) appears on the left or on the right of B:
  • PlasmaLeft: alpha*op( A )*B
  • PlasmaRight: alpha*B*op( A )
[in]uploSpecifies whether the matrix A is upper triangular or lower triangular:
  • PlasmaUpper: Upper triangle of A is stored;
  • PlasmaLower: Lower triangle of A is stored.
[in]transaSpecifies whether the matrix A is transposed, not transposed or conjugate transposed:
  • PlasmaNoTrans: A is transposed;
  • PlasmaTrans: A is not transposed;
  • PlasmaConjTrans: A is conjugate transposed.
[in]diagSpecifies whether or not A is unit triangular:
  • PlasmaNonUnit: A is non-unit triangular;
  • PlasmaUnit: A is unit triangular.
[in]mThe number of rows of matrix B. m >= 0.
[in]nThe number of columns of matrix B. n >= 0.
[in]alphaThe scalar alpha.
[in]AThe triangular matrix A of dimension lda-by-k, where k is m when side='L' or 'l' and k is n when when side='R' or 'r'. If uplo = PlasmaUpper, the leading k-by-k upper triangular part of the array A contains the upper triangular matrix, and the strictly lower triangular part of A is not referenced. If uplo = PlasmaLower, the leading k-by-k lower triangular part of the array A contains the lower triangular matrix, and the strictly upper triangular part of A is not referenced. If diag = PlasmaUnit, the diagonal elements of A are also not referenced and are assumed to be 1.
[in]ldaThe leading dimension of the array A. When side='L' or 'l', lda >= max(1,m), when side='R' or 'r' then lda >= max(1,n).
[in,out]BOn entry, the matrix B of dimension ldb-by-n. On exit, the result of a triangular matrix-matrix multiply ( alpha*op(A)*B ) or ( alpha*B*op(A) ).
[in]ldbThe leading dimension of the array B. ldb >= max(1,m).

Performs a triangular matrix-matrix multiply of the form

\[B = \alpha [op(A) \times B] \]

, if side = PlasmaLeft or

\[B = \alpha [B \times op(A)] \]

, if side = PlasmaRight

where op( X ) is one of:

    - op(A) = A   or
    - op(A) = A^T or
    - op(A) = A^T

alpha is a scalar, B is an m-by-n matrix and A is a unit or non-unit, upper or lower triangular matrix.

Parameters
[in]sideSpecifies whether op( A ) appears on the left or on the right of B:
  • PlasmaLeft: alpha*op( A )*B
  • PlasmaRight: alpha*B*op( A )
[in]uploSpecifies whether the matrix A is upper triangular or lower triangular:
  • PlasmaUpper: Upper triangle of A is stored;
  • PlasmaLower: Lower triangle of A is stored.
[in]transaSpecifies whether the matrix A is transposed, not transposed or conjugate transposed:
  • PlasmaNoTrans: A is transposed;
  • PlasmaTrans: A is not transposed;
  • PlasmaConjTrans: A is conjugate transposed.
[in]diagSpecifies whether or not A is unit triangular:
  • PlasmaNonUnit: A is non-unit triangular;
  • PlasmaUnit: A is unit triangular.
[in]mThe number of rows of matrix B. m >= 0.
[in]nThe number of columns of matrix B. n >= 0.
[in]alphaThe scalar alpha.
[in]AThe triangular matrix A of dimension lda-by-k, where k is m when side='L' or 'l' and k is n when when side='R' or 'r'. If uplo = PlasmaUpper, the leading k-by-k upper triangular part of the array A contains the upper triangular matrix, and the strictly lower triangular part of A is not referenced. If uplo = PlasmaLower, the leading k-by-k lower triangular part of the array A contains the lower triangular matrix, and the strictly upper triangular part of A is not referenced. If diag = PlasmaUnit, the diagonal elements of A are also not referenced and are assumed to be 1.
[in]ldaThe leading dimension of the array A. When side='L' or 'l', lda >= max(1,m), when side='R' or 'r' then lda >= max(1,n).
[in,out]BOn entry, the matrix B of dimension ldb-by-n. On exit, the result of a triangular matrix-matrix multiply ( alpha*op(A)*B ) or ( alpha*B*op(A) ).
[in]ldbThe leading dimension of the array B. ldb >= max(1,m).