MAGMA
2.3.0
Matrix Algebra for GPU and Multicore Architectures

Functions  
magma_int_t  magma_cposv (magma_uplo_t uplo, magma_int_t n, magma_int_t nrhs, magmaFloatComplex *A, magma_int_t lda, magmaFloatComplex *B, magma_int_t ldb, magma_int_t *info) 
CPOSV computes the solution to a complex system of linear equations A * X = B, where A is an NbyN Hermitian positive definite matrix and X and B are NbyNRHS matrices. More...  
magma_int_t  magma_cposv_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) 
CPOSV computes the solution to a complex system of linear equations A * X = B, where A is an NbyN Hermitian positive definite matrix and X and B are NbyNRHS matrices. More...  
magma_int_t  magma_dposv (magma_uplo_t uplo, magma_int_t n, magma_int_t nrhs, double *A, magma_int_t lda, double *B, magma_int_t ldb, magma_int_t *info) 
DPOSV computes the solution to a real system of linear equations A * X = B, where A is an NbyN symmetric positive definite matrix and X and B are NbyNRHS matrices. More...  
magma_int_t  magma_dposv_gpu (magma_uplo_t uplo, magma_int_t n, magma_int_t nrhs, magmaDouble_ptr dA, magma_int_t ldda, magmaDouble_ptr dB, magma_int_t lddb, magma_int_t *info) 
DPOSV computes the solution to a real system of linear equations A * X = B, where A is an NbyN symmetric positive definite matrix and X and B are NbyNRHS matrices. More...  
magma_int_t  magma_dsposv_gpu (magma_uplo_t uplo, magma_int_t n, magma_int_t nrhs, magmaDouble_ptr dA, magma_int_t ldda, magmaDouble_ptr dB, magma_int_t lddb, magmaDouble_ptr dX, magma_int_t lddx, magmaDouble_ptr dworkd, magmaFloat_ptr dworks, magma_int_t *iter, magma_int_t *info) 
DSPOSV computes the solution to a real system of linear equations A * X = B, where A is an NbyN symmetric positive definite matrix and X and B are NbyNRHS matrices. More...  
magma_int_t  magma_sposv (magma_uplo_t uplo, magma_int_t n, magma_int_t nrhs, float *A, magma_int_t lda, float *B, magma_int_t ldb, magma_int_t *info) 
SPOSV computes the solution to a real system of linear equations A * X = B, where A is an NbyN symmetric positive definite matrix and X and B are NbyNRHS matrices. More...  
magma_int_t  magma_sposv_gpu (magma_uplo_t uplo, magma_int_t n, magma_int_t nrhs, magmaFloat_ptr dA, magma_int_t ldda, magmaFloat_ptr dB, magma_int_t lddb, magma_int_t *info) 
SPOSV computes the solution to a real system of linear equations A * X = B, where A is an NbyN symmetric positive definite matrix and X and B are NbyNRHS matrices. More...  
magma_int_t  magma_zcposv_gpu (magma_uplo_t uplo, magma_int_t n, magma_int_t nrhs, magmaDoubleComplex_ptr dA, magma_int_t ldda, magmaDoubleComplex_ptr dB, magma_int_t lddb, magmaDoubleComplex_ptr dX, magma_int_t lddx, magmaDoubleComplex_ptr dworkd, magmaFloatComplex_ptr dworks, magma_int_t *iter, magma_int_t *info) 
ZCPOSV computes the solution to a complex system of linear equations A * X = B, where A is an NbyN Hermitian positive definite matrix and X and B are NbyNRHS matrices. More...  
magma_int_t  magma_zposv (magma_uplo_t uplo, magma_int_t n, magma_int_t nrhs, magmaDoubleComplex *A, magma_int_t lda, magmaDoubleComplex *B, magma_int_t ldb, magma_int_t *info) 
ZPOSV computes the solution to a complex system of linear equations A * X = B, where A is an NbyN Hermitian positive definite matrix and X and B are NbyNRHS matrices. More...  
magma_int_t  magma_zposv_gpu (magma_uplo_t uplo, magma_int_t n, magma_int_t nrhs, magmaDoubleComplex_ptr dA, magma_int_t ldda, magmaDoubleComplex_ptr dB, magma_int_t lddb, magma_int_t *info) 
ZPOSV computes the solution to a complex system of linear equations A * X = B, where A is an NbyN Hermitian positive definite matrix and X and B are NbyNRHS matrices. More...  
magma_int_t magma_cposv  (  magma_uplo_t  uplo, 
magma_int_t  n,  
magma_int_t  nrhs,  
magmaFloatComplex *  A,  
magma_int_t  lda,  
magmaFloatComplex *  B,  
magma_int_t  ldb,  
magma_int_t *  info  
) 
CPOSV computes the solution to a complex system of linear equations A * X = B, where A is an NbyN Hermitian positive definite matrix and X and B are NbyNRHS matrices.
The Cholesky decomposition is used to factor A as A = U**H * U, if UPLO = MagmaUpper, or A = L * L**H, if UPLO = MagmaLower, where U is an upper triangular matrix and L is a lower triangular matrix. The factored form of A is then used to solve the system of equations A * X = B.
[in]  uplo  magma_uplo_t

[in]  n  INTEGER The order of the matrix A. N >= 0. 
[in]  nrhs  INTEGER The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0. 
[in,out]  A  COMPLEX array, dimension (LDA,N) On entry, the Hermitian matrix A. If UPLO = MagmaUpper, the leading NbyN 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 NbyN 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*U or A = L*L**H. 
[in]  lda  INTEGER The leading dimension of the array A. LDA >= max(1,N). 
[in,out]  B  COMPLEX array, dimension (LDB,NRHS) On entry, the right hand side matrix B. On exit, the solution matrix X. 
[in]  ldb  INTEGER The leading dimension of the array B. LDB >= max(1,N). 
[out]  info  INTEGER

magma_int_t magma_cposv_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  
) 
CPOSV computes the solution to a complex system of linear equations A * X = B, where A is an NbyN Hermitian positive definite matrix and X and B are NbyNRHS matrices.
The Cholesky decomposition is used to factor A as A = U**H * U, if UPLO = MagmaUpper, or A = L * L**H, if UPLO = MagmaLower, where U is an upper triangular matrix and L is a lower triangular matrix. The factored form of A is then used to solve the system of equations A * X = B.
[in]  uplo  magma_uplo_t

[in]  n  INTEGER The order of the matrix A. N >= 0. 
[in]  nrhs  INTEGER The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0. 
[in,out]  dA  COMPLEX array on the GPU, dimension (LDDA,N) On entry, the Hermitian matrix dA. If UPLO = MagmaUpper, the leading NbyN upper triangular part of dA contains the upper triangular part of the matrix dA, and the strictly lower triangular part of dA is not referenced. If UPLO = MagmaLower, the leading NbyN lower triangular part of dA contains the lower triangular part of the matrix dA, and the strictly upper triangular part of dA is not referenced. On exit, if INFO = 0, the factor U or L from the Cholesky factorization dA = U**H*U or dA = L*L**H. 
[in]  ldda  INTEGER The leading dimension of the array A. LDDA >= max(1,N). 
[in,out]  dB  COMPLEX array on the GPU, dimension (LDDB,NRHS) On entry, the right hand side matrix B. On exit, the solution matrix X. 
[in]  lddb  INTEGER The leading dimension of the array B. LDDB >= max(1,N). 
[out]  info  INTEGER

magma_int_t magma_dposv  (  magma_uplo_t  uplo, 
magma_int_t  n,  
magma_int_t  nrhs,  
double *  A,  
magma_int_t  lda,  
double *  B,  
magma_int_t  ldb,  
magma_int_t *  info  
) 
DPOSV computes the solution to a real system of linear equations A * X = B, where A is an NbyN symmetric positive definite matrix and X and B are NbyNRHS matrices.
The Cholesky decomposition is used to factor A as A = U**H * U, if UPLO = MagmaUpper, or A = L * L**H, if UPLO = MagmaLower, where U is an upper triangular matrix and L is a lower triangular matrix. The factored form of A is then used to solve the system of equations A * X = B.
[in]  uplo  magma_uplo_t

[in]  n  INTEGER The order of the matrix A. N >= 0. 
[in]  nrhs  INTEGER The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0. 
[in,out]  A  DOUBLE PRECISION array, dimension (LDA,N) On entry, the symmetric matrix A. If UPLO = MagmaUpper, the leading NbyN 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 NbyN 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*U or A = L*L**H. 
[in]  lda  INTEGER The leading dimension of the array A. LDA >= max(1,N). 
[in,out]  B  DOUBLE PRECISION array, dimension (LDB,NRHS) On entry, the right hand side matrix B. On exit, the solution matrix X. 
[in]  ldb  INTEGER The leading dimension of the array B. LDB >= max(1,N). 
[out]  info  INTEGER

magma_int_t magma_dposv_gpu  (  magma_uplo_t  uplo, 
magma_int_t  n,  
magma_int_t  nrhs,  
magmaDouble_ptr  dA,  
magma_int_t  ldda,  
magmaDouble_ptr  dB,  
magma_int_t  lddb,  
magma_int_t *  info  
) 
DPOSV computes the solution to a real system of linear equations A * X = B, where A is an NbyN symmetric positive definite matrix and X and B are NbyNRHS matrices.
The Cholesky decomposition is used to factor A as A = U**H * U, if UPLO = MagmaUpper, or A = L * L**H, if UPLO = MagmaLower, where U is an upper triangular matrix and L is a lower triangular matrix. The factored form of A is then used to solve the system of equations A * X = B.
[in]  uplo  magma_uplo_t

[in]  n  INTEGER The order of the matrix A. N >= 0. 
[in]  nrhs  INTEGER The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0. 
[in,out]  dA  DOUBLE PRECISION array on the GPU, dimension (LDDA,N) On entry, the symmetric matrix dA. If UPLO = MagmaUpper, the leading NbyN upper triangular part of dA contains the upper triangular part of the matrix dA, and the strictly lower triangular part of dA is not referenced. If UPLO = MagmaLower, the leading NbyN lower triangular part of dA contains the lower triangular part of the matrix dA, and the strictly upper triangular part of dA is not referenced. On exit, if INFO = 0, the factor U or L from the Cholesky factorization dA = U**H*U or dA = L*L**H. 
[in]  ldda  INTEGER The leading dimension of the array A. LDDA >= max(1,N). 
[in,out]  dB  DOUBLE PRECISION array on the GPU, dimension (LDDB,NRHS) On entry, the right hand side matrix B. On exit, the solution matrix X. 
[in]  lddb  INTEGER The leading dimension of the array B. LDDB >= max(1,N). 
[out]  info  INTEGER

magma_int_t magma_dsposv_gpu  (  magma_uplo_t  uplo, 
magma_int_t  n,  
magma_int_t  nrhs,  
magmaDouble_ptr  dA,  
magma_int_t  ldda,  
magmaDouble_ptr  dB,  
magma_int_t  lddb,  
magmaDouble_ptr  dX,  
magma_int_t  lddx,  
magmaDouble_ptr  dworkd,  
magmaFloat_ptr  dworks,  
magma_int_t *  iter,  
magma_int_t *  info  
) 
DSPOSV computes the solution to a real system of linear equations A * X = B, where A is an NbyN symmetric positive definite matrix and X and B are NbyNRHS matrices.
DSPOSV first attempts to factorize the matrix in real SINGLE PRECISION and use this factorization within an iterative refinement procedure to produce a solution with real DOUBLE PRECISION normwise backward error quality (see below). If the approach fails the method switches to a real DOUBLE PRECISION factorization and solve.
The iterative refinement is not going to be a winning strategy if the ratio real SINGLE PRECISION performance over real DOUBLE PRECISION performance is too small. A reasonable strategy should take the number of righthand sides and the size of the matrix into account. This might be done with a call to ILAENV in the future. Up to now, we always try iterative refinement.
The iterative refinement process is stopped if ITER > ITERMAX or for all the RHS we have: RNRM < SQRT(N)*XNRM*ANRM*EPS*BWDMAX where o ITER is the number of the current iteration in the iterative refinement process o RNRM is the infinitynorm of the residual o XNRM is the infinitynorm of the solution o ANRM is the infinityoperatornorm of the matrix A o EPS is the machine epsilon returned by DLAMCH('Epsilon') The value ITERMAX and BWDMAX are fixed to 30 and 1.0D+00 respectively.
[in]  uplo  magma_uplo_t

[in]  n  INTEGER The number of linear equations, i.e., the order of the matrix A. N >= 0. 
[in]  nrhs  INTEGER The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0. 
[in,out]  dA  DOUBLE PRECISION array on the GPU, dimension (LDDA,N) On entry, the symmetric matrix A. If UPLO = MagmaUpper, the leading NbyN 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 NbyN 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 iterative refinement has been successfully used (INFO.EQ.0 and ITER.GE.0, see description below), then A is unchanged, if double factorization has been used (INFO.EQ.0 and ITER.LT.0, see description below), then the array dA contains the factor U or L from the Cholesky factorization A = U**T*U or A = L*L**T. 
[in]  ldda  INTEGER The leading dimension of the array dA. LDDA >= max(1,N). 
[in]  dB  DOUBLE PRECISION array on the GPU, dimension (LDDB,NRHS) The NbyNRHS right hand side matrix B. 
[in]  lddb  INTEGER The leading dimension of the array dB. LDDB >= max(1,N). 
[out]  dX  DOUBLE PRECISION array on the GPU, dimension (LDDX,NRHS) If INFO = 0, the NbyNRHS solution matrix X. 
[in]  lddx  INTEGER The leading dimension of the array dX. LDDX >= max(1,N). 
dworkd  (workspace) DOUBLE PRECISION array on the GPU, dimension (N*NRHS) This array is used to hold the residual vectors.  
dworks  (workspace) SINGLE PRECISION array on the GPU, dimension (N*(N+NRHS)) This array is used to store the real single precision matrix and the righthand sides or solutions in single precision.  
[out]  iter  INTEGER

[out]  info  INTEGER

magma_int_t magma_sposv  (  magma_uplo_t  uplo, 
magma_int_t  n,  
magma_int_t  nrhs,  
float *  A,  
magma_int_t  lda,  
float *  B,  
magma_int_t  ldb,  
magma_int_t *  info  
) 
SPOSV computes the solution to a real system of linear equations A * X = B, where A is an NbyN symmetric positive definite matrix and X and B are NbyNRHS matrices.
The Cholesky decomposition is used to factor A as A = U**H * U, if UPLO = MagmaUpper, or A = L * L**H, if UPLO = MagmaLower, where U is an upper triangular matrix and L is a lower triangular matrix. The factored form of A is then used to solve the system of equations A * X = B.
[in]  uplo  magma_uplo_t

[in]  n  INTEGER The order of the matrix A. N >= 0. 
[in]  nrhs  INTEGER The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0. 
[in,out]  A  REAL array, dimension (LDA,N) On entry, the symmetric matrix A. If UPLO = MagmaUpper, the leading NbyN 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 NbyN 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*U or A = L*L**H. 
[in]  lda  INTEGER The leading dimension of the array A. LDA >= max(1,N). 
[in,out]  B  REAL array, dimension (LDB,NRHS) On entry, the right hand side matrix B. On exit, the solution matrix X. 
[in]  ldb  INTEGER The leading dimension of the array B. LDB >= max(1,N). 
[out]  info  INTEGER

magma_int_t magma_sposv_gpu  (  magma_uplo_t  uplo, 
magma_int_t  n,  
magma_int_t  nrhs,  
magmaFloat_ptr  dA,  
magma_int_t  ldda,  
magmaFloat_ptr  dB,  
magma_int_t  lddb,  
magma_int_t *  info  
) 
SPOSV computes the solution to a real system of linear equations A * X = B, where A is an NbyN symmetric positive definite matrix and X and B are NbyNRHS matrices.
The Cholesky decomposition is used to factor A as A = U**H * U, if UPLO = MagmaUpper, or A = L * L**H, if UPLO = MagmaLower, where U is an upper triangular matrix and L is a lower triangular matrix. The factored form of A is then used to solve the system of equations A * X = B.
[in]  uplo  magma_uplo_t

[in]  n  INTEGER The order of the matrix A. N >= 0. 
[in]  nrhs  INTEGER The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0. 
[in,out]  dA  REAL array on the GPU, dimension (LDDA,N) On entry, the symmetric matrix dA. If UPLO = MagmaUpper, the leading NbyN upper triangular part of dA contains the upper triangular part of the matrix dA, and the strictly lower triangular part of dA is not referenced. If UPLO = MagmaLower, the leading NbyN lower triangular part of dA contains the lower triangular part of the matrix dA, and the strictly upper triangular part of dA is not referenced. On exit, if INFO = 0, the factor U or L from the Cholesky factorization dA = U**H*U or dA = L*L**H. 
[in]  ldda  INTEGER The leading dimension of the array A. LDDA >= max(1,N). 
[in,out]  dB  REAL array on the GPU, dimension (LDDB,NRHS) On entry, the right hand side matrix B. On exit, the solution matrix X. 
[in]  lddb  INTEGER The leading dimension of the array B. LDDB >= max(1,N). 
[out]  info  INTEGER

magma_int_t magma_zcposv_gpu  (  magma_uplo_t  uplo, 
magma_int_t  n,  
magma_int_t  nrhs,  
magmaDoubleComplex_ptr  dA,  
magma_int_t  ldda,  
magmaDoubleComplex_ptr  dB,  
magma_int_t  lddb,  
magmaDoubleComplex_ptr  dX,  
magma_int_t  lddx,  
magmaDoubleComplex_ptr  dworkd,  
magmaFloatComplex_ptr  dworks,  
magma_int_t *  iter,  
magma_int_t *  info  
) 
ZCPOSV computes the solution to a complex system of linear equations A * X = B, where A is an NbyN Hermitian positive definite matrix and X and B are NbyNRHS matrices.
ZCPOSV first attempts to factorize the matrix in complex SINGLE PRECISION and use this factorization within an iterative refinement procedure to produce a solution with complex DOUBLE PRECISION normwise backward error quality (see below). If the approach fails the method switches to a complex DOUBLE PRECISION factorization and solve.
The iterative refinement is not going to be a winning strategy if the ratio complex SINGLE PRECISION performance over complex DOUBLE PRECISION performance is too small. A reasonable strategy should take the number of righthand sides and the size of the matrix into account. This might be done with a call to ILAENV in the future. Up to now, we always try iterative refinement.
The iterative refinement process is stopped if ITER > ITERMAX or for all the RHS we have: RNRM < SQRT(N)*XNRM*ANRM*EPS*BWDMAX where o ITER is the number of the current iteration in the iterative refinement process o RNRM is the infinitynorm of the residual o XNRM is the infinitynorm of the solution o ANRM is the infinityoperatornorm of the matrix A o EPS is the machine epsilon returned by DLAMCH('Epsilon') The value ITERMAX and BWDMAX are fixed to 30 and 1.0D+00 respectively.
[in]  uplo  magma_uplo_t

[in]  n  INTEGER The number of linear equations, i.e., the order of the matrix A. N >= 0. 
[in]  nrhs  INTEGER The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0. 
[in,out]  dA  COMPLEX_16 array on the GPU, dimension (LDDA,N) On entry, the Hermitian matrix A. If UPLO = MagmaUpper, the leading NbyN 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 NbyN 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 iterative refinement has been successfully used (INFO.EQ.0 and ITER.GE.0, see description below), then A is unchanged, if double factorization has been used (INFO.EQ.0 and ITER.LT.0, see description below), then the array dA contains the factor U or L from the Cholesky factorization A = U**T*U or A = L*L**T. 
[in]  ldda  INTEGER The leading dimension of the array dA. LDDA >= max(1,N). 
[in]  dB  COMPLEX_16 array on the GPU, dimension (LDDB,NRHS) The NbyNRHS right hand side matrix B. 
[in]  lddb  INTEGER The leading dimension of the array dB. LDDB >= max(1,N). 
[out]  dX  COMPLEX_16 array on the GPU, dimension (LDDX,NRHS) If INFO = 0, the NbyNRHS solution matrix X. 
[in]  lddx  INTEGER The leading dimension of the array dX. LDDX >= max(1,N). 
dworkd  (workspace) COMPLEX_16 array on the GPU, dimension (N*NRHS) This array is used to hold the residual vectors.  
dworks  (workspace) COMPLEX array on the GPU, dimension (N*(N+NRHS)) This array is used to store the complex single precision matrix and the righthand sides or solutions in single precision.  
[out]  iter  INTEGER

[out]  info  INTEGER

magma_int_t magma_zposv  (  magma_uplo_t  uplo, 
magma_int_t  n,  
magma_int_t  nrhs,  
magmaDoubleComplex *  A,  
magma_int_t  lda,  
magmaDoubleComplex *  B,  
magma_int_t  ldb,  
magma_int_t *  info  
) 
ZPOSV computes the solution to a complex system of linear equations A * X = B, where A is an NbyN Hermitian positive definite matrix and X and B are NbyNRHS matrices.
The Cholesky decomposition is used to factor A as A = U**H * U, if UPLO = MagmaUpper, or A = L * L**H, if UPLO = MagmaLower, where U is an upper triangular matrix and L is a lower triangular matrix. The factored form of A is then used to solve the system of equations A * X = B.
[in]  uplo  magma_uplo_t

[in]  n  INTEGER The order of the matrix A. N >= 0. 
[in]  nrhs  INTEGER The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0. 
[in,out]  A  COMPLEX_16 array, dimension (LDA,N) On entry, the Hermitian matrix A. If UPLO = MagmaUpper, the leading NbyN 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 NbyN 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*U or A = L*L**H. 
[in]  lda  INTEGER The leading dimension of the array A. LDA >= max(1,N). 
[in,out]  B  COMPLEX_16 array, dimension (LDB,NRHS) On entry, the right hand side matrix B. On exit, the solution matrix X. 
[in]  ldb  INTEGER The leading dimension of the array B. LDB >= max(1,N). 
[out]  info  INTEGER

magma_int_t magma_zposv_gpu  (  magma_uplo_t  uplo, 
magma_int_t  n,  
magma_int_t  nrhs,  
magmaDoubleComplex_ptr  dA,  
magma_int_t  ldda,  
magmaDoubleComplex_ptr  dB,  
magma_int_t  lddb,  
magma_int_t *  info  
) 
ZPOSV computes the solution to a complex system of linear equations A * X = B, where A is an NbyN Hermitian positive definite matrix and X and B are NbyNRHS matrices.
The Cholesky decomposition is used to factor A as A = U**H * U, if UPLO = MagmaUpper, or A = L * L**H, if UPLO = MagmaLower, where U is an upper triangular matrix and L is a lower triangular matrix. The factored form of A is then used to solve the system of equations A * X = B.
[in]  uplo  magma_uplo_t

[in]  n  INTEGER The order of the matrix A. N >= 0. 
[in]  nrhs  INTEGER The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0. 
[in,out]  dA  COMPLEX_16 array on the GPU, dimension (LDDA,N) On entry, the Hermitian matrix dA. If UPLO = MagmaUpper, the leading NbyN upper triangular part of dA contains the upper triangular part of the matrix dA, and the strictly lower triangular part of dA is not referenced. If UPLO = MagmaLower, the leading NbyN lower triangular part of dA contains the lower triangular part of the matrix dA, and the strictly upper triangular part of dA is not referenced. On exit, if INFO = 0, the factor U or L from the Cholesky factorization dA = U**H*U or dA = L*L**H. 
[in]  ldda  INTEGER The leading dimension of the array A. LDDA >= max(1,N). 
[in,out]  dB  COMPLEX_16 array on the GPU, dimension (LDDB,NRHS) On entry, the right hand side matrix B. On exit, the solution matrix X. 
[in]  lddb  INTEGER The leading dimension of the array B. LDDB >= max(1,N). 
[out]  info  INTEGER
