MAGMA  1.5.0
Matrix Algebra for GPU and Multicore Architectures
 All Functions Groups
double precision

Functions

magma_int_t magma_dgetf2_nopiv (magma_int_t m, magma_int_t n, double *A, magma_int_t lda, magma_int_t *info)
 DGETF2_NOPIV computes an LU factorization of a general m-by-n matrix A without pivoting. More...
 
magma_int_t magma_dtrtri (magma_uplo_t uplo, magma_diag_t diag, magma_int_t n, double *A, magma_int_t lda, magma_int_t *info)
 DTRTRI computes the inverse of a real upper or lower triangular matrix A. More...
 
magma_int_t magma_dtrtri_gpu (magma_uplo_t uplo, magma_diag_t diag, magma_int_t n, double *dA, magma_int_t ldda, magma_int_t *info)
 DTRTRI computes the inverse of a real upper or lower triangular matrix dA. More...
 
magma_int_t magma_dgetf2_gpu (magma_int_t m, magma_int_t n, double *A, magma_int_t lda, magma_int_t *ipiv, magma_int_t *info)
 DGETF2 computes an LU factorization of a general m-by-n matrix A using partial pivoting with row interchanges. More...
 

Detailed Description

Function Documentation

magma_int_t magma_dgetf2_gpu ( magma_int_t  m,
magma_int_t  n,
double *  A,
magma_int_t  lda,
magma_int_t *  ipiv,
magma_int_t *  info 
)

DGETF2 computes an LU factorization of a general m-by-n matrix A using partial pivoting with row interchanges.

The factorization has the form A = P * L * U where P is a permutation matrix, L is lower triangular with unit diagonal elements (lower trapezoidal if m > n), and U is upper triangular (upper trapezoidal if m < n).

This is the right-looking Level 2 BLAS version of the algorithm.

Parameters
[in]mINTEGER The number of rows of the matrix A. M >= 0.
[in]nINTEGER The number of columns of the matrix A. N >= 0 and N <= 1024. On CUDA architecture 1.x cards, N <= 512.
[in,out]ADOUBLE_PRECISION array, dimension (LDA,N) On entry, the m by n matrix to be factored. On exit, the factors L and U from the factorization A = P*L*U; the unit diagonal elements of L are not stored.
[in]ldaINTEGER The leading dimension of the array A. LDA >= max(1,M).
[out]ipivINTEGER array, dimension (min(M,N)) The pivot indices; for 1 <= i <= min(M,N), row i of the matrix was interchanged with row IPIV(i).
[out]infoINTEGER
  • = 0: successful exit
  • < 0: if INFO = -k, the k-th argument had an illegal value
  • > 0: if INFO = k, U(k,k) is exactly zero. The factorization has been completed, but the factor U is exactly singular, and division by zero will occur if it is used to solve a system of equations.
magma_int_t magma_dgetf2_nopiv ( magma_int_t  m,
magma_int_t  n,
double *  A,
magma_int_t  lda,
magma_int_t *  info 
)

DGETF2_NOPIV computes an LU factorization of a general m-by-n matrix A without pivoting.

The factorization has the form A = L * U where L is lower triangular with unit diagonal elements (lower trapezoidal if m > n), and U is upper triangular (upper trapezoidal if m < n).

This is the right-looking Level 2 BLAS version of the algorithm.

Parameters
[in]mINTEGER The number of rows of the matrix A. M >= 0.
[in]nINTEGER The number of columns of the matrix A. N >= 0.
[in,out]ADOUBLE_PRECISION array, dimension (LDA,N) On entry, the m by n matrix to be factored. On exit, the factors L and U from the factorization A = P*L*U; the unit diagonal elements of L are not stored.
[in]ldaINTEGER The leading dimension of the array A. LDA >= max(1,M).
[out]infoINTEGER
  • = 0: successful exit
  • < 0: if INFO = -k, the k-th argument had an illegal value
  • > 0: if INFO = k, U(k,k) is exactly zero. The factorization has been completed, but the factor U is exactly singular, and division by zero will occur if it is used to solve a system of equations.
magma_int_t magma_dtrtri ( magma_uplo_t  uplo,
magma_diag_t  diag,
magma_int_t  n,
double *  A,
magma_int_t  lda,
magma_int_t *  info 
)

DTRTRI computes the inverse of a real upper or lower triangular matrix A.

This is the Level 3 BLAS version of the algorithm.

Parameters
[in]uplomagma_uplo_t
  • = MagmaUpper: A is upper triangular;
  • = MagmaLower: A is lower triangular.
[in]diagmagma_diag_t
  • = MagmaNonUnit: A is non-unit triangular;
  • = MagmaUnit: A is unit triangular.
[in]nINTEGER The order of the matrix A. N >= 0.
[in,out]ADOUBLE_PRECISION array, dimension (LDA,N) On entry, the triangular matrix A. If UPLO = MagmaUpper, 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 = MagmaLower, 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 = MagmaUnit, 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]ldaINTEGER The leading dimension of the array A. LDA >= max(1,N).
[out]infoINTEGER
  • = 0: successful exit
  • < 0: if INFO = -i, the i-th argument had an illegal value
  • > 0: if INFO = i, A(i,i) is exactly zero. The triangular matrix is singular and its inverse cannot be computed.
magma_int_t magma_dtrtri_gpu ( magma_uplo_t  uplo,
magma_diag_t  diag,
magma_int_t  n,
double *  dA,
magma_int_t  ldda,
magma_int_t *  info 
)

DTRTRI computes the inverse of a real upper or lower triangular matrix dA.

This is the Level 3 BLAS version of the algorithm.

Parameters
[in]uplomagma_uplo_t
  • = MagmaUpper: A is upper triangular;
  • = MagmaLower: A is lower triangular.
[in]diagmagma_diag_t
  • = MagmaNonUnit: A is non-unit triangular;
  • = MagmaUnit: A is unit triangular.
[in]nINTEGER The order of the matrix A. N >= 0.
[in,out]dADOUBLE_PRECISION array ON THE GPU, dimension (LDDA,N) On entry, the triangular matrix A. If UPLO = MagmaUpper, the leading N-by-N upper triangular part of the array dA contains the upper triangular matrix, and the strictly lower triangular part of A is not referenced. If UPLO = MagmaLower, the leading N-by-N lower triangular part of the array dA contains the lower triangular matrix, and the strictly upper triangular part of A is not referenced. If DIAG = MagmaUnit, 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]lddaINTEGER The leading dimension of the array dA. LDDA >= max(1,N).
[out]infoINTEGER
  • = 0: successful exit
  • < 0: if INFO = -i, the i-th argument had an illegal value
  • > 0: if INFO = i, dA(i,i) is exactly zero. The triangular matrix is singular and its inverse cannot be computed. (Singularity check is currently disabled.)