MAGMA  2.7.1
Matrix Algebra for GPU and Multicore Architectures
 All Classes Files Functions Friends Groups Pages
trtri: Triangular inverse; used in getri, potri

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

Functions

void magmablas_ctrtri_diag_vbatched (magma_uplo_t uplo, magma_diag_t diag, magma_int_t nmax, magma_int_t *n, magmaFloatComplex const *const *dA_array, magma_int_t *ldda, magmaFloatComplex **dinvA_array, magma_int_t resetozero, magma_int_t batchCount, magma_queue_t queue)
 ctrtri_diag inverts the NB x NB diagonal blocks of A. More...
 
void magmablas_dtrtri_diag_vbatched (magma_uplo_t uplo, magma_diag_t diag, magma_int_t nmax, magma_int_t *n, double const *const *dA_array, magma_int_t *ldda, double **dinvA_array, magma_int_t resetozero, magma_int_t batchCount, magma_queue_t queue)
 dtrtri_diag inverts the NB x NB diagonal blocks of A. More...
 
void magmablas_strtri_diag_vbatched (magma_uplo_t uplo, magma_diag_t diag, magma_int_t nmax, magma_int_t *n, float const *const *dA_array, magma_int_t *ldda, float **dinvA_array, magma_int_t resetozero, magma_int_t batchCount, magma_queue_t queue)
 strtri_diag inverts the NB x NB diagonal blocks of A. More...
 
void magmablas_ztrtri_diag_vbatched (magma_uplo_t uplo, magma_diag_t diag, magma_int_t nmax, magma_int_t *n, magmaDoubleComplex const *const *dA_array, magma_int_t *ldda, magmaDoubleComplex **dinvA_array, magma_int_t resetozero, magma_int_t batchCount, magma_queue_t queue)
 ztrtri_diag inverts the NB x NB diagonal blocks of A. More...
 

Detailed Description

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

Function Documentation

void magmablas_ctrtri_diag_vbatched ( magma_uplo_t  uplo,
magma_diag_t  diag,
magma_int_t  nmax,
magma_int_t *  n,
magmaFloatComplex const *const *  dA_array,
magma_int_t *  ldda,
magmaFloatComplex **  dinvA_array,
magma_int_t  resetozero,
magma_int_t  batchCount,
magma_queue_t  queue 
)

ctrtri_diag inverts the NB x NB diagonal blocks of A.

Parameters
[in]uplomagma_uplo_t. On entry, uplo specifies whether the matrix A is an upper or lower triangular matrix as follows:
  • = MagmaUpper: A is an upper triangular matrix.
  • = MagmaLower: A is a lower triangular matrix.
[in]diagmagma_diag_t. On entry, diag specifies whether or not A is unit triangular as follows:
  • = MagmaUnit: A is assumed to be unit triangular.
  • = MagmaNonUnit: A is not assumed to be unit triangular.
[in]nmaxINTEGER. maximum value of n.
[in]nINTEGER array, dimension(batchCount) On entry, each entry specifies the order of the corresponding matrix A. N >= 0.
[in]dA_arrayCOMPLEX array of dimension ( ldda, n ) The triangular matrix A.
If UPLO = 'U', the leading N-by-N upper triangular part of 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 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.
[in]lddaINTEGER. The leading dimension of the array A. LDDA >= max(1,N).
[out]dinvA_arrayCOMPLEX array of dimension (NB, ceil(n/NB)*NB), where NB = 128. On exit, contains inverses of the NB-by-NB diagonal blocks of A.
[in]resetozeroINTEGER If not zero, each array dinvA will be reset to all zeros
[in]batchCountINTEGER The number of matrices to operate on.
[in]queuemagma_queue_t Queue to execute in.
void magmablas_dtrtri_diag_vbatched ( magma_uplo_t  uplo,
magma_diag_t  diag,
magma_int_t  nmax,
magma_int_t *  n,
double const *const *  dA_array,
magma_int_t *  ldda,
double **  dinvA_array,
magma_int_t  resetozero,
magma_int_t  batchCount,
magma_queue_t  queue 
)

dtrtri_diag inverts the NB x NB diagonal blocks of A.

Parameters
[in]uplomagma_uplo_t. On entry, uplo specifies whether the matrix A is an upper or lower triangular matrix as follows:
  • = MagmaUpper: A is an upper triangular matrix.
  • = MagmaLower: A is a lower triangular matrix.
[in]diagmagma_diag_t. On entry, diag specifies whether or not A is unit triangular as follows:
  • = MagmaUnit: A is assumed to be unit triangular.
  • = MagmaNonUnit: A is not assumed to be unit triangular.
[in]nmaxINTEGER. maximum value of n.
[in]nINTEGER array, dimension(batchCount) On entry, each entry specifies the order of the corresponding matrix A. N >= 0.
[in]dA_arrayDOUBLE PRECISION array of dimension ( ldda, n ) The triangular matrix A.
If UPLO = 'U', the leading N-by-N upper triangular part of 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 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.
[in]lddaINTEGER. The leading dimension of the array A. LDDA >= max(1,N).
[out]dinvA_arrayDOUBLE PRECISION array of dimension (NB, ceil(n/NB)*NB), where NB = 128. On exit, contains inverses of the NB-by-NB diagonal blocks of A.
[in]resetozeroINTEGER If not zero, each array dinvA will be reset to all zeros
[in]batchCountINTEGER The number of matrices to operate on.
[in]queuemagma_queue_t Queue to execute in.
void magmablas_strtri_diag_vbatched ( magma_uplo_t  uplo,
magma_diag_t  diag,
magma_int_t  nmax,
magma_int_t *  n,
float const *const *  dA_array,
magma_int_t *  ldda,
float **  dinvA_array,
magma_int_t  resetozero,
magma_int_t  batchCount,
magma_queue_t  queue 
)

strtri_diag inverts the NB x NB diagonal blocks of A.

Parameters
[in]uplomagma_uplo_t. On entry, uplo specifies whether the matrix A is an upper or lower triangular matrix as follows:
  • = MagmaUpper: A is an upper triangular matrix.
  • = MagmaLower: A is a lower triangular matrix.
[in]diagmagma_diag_t. On entry, diag specifies whether or not A is unit triangular as follows:
  • = MagmaUnit: A is assumed to be unit triangular.
  • = MagmaNonUnit: A is not assumed to be unit triangular.
[in]nmaxINTEGER. maximum value of n.
[in]nINTEGER array, dimension(batchCount) On entry, each entry specifies the order of the corresponding matrix A. N >= 0.
[in]dA_arrayREAL array of dimension ( ldda, n ) The triangular matrix A.
If UPLO = 'U', the leading N-by-N upper triangular part of 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 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.
[in]lddaINTEGER. The leading dimension of the array A. LDDA >= max(1,N).
[out]dinvA_arrayREAL array of dimension (NB, ceil(n/NB)*NB), where NB = 128. On exit, contains inverses of the NB-by-NB diagonal blocks of A.
[in]resetozeroINTEGER If not zero, each array dinvA will be reset to all zeros
[in]batchCountINTEGER The number of matrices to operate on.
[in]queuemagma_queue_t Queue to execute in.
void magmablas_ztrtri_diag_vbatched ( magma_uplo_t  uplo,
magma_diag_t  diag,
magma_int_t  nmax,
magma_int_t *  n,
magmaDoubleComplex const *const *  dA_array,
magma_int_t *  ldda,
magmaDoubleComplex **  dinvA_array,
magma_int_t  resetozero,
magma_int_t  batchCount,
magma_queue_t  queue 
)

ztrtri_diag inverts the NB x NB diagonal blocks of A.

Parameters
[in]uplomagma_uplo_t. On entry, uplo specifies whether the matrix A is an upper or lower triangular matrix as follows:
  • = MagmaUpper: A is an upper triangular matrix.
  • = MagmaLower: A is a lower triangular matrix.
[in]diagmagma_diag_t. On entry, diag specifies whether or not A is unit triangular as follows:
  • = MagmaUnit: A is assumed to be unit triangular.
  • = MagmaNonUnit: A is not assumed to be unit triangular.
[in]nmaxINTEGER. maximum value of n.
[in]nINTEGER array, dimension(batchCount) On entry, each entry specifies the order of the corresponding matrix A. N >= 0.
[in]dA_arrayCOMPLEX_16 array of dimension ( ldda, n ) The triangular matrix A.
If UPLO = 'U', the leading N-by-N upper triangular part of 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 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.
[in]lddaINTEGER. The leading dimension of the array A. LDDA >= max(1,N).
[out]dinvA_arrayCOMPLEX_16 array of dimension (NB, ceil(n/NB)*NB), where NB = 128. On exit, contains inverses of the NB-by-NB diagonal blocks of A.
[in]resetozeroINTEGER If not zero, each array dinvA will be reset to all zeros
[in]batchCountINTEGER The number of matrices to operate on.
[in]queuemagma_queue_t Queue to execute in.