Loading...
Searching...
No Matches
trtri: Triangular inverse; used in getri, potri
Batched LA » MAGMA BLAS and Auxiliary » Level 3: matrix-matrix operations, O(n^3) work

\(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.
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.
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.
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.

## Detailed Description

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

## Function Documentation

## magmablas_ctrtri_diag_vbatched()

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]

  uplo

  magma_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]

  diag

  magma_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] | nmax | INTEGER. maximum value of n.
  [in] | n | INTEGER array, dimension(batchCount) On entry, each entry specifies the order of the corresponding matrix A. N >= 0.

  [in]

  dA_array

  COMPLEX 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] | ldda | INTEGER. The leading dimension of the array A. LDDA >= max(1,N).
  [out] | dinvA_array | COMPLEX 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] | resetozero | INTEGER If not zero, each array dinvA will be reset to all zeros
  [in] | batchCount | INTEGER The number of matrices to operate on.
  [in] | queue | magma_queue_t Queue to execute in.

## magmablas_dtrtri_diag_vbatched()

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]

  uplo

  magma_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]

  diag

  magma_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] | nmax | INTEGER. maximum value of n.
  [in] | n | INTEGER array, dimension(batchCount) On entry, each entry specifies the order of the corresponding matrix A. N >= 0.

  [in]

  dA_array

  DOUBLE 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] | ldda | INTEGER. The leading dimension of the array A. LDDA >= max(1,N).
  [out] | dinvA_array | DOUBLE 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] | resetozero | INTEGER If not zero, each array dinvA will be reset to all zeros
  [in] | batchCount | INTEGER The number of matrices to operate on.
  [in] | queue | magma_queue_t Queue to execute in.

## magmablas_strtri_diag_vbatched()

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]

  uplo

  magma_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]

  diag

  magma_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] | nmax | INTEGER. maximum value of n.
  [in] | n | INTEGER array, dimension(batchCount) On entry, each entry specifies the order of the corresponding matrix A. N >= 0.

  [in]

  dA_array

  REAL 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] | ldda | INTEGER. The leading dimension of the array A. LDDA >= max(1,N).
  [out] | dinvA_array | REAL 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] | resetozero | INTEGER If not zero, each array dinvA will be reset to all zeros
  [in] | batchCount | INTEGER The number of matrices to operate on.
  [in] | queue | magma_queue_t Queue to execute in.

## magmablas_ztrtri_diag_vbatched()

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]

  uplo

  magma_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]

  diag

  magma_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] | nmax | INTEGER. maximum value of n.
  [in] | n | INTEGER array, dimension(batchCount) On entry, each entry specifies the order of the corresponding matrix A. N >= 0.

  [in]

  dA_array

  COMPLEX_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] | ldda | INTEGER. The leading dimension of the array A. LDDA >= max(1,N).
  [out] | dinvA_array | COMPLEX_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] | resetozero | INTEGER If not zero, each array dinvA will be reset to all zeros
  [in] | batchCount | INTEGER The number of matrices to operate on.
  [in] | queue | magma_queue_t Queue to execute in.