MAGMA  2.3.0 Matrix Algebra for GPU and Multicore Architectures
getrs: LU forward and back solves

## Functions

magma_int_t magma_cgetrs_batched (magma_trans_t trans, magma_int_t n, magma_int_t nrhs, magmaFloatComplex **dA_array, magma_int_t ldda, magma_int_t **dipiv_array, magmaFloatComplex **dB_array, magma_int_t lddb, magma_int_t batchCount, magma_queue_t queue)
CGETRS solves a system of linear equations A * X = B, A**T * X = B, or A**H * X = B with a general N-by-N matrix A using the LU factorization computed by CGETRF. More...

magma_int_t magma_dgetrs_batched (magma_trans_t trans, magma_int_t n, magma_int_t nrhs, double **dA_array, magma_int_t ldda, magma_int_t **dipiv_array, double **dB_array, magma_int_t lddb, magma_int_t batchCount, magma_queue_t queue)
DGETRS solves a system of linear equations A * X = B, A**T * X = B, or A**H * X = B with a general N-by-N matrix A using the LU factorization computed by DGETRF. More...

magma_int_t magma_sgetrs_batched (magma_trans_t trans, magma_int_t n, magma_int_t nrhs, float **dA_array, magma_int_t ldda, magma_int_t **dipiv_array, float **dB_array, magma_int_t lddb, magma_int_t batchCount, magma_queue_t queue)
SGETRS solves a system of linear equations A * X = B, A**T * X = B, or A**H * X = B with a general N-by-N matrix A using the LU factorization computed by SGETRF. More...

magma_int_t magma_zgetrs_batched (magma_trans_t trans, magma_int_t n, magma_int_t nrhs, magmaDoubleComplex **dA_array, magma_int_t ldda, magma_int_t **dipiv_array, magmaDoubleComplex **dB_array, magma_int_t lddb, magma_int_t batchCount, magma_queue_t queue)
ZGETRS solves a system of linear equations A * X = B, A**T * X = B, or A**H * X = B with a general N-by-N matrix A using the LU factorization computed by ZGETRF. More...

## Function Documentation

 magma_int_t magma_cgetrs_batched ( magma_trans_t trans, magma_int_t n, magma_int_t nrhs, magmaFloatComplex ** dA_array, magma_int_t ldda, magma_int_t ** dipiv_array, magmaFloatComplex ** dB_array, magma_int_t lddb, magma_int_t batchCount, magma_queue_t queue )

CGETRS solves a system of linear equations A * X = B, A**T * X = B, or A**H * X = B with a general N-by-N matrix A using the LU factorization computed by CGETRF.

This is a batched version that solves batchCount N-by-N matrices in parallel. dA, dB, and ipiv become arrays with one entry per matrix.

Parameters
 [in] trans magma_trans_t Specifies the form of the system of equations: = MagmaNoTrans: A * X = B (No transpose) = MagmaTrans: A**T * X = B (Transpose) = MagmaConjTrans: A**H * X = B (Conjugate transpose) [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_array Array of pointers, dimension (batchCount). Each is a COMPLEX array on the GPU, dimension (LDDA,N). On entry, each pointer is an 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] ldda INTEGER The leading dimension of each array A. LDDA >= max(1,M). [out] dipiv_array Array of pointers, dimension (batchCount), for corresponding matrices. Each is an INTEGER 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). [in,out] dB_array Array of pointers, dimension (batchCount). Each is a COMPLEX array on the GPU, dimension (LDDB,N). On entry, each pointer is an right hand side matrix B. On exit, each pointer is the solution matrix X. [in] lddb INTEGER The leading dimension of the array B. LDB >= max(1,N). [in] batchCount INTEGER The number of matrices to operate on. [in] queue magma_queue_t Queue to execute in.
 magma_int_t magma_dgetrs_batched ( magma_trans_t trans, magma_int_t n, magma_int_t nrhs, double ** dA_array, magma_int_t ldda, magma_int_t ** dipiv_array, double ** dB_array, magma_int_t lddb, magma_int_t batchCount, magma_queue_t queue )

DGETRS solves a system of linear equations A * X = B, A**T * X = B, or A**H * X = B with a general N-by-N matrix A using the LU factorization computed by DGETRF.

This is a batched version that solves batchCount N-by-N matrices in parallel. dA, dB, and ipiv become arrays with one entry per matrix.

Parameters
 [in] trans magma_trans_t Specifies the form of the system of equations: = MagmaNoTrans: A * X = B (No transpose) = MagmaTrans: A**T * X = B (Transpose) = MagmaConjTrans: A**H * X = B (Conjugate transpose) [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_array Array of pointers, dimension (batchCount). Each is a DOUBLE PRECISION array on the GPU, dimension (LDDA,N). On entry, each pointer is an 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] ldda INTEGER The leading dimension of each array A. LDDA >= max(1,M). [out] dipiv_array Array of pointers, dimension (batchCount), for corresponding matrices. Each is an INTEGER 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). [in,out] dB_array Array of pointers, dimension (batchCount). Each is a DOUBLE PRECISION array on the GPU, dimension (LDDB,N). On entry, each pointer is an right hand side matrix B. On exit, each pointer is the solution matrix X. [in] lddb INTEGER The leading dimension of the array B. LDB >= max(1,N). [in] batchCount INTEGER The number of matrices to operate on. [in] queue magma_queue_t Queue to execute in.
 magma_int_t magma_sgetrs_batched ( magma_trans_t trans, magma_int_t n, magma_int_t nrhs, float ** dA_array, magma_int_t ldda, magma_int_t ** dipiv_array, float ** dB_array, magma_int_t lddb, magma_int_t batchCount, magma_queue_t queue )

SGETRS solves a system of linear equations A * X = B, A**T * X = B, or A**H * X = B with a general N-by-N matrix A using the LU factorization computed by SGETRF.

This is a batched version that solves batchCount N-by-N matrices in parallel. dA, dB, and ipiv become arrays with one entry per matrix.

Parameters
 [in] trans magma_trans_t Specifies the form of the system of equations: = MagmaNoTrans: A * X = B (No transpose) = MagmaTrans: A**T * X = B (Transpose) = MagmaConjTrans: A**H * X = B (Conjugate transpose) [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_array Array of pointers, dimension (batchCount). Each is a REAL array on the GPU, dimension (LDDA,N). On entry, each pointer is an 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] ldda INTEGER The leading dimension of each array A. LDDA >= max(1,M). [out] dipiv_array Array of pointers, dimension (batchCount), for corresponding matrices. Each is an INTEGER 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). [in,out] dB_array Array of pointers, dimension (batchCount). Each is a REAL array on the GPU, dimension (LDDB,N). On entry, each pointer is an right hand side matrix B. On exit, each pointer is the solution matrix X. [in] lddb INTEGER The leading dimension of the array B. LDB >= max(1,N). [in] batchCount INTEGER The number of matrices to operate on. [in] queue magma_queue_t Queue to execute in.
 magma_int_t magma_zgetrs_batched ( magma_trans_t trans, magma_int_t n, magma_int_t nrhs, magmaDoubleComplex ** dA_array, magma_int_t ldda, magma_int_t ** dipiv_array, magmaDoubleComplex ** dB_array, magma_int_t lddb, magma_int_t batchCount, magma_queue_t queue )

ZGETRS solves a system of linear equations A * X = B, A**T * X = B, or A**H * X = B with a general N-by-N matrix A using the LU factorization computed by ZGETRF.

This is a batched version that solves batchCount N-by-N matrices in parallel. dA, dB, and ipiv become arrays with one entry per matrix.

Parameters
 [in] trans magma_trans_t Specifies the form of the system of equations: = MagmaNoTrans: A * X = B (No transpose) = MagmaTrans: A**T * X = B (Transpose) = MagmaConjTrans: A**H * X = B (Conjugate transpose) [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_array Array of pointers, dimension (batchCount). Each is a COMPLEX_16 array on the GPU, dimension (LDDA,N). On entry, each pointer is an 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] ldda INTEGER The leading dimension of each array A. LDDA >= max(1,M). [out] dipiv_array Array of pointers, dimension (batchCount), for corresponding matrices. Each is an INTEGER 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). [in,out] dB_array Array of pointers, dimension (batchCount). Each is a COMPLEX_16 array on the GPU, dimension (LDDB,N). On entry, each pointer is an right hand side matrix B. On exit, each pointer is the solution matrix X. [in] lddb INTEGER The leading dimension of the array B. LDB >= max(1,N). [in] batchCount INTEGER The number of matrices to operate on. [in] queue magma_queue_t Queue to execute in.