PLASMA
Parallel Linear Algebra Software for Multicore Architectures

\( A = A^{-1} \) where \( A \) is triangular More...

Functions

int plasma_ctrtri (plasma_enum_t uplo, plasma_enum_t diag, int n, plasma_complex32_t *pA, int lda)
 
void plasma_omp_ctrtri (plasma_enum_t uplo, plasma_enum_t diag, plasma_desc_t A, plasma_sequence_t *sequence, plasma_request_t *request)
 
int plasma_dtrtri (plasma_enum_t uplo, plasma_enum_t diag, int n, double *pA, int lda)
 
void plasma_omp_dtrtri (plasma_enum_t uplo, plasma_enum_t diag, plasma_desc_t A, plasma_sequence_t *sequence, plasma_request_t *request)
 
int plasma_strtri (plasma_enum_t uplo, plasma_enum_t diag, int n, float *pA, int lda)
 
void plasma_omp_strtri (plasma_enum_t uplo, plasma_enum_t diag, plasma_desc_t A, plasma_sequence_t *sequence, plasma_request_t *request)
 
int plasma_ztrtri (plasma_enum_t uplo, plasma_enum_t diag, int n, plasma_complex64_t *pA, int lda)
 
void plasma_omp_ztrtri (plasma_enum_t uplo, plasma_enum_t diag, plasma_desc_t A, plasma_sequence_t *sequence, plasma_request_t *request)
 

Detailed Description

\( A = A^{-1} \) where \( A \) is triangular

Function Documentation

int plasma_ctrtri ( plasma_enum_t  uplo,
plasma_enum_t  diag,
int  n,
plasma_complex32_t *  pA,
int  lda 
)

Computes the inverse of an upper or lower triangular matrix A.

Parameters
[in]uplo
  • PlasmaUpper: Upper triangle of A is stored;
  • PlasmaLower: Lower triangle of A is stored.
[in]diag
  • PlasmaNonUnit: A is non-unit triangular;
  • PlasmaUnit: A is unit triangular.
[in]nThe order of the matrix A. n >= 0.
[in,out]pAOn entry, the triangular matrix A. If uplo = 'U', the leading n-by-n 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 = 'L', the leading n-by-n 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 = 'U', the diagonal elements of A are also not referenced and are assumed to be 1. On exit, the (triangular) inverse of the original matrix, in the same storage format.
[in]ldaThe leading dimension of the array A. lda >= max(1,n).
Return values
PlasmaSuccesssuccessful exit.
<0 if -i, the i-th argument had an illegal value.
>0 if i, A(i,i) is exactly zero. The triangular matrix is singular and its inverse can not be computed.
See also
plasma_ctrtri
plasma_dtrtri
plasma_strtri
void plasma_omp_ctrtri ( plasma_enum_t  uplo,
plasma_enum_t  diag,
plasma_desc_t  A,
plasma_sequence_t *  sequence,
plasma_request_t *  request 
)

Computes the inverse of a complex upper or lower triangular matrix A.

Parameters
[in]uplo
  • PlasmaUpper: Upper triangle of A is stored;
  • PlasmaLower: Lower triangle of A is stored.
[in]diag
  • PlasmaNonUnit: A is non-unit triangular;
  • PlasmaUnit: A is unit triangular.
[in]AOn entry, the triangular matrix A. If uplo = 'U', the leading n-by-n 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 = 'L', the leading n-by-n 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 = 'U', the diagonal elements of A are also not referenced and are assumed to be 1. On exit, the (triangular) inverse of the original matrix, in the same storage format.
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes). Check the sequence->status for errors.
[out]requestIdentifies this function call (for exception handling purposes).
Return values
voidErrors 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.
See also
plasma_ctrtri
plasma_omp_ctrtri
plasma_omp_ctrtri
plasma_omp_dtrtri
plasma_omp_strtri
int plasma_dtrtri ( plasma_enum_t  uplo,
plasma_enum_t  diag,
int  n,
double *  pA,
int  lda 
)

Computes the inverse of an upper or lower triangular matrix A.

Parameters
[in]uplo
  • PlasmaUpper: Upper triangle of A is stored;
  • PlasmaLower: Lower triangle of A is stored.
[in]diag
  • PlasmaNonUnit: A is non-unit triangular;
  • PlasmaUnit: A is unit triangular.
[in]nThe order of the matrix A. n >= 0.
[in,out]pAOn entry, the triangular matrix A. If uplo = 'U', the leading n-by-n 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 = 'L', the leading n-by-n 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 = 'U', the diagonal elements of A are also not referenced and are assumed to be 1. On exit, the (triangular) inverse of the original matrix, in the same storage format.
[in]ldaThe leading dimension of the array A. lda >= max(1,n).
Return values
PlasmaSuccesssuccessful exit.
<0 if -i, the i-th argument had an illegal value.
>0 if i, A(i,i) is exactly zero. The triangular matrix is singular and its inverse can not be computed.
See also
plasma_ctrtri
plasma_dtrtri
plasma_strtri
void plasma_omp_dtrtri ( plasma_enum_t  uplo,
plasma_enum_t  diag,
plasma_desc_t  A,
plasma_sequence_t *  sequence,
plasma_request_t *  request 
)

Computes the inverse of a complex upper or lower triangular matrix A.

Parameters
[in]uplo
  • PlasmaUpper: Upper triangle of A is stored;
  • PlasmaLower: Lower triangle of A is stored.
[in]diag
  • PlasmaNonUnit: A is non-unit triangular;
  • PlasmaUnit: A is unit triangular.
[in]AOn entry, the triangular matrix A. If uplo = 'U', the leading n-by-n 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 = 'L', the leading n-by-n 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 = 'U', the diagonal elements of A are also not referenced and are assumed to be 1. On exit, the (triangular) inverse of the original matrix, in the same storage format.
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes). Check the sequence->status for errors.
[out]requestIdentifies this function call (for exception handling purposes).
Return values
voidErrors 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.
See also
plasma_dtrtri
plasma_omp_dtrtri
plasma_omp_ctrtri
plasma_omp_dtrtri
plasma_omp_strtri
int plasma_strtri ( plasma_enum_t  uplo,
plasma_enum_t  diag,
int  n,
float *  pA,
int  lda 
)

Computes the inverse of an upper or lower triangular matrix A.

Parameters
[in]uplo
  • PlasmaUpper: Upper triangle of A is stored;
  • PlasmaLower: Lower triangle of A is stored.
[in]diag
  • PlasmaNonUnit: A is non-unit triangular;
  • PlasmaUnit: A is unit triangular.
[in]nThe order of the matrix A. n >= 0.
[in,out]pAOn entry, the triangular matrix A. If uplo = 'U', the leading n-by-n 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 = 'L', the leading n-by-n 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 = 'U', the diagonal elements of A are also not referenced and are assumed to be 1. On exit, the (triangular) inverse of the original matrix, in the same storage format.
[in]ldaThe leading dimension of the array A. lda >= max(1,n).
Return values
PlasmaSuccesssuccessful exit.
<0 if -i, the i-th argument had an illegal value.
>0 if i, A(i,i) is exactly zero. The triangular matrix is singular and its inverse can not be computed.
See also
plasma_ctrtri
plasma_dtrtri
plasma_strtri
void plasma_omp_strtri ( plasma_enum_t  uplo,
plasma_enum_t  diag,
plasma_desc_t  A,
plasma_sequence_t *  sequence,
plasma_request_t *  request 
)

Computes the inverse of a complex upper or lower triangular matrix A.

Parameters
[in]uplo
  • PlasmaUpper: Upper triangle of A is stored;
  • PlasmaLower: Lower triangle of A is stored.
[in]diag
  • PlasmaNonUnit: A is non-unit triangular;
  • PlasmaUnit: A is unit triangular.
[in]AOn entry, the triangular matrix A. If uplo = 'U', the leading n-by-n 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 = 'L', the leading n-by-n 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 = 'U', the diagonal elements of A are also not referenced and are assumed to be 1. On exit, the (triangular) inverse of the original matrix, in the same storage format.
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes). Check the sequence->status for errors.
[out]requestIdentifies this function call (for exception handling purposes).
Return values
voidErrors 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.
See also
plasma_strtri
plasma_omp_strtri
plasma_omp_ctrtri
plasma_omp_dtrtri
plasma_omp_strtri
int plasma_ztrtri ( plasma_enum_t  uplo,
plasma_enum_t  diag,
int  n,
plasma_complex64_t *  pA,
int  lda 
)

Computes the inverse of an upper or lower triangular matrix A.

Parameters
[in]uplo
  • PlasmaUpper: Upper triangle of A is stored;
  • PlasmaLower: Lower triangle of A is stored.
[in]diag
  • PlasmaNonUnit: A is non-unit triangular;
  • PlasmaUnit: A is unit triangular.
[in]nThe order of the matrix A. n >= 0.
[in,out]pAOn entry, the triangular matrix A. If uplo = 'U', the leading n-by-n 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 = 'L', the leading n-by-n 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 = 'U', the diagonal elements of A are also not referenced and are assumed to be 1. On exit, the (triangular) inverse of the original matrix, in the same storage format.
[in]ldaThe leading dimension of the array A. lda >= max(1,n).
Return values
PlasmaSuccesssuccessful exit.
<0 if -i, the i-th argument had an illegal value.
>0 if i, A(i,i) is exactly zero. The triangular matrix is singular and its inverse can not be computed.
See also
plasma_ctrtri
plasma_dtrtri
plasma_strtri
void plasma_omp_ztrtri ( plasma_enum_t  uplo,
plasma_enum_t  diag,
plasma_desc_t  A,
plasma_sequence_t *  sequence,
plasma_request_t *  request 
)

Computes the inverse of a complex upper or lower triangular matrix A.

Parameters
[in]uplo
  • PlasmaUpper: Upper triangle of A is stored;
  • PlasmaLower: Lower triangle of A is stored.
[in]diag
  • PlasmaNonUnit: A is non-unit triangular;
  • PlasmaUnit: A is unit triangular.
[in]AOn entry, the triangular matrix A. If uplo = 'U', the leading n-by-n 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 = 'L', the leading n-by-n 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 = 'U', the diagonal elements of A are also not referenced and are assumed to be 1. On exit, the (triangular) inverse of the original matrix, in the same storage format.
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes). Check the sequence->status for errors.
[out]requestIdentifies this function call (for exception handling purposes).
Return values
voidErrors 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.
See also
plasma_ztrtri
plasma_omp_ztrtri
plasma_omp_ctrtri
plasma_omp_dtrtri
plasma_omp_strtri