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 | |
int | plasma_ctrmm (plasma_enum_t side, plasma_enum_t uplo, plasma_enum_t transa, plasma_enum_t diag, int m, int n, plasma_complex32_t alpha, plasma_complex32_t *pA, int lda, plasma_complex32_t *pB, int ldb) |
void | plasma_omp_ctrmm (plasma_enum_t side, plasma_enum_t uplo, plasma_enum_t transa, plasma_enum_t diag, plasma_complex32_t alpha, plasma_desc_t A, plasma_desc_t B, plasma_sequence_t *sequence, plasma_request_t *request) |
int | plasma_dtrmm (plasma_enum_t side, plasma_enum_t uplo, plasma_enum_t transa, plasma_enum_t diag, int m, int n, double alpha, double *pA, int lda, double *pB, int ldb) |
void | plasma_omp_dtrmm (plasma_enum_t side, plasma_enum_t uplo, plasma_enum_t transa, plasma_enum_t diag, double alpha, plasma_desc_t A, plasma_desc_t B, plasma_sequence_t *sequence, plasma_request_t *request) |
int | plasma_strmm (plasma_enum_t side, plasma_enum_t uplo, plasma_enum_t transa, plasma_enum_t diag, int m, int n, float alpha, float *pA, int lda, float *pB, int ldb) |
void | plasma_omp_strmm (plasma_enum_t side, plasma_enum_t uplo, plasma_enum_t transa, plasma_enum_t diag, float alpha, plasma_desc_t A, plasma_desc_t B, plasma_sequence_t *sequence, plasma_request_t *request) |
int | plasma_ztrmm (plasma_enum_t side, plasma_enum_t uplo, plasma_enum_t transa, plasma_enum_t diag, int m, int n, plasma_complex64_t alpha, plasma_complex64_t *pA, int lda, plasma_complex64_t *pB, int ldb) |
void | plasma_omp_ztrmm (plasma_enum_t side, plasma_enum_t uplo, plasma_enum_t transa, plasma_enum_t diag, plasma_complex64_t alpha, plasma_desc_t A, plasma_desc_t B, plasma_sequence_t *sequence, plasma_request_t *request) |
\( B = \alpha \;op(A)\; B \) or \( B = \alpha B \;op(A) \) where \( A \) is triangular
int plasma_ctrmm | ( | plasma_enum_t | side, |
plasma_enum_t | uplo, | ||
plasma_enum_t | transa, | ||
plasma_enum_t | diag, | ||
int | m, | ||
int | n, | ||
plasma_complex32_t | alpha, | ||
plasma_complex32_t * | pA, | ||
int | lda, | ||
plasma_complex32_t * | pB, | ||
int | ldb | ||
) |
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.
[in] | side | Specifies whether op( A ) appears on the left or on the right of B:
|
[in] | uplo | Specifies whether the matrix A is upper triangular or lower triangular:
|
[in] | transa | Specifies whether the matrix A is transposed, not transposed or conjugate transposed:
|
[in] | diag | Specifies whether or not A is unit triangular:
|
[in] | m | The number of rows of matrix B. m >= 0. |
[in] | n | The number of columns of matrix B. n >= 0. |
[in] | alpha | The scalar alpha. |
[in] | pA | The 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] | lda | The 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] | pB | On 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] | ldb | The leading dimension of the array B. ldb >= max(1,m). |
PlasmaSuccess | successful exit |
void plasma_omp_ctrmm | ( | plasma_enum_t | side, |
plasma_enum_t | uplo, | ||
plasma_enum_t | transa, | ||
plasma_enum_t | diag, | ||
plasma_complex32_t | alpha, | ||
plasma_desc_t | A, | ||
plasma_desc_t | B, | ||
plasma_sequence_t * | sequence, | ||
plasma_request_t * | request | ||
) |
Performs triangular matrix multiplication. Non-blocking tile version of plasma_ctrmm(). May return before the computation is finished. Operates on matrices stored by tiles. All matrices are passed through descriptors. All dimensions are taken from the descriptors. Allows for pipelining of operations at runtime.
[in] | side | Specifies whether op( A ) appears on the left or on the right of B:
|
[in] | uplo | Specifies whether the matrix A is upper triangular or lower triangular:
|
[in] | transa | Specifies whether the matrix A is transposed, not transposed or conjugate transposed:
|
[in] | diag | Specifies whether or not A is unit triangular:
|
[in] | alpha | The scalar alpha. |
[in] | A | Descriptor of the triangular matrix A. |
[in,out] | B | Descriptor of matrix B. |
[in] | sequence | Identifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes). |
[out] | request | Identifies this function call (for exception handling purposes). |
void | Errors are returned by setting sequence->status and request->status to error values. The sequence->status and request->status should never be set to PlasmaSuccess (the initial values) since another async call may be setting a failure value at the same time. |
int plasma_dtrmm | ( | plasma_enum_t | side, |
plasma_enum_t | uplo, | ||
plasma_enum_t | transa, | ||
plasma_enum_t | diag, | ||
int | m, | ||
int | n, | ||
double | alpha, | ||
double * | pA, | ||
int | lda, | ||
double * | pB, | ||
int | ldb | ||
) |
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.
[in] | side | Specifies whether op( A ) appears on the left or on the right of B:
|
[in] | uplo | Specifies whether the matrix A is upper triangular or lower triangular:
|
[in] | transa | Specifies whether the matrix A is transposed, not transposed or conjugate transposed:
|
[in] | diag | Specifies whether or not A is unit triangular:
|
[in] | m | The number of rows of matrix B. m >= 0. |
[in] | n | The number of columns of matrix B. n >= 0. |
[in] | alpha | The scalar alpha. |
[in] | pA | The 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] | lda | The 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] | pB | On 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] | ldb | The leading dimension of the array B. ldb >= max(1,m). |
PlasmaSuccess | successful exit |
void plasma_omp_dtrmm | ( | plasma_enum_t | side, |
plasma_enum_t | uplo, | ||
plasma_enum_t | transa, | ||
plasma_enum_t | diag, | ||
double | alpha, | ||
plasma_desc_t | A, | ||
plasma_desc_t | B, | ||
plasma_sequence_t * | sequence, | ||
plasma_request_t * | request | ||
) |
Performs triangular matrix multiplication. Non-blocking tile version of plasma_dtrmm(). May return before the computation is finished. Operates on matrices stored by tiles. All matrices are passed through descriptors. All dimensions are taken from the descriptors. Allows for pipelining of operations at runtime.
[in] | side | Specifies whether op( A ) appears on the left or on the right of B:
|
[in] | uplo | Specifies whether the matrix A is upper triangular or lower triangular:
|
[in] | transa | Specifies whether the matrix A is transposed, not transposed or conjugate transposed:
|
[in] | diag | Specifies whether or not A is unit triangular:
|
[in] | alpha | The scalar alpha. |
[in] | A | Descriptor of the triangular matrix A. |
[in,out] | B | Descriptor of matrix B. |
[in] | sequence | Identifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes). |
[out] | request | Identifies this function call (for exception handling purposes). |
void | Errors are returned by setting sequence->status and request->status to error values. The sequence->status and request->status should never be set to PlasmaSuccess (the initial values) since another async call may be setting a failure value at the same time. |
int plasma_strmm | ( | plasma_enum_t | side, |
plasma_enum_t | uplo, | ||
plasma_enum_t | transa, | ||
plasma_enum_t | diag, | ||
int | m, | ||
int | n, | ||
float | alpha, | ||
float * | pA, | ||
int | lda, | ||
float * | pB, | ||
int | ldb | ||
) |
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.
[in] | side | Specifies whether op( A ) appears on the left or on the right of B:
|
[in] | uplo | Specifies whether the matrix A is upper triangular or lower triangular:
|
[in] | transa | Specifies whether the matrix A is transposed, not transposed or conjugate transposed:
|
[in] | diag | Specifies whether or not A is unit triangular:
|
[in] | m | The number of rows of matrix B. m >= 0. |
[in] | n | The number of columns of matrix B. n >= 0. |
[in] | alpha | The scalar alpha. |
[in] | pA | The 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] | lda | The 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] | pB | On 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] | ldb | The leading dimension of the array B. ldb >= max(1,m). |
PlasmaSuccess | successful exit |
void plasma_omp_strmm | ( | plasma_enum_t | side, |
plasma_enum_t | uplo, | ||
plasma_enum_t | transa, | ||
plasma_enum_t | diag, | ||
float | alpha, | ||
plasma_desc_t | A, | ||
plasma_desc_t | B, | ||
plasma_sequence_t * | sequence, | ||
plasma_request_t * | request | ||
) |
Performs triangular matrix multiplication. Non-blocking tile version of plasma_strmm(). May return before the computation is finished. Operates on matrices stored by tiles. All matrices are passed through descriptors. All dimensions are taken from the descriptors. Allows for pipelining of operations at runtime.
[in] | side | Specifies whether op( A ) appears on the left or on the right of B:
|
[in] | uplo | Specifies whether the matrix A is upper triangular or lower triangular:
|
[in] | transa | Specifies whether the matrix A is transposed, not transposed or conjugate transposed:
|
[in] | diag | Specifies whether or not A is unit triangular:
|
[in] | alpha | The scalar alpha. |
[in] | A | Descriptor of the triangular matrix A. |
[in,out] | B | Descriptor of matrix B. |
[in] | sequence | Identifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes). |
[out] | request | Identifies this function call (for exception handling purposes). |
void | Errors are returned by setting sequence->status and request->status to error values. The sequence->status and request->status should never be set to PlasmaSuccess (the initial values) since another async call may be setting a failure value at the same time. |
int plasma_ztrmm | ( | plasma_enum_t | side, |
plasma_enum_t | uplo, | ||
plasma_enum_t | transa, | ||
plasma_enum_t | diag, | ||
int | m, | ||
int | n, | ||
plasma_complex64_t | alpha, | ||
plasma_complex64_t * | pA, | ||
int | lda, | ||
plasma_complex64_t * | pB, | ||
int | ldb | ||
) |
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.
[in] | side | Specifies whether op( A ) appears on the left or on the right of B:
|
[in] | uplo | Specifies whether the matrix A is upper triangular or lower triangular:
|
[in] | transa | Specifies whether the matrix A is transposed, not transposed or conjugate transposed:
|
[in] | diag | Specifies whether or not A is unit triangular:
|
[in] | m | The number of rows of matrix B. m >= 0. |
[in] | n | The number of columns of matrix B. n >= 0. |
[in] | alpha | The scalar alpha. |
[in] | pA | The 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] | lda | The 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] | pB | On 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] | ldb | The leading dimension of the array B. ldb >= max(1,m). |
PlasmaSuccess | successful exit |
void plasma_omp_ztrmm | ( | plasma_enum_t | side, |
plasma_enum_t | uplo, | ||
plasma_enum_t | transa, | ||
plasma_enum_t | diag, | ||
plasma_complex64_t | alpha, | ||
plasma_desc_t | A, | ||
plasma_desc_t | B, | ||
plasma_sequence_t * | sequence, | ||
plasma_request_t * | request | ||
) |
Performs triangular matrix multiplication. Non-blocking tile version of plasma_ztrmm(). May return before the computation is finished. Operates on matrices stored by tiles. All matrices are passed through descriptors. All dimensions are taken from the descriptors. Allows for pipelining of operations at runtime.
[in] | side | Specifies whether op( A ) appears on the left or on the right of B:
|
[in] | uplo | Specifies whether the matrix A is upper triangular or lower triangular:
|
[in] | transa | Specifies whether the matrix A is transposed, not transposed or conjugate transposed:
|
[in] | diag | Specifies whether or not A is unit triangular:
|
[in] | alpha | The scalar alpha. |
[in] | A | Descriptor of the triangular matrix A. |
[in,out] | B | Descriptor of matrix B. |
[in] | sequence | Identifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes). |
[out] | request | Identifies this function call (for exception handling purposes). |
void | Errors are returned by setting sequence->status and request->status to error values. The sequence->status and request->status should never be set to PlasmaSuccess (the initial values) since another async call may be setting a failure value at the same time. |