PLASMA
Parallel Linear Algebra Software for Multicore Architectures
|
\( C = op(A)^{-1} B \) or \( C = B \;op(A)^{-1} \) where \( A \) is triangular More...
Functions | |
int | plasma_ctrsm (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_ctrsm (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_dtrsm (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_dtrsm (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_strsm (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_strsm (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_ztrsm (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_ztrsm (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) |
\( C = op(A)^{-1} B \) or \( C = B \;op(A)^{-1} \) where \( A \) is triangular
int plasma_ctrsm | ( | 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 | ||
) |
Solves one of the matrix equations
\[ op( A ) \times X = \alpha B, \]
or
\[ X \times op( A ) = \alpha B, \]
where op( A ) is one of:
\[ op( A ) = A, \]
\[ op( A ) = A^T, \]
\[ op( A ) = A^H, \]
alpha is a scalar, X and B are m-by-n matrices, and A is a unit or non-unit, upper or lower triangular matrix. The matrix X overwrites B.
[in] | side |
|
[in] | uplo |
|
[in] | transa |
|
[in] | diag |
|
[in] | m | The number of rows of the matrix B. m >= 0. |
[in] | n | The number of columns of the matrix B. n >= 0. |
[in] | alpha | The scalar alpha. |
[in] | pA | The k-by-k triangular matrix, where k = m if side = PlasmaLeft, and k = n if side = PlasmaRight. 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. lda >= max(1,k). |
[in,out] | pB | On entry, the m-by-n right hand side matrix B. On exit, if return value = 0, the m-by-n solution matrix X. |
[in] | ldb | The leading dimension of the array B. ldb >= max(1,m). |
PlasmaSuccess | successful exit |
void plasma_omp_ctrsm | ( | 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 | ||
) |
Computes triangular solve. Non-blocking tile version of plasma_ctrsm(). 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 |
|
[in] | uplo |
|
[in] | transa |
|
[in] | diag |
|
[in] | alpha | The scalar alpha. |
[in] | A | Descriptor of matrix A. |
[in] | 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). Check the sequence->status for errors. |
[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_dtrsm | ( | 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 | ||
) |
Solves one of the matrix equations
\[ op( A ) \times X = \alpha B, \]
or
\[ X \times op( A ) = \alpha B, \]
where op( A ) is one of:
\[ op( A ) = A, \]
\[ op( A ) = A^T, \]
\[ op( A ) = A^T, \]
alpha is a scalar, X and B are m-by-n matrices, and A is a unit or non-unit, upper or lower triangular matrix. The matrix X overwrites B.
[in] | side |
|
[in] | uplo |
|
[in] | transa |
|
[in] | diag |
|
[in] | m | The number of rows of the matrix B. m >= 0. |
[in] | n | The number of columns of the matrix B. n >= 0. |
[in] | alpha | The scalar alpha. |
[in] | pA | The k-by-k triangular matrix, where k = m if side = PlasmaLeft, and k = n if side = PlasmaRight. 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. lda >= max(1,k). |
[in,out] | pB | On entry, the m-by-n right hand side matrix B. On exit, if return value = 0, the m-by-n solution matrix X. |
[in] | ldb | The leading dimension of the array B. ldb >= max(1,m). |
PlasmaSuccess | successful exit |
void plasma_omp_dtrsm | ( | 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 | ||
) |
Computes triangular solve. Non-blocking tile version of plasma_dtrsm(). 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 |
|
[in] | uplo |
|
[in] | transa |
|
[in] | diag |
|
[in] | alpha | The scalar alpha. |
[in] | A | Descriptor of matrix A. |
[in] | 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). Check the sequence->status for errors. |
[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_strsm | ( | 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 | ||
) |
Solves one of the matrix equations
\[ op( A ) \times X = \alpha B, \]
or
\[ X \times op( A ) = \alpha B, \]
where op( A ) is one of:
\[ op( A ) = A, \]
\[ op( A ) = A^T, \]
\[ op( A ) = A^T, \]
alpha is a scalar, X and B are m-by-n matrices, and A is a unit or non-unit, upper or lower triangular matrix. The matrix X overwrites B.
[in] | side |
|
[in] | uplo |
|
[in] | transa |
|
[in] | diag |
|
[in] | m | The number of rows of the matrix B. m >= 0. |
[in] | n | The number of columns of the matrix B. n >= 0. |
[in] | alpha | The scalar alpha. |
[in] | pA | The k-by-k triangular matrix, where k = m if side = PlasmaLeft, and k = n if side = PlasmaRight. 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. lda >= max(1,k). |
[in,out] | pB | On entry, the m-by-n right hand side matrix B. On exit, if return value = 0, the m-by-n solution matrix X. |
[in] | ldb | The leading dimension of the array B. ldb >= max(1,m). |
PlasmaSuccess | successful exit |
void plasma_omp_strsm | ( | 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 | ||
) |
Computes triangular solve. Non-blocking tile version of plasma_strsm(). 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 |
|
[in] | uplo |
|
[in] | transa |
|
[in] | diag |
|
[in] | alpha | The scalar alpha. |
[in] | A | Descriptor of matrix A. |
[in] | 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). Check the sequence->status for errors. |
[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_ztrsm | ( | 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 | ||
) |
Solves one of the matrix equations
\[ op( A ) \times X = \alpha B, \]
or
\[ X \times op( A ) = \alpha B, \]
where op( A ) is one of:
\[ op( A ) = A, \]
\[ op( A ) = A^T, \]
\[ op( A ) = A^H, \]
alpha is a scalar, X and B are m-by-n matrices, and A is a unit or non-unit, upper or lower triangular matrix. The matrix X overwrites B.
[in] | side |
|
[in] | uplo |
|
[in] | transa |
|
[in] | diag |
|
[in] | m | The number of rows of the matrix B. m >= 0. |
[in] | n | The number of columns of the matrix B. n >= 0. |
[in] | alpha | The scalar alpha. |
[in] | pA | The k-by-k triangular matrix, where k = m if side = PlasmaLeft, and k = n if side = PlasmaRight. 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. lda >= max(1,k). |
[in,out] | pB | On entry, the m-by-n right hand side matrix B. On exit, if return value = 0, the m-by-n solution matrix X. |
[in] | ldb | The leading dimension of the array B. ldb >= max(1,m). |
PlasmaSuccess | successful exit |
void plasma_omp_ztrsm | ( | 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 | ||
) |
Computes triangular solve. Non-blocking tile version of plasma_ztrsm(). 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 |
|
[in] | uplo |
|
[in] | transa |
|
[in] | diag |
|
[in] | alpha | The scalar alpha. |
[in] | A | Descriptor of matrix A. |
[in] | 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). Check the sequence->status for errors. |
[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. |