MAGMA  2.0.0
Matrix Algebra for GPU and Multicore Architectures

Functions

magma_int_t magma_csytrf_nopiv_gpu (magma_uplo_t uplo, magma_int_t n, magmaFloatComplex_ptr dA, magma_int_t ldda, magma_int_t *info)
 CSYTRF_nopiv_gpu computes the LDLt factorization of a complex symmetric matrix A. More...
 
magma_int_t magma_csytrs_nopiv_gpu (magma_uplo_t uplo, magma_int_t n, magma_int_t nrhs, magmaFloatComplex_ptr dA, magma_int_t ldda, magmaFloatComplex_ptr dB, magma_int_t lddb, magma_int_t *info)
 CSYTRS solves a system of linear equations A*X = B with a complex symmetric matrix A using the factorization A = U * D * U**H or A = L * D * L**T computed by CSYTRF_NOPIV_GPU. More...
 

Detailed Description

Function Documentation

magma_int_t magma_csytrf_nopiv_gpu ( magma_uplo_t  uplo,
magma_int_t  n,
magmaFloatComplex_ptr  dA,
magma_int_t  ldda,
magma_int_t *  info 
)

CSYTRF_nopiv_gpu computes the LDLt factorization of a complex symmetric matrix A.

The factorization has the form A = U^T * D * U, if UPLO = MagmaUpper, or A = L * D * L^T, if UPLO = MagmaLower, where U is an upper triangular matrix, L is lower triangular, and D is a diagonal matrix.

This is the block version of the algorithm, calling Level 3 BLAS.

Parameters
[in]uplomagma_uplo_t
  • = MagmaUpper: Upper triangle of A is stored;
  • = MagmaLower: Lower triangle of A is stored.
[in]nINTEGER The order of the matrix A. N >= 0.
[in,out]dACOMPLEX array on the GPU, dimension (LDDA,N) On entry, the symmetric matrix A. If UPLO = MagmaUpper, the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If UPLO = MagmaLower, the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
On exit, if INFO = 0, the factor U or L from the Cholesky factorization A = U^H D U or A = L D L^H.
Higher performance is achieved if A is in pinned memory, e.g. allocated using cudaMallocHost.
[in]lddaINTEGER The leading dimension of the array A. LDDA >= max(1,N).
[out]infoINTEGER
  • = 0: successful exit
  • < 0: if INFO = -i, the i-th argument had an illegal value if INFO = -6, the GPU memory allocation failed
  • > 0: if INFO = i, the leading minor of order i is not positive definite, and the factorization could not be completed.
magma_int_t magma_csytrs_nopiv_gpu ( magma_uplo_t  uplo,
magma_int_t  n,
magma_int_t  nrhs,
magmaFloatComplex_ptr  dA,
magma_int_t  ldda,
magmaFloatComplex_ptr  dB,
magma_int_t  lddb,
magma_int_t *  info 
)

CSYTRS solves a system of linear equations A*X = B with a complex symmetric matrix A using the factorization A = U * D * U**H or A = L * D * L**T computed by CSYTRF_NOPIV_GPU.

Parameters
[in]uplomagma_uplo_t
  • = MagmaUpper: Upper triangle of A is stored;
  • = MagmaLower: Lower triangle of A is stored.
[in]nINTEGER The order of the matrix A. N >= 0.
[in]nrhsINTEGER The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.
[in]dACOMPLEX array on the GPU, dimension (LDDA,N) The block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by CSYTRF_NOPIV_GPU.
[in]lddaINTEGER The leading dimension of the array A. LDDA >= max(1,N).
[in,out]dBCOMPLEX array on the GPU, dimension (LDDB,NRHS) On entry, the right hand side matrix B. On exit, the solution matrix X.
[in]lddbINTEGER The leading dimension of the array B. LDDB >= max(1,N).
[out]infoINTEGER
  • = 0: successful exit
  • < 0: if INFO = -i, the i-th argument had an illegal value